/*====================================================================================
1. START MAIN VISUAL SECTION.
====================================================================================*/
.p-top-mainvisual {
  background: url("../images/top/sp_main-bg.webp") no-repeat top center;
  background-size: 100%;
  text-align: center;
  padding: 2rem 0 5rem;
}
.p-top-mainvisual h1 {
  position: relative;
}
.p-top-mainvisual h1 span {
  position: absolute;
  width: 100%;
  text-align: center;
  bottom: 2.2rem;
  left: 0;
  font-size: 2.2vw;
  font-weight: bold;
  color: #666;
}
@media only screen and (min-width: 768px) {
  .p-top-mainvisual {
    background: url("../images/top/main-bg.webp") no-repeat top center;
    padding: 4rem 0 10rem;
  }
  .p-top-mainvisual h1 span {
    font-size: 1.6rem;
    bottom: 6rem;
  }
}

/*====================================================================================
2. START MAIN PAGE
====================================================================================*/
/*============================== START l-gallery ==============================*/
.l-gallery {
  overflow: hidden;
  width: 100%;
  margin-top: -3rem;
}
.l-gallery__list {
  position: relative;
  display: flex;
  width: max-content;
  animation: gallery 30s linear infinite;
  gap: 1rem;
  z-index: 5;
}
.l-gallery__list img {
  width: auto;
  height: 10rem;
  flex-shrink: 0;
}
@media only screen and (min-width: 768px) {
  .l-gallery {
    margin-top: -6rem;
  }
  .l-gallery__list {
    gap: 2rem;
  }
  .l-gallery__list img {
    height: 20rem;
  }
}

@keyframes gallery {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
/*============================== START l-gallery ==============================*/
.c-works_items {
  padding: 2.5rem 0 5rem;
}
.c-works_items__list {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.c-works_items__item {
  width: calc((100% - 1rem) / 2);
}
.c-works_items__link {
  position: relative;
  display: inline-block;
  width: 100%;
  height: 100%;
  text-decoration: none;
}
.c-works_items__txt {
  position: absolute;
  bottom: 0;
  right: 0.5rem;
  font-weight: bold;
  font-size: 1.5rem;
  padding-right: 1.8rem;
}
.c-works_items__txt:after {
  position: absolute;
  content: "";
  width: 1rem;
  height: 1rem;
  background: #000;
  clip-path: polygon(100% 0, 0% 100%, 100% 100%);
  bottom: 0.5rem;
  right: 0;
}
@media only screen and (min-width: 768px) {
  .c-works_items {
    padding: 5rem 0 10rem;
  }
  .c-works_items .l-container {
    max-width: 144rem;
  }
  .c-works_items__item {
    width: calc((100% - 4.5rem) / 4);
    overflow: hidden;
  }
  .c-works_items__link:hover img {
    transform: scale(1.1);
  }
  .c-works_items__link:hover .c-works_items__txt {
    color: transparent;
    background-image: var(--bg-linear-gradient);
    background-size: 200% 100%;
    background-position: 0% 50%;
    -webkit-background-clip: text;
    background-clip: text;
    animation: slide-gradient 1s forwards;
  }
  .c-works_items__link:hover .c-works_items__txt:after {
    background: var(--bg-linear-gradient);
  }
  .c-works_items__txt {
    font-size: 2rem;
  }
  .c-works_items__txt:after {
    bottom: 1rem;
  }
}

/*============================== START SEC product ==============================*/
.c-product {
  background: url("../images/top/product-bg.webp") no-repeat top center/cover;
  padding: 4rem 0;
}
.c-product__title {
  color: #fff;
  text-align: center;
  font-size: 2.8rem;
}
.c-product__sub {
  text-align: center;
}
.c-product__sub span {
  display: inline-block;
  position: relative;
  color: #fff;
  font-weight: bold;
  font-size: 2rem;
  padding: 0 3rem;
}
.c-product__sub span:after, .c-product__sub span:before {
  position: absolute;
  content: "";
  background-size: 1.5rem;
  width: 2.4rem;
  height: 3rem;
}
.c-product__sub span:after {
  background: url("../images/common_img/sub_line-left.webp") no-repeat;
  background-size: 2.4rem;
  left: 0;
}
.c-product__sub span:before {
  background: url("../images/common_img/sub_line-right.webp") no-repeat;
  background-size: 2.4rem;
  right: 0;
}
.c-product__list1 {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 4rem;
  margin-top: 4rem;
}
.c-product__list1-item {
  position: relative;
  width: 100%;
  background: #fff;
}
.c-product__list1-number {
  position: absolute;
  color: #000;
  font-family: var(--font-Gothic-en);
  font-weight: bold;
  font-size: 4rem;
  line-height: 1;
  text-shadow: 2.828px 2.828px 0px rgb(255, 255, 255);
  top: -2rem;
  left: 1rem;
}
.c-product__list1-title {
  text-align: center;
  font-size: 1.8rem;
  padding-top: 2rem;
}
.c-product__list1-img {
  margin-top: 1rem;
}
.c-product__list1-img img {
  width: 100%;
}
.c-product__list1-txt {
  padding: 1rem;
}
.c-product__list2 {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  margin-top: 2rem;
}
.c-product__list2-title {
  width: 100%;
  background: #fff;
  text-align: center;
  padding: 0.4rem 2rem;
}
.c-product__list2-title h4 {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  font-size: 1.6rem;
  gap: 1.5rem;
  padding: 3rem 0;
  text-align: left;
}
.c-product__list2-main {
  width: 75%;
}
.c-product__list2-item {
  position: relative;
  width: 100%;
}
.c-product__list2-item img {
  width: 100%;
}
.c-product__list2-item:nth-child(3) .c-product__list2-txt {
  background-image: linear-gradient(to right, rgba(160, 70, 116, 0.1) 0%, rgba(117, 91, 167, 0) 0%, rgb(63, 37, 113) 100%);
}
.c-product__list2-item:nth-child(4) .c-product__list2-txt {
  background-image: linear-gradient(to right, rgba(160, 70, 116, 0) 0%, rgb(78, 19, 49) 100%);
}
.c-product__list2-txt {
  position: absolute;
  width: 100%;
  background-image: linear-gradient(to right, rgba(56, 109, 208, 0.1) 0%, rgb(27, 62, 90) 100%);
  bottom: 0;
  left: 0;
  color: #fff;
  font-size: 1.5rem;
  font-weight: bold;
  text-align: right;
  padding: 0.5rem;
}
@media only screen and (min-width: 768px) {
  .c-product {
    padding: 8rem 0;
  }
  .c-product__title {
    font-size: 4.8rem;
  }
  .c-product__sub span {
    padding: 0 5rem;
    font-size: 3rem;
  }
  .c-product__sub span:after, .c-product__sub span:before {
    background-size: 3.2rem;
    width: 3.2rem;
    height: 4rem;
  }
  .c-product__list1 {
    gap: 5rem;
    margin-top: 4rem;
  }
  .c-product__list1-item {
    width: calc((100% - 5rem) / 2);
  }
  .c-product__list1-number {
    font-size: 6rem;
    top: -3rem;
  }
  .c-product__list1-title {
    font-size: 2.4rem;
    padding-top: 4rem;
  }
  .c-product__list1-img {
    margin-top: 2rem;
  }
  .c-product__list1-txt {
    padding: 2rem;
  }
  .c-product__list2 {
    margin-top: 5rem;
  }
  .c-product__list2-title {
    width: 25%;
  }
  .c-product__list2-item {
    width: 25%;
  }
  .c-product__list2-txt {
    font-size: 1.8rem;
  }
}

/*============================== START SEC price ==============================*/
.c-price {
  position: relative;
  padding: 4rem 0;
}
.c-price__list {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.c-price__list-item {
  position: relative;
  display: flex;
  flex-flow: column;
  justify-content: space-between;
  width: calc((100% - 1rem) / 2);
  height: 21rem;
  background: var(--gray);
  padding: 1.2rem;
}
.c-price__list-title {
  width: 100%;
  font-weight: bold;
}
.c-price__list-title h3 {
  font-size: 1.6rem;
  border-bottom: 1px solid #000;
  margin-bottom: 0.5rem;
}
.c-price__list-title p {
  font-size: 1.4rem;
}
.c-price__list-price {
  display: flex;
}
.c-price__list-price p {
  position: relative;
  display: flex;
  align-items: flex-end;
  color: var(--blue-royal);
  font-size: 2.6rem;
  font-weight: bold;
  line-height: 1;
  padding-right: 5rem;
}
.c-price__list-price p:after {
  position: absolute;
  content: "";
  background: var(--blue-royal);
  width: 2px;
  height: 6rem;
  transform: rotate(22deg);
  bottom: -0.5rem;
  right: 1.7rem;
}
.c-price__list-price p:last-child {
  padding-right: 0;
}
.c-price__list-price p:last-child:after {
  display: none;
}
.c-price__list-price p .number {
  display: inline-block;
  line-height: 0.7;
}
.c-price__list-price p small {
  position: relative;
  display: inline-block;
  font-size: 1.4rem;
}
.c-price__list-price p small mark {
  position: absolute;
  background: var(--blue-royal);
  display: flex;
  justify-content: center;
  align-items: center;
  width: 4rem;
  height: 1.8rem;
  border-radius: 1.2rem;
  color: #fff;
  font-weight: bold;
  font-size: 1rem;
  text-align: center;
  padding-top: 0.2rem;
  top: -2.5rem;
  left: 0.5rem;
}
.c-price__list-price p small mark:after {
  position: absolute;
  content: "";
  background: var(--blue-royal);
  width: 0.6rem;
  height: 0.6rem;
  clip-path: polygon(0 0, 0% 100%, 100% 0);
  bottom: -0.5rem;
  left: 0;
  right: 0;
  margin: auto;
}
@media only screen and (max-width: 767px) {
  .c-price__list-item {
    height: auto;
    margin: auto;
  }
  .c-price__list-img {
    position: relative;
    width: 100%;
    height: 13rem;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    text-align: center;
  }
  .c-price__list-img img {
    width: auto;
    height: 10rem;
    display: block;
    margin: 1rem auto;
  }
  .c-price__list-price p {
    padding-right: 3rem;
  }
  .c-price__list-price p:after {
    height: 3rem;
    right: 1.3rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-price {
    padding: 8rem 0;
  }
  .c-price__list-item {
    width: calc((100% - 2rem) / 3);
    padding: 2.5rem 2rem;
    height: 25rem;
  }
  .c-price__list-item:nth-child(2) .c-price__list-img {
    right: -0.5rem;
    top: 2.5rem;
  }
  .c-price__list-item:nth-child(3) .c-price__list-img {
    top: 2rem;
    right: 0.5rem;
  }
  .c-price__list-item:nth-child(4) .c-price__list-img {
    top: 3rem;
    right: 7rem;
  }
  .c-price__list-item:nth-child(5) .c-price__list-img {
    top: 1rem;
    right: -1rem;
  }
  .c-price__list-item:nth-child(6) .c-price__list-img {
    top: 1.2rem;
    right: 1.2rem;
  }
  .c-price__list-title {
    width: 80%;
  }
  .c-price__list-title h3 {
    font-size: 2.4rem;
  }
  .c-price__list-title p {
    font-size: 1.6rem;
  }
  .c-price__list-price p {
    font-size: 6rem;
  }
  .c-price__list-price p small {
    font-size: 3.2rem;
  }
  .c-price__list-price p small mark {
    width: 5.6rem;
    height: 2.5rem;
    font-size: 1.6rem;
    top: -3.5rem;
    left: 0.5rem;
  }
  .c-price__list-img {
    position: absolute;
    top: 3.5rem;
    right: 2rem;
  }
}

.c-ppt {
  width: 100%;
  background: var(--light_yellow) url("../images/top/ppt-icon01.webp") no-repeat top 3rem left 3rem;
  padding: 1.5rem;
  margin-top: 2.5rem;
}
.c-ppt__main {
  width: 100%;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 3%;
}
.c-ppt__main-left, .c-ppt__main-right {
  width: 100%;
}
.c-ppt__sub {
  position: relative;
  width: 100%;
  text-align: center;
  margin-bottom: 1rem;
  z-index: 2;
}
.c-ppt__sub:after {
  position: absolute;
  content: "";
  background: var(--dark_gray);
  width: 100%;
  height: 1px;
  left: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  z-index: -1;
}
.c-ppt__sub span {
  position: relative;
  display: inline-block;
  background: var(--light_yellow);
  font-weight: bold;
  font-size: 1.6rem;
  padding: 0 1rem;
}
@media only screen and (max-width: 767px) {
  .c-ppt {
    background-size: 10rem;
    background-position: top 1rem left 1rem;
  }
  .c-ppt__main {
    gap: 1rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-ppt {
    padding: 3rem;
    margin-top: 5rem;
  }
  .c-ppt__main-left {
    width: 51%;
  }
  .c-ppt__main-right {
    width: 46%;
  }
}

/*============================== START SEC workflow ==============================*/
.c-workflow {
  position: relative;
  padding: 4rem 0;
}
.c-workflow .l-container {
  max-width: 124.4rem;
}
.c-workflow__list {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 3.5rem;
}
.c-workflow__item {
  position: relative;
  width: 100%;
  border-radius: 1.2rem;
  padding: 6px;
  background: linear-gradient(to right, #436ccc, #5d64bb);
}
.c-workflow__item:after {
  position: absolute;
  content: "";
  background: url("../images/top/workflow-arr01.webp") no-repeat;
  background-size: 100%;
  width: 3.8rem;
  height: 3.8rem;
}
.c-workflow__item:nth-child(2) {
  background: linear-gradient(to right, #5f64ba, #765ba7);
}
.c-workflow__item:nth-child(2):after {
  background: url("../images/top/workflow-arr02.webp") no-repeat;
  background-size: 100%;
}
.c-workflow__item:nth-child(2) .c-workflow__number {
  background: linear-gradient(to right, #5f64ba, #765ba7);
  background-clip: text;
}
.c-workflow__item:nth-child(3) {
  background: linear-gradient(to right, #775aa6, #965394);
}
.c-workflow__item:nth-child(3):after {
  background: url("../images/top/workflow-arr03.webp") no-repeat;
  background-size: 100%;
}
.c-workflow__item:nth-child(3) .c-workflow__number {
  background: linear-gradient(to right, #775aa6, #965394);
  background-clip: text;
}
.c-workflow__item:nth-child(4) {
  background: linear-gradient(to right, #975294, #ad4c85);
}
.c-workflow__item:nth-child(4):after {
  display: none;
}
.c-workflow__item:nth-child(4) .c-workflow__number {
  background: linear-gradient(to right, #975294, #ad4c85);
  background-clip: text;
}
.c-workflow__item-inner {
  width: 100%;
  border: 8px solid #fff;
  background: var(--gray);
  border-radius: 1rem;
  padding: 0 2rem 2rem;
  font-weight: bold;
  font-size: 1.4rem;
}
.c-workflow__title {
  font-weight: bold;
  font-size: 1.8rem;
  text-align: center;
  margin-bottom: 1rem;
}
.c-workflow__number {
  font-weight: bold;
  font-size: 2.4rem;
  display: inline-block;
  width: 100%;
  color: transparent;
  background: linear-gradient(to right, #436ccc, #5d64bb);
  background-clip: text;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .c-workflow__item:after {
    left: 0;
    right: 0;
    bottom: -3.2rem;
    margin: auto;
    transform: rotate(90deg);
  }
}
@media only screen and (min-width: 768px) {
  .c-workflow__item {
    width: calc((100% - 10.5rem) / 4);
  }
  .c-workflow__item:after {
    top: 0;
    bottom: 0;
    right: -3.2rem;
    margin: auto;
  }
  .c-workflow__item-inner {
    font-size: 1.6rem;
  }
  .c-workflow__title {
    font-size: 2.4rem;
    margin-bottom: 2rem;
  }
  .c-workflow__number {
    font-size: 3.6rem;
  }
}

/*============================== START SEC faq ==============================*/
.c-faq {
  position: relative;
  background: var(--gray);
  padding: 4rem 0;
}
@media only screen and (min-width: 768px) {
  .c-faq {
    padding: 8rem 0;
  }
}

.acc-list__item {
  width: 100%;
  background: #fff;
  padding: 0 1rem;
  margin-bottom: 2rem;
}
.acc-list__head {
  position: relative;
  width: 100%;
  cursor: pointer;
  font-weight: bold;
  padding: 1.5rem 0 1.5rem 3rem;
}
.acc-list__head:before {
  position: absolute;
  content: "Q";
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--purple);
  font-weight: 900;
  font-family: var(--font-Gothic-en);
  line-height: 0.74;
  text-align: left;
  font-size: 2.4rem;
  top: 1.5rem;
  left: 0;
}
.acc-list__head.active .acc-list__ttl:before {
  transform: rotate(0deg);
}
.acc-list__ttl {
  position: relative;
  width: 100%;
  display: block;
  padding-right: 2.5rem;
  font-weight: bold;
  font-size: 1.5rem;
}
.acc-list__ttl:after, .acc-list__ttl:before {
  position: absolute;
  content: "";
  width: 1.6rem;
  height: 2px;
  background: #000;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  transition: all 0.5s;
}
.acc-list__ttl:before {
  transform: rotate(90deg);
}
.acc-list__body {
  display: none;
  position: relative;
  border-top: 1px solid #ccc;
  padding: 1.5rem 1rem 1rem 3rem;
}
.acc-list__body:after {
  position: absolute;
  content: "A";
  display: flex;
  align-items: center;
  justify-content: center;
  color: #222;
  font-weight: 900;
  font-family: var(--font-Gothic-en);
  line-height: 0.74;
  text-align: left;
  font-size: 2.4rem;
  top: 1.5rem;
  left: 0;
}
@media only screen and (min-width: 768px) {
  .acc-list__item {
    padding: 0 2.5rem;
  }
  .acc-list__head {
    padding: 3rem 0 3rem 7rem;
  }
  .acc-list__head:before {
    font-size: 3.8rem;
    left: 1rem;
    top: 3rem;
  }
  .acc-list__ttl {
    font-size: 1.8rem;
    padding-right: 4rem;
  }
  .acc-list__ttl:after, .acc-list__ttl:before {
    width: 3rem;
  }
  .acc-list__body {
    padding: 3rem 3rem 3rem 7rem;
  }
  .acc-list__body:after {
    font-size: 3.8rem;
    left: 1rem;
    top: 3rem;
  }
}

/*============================== START SEC features ==============================*/
.c-features {
  position: relative;
  padding: 4rem 0;
}
.c-features__list {
  display: flex;
  flex-wrap: wrap;
  gap: 2.5rem;
}
.c-features__item {
  width: 100%;
}
.c-features__item:nth-child(2) .c-features__number {
  background: url("../images/top/features-icon02.webp") no-repeat;
}
.c-features__item:nth-child(2) .c-features__title span {
  color: var(--dark_purple);
}
.c-features__item:nth-child(3) .c-features__number {
  background: url("../images/top/features-icon03.webp") no-repeat;
}
.c-features__item:nth-child(3) .c-features__title span {
  color: var(--purple);
}
.c-features__img {
  width: 100%;
}
.c-features__img img {
  width: 100%;
}
.c-features__head {
  text-align: center;
}
.c-features__number {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  background: url("../images/top/features-icon01.webp") no-repeat;
  background-size: 7rem !important;
  width: 7rem;
  height: 5.5rem;
  font-weight: bold;
  color: #fff;
  font-size: 1.8rem;
  margin: -1rem auto 1rem;
}
.c-features__title {
  font-size: 1.5rem;
  margin-bottom: 1rem;
}
.c-features__title span {
  display: block;
  font-size: 1.8rem;
  color: var(--blue-royal);
}
.c-features__body {
  font-weight: 500;
  font-size: 1.4rem;
}
@media only screen and (min-width: 768px) {
  .c-features {
    padding: 8rem 0;
  }
  .c-features__list {
    gap: 5rem;
  }
  .c-features__item {
    width: calc((100% - 10rem) / 3);
  }
  .c-features__number {
    background-size: 100% !important;
    width: 8.8rem;
    height: 7.1rem;
    font-size: 2.4rem;
  }
  .c-features__title {
    font-size: 1.8rem;
    margin-bottom: 2rem;
  }
  .c-features__title span {
    font-size: 2.4rem;
  }
  .c-features__body {
    font-size: 1.6rem;
  }
}

/*============================== START SEC contact ==============================*/
.c-contact {
  position: relative;
  background: var(--bg-linear-gradient);
  padding: 4rem 0 5rem;
}
@media only screen and (min-width: 768px) {
  .c-contact {
    padding: 8rem 0 10rem;
  }
}

/*============================== START SEC pp ==============================*/
.c-pp {
  position: relative;
  padding: 4rem 0;
}
.c-pp__main {
  margin-top: 2rem;
}
.c-pp__main p + h3, .c-pp__main ul + h3 {
  margin-top: 2rem;
}
.c-pp__main h3 {
  margin-bottom: 0.5rem;
}
.c-pp__main a {
  color: var(--blue-royal);
}
@media only screen and (min-width: 768px) {
  .c-pp {
    padding: 8rem 0;
  }
  .c-pp__main {
    display: flex;
    justify-content: space-between;
    margin-top: 4rem;
  }
  .c-pp__main p + h3, .c-pp__main ul + h3 {
    margin-top: 4rem;
  }
  .c-pp__main h3 {
    margin-bottom: 1rem;
  }
  .c-pp__left, .c-pp__right {
    width: 48%;
  }
}