@font-face {
  font-family: 'Iconfont-x';
  font-style: normal;
  font-weight: 300;
  src: 
    local('Neue Helvetica Pro75'), 
    local('Neue-Helvetica-Pro75'), 
    url('../fonts/iconfont-x.woff') format('woff');
  font-display: swap;
}

.iconfont-x {
  font-family: 'Iconfont-x' !important;
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  position: relative;
  top: 0.25em;
}

.iconfont-x:before {
  content: "\e900";
}

/*.main-images img, .main-images svg {
	max-height:370px;
}*/
.select2-container .select2-selection--single .select2-selection__rendered {
  margin-right: 25px;
}

.stars-5 {
  background: url("/img/star-5.svg");
  /* background-size: 100%; */
  /* background-position: 0 0; */
}

.stars-4 {
  background: url("/img/star-4.svg");
  /* background-size: 100%;
	background-position: 0 -17px; */
}

.stars-3 {
  background: url("/img/star-3.svg");
  /* background-size: 100%;
	background-position: 0 -36px; */
}

.stars-2 {
  background: url("/img/star-2.svg");
  /* background-size: 100%;
	background-position: 0 -55px; */
}

.stars-1 {
  background: url("/img/star-1.svg");
  /* background-size: 100%;
	background-position: 0 -72px; */
}

.stars- {
  background: url("/img/star-.svg");
  /* background-size: 100%;
	background-position: 0 -72px; */
}

/*.kit-main-row {
	overflow-y: scroll;
	height: 960px;
}*/

.kit-img {
  min-height: 400px;
}

.comparison-block {
  min-height: 80px;
}

@media (max-width: 1024px) {
  /* .catalog.catalog-add .catalog-info,
    .catalog.catalog-products .catalog-info {
        min-height: 95px;
    } */

  #main_variant {
    position: relative !important;
  }

  .kit-all .kit-control {
    display: none;
  }

  .catalog-img img,
  .catalog-img svg {
    max-height: 370px;
    top: 0;
  }

  .main-images img,
  .main-images svg {
    max-width: 100% !important;
  }
}

.main-actions .swiper-button-next::before,
.main-actions .swiper-button-prev::before {
  top: 53%;
}

.accordeon-top {
  padding: 12px 40px 12px 31px;
}

.blog.blog-second .post-img {
  border: 1px solid #cecfd2;
}

.testimonials-doc {
  margin-bottom: 18px;
}

.aboutUs-content blockquote {
  background-image: url("/img/Mask Group.svg");
}

@media (max-width: 345px) {
  .catalog-article .primary-btn {
    padding-left: 10px;
    padding-right: 10px;
  }
}

@media only screen and (max-width: 768px) {
  .main {
    height: 770px;
  }

  .catalog-info .checkbox {
    visibility: visible;
    opacity: 1;
  }

  .modal.add_basket,
  .modal.add_compaer {
    top: 15% !important;
    left: 50% !important;
  }

  .product-head-buttons {
    text-align: start;
  }
}

@media only screen and (min-width: 769px) {
  .catalog.catalog-second .catalog-article {
    min-height: 500px;
  }
}

.product-head {
  min-height: 510px;
}

.product-head-img img,
.product-head-img svg {
  max-height: 419px;
  width: auto;
}

.product-head p {
  margin: 0 0 30px;
}

.product-specifications-wrap {
  margin-top: 30px;
}

.product-specifications-img img,
.product-specifications-img svg {
  max-width: 1340px;
}

.catalog-number-block {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-flow: row nowrap;
  -ms-flex-flow: row nowrap;
  flex-flow: row nowrap;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  position: relative;
  z-index: 10;
}

.catalog-number-block .catalog-number {
  font-size: 24px;
  line-height: 1.2;
  padding-bottom: 16px;
}

.product-desciption {
  height: 127px;
  overflow: hidden;
  transition: all 0.5s ease;
}

.product-desciption.active {
  height: auto;
  overflow: unset;
  transition: all 0.3s ease;
}

/* SITERM */
/*.catalog-img {
	height:430px;
}
.catalog-img {
	display: flex !important;
	align-items: center;
}*/
.catalog-img a {
  height: auto !important;
}

li.kitblock {
  display: grid;
  grid-template-columns: 10% 40% 10%;
  grid-gap: 20px;
  justify-content: start;
}

.kit-all .swiper-button-prev,
.kit-all .swiper-container-rtl .swiper-button-next {
  left: -50px;
  top: -22px !important;
}

.product-head-inputs .input-block {
  display: inline-grid;
  grid-template-rows: min-content min-content;
}

@media (min-width: 1024px) {
  .catalog-info:hover .checkbox {
    left: 20px;
  }

  /* .hover_block {
        visibility: hidden;
    } */

  .product-head-wrap {
    min-height: 470px;
  }

  .catalog-card:hover {
    border: 1px #cecfd2 solid;
  }

  #main_variant {
    position: absolute;
    bottom: 0;
    z-index: 11;
  }

  .kit-control {
    float: right;
    position: relative;
    top: -50px;
    margin-bottom: -50px;
  }

  .swiper-button-next,
  .swiper-button-prev {
    position: relative;
    top: 0;
  }

  .product-specifications-img picture img {
    max-width: unset;
    width: 100%;
  }

  /* .catalog-card:hover .hover_block {
        visibility: visible;
        position: absolute;
        left: -1px;
        bottom: 0;
        bottom: -50px;
        background: #F1F3F2;
        display: block;
        width: calc(100% + 2px);
        height: 50px;
        box-shadow: 0 10px 10px -5px silver;
        border-bottom: 1px #a4a4a4 solid;
        border-left: 1px #cecfd2 solid;
        border-right: 1px #cecfd2 solid;
    } */
}

.product-kits-ready .catalog-card:hover .catalog-info .checkbox {
  left: 20px;
}

.product-kits-ready .catalog-card:hover .checkbox {
  left: 20px;
}

/* .catalog-info .checkbox {
    transition: unset;
    left: 20px;
} */

/* .catalog-card:not(:hover) .catalog-info {
    min-height: 110px;
} */

/*.catalog.catalog-add .catalog-card:hover .catalog-info {
	padding-bottom: 21px;
}*/
.blog-row {
  margin-left: -5px;
  margin-right: -12px;
}

.ordering-mob-link {
  padding-bottom: 8px;
}

.kit-steps a {
  color: inherit;
}

tr.kit-prod-table {
  display: table-row;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  width: 600px;
}

td.kit-img-table {
  display: flex;
  min-width: 50px;
  min-height: 50px;
  align-items: center;
  align-content: center;
  justify-content: center;
  margin-right: 20px;
}

.kit-table a {
  color: initial;
  display: contents;
}

.more-description {
  margin: 24px 0 57px;
}

.swiper-button-next,
.swiper-button-prev {
  z-index: 9998;
  color: #2d885d;
}

.kit-wrap {
  display: flex;
  min-height: 500px;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: space-between;
}

.catalog-img img,
.catalog-img svg {
  max-height: 420px !important;
  position: relative;
}

.kit-button {
  text-align: left;
}

.prev_step {
  padding: 13px 32px 13px 22px;
  display: inline-block;
  font-size: 18px;
  line-height: 24px;
  color: #318959;
  position: relative;
}

.prev_step::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0px;
  -webkit-transform: translate(0, -50%) scaleX(-1);
  -ms-transform: translate(0, -50%) scaleX(-1);
  transform: translate(0, -50%) scaleX(-1);
  min-width: 24px;
  width: 24px;
  height: 24px;
  background-repeat: no-repeat;
  background-position: center;
  -webkit-background-size: contain;
  background-size: contain;
  background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 18L15 12L9 6' stroke='%23318959' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
  -webkit-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}

.prev_step:hover span::after {
  opacity: 1;
  visibility: visible;
}

.prev_step:hover::after {
  -webkit-transform: translate(-4px, -50%) scaleX(-1);
  -ms-transform: translate(-4px, -50%) scaleX(-1);
  transform: translate(-4px, -50%) scaleX(-1);
}

.kit-more.variants_block {
  width: 100%;
}

.kit-more {
  width: 100%;
  /* padding: 0px 24px 0px; */
}

.product-head-img {
  right: 0px;
}

.catalog-img {
  display: block;
  padding-bottom: 100%;
  background-repeat: no-repeat;
  background-position: center;
  -webkit-background-size: cover;
  background-size: cover;
}

/* .catalog-info {
    min-height: 0;
} */

a,
a.catalog-card:active,
a.catalog-card:focus,
a.catalog-card:hover,
a.catalog-card:visited {
  text-decoration: none;
  color: #cecfd2;
  -webkit-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}

a.catalog-card {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: space-between;
}

.kit-row {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-flow: row nowrap;
  -ms-flex-flow: row nowrap;
  flex-flow: row nowrap;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: flex-start;
}

.kit-simple {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
}

.kit-col {
  border: 1px #9999 solid;
  margin: 0;
  width: 268px;
}

.kit-col-img {
  display: block;
  padding: 120px;
  background-repeat: no-repeat;
  background-position: top;
  -webkit-background-size: contain;
  background-size: auto;
}

.kit-img {
  display: block;
  padding: 136px;
  background-repeat: no-repeat;
  background-position: center;
  -webkit-background-size: contain;
  background-size: auto;
}

.kit-content .kit-slide {
  padding-bottom: 0;
}

/* .kit-slide {
    min-width: 380px;
    width: 380px;
    min-height: 292px;
    border: 1px solid #cecfd2;
    position: relative;
    margin-bottom: 46px;
} */

/* span.kit-name {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
    -webkit-align-items: flex-end;
    -ms-flex-align: end;
    align-items: flex-end;
    min-height: 80px;
    padding: 12px 24px 21px;
    position: relative;
    -webkit-transition: padding-bottom .3s ease-in-out;
    -o-transition: padding-bottom .3s ease-in-out;
    transition: padding-bottom .3s ease-in-out;
} */
span.kit-name {
  width: 100%;
  height: 80px;
}

.kit-main-row {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-flow: row wrap;
  -ms-flex-flow: row wrap;
  flex-flow: row wrap;
  margin: 0 -12px;
  flex-direction: row;
  flex-wrap: nowrap;
}

.link.open::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 24px;
  height: 24px;
  background-image: url(
    data:image/svg + xml,
    %3Csvgwidth="24"height="24"viewBox="0 0 24 24"fill="none"xmlns="http://www.w3.org/2000/svg"%3E%3Cpathd="M9 18L15 12L9 6"stroke="%23318959"stroke-width="2"stroke-linecap="round"stroke-linejoin="round"/%3E%3C/svg%3E%0A
  );
  background-repeat: no-repeat;
  background-position: center;
  -webkit-background-size: contain;
  background-size: contain;
  -webkit-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
  transform: scaleX(-1);
}

.props_show_more.link.open::after {
  transform: rotate(90deg);
}

.header {
  position: fixed;
}

/* Стили для подложки */

.overlay {
  /* Скрываем подложку  */
  opacity: 0;
  visibility: hidden;

  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 20;
  transition: 0.3s all;
}

/* Стили для модальных окон */

.modal.add_basket {
  /* Скрываем окна  */
  opacity: 0;
  visibility: hidden;

  /*  Установаем ширину окна  */
  width: 100%;
  max-width: 400px;

  /*  Центрируем и задаем z-index */
  position: fixed;
  top: 25%;
  left: 85%;
  transform: translate(-50%, -50%);
  z-index: 30;
  /* Должен быть выше чем у подложки*/

  /*  Побочные стили   */
  box-shadow: 0 3px 10px -0.5px rgba(0, 0, 0, 0.2);
  text-align: start;
  padding: 30px;
  border-radius: 3px;
  background-color: #fff;
  transition: 0.3s all;
}

.modal.add_compaer {
  /* Скрываем окна  */
  opacity: 0;
  visibility: hidden;

  /*  Установаем ширину окна  */
  width: 100%;
  max-width: 400px;

  /*  Центрируем и задаем z-index */
  position: fixed;
  top: 25%;
  left: 85%;
  transform: translate(-50%, -50%);
  z-index: 30;
  /* Должен быть выше чем у подложки*/

  /*  Побочные стили   */
  box-shadow: 0 3px 10px -0.5px rgba(0, 0, 0, 0.2);
  text-align: start;
  padding: 30px;
  border-radius: 3px;
  background-color: #fff;
  transition: 0.3s all;
}

.modal.contact-form {
  /* Скрываем окна  */
  opacity: 0;
  visibility: hidden;

  /*  Установаем ширину окна  */
  width: 100%;
  max-width: 775px;

  /*  Центрируем и задаем z-index */
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 30;
  /* Должен быть выше чем у подложки*/

  /*  Побочные стили   */
  box-shadow: 0 3px 10px -0.5px rgba(0, 0, 0, 0.2);
  text-align: start;
  padding: 0px;
  border-radius: 3px;
  background-color: #fff;
  transition: 0.3s all;
}

.modal.video {
  opacity: 0;
  visibility: hidden;
  width: 100%;
  height: 500px;
  max-width: 500px;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 30;
  box-shadow: 0 3px 10px -0.5px rgb(0 0 0 / 20%);
  text-align: center;
  padding: 30px;
  border-radius: 3px;
  background-color: #fff;
  transition: 0.3s all;
}

/* Стили для активных классов подложки и окна */

.modal.active {
  opacity: 1;
  visibility: visible;
  z-index: 50000;
}
.overlay.active {
  opacity: 1;
  visibility: visible;
  z-index: 10000;
}

/* Стили для кнопки закрытия */

.modal__cross {
  width: 15px;
  height: 15px;
  position: absolute;
  top: 20px;
  right: 20px;
  fill: #444;
  cursor: pointer;
  z-index: 99;
}

.modal__title {
  font-weight: bold;
  padding-bottom: 15px;
}

.modal.video iframe {
  width: 100%;
  height: 100%;
}

/* .product-kits-ready .catalog-info .checkbox {
    position: absolute !important;
    bottom: 10px !important;
    left: 20px !important;
    top: unset !important;
} */

.header {
  z-index: 9999;
}

.catalog-big .catalog-img {
  display: block;
  padding-bottom: 48.7%;
  background-repeat: no-repeat;
  background-position: center;
  -webkit-background-size: cover;
  background-size: cover;
}

/*.product-kits-ready .catalog-card:hover .catalog-info {
    padding-bottom: 47px;
}*/

.product-kits-ready .catalog-card:hover .catalog-info .checkbox {
  opacity: 1;
  visibility: visible;
}

.catalog-info {
  min-height: 60px;
}

.product-head-buttons .btn-border {
  margin-right: 32px;
}

.btn-border {
  display: inline-block;
  text-align: center;
  font-size: 18px;
  line-height: 24px;
  color: #318959;
  white-space: nowrap;
  /* background-color: #318959; */
  border: 1px #318959 solid;
  padding: 13px 32px;
  position: relative;
}

/* #guarantee_form {
    margin: 28px 0 0;
} */

/* .ordering-sidebar-wrap {
    max-width: 330px;
} */
/* 


#order_form .ordering-sidebar-wrap {
    max-width: 495px;
  
} 

.cooperation-info {
    font-size: 18px;
    line-height: 1.3;
    padding-bottom: 16px;
}

/* .oferta {
    padding: 2px 0 2px 32px;
    display: block;
    position: relative;
}

.oferta input {
    position: absolute;
    top: 0;
    left: 0;
    width: 5%;
    height: 50%;
    opacity: 0;
    cursor: pointer;
    z-index: 2;
}

.oferta p {
    font-size: 16px;
    line-height: 20px;
    color: #636367;
    padding-top: 0;
    padding-bottom: 24px;
}

.oferta input:checked+.checkbox-ico {
    border: none;
    background-image: url("data:image/svg+xml,%3Csvg width='20' height='21' viewBox='0 0 20 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.8722 0.5C16.6553 0.5 17.3018 0.685651 17.9537 1.03427C18.6055 1.38288 19.1171 1.89446 19.4657 2.54631C19.8143 3.19816 20 3.84473 20 5.62777V15.3722C20 17.1553 19.8143 17.8018 19.4657 18.4537C19.1171 19.1055 18.6055 19.6171 17.9537 19.9657C17.3018 20.3143 16.6553 20.5 14.8722 20.5H5.12777C3.34473 20.5 2.69816 20.3143 2.04631 19.9657C1.39446 19.6171 0.88288 19.1055 0.534266 18.4537C0.185651 17.8018 0 17.1553 0 15.3722V5.62777C0 3.84473 0.185651 3.19816 0.534266 2.54631C0.88288 1.89446 1.39446 1.38288 2.04631 1.03427C2.69816 0.685651 3.34473 0.5 5.12777 0.5H14.8722ZM16.2931 6.16838C15.9062 5.79523 15.2934 5.79479 14.9059 6.1674L8 12.8077L5.09151 10.0142C4.70499 9.64291 4.09451 9.64238 3.70734 10.013L3.7 10.02C3.69076 10.0288 3.68171 10.0379 3.67285 10.0471C3.31683 10.4172 3.32823 11.0058 3.69831 11.3618L7.30704 14.8334C7.69407 15.2057 8.30607 15.2058 8.69327 14.8337L16.2989 7.52382C16.3074 7.5156 16.3158 7.50721 16.3241 7.49867C16.683 7.1265 16.6722 6.53386 16.3 6.17499L16.2931 6.16838Z' fill='%23318959'/%3E%3C/svg%3E%0A")
}

.oferta a {
    color: #636367;
} */

/* для элемента input c type="checkbox" */
.main-user-consent-request > input {
  position: absolute;
  z-index: -1;
  opacity: 0;
}

/* для элемента label, связанного с .custom-checkbox */
.main-user-consent-request > span {
  display: inline-flex;
  align-items: flex-start;
  user-select: none;
}

/* создание в label псевдоэлемента before со следующими стилями */
.main-user-consent-request > span::before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  flex-shrink: 0;
  flex-grow: 0;
  border: 1px solid #adb5bd;
  border-radius: 0.25em;
  margin-right: 0.5em;
  margin-top: 0.3em;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 100%;
}

/* стили при наведении курсора на checkbox */
.main-user-consent-request
  > input:not(:disabled):not(:checked)
  + span:hover::before {
  border-color: #31895954;
}

/* стили для активного чекбокса (при нажатии на него) */
.main-user-consent-request > input:not(:disabled):active + span::before {
  background-color: #31895954;
  border-color: #31895954;
}

/* стили для чекбокса, находящегося в фокусе */
.main-user-consent-request > input:focus + span::before {
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

/* стили для чекбокса, находящегося в фокусе и не находящегося в состоянии checked */
.main-user-consent-request > input:focus:not(:checked) + span::before {
  border-color: #80bdff;
}

/* стили для чекбокса, находящегося в состоянии checked */
.main-user-consent-request > input:checked + span::before {
  /* border-color: #0b76ef;
    background-color: #0b76ef; */
  border: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 20 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.8722 0.5C16.6553 0.5 17.3018 0.685651 17.9537 1.03427C18.6055 1.38288 19.1171 1.89446 19.4657 2.54631C19.8143 3.19816 20 3.84473 20 5.62777V15.3722C20 17.1553 19.8143 17.8018 19.4657 18.4537C19.1171 19.1055 18.6055 19.6171 17.9537 19.9657C17.3018 20.3143 16.6553 20.5 14.8722 20.5H5.12777C3.34473 20.5 2.69816 20.3143 2.04631 19.9657C1.39446 19.6171 0.88288 19.1055 0.534266 18.4537C0.185651 17.8018 0 17.1553 0 15.3722V5.62777C0 3.84473 0.185651 3.19816 0.534266 2.54631C0.88288 1.89446 1.39446 1.38288 2.04631 1.03427C2.69816 0.685651 3.34473 0.5 5.12777 0.5H14.8722ZM16.2931 6.16838C15.9062 5.79523 15.2934 5.79479 14.9059 6.1674L8 12.8077L5.09151 10.0142C4.70499 9.64291 4.09451 9.64238 3.70734 10.013L3.7 10.02C3.69076 10.0288 3.68171 10.0379 3.67285 10.0471C3.31683 10.4172 3.32823 11.0058 3.69831 11.3618L7.30704 14.8334C7.69407 15.2057 8.30607 15.2058 8.69327 14.8337L16.2989 7.52382C16.3074 7.5156 16.3158 7.50721 16.3241 7.49867C16.683 7.1265 16.6722 6.53386 16.3 6.17499L16.2931 6.16838Z' fill='%23318959'/%3E%3C/svg%3E%0A");
}

/* стили для чекбокса, находящегося в состоянии disabled */
.main-user-consent-request > input:disabled + span::before {
  background-color: #e9ecef;
}

.main-user-consent-request-popup-button-acc:hover {
  background: #318959 !important;
}

.main-user-consent-request-popup-button-acc {
  background: #318959 !important;
}

.main-user-consent-request-popup-button {
  color: #ffffff !important;
}

.main-user-consent-request-popup-button-rej {
  color: #000000 !important;
}

/* .oferta {
    padding: 24px 0 32px;
} */

.oferta {
  padding-bottom: 24px;
}

.oferta .page-title {
  margin-bottom: 39px;
}

.oferta-row {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-flow: row nowrap;
  -ms-flex-flow: row nowrap;
  flex-flow: row nowrap;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

.oferta-info {
  font-size: 18px;
  line-height: 1.3;
  padding-bottom: 16px;
  color: #404145;
}

/* .ordering-sidebar-wrap.sidebar-fixed {
    position: fixed;
    top: 15%;
} */

.page-title {
  margin: 0 0 24px;
}

.testimonials-link {
  border-bottom: none;
  text-decoration: underline;
}

.kit-col {
  padding: 0 10px 10px;
}

.kit-info {
  width: 70%;
}

.kit-main {
  width: 100%;
  margin-bottom: 32px;
}

.kit-content {
  width: 100%;
}

.swiper.kit-slider-final.swiper-container-initialized.swiper-container-horizontal {
  /* margin: 0 12px; */
  height: 300px;
  margin-bottom: 24px;
}

.smartfilter {
  height: 370px;
  overflow: hidden;
  transition: all 0.5s ease;
}

.smartfilter.active {
  height: auto;
  overflow: unset;
  transition: all 0.3s ease;
}

.kit-wrap .kit-info-icon {
  width: 20px;
  position: absolute;
  top: 18px;
  left: 240px;
  fill: #2d885d;
}

.kit-wrap .kit-info-icon span {
  display: none;
}

.kit-wrap .kit-info-icon:hover span {
  display: block;
  background: #ffff;
  width: 100%;
  min-width: 100px;
  height: auto;
  padding: 10px;
  z-index: 10;
}

@media (min-width: 768px) and (max-width: 768px) {
  .cooperation-form-img {
    display: block;
  }

  .cooperation-form-img img,
  .cooperation-form-img svg {
    display: block;
    max-width: 237px;
  }
}

@media only screen and (max-width: 768px) {
  .cooperation-form-message:not(.catalog-coop-form) p {
    max-width: 540px;
  }

  .catalog.catalog-add .catalog-info,
  .catalog.catalog-products .catalog-info,
  .product-kits-ready .catalog-info {
    /* min-height: 95px; */
    min-height: 114px;
  }

  /* .cooperation-form-img {
        display: block;
    }

    .cooperation-form-img img,
    .cooperation-form-img svg {
        display: block;
        max-width: 237px;
    } */
}

@media only screen and (max-width: 425px) {
  .cooperation-form-message:not(.catalog-coop-form) p {
    max-width: 200px;
  }
}

@media only screen and (min-width: 769px) {
  .ordering-sidebar-wrap.sidebar-fixed {
    position: fixed;
    top: 15%;
  }
}

@media only screen and (max-width: 1060px) {
  .product-head-img {
    right: auto;
  }

  .product-specifications-img {
    margin: 0 0px 32px;
  }

  .catalog-big .catalog-img {
    padding-bottom: 100%;
  }

  .kit-content .kit-slide {
    min-width: 289px;
    width: 290px;
    min-height: 292px;
    border: 1px solid #cecfd2;
    position: relative;
    margin-bottom: 46px;
  }

  .kit-wrap {
    display: flex;
    min-height: 400px;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: space-between;
  }

  .kit-img {
    display: block;
    padding: 160px;
    background-repeat: no-repeat;
    background-position: center;
    -webkit-background-size: contain;
    background-size: auto;
  }
}

#configurator .config_wrapper {
  margin-top: 0vh;
}
#config_main_product_title {
  min-height: 74px;
}
.hidden {
  display: none !important;
}
.visible_config_step_final {
  background-color: #318959 !important;
  color: #fff !important;
}
.list_result_item h6 {
  color: #888;
}
.h50vh {
  max-height: 100vh !important;
}

.catalog_number {
  width: 100%;
}
.config_item_photo {
  text-align: center;
  max-height: 100px;
}
.no_clicks {
  width: 1px;
  height: 1px;
}

.config_item .number .number-minuss,
.config_item .number .number-pluss {
  min-width: 24px;
  transform: unset;
  display: block;
  pointer-events: all;
  width: 24px;
  height: 24px;
  cursor: pointer;
}
@media all and (max-width: 768px) {
  .no_clicks {
    position: absolute;
  }
  .config_item .number .number-minuss,
  .config_item .number .number-pluss {
    min-width: 20px;
    width: 20px;
    height: 20px;
  }
  .catalog_number {
    font-size: 0.7em;
  }
  .config_product_title {
    min-height: 112px;
  }

  .config_item.active {
    position: fixed;
    top: 5vh;
    margin-left: auto;
    margin-right: auto;
    width: 90% !important;
    max-width: 90% !important;
    height: auto;
    max-height: 700px;
    border: 2px solid #eee;
    overflow: hidden;
  }
  .config_item.active .config_item_photo > span > img {
    width: 100%;
    margin: 0px auto;
  }
  .config_item.active .config_product_title {
    min-height: 1px;
  }
  .config_item.active .config_item_photo {
    max-width: 100%;
    max-height: 800px;
    overflow: hidden;
    padding-bottom: 0px;
  }
  .config_item_list .config_item_content {
    padding-bottom: 0px;
  }
}
@media all and (max-width: 640px) {
  .config_item.active {
    top: 100px !important;
    max-height: 560px;
  }
}

@media all and (max-width: 600px) {
  .config_item.active {
    top: 100px !important;
    max-height: 520px;
  }
}

@media all and (max-width: 480px) {
  .config_item.active {
    top: 50px !important;
    max-height: 400px;
  }
}

@media all and (max-width: 1160px) {
  .new-open-kit-constuktor,
  .btn-kit-opener,
  .link.get-cons {
    width: 272px;
    margin-bottom: 10px;
  }
}

.overlay.visible {
  z-index: 40;
}
.visible {
  visibility: visible !important;
  opacity: 1 !important;
  display: block !important;
}

#main_variant.variants_block {
  width: 100% !important;
  /*margin: 0px -8px;*/
}
#main_variant.variants_block .primary-btn.add_to_cart {
  padding: 13px 40px 18px 40px;
  min-width: 272px;
}
#main_variant.variants_block a.link.get-cons {
  width: 280px;
}
.product-title-wrap .product-head-inputs .input-block {
  padding: 0px 38px 0px 0px;
}
.product-title-wrap .product-head-inputs .input-block .offer_select {
  width: 272px;
}
.clearfix {
  display: block;
  width: 100%;
  float: none;
  clear: both;
  overflow: hidden;
  height: 1px;
}
.recommendations {
  margin-bottom: 30px;
}

.product-desciption-fix {
  overflow: visible;
  height: auto;
  margin-bottom: 10px;
}
.marker {
  margin-top: 10px;
  margin-left: 15px;
}
.marker-item {
  position: relative;
  padding-left: 25px;
  font-weight: 900;
  line-height: 22px;
}
.catalog-bottom li {
  font-size: 18px;
}
.marker-item + .marker-item {
  margin-top: 10px;
}
.descr {
  font-weight: 400;
  color: #636367;
}

.marker-item::before {
  position: absolute;
  content: "";
  background-image: url(/images/marker.png);
  width: 12px;
  height: 17px;
  background-repeat: no-repeat;
  color: green;
  left: 4.5px;
  top: 4px;
  /* top: 50%;
      transform: translateY(-50%); */
  font-size: 22px;
  font-weight: 400;
}


p.out_production {
  font-size: initial;
}

.product-head-img-wrap {
  position: relative;
}

.out-of-order-line {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: contain;
  left: 50%;
  transform: translateX(-50%);
}

.link.mr-5 {
  margin-right: 2em;
}

.all_buttons {
  flex: 1;
}


.config_result_body {
  height: 100%;
}

.config_result_more_text {
    color: #636367;
    padding: 24px 12px 0 24px;
    margin-top: auto;
}

.config_result_more_text.pl-0 {
  padding-left: 0;
}

.config_result_more_text p {
    padding-left: 28px;
    margin-bottom:1em;
    position:relative;
}

.config_result_more_text p:before {
    content: "";
    position: absolute;
    left: 0;
    width: 20px;
    height: 20px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19.8 19.8' xml:space='preserve'%3E%3Ccircle cx='9.9' cy='9.9' r='9' fill='none' stroke='%23000' stroke-width='1.76' stroke-miterlimit='10'/%3E%3Ccircle cx='9.9' cy='6' r='1.2'/%3E%3Cpath d='M11.4 12.8h-.7V9.4c0-.5-.4-.9-.9-.9H8.5c-.5 0-.9.4-.9.9s.4.9.9.9H9v2.5h-.7c-.5 0-.9.4-.9.9s.4.9.9.9h3.1c.5 0 .9-.4.9-.9s-.4-.9-.9-.9z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    opacity:.5;
}

.config_result_more_text a {
    color: #318959;
    text-decoration: none;
    border-bottom:1px dashed #318959;
}

@media screen and (max-width: 768px) {
  .config_result_more_text {
    display: none;
  }
}

/* Стили для блока с итоговой суммой над кнопкой */
.config_result_total_text {
  color: #636367;
  padding: 24px 12px 0 24px;
  margin-top: auto;
}

.config_result_total_text.pl-0 {
  padding-left: 0;
}


.config_result_total_text p {
  padding-left: 0;
  margin-bottom: 1em;
  position: relative;
  font-size: 20px;
  font-weight: 600;
  display: flex;
  justify-content: space-between;
}

@media screen and (max-width: 768px) {
  .config_result_total_text {
    display: none;
  }
}

/* Стили для цены в конфигураторе */
.config_item_quantity_price {
  display: flex;
  align-items: flex-end;
  gap: 24px;
  flex-wrap: wrap;
}

.config_item_quantity_wrapper {
  flex: 0 0 auto;
}

.config_item_price_wrapper {
  flex: 0 0 auto;
}

.config_item_price {
  font-size: 24px;
  height: 50px;
  margin: 0;
  padding-top: 8px;
}

.config_item_price span {
  font-size: 20px;
  font-weight: 600;
  color: #616369;
}

/* Кнопки должны быть частью flex-контейнера */
.config_item_count .config_item_quantity_price .config_item_btns,
.config_item_count .config_item_quantity_price .guide_item_btns {
  flex: 0 0 auto;
  margin-left: 0;
}

/* Отключение выделения текста при двойном клике на кнопки */
.config_item .number-minus,
.config_item .number-plus,
.config_item .number-minuss,
.config_item .number-pluss,
.config_main_product_number_minus,
.config_main_product_number_plus,
.dop_product_minus,
.dop_product_plus,
.config_item_price,
.config_item_price_wrapper {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

/* Стили для каталожного номера в сайдбаре */
.config_result_catalog_number {
  padding-top: 5px;
}

/* Стили для стоимости в сайдбаре конфигуратора */
.config_result_price {
  display: flex;
  justify-content: space-between;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid #e0e0e0;
}

/* Стили для итоговой суммы в конфигураторе */
.config_total_price_block {
  padding: 15px 0;
  border-top: 2px solid #2d5a27;
  margin-bottom: 15px;
}

.config_total_price {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 28px;
  font-weight: 700;
  color: #2d5a27;
}

.config_total_price span:first-child {
  font-size: 24px;
}

.config_total_price span:last-child {
  font-size: 32px;
}

/* Корзина (шаг 1): цена справа от кнопки удаления */
.cart-item-price {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  padding: 0 24px;
  margin-left: 24px;
  font-size: 24px;
  line-height: 1;
  color: #616369;
  white-space: nowrap;
  background-color: #fff;
}

.cart-item-price--request {
  font-size: 12px;
  line-height: 1.2;
  color: #616369;
  max-width: 280px;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Цена и надпись «цены с НДС» в ряд (справа от цены) */
.product-price-row,
.config_item_price_row,
.cart-item-price-row {
  display: flex;
  align-items: baseline;
  gap: 0.5em;
  flex-wrap: wrap;
}

.product-price-vat-note,
.config_item_price_vat_note,
.config_result_price_vat_note,
.cart-price-vat-note {
  font-size: 12px;
  color: #888;
  white-space: nowrap;
}

.product-head-inputs .input-block .product-price.product-price--text {
  font-size: 18px;
}

.config_result_price_right {
  display: inline-flex;
  align-items: baseline;
  gap: 0.25em;
}

.config_result_total_right {
  display: inline-flex;
  align-items: baseline;
  gap: 0.25em;
}

/* Итоги корзины в сайдбаре: нетто, НДС, всего */
.ordering-sidebar-totals {
  display: block;
  margin-top: 1em;
  margin-bottom: 1em;
}

.ordering-total-row {
  font-size: 16px;
  line-height: 1.5;
  display: flex;
  justify-content: space-between;
  gap: 1em;
}

.ordering-total-row--sum {
  font-weight: 600;
  font-size: 18px;
  margin-top: 0.25em;
  padding-top: 0.5em;
  border-top: 1px solid rgba(0, 0, 0, 0.15);
}

.ordering-sidebar-no-price-notice {
  font-size: 14px;
  color: #666;
  line-height: 1.4;
  margin: 0.75em 0 0;
}

/* Цена в модалке фотоадаптера — label без radio-иконки, в одном ряду с quantity и кнопками */
#guide_adapter .guide_item .config_item_quantity_price {
  display: flex;
  align-items: flex-end;
  gap: 24px;
  flex-wrap: wrap;
}
#guide_adapter .guide_item .config_item_price_wrapper label:before {
  display: none;
}


/* ---- FAQ в описании категории (2026-08-02).
   Разметка и переключение — боевые (div.catalog-bottom-faq + is-open из js/custom.js).
   Оформление НАШЕ: Никита сравнил с боевым и выбрал это.
   Ширина и кегль совпадают с текстом категории, поэтому блок читается как её продолжение. ---- */
.catalog-bottom-faq {
    max-width: 888px;
    margin: 48px 0 0;
}

.catalog-bottom-faq__title {
    font-size: 32px;
    line-height: 1.1;
    font-weight: 700;
    color: #318959;
    margin: 0 0 24px;
}

.catalog-bottom-faq__item {
    border-bottom: 1px solid #e3e6e8;
}

.catalog-bottom-faq__item:first-of-type {
    border-top: 1px solid #e3e6e8;
}

/* блочная раскладка, а не flex: в тексте вопроса встречается <sup> (LED{HQ}),
   при space-between он становился отдельным flex-элементом и разрывал строку */
.catalog-bottom-faq__question {
    position: relative;
    display: block;
    padding: 18px 44px 18px 0;
    font-size: 18px;
    line-height: 24px;
    font-weight: 600;
    color: #404145;
    cursor: pointer;
    user-select: none;
    transition: color .2s;
}

.catalog-bottom-faq__question:hover,
.catalog-bottom-faq__item.is-open .catalog-bottom-faq__question {
    color: #318959;
}

/* шеврон: у боевой иконки два псевдоэлемента-палочки, здесь они не нужны */
.catalog-bottom-faq__icon {
    position: absolute;
    right: 8px;
    top: 50%;
    width: 10px;
    height: 10px;
    margin-top: -7px;
    border-right: 2px solid #318959;
    border-bottom: 2px solid #318959;
    transform: rotate(45deg);
    transition: transform .2s ease;
}

.catalog-bottom-faq__icon::before,
.catalog-bottom-faq__icon::after {
    content: none;
}

.catalog-bottom-faq__item.is-open .catalog-bottom-faq__icon {
    transform: rotate(-135deg);
    margin-top: -3px;
}

.catalog-bottom-faq__answer {
    overflow: hidden;
    max-height: 0;
    transition: max-height .35s ease;
}

.catalog-bottom-faq__item.is-open .catalog-bottom-faq__answer {
    max-height: 2000px;
}

.catalog-bottom-faq__answer-inner {
    padding: 0 44px 20px 0;
    font-size: 18px;
    line-height: 26px;
    color: #404145;
}

.catalog-bottom-faq__answer-inner p {
    padding-bottom: 12px;
}

.catalog-bottom-faq__answer-inner p:last-child {
    padding-bottom: 0;
}

.catalog-bottom-faq__answer-inner a {
    color: #318959;
    text-decoration: underline;
}

@media (max-width: 768px) {
    .catalog-bottom-faq { margin-top: 32px; }
    .catalog-bottom-faq__title { font-size: 24px; }
    .catalog-bottom-faq__question,
    .catalog-bottom-faq__answer-inner { font-size: 16px; line-height: 22px; }
}

/* ---- списки в описании категории (2026-08-02).
   В теме у списков list-style: none, поэтому пункты описания шли просто новыми строками.
   Берём проектный вид маркера (.marker-item, /images/marker.png) — тот же, что в карточке
   товара, чтобы на сайте был один стиль списка, а не два. ---- */
.category_description ul,
.category_description ol {
    max-width: 888px;
    margin: 0 0 20px;
    padding: 0;
    list-style: none;
}

.category_description li {
    position: relative;
    padding-left: 25px;
    margin-bottom: 12px;
    font-size: 18px;
    line-height: 26px;
    color: #404145;
}

.category_description li:last-child {
    margin-bottom: 0;
}

.category_description li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 5px;
    width: 12px;
    height: 17px;
    background-image: url(/images/marker.png);
    background-repeat: no-repeat;
}

/* внутри пункта абзац не должен добавлять свой нижний отступ — иначе список «разъезжается» */
.category_description li > p {
    max-width: none;
    padding-bottom: 0;
    margin: 0;
}

/* тот же маркер для списков внутри ответов FAQ */
.catalog-bottom-faq__answer-inner ul,
.catalog-bottom-faq__answer-inner ol {
    margin: 8px 0 12px;
    padding: 0;
    list-style: none;
}

.catalog-bottom-faq__answer-inner li {
    position: relative;
    padding-left: 25px;
    margin-bottom: 8px;
}

.catalog-bottom-faq__answer-inner li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 4px;
    width: 12px;
    height: 17px;
    background-image: url(/images/marker.png);
    background-repeat: no-repeat;
}

/* ---- подзаголовки в описании категории (2026-08-02).
   У h2 в теме нет ни отступов, ни цвета — заголовок прилипал к своему тексту.
   h3 уже имеет padding-bottom из main.min.css, ему добавляем только верхний отступ. ---- */
.category_description h2,
.category_description h3,
.category_description h4 {
    display: block;
    max-width: 888px;
    margin-top: 32px;
    font-weight: 700;
    color: #404145;
}

/* шкала как на текстовых страницах (.aboutUs-content) — один вид заголовков по сайту */
.category_description h2 { font-size: 32px; line-height: 40px; }
.category_description h3 { font-size: 24px; line-height: 1.2; }
.category_description h4 { font-size: 20px; line-height: 1.3; }

.category_description h2,
.category_description h4 {
    margin-bottom: 10px;
}

.category_description h2:first-child,
.category_description h3:first-child,
.category_description h4:first-child {
    margin-top: 0;
}

/* Заглушка вместо живого плеера YouTube (2026-09-04).
   Плеер грузился при открытии страницы и клал идентификатор устройства
   до всякого клика. Своя обложка + кнопка, настоящий плеер по клику.
   Размеры держим на самой коробке, чтобы вёрстка не прыгала при подмене. */
.y-facade { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9;
            cursor: pointer; background: #000; overflow: hidden; }
.y-facade img, .y-facade iframe { width: 100%; height: 100%; display: block; border: 0; }
.y-facade img { object-fit: cover; }
.y-facade-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
                 width: 68px; height: 48px; padding: 0; border: 0; border-radius: 12px;
                 background: rgba(0, 0, 0, .65); cursor: pointer; transition: background .15s; }
.y-facade:hover .y-facade-play { background: #cb0d0d; }
.y-facade-play span { display: block; width: 0; height: 0; margin: 0 auto;
                      border-style: solid; border-width: 10px 0 10px 17px;
                      border-color: transparent transparent transparent #fff; }

/* Баннер согласия (2026-09-04). Печатается всем одинаково, показывает
   или прячет его JS по куке: страницы кэшируются, а куки согласия
   в ключе кэша нет. */
/* Спрятанный баннер обязан быть спрятан. Правило браузера [hidden]{display:none}
   живёт в его таблице стилей, а display:flex ниже — в нашей, и авторская
   всегда сильнее. Без этой строки атрибут hidden не значит ничего: баннер
   висел бы и у тех, кто уже ответил, — а обработчики им не навешаны, потому
   что выбор уже сделан. Ровно это и выглядит как «баннер не кликается». */
/* Согласие на счётчики — окно по центру, а не строка внизу.

   Строку внизу за неделю показали 52 раза: согласились 5, отказались 3,
   не ответили 44. То есть она не собирала отказов — она вообще не собирала
   решений, а молчание согласием не является. Окно по центру требует
   осознанного выбора, и это же требует закон: согласие должно быть
   действием, а не невнимательностью.

   Прокрутку страницы намеренно НЕ блокируем: доступ к содержимому
   не должен зависеть от решения по счётчикам. */
.heine-consent[hidden] { display: none; }
.heine-consent { position: fixed; inset: 0; z-index: 9999;
                 display: flex; align-items: center; justify-content: center;
                 padding: 20px; background: rgba(28, 32, 30, .45); font-size: 14px; }
.heine-consent-box { width: 100%; max-width: 520px; background: #fff;
                     color: #1c201e; border-radius: 10px; padding: 28px;
                     box-shadow: 0 12px 40px rgba(0, 0, 0, .22);
                     /* Страховка на низкий экран: телефон в ландшафте, а ещё
                        увеличенный системный шрифт. Без неё окно вырастает выше
                        экрана, и кнопки оказываются там, куда не дотянуться —
                        то есть выбор сделать нельзя вовсе. */
                     max-height: calc(100vh - 40px); overflow-y: auto; }
.heine-consent-box:focus { outline: none; }
.heine-consent-title { margin: 0 0 10px; font-size: 20px; line-height: 1.25; }
.heine-consent-text { line-height: 1.5; }
.heine-consent-text a { color: #318959; text-decoration: underline; }
.heine-consent-buttons { display: flex; gap: 12px; margin-top: 22px; }

/* Кнопки РАВНОЗНАЧНЫ намеренно: одинаковый размер, фон и рамка, разный
   только текст. Заливная «Принять» рядом с бледным отказом — это
   подталкивание, за которое в Германии штрафуют отдельно от самого
   согласия. Отказаться должно быть ровно так же легко, как согласиться. */
.heine-consent button { flex: 1 1 0; padding: 12px 18px; border-radius: 6px;
                        cursor: pointer; font: inherit; line-height: 1.2;
                        background: #fff; color: #1c201e;
                        border: 1px solid #b9c2bd; transition: border-color .15s; }
.heine-consent button:hover { border-color: #318959; }
.heine-consent button:focus-visible { outline: 2px solid #318959; outline-offset: 2px; }

@media (max-width: 560px) {
    .heine-consent-box { padding: 22px 18px; }
    .heine-consent-buttons { flex-direction: column; }
}

/* Правовые ссылки в подвале (2026-09-05, перевёрстано в тот же день).
   Отдельная строка ПОД содержимым подвала, а не колонка в нём: .footer .wrapper
   разложен в одну строку без переноса, и список вставал четвёртым столбцом
   рядом с контактами. И color: inherit там давал чёрный по тёмному.
   Это служебная приписка — мелко, приглушённо, подчёркивание по наведению. */
/* Соцсети в подвале прибиты к его низу абсолютом (bottom: 40px, left: 20px).
   Поэтому правовые ссылки становятся на ту же нижнюю линию, но справа:
   слева значки, справа приписка. Отдельной полосой сверху их не поставить —
   линия прошла бы сквозь значки. */
/* 4px снизу — не на глаз: при нём середина строки ссылок совпадает
   с серединой значков соцсетей, которые прибиты к bottom: 40px. */
.footer-legal { margin-top: 24px; padding: 0 0 4px; }

/* Подвал держит 56px снизу — они были осмысленны, пока последним в нём был
   блок контактов. Теперь последняя строка это правовые ссылки, и те же 56px
   читаются как пустая дыра до края экрана. Сужаем только там, где строка
   действительно есть: без правовых страниц подвал остаётся прежним. */
.footer:has(.footer-legal) { padding-bottom: 16px; }
.footer .footer-legal .wrapper { display: flex; flex-wrap: wrap; gap: 8px 24px;
                                 justify-content: flex-end; align-items: center;
                                 min-height: 32px; }
.footer-legal a { color: rgba(255, 255, 255, .55); font-size: 13px; line-height: 1.4;
                  text-decoration: none; transition: color .15s; }
.footer-legal a:hover { color: rgba(255, 255, 255, .9); text-decoration: underline; }

@media (max-width: 560px) {
    /* На узком экране значки и ссылки в одну линию не встают: уводим ссылки
       под них, выравниванием по левому краю. */
    .footer-legal { padding-bottom: 56px; }
    .footer .footer-legal .wrapper { justify-content: flex-start; }
}

/* Кнопка внутри блока-сообщения.

   `.message-info p a` красит ссылки зелёным и подчёркивает — правило про
   ТЕКСТОВЫЕ ссылки, но кнопка попадает под него заодно и по специфичности
   перебивает `.primary-btn { color: #fff }`. Получается зелёный текст на
   зелёном фоне: видно только стрелку, надпись читается лишь выделением.

   Замечено 2026-09-06 на новых страницах оплаты. Тем же болеет и страница
   «заказ не сохранён» — её разметка перенесена с боевого сайта 1:1, значит
   дефект там же и живёт с самого переезда. */
.message-info p a.primary-btn {
  color: #fff;
  border-bottom: 0;
}

/* Ряд действий на экране «заказ принят».

   Кнопки стоят рядом, а не одна под другой: действий два, и они не равны —
   скачать документ важнее, чем уйти на главную. Поэтому первая заливная,
   вторая контурная.

   Раньше кнопка скачивания стояла внутри `<p>`, и `.ordering-thanks p a`
   красил её текст зелёным поверх белого — зелёное по зелёному, читалось
   только выделением. Разметка исправлена, правило больше не задевает кнопку;
   отступ снизу, который давал абзац, задан здесь явно. */
.ordering-thanks-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  padding-top: 24px;
}

.ordering-thanks-actions .btn-border {
  padding: 15px 32px;
}

@media (max-width: 767px) {
  .ordering-thanks-actions {
    gap: 12px;
  }

  .ordering-thanks-actions .primary-btn,
  .ordering-thanks-actions .btn-border {
    width: 100%;
    text-align: center;
  }
}

/* Поле заполнено, но ответ по нему не получен.

   Общая подсветка `.input-error` заодно раскрывает подпись «поле не заполнено» —
   она лежит в разметке каждого обязательного поля. Для неподтверждённого
   VAT-номера это неправда и сбивает: человек смотрит на заполненное поле и
   читает, что оно пустое. Рамку оставляем, подпись гасим — объяснение даёт
   строка результата проверки прямо под полем. */
.input-block.input-error.is-unconfirmed .text-error {
  display: none;
}

/* Согласие с условиями на подтверждении заказа.
   Требование § 305 Abs. 2 BGB, а не украшение: без указания на условия и
   согласия с ними опубликованный документ частью договора не становится. */
.ordering-item-consent { margin: 0 0 16px; }
.ordering-item-consent .checkbox { padding: 2px 0 2px 32px; }
.ordering-item-consent .checkbox-text { font-size: 14px; line-height: 1.5; color: #404145; }
/* Ссылка обязана быть выше невидимой накладки флажка: `.checkbox input`
   растянут на весь блок (position:absolute, 100%/100%, z-index:2), и без этого
   клик по ссылке достаётся флажку — условия не открывались, а переключалась
   галочка. Никита, 2026-09-10. */
.ordering-item-consent .checkbox-text a { position: relative; z-index: 3; color: #318959; border-bottom: 1px dashed rgba(49, 137, 89, 0.4); }
.ordering-item-consent .checkbox-text a:hover { color: #307d53; }
.ordering-item-legal { margin: 8px 0 0 32px; font-size: 13px; line-height: 1.5; color: #636367; }

/* ---------------------------------------------------------------------------
   Сведения о доставке и оплате в начале оформления (§ 312j Abs. 1 BGB).

   Норма требует не только сообщить, но сообщить ЧИТАЕМО, поэтому это не
   мелкий серый шрифт под всем содержимым: тот же размер, что у обычного
   текста страницы, и приглушённая подложка, чтобы строка читалась как
   сведение, а не как реклама.
   --------------------------------------------------------------------------- */
.ordering-precheck {
    margin: 0 0 20px;
    padding: 12px 16px;
    background: #f4f6f5;
    border-radius: 8px;
    font-size: 14px;
    line-height: 1.5;
    color: #4a4a4f;
}

.ordering-precheck p { margin: 0; }
.ordering-precheck p + p { margin-top: 4px; }
.ordering-item-legal a { color: #318959; border-bottom: 1px dashed rgba(49, 137, 89, 0.4); }

/* ---------------------------------------------------------------------------
   Спрятанное для глаз, но не для читалок экрана.

   Правила `.visually-hidden` на сайте не было ВООБЩЕ — только внутри
   `.header-lang`. Класс при этом используют и ядро, и вендор: у системного
   сообщения тип лежит в `<span class="visually-hidden">danger</span>` внутри
   заголовка, и без правила это слово печаталось поверх сообщения на каждой
   странице сайта, где сообщение появляется. Видно стало на экране входа —
   «danger / Please login first».

   Определение стандартное. Класс означает «убрать с экрана, оставить
   читалке», поэтому глобальное правило безопаснее точечных: следующий раз
   ядро положит его в другое место, и прятать снова будет нечем.
   --------------------------------------------------------------------------- */
.visually-hidden,
.sr-only {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ---------------------------------------------------------------------------
   Как выглядит поле, которое не приняли.

   Классы ставит ЯДРО Joomla (`media/system/js/fields/validate.js`): `invalid`
   на поле и на подпись, `form-control-danger` на поле, `has-danger` на обёртку,
   а сам текст ошибки — `<span class="form-control-feedback">` ВНУТРЬ подписи.
   В нашем шаблоне не было описано ни одного из них, поэтому «Please fill in
   this field» печаталось чёрным основным шрифтом вплотную к названию поля и
   читалось как часть названия.

   Правила взяты из Cassiopeia — штатного шаблона Joomla, где они есть
   (`media/templates/site/cassiopeia/css/template.css`), — и перекрашены в наш
   красный, тот же, которым нарисована звёздочка обязательного поля.

   ГЛОБАЛЬНО, а не внутри `.account-page`: класс ставит ядро, и следующая форма
   на сайте получит его без нашего участия. Ровно та же причина, по которой
   сюда легло `.visually-hidden`.
   --------------------------------------------------------------------------- */
/* РЯДОМ С НАЗВАНИЕМ, А НЕ СТРОКОЙ НИЖЕ. Ядро вкладывает этот span ВНУТРЬ
   подписи поля, поэтому `display: block` разрывал подпись надвое и добавлял
   строку: соседние поля в ряду разъезжались по высоте, а форма прыгала каждый
   раз, когда ошибка появлялась или уходила. Строчным элемент занимает место в
   той же строке — высота подписи не меняется, и вёрстка стоит на месте. */
.form-control-feedback {
    display: inline;
    margin-left: 8px;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.4;
    color: #d52b1e;
}

label.invalid,
.invalid > .form-control-feedback {
    color: #d52b1e;
}

/* Рамку вешаем на `form-control-danger`, а не на `invalid`: с поля класс
   `invalid` ядро при возврате в него не снимает (снимает только с подписи),
   и рамка висела бы всё время, пока человек исправляет ошибку. */
.form-control-danger,
input.invalid,
select.invalid,
textarea.invalid {
    border-color: #d52b1e;
}
