@charset "utf-8";
/* CSS Document */
/*====================
 - 1280px〜：大型PC
 - 960px〜1279px：小型PC
 - 600px〜959px：タブレット
 - 480px〜599px：スマートフォン横
 - 〜479px：スマートフォン縦
====================*/
/*---page-------------------------------------------------------*/
/*****固定ページ共通*****/
.page_content {
  position: relative;
}
.page_content section {
  padding: 10rem 0 13rem;
  position: relative;
}
.page_content .wrap{
  max-width: 1538px;
  margin-left:auto;
  margin-right:auto;
}
.page_content .btn_wrap {
  position: relative;
  width: fit-content;
  margin: 4rem 0 0;
}
.page_content .btn_wrap p {
  text-align: center;
}
.page_section{
  position: relative;
}
h3.nomargint{
  margin-top: 0;
}
.page_content .flex_box{
  margin-bottom: 8rem;
}
#recruit_hero,#page_hero{
  top: -2.6rem;
}
.page_tmp{
  max-width: 1200px;
  margin: 0 auto;
}
.page_hero .hero_ttl h1,.archive .hero_ttl h1,.sigle .hero_ttl h1{
  text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.5);
}
.privacy-policy .page_hero h1 .jp,.page-id-23 .page_hero h1 .jp{
  font-size: clamp(2.8rem, 4.4vw, 4.8rem);
}
@media screen and (min-width:900px){
  .page_content .flex_box{
    display: flex;
    justify-content: space-between;
    margin-bottom: 10rem;
  }
  .page_content .flex_item{
    width: 48%;
  }
  .flex_box.reverse{
    flex-direction: row-reverse;
  }
  .page_content .flex_box.reverse{
    margin-bottom: 0;
  }
}
@media screen and (max-width:899px){
  .page_content .flex_item{
    margin: 2rem 0;
  }
}
@media screen and (min-width:769px){
  .flex_box_s{
    display: flex;
    justify-content: space-between;
  }
  .flex_item_s{
    width: 48%;
  }
}
.wrap_left{
  width: 90%;
  margin: 0 auto;
}

/*.page .footer_parallax:before{
background-image: url("../img/bg_p.webp");
  background-repeat: no-repeat;
  background-size: cover;
  content: "";
  height: 100vh;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: -4;
}*/
@media screen and (min-width:1200px) {
  .container .wrap {
    width: 80%;
  }
}
@media screen and (max-width:799px) {
  .page section {
    padding: 8rem 0 4rem;
  }
}

/*** page_link ***/
.page_link{
  max-width: none;
  background-color: #EFFAFF;
  font-size: 1.4rem;
  margin-bottom: 8rem;
}
.page_link_list{
  display: flex;
  justify-content: space-around;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
}
.page_link_item a{
  position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    padding: 1.6em 2.4em;
}
.page_link_item a::before{
  content: "";
  position: absolute;
  top: 50%;
  right: 1.5rem;
  transform: translateY(-50%);
  width: 0.75rem;
  height: 0.375rem;
  background-color: #333;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  transition: all .3s;
}
#recruit_page_link .page_link_item a::before{
  background-color: #fefefe;
}
.page_link_item a:hover{
  opacity: 0.6;
}
@media screen and (max-width:999px) {
  .page_link_list{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    margin: 0 auto;
  }
  .page_link_item a{
      padding: .8rem 2.4em .8rem 1.2rem;
  }
}

/*** ページ見出し ***/
/* h1 */
.page_header {
  position: relative;
  height: 100vh;
}
.page_header .img_outer{
  width: fit-content;
}
.page_header img,.page_header video{
  position: fixed;
  width: 100%;
  height: 100vh;
  object-fit: cover;
}
.page_header video{
  filter: brightness(0.8); /* Darken the image */
}
.hero_ttl{
  width: fit-content;
  position: absolute;
  bottom: 10vh;
  left: 10%;
}
@media screen and (max-width:799px){
  .page_title{
    margin-left: 5vw;
  }
  .page_header .img_wrap img {
    height: 360px;
  }
}
@media screen and (min-width:800px){
  .page_header .outer{
    margin-top: 16vh;
  }
  .page_header_wrap{
    display: flex;
    justify-content: space-between;
    width: 95%;
    margin-left: auto;
  }
  .page_header_wrap .img_wrap{
    width: 50%;
  }
} 
@media screen and (min-width:1200px){
  .page_header_wrap{
    width: 90%;
    max-width: calc(1200px + (50vw - 1200px / 2) );
  }
}

/*** breadcrumbs ***/
.breadcrumbs {
  font-size: 1.4rem;
  margin-top: 10rem;
}
.breadcrumbs a{
  color: #1E43AA;
  transition: all .2s ease-out;
}
.breadcrumbs a:hover{
  opacity: .6;
}

/*** dl ***/
#outline dl {
  display: flex;
  flex-flow: row wrap;
  width: 100%;
  margin: 1rem auto;
}
#outline dt, #outline dd {
  padding: 20px 0 20px;
  border-bottom: 1px solid #BAC3CC;
}
#outline dt{
  flex-basis: 28%;
  font-weight: normal;
  font-weight: 500;
}
#outline dd {
  flex-basis: 72%;
  margin: 0;
}
#outline h3{
  font-size: 1.6rem;
  font-weight: 500;
  margin: 0;
}
@media screen and (max-width: 599px) {
  #outline dl {
    flex-flow: column;
  }
  #outline dt{
    border-bottom: none;
    font-weight: bold;
    padding-bottom: 0;
  }
}

/*** banner ***/
.banner_img img{
  transition: all 0.3s ease;
}
a:hover .banner_img img{
  opacity: .7;
}
.page_banner_wrap .page_banner{
  position: relative;
  cursor: pointer;
  overflow: hidden;
  transition: 0.3s; 
}
.page_banner_wrap .page_banner a{
  height: 100%;
  display: block;
}
.banner_img{
  display: flex;
  background-color: #000; 
}
.banner_img img{
  width: 100%;
  min-height: 200px;
  object-fit: cover;
}
.page_banner .banner_title{
  position: absolute;
  bottom: 8%;
  color: #fff;
  z-index: 2;
}
.page_banner.banner_service .banner_title,.page_banner.banner_about .banner_title{
  left: 5%;
}
.page_banner.banner_staff .banner_title{
  right: 5%;
  text-align: right;
}
.page_banner h2{
  margin-bottom: 0;
  color: #fff;
}
.page_banner_wrap .page_banner a:before{
  width: 100%;
  height: 100%;
  content: "";
  background: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,0.4));
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}
@media screen and (min-width:900px) {
  .page_banner_wrap{
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .page_banner{
    width: 49%;
  }
}
@media screen and (max-width:899px) {
  .page_banner{
    margin: 1.2rem 0;
  }
  .page-template-default main .page_banner h2{
    margin-bottom: 0;
  }
}

/*** slider ***/
ul.page_slider li img{
  width: 100%;
  height: clamp(200px, 40vw, 360px);
  object-fit: cover;
}

/*** page ***/
#page_hero img{
  object-position: 62% 50%;
}

/*** about ***/
#about.page_content{
  padding-top: 20rem;
  background: transparent;
}
.page_content section#about_head {
  padding: 10rem 0 60vh;
}
#about_head::before{
  width: 100%;
  height: 100%;
  content: "";
  background: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,0.2) );
  position: absolute;
  top: 0;
  left: 0;
}
#about .vertical{
  position: relative;
  margin: 0 auto;
  width: clamp(13.2rem, 17.8vw, 18rem);
}
#about_head .text_area{
  max-width: 400px;
  margin: 8rem auto;
  padding-top: 6rem;
  border-top: 1px solid #fefefe;
}
#about_head .text_area p{
  color: #fefefe;
  font-size: clamp(1.6rem, 2.8vw, 2rem);
}
#about_hero{
  position: relative;
  z-index: -10;
}
#about .bg_white{
  position: relative;
  z-index: -5;
}
@media screen and (max-width:768px) {
  #about .vertical{
    height: 40rem;
  }
}

/* strength */
#strength .number{
  color: #003F97;
  font-size: clamp(1.6rem, 2.8vw, 2rem);
  font-weight: 500;
  margin-bottom: 1.2rem;
}
.strength_list_item{
  margin-bottom: 10rem;
  position: relative;
}
.strength_list .list_item01 .img_left img{
  width: 72%;
  position: relative;
  top: 2rem;
}
.strength_list .list_item01 .img_right{
  text-align: right;
}
.strength_list .list_item01 .img_right img{
  width: 84%;
  position: relative;
  top: -2rem;
}
.strength_list .img_outer{
  z-index: 1;
}

@media screen and (min-width:900px) {
  .strength_list .list_item01 {
    width: 90%;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: 30% 70%;
    grid-column-gap: 6rem;
    grid-row-gap: 2.8rem;
    }
    .strength_list .list_item01 .list_ttl{ grid-area: 1 / 1 / 2 / 2; }
    .strength_list .list_item01 .img_area { grid-area: 1 / 2 / 3 / 3; }
    .strength_list .list_item01 .text_box { grid-area: 2 / 1 / 3 / 2; }
    .strength_list .list_item01 .img_right img{
      width: 78%;
      position: relative;
      top: -2rem;
    }
    .strength_list .list_item02 {
      display: grid;
      grid-template-columns: 24% 10% 44% 22%;
      grid-template-rows: 18% 34% 28% 20%;
      grid-column-gap: 0px;
      grid-row-gap: 2.8rem;
      }
      .strength_list .list_item02 .list_ttl { grid-area: 1 / 2 / 2 / 4; }
      .strength_list .list_item02 video { grid-area: 3 / 3 / 5 / 5;
      max-width: 680px; }
      .strength_list .list_item02 .img_outer { grid-area: 3 / 1 / 4 / 2; }
      .strength_list .list_item02 .text_box { grid-area: 2 / 2 / 3 / 4; }
      .strength_list_item.list_item02{
        margin-bottom: 18vw;
      }
      .strength_list .list_item03 {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      grid-template-rows: 40% 60%;
      grid-column-gap: 10vw;
      grid-row-gap: 40px;
      }     
      .strength_list .list_item03 .list_ttl { grid-area: 1 / 2 / 2 / 3; }
      .strength_list .list_item03 .img_area { 
        grid-area: 1 / 1 / 3 / 2; 
        top: 4rem;
        position: relative;
      }
      .strength_list .list_item03 .img_area img{
        max-width: 600px;
      }
      .strength_list .list_item03 .text_box { grid-area: 2 / 2 / 3 / 3; }
}
@media screen and (max-width:899px) {
  .strength_list_item h3{
    margin-bottom: 4rem;
  }
  .strength_list_item .text_box{
    margin-top: 4rem;
  }
  .strength_list img{
    max-width: 400px;
  }
  .strength_list h3 {
    font-size: clamp(2rem, 3.6vw, 4rem);
  }
}

/***** service *****/
.page_content section#page_service{
  padding-top: 0;
}
.service_content{
  position: relative;
  z-index: 2;
}
.service_content h3{
  font-size: clamp(2rem, 2.6vw, 2.6rem);
}
#service_head{
  padding: 4rem 0;
}
.service_content_header{
  position: relative;
  z-index: 2;
}
@media screen and (min-width:1400px) {
  .service_detail{
    display: flex;
  }
  .service_detail h3{
    width: 50%;
  }
}
@media screen and (min-width:900px) {
  .service_content_header{
    width: 68vw;
  }
  .service_detail{
    margin-top: 8rem;
  }
  .service_detail h3{
    margin-bottom: 6rem;
  }
  .service_detail .detail_list{
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
    grid-column-gap: 40px;
    grid-row-gap: 40px;
    }
    .img_top { grid-area: 1 / 1 / 2 / 2; }
    .text_top2 { grid-area: 1 / 2 / 2 / 3; }
    .text_bottom { grid-area: 2 / 1 / 3 / 2; }
    .img_bottom { grid-area: 2 / 2 / 3 / 3; }
}
@media screen and (max-width:899px) {
  .service_content h3{
    margin: 6rem 0 4rem;
  }
  .service_detail .detail_list div{
    margin-bottom: 4rem;
  }
}
@media screen and (max-width:899px) {
  #service_equipment .video_img_wrap video{
    height: auto;
  }
  .page_content #service_equipment .video_img_wrap .img_outer{
    width: 90%;
    margin: 0 auto;
  }
}

/***** staff *****/
h3.staff_name{
  display: flex;
  align-items: center;
  z-index: 2;
}
h3.staff_name .en{
  font-size: 2rem;
  font-weight: 400;
  padding-left: 1.6rem;
}
#staff_profile .profile_wrap{
  margin-top: 6rem;
}
.profile_detail{
  position: relative;
}
.profile_detail .list_left{
  position: relative;
  z-index: 2;
}
.detail_list{
  position: relative;
  z-index: 2;
}
.profile_detail .list_left,.profile_detail .list_center{
  margin-bottom: 6rem;
}
.profile_detail .list_left img{
  max-height: 560px;
  object-position: 50% 10%;
}
.profile_detail .detail_list .text_box{
  margin-bottom: 4rem;
}
.profile_detail .list_right .img_outer{
  text-align: right;
  margin-bottom: 4rem;
}
#staff_gallery .video{
  max-width: 960px;
}
@media screen and (min-width:1200px) {
  .profile_detail {
    display: grid;
    grid-template-columns: repeat(2, 27%) 34%;
    grid-template-rows: 1fr;
    grid-column-gap: 6%;
    }
    #owner .profile_detail .list_right .img_outer img {
      width: 40vw;
      max-width: 280px;
      height: 224px;
    }
}
@media screen and (min-width:800px) and (max-width:1199px) {
  .profile_detail {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: 40% 60%;
    grid-column-gap: 60px;
    grid-row-gap: 0px;
    }
    .profile_detail .list_left { grid-area: 1 / 1 / 2 / 2; }
    .profile_detail .list_center { grid-area: 1 / 2 / 2 / 3; }
    .profile_detail .list_right { grid-area: 2 / 1 / 3 / 3; }

    #staff_profile .profile_detail {
      grid-template-rows:1fr 1fr;
      }
}
@media screen and (max-width:1199px) {
  .profile_detail .list_right .img_outer img {
    width: 72vw;
  }
  #owner .profile_detail .list_right .img_outer img {
    max-width: 400px;
  }
}
@media screen and (max-width:799px){
  #staff_profile .profile_wrap{
    margin-top: 10rem;
  }
}
/*** staff_gallery ***/
.gallery{
  overflow: hidden;
  position: relative;
}
.gallery_item {
  left: 0;
  overflow: hidden;
  position: absolute;
  top: 0;

}
.gallery img{
  height: 100%;
  object-fit: cover;
  width: 100%;
}
@media screen and (max-width:799px){
  .gallery{
    height: 108.2rem;
    margin-top: 8rem;
  }
  .gallery_item:first-of-type{
    height: 24.5rem;
    left: 8.8rem;
    top: 0;
    width: 34.7rem;
  }
  .gallery_item:nth-of-type(2) {
    height: 19.5rem;
    left: 0;
    top: 34.9rem;
    width: 27.6rem;
  }
  .gallery_item:nth-of-type(3) {
    height: 21.2rem;
    left: 39.4rem;
    top: 16.3rem;
    width: 30rem;
  }
  .gallery_item:nth-of-type(4) {
    height: 17rem;
    left: 19.8rem;
    top: 51.7rem;
    width: 24rem;
  }
  .gallery_item:nth-of-type(5) {
    height: 19.5rem;
    left: 16.2rem;
    top: 80.7rem;
    width: 27.6rem;
  }
  .gallery_item:nth-of-type(6) {
    height: 15.6rem;
    left: 0;
    top: 75.9rem;
    width: 22rem;
  }
  .gallery_item:nth-of-type(7) {
    height: 17rem;
    left: 51rem;
    top: 44.7rem;
    width: 24rem;
  }
}
@media screen and (min-width:800px){
  .gallery{
    height: 74.1rem;
    margin-top: 6rem;
  }
  .gallery_item:first-of-type{
    height: 28.9rem;
    left: 76.7rem;
    top: 0;
    width: 40.8rem;
  }
  .gallery_item:nth-of-type(2) {
    height: 27.2rem;
    left: 13.2rem;
    top: 5rem;
    width: 38.4rem;
  }
  .gallery_item:nth-of-type(3) {
    height: 23.2rem;
    left: 121.2rem;
    top: 20rem;
    width: 32.8rem;
  }
  .gallery_item:nth-of-type(4) {
    height: 18.6rem;
    left: 39.5rem;
    top: 26.4rem;
    width: 26.4rem;
  }
  .gallery_item:nth-of-type(5) {
    height: 14.8rem;
    left: 84rem;
    top: 36.5rem;
    width: 20.8rem;
  }
  .gallery_item:nth-of-type(6) {
    height: 20.2rem;
    left: 0;
    top: 39rem;
    width: 28.4rem;
  }
  .gallery_item:nth-of-type(7) {
    height: 14.7rem;
    left: 51.6rem;
    top: 51.4rem;
    width: 20.8rem;
  }
}

/***** office *****/
#office .bg_white h2{
  text-align: center;
}

@media screen and (min-width:900px) {
  #company .img_area{
    display: flex;
  }
  #company .img_area img{
    width: 96%;
  }
}
/* message */
.message_owner{
  text-align: right; 
}
.owner_name{
  font-size: 2rem;
  padding-left: 1.2rem;
}
@media screen and (max-width:768px){
  #company_message .img_outer{
    width: fit-content;
    margin: 0 auto 4rem;
  }
}
/* history */
#company_history .bg_white{
  padding: 3.6rem 4vw;
}
#company_history .right{
  margin-bottom: 3.6rem;
}
.history_list_item{
  display: flex;
  align-items: baseline;
  padding-bottom: 1.6rem;
  position: relative;
}
.history_list_item::before{
  content: "";
  width: 1px;
  height: 100%;
  background: #003F97;
  position: absolute;
  bottom: -16px;
  left: 104px;
  display: block;
}
.history_year{
  font-size: 1.8rem;
  width: 130px;
  position: relative;
  top: 4px;
  font-weight: 200;
}
.history_year::before{
  content: "";
  width: 20px;
  height: 1px;
  background: #1766DE;
  position: absolute;
  bottom: 18px;
  left: 95px;
}
.history_year.blank::before{
  bottom: 8px;
}
.history_year p{
  padding-bottom: 0;
}
.history_year .number{
  font-size: 2.4rem;
  padding: 0 .2rem;
  line-height: 1.2;
}
.history_info{
  position: relative;
}
.history_list.item_top{
  align-items: center;
}
.history_list.item_top .history_year{
  top: 0;
}
@media screen and (max-width:899px) {
  .history_list{
    width: fit-content;
    margin: 0 auto;
  }
}
@media screen and (min-width:900px) {
  #company_history .left{
    margin-bottom: 3.6rem;
  }
  .history_list{
    display: flex;
    justify-content: space-around;
    align-items: baseline;
    position: relative;
    max-width: 800px;
    margin: 0 auto;
  }
  .history_info{
    width: fit-content;
  }
  .history_list_item{
    width: fit-content;
  }
}

/* facility */
#facility .video-wrap{
  margin-bottom: 6rem;
  margin-left: auto;
  margin-right: auto;
  max-width: 1200px;
  display: block;
}
.facility_gallery{
  position: relative; 
}
.facility_gallery .img_outer{
  width: auto;
  margin: 0 1.2rem;
  position: relative;
}
.facility_gallery img{
  width: 400px;
  object-fit: cover;
}
.gallery05{
  top: 70px;
}
.gallery08{
  top: -60px;
}
.gallery02,.gallery03,.gallery09{
  top: 60px;
}
.gallery01 img{
  width: 320px;
  height: 320px;
}
.gallery04 img{
  width: 320px;
}
.facility_gallery .gallery06 img{
  width: 280px;
  height: 400px;
}
.gallery08 img,.gallery09 img{
  width: 280px;
}
@media screen and (min-width:900px) {
  .facility_gallery .img_outer img{
    width: 240px;
  }
  .gallery01 img{
    width: 196px;
    height: 196px;
  }
  .gallery08 img,.gallery09 img{
    width: 196px;
  }
  .gallery02 img{
    width: 220px;
  }
  .facility_gallery .gallery06 img{
    width: 180px;
    height: 240px;
  }
.gallery08{
    top: -40px;
  }
  .gallery09{
    top: 40px;
  }
  .gallery05{
    top: 40px;
  }
}

/* outline */
#outline{
  margin-top: 12rem;
}
.outline_wrap {
  max-width: 600px;
  width: 100%;
  margin: 0 auto;
}
/*** outline ***/
.dl_line dl{
  display: flex;
  flex-flow: row wrap;
  width: 100%;
  margin: 1rem auto;
}
.dl_line dt, .dl_line dd{
  padding: 8px 0 16px;
}
.dl_line dt{

  font-weight: bold;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.dl_line dd {
  margin: 0;
  border-bottom: 1px solid #999;
}
.dl_line .box_left,.dl_line .box_right{
  width: 100%;
}
@media screen and (max-width: 1099px) {
  .dl_line dl {
    flex-flow: column;
  }
  .dl_line dt {
	font-weight: bold;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
  padding-bottom: 0;
  }
}
@media screen and (min-width:1100px){
  .dl_line dt{
    border-bottom: 1px solid #999;
  }
  .dl_line dt{
    width: 34%;
  }
  .dl_line dd{
    width: 66%;
  }
}

/* access */
.page_section#access h2 {
  margin-bottom: 4rem;
}
#access h3{
  font-size: 1.8rem;
}
.map {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
}
.map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
@media screen and (max-width:899px) {
  .map{
    margin: 4rem 0;
  }
}
@media screen and (min-width:900px) {
  .office_wrap .address_map{
    display: flex;
  }
  .flex_item.text_area{
    width: 34%;
  }
  .flex_item.map{
    width: 64%;
  }
}

/*** RECRUIT ***/
#guideline{
  height: 100vh;
}
.page_content section#recruit_message{
  padding: 0;
  position: relative;
  color: #fefefe;
}

/* job */
.job_wrap{
  width: 100%;
  background-color: #fefefe;
  padding: 4rem 0;
}
.job dl{
  display: flex;
  flex-flow: row wrap;
  width: 100%;
  margin: 1rem auto;
}
.job dt, .job dd{
  padding: 24px 0;
  border-bottom: 1px solid #ccc;
}
.job dt{
  flex-basis: 28%;
  font-weight: bold;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
color: #1E43AA;
}
.job dd {
  flex-basis: 72%;
  margin: 0;
}
.job h4 {
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: .4rem;
  margin-top: 1.2rem;
}
@media screen and (max-width: 768px) {
  .job dl {
    flex-flow: column;
  }
  .job dt {
    border-bottom: none;
	  font-weight: bold;
	  -webkit-font-smoothing: antialiased;
	  -moz-osx-font-smoothing: grayscale;
    padding-bottom: 0;
  }
}
.job dl {
  border-top: 1px solid #BAC3CC;
}
.job ul.text_list{
  margin: 0;
}

@media screen and (min-width: 900px){
  #guideline .right-area{
    width: 60%;
  }
}
@media screen and (max-width: 899px) {
  #recruit_message .img_wrap{
    width: 96%;
  }
  .container section#guideline.bg_gray{
    margin-top: 20rem;
  }
}

/***** contact *****/
#contact .wrap{
  max-width: 1000px;
}
.contact_head {
  max-width: 1200px;
  padding-bottom: 4rem;

}
/*** Contact Form7 ***/
input[type="text"]:focus,textarea:focus,input[type="email"]:focus,input[type="tel"]:focus {
outline: solid 2px #666;
}
input[type="text"],textarea,input[type="email"],input[type="tel"] {
width: 100%;
margin: 0;
box-sizing: border-box;
}
input[type="text"],input[type="email"],input[type="tel"] {
height: 2rem;
}
.contact7 {
max-width: 100%;
box-sizing: border-box;
padding-top: 2rem;
margin-top: 4rem;
border-top: 1px solid #ccc;
}
.contact7 dl {
display: flex;
justify-content: space-between;
align-items: baseline;
margin-top: 4rem;
}
.contact7 dl dt {
display: flex;
justify-content: space-between;
flex-basis: 32%;
}
.contact7 dl dd {
width: 630px;
flex-basis: 68%;
}
.contact7 dl dd select, .contact7 dl dd textarea {
width: 100%;
}
.contact7 dl dd select, .contact7 dl dd textarea, .contact7 dl dd input {
padding: 2rem 1.6rem;
border: 1px solid #999;
}
.contact7 dl.checkbox dd input{
  border: none;
}
section .contact7 dd.form_name p span input.wpcf7-text {
width: 96%;
}
section .contact7 dd.birthday p span input.wpcf7-text {
width: 94%;
margin-left: 2rem;
}
dd.birthday .age {
padding: 2rem 0rem;
}
.wpcf7-text {
width: 100%;
}
/* 必須マーク */
.contact7 .must {
background: #F1686D;
}
/* 任意マーク */
.contact7 .optional {
background: #999;
}
.contact7 .must, .contact7 .optional {
  color: #FFF;
  font-size: 12px;
  margin-left: 8px;
  padding: 4px 8px;
  letter-spacing: 2px;
  font-weight: 500;
}
/* CF7チェックボックスとラジオボタンを縦並びに */
span.wpcf7-list-item {
display: block;
line-height: 2;
}
.contact7 .radio dd input {
width: auto;
}
.wpcf7-list-item {
margin: 0 !important;
}
.wpcf7 form .wpcf7-response-output {
border: none;
}
/* チェックボックスデザイン */
.contact7 dl.checkbox dd input{
padding: 0 1.6rem;
}
input[type="checkbox"] {
  cursor: pointer;
  padding-left: 30px;/*label手前にチェックボックス用の余白を開ける*/
  vertical-align: middle;
  position: relative;
}
input[type="checkbox"]::before,
input[type="checkbox"]::after {
  content: "";
  display: block; 
  position: absolute;
}
input[type="checkbox"]::before {
  background-color: #fff;
  border-radius: 0%;
  border: 1px solid #666;
  width: 20px;/*チェックボックスの横幅*/
  height: 20px;/*チェックボックスの縦幅*/
  transform: translateY(-50%);
  top: 50%;
  left: 5px;
}
input[type="checkbox"]::after {
  border-bottom: 3px solid #666;/*チェックの太さ*/
  border-left: 3px solid #666;/*チェックの太さ*/
  opacity: 0;/*チェック前は非表示*/
  height: 8px;/*チェックの高さ*/
  width: 11px;/*チェックの横幅*/
  transform: rotate(-45deg);
  top: -6px;/*チェック時の位置調整*/
  left: 9px;/*チェック時の位置調整*/
}
input[type="checkbox"]:checked::after {
  opacity: 1;/*チェック後表示*/
}
.contact7 .check {
margin: 4rem 0 2rem;
}
.btn_contact7 {
width: 100%;
position: relative;
transition: all .2s ease-out;
margin-top: 6rem;
}
.btn_contact7 input {
width: 100%;
padding: 2.8rem 0;
background: #1E43AA;
color: #fefefe;
font-size: 1.1em;
font-weight: bold;
border-radius: 8rem;
border: #1E43AA 2px solid;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
transition: all .2s ease-out;
}
.btn_contact7 input.wpcf7-previous{
background: #f8f8f8;
  border: #444 solid 2px;
  color: #444;
}
.btn_contact7 input:hover {
  background: #fefefe;
  color: #1E43AA;
}
/* Contact Form 7 のドロップダウン */
.wpcf7 select {
  appearance: none; /* 標準の矢印を消す */
  -webkit-appearance: none;
  -moz-appearance: none;
  background: #fbfbfb url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='dimgray' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat right 0.8em center;
  background-size: 1em;
  padding-right: 2em; /* 矢印分の余白を確保 */
  border: 1px solid #ccc;
  cursor: pointer;
}

/* IE対応（古い環境なら消してもOK） */
.wpcf7 select::-ms-expand {
  display: none;
}

@media screen and (max-width: 768px) {
  .contact7 dl {
    display: block;
  }
  .contact7 dl dt {
    justify-content: flex-start;
    flex-basis: auto;
  }
  .contact7 dl dd {
    flex-basis: auto;
    width: 100%;
    padding-left: 0;
    padding-right: 0;
  }
}
@media screen and (min-width: 600px){
  .contact7 .btn_wrap{
    display: flex;
    justify-content: space-between;
  }
  .contact7 .previous{
    width: 28%;
    margin-left: 4rem;
  }
}
@media screen and (max-width: 599px) {
  .contact7 .previous{
    margin-top: 0;
  }
}



/*** NotFound ***/
.page_header.page_header_notfound  h1 .en{
  font-size: clamp(4rem, 7.8vw, 6rem);
}
#notfound a,#contact a {
  color: #1E43AA;
}
#notfound a,#contact .check a {
  text-decoration: underline;
}
#notfound a:hover,#contact a:hover {
  opacity: .6;
}