html {
  scroll-behavior: smooth;
}

#about,
#services,
#knowledge,
#steps,
#works,
#documents,
#contacts {
  scroll-margin-top: 110px;
}

.phone-link {
  color: inherit;
  text-decoration: none;
}

.menu-anchor.current-menu-item > a,
.menu-anchor.current_page_item > a,
.menu-anchor.current-menu-ancestor > a,
.menu-anchor.current-menu-parent > a,
.menu-anchor.ct-active > a,
.menu-anchor > a[aria-current="page"] {
  color: #ffffff !important;
  background: transparent !important;
  box-shadow: none !important;
}

.menu-anchor.current-menu-item > a:hover,
.menu-anchor.current_page_item > a:hover,
.menu-anchor.current-menu-ancestor > a:hover,
.menu-anchor.current-menu-parent > a:hover,
.menu-anchor.ct-active > a:hover,
.menu-anchor > a[aria-current="page"]:hover,
.menu-anchor > a:hover {
  color: #F28A2E !important;
}

.menu-anchor.current-menu-item > a::after,
.menu-anchor.current_page_item > a::after,
.menu-anchor.current-menu-ancestor > a::after,
.menu-anchor.current-menu-parent > a::after,
.menu-anchor.ct-active > a::after {
  opacity: 0 !important;
  transform: scaleX(0) !important;
}

a.menu-anchor.current-menu-item,
a.menu-anchor.current_page_item,
a.menu-anchor[aria-current="page"] {
  color: #ffffff !important;
  background: transparent !important;
  box-shadow: none !important;
}

a.menu-anchor.current-menu-item:hover,
a.menu-anchor.current_page_item:hover,
a.menu-anchor[aria-current="page"]:hover,
a.menu-anchor:hover {
  color: #F28A2E !important;
}

.current-menu-item:not(.menu-anchor) > a,
.current_page_item:not(.menu-anchor) > a,
.current-menu-ancestor:not(.menu-anchor) > a,
.current-menu-parent:not(.menu-anchor) > a,
.ct-active:not(.menu-anchor) > a,
a[aria-current="page"]:not([href*="#"]) {
  color: #F28A2E !important;
  background: transparent !important;
  box-shadow: none !important;
}

.current-menu-item:not(.menu-anchor) > a:hover,
.current_page_item:not(.menu-anchor) > a:hover,
.current-menu-ancestor:not(.menu-anchor) > a:hover,
.current-menu-parent:not(.menu-anchor) > a:hover,
.ct-active:not(.menu-anchor) > a:hover,
a[aria-current="page"]:not([href*="#"]):hover {
  color: #E9781E !important;
}

.twentytwenty-wrapper,
.twentytwenty-container,
.bafg-twentytwenty-container,
.bafg-container {
  border-radius: 20px 20px 0 0;
  overflow: hidden;
}

.cf7-request-form {
  width: 100%;
  background: #ffffff;
  border-radius: 18px;
  padding: 36px;
  box-shadow: 0 18px 45px rgba(19, 26, 34, 0.14);
  box-sizing: border-box;
}

.cf7-request-form *,
.cf7-request-form *::before,
.cf7-request-form *::after {
  box-sizing: border-box;
}

.cf7-request-form p {
  margin: 0;
}

.cf7-request-form br {
  display: none;
}

.cf7-request-form .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

.cf7-grid {
  display: grid;
  gap: 16px;
  margin-bottom: 16px;
}

.cf7-grid-3 {
  grid-template-columns: repeat(3, 1fr);
}

.cf7-grid-2 {
  grid-template-columns: repeat(2, 1fr);
}

.cf7-field input,
.cf7-field textarea {
  width: 100%;
  height: 48px;
  border: 1px solid #D9E1E8;
  border-radius: 8px;
  padding: 0 18px;
  font-size: 15px;
  font-weight: 400;
  color: #1F2933;
  background: #ffffff;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.cf7-field textarea {
  height: 115px;
  padding-top: 16px;
  line-height: 1.45;
  resize: none;
  margin-bottom: 0;
}

.cf7-field input::placeholder,
.cf7-field textarea::placeholder {
  color: #8A95A3;
}

.cf7-field input:focus,
.cf7-field textarea:focus {
  border-color: #F28A2E;
  box-shadow: 0 0 0 3px rgba(242, 138, 46, 0.12);
}

.cf7-upload {
  border: 1px dashed #C9D3DE;
  border-radius: 10px;
  padding: 18px 22px;
  margin-top: 16px;
  margin-bottom: 18px;
  background: #ffffff;
}

.cf7-upload-title {
  font-size: 16px;
  font-weight: 700;
  color: #1C2530;
  margin-bottom: 4px;
}

.cf7-upload-text {
  font-size: 14px;
  color: #5B6673;
  margin-bottom: 12px;
}

.cf7-upload input[type="file"] {
  width: 100%;
  font-size: 14px;
  color: #5B6673;
}

.cf7-bottom {
  display: grid;
  grid-template-columns: 1fr 260px;
  align-items: center;
  gap: 24px;
  margin-top: 18px;
}

.cf7-acceptance {
  font-size: 14px;
  color: #5B6673;
  line-height: 1.35;
}

.cf7-acceptance label {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.cf7-acceptance input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin-top: 2px;
  accent-color: #F28A2E;
  flex: 0 0 auto;
}

.cf7-submit input[type="submit"] {
  width: 100%;
  height: 54px;
  border: none;
  border-radius: 7px;
  background: #F28A2E;
  color: #ffffff;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.cf7-submit input[type="submit"]:hover {
  background: #E9781E;
}

.cf7-submit input[type="submit"]:disabled {
  background: #F6C79A;
  cursor: not-allowed;
  opacity: 1;
}

.wpcf7-not-valid-tip {
  font-size: 13px;
  color: #D93025;
  margin-top: 6px;
}

.wpcf7-response-output {
  border-radius: 8px;
  margin: 18px 0 0 !important;
  padding: 14px 18px !important;
  font-size: 14px;
}

.steps-row,
.steps-row .e-con-inner,
.steps-row .step-card {
  overflow: visible !important;
}

.steps-row .step-card {
  position: relative !important;
}

.steps-row .step-card:not(:last-child)::after {
  content: "";
  position: absolute;
  top: -5px;
  left: calc(100% - 20px);
  width: 58px;
  height: 14px;
  background: url("data:image/svg+xml,%3Csvg width='58' height='14' viewBox='0 0 58 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 7H51' stroke='%23F28A2E' stroke-width='3' stroke-linecap='round'/%3E%3Cpath d='M46 2L51 7L46 12' stroke='%23F28A2E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  pointer-events: none;
  animation: stepArrowMove 1.4s ease-in-out infinite;
}

@keyframes stepArrowMove {
  0%,
  100% {
    transform: translateX(0);
    opacity: 0.45;
  }

  50% {
    transform: translateX(6px);
    opacity: 1;
  }
}

@media (max-width: 1024px) {
  .steps-row .step-card::after {
    display: none !important;
  }
}

@media (max-width: 900px) {
  .cf7-request-form {
    padding: 24px;
    border-radius: 14px;
  }

  .cf7-grid-3,
  .cf7-grid-2,
  .cf7-bottom {
    grid-template-columns: 1fr;
  }

  .cf7-bottom {
    gap: 16px;
  }
}

@media (max-width: 768px) {
  #about,
  #services,
  #knowledge,
  #steps,
  #works,
  #documents,
  #contacts {
    scroll-margin-top: 90px;
  }
}

@media (max-width: 767px) {
  .docs-scroll-gallery {
    overflow: hidden;
  }

  .docs-scroll-gallery .elementor-image-gallery .gallery {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    gap: 14px;
    padding: 6px 2px 14px;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }

  .docs-scroll-gallery .elementor-image-gallery .gallery-item {
    flex: 0 0 62% !important;
    width: auto !important;
    max-width: 240px !important;
    min-width: 0 !important;
    margin: 0 !important;
    float: none !important;
    scroll-snap-align: start;
  }

  .docs-scroll-gallery .elementor-image-gallery .gallery-item img {
    width: 100% !important;
    height: auto !important;
    display: block;
    border-radius: 6px;
  }

  .docs-scroll-gallery .elementor-image-gallery .gallery::-webkit-scrollbar {
    height: 4px;
  }

  .docs-scroll-gallery .elementor-image-gallery .gallery::-webkit-scrollbar-track {
    background: transparent;
  }

  .docs-scroll-gallery .elementor-image-gallery .gallery::-webkit-scrollbar-thumb {
    background: rgba(242, 138, 46, 0.35);
    border-radius: 10px;
  }
}

@media (max-width: 480px) {
  .cf7-request-form {
    padding: 16px;
  }

  .cf7-field input,
  .cf7-field textarea {
    font-size: 14px;
  }

  .cf7-upload {
    padding: 16px;
  }

  .cf7-bottom {
    margin-top: 14px;
    gap: 14px;
  }

  .cf7-submit input[type="submit"] {
    height: 50px;
    font-size: 15px;
  }

  .cf7-acceptance {
    font-size: 13px;
  }
}

.ct-panel,
.ct-panel .ct-panel-content,
.ct-panel .ct-panel-inner {
  background: rgba(19, 26, 34, 0.98) !important;
}

.ct-panel a,
.ct-panel .ct-menu-link {
  color: #ffffff !important;
  background: transparent !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

.ct-panel .menu-anchor > a,
.ct-panel .menu-anchor > .ct-menu-link,
.ct-panel a[href$="#about"],
.ct-panel a[href$="#services"],
.ct-panel a[href$="#knowledge"],
.ct-panel a[href$="#steps"],
.ct-panel a[href$="#works"],
.ct-panel a[href$="#documents"],
.ct-panel a[href$="#contacts"] {
  color: #ffffff !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ct-panel .current-menu-item:not(.menu-anchor) > a,
.ct-panel .current_page_item:not(.menu-anchor) > a,
.ct-panel a[aria-current="page"]:not([href*="#"]) {
  color: #F28A2E !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ct-panel a:hover,
.ct-panel .ct-menu-link:hover {
  color: #F28A2E !important;
  background: transparent !important;
}

.ct-panel a::after,
.ct-panel .ct-menu-link::after,
.ct-panel .menu-anchor::after,
.ct-panel .menu-anchor > a::after,
.ct-panel .ct-active::after,
.ct-panel .ct-active > a::after {
  display: none !important;
  opacity: 0 !important;
}

.ct-panel .ct-toggle-close {
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.35) !important;
}