@charset "UTF-8";
.contact .contact-desc {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 20px;
}

.contact .contact-desc p {
  margin: 0;
  font-size: 1em;
  font-weight: 500;
  line-height: 1.75;
}

.contact .contact-desc p a {
  color: #222;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.contact .contact-desc p a:hover {
  text-decoration: none;
}

.contact .contact-desc + .page-inner {
  margin: 48px auto 0;
}

.contact .contact-block .contact-block-wrap {
  padding: 66px 20px 89px;
}

.contact .contact-block h2 {
  position: relative;
  font-size: 1.75em;
  line-height: 1.5;
  padding-bottom: 27px;
}

.contact .contact-block h2::before,
.contact .contact-block h2::after {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 2px;
  content: "";
}

.contact .contact-block h2::before {
  width: 100%;
  background-color: #dfdfdf;
}

.contact .contact-block h2::after {
  width: 40px;
  background: var(--gradient-blue);
}

.contact .contact-block p {
  margin: 0;
  font-size: 1em;
  font-weight: 500;
  line-height: 1.75;
}

.contact .contact-block h2 + p {
  margin: 36px 0 0;
}

.contact .contact-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  margin: 52px 0 0;
}

.contact .contact-btns .contact-btn {
  margin: 0;
}

.contact .contact-btn {
  width: 100%;
  max-width: 340px;
  margin: 52px 0 0;
}

.contact .contact-btn a {
  display: flex;
  align-items: center;
  position: relative;
  width: 100%;
  height: 66px;
  padding-left: 41px;
  padding-right: 50px;
  border-radius: 40px;
  border: 3px solid #dfdfdf;
  font-size: 1em;
  font-weight: 500;
  color: var(--main-color-black);
  text-decoration: none;
}

.contact .contact-btn a::before {
  position: absolute;
  top: 50%;
  right: 26px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background-color: var(--main-color-orange);
  transform: translateY(-50%);
  content: "";
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.contact .contact-btn a::after {
  position: absolute;
  top: 50%;
  right: 31px;
  width: 12px;
  height: 12px;
  background: url(/assets/images/icon_arrow.svg) center center / cover no-repeat;
  transform: translateY(-50%);
  content: "";
}

.contact .contact-btn a:hover::before {
  transform: translateY(-50%) scale(1.72);
}

.contact .contact-btn a:hover::after {
  animation: slide-arrow-right 0.3s ease-in-out;
}

@media screen and (max-width: 768px) {
  .contact .contact-desc {
    padding: 0;
  }
  
  .contact .contact-desc p {
    font-size: 0.9375em;
  }

  .contact .contact-desc + .page-inner {
    margin: 32px auto 0;
  }

  .contact .contact-block .contact-block-wrap {
    padding: 40px 24px 50px;
  }

  .contact .contact-block h2 {
    font-size: 1.25em;
    padding-bottom: 15px;
  }

  .contact .contact-block h2::after {
    width: 14px;
  }

  .contact .contact-block p {
    font-size: 0.9375em;
  }

  .contact .contact-block h2 + p {
    margin: 25px 0 0;
  }

  .contact .contact-btns {
    flex-direction: column;
    gap: 12px;
  }
  
  .contact .contact-btns ,
  .contact .contact-btn {
    margin: 36px auto 0;
  }

  .contact .contact-btn {
    width: 97.215%;
  }

  .contact .contact-btn a {
    height: 56px;
    padding-left: 22px;
    padding-right: 45px;
    font-size: 0.9375em;
  }

  .contact .contact-btn a::before {
    right: 23px;
    width: 20px;
    height: 20px;
  }

  .contact .contact-btn a::after {
    right: 28px;
    width: 11px;
    height: 11px;
  }
}
