.p-header {
  background-color: #fff;
  position: sticky;
}
.p-header.active-menu {
  position: fixed;
}

.particles-js {
  position: fixed;
}

.section-coding__wrap::before, .section-coding .section__inner::before, .section-service__wrap::before, .section-service .section__inner::before, .section-main__news__borbot::before, .section-main__news__bortop::before, .section-main .section__inner::before {
  content: "";
  background: #fff;
  position: absolute;
  width: 1.8rem;
  height: 1.8rem;
  z-index: 0;
}
@media (min-width: 768px) {
  .section-coding__wrap::before, .section-coding .section__inner::before, .section-service__wrap::before, .section-service .section__inner::before, .section-main__news__borbot::before, .section-main__news__bortop::before, .section-main .section__inner::before {
    width: 3.2rem;
    height: 3.2rem;
  }
}

.section-coding__wrap::after, .section-coding .section__inner::after, .section-service__wrap::after, .section-service .section__inner::after, .section-main__news__borbot::after, .section-main__news__bortop::after, .section-main .section__inner::after {
  content: "";
  background: #F6F6F6;
  border-radius: 0 0 0 1.8rem;
  position: absolute;
  width: 1.8rem;
  height: 1.8rem;
  z-index: 0;
}
@media (min-width: 768px) {
  .section-coding__wrap::after, .section-coding .section__inner::after, .section-service__wrap::after, .section-service .section__inner::after, .section-main__news__borbot::after, .section-main__news__bortop::after, .section-main .section__inner::after {
    border-radius: 0 0 0 3.2rem;
    width: 3.2rem;
    height: 3.2rem;
  }
}

.section-main {
  margin-bottom: 2.4rem;
}
.section-main::before {
  content: "";
  background-color: #fff;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 1.5rem;
  z-index: 1;
}
@media (min-width: 768px) {
  .section-main::before {
    width: 8rem;
  }
}
.section-main::after {
  content: "";
  background-color: #fff;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  height: 2.4rem;
  z-index: 1;
}
@media (min-width: 768px) {
  .section-main::after {
    height: 4rem;
  }
}
@media (min-width: 768px) {
  .section-main {
    margin-bottom: 4rem;
  }
}
.section-main .section__inner {
  padding-left: 0 !important;
  min-height: calc(100vh - 12rem);
}
.section-main .section__inner::before {
  top: 0;
  left: 0;
}
.section-main .section__inner::after {
  border-radius: 1.8rem 0 0 0;
  top: 0;
  left: 0;
}
@media (min-width: 768px) {
  .section-main .section__inner::after {
    border-radius: 3.2rem 0 0 0;
  }
}
.section-main__wrap {
  position: relative;
  padding: 0 1.5rem 7rem 1.5rem;
}
@media (min-width: 768px) {
  .section-main__wrap {
    min-height: calc(100vh - 8rem - 4rem);
    padding: 2.6rem 5rem 13.9rem;
  }
}
@media (min-width: 1025px) {
  .section-main__wrap {
    display: flex;
    align-items: center;
    padding-top: 10.5rem;
  }
}
@media (min-width: 1025px) {
  .section-main__img {
    position: absolute;
    left: 45%;
    padding-top: 2.6rem;
    width: 78.4rem;
    top: 50%;
    transform: translateY(-50%);
  }
}
@media (max-width: 1024px) {
  .section-main__img {
    margin-right: 0.4rem;
    margin-left: -2.8rem;
    margin-top: -4rem;
  }
}
@media (min-width: 1025px) {
  .section-main__content {
    width: 65.4rem;
  }
}
.section-main__ttl {
  font-weight: 700;
  font-size: 2.9rem;
  line-height: 1.1;
  margin-bottom: 1.7rem;
  margin-right: -2.5rem;
}
@media (min-width: 768px) {
  .section-main__ttl {
    font-size: 4.8rem;
    line-height: 1.4;
    margin-bottom: 3.6rem;
  }
}
.section-main__ttl small {
  display: block;
  font-size: 2.4rem;
  line-height: 1.5;
  margin-top: 1.5rem;
}
@media (min-width: 768px) {
  .section-main__ttl small {
    font-size: 3.8rem;
    margin-top: 0;
  }
}
.section-main__txt {
  font-weight: 700;
  line-height: 2;
  margin-bottom: 4.5rem;
}
@media (min-width: 768px) {
  .section-main__txt {
    font-size: 1.6rem;
    letter-spacing: 0.1em;
    line-height: 2.25;
    margin-bottom: 4rem;
  }
}
.section-main__news {
  background-color: #fff;
  border-top-right-radius: 1.8rem;
  height: 4.8rem;
  padding: 1.7rem 1.5rem 0 0;
  max-width: 56rem;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 1.5rem;
}
@media (min-width: 768px) {
  .section-main__news {
    border-top-right-radius: 3.2rem;
    height: 7.6rem;
    padding: 3.3rem 3rem 0 0;
  }
}
.section-main__news__bortop::before {
  bottom: 4.8rem;
  left: 0;
}
@media (min-width: 768px) {
  .section-main__news__bortop::before {
    bottom: 7.6rem;
  }
}
.section-main__news__bortop::after {
  bottom: 4.8rem;
  left: 0;
}
@media (min-width: 768px) {
  .section-main__news__bortop::after {
    bottom: 7.6rem;
  }
}
.section-main__news__borbot::before {
  bottom: 0;
  left: 100%;
}
.section-main__news__borbot::after {
  bottom: 0;
  left: 100%;
}
.section-main__news__item {
  display: flex;
  align-items: center;
  font-weight: 500;
}
@media (min-width: 768px) {
  .section-main__news__item {
    font-size: 1.4rem;
  }
}
.section-main__news__item .h-news-date {
  color: #7B7B7B;
  font-size: 1.4rem;
  flex-shrink: 0;
  margin-right: 1.2rem;
}
@media (min-width: 768px) {
  .section-main__news__item .h-news-date {
    font-size: 1.6rem;
    margin-right: 1.6rem;
  }
}
.section-main__news__item a {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
}
.section-main .scroll {
  display: none;
}
@media (min-width: 768px) {
  .section-main .scroll {
    writing-mode: tb-rl;
    display: flex;
    align-items: center;
    position: absolute;
    left: 3.2rem;
    bottom: 8.5rem;
    z-index: 15;
  }
}
.section-main .scroll__label {
  font-size: 1.3rem;
  font-weight: bold;
  margin-bottom: 1.6rem;
}
.section-main .scroll__bar {
  background-color: rgba(59, 59, 59, 0.24);
  border: 1px;
  height: 9.6rem;
  width: 1px;
  position: relative;
  overflow: hidden;
}
.section-main .scroll__inner {
  animation: sdl 1.5s ease infinite;
  background-color: #3B3B3B;
  border: 1px;
  height: 1.6rem;
  width: 1px;
  position: absolute;
  left: 0;
  top: 0;
}

@keyframes sdl {
  0% {
    transform: translateY(-1.6rem);
  }
  50%, 100% {
    transform: translateY(9.6rem);
  }
}
.section-service {
  position: relative;
}
.section-service::after {
  content: "";
  background-color: #fff;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 1.5rem;
  z-index: 1;
}
@media (min-width: 768px) {
  .section-service::after {
    width: 8rem;
  }
}
@media (max-width: 767px) {
  .section-service .hline01__ttl {
    font-size: 1.9rem;
  }
}
.section-service .section__inner::before {
  top: 0;
  right: 0;
}
.section-service .section__inner::after {
  border-radius: 0 1.8rem 0 0;
  top: 0;
  right: 0;
}
@media (min-width: 768px) {
  .section-service .section__inner::after {
    border-radius: 0 3.2rem 0 0;
  }
}
.section-service__wrap {
  padding-top: 9.1rem;
  padding-bottom: 9.1rem;
  position: relative;
}
@media (min-width: 768px) {
  .section-service__wrap {
    padding-top: 12.8rem;
    padding-bottom: 12.8rem;
  }
}
.section-service__wrap::before {
  bottom: 0;
  right: 0;
}
.section-service__wrap::after {
  border-radius: 0 0 1.8rem 0;
  bottom: 0;
  right: 0;
}
@media (min-width: 768px) {
  .section-service__wrap::after {
    border-radius: 0 0 3.2rem 0;
  }
}
.section-service__txt {
  margin-bottom: 2.9rem;
}
@media (min-width: 768px) {
  .section-service__txt {
    margin-bottom: 6.2rem;
  }
}

.section-price .section__inner {
  border-radius: 1.8rem 0 0 1.8rem;
  background-color: #fff;
  padding-top: 4.8rem;
  padding-bottom: 4.8rem;
}
@media (min-width: 768px) {
  .section-price .section__inner {
    border-radius: 3.2rem 0 0 3.2rem;
    padding-top: 10.4rem;
    padding-bottom: 9.6rem;
  }
}
@media (min-width: 768px) {
  .section-price__head {
    display: flex;
  }
  .section-price__head .hline01 {
    flex-shrink: 0;
    margin-right: 6.3rem;
  }
}

.section-coding::before {
  content: "";
  background-color: #fff;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 1.5rem;
  z-index: 1;
}
@media (min-width: 768px) {
  .section-coding::before {
    width: 8rem;
  }
}
.section-coding .section__inner::before {
  top: 0;
  right: 0;
}
.section-coding .section__inner::after {
  border-radius: 0 1.8rem 0 0;
  top: 0;
  right: 0;
}
@media (min-width: 768px) {
  .section-coding .section__inner::after {
    border-radius: 0 3.2rem 0 0;
  }
}
.section-coding__wrap {
  padding-top: 4.8rem;
  padding-bottom: 4.8rem;
  position: relative;
}
@media (min-width: 768px) {
  .section-coding__wrap {
    padding-top: 10.4rem;
    padding-bottom: 8rem;
  }
}
.section-coding__wrap::before {
  background-color: #FFF;
  bottom: 0;
  right: 0;
}
.section-coding__wrap::after {
  border-radius: 0 0 1.8rem 0;
  bottom: 0;
  right: 0;
}
@media (min-width: 768px) {
  .section-coding__wrap::after {
    border-radius: 0 0 3.2rem 0;
  }
}
.section-coding__box {
  background-color: #fff;
  border-radius: 1.8rem;
  padding: 4rem 1.5rem 4.8rem;
}
@media (min-width: 768px) {
  .section-coding__box {
    border-radius: 2.4rem;
    padding: 9.6rem 4rem 8.8rem;
  }
}

.section-about {
  background: url("../images/home/bg_about_sp.png") #fff no-repeat top center/cover;
  background-attachment: fixed;
  padding: 13rem 0 8rem;
  position: relative;
  z-index: 1;
}
@media (min-width: 768px) {
  .section-about {
    background-image: url("../images/home/bg_about.png");
    padding: 17.6rem 0 8.8rem;
  }
}
.section-about::before {
  content: "";
  background-color: #FFF;
  height: 8rem;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}
.section-about::after {
  content: "";
  background-color: #0A2738;
  opacity: 0.08;
  position: absolute;
  top: 8rem;
  bottom: 0;
  left: 0;
  right: 0;
}
@media (min-width: 768px) {
  .section-about .hline01 {
    margin-bottom: 3.7rem;
  }
}
.section-about__txt {
  margin-bottom: 3.7rem;
}
@media (min-width: 768px) {
  .section-about__txt {
    margin-bottom: 6.7rem;
  }
}

.p-faq {
  background-color: #fff;
  padding-block: 4.8rem 1rem;
}
@media (min-width: 768px) {
  .p-faq {
    padding-block: 8rem 2.4rem;
  }
}
.p-faq__box {
  background-color: #F6F6F6;
  border-radius: 1.6rem;
  padding: 3.2rem 1.5rem 4rem;
}
@media (min-width: 768px) {
  .p-faq__box {
    padding: 4rem 4rem 5.6rem;
  }
}
.p-faq .wrap-btn {
  margin-top: 3.2rem;
}
@media (min-width: 768px) {
  .p-faq .wrap-btn {
    margin-top: 4.8rem;
  }
}