* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}


#g-nav.panelactive {
  opacity: 1;
  z-index: 999;
  right: 0;
}

#g-nav {
  position: fixed;
  z-index: -1;
  opacity: 0;
  top: 0;
  /* background: #111; */
  transition: all 0.3s;
  right: -120%;
}


.color_orange {
  color: #f8b62d;
}

*:focus {
  outline: none;
}

a {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  cursor: pointer;
  display: block;
}

.comingsoon {
  margin-top: 200px;
  text-align: center;
}

html {
  font-size: 16px;
}

body {
  background-position: center;
  background-size: cover;
  /* font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  background-color: #f4efe3;
  font-family: "yu-gothic-pr6n", sans-serif; */

  /* font-family: "fot-cezanne-pron", sans-serif; */

  font-weight: 400;
  font-style: normal;
  /* font-family: 'Noto Sans JP', sans-serif; */
  font-family: 'Zen Kaku Gothic New', sans-serif;
}

h1,
h2,
h3,
h4 {
  color: white;
  font-family: 'Zen Kaku Gothic Antique', sans-serif;
}

h1,
h2,
h3,
p,
span {
  line-height: 1.7;
}


.en,
.num {
  font-family: "Renner*";
}

.bold {
  font-weight: bold;
}

header,
footer,
nav,
menu,
article,
aside,
section,
details,
figcaption,
figure {
  display: block;
}

h1,
h2,
h3,
p,
span {
  margin: 0;
  padding: 0;
  color: white;
}


.bg_black {
  background-color: #111;
}


p,
th,
td {
  line-height: 1.7;
}


ul,
ol {
  list-style: none;
}

table {
  border-collapse: collapse;
}



a img {
  border: none;
}

a {
  text-decoration: none;
}

strong {
  font-weight: normal;
}

i {
  font-style: normal;
}

body {
  -webkit-font-feature-settings: 'palt';
  font-feature-settings: 'palt';
}

input,
button,
textarea,
select {
  -webkit-appearance: none;
  appearance: none;
}

button {
  border: none;
  text-decoration: none;
}

img {
  width: 100%;
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}



.color_gray {
  color: #999;
}








.color_white {
  color: white;
}

.bg_white {
  background-color: white;
}

.bg_black {
  background-color: #111;
}


.color_black {
  color: #111;
}

.color_white {
  color: white;
}

a {
  color: #111;
}

button {
  background-color: unset;
}

.textcenter {
  text-align: center;
}


.inner {
  padding: 88px 16px;
}


.title_en {
  font-size: 24px;
}

.about_text {
  margin-top: 24px;
}



.copy_right {
  padding: 16px 0;
}

.small {
  font-size: 10px;
}

.footer_inner {
  padding: 56px 16px;
}

.batch_button a {
  padding: 32px 0;
  width: 100%;
  background-color: white;
  border-radius: 56px;
  border: 5px solid #171C61;
  display: block;
}

.batch_button {
  margin-top: 24px;
}


.about_button a {
  padding: 16px 0;
  background-color: #f8b62d;
  border-radius: 56px;
  border: 5px solid #171C61;
  display: block;
  font-size: 16px;
  font-weight: bold;

}

.about_button {
  margin-top: 32px;
}

.contents_button a {
  padding: 16px 0;
  background-color: #f8b62d;
  border-radius: 56px;
  border: 5px solid #171C61;
  display: block;
  font-size: 16px;
  font-weight: bold;
}

.contents_button {
  margin-top: 24px;
}







.pc {
  display: none;
}

.main_contents_inner {
  padding: 40px 16px;
  margin-top: 32px;
}


.fa-instagram {
  padding: 16px;
  border-radius: 50px;
  background-color: #EF187B;
  color: white;
  font-size: 24px;
}

.contact.fa-instagram {
  padding: 10px;
  margin-left: 16px;
}



.fa-x-twitter {
  padding: 16px;
  border-radius: 50px;
  background-color: #c30d23;
  color: white;
  font-size: 24px;
}

.fa-tiktok {
  padding: 16px;
  border-radius: 50px;
  background-color: #c30d23;
  color: white;
  font-size: 24px;
}

.official {
  font-size: 24px;
  font-weight: bold;
}



.contents_block {
  margin-top: 16px;
}

.contents_main_title {
  font-size: 32px;
}


.top_inner {
  padding-top: 200px;
  /* padding-right: 16px;
  padding-left: 16px; */
}


.top_block {
  position: relative;
  height: 85vh;
  /* margin-top: 144px;  */
}


.top_back_image {
  /* margin-top: 144px; */
  /* position: relative; */
  /* padding-left: 30%; */
  position: absolute;
  top: 50vh;
  width: 100vw;
  height: 45vh;
  position: absolute;
  background-image: url(assets/aaaa.svg);
  background-position: center;
  background-size: cover;
}


.top_back_image p {
  margin-top: -36px;
  line-height: 32px;
  padding-left: 16px;
}


.top_block_text h1 {
  padding-right: 16px;
  padding-left: 16px;
}

.color_black {
  color: #333;
}

.color_white {
  color: white;
}

.right {
  text-align: right;
}

.menu_detail p {
  font-size: 14px;
}

.medium {
  font-size: 14px;
}

.map_image {
  margin-top: 32px;
}

.map .inner {
  padding-bottom: 0;
}

.name.middle {
  font-size: 14px;
}

.common_btn {
  position: relative;
  display: block;
}

.common_btn span {
  font-size: 16px;
  letter-spacing: 0.05em;
  color: #111;
  padding-left: 24px;
  transition: 0.3s;
  font-weight: bold;
}

.common_btn {
  display: flex;
  align-items: center;
  width: 300px;
  height: 65px;
  border-radius: 60px;
  background-color: #1D2088;
  position: relative;
}

.auto {
  margin: auto;
}

.common_btn::after {
  position: absolute;
  content: "";
  background: url(assets/arrow_black.svg) no-repeat center;
  background-size: cover;
  width: 30px;
  height: 16px;
  top: 50%;
  transform: translate(-50%, -50%);
  right: 8px;
  transition: 0.3s;
}

.works_list_btn img {
  width: 57px;
  padding: 24px 20px;
  border: 1px solid black;
  border-radius: 50px;
}


.works_list_btn {
  text-align: end;
}




.works_list_category_num {
  display: inline-flex;
  padding: 5px 8px;
  border-radius: 3px;
  border: 1px solid black;
}

.works_list_category .works_list_category_num+.works_list_category_num {
  margin-left: 3px;
}

.news_li {
  flex: 0 0 310px;
  scroll-snap-align: center;
  margin-bottom: 24px;
}

.news_ul {
  display: flex;
  overflow-x: scroll;
  scroll-snap-type: x mandatory;
}


.news_category {
  display: inline-flex;
  padding: 5px 8px;
  border-radius: 3px;
  border: 1px solid black;
}

.news_li p {
  display: inline-flex;
}


.contact h2 span {
  border: 1px solid #333;
}

.top_block_image {
  width: 20%;
  margin-left: auto;
  margin-top: 16px;

}





.company_table_block tr {
  border-top: 1px solid #707070;
  border-bottom: 1px solid #707070;
  padding: 16px;
  display: block;
}

.company_table_block tr+tr {
  border-top: none;
}

.sub_works .category {
  display: inline-flex;
  padding: 5px 8px;
  border-radius: 3px;
  border: 1px solid black;
}

.sub_works_category_ul {
  display: flex;
  align-items: center;
}

.sub_works_category_li+.sub_works_category_li {
  margin-left: 8px;
}

.inner.thought {
  background-color: #333;
}

.inner.thought p {
  color: white;
}

.inner.thought h2 {
  color: white;
}


.works_list_num h4 {
  margin-top: 16px;
}

.contact .common_btn {
  background-color: white;
  width: 100%;
}

.works_list_category_num {
  background-color: white;
}

.sub_works .category {
  background-color: white;
}

.sp_small {
  font-size: 12px;
}


.sub_works h1 {
  font-size: 28px;
  margin-top: 24px;
  margin-bottom: 24px;
}

.sub_works_center_block_img li {
  margin-top: 8px;
}

.sub_works_center_block_text {
  margin-top: 32px;
}

.sub_works_center_block_text_li {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #333;
  padding: 8px 0;
}

.bofore_after {
  margin-top: 32px;
}

.bofore_after_ul li+li {
  margin-top: 8px;
}

.bofore_after_ul {
  margin-top: 16px;
}

.data,
.comment {
  font-size: 20px;
}

.bofore_after h2 {
  font-size: 20px;
}

.comment {
  margin-top: 32px;
  margin-bottom: 8px;
}



.page_title {
  font-size: 28px;
}

.contact h2 {
  margin-top: 8px;
}

.contact_detail {
  margin-top: 16px;
}

.common_btn {
  margin-top: 16px;
}

.contact_tel {
  margin-top: 16px;
}


.top_block_text h2 {
  margin-top: 16px;
  font-size: 16px;
}

.thought p {
  margin-top: 32px;
}

.thought p+p {
  margin-top: 16px;
}

.br_pc {
  display: none;
}

.about_detail {
  margin-top: 16px;
}

.news_li+.news_li {
  margin-left: 16px;
}

.pc {
  display: none;
}

.pc_btn {
  display: none;
}


.sp.common_btn {
  margin: auto;
  margin-top: 16px;
}


.news_li img {
  margin-bottom: 8px;
}

.news_li h4 {
  margin-top: 5px;
}

.works_list {
  display: flex;
  overflow-x: scroll;
  scroll-snap-type: x mandatory;
}

.works_list_num {
  flex: 0 0 310px;
  scroll-snap-align: center;
  margin-bottom: 24px;
}

.works_list .works_list_num+.works_list_num {
  margin-left: 16px;
}

.works.heading_block p {
  margin-top: 16px;
}

.works_list {
  margin-top: 32px;
}

.works_list_category {
  margin-top: 8px;
}

.news_ul {
  margin-top: 32px;
}

.footer_detail {
  margin-top: 24px;
}

.footer_menu {
  margin-top: 40px;
}

.footer_block_2 ul {
  display: flex;
}

.footer_block_2 ul {
  justify-content: flex-end;
}

.footer_block_2 ul li+li {
  margin-left: 8px;
}


.sub_strength_ul {
  margin-top: 64px;
}

.sub_strength_detail {
  margin-top: 16px;
}

.sub_strength_block_img {
  margin-top: 16px;
}


.sub_strength_li+.sub_strength_li {
  margin-top: 32px;
}

.sub_strength_flow_text {
  margin-top: 16px;
}

.flow {
  font-size: 24px;
  margin-top: 40px;
}


.works_list_num h4 {
  font-weight: normal;
}

.news_li h4 {
  font-weight: normal;
}

.top_block_text h2 {
  font-weight: normal;
}


.service_block_animation {
  width: 100%;
  overflow: hidden;
  text-align: center;
  line-height: 1.5em;
  /* font-size: 16px; */
  /* position: absolute;
  top: 14vh;
  left: 0; */
  position: relative;
  margin: 88px calc(50% - 50vw) 0;
  width: 100vw;
}

.service_block_heading {
  white-space: nowrap;
  margin: 0;
  width: auto;
  text-align: left;
  font-size: 48px;
  letter-spacing: -2px;
  color: white;


  /* font-size: 14px; */
  /* display: inline-block; */
  /* padding-left: 100%; */
  /* white-space: nowrap; */
  /* line-height: 1em; */

  animation: scrollAnime 50s linear infinite;


}

/* 

.service_block_animation {
  margin: auto;
  width: 100%;
  color: white;
  overflow: hidden;
} */

/* .service_block_heading {
  font-size: 14px;
  display: inline-block;
  padding-left: 100%;
  white-space: nowrap;
  line-height: 1em;
  animation: scrollAnime 18s linear infinite;
} */


@keyframes scrollAnime {
  0% {
    transform: translateX(0%)
  }

  100% {
    transform: translateX(-500%)
  }
}

.service_block {
  position: relative;
}


.service_block_flex {
  margin-top: 32px;
}

.service_block_flex_title {
  font-size: 24px;
}

.service_detail_text {
  margin-top: 16px;
}

.service_detail_category {
  margin-top: 8px;
}

.service_block_flex img {
  margin-top: 24px;
}

.service_image {
  margin: 24px calc(50% - 50vw) 0;
  width: 100vw;
}


.title.en {
  font-size: 24px;

}

.company .inner {
  padding-top: 0px;
}

.title_block img {
  width: 50%;
}

.company.title_block {
  display: flex;
  justify-content: space-between;
  align-items: end;
}

.company_table {
  margin-top: 32px;
  width: 100%;
}

.company_table_block_title {
  width: 88px;
  text-align: left;
  font-weight: lighter;
}

.company_table_block tr {
  padding: 16px 8px;
}

.title.ja {
  font-size: 14px;
}

.service_heading_block h2 {
  margin-top: 16px;
}

.service_heading_block p {
  margin-top: 16px;
}


.copy-right {
  text-align: center;
  padding: 8px;
}

.footer_menu {
  display: flex;
  flex-wrap: wrap;
  margin-left: 32px;
}

.footer_menu li {
  width: 50%;
  font-size: 20px;
  padding: 16px 0;
  font-size: 16px;
}

.top_back_image p {
  margin-top: -104px;
  line-height: 35px;
}


.top_block_text h1 {
  padding-right: 16px;
  padding-left: 16px;
}


.top_block_text h1 {
  font-size: 16px;
  /* line-height: 88px; */
  font-family: 'Noto Serif JP', serif;


}

.top_block_text h1 span {
  font-size: 48px;
  padding: 0 4px 0 0;
  font-family: 'Zen Kaku Gothic Antique', sans-serif;
}

.top_block_text p {
  font-family: 'Noto Serif JP', serif;
}

footer .inner {
  padding: 64px 16px;
}

.footer_block_img {
  width: 80%;
  margin: auto;
}

.sns {
  margin-top: 0px;
  margin-left: 0px;
  margin-right: 32px;
}

.service_block_flex_num {
  font-size: 14px;
}


.contact_detail {
  margin-top: 24px;
}

.common_btn {
  margin-top: 24px;
}

.sns li {
  text-align: end;
}


.header_pc_menu a {
  color: white;
}

@media screen and (min-width: 769px) {


  .sns li {
    text-align: unset;
  }


  @keyframes scrollAnime {
    0% {
      transform: translateX(0%)
    }

    100% {
      transform: translateX(-100%)
    }
  }


  .service_block_flex_num {
    font-size: unset;
  }


  .top_inner {
    padding-top: 104px;
  }

  .top_block_text h1 {
    padding-right: unset;
    padding-left: unset;
  }

  .sns {
    text-align: unset;
    margin-top: unset;
  }

  .footer_menu li {
    font-size: 16px;
  }

  .top_back_image p {
    margin-top: unset;
    line-height: unset;
    padding-left: 0;
  }



  .title.ja {
    font-size: unset;
  }

  .company.title_block {
    display: unset;
    justify-content: unset;
    align-items: unset;
  }

  .service_block_heading {
    animation: scrollAnime 30s linear infinite;
  }


  .service_image {
    margin: unset;
    width: unset;
  }

  .company .inner {
    padding-top: 144px;
  }

  .service_block_flex img {
    margin-top: unset;
  }




  .service_block_animation {
    margin: 104px calc(50% - 50vw) 0;
  }

  .footer_block_img {
    width: 24%;
    margin: unset;
  }

  .footer_block {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .service_heading_block p {
    margin-top: 24px;
  }

  .service_heading_block h2 {
    font-size: 56px;
    line-height: 80px;
  }

  .title.en {
    font-size: 40px;
  }

  .service_block_flex {
    display: flex;
    justify-content: space-between;
    margin-top: 104px;
  }

  .service_block_flex_text {
    width: 48%;
  }

  .service_image {
    width: 48%;
  }


  /* 
  #sampleBox {
    top: 0vh;
  } */

  .service_block_heading {
    font-size: 64px;
    /* letter-spacing: -2px; */
  }


  .top_block_text h2 {
    font-weight: bold;
  }


  .footer_block_2 ul {
    justify-content: unset;
  }



  .footer_detail {
    margin-top: unset;
  }

  .footer_menu {
    margin-top: unset;
    margin-left: unset;
    width: 40%;
  }


  .works.heading_block p {
    margin-top: unset;
  }

  .works_list {
    margin-top: unset;
  }

  .works_list_category {
    margin-top: unset;
  }

  .news_ul {
    margin-top: unset;
  }

  .works_list {
    display: unset;
    overflow-x: unset;
    scroll-snap-type: unset;
  }


  .works_list_num {
    flex: unset;
    scroll-snap-align: unset;
    margin-bottom: unset;
  }


  .news_li h4 {
    margin-top: unset;
  }



  .news_li img {
    margin-bottom: unset;
  }

  .pc {
    display: block;
  }

  .pc_btn {
    display: flex;
  }


  .sp {
    display: none;
  }


  .top_block_text h2 {
    font-size: unset;
  }

  .comment {
    margin: unset;
  }

  .br_sp {
    display: none;
  }

  .br_pc {
    display: block;
  }


  .page_title {
    font-size: 40px;
  }


  .data,
  .comment {
    font-size: unset;
  }

  .bofore_after h2 {
    font-size: unset;
  }

  .bofore_after {
    margin-top: unset;
  }

  .bofore_after_ul {
    margin-top: unset;
  }


  .bofore_after_ul li {
    margin-top: unset;
  }

  .sub_works_center_block_text {
    margin-top: unset;
  }

  .sub_works_center_block_img li {
    margin-top: unset;
  }

  .sub_works h1 {
    margin: unset;
  }

  .footer_block_2 {
    display: flex;
    justify-content: space-between;
    align-items: end;
    flex-direction: row-reverse;
  }

  .news_li+.news_li {
    margin-left: 40px;
  }

  .news_li img {
    margin-bottom: 16px;
  }

  .top_block_image {
    width: auto;
    margin-left: unset;
    margin-top: unset;
  }

  .header.pc.inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 24px 104px;
    padding: 16px 40px;
    background-color: #111;
    border-radius: 8px;
    position: fixed;
    z-index: 9999;
  }

  .header.pc.inner img {
    width: 16%;
  }





  .header_pc_menu {
    display: flex;
  }

  .header_pc_menu li+li {
    margin-left: 48px;
  }

  .footer_block_1 {
    display: flex;
    justify-content: space-between;
    margin-top: 32px;
  }


  .footer_block_2 ul li+li {
    margin-left: 16px;
  }


  .footer_menu ul {
    display: flex;
  }

  .footer_menu ul li+li {
    margin-left: 16px;
  }




  .contact h2 {
    font-size: 56px;
  }

  .top_block_text h1 {
    font-size: 32px;
    letter-spacing: 5px;

  }

  .top_block_text h1 span {
    font-size: 80px;
    padding: 0 8px;
  }


  .inner {
    padding: 144px 104px;
  }

  .thought h2 {
    font-size: 56px;
  }

  .thought p {
    font-size: 20px;
  }

  .textcenter {
    text-align: center;
  }

  .about h2 {
    font-size: 56px;
  }



  .heading_block h2 {
    font-size: 56px;
  }


  .heading_block {
    display: flex;
    justify-content: space-between;
  }

  .heading_block h2 {
    width: 60%;
  }

  .heading_block p {
    width: 40%;
  }

  .works_list {
    display: flex;
    justify-content: space-between;
    margin-top: 64px;
  }

  .works_list .works_list_num {
    width: 31%;
    margin-bottom: 40px;
  }

  .works_list .works_list_num+.works_list_num {
    margin-left: 16px;
  }

  .news_li {
    flex: 0 0 480px;
    scroll-snap-align: center;
    margin-bottom: 24px;
  }

  .news_ul {
    display: flex;
    overflow-x: scroll;
    scroll-snap-type: x mandatory;
    margin-top: 30px;
  }


  .thought p {
    margin-top: 64px;
  }

  .thought p+p {
    margin-top: 32px;
  }






  .top_block_text p {
    font-size: 20px;
    line-height: 64px;
    margin-top: 104px;
  }


  .about_detail {
    max-width: 700px;
    margin: auto;
    margin-top: 32px;
  }

  .about .common_btn {
    margin-top: 32px;
  }

  .contact h2 {
    margin-top: 16px;
  }

  .contact_detail {
    margin-top: 32px;
  }

  .contact .common_btn {
    margin-top: 32px;
    width: 300px;
  }

  .contact_tel {
    margin-top: 16px;
  }

  .news_li h4 {
    margin-top: 8px;
  }

  .works_list_category {
    margin-top: 8px;
  }

  .sub_company h4 {
    font-size: 40px;
  }


  .sub_strength h2 {
    font-size: 56px;
  }

  .sub_strength_li {
    display: flex;
    justify-content: space-between;
  }

  .sub_strength_block_text,
  .sub_strength_block_img {
    width: 48%;
  }

  .sub_works h1 {
    font-size: 64px;
    line-height: 72px;
    margin-top: 32px;
  }



  .sub_strength_block_img {
    margin-right: calc(((100vw - 100%) / 2) * -1);
  }


  .sub_strength_li:nth-child(even) {
    flex-direction: row-reverse;
    margin-right: unset;
    margin-left: calc(((100vw - 100%) / 2) * -1);
  }

  .sub_strength_li+.sub_strength_li {
    margin-top: 104px;
  }

  .sub_strength_detail {
    margin-top: 16px;
  }

  .sub_strength h1 {
    font-size: 56px;
    margin-top: 144px;
  }

  .sub_strength_flow_text {
    max-width: 700px;
    margin: auto;
    margin-top: 32px;
  }

  .sub_strength_ul {
    margin-top: 144px;
  }

  .sub_works_center_block {
    display: flex;
    justify-content: space-between;
  }

  .sub_works_center_block_img {
    width: 58%;
  }

  .sub_works_center_block_text {
    width: 38%;
  }

  .sub_works_top_image {
    margin-top: 64px;
  }

  .sub_works_center_block {
    margin-top: 64px;
  }

  .sub_works_center_block_text_li {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid #333;
    padding: 16px 0;
  }

  .comment {
    margin-top: 64px;
    margin-bottom: 16px;
  }

  .sub_works_center_block_img li+li {
    margin-top: 32px;
  }

  .data,
  .comment {
    font-size: 24px;
  }

  .bofore_after_ul {
    display: flex;
    justify-content: space-between;
    margin-top: 32px;
  }

  .bofore_after_ul li {
    width: 48%;
  }

  .bofore_after {
    margin-top: 64px;
  }

  .bofore_after h2 {
    font-size: 40px;
  }

  .bofore_after_ul p {
    margin-top: 16px;
  }

  .service_title {
    display: flex;
    justify-content: space-between;
  }

  .service_heading_block {
    width: 60%;
  }

  .service.title_block {
    width: 40%;
  }

  .company .inner {
    display: flex;
    justify-content: space-between;
  }

  .company_table_block_title {
    width: 240px;
    text-align: left;
  }

  .company_table_block_text {
    width: 480px;
    text-align: left;
  }

  .company_table {
    width: 48%;
  }

  .company.title_block {
    width: 48%;
  }

  .company .ja {
    margin-bottom: 104px;
  }


  .company img {
    width: 50%;
  }

  .service_block_flex_title {
    font-size: 40px;
  }

  .service_detail_text {
    margin-top: 24px;
  }

  .service_detail_category {
    margin-top: 16px;
  }

  .top_block_text h1 {
    margin-left: 30%;
  }


  .top_block {
    position: relative;
    height: 173vh;
  }


  .top_back_image {
    top: 60vh;
    margin-top: 144px;
    position: relative;
    padding-left: 30%;
    position: absolute;
    width: 100vw;
    height: 100vh;
    position: absolute;
    /* background-image: url(assets/back_logo.webp); */
    background-image: url(assets/aaaa.svg);
    background-position: center;
    background-size: cover;
  }

  .top_block_text p {
    margin-top: -120px;
  }

  .top_block_text h1 {
    margin-top: 88px;
  }

  footer .inner {
    padding: 64px 104px;
  }


}




@media screen and (max-width: 350px) {

  .top_block_text h1 {
    font-size: 16px;
  }

  .top_block_text h1 span {
    font-size: 38px;
  }
}