@charset "UTF-8";
/*==========================================
  Common
==========================================*/
html {
    font-size: calc(100vw / 140);
}

img {
  width: 100%;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
pre,
blockquote,
ul,
li,
ol,
dl,
dd,
tr {
  font-size: 1.6rem;
}

.anchor_wrap .anchor {
  top: -10rem;
}

.breadcrumb {
  padding: 9rem 0 2rem;
}

.breadcrumb ul li {
  font-size: 1.2rem;
}

.breadcrumb ul li + li:before {
  margin: 0 0.6rem;
}

#pageTop a {
  width: 5rem;
}

.c-anim-up {
  transform: translate(0, 3rem);
}

.container {
  max-width: 138rem;
  padding-left: 5rem;
  padding-right: 5rem;
}

.news_ul .news_li > a {
  padding: 2.5rem 0;
}

.news_ul .news_li > a .date {
  font-size: 1.4rem;
  min-width: 11.5rem;
}

.news_ul .news_li > a .cate {
  padding: 0.4rem 1.6rem 0.2rem;
  border-radius: 1.3rem;
  font-size: 1.2rem;
  gap: 0.6rem;
}

.news_ul .news_li > a .cate:before {
  width: 0.5rem;
  height: 0.5rem;
  margin-bottom: 0.2rem;
}

.news_ul .news_li > a .title {
  font-size: 1.5rem;
}


main#Contact span.error {
  margin: 0.7rem 0 0;
}

main#Contact input[type=text] {
  font-size: 1.6rem;
  padding: 1.2rem 2.1rem;
}

main#Contact input[type=text].zip {
  max-width: 24.7rem;
}

main#Contact .zip-wrap {
  max-width: 24.7rem;
  margin-right: 0.3rem;
}

main#Contact .zip-wrap::before {
  font-size: 1.8rem;
  left: 2.4rem;
}

main#Contact .zip-wrap input {
  padding: 1.2rem 2.1rem 1.2rem 5.5rem;
}

main#Contact input[type=button] {
  font-size: 1.6rem;
  max-width: 14rem;
  border: 0.3rem solid #dddddd;
  padding: 1rem 1.9rem;
}

main#Contact input[type=checkbox] + label {
  padding-left: 2.9rem;
  margin-right: 2.9rem;
}

main#Contact input[type=checkbox] + label::before {
  width: 2.2rem;
  height: 2.2rem;
}

main#Contact input[type=checkbox] + label::after {
  border-right: 0.3rem solid #000;
  border-bottom: 0.3rem solid #000;
  height: 0.9rem;
  left: 0.7rem;
  margin-top: -0.8rem;
  width: 0.5rem;
}

main#Contact input[type=radio] + label {
  padding-left: 2.7rem;
  margin-right: 2.7rem;
}

main#Contact input[type=radio] + label::before {
  width: 1.7rem;
  height: 1.7rem;
}

main#Contact input[type=radio] + label::after {
  top: 0.4rem;
  left: 0.4rem;
  width: 0.9rem;
  height: 0.9rem;
}

main#Contact .select-box {
  border-radius: 0.2rem;
}

main#Contact .select-box select {
  font-size: 1.6rem;
  text-indent: 0.001rem;
  padding: 1.2rem 3.8rem 1.2rem 2.1rem;
}

main#Contact .select-box::before {
  right: 2.1rem;
  border-left: 0.5rem solid transparent;
  border-right: 0.5rem solid transparent;
  border-top: 0.5rem solid #000;
}

main#Contact textarea {
  font-size: 1.6rem;
  padding: 1.2rem 2.1rem;
  min-height: 17.4rem;
}

main#Contact .overscroll {
  height: 23.7rem;
  padding: 2.5rem 2.1rem;
}

main#Contact .overscroll ul > li {
  margin-bottom: 2.5rem;
}

main#Contact .overscroll ul > li strong {
  font-size: 1.6rem;
  margin-bottom: 0.5rem;
}

main#Contact .overscroll ul > li p {
  font-size: 1.4rem;
}

main#Contact .overscroll ul > li > ol {
  margin-top: 0.5rem;
}

main#Contact .overscroll ul > li:first-child strong {
  margin-bottom: 2rem;
}

main#Contact .submit_area {
  margin-top: 8.5rem;
}

main#Contact .submit_area span {
  font-size: 1.8rem;
  width: 26.2rem;
  border: 0.3rem solid #dddddd;
}

main#Contact .submit_area span input[type=submit] {
  font-size: 1.8rem;
  height: 5.8rem;
}

main#Contact .submit_area ul.koumoku {
  max-width: 59rem;
  margin: 2rem auto 0;
}

main#Contact .submit_area ul.koumoku li {
  font-size: 1.8rem;
  width: 26.2rem;
  border: 0.3rem solid #5f4b08;
}

main#Contact .submit_area ul.koumoku li input[type=submit] {
  font-size: 1.8rem;
  height: 5.8rem;
}

main#Contact .contact_back {
  margin-top: 2.5rem;
}

main#Contact .agree_area {
  margin: 3rem 0 0;
}

main#Contact table tr {
  margin-bottom: 3rem;
}

main#Contact table tr th {
  font-size: 1.6rem;
  margin-bottom: 1.3rem;
}

main#Contact table tr td .text02 {
  margin-top: 0.8rem;
}

main#Contact .check-list {
  padding-top: 0.5rem;
}

main#Contact .form_wrap > p {
  font-size: 1.6rem;
}

.arrow_btn {
  --arrow_btn_icon_w: 4rem;
  --arrow_btn_icon_img_w: 1.3rem;
  min-height: 4.5rem;
  border-radius: 0.5rem;
  font-size: 1.5rem;
}

.arrow_btn_text {
  min-width: 19rem;
  padding: 0 2.4rem;
  border-radius: 0 0.5rem 0.5rem 0;
}

@media (hover: hover) {
  .arrow_btn:hover .arrow_btn_text,
  .recruit_banner:hover .arrow_btn_text {
    border-radius: 0.5rem 0 0 0.5rem;
  }
}

@keyframes common_arrow_slide {
  0% {
    transform: translateX(0);
    opacity: 1;
  }
  45% {
    transform: translateX(2.4rem);
    opacity: 0;
  }
  46% {
    transform: translateX(-2.4rem);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}

.header_inner {
  padding: 2.3rem 2rem;
  gap: clamp(1.6rem, 2vw, 3.4rem);
}

.header_inner .logo {
  flex: 0 1 33.4rem;
  width: clamp(22rem, 23.9vw, 33.4rem);
}

.header_nav {
  gap: clamp(1rem, 1.65vw, 2.3rem);
}

.header_nav > li > a {
  padding: 1.2rem 0;
  font-size: 1.4rem;
}

.header_nav > li > a::after {
  bottom: 0.6rem;
}

.header_contact {
  min-width: 17rem;
  border-radius: 0.5rem;
}

.header_contact .arrow_btn_text {
  padding: 0 2rem;
  font-size: 1.4rem;
}

.recruit_banner {
  padding: 8.5rem 0;
  background-image:
  linear-gradient(
  90deg,
  transparent 0,
  transparent calc(100% - 1px),
  rgba(157, 69, 0, .2) calc(100% - 1px),
  rgba(157, 69, 0, .2) 100%
  ),
  linear-gradient(
  var(--common_slant),
  transparent 0,
  transparent calc(50% - 0.05rem),
  rgba(157, 69, 0, .2) calc(50% - 0.05rem),
  rgba(157, 69, 0, .2) calc(50% + 0.05rem),
  transparent calc(50% + 0.05rem),
  transparent 100%
  ),
  url(/images/top/bg_recruit.png);
  background-size: 20.45rem 100%, 100% 43rem, cover;
  background-position: 1.5rem 0, center -14.4rem, center;
}

.recruit_banner_en {
  font-weight: 600;
  margin-bottom: 0.8rem;
  font-size: 1.6rem;
}

.recruit_banner_title {
  font-size: 6rem;
}

.recruit_banner_text {
  margin-top: 2.2rem;
  font-size: 1.6rem;
}

.recruit_banner_btn {
  margin: 4.4rem auto 0;
}

.footer_main {
  padding: 10rem 0 0;
}

.footer_top {
  gap: 6rem;
  padding-bottom: 7.5rem;
}

.footer_company {
  flex: 0 1 33.6rem;
}

.footer_logo {
  width: 33.6rem;
}

.footer_address {
  margin-top: 2.5rem;
  font-size: 1.4rem;
}

.footer_sns {
  gap: 2.5rem;
  margin-top: 3.2rem;
}

.footer_sns img {
  width: 2.5rem;
}

.footer_nav {
  flex: 0 1 63rem;
  gap: 5.8rem;
  padding-top: 1rem;
}

.footer_nav a {
  font-size: 1.5rem;
}

.footer_nav_primary {
  gap: 1.8rem;
}

.footer_nav_title {
  padding-bottom: 1rem;
}

.footer_nav_sub {
  margin-top: 1.4rem;
}

.footer_nav_company_title {
  margin-top: 2.2rem;
}

.footer_area_title {
  flex: 0 0 14rem;
  padding: 3.6rem 0;
  font-size: 2rem;
}

.footer_area_content {
  padding: 3.8rem 4.5rem;
}

.footer_area_row + .footer_area_row {
  margin-top: 1.3rem;
}

.footer_area_note {
  margin-top: 1.3rem;
}

.footer_area_name {
  flex: 0 0 13.2rem;
}

.footer_area_name,
.footer_area_text,
.footer_area_text p,
.footer_area_note {
  font-size: 1.3rem;
}

.footer_area_text {
  max-width: 65.2rem;
}

.footer_copy {
  padding: 1.5rem 0 1.9rem;
  font-size: 1.2rem;
}

.footer_nav a::after {
  bottom: -0.4rem;
}

.teaser {
  padding: 16rem 0 13rem;
}

.teaser_title {
  font-size: 10rem;
}

.teaser_text {
  margin-top: 2.4rem;
  font-size: 1.6rem;
}

main#Contact .form_wrap,
main#Contact .send_comp {
  max-width: 124rem;
}

main#Contact .contact_lead {
  margin-bottom: 3.8rem;
}

main#Contact .contact_lead p {
  font-size: 1.6rem;
}

main#Contact .contact_body {
  gap: 3.4rem;
}

main#Contact .contact_row {
  grid-template-columns: 20rem minmax(0, 1fr);
  gap: 2rem;
  margin-bottom: 2rem;
}

main#Contact .contact_label {
  gap: 1rem;
}

main#Contact .contact_label p {
  font-size: 1.6rem;
}

main#Contact .contact_badge {
  width: 4.1rem;
  height: 2.3rem;
  border-radius: 0.3rem;
  font-size: 1.2rem;
}

main#Contact .contact_field input[type="text"],
main#Contact .contact_field textarea {
  padding: 2rem 3rem;
  border-radius: 0.5rem;
  font-size: 1.6rem;
}

main#Contact .contact_radio {
  gap: 1rem;
}

main#Contact .contact_radio input[type="radio"] + label {
  padding: 2.3rem 1rem 2.3rem 5.6rem;
  border-radius: 0.3rem;
  font-size: 1.6rem;
}

main#Contact .contact_radio input[type="radio"] + label::before {
  left: 2.2rem;
  width: 2rem;
  height: 2rem;
}

main#Contact .contact_radio input[type="radio"] + label::after {
  left: 2.8rem;
  width: 0.8rem;
  height: 0.8rem;
}

main#Contact .contact_address {
  gap: 1rem;
}

main#Contact .contact_zip::before {
  left: 3rem;
  top: 2rem;
  font-size: 1.6rem;
}

main#Contact .contact_zip input[type="text"] {
  padding-left: 5.8rem;
}

main#Contact .contact_row_message .contact_label {
  padding-top: 1.7rem;
}

main#Contact .contact_field textarea {
  min-height: 30rem;
}

main#Contact span.error,
main#Contact .ERR {
  margin-top: 0.6rem;
  font-size: 1.2rem;
}

main#Contact .contact_row_privacy {
  margin-top: 2.2rem;
}

main#Contact .contact_row_privacy .contact_label {
  padding-top: 3rem;
}

main#Contact .contact_privacy {
  gap: 3rem;
  padding: 3.4rem 3.6rem;
  border-radius: 0.3rem;
}

main#Contact .contact_privacy > p {
  font-size: 1.4rem;
}

main#Contact .contact_agree {
  flex: 0 0 9rem;
}

main#Contact .contact_agree input[type="checkbox"] + label {
  gap: 0.9rem;
  font-size: 1.4rem;
}

main#Contact .contact_agree input[type="checkbox"] + label::before {
  width: 4rem;
  height: 4rem;
  border-radius: 0.5rem;
}

main#Contact .contact_agree input[type="checkbox"] + label::after {
  bottom: 1.3rem;
  width: 1.1rem;
  height: 1.8rem;
  border-right: 0.36rem solid #00264B;
  border-bottom: 0.36rem solid #00264B;
}

main#Contact .submit_area {
  margin-top: 6rem;
}

main#Contact .contact_submit {
  --arrow_btn_icon_w: 5.2rem;
  --arrow_btn_icon_img_w: 1.6rem;
  width: 35rem;
  border-radius: 0.5rem;
}

main#Contact .contact_submit .arrow_btn_text {
  padding: 1.8rem 2rem;
  font-size: 1.6rem;
}

main#Contact .contact_step {
  flex: 0 0 17.5rem;
  padding-top: 1rem;
}

main#Contact .contact_step p {
  padding-right: 2rem;
  font-size: 1.5rem;
}

main#Contact .contact_step p + p {
  margin-top: 5.2rem;
}

main#Contact .contact_step p span {
  width: 1rem;
  height: 1rem;
}

main#Contact .contact_step p:not(:last-child) span::after {
  top: 1.6rem;
  left: 0.4rem;
  height: 5rem;
}

main#Contact .contact_confirm {
  border-radius: 0.3rem;
}

main#Contact .contact_confirm_row {
  grid-template-columns: 19rem minmax(0, 1fr);
}

main#Contact .contact_confirm_label,
main#Contact .contact_confirm_value,
main#Contact .contact_confirm_value p {
  font-size: 1.4rem;
}

main#Contact .contact_confirm_label {
  padding: 2.2rem 2.4rem;
}

main#Contact .contact_confirm_value {
  padding: 2.2rem 2.8rem;
}

main#Contact.sfm2 .contact_field,
main#Contact.sfm2 .contact_field p {
  font-size: 1.6rem;
}

main#Contact.sfm2 .submit_area ul.koumoku {
  max-width: 57rem;
  gap: 1.8rem;
}

main#Contact.sfm2 .submit_area ul.koumoku li {
  width: 27rem;
}

main#Contact.sfm2 .submit_area ul.koumoku li input[type="submit"] {
  padding: 1.8rem 1.5rem;
  font-size: 1.5rem;
}

main#Contact .contact_complete {
  padding: 5.5rem 6rem;
  border-radius: 0.3rem;
}

main#Contact .contact_complete_title {
  margin-bottom: 3rem;
  font-size: 2.4rem;
}

main#Contact .contact_complete > p {
  font-size: 1.4rem;
}

main#Contact .contact_complete > p + p {
  margin-top: 2rem;
}

main#Contact .contact_back {
  margin-top: 4.5rem;
}

@media screen and (min-width: 768px) {
  main#Contact .contact_row_address .contact_label {
    margin-top: 1.8rem;
  }

}

.news_wrap .container,
.news_detail_wrap .container {
  max-width: 118rem;
}

.news_ul {
  gap: 1rem;
}

.news_ul .news_li > a {
  gap: 2.8rem;
  padding: 2.7rem 3rem 2.7rem 6rem;
}

.news_ul .news_li > a .title {
  font-size: 1.6rem;
}

.news_ul .news_li > a .cate,
.news_detail_meta .cate {
  height: 2.2rem;
  flex: 0 0 7.4rem;
  padding: 0 1.2rem;
  border-radius: 2rem;
  font-size: 1.3rem;
}

.news_ul .news_li > a .date,
.news_detail_meta .date {
  font-size: 1.4rem;
}

.news_archive .news_wrap .container {
  max-width: 118rem;
}

.category_filter {
  gap: 1rem;
  margin-bottom: 2.8rem;
}

.category_filter a {
  min-width: 10rem;
  padding: 0.3rem 2.3rem;
  border-radius: 2rem;
  font-size: 1.6rem;
}

.page_navigation .wp-pagenavi .page-numbers {
  width: 3.2rem;
  height: 3.2rem;
  font-size: 1.1rem;
}

.page_navigation .wp-pagenavi .nav-links {
  gap: 2rem;
  margin-top: 6.4rem;
}

.page_navigation .wp-pagenavi .page-numbers {
  width: 4.6rem;
  height: 4.6rem;
  font-size: 2rem;
}

.news_detail_wrap .container {
  max-width: 118rem;
}

.news_detail_head {
  padding: 3rem 6rem 3rem;
}

.news_detail_meta {
  gap: 1.9rem;
  margin-bottom: 1.2rem;
}

.news_detail_title {
  font-size: 2.4rem;
}

.news_detail_body {
  padding: 3rem 6rem 8rem;
}

.news_detail_body > p {
  font-size: 1.6rem;
}

.news_detail_body > p + p {
  margin-top: 3.2rem;
}

.news_detail_image {
  width: min(100%, 62rem);
  margin-top: 5rem;
}

.pager_wrap {
  margin-top: 6rem;
}

.pager_wrap ul .prev a,
.pager_wrap ul .next a {
  width: 4.8rem;
  height: 4.8rem;
}

.pager_wrap ul .prev img,
.pager_wrap ul .next img {
  width: 1.3rem;
}

@keyframes pager_arrow_prev {
  0% {
    transform: translateX(0) rotate(180deg);
    opacity: 1;
  }
  45% {
    transform: translateX(-2.4rem) rotate(180deg);
    opacity: 0;
  }
  46% {
    transform: translateX(2.4rem) rotate(180deg);
    opacity: 0;
  }
  100% {
    transform: translateX(0) rotate(180deg);
    opacity: 1;
  }
}

.pager_wrap .list .arrow_btn_text {
  font-size: 1.5rem;
  min-width: 15.4rem;
}

.pager_wrap ul .list a.arrow_btn {
  --arrow_btn_icon_w: 4.2rem;
}

.faq_wrap .container {
  max-width: 118rem;
}

.faq_list {
  gap: 2rem;
}

.faq_question {
  gap: 2rem;
  padding: 3rem 3rem 3rem 4rem;
}

.faq_mark {
  flex: 0 0 2.5rem;
  font-size: 3.6rem;
}

.faq_question_text {
  font-size: 2.2rem;
}

.faq_toggle_icon {
  flex: 0 0 4.6rem;
  width: 4.6rem;
  height: 4.6rem;
  margin-left: 2rem;
}

.faq_toggle_icon::before,
.faq_toggle_icon::after {
  width: 1.6rem;
  height: 0.2rem;
}

.faq_answer_inner {
  gap: 2.5rem;
  padding: 1.8rem 4rem 2.4rem;
}

.faq_answer .faq_mark {
  font-size: 2.4rem;
}

.faq_answer_text {
  font-size: 1.6rem;
}

.main_visual {
  height: 110rem;
}

.main_visual_copy {
  top: 9.5rem;
  left: max(8rem, calc((100vw - 130rem) / 2 + 5rem));
}

.main_visual_title {
  font-size: 8rem;
  line-height: 8.2rem;
}

.main_visual_title span {
  font-size: 9rem;
}

.main_visual_text {
  margin-top: 1.5rem;
  padding-left: 12.5rem;
  font-size: 1.6rem;
}

.main_visual_image {
  top: 40rem;
}

.main_visual_image li {
  margin-right: 2rem;
  flex: 0 0 60rem;
  width: 60rem;
}

.main_visual_movie {
  width: 23rem;
  padding: 1.4rem;
  border-radius: 0.5rem 0 0 0.5rem;
}

.main_visual_movie.img_box {
  padding-top: 1.2rem;
}

.main_visual_movie_thumb {
  flex: 0 0 11rem;
  height: 7rem;
}

.main_visual_movie_thumb:before {
  width: 4rem;
  height: 4rem;
}

.main_visual_movie_play {
  width: 4rem;
}

.main_visual_movie .main_visual_movie_play {
  width: 4rem;
}

.main_visual_movie_text {
  padding-left: 1.8rem;
  font-size: 2rem;
}

.top_intro {
  --intro_bg_cut: 14rem;
  margin-top: -33rem;
  padding: 50rem 0 0;
}

.top_intro::after {
  background-size: 20.45rem 100%, 100% 61.6rem;
  background-position: 8.7rem 0, center calc(var(--page_slant_depth) * .5 + 5.4rem);
}

.top_intro_inner {
  max-width: 125rem;
  gap: 7rem;
}

.top_intro_content {
  flex: 0 1 58rem;
}

.top_intro_title {
  font-size: 2.7rem;
}

.top_intro_text {
  margin-top: 4.5rem;
  font-size: 1.6rem;
}

.top_intro_btn {
  margin-top: 4.5rem;
}

.top_intro_concept {
  /*flex: 0 0 49.5rem;*/
  /*width: 49.5rem;*/
}

.top_intro_label {
  font-size: 1.5rem;
}

.top_intro_label01 {
  top: -1.6rem;
  right: 2.8rem;
}

.top_intro_label02 {
  right: -1.2rem;
  bottom: 1rem;
}

.top_movie {
  width: min(128rem, calc(100% - 12rem));
  margin: 13rem auto 0;
  border-radius: 0.4rem;
}

.top_movie_title {
  font-size: 6.8rem;
}

.top_movie_play {
  width: 26rem;
  height: 26rem;
}

.top_heading_en {
  font-weight: 600;
  font-size: 1.6rem;
}

.top_heading_title {
  font-size: 3.6rem;
}

.top_heading_text {
  margin-top: 3.5rem;
  font-size: 1.4rem;
}

.top_solution {
  padding: 11.5rem 0 15rem;
}

.top_solution_list {
  gap: 4rem;
  margin-top: 4rem;
}

.top_solution_item {
  border-radius: 0.4rem;
}

.top_solution_title {
  top: 4rem;
  left: 3.5rem;
  right: 3.5rem;
  right: 8rem;
  font-size: 2.7rem;
}

.top_solution_text {
  left: 3.5rem;
  right: 3.5rem;
  bottom: 5rem;
  font-size: 1.6rem;
}

.top_solution_icon {
  top: 5.4rem;
  right: 2.7rem;
  width: 4.7rem;
  height: 4.7rem;
}

.top_solution_icon img {
  width: 1.3rem;
}

.top_works {
  gap: 7rem;
  padding: 0 0 15rem;
  padding-left: max(6rem, calc((100vw - 134rem) / 2 + 3rem));
}

.top_works_intro {
  flex: 0 0 31rem;
  padding-top: 2.5rem;
}

.top_works_intro .top_heading_text {
  max-width: 27.4rem;
}

.top_works_btn {
  margin-top: 3.6rem;
}

.top_works_slider .top_works_item {
  flex: 0 0 27.3rem;
  width: 27.3rem;
}

.top_works_item .img_box {
  border-radius: 0.5rem;
}

.top_works_cate {
  height: 2.2rem;
  margin-top: 2.1rem;
  padding: 0 1.3rem 0.2rem;
  border-radius: 1.5rem;
  font-size: 1.2rem;
}

.top_works_title {
  margin-top: 1.4rem;
  font-size: 1.8rem;
}

.top_works_text {
  margin-top: 1.8rem;
  font-size: 1.3rem;
}

.top_about {
  padding-top: 14.5rem;
}

.top_about::after {
  background-size: 17rem 17rem;
}

.top_about .container {
  max-width: 140rem;
}

.top_about_heading {
  padding: 0 5rem;
}

.top_about_en {
  font-weight: 600;
  font-size: 1.6rem;
}

.top_about_title {
  margin-top: 1.4rem;
  font-size: 3.6rem;
}

.top_about_text {
  margin-top: 5.4rem;
  font-size: 1.8rem;
}

.top_about_list {
  margin-top: 14rem;
  padding: 0 3.5rem;
}

.top_about_item {
  gap: 2rem;
  padding: 5rem 2.5rem;
}

.top_about_item .img_box {
  width: 15rem;
  border-radius: 0.5rem;
}

.top_about_item_en {
  font-weight: 600;
  font-size: 1.3rem;
}

.top_about_item_title {
  margin-top: 1.1rem;
  font-size: 2.2rem;
}

.top_about_icon {
  width: 3.8rem;
  height: 3.8rem;
}

.top_about_icon img {
  width: 1.3rem;
}

.top_news {
  padding: 12rem 0;
}

.top_news .container {
  grid-template-columns: 30rem 1fr;
  gap: 6.5rem;
  max-width: 124rem;
}

.top_news .news_li > a {
  grid-template-columns: 1fr 7.4rem 10rem;
  gap: 3rem;
  padding: 3rem 0;
}

.top_news .news_li > a .title {
  font-size: 1.6rem;
  padding-left: 2rem;
}

.top_news .news_li > a .cate {
  flex-basis: 7.4rem;
  height: 2.2rem;
  font-size: 1.3rem;
}

.top_news .news_li > a .date {
  font-size: 1.4rem;
}

.top_news_btn {
  margin-top: 3rem;
}

.works_wrap .container {
  max-width: 138rem;
}

.works_list {
  column-gap: 4rem;
  row-gap: 5rem;
}

.works_item .img_box {
  border-radius: 0.5rem;
}

.works_cate,
.works_detail_cate {
  margin-top: 1.8rem;
  padding: 0.4rem 1.4rem;
  border-radius: 2rem;
  font-size: 1.1rem;
}

.works_title {
  margin-top: 1.2rem;
  font-size: 1.8rem;
}

.works_text {
  margin-top: 1.7rem;
  font-size: 1.3rem;
}

.works_item > a:hover .works_title {
  text-underline-offset: 0.4rem;
}

.works_detail_wrap .container {
  max-width: 118rem;
}

.works_detail_head {
  max-width: 94rem;
  margin: 0 auto 3rem;
}

.works_detail_title {
  font-size: 3rem;
}

.works_detail_cate {
  margin-top: 1.4rem;
}

.works_gallery {
  max-width: 94rem;
}

.works_gallery_main {
  border-radius: 0.5rem;
}

.works_gallery_main img {
  border-radius: 0.5rem;
}

.works_gallery_thumbs {
  margin-top: 1rem;
}

.works_gallery_thumb {
  border-radius: 0.3rem;
}

.works_gallery_thumb img {
  border-radius: 0.5rem;
}

.works_detail_lead {
  max-width: 94rem;
  margin: 3rem auto 0;
  font-size: 1.6rem;
}

.works_process {
  margin-top: 9.5rem;
}

.works_process_row {
  grid-template-columns: minmax(0, 1fr) 43rem;
  gap: 6rem;
  padding: 4rem 0;
}

.works_process_row:nth-child(even) {
  grid-template-columns: 40rem minmax(0, 1fr);
}

.works_process_title {
  font-size: 2.7rem;
}

.works_process_text {
  margin-top: 2.5rem;
  font-size: 1.6rem;
}

.works_process_image {
  border-radius: 0.5rem;
}

.works_review_en {
  font-weight: 600;
  font-size: 1.6rem;
}

.works_review_title {
  font-size: 3.6rem;
}

.works_review_content {
  gap: 2.8rem;
  margin-top: 2rem;
}

.works_review_icon {
  flex: 0 0 9.4rem;
  width: 9.4rem;
  height: 9.4rem;
}

.works_review_text {
  padding: 2.4rem 3.5rem;
  border-radius: 0.5rem;
}

.works_review_text:before {
  border: 1rem solid transparent;
  border-right: 1.6rem solid #fff;
}

.works_review_text p {
  font-size: 1.6rem;
}

.works_review_text span {
  margin-top: 0.8rem;
  font-size: 1.4rem;
}

.commitment_wrap {
  padding: 2rem 0 7rem;
}

.commitment_item {
  gap: 7rem;
  padding: 8.5rem 0;
}

.commitment_content,
.commitment_image {
  flex: 0 1 60rem;
}

.commitment_item:nth-child(even) {
  margin-bottom: -5rem;
}

.commitment_item:nth-child(even)::after {
  bottom: 5rem;
}

.commitment_item:nth-child(odd) {
  margin-top: -10rem;
}

.commitment_item:nth-child(odd):not(:first-child) {
  margin-top: -4.2rem;
}

.commitment_num {
  margin-bottom: -7.6rem;
  font-size: 15rem;
}

.commitment_title {
  font-size: 3.6rem;
}

.commitment_text {
  margin-top: 3.6rem;
  font-size: 1.6rem;
}

.commitment_btn {
  margin-top: 3.2rem;
}

.commitment_btn .arrow_btn_text {
  min-width: 15.4rem;
  padding: 0 2.2rem;
  font-size: 1.5rem;
}

.commitment_gallery {
  gap: 2.4rem;
  margin: -8.5rem 0 -30rem;
}

.commitment_gallery_image01 {
  width: 39rem;
}

.commitment_gallery_image02 {
  width: 16.5rem;
}

.office_access {
  padding: 5rem 0 30rem;
}

.office_access .container {
  max-width: 118rem;
}

.office_location {
  grid-template-columns: minmax(0, 1fr) 48rem;
  gap: 6rem;
}

.office_location + .office_location {
  margin-top: 4rem;
}

.office_location_head {
  gap: 3rem;
}

.office_location_en {
  font-weight: 600;
  font-size: 1.6rem;
}

.office_location_title {
  font-size: 3.6rem;
}

.office_location_image {
  flex: 0 0 24.8rem;
}

.office_location_data {
  margin-top: 6rem;
}

.office_location_row {
  padding: 1.8rem 0;
}

.office_location_row span {
  flex: 0 0 7.2rem;
  font-size: 1.6rem;
}

.office_location_row p {
  font-size: 1.6rem;
}

.office_staff {
  padding: 0 0 12rem;
}

.office_showroom {
  margin-top: -33rem;
}

.office_showroom img {
  border-radius: 0.5rem;
}

.office_showroom p {
  left: 2rem;
  bottom: 2rem;
  font-size: 1.4rem;
}

.office_heading {
  margin-top: 10.5rem;
}

.office_heading_en {
  font-weight: 600;
  font-size: 1.3rem;
}

.office_heading_title {
  margin-top: 0.6rem;
  font-size: 3.1rem;
}

.office_staff_list {
  gap: 2rem;
  margin-top: 3.5rem;
}

.office_staff_item {
  padding: 1.6rem 1.6rem 2.4rem;
  border-radius: 0.5rem;
}

.office_staff_position {
  margin-top: 1.2rem;
  font-size: 1.3rem;
}

.office_staff_name {
  margin-top: 0.4rem;
  font-size: 2.2rem;
}

.office_staff_text {
  margin-top: 1.5rem;
  font-size: 1.5rem;
}

.company_links {
  padding: 11.8rem 0 6rem;
}

.company_link {
  grid-template-columns: 15rem minmax(0, 1fr) 3.8rem;
  gap: 1.7rem;
  padding: 0 2.2rem;
}

.company_link .img_box {
  border-radius: 0.5rem;
}

.company_link_en {
  font-weight: 600;
  font-size: 1.3rem;
}

.company_link_title {
  margin-top: 1rem;
  font-size: 2rem;
}

.company_link_icon {
  width: 3.8rem;
  height: 3.8rem;
}

.company_link_icon img {
  width: 1.2rem;
}

/* ヘッダ メガメニュー */
.header_mega {
  padding: 2.2rem 0 4rem;
  transform: translateY(-1.2rem);
}

.header_mega::before {
  height: 2.4rem;
}

.header_mega .container {
  max-width: 128.8rem;
}

.header_mega .company_link {
  grid-template-columns: 13rem minmax(0, 1fr) 3rem;
  gap: 2rem;
  padding: 0 3rem;
}

.header_mega .company_link:first-child {
  padding-left: 0;
}

.header_mega .company_link:last-child {
  padding-right: 0;
}

.header_mega .company_link_title {
  margin-top: 0.6rem;
  font-size: 1.8rem;
}

.header_mega .company_link_icon {
  width: 3rem;
  height: 3rem;
}

.header_mega .company_link_icon img {
  width: 1rem;
}

.business_intro {
  --business_intro_cut: 22.9rem;
  padding: 20.5rem 0 0;
}

.business_intro_text p {
  max-width: 50rem;
  font-size: 1.6rem;
}

.business_intro_text h2 {
  font-size: 3.6rem;
}

.business_intro_image {
  margin-top: 10rem;
}

.business_intro_image img {
  border-radius: 0.5rem;
}

.business_features {
  padding: 10rem 0 12rem;
}

.service_heading_en {
  font-weight: 600;
  font-size: 1.6rem;
}

.service_heading_title {
  font-size: 3.6rem;
}

.business_feature_list {
  margin-top: 4.5rem;
}

.business_feature_item {
  grid-template-columns: 32.8rem minmax(0, 1fr);
  gap: 6rem;
  padding: 4rem 0;
}

.business_feature_image img {
  border-radius: 0.5rem;
}

.business_feature_num {
  font-size: 1.3rem;
  margin-left: -2rem;
}

.business_feature_title {
  margin-top: 0.8rem;
  font-size: 2.7rem;
}

.business_feature_text {
  margin-top: 1.8rem;
  font-size: 1.6rem;
}

.business_feature_btn {
  margin-top: 2rem;
}

.service_content {
  padding: 9.5rem 0 11.5rem;
}

.service_content_list {
  gap: 4rem;
  margin-top: 3.5rem;
}

.service_content_item {
  padding: 3rem;
  border-radius: 0.5rem;
}

.service_content_image img {
  border-radius: 0.5rem;
}

.service_content_title {
  margin-top: 3rem;
  font-size: 2.4rem;
}

.service_content_text {
  margin-top: 2rem;
  font-size: 1.6rem;
}

.business_works {
  padding-top: 10rem;
  padding-bottom: 10.5rem;
}

.message_visual {
  border-radius: 0.5rem;
}

.message_visual_copy h2 {
  font-size: 4.6rem;
}

.message_visual_copy h2 span {
  padding: 0 2rem;
  border-radius: 0.5rem;
}

.message_visual_copy p {
  margin-top: 3.5rem;
  font-size: 1.8rem;
}

.message_visual_copy h3 {
  margin-top: 0.5rem;
  font-size: 3.6rem;
}

.message_text {
  max-width: 95rem;
  margin: 7.5rem auto 10rem;
}

.message_text p {
  font-size: 1.6rem;
}

.message_text p + p {
  margin-top: 3.2rem;
}

.home_intro,
.other_intro {
  padding: 16.5rem 0 3.8rem;
}

.home_intro .container,
.other_intro .container {
  gap: 8rem;
}

.home_intro_content,
.other_intro_content {
  flex: 0 1 50rem;
  padding-top: 5rem;
}

.home_intro_content h2,
.other_intro_title {
  font-size: 3.6rem;
}

.home_intro_content p,
.other_intro_text {
  margin-top: 3.8rem;
  font-size: 1.6rem;
}

.home_intro_image,
.other_intro_image {
  flex: 0 1 57rem;
  margin-top: -10rem;
  margin-bottom: -19rem;
}

.home_intro_image,
.other_intro_image {
  row-gap: 3.8rem;
}

.home_intro .home_intro_image {
  margin-bottom: calc(-21.85rem - 1px + 0.19438 * (50% - 37.05rem));
}

.other_intro_image_item02 {
  margin-bottom: 1.2rem;
}

.home_features {
  padding-top: 19rem;
}

.other_content {
  padding-top: 19rem;
}

.other_movie_link {
  gap: 0.9rem;
  margin-top: 1.2rem;
  font-size: 1.5rem;
}

.other_movie_icon {
  width: 3rem;
  height: 3rem;
}

.other_movie_icon img {
  width: 1rem;
}

.outline_movie_bg {
  --intro_bg_cut: 14rem;
  padding: 14rem 0 0;
}

.outline_movie_play {
  width: 20.5rem;
  height: 20.5rem;
}

.outline_movie_label {
  font-size: 1.1rem;
}

.outline_movie_icon {
  margin-top: 1.2rem;
  border-top: 0.8rem solid transparent;
  border-bottom: 0.8rem solid transparent;
  border-left: 1.3rem solid #fff;
}

.outline_content {
  padding: 11.5rem 0 0;
}

.outline_block {
  grid-template-columns: 23rem minmax(0, 1fr);
  gap: 6.5rem;
}

.outline_heading_en {
  font-weight: 600;
  font-size: 1.6rem;
}

.outline_heading_title {
  font-size: 3.6rem;
}

.outline_table {
  max-width: 89rem;
}

.outline_table_row {
  grid-template-columns: 15rem minmax(0, 1fr);
  gap: 0.7rem;
  padding: 2rem 0;
}

.outline_table_label,
.outline_table_text {
  font-size: 1.6rem;
}

.outline_history {
  padding: 11.5rem 0 12rem;
}

.outline_history_inner {
  grid-template-columns: 23rem minmax(0, 1fr);
  gap: 6.5rem;
  margin-left: max(5rem, calc((100vw - 128rem) / 2));
}

.outline_history_slider .outline_history_item {
  width: 25.5rem;
  padding: 9rem 3rem 3rem;
  border-radius: 0.5rem;
}

.outline_history_slider .outline_history_item::before {
  top: 3.8rem;
  height: 0.4rem;
}

.outline_history_slider .outline_history_item:first-of-type:before {
  left: 3rem;
}

.outline_history_dot {
  top: 3.3rem;
  left: 3rem;
  width: 1.4rem;
  height: 1.4rem;
}

.outline_history_slider .outline_history_item h3 {
  font-size: 1.8rem;
}

.outline_history_slider .outline_history_item p {
  margin-top: 2rem;
  font-size: 1.6rem;
}

.outline_page .company_links {
  padding-top: 10.5rem;
}

.recruit_main {
  padding: 10rem 0 17rem;
}

.recruit_message {
  grid-template-columns: minmax(0, 72rem) 43rem;
  gap: 6rem;
  margin-top: 10.5rem;
}

.recruit_message_content h2 {
  font-size: 5rem;
  padding-left: 3rem;
}

.recruit_support_content h2 {
  font-size: 3rem;
}

.recruit_message_text,
.recruit_support_content {
  padding: 2.5rem 3rem;
  border-radius: 2rem;
}

.recruit_message_text {
  margin-top: 3rem;
}

.recruit_message_text p,
.recruit_support_content > p {
  font-size: 1.6rem;
}

.recruit_message_text p + p {
  margin-top: 0.5rem;
}

.recruit_support {
  grid-template-columns: 43rem minmax(0, 1fr);
  gap: 8rem;
  margin-top: 6.5rem;
}

.recruit_support_content > p {
  margin-top: 1.8rem;
}

.recruit_support_list {
  gap: 1rem;
  margin-top: 2.8rem;
}

.recruit_support_item {
  padding: 3.3rem 1rem 1.7rem;
  border-radius: 1.5rem;
}

.recruit_support_item span {
  width: 4.4rem;
  height: 4.4rem;
  top: -1.5rem;
}

.recruit_support_item h3 {
  font-size: 2rem;
}

.recruit_support_item p {
  margin-top: 0.3rem;
  font-size: 1.5rem;
}

.recruit_instagram {
  padding: 18.5rem 0 11.7rem;
}

.recruit_instagram .container,
.recruit_site .container {
  grid-template-columns: 38rem minmax(0, 1fr);
  gap: 9.5rem;
}

.recruit_heading_en {
  font-size: 1.6rem;
  font-weight: 600;
}

.recruit_instagram_intro {
  padding-top: 17rem;
}

.recruit_instagram_intro h2,
.recruit_site_intro h2 {
  margin-top: 0.5rem;
  font-size: 3.6rem;
}

.recruit_instagram_intro > p:last-of-type,
.recruit_site_intro > p:last-of-type {
  margin-top: 2.5rem;
  font-size: 1.6rem;
}

.recruit_instagram_btn {
  width: 21.4rem;
  left: -13.1rem;
  bottom: 5.4rem;
  padding: 3.5rem 2.0rem 2.0rem 2.0rem;
}

.recruit_instagram_mark {
  font-size: 3.2rem;
}

.recruit_instagram_grid {
  gap: 1.6rem;
  width: min(81rem, 100%);
}

.recruit_instagram_col {
  gap: 1.6rem;
}

.recruit_instagram_col02 {
  padding-top: 8rem;
}

.recruit_instagram_image img {
  border-radius: 0.5rem;
}

.recruit_site {
  padding: 0 0 5rem;
}

.recruit_site_sub {
  margin: 1rem 0 -0.6rem;
  font-size: 2rem;
}

.recruit_site_btn {
  margin-top: 4.8rem;
}

.recruit_site_link {
  grid-template-columns: 9.6rem minmax(0, 1fr) 3.8rem;
  gap: 2.7rem;
  padding: 2.1rem 0;
}

.recruit_site_link:nth-of-type(odd) {
  padding-right: 3rem;
}

.recruit_site_link:nth-of-type(even) {
  padding-left: 3rem;
}

.recruit_site_link .img_box {
  border-radius: 0.5rem;
}

.recruit_site_link h3 {
  font-size: 2.2rem;
}

.recruit_site_link > span {
  width: 3.8rem;
  height: 3.8rem;
}

.recruit_site_link > span img {
  width: 1.1rem;
}

.page_wrap {
  --page_grid_image:
  linear-gradient(
  90deg,
  transparent 0,
  transparent calc(100% - 1px),
  rgba(0, 48, 102, .08) calc(100% - 1px),
  rgba(0, 48, 102, .08) 100%
  ),
  linear-gradient(
  var(--common_slant),
  transparent 0,
  transparent calc(50% - 0.05rem),
  rgba(0, 48, 102, .08) calc(50% - 0.05rem),
  rgba(0, 48, 102, .08) calc(50% + 0.05rem),
  transparent calc(50% + 0.05rem),
  transparent 100%
  );
  --page_grid_column: 17rem;
  --page_grid_row: 47rem;
  --page_grid_leak: 0.6rem;
}

.page_wrap::after {
  top: calc((var(--page_slant_depth) + var(--page_grid_leak)) * -1 - 0.8rem);
}

.page_wrap_line {
  top: calc(var(--page_grid_leak) * -1 - 1rem);
  width: calc(100vw + 1rem);
}

.main_visual_image::before {
  top: -0.7rem;
  height: 1.4rem;
  background-image: repeating-linear-gradient(
  101deg,
  transparent 0,
  transparent 16.9rem,
  rgba(0, 48, 102, .08) 16.9rem,
  rgba(0, 48, 102, .08) 17rem
  );
}

.recruit_page > .page_wrap::after {
  height: calc(var(--page_slant_depth) + 2rem);
  clip-path: polygon(
  0 var(--page_slant_depth),
  100% 0,
  100% 2rem,
  0 calc(var(--page_slant_depth) + 2rem)
  );
}

.office_staff_qualification {
  margin-top: 1.4rem;
  font-size: 1.2rem;
}

.business_intro_text h2::before {
  width: 38.7rem;
}

.recruit_main_deco01 {
  top: -7rem;
}

.recruit_main_deco03 {
  bottom: -25rem;
}

.recruit_main_deco04 {
  bottom: 17.6rem;
}


.recruit_instagram_icon {
  width: 4.3rem;
}

.recruit_instagram_account {
  font-size: 1.6rem;
  margin: 1.3rem 0 2.6rem;
}

.recruit_instagram_arrow {
  width: 1.6rem;
}


/*==========================================
  Privacy policy
==========================================*/
.privacy_wrap .container {
  max-width: 118rem;
}

.privacy_box {
  padding: 6rem 6rem 8rem;
}

.privacy_section + .privacy_section {
  margin-top: 6rem;
}

.privacy_title {
  margin-bottom: 2.5rem;
  padding-bottom: 1.5rem;
  font-size: 2.4rem;
}

.privacy_text,
.privacy_list li {
  font-size: 1.6rem;
}

.privacy_list li + li {
  margin-top: 1rem;
}