@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&display=swap');

*{
  margin:0;
  padding:0;
  list-style: none;
  box-sizing: border-box;
  text-decoration: none;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

*::before,
*::after{
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  box-sizing: border-box;
  font-family: 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', 'Meiryo', 'メイリオ', 'Osaka', 'MS PGothic', arial, helvetica, sans-serif;
}

html {
  -ms-text-size-adjust: none;
  -webkit-text-size-adjust: none;
}

body{
  color: #000;
  font-size: 16px;
  font-weight: 400;
  font-family: 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', 'Meiryo', 'メイリオ', 'Osaka', 'MS PGothic', arial, helvetica, sans-serif;
  /* font-family:'メイリオ', 'Meiryo', sans-serif;
  font-family: 'Noto Sans CJK JP' , 'Noto Sans JP'  ,sans-serif; */
  -webkit-font-smoothing: antialiased;
  -ms-text-size-adjust: none;
  -webkit-text-size-adjust: none;
}

input,
textarea,
select{
  resize: none;
  color: #000;
  font-family: 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', 'Meiryo', 'メイリオ', 'Osaka', 'MS PGothic', arial, helvetica, sans-serif;
  border:none;
  background: none;
  border-radius: 0;
  -webkit-font-smoothing: antialiased;
  -ms-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  touch-action: manipulation;
}

select{
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;

}


img{
  display: block;
  object-position: center;
}

#body_wrap{
  overflow: hidden;
}


a{
  color: #333;
}

.fax a{
  pointer-events: none;
}

@media (any-hover:hover){
  a[href^="tel:"] {
    pointer-events: none;
  }
}

/*
------------------------------------
アニメーション関係
------------------------------------
*/

.common_hover_opa{
  transition: 0.4s;
}


@media (any-hover:hover){
  .common_hover_opa:hover{
    opacity: 0.5;
  }
  
}


/*
------------------------------------
共通パーツ
------------------------------------
*/

.hide{
  display: none!important;
}

.container{
  max-width: 1200px;
  margin:0 auto;
}

/*セクションのタイトルセット*/
.common_sec_title{
  display: flex;
  flex-direction: column;
  font-weight: bold;
  font-feature-settings: 'palt';
}

.common_sec_title .en_title{
  text-decoration: underline;
  font-size: 18px;
  letter-spacing: -0.06em;
  color: #858585;
}

.common_sec_title .ja_title{
  margin-top: 16px;
  font-size: 50px;
  letter-spacing: 0.08em;
  line-height: 1.4;
  margin-top: 8px;
}


/*バナー部分*/
.common_banner_area{
  margin-top: 40px;
}

.common_banner_area .banner{
  display: block;
  max-width: 665px;
  margin:0 auto;
  box-shadow: 8px 9px 4px rgba(0, 0, 0, 0.16);

}

.common_banner_area .banner img{
  width:100%;
}

/*
------------------------------------
ヘッダー
------------------------------------
*/
header{
  position: fixed;
  width:100%;
  top:0;
  left:0;
  z-index: 30;
  background-color: #fff;
}

header a{
  transition-duration: 0.4s;
}

@media (any-hover:hover){
  header a:hover{
    opacity: 0.5;
  }
}

header .header_inner{
  max-width: 1200px;
  margin:0 auto;
}

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

header .header_logo{
  display: block;
  width:68px;
  border-radius: 50%;
}

header .header_logo img{
  width:100%;
  border-radius: 50%;
}

header .header_right{
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

header .header_nav{

}

header .parent_menu{
  display: flex;
  align-items: center;
}

header .parent_item{
  margin-right: 24px;
}

header .parent_link{
  font-weight: bold;
  font-size: 14px;
  line-height: 1.2;
}

header .button_list{
  display: flex;
}

header .button{
  width:150px;
  height:72px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-left: 1px solid #E3E5E4;
  background-color: #fff;
  font-weight: bold;
  font-size: 14px;
  letter-spacing: 0.12em;
  line-height: 1;
}

header .button:last-child{
  border-right: 1px solid #E3E5E4;
}

header .button.consult::before{
  content:'';
  width:15px;
  height:17px;
  background-image: url('../img/common/icon_consult_black.svg');
  background-size: contain;
  margin-right: 16px;
}

header .button.contact::before{
  content:'';
  width:21px;
  height:17px;
  background-image: url('../img/common/icon_mail_black.svg');
  background-size: contain;
  margin-right: 16px;
}
/*
------------------------------------
フッター
------------------------------------
*/
footer{

}

footer a{
  transition-duration: 0.4s;
}

@media (any-hover:hover){
  footer a:hover{
    opacity: 0.5;
  }
}

footer .footer_area01{
  padding:32px 0 60px;
  border-top: 1px solid #000000;
  background-color: #E3E5E4;
}

footer .footer_flex01{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}


footer .footer_logo{
  width: 160px;
  display: block;
}
footer .footer_logo img{
  width: 100%;
}

footer .info_list{
  margin-top: 40px;
}

footer .info_list li + li{
  margin-top: 10px;
}

footer .info_list li a{
  font-weight: bold;
  letter-spacing: 0.08em;
  line-height: 1.2;
  
}

footer .footer_nav{
  margin-top: 80px;
}

footer .parent_menu{
  display: flex;
}

footer .parent_item {
  margin-right: 60px;
}

footer .parent_item:last-child{
  margin-right: 0;
}
/* 
footer .parent_item + .parent_item{
  margin-left: 60px;
}  */

footer .parent_link{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: fit-content;
}

footer .parent_link .en_title{
  font-family: "Archivo Black", sans-serif;
  color:#000;
  font-size: 30px;
  line-height: 1.2;
}

footer .parent_link .ja_title{
  margin-top: 6px;
  font-weight: normal;
  line-height: 1.2;
}

footer .footer_border{
  border-top: 1px solid #000000;
  margin-top: 48px;
} 

footer .footer_flex02{
  margin-top: 40px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

footer .footer_left02{
  padding-top: 32px;
  display: flex;
  align-items: center;
}

footer .footer_adress01{
  font-weight: bold;
  font-size: 30px;
  letter-spacing: 0.03em;
  line-height: 1;
}

footer .footer_adress02{
  margin-top: 12px;
  font-weight: normal;
  font-size: 18px;
  letter-spacing: 0.08em;
  line-height: 1;
}

footer .map_link{
  display: flex;
  justify-content: center;
  align-items: center;
  height: 34px;
  border-radius: 17px;
  border: 1px solid #000;
  padding-left:12px;
  padding-right:16px;
  color: #000;
  font-family: "Archivo Black", sans-serif;
  margin-left: 112px;
}

footer .map_link::after{
  content:'';
  width:11px;
  height:11px;
  background-image: url('../img/common/icon_link_black.svg');
  margin-left: 12px;
}

footer .footer_right02{
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
}

footer .link p{
  text-align: center;
  font-weight: bold;
  line-height: 1;
  letter-spacing: 0.08em;
  text-align: center;
}

footer .banner_link img{
  width: 265px;
  margin:10px auto 0;
}

footer .insta_link{
  margin-left: 72px;
}
footer .insta_link img{
  width: 46px;
  margin:24px auto 0;
}

footer .footer_area02{
  padding:24px 0;
  background-color: #3B3A3B;
}

footer .footer_copy{
  font-size: 12px;
  letter-spacing: 0.08em;
  text-align: center;
  color: #fff;
  
}
/*
------------------------------------
トップページ
------------------------------------
*/

body.top_body{
  
}


/* body.top_body header{
  background-color: transparent;
}

body.top_body header .parent_link{
  color:#fff;
} 

body.top_body header.active{
  background-color: #fff;
}

body.top_body header.active .parent_link{
  color:#000;
}  */

main.top_main{

}

.top_section{
  position: relative;
}

.top_mv_section{
  padding-top: 96px;
}

.top_mv_section .mv_head{

}

.top_mv_section .mv_head img{
  width:370px;
  margin-top: 24px;
}

.top_mv_section .mv_text{
  font-weight: bold;
  font-size: 50px;
  letter-spacing: 0.02em;
  line-height: 1.5;
  font-feature-settings: 'palt';
} 

.top_mv_section .mv_text span{
  background-color: #000000;
  color:#fff;
  padding:2px 8px;
}

.top_mv_section .mv_link{
  margin-top: 32px;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 221px;
  height: 51px;
  border-radius: 26px;
  border: 1px solid #000;
  box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.16);
  position: relative;
  font-weight: bold;
  letter-spacing: 0.12em;
  transition-duration: 0.4s;
  overflow: hidden;
}

.top_mv_section .mv_link span{
  position: relative;
  z-index: 3;
}

.top_mv_section .mv_link::before{
  content:'';
  width:100%;
  height:0;
  background-color: #000000;
  position: absolute;
  left:0;
  bottom:0;
  transition: .3s cubic-bezier(0.8, 0, 0.2, 1) 0s;
}

@media(any-hover:hover){
  .top_mv_section .mv_link:hover{
    color:#fff;
  }

  .top_mv_section .mv_link:hover::before{
    height:100%;
  }
}

.top_mv_section .mv_flex{
  display: flex;
  justify-content: space-between;
  align-items: center;
  line-height: 1;
  margin-top: 150px;
}

.top_mv_section .mv_flex .scroll{
  display: flex;
  align-items: center;
}

.top_mv_section .mv_flex .scroll::after{
  content:'';
  width:10px;
  height:11px;
  background-size: contain;
  background-image: url('../img/common/icon_scroll_arrow_black.svg');
  flex-shrink: 0;
  margin-left: 6px;
}

.top_mv_section .mv_img{
  max-width: 1140px;
  margin:80px auto 0;
}

.top_mv_section .mv_img img{
  width:100%;
}

.top_mv_section .present_head{
  display: flex;
  justify-content: center;
  margin-top: 44px;
}

.top_mv_section .present_head img{
  width:620px;
}


.top_mv_section .present_flex{
  margin-top: 56px;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  padding-left: 30px;
}

.top_mv_section .present_flex img{
  height:280px;
}

.top_mv_section .present_flex .border{
  width:1px;
  height:178px;
  background-color: #000;
  margin:0 40px 20px;
}


.top_mv_section .conslut_link{
  width: fit-content;
  display: flex;
  justify-content: center;
  align-items: center;
  margin:48px auto 0;
  background-color: #000000;
  border-radius: 6px;
  height:72px;
  padding:0 116px;
  font-weight: bold;
  font-size: 30px;
  letter-spacing: 0.08em;
  line-height: 1;
  color: #fff;

}

.top_mv_section .conslut_link span{
  position: relative;
}

.top_mv_section .conslut_link span::before,
.top_mv_section .conslut_link span::after{
  content:'';
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  background-size: contain;
}

.top_mv_section .conslut_link span::before{
  width:24px;
  height:27px;
  background-image: url('../img/common/icon_consult_white.svg');
  left:-44px;
}
.top_mv_section .conslut_link span::after{
  width:13px;
  height:23px;
  background-image: url('../img/common/icon_angle_right_white.svg');
  right:-66px;
}

.top_partner_section{
  padding-top: 96px;
}

.top_partner_section .partner_slide_area{
  border-top:2px solid #000;
  border-bottom:2px solid #000;
  padding-top: 16px;
  padding-bottom: 16px;
  overflow: hidden;
}

.top_partner_section .partner_swiper_wrapper{
  transition-timing-function: linear !important;
}

.top_partner_section .partner_slide{
  height:42px;
  width: auto;
  padding:0 10px;
} 

.top_partner_section .partner_slide img{
  height:100%;
}

.top_work_section{
  padding-top: 80px;
} 

.top_work_section .sec_title{
  font-weight: bold;
  font-size: 60px;
  letter-spacing: 0.08em;
  text-align: center;
  line-height: 1;
}

.top_work_section .work_flex{
  display: flex;
  justify-content: center;
  margin-top: 80px;
}

.top_work_section .work_flex .work_center{
  width:3px;
  background-color: #000000;
  margin:0 64px;
}

.top_work_section .work_block{
  display: flex;
  flex-direction: column;
  align-items: center;
}

.top_work_section .work_p01{
  position: relative;
  font-weight: bold;
  font-size: 25px;
  letter-spacing: 0.1em;
}

.top_work_section .work_p01::after{
  content:'※';
  font-size: 14px;
  letter-spacing: 0.1em;
  position: absolute;
  top:-4px;
  right:-16px;
}

.top_work_section .work_p02{
  margin-top: 12px;
  font-weight: bold;
  font-size: 22px;
  line-height: 1;
}

.top_work_section .work_p02 span{
  font-size: 60px;
}

.top_work_section .work_p03{
  font-size: 14px;
  letter-spacing: 0.1em;
  margin-top: 12px;
}

.top_work_section .work_slide_area{
  width: 100vw;
  margin: 0 calc(50% - 50vw);
  margin-top: 124px;
}

.top_work_section .work_swiper{
  pointer-events: none;
}

.top_work_section .work_slide{
  width:370px;
  padding:0 10px;
  height:auto;
}

.top_work_section .work_card{
  width:100%;
  min-height:415px;
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  border-radius: 5px;
  border: 2px solid #000;
  padding:32px 32px 24px;
}

.top_work_section .work_card .work_text_area{
  width:100%;
}

.top_work_section .work_card .work_title{
  min-width: 201px;
  padding:6px 8px;
  background-color: #000;
  font-weight: bold;
  line-height: 1.2;
  letter-spacing: 0.08em;
  color: #fff;

}

.top_work_section .work_card .work_text{
  margin-top: 16px;
  letter-spacing: 0.08em;
  line-height: 1.6;
  font-weight: bold;
}

.top_work_section .work_img_area{
  margin-top: 24px;
}

.top_work_section .work_img_area img{
  height:85px;
}

.top_work_section .work_button_area{
  max-width: 1100px;
  margin: 100px auto 0;
}

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

.top_work_section .work_button{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 62px;
  height: 41px;
  border-radius: 20.5px;
  background: #fff;
  border: 1px solid #000;
  cursor: pointer;
}

.top_work_section .work_button::after{
  content:'';
  width:25px;
  height:16px;
}

.top_work_section .work_button_prev::after{
  background-image: url('../img/common/icon_arrow_left_black.svg');
  margin-right: 12px;
  background-position: left;
}
.top_work_section .work_button_next::after{
  background-image: url('../img/common/icon_arrow_right_black.svg');
  margin-left: 12px;
  background-position: right;
}

.top_work_section .work_border{
  margin-top: 50px;
  display: flex;
  flex-direction: column;
  align-items: center;
  border-top: 1px solid #000;
}

.top_work_section .work_border::before,
.top_work_section .work_border::after{
  content:'';
  width: 100%;
  border-top: 1px solid #000;
  margin-top: 8px;
}

.top_about_section{
  padding-top: 180px;
}

.top_about_section .about_flex{
  margin-top: 56px;
  display: flex;
  position: relative;
}

.top_about_section .about_flex::after{
  content:'';
  width: 264px;
  height: 235px;
  background-image: url('../img/top/about02.jpg');
  position: absolute;
  right:0;
  bottom:40px;

}
.top_about_section .about_flex .about_img{
  width:396px;
  flex-shrink: 0;
  margin-right: 64px;
}

.top_about_section .about_flex .about_img img{
  width:100%;
}

.top_about_section .about_text_area{
  padding-top: 48px;
} 

.top_about_section .about_head{
  font-weight: bold;
  font-size: 30px;
  line-height: 1.8;
}

.top_about_section .about_text{
  margin-top: 56px;
  font-weight: bold;
  letter-spacing: 0.08em;
  line-height: 1.5;
}

.top_info_section{
  padding-top: 160px;
} 

.top_info_section .info_list{
  display: flex;
  justify-content: space-between;
  position: relative;
  margin-top: 64px;
  margin-bottom: 16px;
}

.top_info_section .info_block{
  min-width:351px;
  /* width: 31%; */
}

.top_info_section .info_block .info_head{
  display: flex;
  justify-content: center;
  align-items: center;
  height:54px;
  cursor: pointer;
  font-weight: bold;
  font-size: 18px;
  letter-spacing: 0.08em;
  line-height: 1.2;
  padding:0 48px;
  border:1px solid #000000;
  box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
  position: relative;
}

.top_info_section .info_block .info_head::after{
  content:'';
  width: 14px;
  height:8px;
  background-image:url('../img/common/icon_angle_bottom_black.svg');
  position: absolute;
  right:16px;
  top:0;
  bottom:0;
  margin:auto;
}

.top_info_section .info_block .info_head.active{
  background-color: #000000;
  color:#fff;
  box-shadow:none;
}

.top_info_section .info_block .info_head.active::after{
  background-image:url('../img/common/icon_angle_bottom_white.svg');
}

.top_info_section .info_contents{
  width:100%;
  padding-top: 30px;
  border-top:1px solid #000;
}

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

.top_info_section .point_block{
  width: 376px;
  min-height: 464px;
  background-color: #e3e5e4;
  border: 2px solid #000;
  padding:132px 32px 24px;
  position: relative;
}

.top_info_section .point_block .point_num{
  position: absolute;
  left:0;
  top:0;
  min-width:170px;
  padding-top: 10px;
  padding-bottom: 10px;
  padding-left: 24px;
  background-color: #000;
  font-weight: bold;
  font-size: 17px;
  line-height: 1;
  letter-spacing: 0.08em;
  color: #fff;
  clip-path: polygon(0 0, 100% 0%, calc(100% - 35px) 100%, 0% 100%);
  white-space: nowrap;
}

.top_info_section .point_block .point_num span{
  font-size: 23px;
  padding-left: 4px;
}

.top_info_section .point_block .point_head{
  font-weight: bold;
  font-size: 22px;
  letter-spacing: 0.08em;
  line-height: 1.5;
  text-align: center;
  white-space:nowrap;
}

.top_info_section .point_block .point_text{
  margin-top: 28px;
  line-height: 2;
}

.top_info_section .info_border{
  max-width: 932px;
  margin:40px auto 0;
}

.top_info_section .info_border img{
  width:100%;
}


.top_service_section{
  padding-top: 160px;
}

.top_service_section .service_list{
  margin-top: 132px;
}

.top_service_section .service_block{
  display: flex;
  align-items: flex-end;
  position: relative;
}

.top_service_section .service_block + .service_block{
  margin-top: 285px;
}

.top_service_section .service_block .service_img{
  flex-shrink: 0;
  width:542px;
}

.top_service_section .service_block .service_img img{
  width:100%;
}

.top_service_section .service_block .service_text_area{
  width:100%;
  padding-bottom: 40px;
}

.top_service_section .service_block .service_head{
  display: flex;
  align-items: center;
}

.top_service_section .service_block .service_en{
  font-weight: bold;
  font-size: 20px;
  line-height: 1;
  padding-bottom: 2px;
  border-bottom:2px solid #000;

}

.top_service_section .service_block .service_num{
  margin-left: 8px;
  font-weight: bold;
  font-size: 40px;
  color: #D7D6D6;
  -webkit-text-stroke: 2px #000;
}

.top_service_section .service_block .service_title{
  margin-top: 24px;
  font-weight: bold;
  font-size: 30px;
  letter-spacing: 0.08em;
  line-height: 1.3;
}

.top_service_section .service_block .service_text{
  margin-top: 16px;
  letter-spacing: 0.08em;
  line-height: 1.5;
}

.top_service_section .service_block .service_text span{
  color:#FA0303;
}

.top_service_section .service_block:nth-child(odd){
  position: relative;
}
.top_service_section .service_block:nth-child(odd)::before{
  content:'';
  width:100vw;
  height:calc(100% + 320px);
  background-color: #E3E5E4;
  z-index: -1;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  right:calc(50% - 174px);
}

.top_service_section .service_block:nth-child(odd) .service_img{
  margin-right: 100px;
}
.top_service_section .service_block:nth-child(odd) .service_text_area{
  padding-right: 40px;
}


.top_service_section .service_block:nth-child(even){
  flex-direction: row-reverse;
}
.top_service_section .service_block:nth-child(even) .service_img{
  margin-left: 130px;
}

.top_function_section{
  padding-top: 320px;
}

.top_function_section .function_area{
  margin-top: 64px;
}

.top_function_section .function_area .function_img{
  width: 100%;
}

.top_voice_section{
  padding-top: 160px;
}


.top_voice_section .gal_area{
  max-width: 1000px;
  margin: 40px auto 0;
}

.top_voice_section .gal_frame{
  display: none;
}

.top_voice_section .gal01_frame{
  display: block;
}
.top_voice_section .gal_main_slide_list{
  position: relative;
  height:403px;
}

.top_voice_section .gal_main_slide{
  position: absolute;
  top:0;
  left:0;
  opacity: 0;
  transition-duration: 0.4s;
  border: 1px solid #000;
  width: 100%;
  height:100%;
} 

.top_voice_section .gal_main_slide.show{
  opacity: 1;
}

.top_voice_section .gal_main_slide img{
  width: 100%;
  height:100%;
  object-fit: cover;
}

.top_voice_section .gal_guide_list{
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 3;
  bottom:12px;
  left:0;
  width:100%;
}

.top_voice_section .gal_guide_list .gal_guide{
  width: 12px;
  height:12px;
  border-radius: 50%;
  border:1px solid #000;
  background-color: #fff;
  transition-duration: 0.4s;
  margin:0 6px;
  cursor: pointer;
}

.top_voice_section .gal_guide_list .gal_guide.active{
  pointer-events: none;
  background-color: #858585;
}

@media(any-hover:hover){
  .top_voice_section .gal_guide_list .gal_guide:hover{
    background-color: #858585;
  }
}


.top_voice_section .gal_thumb_list{
  margin-top: 16px;
  display: flex;
  justify-content: space-between;
  
}

.top_voice_section .gal_thumb{
  position: relative;
  border:1px solid #000;
  width:19%;
  aspect-ratio: 1/1;
  cursor: pointer;
}

.top_voice_section .gal_thumb::before{
  content:'';
  width:100%;
  height:100%;
  background-color: rgba(255,255,255,0.5);
  position: absolute;
  top:0;
  left:0;
  z-index: 2;
  transition-duration: 0.4s;
  opacity: 0;
}

.top_voice_section .gal_thumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.top_voice_section .gal_thumb.active{
  pointer-events: none;
}
.top_voice_section .gal_thumb.active::before{
  opacity: 1;
}

@media(any-hover:hover){
  .top_voice_section .gal_thumb:hover::before{
    opacity: 1;
  }
}

.top_voice_section .gal_text_area{
  max-width: 530px;
  margin:40px auto 0;
  letter-spacing: 0.06em;
  line-height: 2;
}

.top_voice_section .gal_pagenation{
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 48px;
}


.top_voice_section .gal_pagenation .num_list{
  display: flex;
  justify-content: center;
  align-items: center;
}
.top_voice_section .gal_pagenation .gal_num{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 30px;
  height:30px;
  border-radius: 50%;
  transition-duration: 0.4s;
  border:1px solid transparent;
  margin:0 12px;
  font-weight: bold;
  font-size: 14px;
  letter-spacing: 0;
  line-height: 1;
  cursor: pointer;

}

.top_voice_section .gal_pagenation .gal_num.active{
  border-color:#000 ;
  pointer-events: none;
}

@media(any-hover:hover){
  .top_voice_section .gal_pagenation .gal_num:hover{
    border-color:#000 ;
  }
}

.top_voice_section .gal_pagenation .gal_nav{
  display: flex;
  align-items: center;
  cursor: pointer;
  transition-duration: 0.4s;
  font-weight: bold;
  font-size: 14px;
  letter-spacing: 0.06em;
  line-height: 1;
}

.top_voice_section .gal_pagenation .gal_nav.off{
  opacity: 0.3;
  pointer-events: none;
}

.top_voice_section .gal_pagenation .gal_nav.gal_next{
  margin-left: 116px;
}

.top_voice_section .gal_pagenation .gal_nav.gal_next::after{
  content:'';
  width: 8px;
  height:16px;
  background-image: url('../img/common/icon_next_black.svg');
  background-size: contain;
  flex-shrink: 0;
  margin-left: 12px;
}

.top_voice_section .gal_pagenation .gal_nav.gal_prev{
  margin-right: 116px;
}

.top_voice_section .gal_pagenation .gal_nav.gal_prev::before{
  content:'';
  width: 8px;
  height:16px;
  background-image: url('../img/common/icon_prev_black.svg');
  background-size: contain;
  flex-shrink: 0;
  margin-right: 12px;
}

.top_voice_section .voice_list{
  margin:80px auto 0;
  max-width:840px;
}

.top_voice_section .voice_block{

}

.top_voice_section .voice_block + .voice_block{
  margin-top: 72px;
}

.top_voice_section .voice_head{
  display: flex;
  align-items: flex-start;
}

.top_voice_section .voice_img{
  width:146px;
  margin-right: 12px;
  flex-shrink: 0;
}

.top_voice_section .voice_img img{
  width: 100%;
}

.top_voice_section .voice_info_area{
  width: 100%;
  padding-bottom: 8px;
  border-bottom:1px solid #E3E5E4;
  padding-top: 10px;
}

.top_voice_section .voice_cat{
  display: flex;
  justify-content: center;
  align-items: center;
  width: fit-content;
  min-width: 207px;
  padding:4px 16px;
  border-radius: 100px;
  border:1px solid #707070;
  background-color: #000;
  font-weight: bold;
  font-size: 18px;
  line-height: 1.2;
  color: #faf8f8;

}

.top_voice_section .voice_title{
  margin-top: 16px;
  font-weight: bold;
  font-size: 30px;
  line-height: 1.3;
}

.top_voice_section .voice_name{
  margin-top: 16px;
  font-weight: bold;
  color: #858585;

}

.top_voice_section .voice_body{
  margin-top: 32px;
  max-height: 240px;
  overflow: hidden;
  position: relative;
}

.top_voice_section .voice_body.active{
  max-height: none;
}

.top_voice_section .voice_text{
  line-height: 1.5;
  letter-spacing: 0.06em;
}

.top_voice_section .voice_more{
  position: absolute;
  z-index: 2;
  cursor: pointer;
  bottom:0;
  left:0;
  width:100%;
  height:60px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  letter-spacing: 0.06em;
  line-height: 1;
  background: linear-gradient(to top, #fff 0%, rgba(255,255,255,0.7) 100%);
}

.top_voice_section .voice_more::after{
  content:'';
  width:12px;
  height:12px;
  flex-shrink: 0;
  background-image: url('../img/common/icon_plus_black.svg');
  margin-left: 12px;
}

.top_faq_section{
  padding-top: 160px;
}

.top_faq_section .faq_list{
  max-width: 1120px;
  margin:56px auto 0;
}

.top_faq_section .faq_block{
  border-bottom: 1px solid #707070;
}

.top_faq_section .faq_question{
  position: relative;
  padding:24px 96px 24px 64px;
  cursor: pointer;
  font-weight: bold;
  font-size: 18px;
  line-height: 1.3;
}

.top_faq_section .faq_question::before{
  content:'Q';
  font-weight: bold;
  font-size: 40px;
  line-height: 1;
  position: absolute;
  left:12px;
  top: 14px;
}

.top_faq_section .faq_question::after{
  content:"";
  width:30px;
  height:30px;
  background-image: url('../img/common/icon_plus_black.svg');
  background-size: contain;
  position: absolute;
  right:24px;
  top:22px;
}

.top_faq_section .faq_question.active::after{
  background-image: url('../img/common/icon_minus_black.svg');
}


.top_faq_section .faq_answer{
  margin-top: 40px;
  padding-bottom: 40px;
  padding-left: 64px;
  padding-right: 48px;
  line-height: 1.7;
  position: relative;
  display: none;
}

.top_faq_section .faq_answer::before{
  content:'A';
  font-weight: bold;
  font-size: 40px;
  line-height: 1;
  position: absolute;
  left:12px;
  top: -10px;
}

.top_message_section{
  padding-top: 160px;
  padding-bottom: 100px;
}

.top_message_section .message_frame{
  background-color: #E3E5E4;
  padding:160px 24px;
}

.top_message_section .message_inner{
  max-width: 560px;
  margin:0 auto;
}

.top_message_section .message_head01{
  font-weight: bold;
  font-size: 92px;
  letter-spacing: 0.01em;
  line-height: 1;
  text-align: center;
}
.top_message_section .message_head01 span{
  color:#fff;
}

.top_message_section .message_head02{
  width: fit-content;
  margin:16px auto 0;
  font-weight: bold;
  font-size: 50px;
  letter-spacing: 0.26em;
  line-height: 1;
  color: #fff;
  position: relative;
}

.top_message_section .message_head02 img{
  position: absolute;
  width:36px;
  top:16px;
  left:-12px;
  z-index: 2;
}

.top_message_section .message_head03{
  margin-top: 16px;
  font-weight: bold;
  letter-spacing: 0.25em;
  text-align: center;
}

.top_message_section .message_head03 strong{
  font-size: 28px;
}

.top_message_section .message_border{
  margin-top: 16px;
  border-top: 2px dashed #000;

}

.top_message_section .message_text{
  margin-top: 12px;
  font-weight: bold;
  letter-spacing: 0.25em;
  line-height: 1.5;
}

.top_message_section .message_mv{
  height:441px;
  background-image: url('../img/top/message_mv.jpg');
}



/*
------------------------------------
お問い合わせ
------------------------------------
*/


body.contact_body{
  
}

main.contact_main{

}

.contact_section{
  position: relative;
}

.contact_mv_section{
  padding-top: 210px;
  
}

.contact_mv_section .page_title{
  display: flex;
  align-items: center;
}

.contact_mv_section .page_title .en_title{
  font-weight: bold;
  font-size: 80px;
  letter-spacing: -0.06em;
  line-height: 1;
}

.contact_mv_section .page_title .ja_title{
  margin-left: 40px;
  width:187px;
}

.contact_mv_section .page_title .ja_title img{
  width:100%;
}

.contact_mv_section .contact_text{
  margin-top: 40px;
  letter-spacing: 0.05em;
  line-height: 1.7;

}

.contact_section01{
  padding-top: 56px;
  padding-bottom: 200px;
}

.contact_section01 .form_area{
  padding-top: 72px;
  border-top:1px solid #000000;
}


.contact_section01 .form_line{
  display: flex;
  align-items: flex-start;
}

.contact_section01 .form_line + .form_line{
  margin-top: 56px;
}


.contact_section01 .form_line .form_title{
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-right: 60px;
  width:600px;
  flex-shrink: 0;
  font-weight: bold;
  font-size: 22px;
  letter-spacing: 0.06em;
  line-height: 1.2;
}

.contact_section01 .form_line .form_title::after{
  content:'必須';
  display: flex;
  justify-content: center;
  align-items: center;
  width: 60px;
  height: 30px;
  background-color: #bfc1bf;
  font-weight: bold;
  font-size: 16px;
  letter-spacing: 0.08em;
  line-height: 1;
  color: #fff;
}

.contact_section01 .form_line .form_title.free::after{
  content:none;
}

.contact_section01 .form_line .form_right{
  width: 100%;
}


.contact_section01 .form_line .wpcf7-checkbox{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-bottom: 32px;
}

.contact_section01 .form_line .wpcf7-checkbox .wpcf7-list-item{
  margin-left: 0;
  cursor: pointer;
  font-weight: bold;
  font-size: 20px;
  letter-spacing: 0.08em;
}

.contact_section01 .form_line .wpcf7-checkbox .wpcf7-list-item label{
  display: flex;
  align-items: center;
  cursor: pointer;
}

.contact_section01 .form_line .wpcf7-checkbox .wpcf7-list-item input{
  width:24px;
  height:24px;
  margin-right: 12px;
}

.contact_section01 .form_line .wpcf7-checkbox .wpcf7-list-item + .wpcf7-list-item{
  margin-top: 24px;
}
.contact_section01 .form_line .input_frame{
  margin-top: -14px;
}

.contact_section01 .form_line .input_frame input{
  display: block;
  width: 100%;
  height:60px;
  padding:0 16px;
  font-weight: bold;
  font-size: 22px;
  letter-spacing: 0.06em;
  border:1px solid #000000;
}

.contact_section01 .form_line .input_frame input::placeholder{
  color: #9d9c9c;
}

.contact_section01 .form_line .select_frame{
  position: relative;
  margin-top: -14px;
}

.contact_section01 .form_line .select_frame::after{
  content:'';
  pointer-events: none;
  width:0;
  height:0;
  border-style:solid;
  border-width: 14px 8px 0 8px;
  border-color: #000 transparent transparent transparent;
  position: absolute;
  top:0;
  bottom:0;
  right:24px;
  margin:auto;
}

.contact_section01 .form_line .select_frame select{
  display: block;
  width: 100%;
  height:60px;
  padding:0 60px 0 16px;
  font-weight: bold;
  font-size: 22px;
  letter-spacing: 0.06em;
  border:1px solid #000000;
  cursor: pointer;
}

.contact_section01 .form_line .text_frame textarea{
  display: block;
  width: 100%;
  height:240px;
  padding:16px;
  font-weight: bold;
  font-size: 18px;
  letter-spacing: 0.06em;
  border:1px solid #000000;
}

.contact_section01 .submit_area{
  margin-top: 72px;
  display: flex;
  justify-content: center;
}

.contact_section01 .submit_area input{
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  width: 137px;
  height: 65px;
  border-radius: 5px;
  background-color: #000;
  border:1px solid #000;
  font-weight: bold;
  font-size: 20px;
  letter-spacing: 0.06em;
  line-height:1;
  color: #fff;
  transition-duration: 0.4s;
}

@media(any-hover:hover){
  .contact_section01 .submit_area input:hover{
    opacity: 0.5;
  }
}
