@import url("https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;500;700;900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Roboto+Condensed:wght@100..900&display=swap");
* {
   min-height: 0vw; /* Safari clamp関数対策 */
}
body {
   font-family: YakuHanJP, "Zen Kaku Gothic New", sans-serif;
   min-width: 120rem;
}
#wrapper {
   overflow: hidden;
   position: relative;
   background-color: #b5e9ff;
}
.container {
   width: 130rem;
   margin: 0 auto;
}
.slide_up {
   transform: translateY(-50rem);
}
.slide_down {
   transform: translateY(0px);
}
.fadein {
   opacity: 0;
   transition: 0.7s;
}
.scrollin {
   opacity: 1;
}
/* PCヘッダー ------------------- */
#header {
   position: fixed;
   padding: 1.5rem 0;
   box-sizing: border-box;
   width: 100%;
   z-index: 999;
   transition: 0.7s;
}
#header.show {
   background-color: #fff;
}
.hd_inner {
   padding: 0 1.5rem;
   display: flex;
   align-items: center;
   justify-content: space-between;
}
.hd_logo {
   width: 46rem;
   display: flex;
   justify-content: space-between;
}
.hd_logo .logo {
   transition: 0.4s;
}
.hd_logo .logo:first-of-type {
   width: 20rem;
}
.hd_logo .logo:last-of-type {
   width: 21.6rem;
}
.logo:hover {
   opacity: 0.7;
}
/* PCメニュー ------------------- */
.menu_btn {
   width: 4rem;
   position: relative;
   border: none;
   background: none;
   padding: 0.8rem 0;
   cursor: pointer;
   z-index: 500;
}
.menu_btn span {
   display: block;
   width: 100%;
   border: 0.2rem solid #318cff;
   background-color: #318cff;
   box-sizing: border-box;
   transition: 0.4s;
}
.menu_btn::before {
   content: "";
   width: 100%;
   border: 0.2rem solid #318cff;
   background-color: #318cff;
   position: absolute;
   top: 0;
   left: 0;
   box-sizing: border-box;
   transition: 0.4s;
}
.menu_btn::after {
   content: "";
   width: 100%;
   border: 0.2rem solid #318cff;
   background-color: #318cff;
   position: absolute;
   bottom: 0;
   left: 0;
   box-sizing: border-box;
   transition: 0.4s;
}
.menu_btn.open span {
   opacity: 0;
}
.menu_btn.open::before {
   top: 0.8rem;
   transform: rotate(-335deg);
   border-color: #fff;
   background-color: #fff;
}
.menu_btn.open::after {
   bottom: 0.8rem;
   transform: rotate(335deg);
   border-color: #fff;
   background-color: #fff;
}
#nav {
   position: fixed;
   top: 0;
   width: 100%;
   height: 100vh;
   background-color: #318cff;
   z-index: 100;
   display: none;
}
.nav_bg {
   position: fixed;
   top: 0;
   width: 100%;
   height: 100%;
}
.nav_inner {
   position: absolute;
   top: 50%;
   transform: translateY(-50%);
   left: 0;
   right: 0;
   width: 75.5rem;
   margin: 0 auto;
}
.nav_flex {
   display: flex;
   justify-content: space-between;
   position: relative;
}
.nav_flex::before {
   content: "";
   width: 0;
   height: 100%;
   border: 0.1rem solid #ffffff;
   background-color: #fff;
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   margin: 0 auto;
}
.nav_left {
   width: 28.5rem;
}
.nav_logo_01 {
   transition: 0.4s;
}
.nav_logo_02 {
   width: 17.3rem;
   margin: 7rem auto 0;
   transition: 0.4s;
}
.nav_logo_01:hover, .nav_logo_02:hover {
   opacity: 0.7;
}
.nav_right {
   width: 28.5rem;
   text-align: left;
}
.nav_menu li a {
   font-size: 3.2rem;
   color: #fff;
   letter-spacing: 0.04em;
   text-decoration: none;
   font-weight: bold;
   display: block;
   line-height: 1.5;
   margin-bottom: 5rem;
   position: relative;
   transition: 0.4s;
}
.nav_menu li a:hover {
   color: #ffee71;
}
.nav_menu li.now a {
   color: #ffee71;
}
.nav_menu li.now a::before {
   content: "";
   width: 0;
   height: 0;
   border-left: 0.9rem solid #ffee71;
   border-top: 0.4rem solid transparent;
   border-bottom: 0.4rem solid transparent;
   position: absolute;
   top: 50%;
   transform: translateY(-50%);
   left: -4rem;
}
.nav_menu li:last-of-type a {
   margin: 0;
}
.nav_menu li.coming a {
   color: #83baff;
   pointer-events: none;
}
.nav_menu li a span {
   font-size: 2.4rem;
   display: block;
   line-height: 1;
}
#main {
   position: relative;
   z-index: 5;
}
/* PC雲 ------------------- */
.cloud_bg {
   position: absolute;
   top: 0;
   left: 50%;
   transform: translateX(-50%);
   width: 192rem;
   z-index: 1;
}
.cloud_img {
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   margin: 0 auto;
   z-index: 1;
}
.middle {
   width: 8.2rem;
   animation-name: cloud_move_middle;
   animation-duration: 20s;
   animation-fill-mode: forwards;
   animation-iteration-count: infinite;
   animation-timing-function: linear;
}
.middle:nth-of-type(even) {
   animation-name: cloud_move_middle_2;
}
.big {
   width: 12.8rem;
   animation-name: cloud_move_big;
   animation-duration: 30s;
   animation-fill-mode: forwards;
   animation-iteration-count: infinite;
   animation-timing-function: linear;
}
.big:nth-of-type(even) {
   animation-name: cloud_move_big_2;
}
.cloud_img_1 {
   top: 23.5rem;
   left: -145rem;
}
.cloud_img_2 {
   top: 15.6rem;
   right: -29rem;
}
.cloud_img_3 {
   top: 16.8rem;
   right: -105rem;
}
.cloud_img_4 {
   top: 14.3rem;
   right: -163rem;
}
.cloud_img_5 {
   top: 35rem;
   left: -184rem;
}
.cloud_img_6 {
   top: 57rem;
   right: -171rem;
}
.cloud_img_7 {
   top: 66rem;
   left: -190rem;
}
.cloud_img_8 {
   top: 92rem;
   right: -20rem;
}
.cloud_img_9 {
   top: 86rem;
   right: -171rem;
}
.cloud_img_10 {
   top: 99.3rem;
   left: -97rem;
}
.cloud_img_11 {
   top: 107rem;
   right: -84rem;
}
.cloud_img_12 {
   top: 116.5rem;
   left: -144rem;
}
.cloud_img_13 {
   top: 129.2rem;
   right: -178rem;
}
.cloud_img_14 {
   top: 173.7rem;
   right: -106rem;
}
.cloud_img_15 {
   top: 184rem;
   right: -172rem;
}
.cloud_img_16 {
   top: 196.4rem;
   left: -180rem;
}
.cloud_img_17 {
   top: 194.5rem;
   left: -104rem;
}
.cloud_img_18 {
   top: 227.5rem;
   right: -125rem;
}
.cloud_img_19 {
   top: 8.5rem;
   left: -29rem;
}
.cloud_img_20 {
   top: 5rem;
   right: -75rem;
}
.cloud_img_21 {
   top: 33.3rem;
   right: -162rem;
}
.cloud_img_22 {
   top: 71rem;
   left: -147rem;
}
.cloud_img_23 {
   top: 64.4rem;
   right: -127rem;
   z-index: 10;
}
.cloud_img_24 {
   top: 84.6rem;
   left: -25rem;
}
.cloud_img_25 {
   top: 98.3rem;
   left: -180rem;
}
.cloud_img_26 {
   top: 116rem;
   right: -123rem;
}
.cloud_img_27 {
   top: 144.5rem;
   left: -170rem;
}
.cloud_img_28 {
   top: 150rem;
   right: -148rem;
}
.cloud_img_29 {
   top: 171.6rem;
   left: -128rem;
}
.cloud_img_30 {
   top: 210.7rem;
   left: -135rem;
}
.cloud_img_31 {
   top: 201.4rem;
   right: -112rem;
}
.cloud_img_32 {
   top: 212.7rem;
   right: -182rem;
}
.cloud_img_33 {
   top: 241.5rem;
   right: -163rem;
}
@keyframes cloud_move_middle {
   0% {
      transform: translateY(-0.5rem);
   }
   50% {
      transform: translateY(0.5rem);
   }
   100% {
      transform: translateY(-0.5rem);
   }
}
@keyframes cloud_move_middle_2 {
   0% {
      transform: translateY(0.5rem);
   }
   50% {
      transform: translateY(-0.5rem);
   }
   100% {
      transform: translateY(0.5rem);
   }
}
@keyframes cloud_move_big {
   0% {
      transform: translateY(-1rem);
   }
   50% {
      transform: translateY(1rem);
   }
   100% {
      transform: translateY(-1rem);
   }
}
@keyframes cloud_move_big_2 {
   0% {
      transform: translateY(1rem);
   }
   50% {
      transform: translateY(-1rem);
   }
   100% {
      transform: translateY(1rem);
   }
}
/* メインビジュアル ------------------- */
.mv_contents {
   display: flex;
   align-items: flex-start;
   justify-content: space-between;
   padding: 10.5rem 0 18.5rem;
   position: relative;
   z-index: 5;
}
.mv_detail {
   width: 46rem;
   text-align: left;
   margin-left: 5rem;
}
.mv_detail_top {
   margin-bottom: 5rem;
}
.mv_detail_top p {
   color: #318cff;
   font-size: 6.1rem;
   letter-spacing: 0.03em;
   font-weight: bold;
   text-align: left;
   line-height: 1.3;
}
.mv_detail_top p:first-of-type {
   background-color: #318cff;
   border-radius: 2.5rem;
   color: #fff;
   display: inline-block;
   font-size: 3.1rem;
   letter-spacing: 0.15em;
   line-height: 1.65;
   padding: 0 2.5rem;
   box-sizing: border-box;
   position: relative;
   margin-bottom: 2.5rem;
}
.mv_detail_top p:first-of-type::after {
   content: "";
   width: 0;
   height: 0;
   border-top: 1.2rem solid #318cff;
   border-left: 1rem solid transparent;
   border-right: 1rem solid transparent;
   position: absolute;
   bottom: -1.2rem;
   left: 0;
   right: 0;
   margin: 0 auto;
}
.mv_ttl {
   width: 45.4rem;
   margin: 0 auto;
}
.mv_img_box {
   width: 74rem;
   position: relative;
   margin-top: 10rem;
}
.mv_img {
   position: relative;
   z-index: 5;
}
.mv_img_shadow {
   width: 65rem;
   margin: 0 auto;
   right: 0;
   position: absolute;
   z-index: -1;
   bottom: -7.5rem;
   left: 0;
}
.mv_img_sun {
   width: 5.2rem;
   position: absolute;
   top: 0%;
   left: 7.4rem;
}
/* PCフローティングボタン ------------------- */
.floating_btn {
   width: 23.4rem;
   position: fixed;
   bottom: -1.6rem;
   right: -1.6rem;
   z-index: 900;
}
.floating_btn img {
   transition: 0.4s;
}
.floating_btn img:hover {
   transform: scale(1.1);
}
/* PCツナグテとは ------------------- */
.about_container {
   background-color: #fff;
   position: relative;
}
.about_container::before {
   content: "";
   width: 100%;
   height: 2.5rem;
   background: url(../images/about_bg.webp) no-repeat;
   background-size: cover;
   position: absolute;
   top: -2rem;
   left: 0;
}
.about_container::after {
   content: "";
   width: 100%;
   height: 2.5rem;
   background: url(../images/about_bg.webp) no-repeat;
   background-size: cover;
   position: absolute;
   bottom: -2rem;
   left: 0;
   z-index: -1;
   transform: scale(1, -1);
}
.about_inner {
   width: 120rem;
   margin: 0 auto;
   padding: 10rem 0 15rem;
   position: relative;
   z-index: 10;
}
.about_ttl h2 {
   font-size: 4rem;
   font-weight: bold;
   color: #318cff;
   letter-spacing: 0.07em;
   display: flex;
   justify-content: center;
   align-items: center;
}
.about_ttl h2 span {
   font-size: 0;
   width: 38rem;
   margin-right: 3rem;
}
.about_flex {
   display: flex;
   align-items: flex-start;
   justify-content: space-between;
   margin-top: 4rem;
}
.about_detail {
   text-align: justify;
   width: 51.5rem;
   font-size: 1.6rem;
   font-weight: bold;
   letter-spacing: 0.05em;
   line-height: 2.37;
}
.about_detail p {
   margin-bottom: 2rem;
}
.about_img {
   width: 63rem;
}
.about_origin {
   margin-top: -3.5rem;
}
.about_cube_icon {
   position: absolute;
   top: -7rem;
   left: 0;
   right: 0;
   margin: 0 auto;
   z-index: 30;
   width: 5rem;
   font-size: 3rem;
   font-weight: bold;
   color: #ffffff;
}
.about_cube_icon span {
   background-color: #318cff;
   box-sizing: border-box;
   padding: 1rem 0;
   border-radius: 50%;
   line-height: 1;
   display: block;
   width: 100%;
   height: 100%;
}
.about_cube_icon::before {
   content: "";
   width: 100%;
   height: 100%;
   box-sizing: border-box;
   border: 0.4rem solid #318cff;
   background-color: #86dd5e;
   position: absolute;
   border-radius: 50%;
   left: 0.5rem;
   top: -0.5rem;
   z-index: -1;
}
.about_cube_box {
   width: 71rem;
   margin: 0 auto;
   margin-bottom: 11rem;
   text-align: center;
   position: relative;
}
.about_cube_box::after {
   content: "";
   width: 100%;
   height: 3.3rem;
   background-color: #3fc7ff;
   position: absolute;
   bottom: -3.3rem;
   left: 1.5rem;
   transform: skew(-48deg, 0);
   border-radius: 0.5rem;
}
.about_cube {
   width: 100%;
   display: inline-block;
   box-sizing: border-box;
   background-color: #fff;
   background-image: repeating-linear-gradient(to bottom, #f9f9f9, #f9f9f9 0.1rem, transparent 0, transparent 1rem), repeating-linear-gradient(to right, #f9f9f9, #f9f9f9 0.1rem, transparent 0, transparent 1rem);
   font-size: 3.8rem;
   font-weight: bold;
   line-height: 1.2;
   padding: 2.8rem 0 2.1rem;
   position: relative;
   border: 0.4rem solid #318cff;
   border-top: none;
   border-right: none;
   z-index: 10;
   color: #318cff;
}
.about_cube .front {
   position: relative;
   z-index: 10;
}
.about_cube .top {
   background: #3fc7ff;
   border: 0.4rem solid #318cff;
   border-right: none;
   box-sizing: border-box;
   transform: skew(-42deg, 0deg);
   width: 71rem;
   height: 3.8rem;
   position: absolute;
   top: -3.8rem;
   left: 1.3rem;
}
.about_cube .right {
   background: #ff908d;
   border: 0.4rem solid #318cff;
   box-sizing: border-box;
   transform: skew(0deg, -45deg);
   width: 3.4rem;
   height: 22.2rem;
   position: absolute;
   top: -2.1rem;
   right: -3.4rem;
}
.about_cube_ttl {
   font-size: 2.4rem;
   font-weight: bold;
   letter-spacing: 0.26em;
   margin-bottom: 1.5rem;
}
.about_cube_txt {
   font-size: 1.5rem;
   font-weight: bold;
   letter-spacing: 0.01em;
   line-height: 2;
}
/* PC応援します ------------------- */
.service_inner {
   padding-bottom: 30rem;
   position: relative;
   z-index: 5;
}
.service_ttl {
   font-size: 4.8rem;
   color: #2c2c5a;
   letter-spacing: 0.14em;
   line-height: 1.47;
   font-weight: bold;
}
/* PC各サービス ------------------- */
.service_contents {
   position: relative;
}
.service_bg {
   width: 192rem;
   position: absolute;
   top: -2rem;
   left: 50%;
   transform: translateX(-50%);
   z-index: -1;
}
.service_contents:nth-of-type(2) .service_bg {
   top: 0;
}
.service_contents:nth-of-type(3) .service_bg {
   top: 2rem;
}
/* PC各サービスレイアウト ------------------- */
.service_item {
   width: 115.5rem;
   margin: 0 auto;
   position: relative;
   z-index: 5;
   padding-top: 16.5rem;
}
.service_contents:nth-of-type(2) .service_item {
   padding-top: 18rem;
}
.service_contents:nth-of-type(3) .service_item {
   padding-top: 18rem;
}
.service_item_flex {
   display: flex;
   align-items: flex-end;
   justify-content: space-between;
}
.service_contents:nth-of-type(2) .service_item_flex {
   flex-direction: row-reverse;
}
.service_item_detail {
   width: 52rem;
}
/* PC課題吹き出し ------------------- */
.service_user {
   display: flex;
   justify-content: space-between;
   align-items: flex-start;
}
.service_contents:nth-of-type(2) .service_user {
   flex-direction: row-reverse;
}
.service_user_icon {
   width: 9rem;
   margin-top: 2rem;
}
.service_user_txt {
   width: 40rem;
   background-color: #2c2c5a;
   border-radius: 1.7rem;
   font-size: 2.1rem;
   color: #fff;
   font-weight: bold;
   letter-spacing: 0.1em;
   text-align: left;
   line-height: 1.5;
   padding: 1rem 2rem;
   box-sizing: border-box;
   position: relative;
}
.service_user_txt::after {
   content: "";
   width: 0;
   height: 0;
   border-bottom: 2.1rem solid #2c2c5a;
   border-left: 2.1rem solid transparent;
   border-right: 2.1rem solid transparent;
   position: absolute;
   bottom: 1.5rem;
   left: -1.8rem;
   transform: rotate(135deg);
}
.service_contents:nth-of-type(2) .service_user_txt::after {
   left: auto;
   right: -1.8rem;
   transform: rotate(175deg) scale(1, -1);
}
/* PC各サービスタイトルボックス ------------------- */
.service_cube_box {
   width: 40rem;
   margin: 3.5rem 0 1.5rem;
   text-align: left;
   position: relative;
}
.service_contents:nth-of-type(2) .service_cube_box {
   width: 50rem;
   text-align: right;
}
.service_contents:nth-of-type(3) .service_cube_box {
   width: 36rem;
}
/* PCナンバーボックス ------------------- */
.service_cube:first-of-type {
   z-index: 20;
   width: 16.6rem;
   font-size: 2.6rem;
   font-family: YakuHanJP, "Roboto Condensed", sans-serif;
   letter-spacing: 0.03em;
}
.service_contents:nth-of-type(3) .service_cube:first-of-type {
   width: 16.9rem;
}

/* PCナンバーボックス前面 ------------------- */
.service_cube:first-of-type .front {
   background-color: #ff908d;
   box-sizing: border-box;
   padding: 0.3rem 0;
}
.service_contents:nth-of-type(2) .service_cube:first-of-type .front {
   background-color: #fff18d;
}
.service_contents:nth-of-type(3) .service_cube:first-of-type .front {
   background-color: #9ee47e;
}

/* PCナンバーボックス上面 ------------------- */
.service_cube:first-of-type .top {
   background: #ffc7c6;
   border: 0.3rem solid #2c2c5a;
   border-right: none;
   box-sizing: border-box;
   transform: skew(-42deg, 0deg);
   width: 16.8rem;
   height: 1.8rem;
   position: absolute;
   top: -1.8rem;
   left: 0.5rem;
}
.service_contents:nth-of-type(2) .service_cube:first-of-type .top {
   background: #fff6b8;
   width: 16.8rem;
}
.service_contents:nth-of-type(3) .service_cube:first-of-type .top {
   background: #c3eeaf;
   width: 17.2rem;
}

/* PCナンバーボックス右面 ------------------- */
.service_cube:first-of-type .right {
   background: #ff908d;
   border: 0.3rem solid #2c2c5a;
   box-sizing: border-box;
   transform: skew(0deg, -40deg);
   width: 1.8rem;
   height: 4.5rem;
   position: absolute;
   top: -1rem;
   right: -1.8rem;
}
.service_contents:nth-of-type(2) .service_cube:first-of-type .right {
   background: #ffee71;
   height: 4.8rem;
}
.service_contents:nth-of-type(3) .service_cube:first-of-type .right {
   background: #86dd5e;
}

/* PC日本語タイトルボックス ------------------- */
.service_cube {
   width: 100%;
   display: inline-block;
   box-sizing: border-box;
   background-color: #fff;
   background-image: repeating-linear-gradient(to bottom, #f9f9f9, #f9f9f9, 0.1rem, transparent 0, transparent 1rem), repeating-linear-gradient(to right, #f9f9f9, #f9f9f9 0.1rem, transparent 0, transparent 1rem);
   font-size: 6rem;
   font-weight: bold;
   line-height: 1.3;
   padding: 0;
   position: relative;
   border: 0.3rem solid #2c2c5a;
   border-top: none;
   border-right: none;
   z-index: 10;
   color: #2c2c5a;
   text-align: center;
   box-sizing: border-box;
}
/* PC日本語タイトルボックスの中で少し小さくしたい文字 --- */
.service_cube_notes {
   font-size: 3.5rem;
}
/* PC日本語タイトルボックスの影 ------------------- */
.service_cube_box::after {
   content: "";
   width: 0;
   height: 0;
   border-bottom: 2rem solid #2c2c5a;
   border-left: 2rem solid transparent;
   border-right: 2rem solid transparent;
   position: absolute;
   bottom: 2.5rem;
   right: -4.3rem;
   border-radius: 0.5rem;
   transform: rotate(-45deg);
}
/* PC日本語タイトルボックス前面 ------------------- */
.service_cube .front {
   position: relative;
   z-index: 10;
}

/* PC日本語タイトルボックス上面 ------------------- */
.service_cube .top {
   background: #ffee71;
   border: 0.3rem solid #2c2c5a;
   border-right: none;
   box-sizing: border-box;
   transform: skew(-50deg, 0deg);
   width: 40rem;
   height: 1.8rem;
   position: absolute;
   top: -1.8rem;
   left: 0.7rem;
}
.service_contents:nth-of-type(2) .service_cube .top {
   width: 49.4rem;
   background: #86dd5e;
}
.service_contents:nth-of-type(3) .service_cube .top {
   width: 36rem;
   background: #a3e3ff;
}
/* PC日本語タイトルボックス右面 ------------------- */
.service_cube .right {
   background: #86dd5e;
   border: 0.3rem solid #2c2c5a;
   box-sizing: border-box;
   transform: skew(0deg, -40deg);
   width: 2rem;
   height: 23.8rem;
   position: absolute;
   top: -0.9rem;
   right: -2rem;
}
.service_contents:nth-of-type(2) .service_cube .right {
   background: #a3e3ff;
   height: 23.8rem;
   width: 1.8rem;
   right: -1.78rem;
}
.service_contents:nth-of-type(3) .service_cube .right {
   background: #ff908d;
}
/* PC各サービス詳細テキスト ------------------- */
.service_txt {
   font-size: 1.5rem;
   color: #282828;
   letter-spacing: 0.05em;
   line-height: 2;
   text-align: left;
   font-weight: bold;
}
.service_contents:nth-of-type(2) .service_txt {
   text-align: right;
}
/* PCこんなお悩みを解決！ ------------------- */
.service_comment {
   border-radius: 2rem;
   border: 0.3rem solid #2c2c5a;
   box-sizing: border-box;
   background-color: #fff;
   background-image: repeating-linear-gradient(to bottom, #f9f9f9, #f9f9f9 0.1rem, transparent 0, transparent 1rem), repeating-linear-gradient(to right, #f9f9f9, #f9f9f9 0.1rem, transparent 0, transparent 1rem);
   position: relative;
   text-align: center;
   font-size: 1.8rem;
   color: #2c2c5a;
   font-weight: bold;
   padding: 3rem 0 2rem;
   margin-top: 6rem;
}
.service_comment span {
   position: absolute;
   top: -3rem;
   left: -0.3rem;
   font-size: 1.8rem;
   font-weight: bold;
   color: #fff;
   border-radius: 0.8rem;
   background-color: #2c2c5a;
   box-sizing: border-box;
   padding: 1rem 2rem;
}
.service_contents:nth-of-type(2) .service_comment span {
   left: auto;
   right: -0.3rem;
}
.service_comment p {
   display: inline-block;
   text-align: left;
   letter-spacing: 0.14em;
}
.service_contents:nth-of-type(2) .service_comment p {
   text-align: right;
}
/* PC各サービスイラスト ------------------- */
.service_item_img {
   width: 51.6rem;
}
/* PC下層ページへのボタン ------------------- */
.service_item_btn {
   width: 36rem;
   margin: 7rem auto 0;
   position: relative;
   transition: 0.4s;
   top: 0;
   left: 0;
   z-index: 1;
}
.service_item_btn:hover::before {
   top: 0rem;
   left: 0rem;
}
.service_item_btn::before {
   content: "";
   width: 100%;
   height: 100%;
   border: 0.4rem solid #2c2c5a;
   background-color: #fff;
   position: absolute;
   top: -1rem;
   left: 1rem;
   box-sizing: border-box;
   border-radius: 3.5rem;
   z-index: -1;
   transition: 0.4s;
}
.service_item_btn a {
   text-decoration: none;
   font-size: 2.8rem;
   color: #fff;
   letter-spacing: 0.14em;
   font-weight: bold;
   display: block;
   width: 100%;
   background-color: #318cff;
   box-sizing: border-box;
   border: 0.4rem solid #2c2c5a;
   border-radius: 3.5rem;
   position: relative;
   top: 0;
   left: 0;
}
.service_item_btn:hover {
   top: -1rem;
   left: 1rem;
}
.coming_btn {
   width: 36rem;
   margin: 7rem auto 0;
   background-color: #e5e5e5;
   box-sizing: border-box;
   border: 0.4rem solid #bebebe;
   border-radius: 3.5rem;
   position: relative;
   font-size: 2.8rem;
   font-weight: bold;
   letter-spacing: 0.14em;
   color: #bebebe;
}
/* PCサービス詳細 ------------------- */
.service_info_ttl {
   width: 40rem;
   box-sizing: border-box;
   position: relative;
   z-index: 5;
   margin: 10rem auto -6rem;
}
.service_info_ttl p {
   border: 0.3rem solid #2c2c5a;
   border-radius: 4.3rem;
   background-color: #fff;
   background-image: repeating-linear-gradient(to bottom, #f9f9f9, #f9f9f9 0.1rem, transparent 0, transparent 1rem), repeating-linear-gradient(to right, #f9f9f9, #f9f9f9 0.1rem, transparent 0, transparent 1rem);
   font-size: 2.4rem;
   font-weight: bold;
   padding: 0.5rem 0;
}
.service_info_ttl::after {
   content: "";
   width: 100%;
   height: 100%;
   border-radius: 4.3rem;
   border: 0.3rem solid #2c2c5a;
   box-sizing: border-box;
   background-color: #3fc7ff;
   position: absolute;
   top: -1rem;
   left: 1rem;
   z-index: -1;
}
.service_info-detail {
   background-color: #fff;
   border-radius: 20px;
   padding-top: 80px;
   border: 3px solid #2c2c5a;
}
.service_info-txt {
   font-size: 1.8rem;
}
.service_message {
   text-align: left;
   width: 70%;
   margin: 0 auto;
}
.service_message_txt {
   background-color: #fff;
   border: 4px solid #318cff;
   border-radius: 20px;
   padding: 20px 40px;
   font-size: 2.1rem;
   margin-top: 40px;
   color: #318cff;
   font-weight: bold;
   position: relative;
}
.service_message_txt:before, .service_message_txt:after {
   position: absolute;
   top: 100%;
   left: 50%;
   height: 0;
   width: 0;
   border: solid transparent;
   content: "";
}
.service_message_txt:before {
   margin-left: -15px;
   border-color: transparent;
   border-top-color: #318cff;
   border-width: 15px;
}
.service_message_txt:after {
   margin-left: -10px;
   border-color: transparent;
   border-top-color: white;
   border-width: 10px;
}
.service_message_icon {
   width: 10rem;
   margin: 3rem auto 0;
}
/* ？ --------------------------------- */
.result_item {
   width: 112rem;
   margin: 0 auto;
   position: relative;
}
.result_item::after {
   content: "";
   width: 0;
   height: 0;
   border-top: 7.2rem solid #2c2c5a;
   border-left: 7.2rem solid transparent;
   border-right: 7.2rem solid transparent;
   position: absolute;
   bottom: 8.3rem;
   right: -14.4rem;
   transform: rotate(135deg);
}
.result_icon {
   width: 10rem;
   position: absolute;
   top: -1rem;
   right: 18.5rem;
   z-index: 20;
}
.result_cube_box_ttl {
   width: 50rem;
   margin: 0 auto;
   position: relative;
   z-index: 20;
   margin-bottom: 1rem;
}
.result_cube_ttl {
   width: 100%;
   display: inline-block;
   box-sizing: border-box;
   background-color: #fff;
   background-image: repeating-linear-gradient(to bottom, #f9f9f9, #f9f9f9 0.1rem, transparent 0, transparent 1rem), repeating-linear-gradient(to right, #f9f9f9, #f9f9f9 0.1rem, transparent 0, transparent 1rem);
   position: relative;
   border: 0.3rem solid #2c2c5a;
   border-top: none;
   border-right: none;
   z-index: 10;
   padding: 1.5rem 0;
   font-size: 2.6rem;
   font-weight: bold;
   letter-spacing: 0.04em;
}
.result_cube_ttl .front {
   position: relative;
   z-index: 10;
}
.result_cube_ttl .top {
   background: #00aeff;
   border: 0.3rem solid #2c2c5a;
   box-sizing: border-box;
   border-right: none;
   transform: skew(-46deg, 0deg);
   width: 50rem;
   height: 1.9rem;
   position: absolute;
   top: -1.9rem;
   left: 0.7rem;
   z-index: 2;
}
.result_cube_ttl .right {
   background: #86dd5e;
   border: 0.3rem solid #2c2c5a;
   box-sizing: border-box;
   transform: skew(0deg, -42deg);
   width: 1.9rem;
   height: 8.7rem;
   position: absolute;
   top: -1.1rem;
   right: -1.9rem;
   z-index: 3;
}
.result_cube_box {
   width: 100%;
   position: relative;
}
.result_cube {
   width: 100%;
   display: inline-block;
   box-sizing: border-box;
   background-color: #fff;
   background-image: repeating-linear-gradient(to bottom, #f9f9f9, #f9f9f9 0.1rem, transparent 0, transparent 1rem), repeating-linear-gradient(to right, #f9f9f9, #f9f9f9 0.1rem, transparent 0, transparent 1rem);
   position: relative;
   border: 0.3rem solid #2c2c5a;
   border-top: none;
   border-right: none;
   z-index: 10;
   padding: 4.5rem 4rem;
}
.result_cube .front {
   position: relative;
   z-index: 10;
}
.result_cube .top {
   background: #ff908d;
   border: 0.3rem solid #2c2c5a;
   box-sizing: border-box;
   border-right: none;
   transform: skew(-46deg, 0deg);
   width: 112.1rem;
   height: 4.5rem;
   position: absolute;
   top: -4.5rem;
   left: 2rem;
   z-index: 2;
}
.result_cube .right {
   background: #ffee71;
   border: 0.3rem solid #2c2c5a;
   box-sizing: border-box;
   transform: skew(0deg, -42deg);
   width: 4.8rem;
   height: 25.8rem;
   position: absolute;
   top: -2.3rem;
   right: -4.7rem;
   z-index: 3;
}
.result_list {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   font-size: 1.8rem;
   font-weight: bold;
   line-height: 2.27;
}
/* PC NEWS --------------------------------- */
#news {
   padding-top: 10rem;
   margin-top: -17rem;
   padding-bottom: 16rem;
   position: relative;
}
#news::after {
   content: "";
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   z-index: -3;
   background-color: #fff;
   background-image: repeating-linear-gradient(to bottom, #f9f9f9, #f9f9f9 0.1rem, transparent 0, transparent 1rem), repeating-linear-gradient(to right, #f9f9f9, #f9f9f9 0.1rem, transparent 0, transparent 1rem);
}
.news_ttl {
   width: 61.6rem;
   margin: 0 auto;
}
.news_contents {
   width: 80rem;
   margin: 4.5rem auto 0;
}
.news_contents dl {
   text-align: justify;
   box-sizing: border-box;
   padding: 1.6rem 0;
   border-bottom: 0.2rem solid #2c2c5a;
}
.news_contents > dl:first-of-type {
   border-top: 0.2rem solid #2c2c5a;
}
.news_contents dt {
   font-size: 1.5rem;
   letter-spacing: 0.05em;
   font-weight: bold;
   color: #318cff;
   margin-bottom: 0.8rem;
}
.news_contents dd {
   font-size: 1.5rem;
   letter-spacing: 0.05em;
   line-height: 1.6;
}
.more_btn {
   font-size: 1.5rem;
   font-weight: bold;
   letter-spacing: 0.05em;
   cursor: pointer;
   display: inline-block;
   position: relative;
   color: #2c2c5a;
   margin-top: 3.6rem;
}
.more_btn::after {
   content: "";
   width: 1.5rem;
   height: 1.5rem;
   border-top: 0.2rem solid #2c2c5a;
   border-left: 0.2rem solid #2c2c5a;
   position: absolute;
   bottom: -2.5rem;
   left: 0;
   right: 0;
   margin: 0 auto;
   transform: rotate(225deg);
   border-radius: 0.2rem;
}
.more_btn.open::after {
   transform: rotate(45deg);
   bottom: -3rem;
}
.more_news {
   display: none;
}
/* PCお問い合わせ ---------------------------- */
#contact {
   position: relative;
   z-index: 10;
   background-color: #a3e3ff;
   padding-top: 15rem;
}
.contact_ttl {
   width: 36rem;
   box-sizing: border-box;
   position: relative;
   z-index: 5;
   margin: 0 auto;
}
.contact_ttl p {
   border: 0.4rem solid #2c2c5a;
   border-radius: 4.3rem;
   background-color: #fff;
   background-image: repeating-linear-gradient(to bottom, #f9f9f9, #f9f9f9 0.1rem, transparent 0, transparent 1rem), repeating-linear-gradient(to right, #f9f9f9, #f9f9f9 0.1rem, transparent 0, transparent 1rem);
   font-size: 2.6rem;
   font-weight: bold;
   padding: 0.5rem 0;
}
.contact_ttl::after {
   content: "";
   width: 100%;
   height: 100%;
   border-radius: 4.3rem;
   border: 0.4rem solid #2c2c5a;
   box-sizing: border-box;
   background-color: #3fc7ff;
   position: absolute;
   top: -1rem;
   left: 1rem;
   z-index: -1;
}
.contact_txt {
   font-size: 1.3rem;
   letter-spacing: 0.13em;
   margin: 2.5rem 0 1rem;
}
form {
   width: 82rem;
   margin: 0 auto;
   position: relative;
   text-align: center;
   font-size: 1.5rem;
   font-weight: bold;
   display: flex;
   flex-wrap: wrap;
   left: -7rem;
}
form > div {
   display: flex;
   justify-content: space-between;
   align-items: flex-start;
   position: relative;
   margin-bottom: 0.65rem;
   width: 100%;
}
label {
   font-size: 1.5rem;
   font-weight: bold;
   letter-spacing: 0.1em;
   width: 23rem;
   display: inline-block;
   text-align: right;
   margin-right: 0.5rem;
   line-height: 1;
   padding: 0.8rem 0;
   position: relative;
}
label span {
   width: 3rem;
   text-align: center;
   color: #fff;
   background-color: #ff5666;
   display: inline-block;
   font-size: 1.2rem;
   line-height: 1.3;
   letter-spacing: 0;
}
input {
   height: 3rem;
}
input, textarea {
   width: 58rem;
   box-sizing: border-box;
   display: inline-block;
   font-size: 1.5rem;
   line-height: 1.2;
   border: 0.1rem solid #2c2c5a;
}
input:focus, textarea:focus {
   border: 0.1rem solid #2c2c5a;
   background-color: #f0f0f0;
   outline: none;
}
input.error {
   margin-bottom: 1.5rem;
}
textarea {
   height: 22.5rem;
   vertical-align: top;
}
form > div:nth-of-type(6) {
   width: 49rem;
   display: flex;
   justify-content: space-between;
}
form > div:nth-of-type(6) label {
   margin-left: 0;
   width: 23.5rem;
}
form > div:nth-of-type(7) {
   width: 32rem;
   display: flex;
   text-align: right;
   justify-content: space-between;
   margin-left: auto;
}
form > div:nth-of-type(7) label {
   width: 6.7rem;
   padding: 0.8rem 0;
}
form > div:nth-of-type(6) label.error {
   width: 100%;
   left: 24.2rem;
}
form > div:nth-of-type(7) label.error {
   width: 100%;
   left: 8rem;
   padding: 0;
}
form > div:nth-of-type(7) label span {
   width: 3.3rem;
}
form > div:nth-of-type(6) input, form > div:nth-of-type(7) input {
   width: 25rem;
   vertical-align: baseline;
}
form > div:nth-of-type(7) input {
   width: 25rem;
}
label.error {
   max-width: none;
   width: auto;
   font-size: 1.2rem;
   text-align: left;
   color: red;
   padding: 0;
   margin: 0;
   position: absolute;
   bottom: 0;
   left: 24.1rem;
}
.label {
   text-align: right;
   width: 23rem;
}
input[type="submit"] {
   width: 10.5rem;
   height: auto;
   margin: 3.2rem auto 0;
   color: #fff;
   font-size: 1.6rem;
   font-weight: bold;
   letter-spacing: 0.13em;
   border-radius: 0.5rem;
   background-color: #318cff;
   border-color: #fff;
   outline: none;
   border: 0.1rem solid #fff;
   padding: 0.7rem 0;
   cursor: pointer;
   position: relative;
   right: -7.3rem;
}
input:disabled {
   background: #ccc;
   cursor: default;
}
.contact_detail {
   background-color: #a3e3ff;
   padding: 13rem 0 2.1rem;
}
.detail_ttl {
   width: 18rem;
   margin: 0 auto;
   font-size: 1.5rem;
   font-weight: bold;
   color: #ffffff;
   background-color: #2c2c5a;
   border-radius: 1.8rem;
   letter-spacing: 0.13em;
}
.tell {
   font-size: 7.4rem;
   letter-spacing: 0.08em;
   color: #2c2c5a;
   font-weight: 900;
   line-height: 1.3;
}
.tell a {
   text-decoration: none !important;
   color: #2c2c5a !important;
}
.time {
   font-size: 1.5rem;
   font-weight: bold;
   letter-spacing: 0.13em;
   color: #2c2c5a;
}
.bottom_item {
   background-color: #a3e3ff;
}
.company_logo {
   width: 20rem;
   margin: 0 auto;
   padding: 7rem 0;
   position: relative;
   z-index: 10;
   transition: 0.4s;
}
.company_logo:hover {
   opacity: 0.7;
}
.bottom_img {
   width: 115rem;
   margin: 0 auto 0;
   position: relative;
   z-index: 10;
}
.cloud_bg_bottom {
   width: 192rem;
   position: absolute;
   top: 4rem;
   left: 50%;
   transform: translateX(-50%);
}
/* PCフッター ---------------------------- */
#footer {
   position: relative;
}
.footer_detail {
   width: 100%;
   position: absolute;
   left: 0;
   bottom: 0;
   background: #318cff;
   z-index: 100;
   color: #fff;
   padding: 0.9rem 0;
}
.footer_detail ul {
   display: flex;
   align-items: center;
   justify-content: center;
}
.footer_detail ul a {
   text-decoration: none;
   color: #fff;
   font-size: 1.2rem;
   font-weight: normal;
   margin: 0 1.2rem;
}
.footer_detail ul a:hover {
   text-decoration: underline;
}
.copy {
   position: absolute;
   font-size: 1.2rem;
   letter-spacing: 0.06em;
   top: 50%;
   transform: translateY(-50%);
   right: 2.8rem;
}
.topbtn {
   width: 4rem;
   position: absolute;
   bottom: 25rem;
   right: 2rem;
   transition: 0.4s;
   z-index: 50;
}
.topbtn:hover {
   transform: scale(1.1);
}
/* T ---------------------------- */
@media only screen and (max-width: 768px) {
   body {
      min-width: 0;
   }
   .container {
      max-width: 100%;
      width: 100%;
   }
   /* Tヘッダー ----------------------- */
   #header {
      padding: 1rem 0;
   }
   .hd_inner {
      padding: 0 1rem;
   }
   .hd_logo {
      width: 22.5rem;
   }
   .hd_logo .logo:first-of-type {
      width: 10rem;
   }
   .hd_logo .logo:last-of-type {
      width: 10.8rem;
   }
   .logo:hover {
      opacity: 1;
   }
   /* Tメニュー ----------------------- */
   .menu_btn {
      width: 2.2rem;
      padding: 0.4rem 0;
   }
   .menu_btn span {
      border: 0.1rem solid #318cff;
   }
   .menu_btn::before {
      border: 0.1rem solid #318cff;
   }
   .menu_btn::after {
      border: 0.1rem solid #318cff;
   }
   .menu_btn.open::before {
      top: 0.4rem;
   }
   .menu_btn.open::after {
      bottom: 0.4rem;
   }
   .nav_inner {
      top: 11.5rem;
      transform: none;
      width: 100%;
   }
   .nav_flex::before {
      content: none;
   }
   .nav_flex {
      display: block;
   }
   .nav_right {
      width: 16rem;
      margin: 0 auto;
   }
   .nav_menu li a {
      font-size: 2rem;
      margin-bottom: 3rem;
   }
   .nav_menu li.now a::before {
      border-left: 0.6rem solid #ffee71;
      border-top: 0.3rem solid transparent;
      border-bottom: 0.3rem solid transparent;
      left: -2rem;
   }
   .nav_menu li a span {
      font-size: 1.5rem;
   }
   .nav_menu li:last-of-type a {
      margin-top: 9rem;
   }
   /* T雲 ----------------------- */
   .cloud_bg {
      position: absolute;
      top: 0;
      left: 0%;
      transform: none;
      width: 100%;
   }
   .middle {
      max-width: 100%;
      width: 4.1rem;
   }
   .big {
      width: 6.4rem;
   }
   .cloud_img_1 {
      top: 15.5rem;
      left: 2rem;
      right: auto;
   }
   .cloud_img_2 {
      top: 30rem;
      left: auto;
      right: -1.5rem;
   }
   .cloud_img_3 {
      top: 70.1rem;
      right: 13rem;
      left: auto;
   }
   .cloud_img_4 {
      top: 78.2rem;
      right: -0.7rem;
      left: auto;
   }
   .cloud_img_5 {
      top: 87.1rem;
      right: auto;
      left: -0.9rem;
   }
   .cloud_img_6 {
      top: 101.3rem;
      right: auto;
      left: -2.5rem;
   }
   .cloud_img_7 {
      top: 177rem;
      right: auto;
      left: -2.2rem;
   }
   .cloud_img_8 {
      top: 192.7rem;
      right: -2rem;
      left: auto;
   }
   .cloud_img_9 {
      top: 45.5rem;
      right: auto;
      left: 1rem;
      z-index: 10;
   }
   .cloud_img_19 {
      top: 4.7rem;
      right: -3.2rem;
      left: auto;
   }
   .cloud_img_20 {
      top: 30.5rem;
      right: auto;
      left: -1.6rem;
   }
   .cloud_img_21 {
      top: 35.8rem;
      right: 2.8rem;
      left: auto;
   }
   .cloud_img_22 {
      top: 57rem;
      right: 0.5rem;
      left: auto;
      z-index: 10;
   }
   .cloud_img_23 {
      top: 74.2rem;
      right: auto;
      left: 6.2rem;
   }
   .cloud_img_24 {
      top: 118.5rem;
      right: auto;
      left: -2rem;
   }
   .cloud_img_25 {
      top: 117.2rem;
      right: -3.2rem;
      left: auto;
   }
   .cloud_img_26 {
      top: 152.2rem;
      right: auto;
      left: 2rem;
      z-index: 20;
   }
   .cloud_img_27 {
      top: 176.8rem;
      right: auto;
      left: -2rem;
   }
   .cloud_img_28 {
      top: 164rem;
      right: -5rem;
      left: auto;
   }
   .cloud_img_29 {
      top: 181.6rem;
      right: -3.7rem;
      left: auto;
   }
   /* Tメインビジュアル ---------------- */
   .mv_contents {
      flex-direction: column;
      padding: 6rem 0 8rem;
   }
   .mv_detail {
      max-width: 100%;
      width: 100%;
      text-align: left;
      margin-left: 0;
   }
   .mv_detail_top {
      margin-bottom: 0;
      text-align: center;
   }
   .mv_detail_top p {
      font-size: 2.1rem;
      line-height: 1.3;
      text-align: center;
   }
   .mv_detail_top p:first-of-type {
      border-radius: 1.2rem;
      font-size: 1.5rem;
      line-height: 1.65;
      padding: 0 1.5rem;
      margin-bottom: 1rem;
   }
   .mv_detail_top p:first-of-type::after {
      border-top: 0.6rem solid #318cff;
      border-left: 0.5rem solid transparent;
      border-right: 0.5rem solid transparent;
      bottom: -0.5rem;
   }
   .mv_sab_ttl {
      font-size: 2rem;
      margin-bottom: 1.5rem;
   }
   .mv_sab_ttl span {
      font-size: 1.1rem;
   }
   .mv_ttl {
      max-width: 100%;
      width: 20.5rem;
      margin: 3.5rem auto 2.5rem;
   }
   .mv_img_box {
      max-width: 100%;
      width: 34.4rem;
      margin: 0 auto;
      margin-bottom: 3.5rem;
   }
   .mv_img_shadow {
      max-width: 100%;
      width: 31.2rem;
      bottom: -4rem;
   }
   .mv_img_sun {
      max-width: 100%;
      width: 2.5rem;
      top: 0.2rem;
      left: 2.8rem;
   }
   /* Tフローティングボタン ---------------- */
   .floating_btn {
      max-width: 100%;
      width: 13.2rem;
      bottom: -0.9rem;
      right: -0.9rem;
   }
   /* Tツナグテとは ---------------- */
   .about_container {
      background-color: #fff;
      position: relative;
   }
   .about_container::before {
      height: 1rem;
      background: url(../images/about_bg_sp.webp) no-repeat;
      background-size: cover;
      top: -1rem;
   }
   .about_container::after {
      height: 1rem;
      background: url(../images/about_bg_sp.webp) no-repeat;
      background-size: cover;
      bottom: -1rem;
   }
   .about_inner {
      width: 34.5rem;
      padding: 5rem 0 9rem;
   }
   .about_ttl h2 {
      font-size: 2.2rem;
      letter-spacing: 0.04em;
   }
   .about_ttl h2 span {
      width: 20.6rem;
      margin-right: 1rem;
   }
   .about_flex {
      flex-direction: column;
      margin-top: 3rem;
   }
   .about_detail {
      text-align: center;
      width: 100%;
      font-size: 1.1rem;
      letter-spacing: 0.1em;
      line-height: 1.7;
   }
   .about_detail p {
      margin-bottom: 1rem;
   }
   .about_img {
      width: 100%;
      margin-top: 3rem;
   }
   .about_origin {
      margin-top: -2.5rem;
   }
   .about_cube_icon {
      top: -3.2rem;
      width: 3rem;
      font-size: 1.8rem;
   }
   .about_cube_icon span {
      padding: 0.6rem 0;
   }
   .about_cube_icon::before {
      border: 0.2rem solid #318cff;
      left: 0.3rem;
      top: -0.3rem;
   }
   .about_cube_box {
      width: 28rem;
      margin-bottom: 7.5rem;
   }
   .about_cube_box::after {
      height: 1.5rem;
      bottom: -1.5rem;
      left: 0.5rem;
      transform: skew(-48deg, 0);
      border-radius: 0.2rem;
   }
   .about_cube {
      font-size: 1.3rem;
      padding: 2rem 3.5rem 1.5rem;
      border: 0.2rem solid #318cff;
   }
   .about_cube .top {
      border: 0.2rem solid #318cff;
      transform: skew(-36deg, 0deg);
      width: 28.6rem;
      height: 1.5rem;
      top: -1.5rem;
      left: 0.3rem;
   }
   .about_cube .right {
      border: 0.2rem solid #318cff;
      box-sizing: border-box;
      transform: skew(0deg, -40deg);
      width: 1.8rem;
      height: 20.6rem;
      position: absolute;
      top: -0.8rem;
      right: -1.8rem;
   }
   .about_cube_ttl {
      font-size: 1.3rem;
      letter-spacing: 0.04em;
      margin-bottom: 0.5rem;
   }
   .about_cube_txt {
      text-align: justify;
      font-size: 1rem;
      letter-spacing: 0;
      line-height: 2.1;
   }
   /* T応援します！ ---------------- */
   .service_inner {
      padding-bottom: 13.5rem;
   }
   .service_ttl {
      font-size: 2.1rem;
      letter-spacing: 0.2em;
      line-height: 1.66;
   }
   /* T各サービス ------------------- */
   .service_contents {
      margin-top: 4rem;
   }
   .service_contents:nth-of-type(2) {
      margin-top: 8rem;
      text-align: left;
   }
   .service_bg {
      width: 100%;
      top: 0;
      left: 0;
      transform: none;
   }
   .service_contents:nth-of-type(2) .service_bg {
      top: 0;
   }
   .service_contents:nth-of-type(3) .service_bg {
      top: 0;
   }
   /* T各サービスレイアウト ------------------- */
   .service_item {
      width: 31.3rem;
      padding-top: 7.5rem;
   }
   .service_contents:nth-of-type(2) .service_item {
      padding-top: 7.5rem;
   }
   .service_contents:nth-of-type(3) .service_item {
      padding-top: 9rem;
   }
   .service_item_flex {
      flex-direction: column;
      align-items: flex-start;
   }
   .service_contents:nth-of-type(2) .service_item_flex {
      flex-direction: column;
      align-items: flex-end;
   }
   .service_item_detail {
      width: 30rem;
      margin-bottom: 3.5rem;
   }
   /* T課題吹き出し ------------------- */
   .service_user_icon {
      width: 5rem;
      margin-top: 3rem;
   }
   .service_user_txt {
      width: 23.5rem;
      border-radius: 1rem;
      font-size: 1.3rem;
      padding: 1rem 1.8rem;
   }
   .service_user_txt::after {
      border-bottom: 1.1rem solid #2c2c5a;
      border-left: 1.1rem solid transparent;
      border-right: 1.1rem solid transparent;
      bottom: 1rem;
      left: -1rem;
   }
   .service_contents:nth-of-type(2) .service_user_txt::after {
      right: -1rem;
   }
   /* T各サービスタイトルボックス ------------ */
   .service_cube_box {
      width: 22.5rem;
      margin: 4rem 0 1rem;
   }
   .service_contents:nth-of-type(2) .service_cube_box {
      width: 27.5rem;
      text-align: right;
   }
   .service_contents:nth-of-type(3) .service_cube_box {
      width: 19.7rem;
   }
   /* Tナンバーボックス ------------------- */
   .service_cube:first-of-type {
      width: 9rem;
      font-size: 1.4rem;
      position: relative;
      top: .2rem;
   }
   .service_contents:nth-of-type(2) .service_cube:first-of-type {
      width: 9.2rem;
   }
   .service_contents:nth-of-type(3) .service_cube:first-of-type {
      width: 9.4rem;
   }

   /* Tナンバーボックス前面 ------------------- */
   .service_cube:first-of-type .front {
      padding: 0.2rem 0;
   }
   .service_contents:nth-of-type(2) .service_cube:first-of-type .front {
      width: 8.8rem;
   }
   
   /* Tナンバーボックス上面 ------------------- */
   .service_cube:first-of-type .top {
      border: 0.2rem solid #2c2c5a;
      transform: skew(-35deg, 0deg);
      width: 9.3rem;
      height: 1.1rem;
      top: -1.1rem;
      left: 0.1rem;
   }
   .service_contents:nth-of-type(2) .service_cube:first-of-type .top {
      width: 9.6rem;
      transform: skew(-40deg, 0deg);
   }
   .service_contents:nth-of-type(3) .service_cube:first-of-type .top {
      width: 9.6rem;
   }   
   
   /* Tナンバーボックス右面 ------------------- */
   .service_cube:first-of-type .right {
      border: 0.2rem solid #2c2c5a;
      transform: skew(0deg, -43deg);
      width: 1.1rem;
      height: 2.4rem;
      top: -0.6rem;
      right: -1.1rem;
   }
   .service_contents:nth-of-type(2) .service_cube:first-of-type .right {
      height: 2.55rem;
      width: 1.25rem;
      transform: skew(0deg, -43deg);
      top: -0.6rem;
      right: -0.9em;
   }   
   
   /* T日本語タイトルボックス ------------------- */
   .service_cube {
      font-size: 3.3rem;
      line-height: 1.3;
      border: 0.2rem solid #2c2c5a;
   }
   
   /* PC日本語タイトルボックスの中で少し小さくしたい文字  */
   .service_cube_notes {
      font-size: 2rem;
   }

   /* T日本語タイトルボックスの影 ------------------- */
   .service_cube_box::after {
      border-bottom: 1.5rem solid #2c2c5a;
      border-left: 1.5rem solid transparent;
      border-right: 1.5rem solid transparent;
      bottom: 1.8rem;
      right: -2.9rem;
      border-radius: 0.2rem;
   }
   
   /* T日本語タイトルボックス前面 ------------------- */
   
   /* T日本語タイトルボックス上面 ------------------- */
   .service_cube .top {
      border: 0.2rem solid #2c2c5a;
      transform: skew(-35deg, 0deg);
      width: 22.8rem;
      height: 1.1rem;
      top: -1.1rem;
      left: 0.1rem;
   }
   .service_contents:nth-of-type(2) .service_cube .top {
      width: 27.5rem;
   }
   .service_contents:nth-of-type(3) .service_cube .top {
      width: 20.1rem;
   }
   
   /* T日本語タイトルボックス右面 ------------------- */
   .service_cube .right {
      border: 0.2rem solid #2c2c5a;
      transform: skew(0deg, -43deg);
      width: 1.1rem;
      height: 13.2rem;
      top: -0.6rem;
      right: -1.1rem;
   }
   .service_contents:nth-of-type(2) .service_cube .right {
      width: 1.3rem;
      height: 13.15rem;
      top: -0.6rem;
      right: -0.4em;
   }
   
   /* T各サービス詳細テキスト ------------------- */
   .service_txt {
      font-size: 1.1rem;
      text-align: justify;
   }
   .service_contents:nth-of-type(2) .service_txt {
      text-align: left;
   }
   /* Tこんなお悩みを解決！ ------------------- */
   .service_comment {
      border-radius: 1rem;
      border: 0.2rem solid #2c2c5a;
      font-size: 1.25rem;
      padding: 1.5rem 0;
      margin-top: 3rem;
      line-height: 1.6;
   }
   .service_comment span {
      top: -1.5rem;
      left: -0.2rem;
      font-size: 1.1rem;
      border-radius: 0.5rem;
      padding: 0.4rem 1rem;
   }
   .service_contents:nth-of-type(2) .service_comment span {
      right: -0.2rem;
   }
   /* T各サービスイラスト ------------------- */
   .service_item_img {
      width: 100%;
   }
   /* T下層ページへのボタン ------------------- */
   .service_item_btn {
      width: 30rem;
      margin: 2rem auto 0;
   }
   .service_item_btn:hover {
      top: -0.8rem;
      left: 0.8rem;
   }
   .service_item_btn::before {
      border: 0.3rem solid #2c2c5a;
      top: -0.8rem;
      left: 0.8rem;
      border-radius: 2.8rem;
   }
   .service_item_btn a {
      font-size: 2rem;
      padding: 0.5rem 0;
      border: 0.3rem solid #2c2c5a;
      border-radius: 2.8rem;
   }
   .coming_btn {
      width: 30rem;
      margin: 2rem auto 0;
      border: 0.3rem solid #bebebe;
      border-radius: 2.8rem;
      font-size: 2rem;
   }
   /* Tサービス詳細 ------------------- */
   .service_info_ttl {
      width: 90%;
      text-align: center;
   }
   .service_info-detail {
      padding-top: 6rem;
   }
   .service_info_ttl p {
      font-size: 1.8rem;
      font-weight: bold;
      padding: 0.5rem;
      border-radius: 2rem;
   }
   .service_info_ttl::after {
      border-radius: 2rem;
      top: -0.6rem;
      left: 0.5rem;
   }
   .service_info-txt {
      font-size: 1.2rem;
      font-weight: bold;
      text-align: left;
      padding: 1rem;
   }
   .service_message {
      width: 100%;
   }
   .service_message_txt {
      border-radius: 20px;
      padding: 10px 15px;
      font-size: 1.3rem;
      margin-top: 40px;
      border: 3px solid #318cff;
   }
   .service_message_txt:after {
   margin-left: -11px;
   border-width: 11px;
   }
   .service_message_icon {
      width: 8rem;
      margin: 3rem auto 0;
   }
   /* T？ ------------------- */
   .result_item {
      width: 27.3rem;
   }
   .result_item::after {
      border-top: 2.5rem solid #2c2c5a;
      border-left: 2.5rem solid transparent;
      border-right: 2.5rem solid transparent;
      bottom: 3.7rem;
      right: -5.7rem;
      transform: rotate(135deg);
   }
   .result_icon {
      width: 4.8rem;
      top: 3rem;
      right: 1rem;
   }
   .result_cube_box_ttl {
      width: 13.5rem;
      margin-bottom: 0.3rem;
   }
   .result_cube_ttl {
      border: 0.2rem solid #2c2c5a;
      padding: 0.5rem 0;
      font-size: 1.4rem;
      line-height: 1.5;
   }
   .result_cube_ttl .top {
      border: 0.2rem solid #2c2c5a;
      transform: skew(-36deg, 0deg);
      width: 13.8rem;
      height: 0.9rem;
      top: -0.9rem;
      left: 0.1rem;
   }
   .result_cube_ttl .right {
      border: 0.2rem solid #2c2c5a;
      transform: skew(0deg, -35deg);
      width: 1.1rem;
      height: 7.7rem;
      top: -0.5rem;
      right: -1.1rem;
   }
   .result_cube_box {
      width: 100%;
      position: relative;
   }
   .result_cube {
      border: 0.2rem solid #2c2c5a;
      padding: 1.5rem 2rem;
   }
   .result_cube .top {
      border: 0.2rem solid #2c2c5a;
      transform: skew(-46deg, 0deg);
      width: 27.5rem;
      height: 2.3rem;
      top: -2.3rem;
      left: 0.8rem;
   }
   .result_cube .right {
      border: 0.2rem solid #2c2c5a;
      transform: skew(0deg, -42deg);
      width: 2.6rem;
      height: 25.2rem;
      top: -1.2rem;
      right: -2.6rem;
   }
   .result_list {
      font-size: 1rem;
      font-weight: bold;
      line-height: 2.2;
   }
   /* T News ------------------- */
   #news {
      padding-top: 20rem;
      padding-bottom: 10rem;
      margin-top: -13.5rem;
      position: relative;
   }
   .news_ttl {
      max-width: 100%;
      width: 30rem;
      margin: 0 auto;
   }
   .news_contents {
      max-width: 100%;
      width: 33.5rem;
      margin: 4.5rem auto 0;
   }
   .news_contents dl {
      padding: 1.5rem 0;
      border-bottom: 0.2rem solid #2c2c5a;
   }
   .news_contents > dl:first-of-type {
      border-top: 0.2rem solid #2c2c5a;
   }
   .news_contents dt {
      font-size: 1rem;
      margin-bottom: 1%;
   }
   .news_contents dd {
      font-size: 1.1rem;
      line-height: 1.7;
   }
   .more_btn {
      font-size: 1.9rem;
      margin-top: 2.5rem;
   }
   .more_btn::after {
      width: 1.5rem;
      height: 1.5rem;
      border-top: 0.3rem solid #2c2c5a;
      border-left: 0.3rem solid #2c2c5a;
      bottom: -30%;
   }
   .more_btn.open::after {
      transform: rotate(45deg);
      bottom: -2rem;
   }
   /* Tコンタクト ------------------- */
   #contact {
      padding-top: 5rem;
   }
   .contact_ttl {
      max-width: 100%;
      width: 29rem;
   }
   .contact_ttl p {
      border: 0.3rem solid #2c2c5a;
      border-radius: 3.2rem;
      font-size: 2.2rem;
      padding: 5px 0;
   }
   .contact_ttl::after {
      border-radius: 3.2rem;
      border: 0.3rem solid #2c2c5a;
      top: -1rem;
      left: 1rem;
   }
   .contact_txt {
      font-size: 1.3rem;
      margin-top: 2rem;
      margin-bottom: 2rem;
   }
   form {
      max-width: 100%;
      width: 34.4rem;
      font-size: 1.1rem;
      left: 0;
   }
   form > div {
      margin-bottom: 0.8rem;
      align-items: flex-start;
      flex-direction: column;
   }
   label {
      font-size: 1.6rem;
      font-weight: bold;
      letter-spacing: 0;
      max-width: 100%;
      width: 100%;
      margin-right: 0;
      line-height: 1.2;
      padding: 0;
      margin-top: 0.2rem;
      text-align: left;
      display: flex;
      margin-bottom: 0.5rem;
      align-items: center;
   }
   label span {
      max-width: 100%;
      width: 3rem;
      font-size: 1.2rem;
      line-height: 1;
      vertical-align: bottom;
      padding: 0.2rem 0 0.2rem;
      margin-left: 0.3rem;
   }
   input {
      height: 2.5rem;
   }
   input, textarea {
      max-width: 100%;
      width: 100%;
      font-size: 1.6rem;
      vertical-align: baseline;
      padding: 0.1rem;
      border-radius: 0;
   }
   textarea {
      min-height: 18rem;
      resize: vertical;
   }
   form > div:nth-of-type(6) {
      max-width: 100%;
      width: 48%;
      display: flex;
      justify-content: flex-start;
   }
   form > div:nth-of-type(6) label {
      width: 100%;
   }
   form > div:nth-of-type(7) {
      max-width: 100%;
      width: 48%;
      display: flex;
      justify-content: flex-start;
      margin-left: auto;
   }
   form > div:nth-of-type(7) label {
      width: 100%;
      padding: 0;
   }
   form > div:nth-of-type(6) label.error {
      width: 100%;
      left: 0;
   }
   form > div:nth-of-type(7) label.error {
      width: 100%;
      left: 0;
   }
   form > div:nth-of-type(7) label span {
      width: 3rem;
   }
   form > div:nth-of-type(6) input, form > div:nth-of-type(7) input {
      max-width: 100%;
      width: 100%;
   }
   form > div:nth-of-type(7) input {
      max-width: 100%;
      width: 100%;
   }
   input.error {
      margin-bottom: 2rem;
   }
   label.error {
      width: 100%;
      font-size: 1.5rem;
      bottom: 0rem;
      left: 0;
   }
   input[type="submit"] {
      max-width: 100%;
      width: 10.5rem;
      font-size: 1.6rem;
      border-radius: 0.5rem;
      border: 0.1rem solid #fff;
      padding: 0.7rem 0;
      right: 0;
   }
   .label {
      max-width: 100%;
      width: 100%;
      align-self: flex-start;
      text-align: left;
      font-size: 1.6rem;
   }
   .contact_detail {
      padding: 8.4rem 0 3rem;
   }
   .detail_ttl {
      max-width: 100%;
      width: 14rem;
      font-size: 11.5px;
      border-radius: 1.4rem;
   }
   .tell {
      font-size: 4.3rem;
      line-height: 1.3;
   }
   .time {
      font-size: 1rem;
   }
   .company_logo {
      max-width: 100%;
      width: 12.5rem;
      margin: 0 auto;
      padding: 4.5rem 0 4rem;
   }
   .bottom_img {
      max-width: 100%;
      width: 100%;
   }
   .cloud_bg_bottom {
      width: 100%;
      position: absolute;
      top: 0;
      left: 0;
      transform: none;
   }
   /* Tフッター ------------------- */
   #footer {
      padding-bottom: 3.8rem;
   }
   .footer_detail {
      padding: 1rem 0;
   }
   .footer_detail ul a {
      font-size: 1rem;
      margin: 0 1.2rem;
   }
   .copy {
      position: relative;
      font-size: 1rem;
      letter-spacing: 0;
      top: 0%;
      transform: none;
      right: 0;
   }
   .topbtn {
      max-width: 100%;
      width: 3rem;
      bottom: 17.5rem;
      right: 1rem;
      z-index: 50;
   }
}
   /* Tここまで ------------------- */

.scroll_bar {
   width: 8px;
   position: fixed;
   bottom: 8%;
   left: 2%;
   transition: 0.7s;
   font-size: 0;
}
.scroll_bar::after {
   content: "";
   width: 12px;
   height: 74px;
   background: url(../images/scroll_arrow.svg) no-repeat;
   background-size: cover;
   position: absolute;
   top: 0;
   left: -5px;
   margin: 0 auto;
   clip-path: inset(0 0 100% 0);
   animation: scroll_bar 4s;
   animation-fill-mode: forwards;
   animation-iteration-count: infinite;
}
@keyframes scroll_bar {
   0% {
      clip-path: inset(0 0 100% 0);
   }
   50% {
      clip-path: inset(0 0 0 0);
   }
   100% {
      clip-path: inset(100% 0 0 0);
   }
}
.hide_bar {
   opacity: 0;
   visibility: hidden;
}
.thanks_contents {
   padding-top: 230px;
}
.thanks_bg {
   min-width: 1920px;
   position: absolute;
   top: 0;
   left: 50%;
   transform: translateX(-50%);
}
@media only screen and (max-width: 1439px) {
   .thanks_bg {
      max-width: 1920px;
      width: 133.4vw;
      min-width: 1850px;
   }
}
.cloud_bg_thanks {
   position: absolute;
   min-width: 1920px;
   top: 13%;
   left: 50%;
   transform: translateX(-50%);
   z-index: 1;
}
.thanks_img_01 {
   max-width: 175px;
   width: 100%;
   position: absolute;
   top: -47%;
   left: 10%;
   right: 0;
   margin: 0 auto;
   z-index: 15;
}
.thanks_img_02 {
   max-width: 27px;
   width: 100%;
   position: absolute;
   bottom: 8%;
   left: -3%;
   z-index: 1;
}
.thanks_box {
   max-width: 555px;
   width: 100%;
   margin: 0 auto;
   position: relative;
}
.thanks_box::after {
   content: "";
   width: 0;
   height: 0;
   border-top: 85px solid #2c2c5a;
   border-left: 85px solid transparent;
   border-right: 85px solid transparent;
   position: absolute;
   bottom: 97px;
   right: -175px;
   transform: rotate(135deg);
}
.thanks_cube {
   width: 100%;
}
.thanks_cube {
   width: 100%;
   display: inline-block;
   box-sizing: border-box;
   background-color: #fff;
   background-image: repeating-linear-gradient(to bottom, #f9f9f9, #f9f9f9 1px, transparent 0, transparent 10px), repeating-linear-gradient(to right, #f9f9f9, #f9f9f9 1px, transparent 0, transparent 10px);
   position: relative;
   border: 3px solid #2c2c5a;
   border-top: none;
   border-right: none;
   z-index: 10;
   padding: 5% 0 6%;
}
.thanks_cube .front {
   position: relative;
   z-index: 10;
}
.thanks_cube .top {
   background: #3fc7ff;
   border: 3px solid #2c2c5a;
   border-right: none;
   box-sizing: border-box;
   transform: skew(-49deg, 0deg);
   width: 101%;
   height: 50px;
   position: absolute;
   top: -50px;
   left: 26px;
   z-index: 2;
}
.thanks_cube .right {
   background: #ff908d;
   border: 3px solid #2c2c5a;
   box-sizing: border-box;
   transform: skew(0deg, -39deg);
   width: 60px;
   height: 101.2%;
   position: absolute;
   top: -26px;
   right: -60px;
   z-index: 3;
}
.thanks_icon {
   max-width: 70px;
   width: 16%;
   position: absolute;
   top: -15%;
   left: 13%;
   right: 0;
   margin: 0 auto;
   z-index: 15;
}
.thanks_ttl {
   font-size: 20px;
   font-weight: bold;
   letter-spacing: 0.13em;
   line-height: 2.1;
   text-align: center;
   margin-bottom: 4%;
}
.thanks_txt {
   font-size: 14px;
   letter-spacing: 0.05em;
}
.back_btn {
   max-width: 280px;
   width: 100%;
   margin: 2.5% auto 0;
   position: relative;
}
.back_btn a {
   display: block;
   width: 100%;
   border: 2px solid #282828;
   background-color: #fff9c5;
   font-size: 19px;
   letter-spacing: 0.08em;
   border-radius: 32px;
   text-decoration: none;
   color: #282828;
   box-sizing: border-box;
   padding: 12px 0;
   position: relative;
   transition: 0.4s;
}
.back_btn a:hover {
   background-color: #fff;
}
.back_btn a::before {
   content: "";
   width: 10px;
   height: 0;
   border: 1px solid #282828;
   position: absolute;
   top: 50%;
   transform: translateY(-50%);
   right: 11%;
}
.back_btn a::after {
   content: "";
   width: 8px;
   height: 8px;
   border-top: 2px solid #282828;
   border-right: 2px solid #282828;
   position: absolute;
   top: 50%;
   transform: translateY(-50%) rotate(45deg);
   right: 9%;
   transition: 0.4s;
}
.back_btn a:hover::after {
   right: 7%;
}
.thanks .bottom_item {
   background-color: transparent;
}
.thanks .company_logo {
   padding: 0;
   margin: 12% auto 6%;
}
@media only screen and (max-width: 768px) {
   .thanks_contents {
      padding-top: 15.5rem;
   }
   .thanks_bg {
      width: 100%;
      min-width: 0;
      top: 2.5rem;
      left: 0;
      transform: none;
   }
   .cloud_bg_thanks {
      width: 100%;
      min-width: 0;
      top: 4.5rem;
      left: 0;
      transform: none;
   }
   .thanks_img_01 {
      max-width: 100%;
      width: 9.6rem;
      top: -8.3rem;
      left: 2rem;
   }
   .thanks_img_02 {
      max-width: 100%;
      width: 1.4rem;
      bottom: 1rem;
      left: -0.9rem;
   }
   .thanks_box {
      max-width: 100%;
      width: 29rem;
      left: -2rem;
   }
   .thanks_box::after {
      border-top: 4.8rem solid #2c2c5a;
      border-left: 4.8rem solid transparent;
      border-right: 4.8rem solid transparent;
      bottom: 5.5rem;
      right: -9.9rem;
   }
   .thanks_cube {
      border: 0.2rem solid #2c2c5a;
      border-top: none;
      border-right: none;
      padding: 1.8rem 0 2rem;
   }
   .thanks_cube .top {
      border: 0.2rem solid #2c2c5a;
      border-right: none;
      box-sizing: border-box;
      transform: skew(-35deg, 0deg);
      width: 106%;
      height: 2.8rem;
      top: -2.8rem;
      left: 0.7rem;
   }
   .thanks_cube .right {
      border: 0.2rem solid #2c2c5a;
      transform: skew(0deg, -38deg);
      width: 3.5rem;
      height: 101.2%;
      position: absolute;
      top: -1.5rem;
      right: -3.5rem;
      z-index: 3;
   }
   .thanks_ttl {
      font-size: 1.3rem;
      letter-spacing: 0;
      margin-bottom: 1.8rem;
   }
   .thanks_txt {
      font-size: 1.1rem;
      letter-spacing: 0;
   }
   .back_btn {
      max-width: 100%;
      width: 19.2rem;
      margin: 4.5rem auto 0;
   }
   .back_btn a {
      border: 0.2rem solid #282828;
      font-size: 1.3rem;
      border-radius: 2.2rem;
      padding: 0.9rem 0;
   }
   .back_btn a::before {
      width: 0.6rem;
      border: 0.1rem solid #282828;
      right: 2.5rem;
      border-radius: 0.5rem;
   }
   .back_btn a::after {
      width: 0.4rem;
      height: 0.4rem;
      border-top: 0.2rem solid #282828;
      border-right: 0.2rem solid #282828;
      right: 2rem;
   }
   .back_btn a:hover::after {
      right: 1.5rem;
   }
   .thanks .company_logo {
      padding: 0;
      margin: 9rem auto 4rem;
   }
}