@import url('https://fonts.googleapis.com/css2?family=Abel&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Keania+One&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: contain;
  background-position: center;
  background-repeat: no-repeat;
  box-sizing: border-box;
}

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

input,
select,
textarea{
  font-family: "Inter", sans-serif;
  color:#000;
  -webkit-font-smoothing: antialiased;
  -ms-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  font-feature-settings: 'palt';
  touch-action: manipulation;
  resize: none;
  display: block;
  border: none;
}

button{
  border: none;
  background: none;
  border-radius: 0;
  cursor: pointer;
}

body{
  color: #fff;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  font-family: "Abel", sans-serif;
  -webkit-font-smoothing: antialiased;
  -ms-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  position: relative;
}

body::before{
  content:'';
  width:100%;
  height:100%;
  position: fixed;
  top:0;
  left:0;
  z-index: -10;
  background-color:#19276C;
}

img{
  display: block;
  object-position: center;
  width: 100%;
}

#body_wrap{
  overflow: hidden;
}


a{
  color: #fff;
}

.fax a{
  pointer-events: none;
}

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

/*
------------------------------------
共通パーツ
------------------------------------
*/
.hide{
  display: none!important;
}

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

.sec_title_set{
  position: relative;
  font-family: "Inter", sans-serif;
  font-weight: 700;
}

.sec_title_set .en_title{
  position: absolute;
  left:-100px;
  top:-54px;
  font-size: 100px;
  line-height: 1;
  letter-spacing:0;
  opacity: 0.3;
}

.sec_title_set .ja_title{
  font-size: 50px;
  line-height: 1.2;
  letter-spacing: 0.04em;
  position: relative;
  z-index: 2;
}

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

.common_hover_opa{
  transition: 0.4s;
}


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


/*
------------------------------------
ヘッダー
------------------------------------
*/

header{
  position: fixed;
  width:100%;
  top:40px;
  left:0;
  z-index: 20;
  pointer-events: none;
  font-family: "Inter", sans-serif;
}

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_frame{
  box-shadow: 0px 4px 4px 0px #00000080;
  position: relative;
  width: fit-content;
  pointer-events: auto;
}

header .header_flex{
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-left:16px;
  padding-right: 16px;
  background-color: #1E1985;
  border-radius: 5px 0 0 5px; 
  height:60px;
  position: relative;
  z-index: 25;
}

header .header_logo{
  display: block;
  width:141px;
}

header .header_right{
  margin-left: 36px;
}

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

header .slash{
  margin:0 18px;
  width:1px;
  height:22px;
  background-color: #fff;
  transform: rotateZ(10deg);
}

header .parent_link{
  font-size: 14px;
  font-weight: 700;
  text-shadow: 1px 2px 2px  #000000;

}

header .header_contact{
  position: absolute;
  height:100%;
  width:215px;
  top:0;
  left:calc(100% - 5px);
  /* background-color: #315AE8; */

}

header .header_contact_inner{
  position: relative;
  width: 100%;
  height:100%;
}

header .header_contact_inner::before{
  content:'';
  width:104px;
  height:102px;
  background-image: url('../img/common/header_contact_icon.png');
  position: absolute;
  left:12px;
  top:-24px;
  z-index: 25;
}

header .header_contact_bg{
  position: relative;
  width: 100%;
  height:100%;
  display: flex;
  align-items: center;
}

header .header_contact_bg::before{
  content:'';
  width:calc(100% + 24px);
  height:100%;
  background-color: #315AE8;
  position: absolute;
  top:0;
  right:0;
  z-index: 22;
  box-shadow: 0px 4px 4px 0px #00000080;
  border-radius: 5px;
  transform: skewX(-13deg);
}

header .header_contact_text{
  margin-left: 124px;
  position: relative;
  z-index: 25;
  width: 56px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  text-shadow: 1px 2px 2px  #000000;
  white-space: nowrap;
}
/*
------------------------------------
フッター
------------------------------------
*/

footer{
  position: relative;
  padding:188px 0 20px;
  background-color: #04A73E;
  font-family: "Inter", sans-serif;
}

footer::before,
footer::after{
  content:'';
  position: absolute;
  z-index: 3;
}

footer::before{
  width:232px;
  height:289px;
  background-image: url('../img/common/footer_ila01.png');
  right: calc(50% + 96px);
  top: -180px;
}
footer::after{
  width:238px;
  height:355px;
  background-image: url('../img/common/footer_ila02.png');
  left: calc(50% + 114px);
  top: -230px;
}

footer a{
  transition-duration: 0.4s;
}

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

footer .contact_button{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 405px;
  height: 68px;
  border-radius:80px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.02em;
  position: absolute;
  top:-34px;
  left:0;
  right:0;
  margin:auto;
  z-index: 5;
  box-shadow: 2px 5px 4px 1px #00000040;
  background-color: #DA141C;
  border: 2px solid #DA141C;
  transition-duration: 0.4s;
}

footer .contact_button::before{
  content:'';
  width: 25px;
  height: 20px;
  flex-shrink: 0;
  background-image:url('../img/common/icon_mail_white.svg');
  margin-right: 6px;
  transition-duration: 0.4s;
}


@media(any-hover:hover){
  footer .contact_button:hover{
    background-color: #fff;
    color: #DA141C;
    opacity: 1;
  }
  footer .contact_button:hover::before{
    background-image:url('../img/common/icon_mail_red.svg');
  }
}

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

footer .footer_flex{
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1000px;
  margin:0 auto;
}

footer .footer_logo{
  display: block;
  width:163px;
}

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

footer .parent_item{
  margin-left: 20px;
}

footer .parent_link{
  font-size: 14px;
  font-weight: 700;
}

footer .footer_copy{
  padding-top: 24px;
  border-top: 1px solid #fff;
  margin-top: 36px;
  font-size: 12px;
  font-weight: 700;
  text-align: center;
  
}
/*
------------------------------------
トップ
------------------------------------
*/

body.top_body{
  
}
main.top_main{

}

.top_section{
  position: relative;
}

.top_mv_section{
  
}
.top_mv_section .mv_area{
  /* max-width: 1200px; */
  max-width: 1920px;
  margin:0 auto;
}

.top_mv_section .mv_text{
  font-family: "Inter", sans-serif;
  
  font-size: 14px;
  line-height: 1.4;
  max-width: 1200px;
  margin: 8px auto 0;
}

.top_about_section{
  padding-top: 110px;
  position: relative;
}

.top_about_section::before{
  content:'';
  width: 561px;
  height: 243px;
  background-image: url('../img/top/top_about_bg.png');
  position: absolute;
  z-index: -1;
  top:40px;
  left:calc(50% + 64px);

}

.top_about_section .about_msg{
  margin-top: 24px;
  max-width: 756px;

}

.top_about_section .about_list{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-top: 56px;
}

.top_about_section .about_block{
  position: relative;
  width: 280px;
  padding-left: 50px;
}

.top_about_section .about_num{
  position: absolute;
  top:0;
  left:8px;
  font-family: "Keania One", sans-serif;
  font-size: 50px;
  font-weight: 400;
  line-height:1.2;
  -webkit-text-stroke: 1px #fff;
  text-stroke: 1px #fff;
  color:#19276C;
}

.top_about_section .about_slash{
  position: absolute;
  left:110px;
  top:40px;
  width:82px;
  height:1px;
  background-color: #fff;
  transform: rotateZ(135deg);
  transform-origin: left top;
}

.top_about_section .about_icon{
  display: flex;
  min-height:200px;
  align-items: flex-end;
}

.top_about_section .about_icon01{
  width:166px;
  margin-left: 72px;
}
.top_about_section .about_icon02{
  width:113px;
  margin-left: 100px;
}
.top_about_section .about_icon03{
  width:134px;
  margin-left: 96px;
}

.top_about_section .about_text{
  margin-top: 24px;
  white-space: nowrap;
}

.top_service_section{
  padding-top: 160px;
}

.top_service_section .service_text{
  margin-top: 40px;
  line-height: 1.5;
  letter-spacing: 0.05em;

}


.top_service_section .youtube_frame{
  position: relative;
  margin: 56px auto 0;
  max-width: 800px;
  aspect-ratio: 1/0.6325;
}

.top_service_section .youtube_frame .youtube_thumb{
  position: absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  transition-duration: 0.4s;
  
}

.top_service_section .youtube_frame .youtube_play{
  width:175px;
  height:175px;
  border-radius: 50%;
  background-image: url('../img/common/icon_play_white.svg');
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  cursor: pointer;
}


.top_service_section .youtube_frame .youtube_thumb.vanish{
  opacity: 0;
  pointer-events: none;
}


.top_service_section .youtube_frame .thumb_pic{
  width: 100%;
  height:100%;
  object-fit: cover;
}

.top_service_section .youtube_frame iframe{
  width: 100%;
  height:100%;
  display: block;
}

.top_feature_section{
  padding-top: 160px;
}

.top_feature_section .feature_list{
  margin-top: 88px;
}

.top_feature_section .feature_block{
  display: flex;
  justify-content: flex-start;
}

.top_feature_section .feature_block .feature_img_area{
  display: flex;
  justify-content: center;
  position: relative;
  width:450px;
  flex-shrink: 0;
}

.top_feature_section .feature_block .feature_img01{
  width:295px;
  margin-left: 10px;
  margin-top: 24px;
}
.top_feature_section .feature_block .feature_img02{
  width:277px;
  margin-top: 60px;
  margin-left: 24px;
}
.top_feature_section .feature_block .feature_img03{
  width:280px;
  margin-top: 10px;
}

.top_feature_section .feature_block .feature_num{
  position: absolute;
  z-index: 2;
}

.top_feature_section .feature_block .feature_num01{
  width:92px;
  left:-10px;
  top:-50px;
}
.top_feature_section .feature_block .feature_num02{
  width:106px;
  left:50px;
  top:-60px;
}
.top_feature_section .feature_block .feature_num03{
  width:109px;
  left:-10px;
  top:-70px;
}


.top_feature_section .feature_block .feature_head{
  font-family: "Inter", sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
  padding-bottom: 32px;
  position: relative;
}

.top_feature_section .feature_block .feature_head::after{
  content:'';
  width: 50px;
  height: 2px;
  position: absolute;
  bottom: 0;
  left: 0;
  background-color: #fff;
}

.top_feature_section .feature_block .feature_text{
  margin-top: 24px;
  line-height: 1.9;
}

.top_feature_section .feature_block .feature_text span{
  background: linear-gradient(to top, #DA141C -10%, #DA141C 60%, transparent 60%, transparent 100%);
}

.top_feature_section .feature_block02{
  flex-direction: row-reverse;
  margin-top: 96px;
}
.top_feature_section .feature_block03{
  margin-top: 120px;
}


.top_place_section{
  padding-top: 160px;
}

.top_place_section .place_msg{
  margin-top: 24px;
}

.top_place_section .place_list{
  padding:0 20px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-top: 100px;
}

.top_place_section .place_block{
  width:284px;
}

.top_place_section .place_block .place_num{
  display: flex;
  align-items: flex-start;
  justify-content: center;
  font-family: "Inter", sans-serif;
  font-size: 60px;
  font-weight: 700;
  line-height: 1;
  letter-spacing:0;
  min-height:70px;
}

.top_place_section .place_block .place_num img{
  width:11px;
  flex-shrink: 0;
  margin-right: 8px;
  margin-top: 8px;
}

.top_place_section .place_block .place_title{
  font-family: "Inter", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
  display: flex;
  justify-content: center;
}

.top_place_section .place_block .place_img{
  margin-top: 40px;
  aspect-ratio: 1/1.148;
}

.top_place_section .place_block .place_img img{
  height:100%;
  object-fit: cover;
}

.top_place_section .place_block .place_text{
  margin-top: 16px;
  font-weight: 400;
  line-height: 1.9;
}

.top_plan_section{
  padding-top: 160px;
}

.top_plan_section .plan_msg{
  margin-top: 24px;
}

.top_plan_section .plan_flex{
  padding:0 20px;
  display: flex;
  justify-content: space-between;
  margin-top: 56px;
}

.top_plan_section .plan_block{
  width:450px;
  border:1px solid #fff;
  border-radius: 10px;
  overflow: hidden;
  font-family: "Inter", sans-serif;
}

.top_plan_section .plan_block .plan_head{
  min-height:115px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #fff;
  padding:12px;
  
  font-size: 26px;
  font-weight: 700;
  line-height: 1.2;
  color:#000;
  
}

.top_plan_section .plan_block .plan_body{
  padding:0 32px;
  padding-bottom: 8px;
}

.top_plan_section .price_area{
  padding-top: 48px;
  padding-bottom: 56px;
  border-bottom:2px solid #E6E6E6;
}

.top_plan_section .price_head{
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0;
  text-align: center;
}

.top_plan_section .price_num{
  text-align: center;
  font-size: 40px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.2;
  margin-top: 14px;
}

.top_plan_section .price_num .mark{
  font-size: 30px;
}

.top_plan_section .price_num .yen{
  font-size: 20px;
  position: relative;
  margin-left: 4px;
}

.top_plan_section .price_num .yen_text{
  white-space: nowrap;
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0;
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);

}

.top_plan_section .contact_button{
  width: fit-content;
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 196px;
  height: 54px;
  border-radius: 4px;
  padding:0 8px;
  background-color: #DA141C;
  margin:24px auto 0;
}

.top_plan_section .plan_list{

}

.top_plan_section .plan_line{
  padding:24px 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
}

.top_plan_section .plan_line + .plan_line{
  border-top: 1px dashed #E6E6E6;
}

.top_plan_section .plan_line p{
  text-align: center;
}

.top_plan_section .plan_line .big{
  font-size: 22px;
}

.top_plan_section .plan_line p + p{
  margin-top: 10px;
}

.top_plan_section .plan_line ul{
  font-size: 22px;
  width: fit-content;
  margin:10px auto 0;
  
}

.top_plan_section .plan_line li{
  padding-left: 20px;
  position: relative;
}

.top_plan_section .plan_line li::before{
  content:'・';
  line-height: 1.5;
  font-size: 22px;
  position: absolute;
  left:0;
  top:0;
}

.top_plan_section .plan_line li + li{
  margin-top: 4px;
  
}

.top_intro_section{
  padding-top: 160px;
}

.top_intro_section .intro_msg{
  margin-top: 24px;
}

.top_intro_section .intro_list{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  padding:0 20px;
  margin-top: 56px;
}

.top_intro_section .intro_block{
  width:455px;
}

.top_intro_section .intro_head{
  font-family: "Inter", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
  padding-left: 16px;
  border-left:3px solid #fff;
}

.top_intro_section .intro_thumb{
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #fff;
  aspect-ratio: 1/0.61;
  margin-top: 16px;
}

.top_intro_section .intro_icon01{
  width:295px;
}
.top_intro_section .intro_icon02{
  width:341px;
}

.top_flow_section{
  padding-top: 160px;
}

.top_flow_section .flow_frame{
  display: flex;
  justify-content: flex-end;
  padding-right: 48px;
  margin-top: 64px;
}

.top_flow_section .flow_block{
  display: flex;
  align-items: flex-start;
  padding-bottom: 32px;
  min-height: 200px;
  position: relative;
}
.top_flow_section .flow_block::before{
  content:'';
  width:1px;
  height:100%;
  background-color:#D9D9D9;
  position: absolute;
  top:56px;
  left:56px;
}

.top_flow_section .flow_block:last-child{
  padding-bottom: 0;
  min-height: auto;
}
.top_flow_section .flow_block:last-child::before{
  content:none;
}

.top_flow_section .flow_left{
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  width: 113px;
  height: 113px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-right: 28px;
  border:1px solid #fff;
  background-color:#19276C;
  position: relative;
  z-index: 1;
  font-family: "Inter", sans-serif;
  font-weight: 700;
  line-height: 1;
}

.top_flow_section .flow_left .step_num_text{
  font-size: 14px;  
}

.top_flow_section .flow_left .step_num{
  font-size: 30px;
  margin-top: 6px;
}

.top_flow_section .flow_right{
  padding-top: 24px;
} 

.top_flow_section .flow_head{
  font-family: "Inter", sans-serif;
  font-size: 20px;
  font-weight: 700;
}

.top_flow_section .flow_text{
  margin-top: 8px;
}

.top_faq_section{
  padding-top: 160px;
  padding-bottom: 320px;
}

.top_faq_section .tab_list{
  margin-top: 64px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: flex-start;
  padding:0 20px;
}

.top_faq_section .tab{
  cursor: pointer;
  padding-bottom: 8px;
  font-family: "Inter", sans-serif;
  font-size: 20px;
  font-weight: 700;
  opacity: 0.5;
  position: relative;
}

.top_faq_section .tab::after{
  content:'';
  width:100%;
  height:4px;
  background-color: #E6E6E6;
  position: absolute;
  bottom:0;
  left:0;
  opacity: 0;
}


.top_faq_section .tab.active{
  opacity: 1;
}
.top_faq_section .tab.active::after{
  opacity: 1;
}

.top_faq_section .faq_frame{
  margin-top: 56px;
}

.top_faq_section .faq_list{
  font-family: "Inter", sans-serif;
}

.top_faq_section .faq_block + .faq_block{
  margin-top: 28px;
}

.top_faq_section .faq_question{
  cursor: pointer;
  background-color: #fff;
  border-radius: 8px;
  padding:24px 64px 24px 120px;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color:#000;
  position: relative;
}

.top_faq_section .faq_question::before{
  content:'Q.';
  font-family: "Inter", sans-serif;
  font-size: 35px;
  font-weight: 700;
  line-height: 1;
  letter-spacing:0;
  position: absolute;
  left:60px;
  top:20px;

}

.top_faq_section .faq_question::after{
  content:'';
  width:24px;
  height:12px;
  background-image: url('../img/common/icon_angle_bottom_black.svg');
  position: absolute;
  right:24px;
  top:36px;
}

.top_faq_section .faq_question.active::after{
  transform: rotateZ(180deg);
}

.top_faq_section .faq_answer{
  padding:28px 32px 0 120px;
  position: relative;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.02em;
  display: none;
}

.top_faq_section .faq_answer .under{
  text-decoration: underline;
}

.top_faq_section .faq_answer::before{
  content:'A.';
  font-family: "Inter", sans-serif;
  font-size: 35px;
  font-weight: 700;
  line-height: 1;
  letter-spacing:0;
  position: absolute;
  left:60px;
  top:30px;

}

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

body.contact_body{
  
}

body.contact_body footer .contact_button{
  display: none;
}

main.contact_main{

}

.contact_section{
  position: relative;
  padding-top: 226px;
  /* padding-bottom: 148px; */
  padding-bottom: 260px;
}

.contact_section .p01{
  margin-top: 20px;
  line-height: 1.5;
}

.contact_section .form_area{
  margin-top: 72px;
  font-family: "Inter", sans-serif;
}

.contact_section .form_head{
  display: flex;
  align-items: center;
  padding:16px 90px;
  background-color: #fff;
  color: #000000;
  font-size: 14px;
  
}

.contact_section .form_head span{
  color: #FF0505;
  font-weight: bold;
}

.contact_section .form_box{
  padding:56px 64px 0 0;
} 

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

.contact_section .form_line + .form_line{
  margin-top: 30px;
}

.contact_section .form_left{
  flex-shrink: 0;
  width:190px;
  margin-right: 50px;
}

.contact_section .form_label{
  text-align: right;
  padding-right: 28px;
  line-height: 1;
  position: relative;
}


.contact_section .form_label::after{
  content:'※';
  font-family: "Inter", sans-serif;
  line-height: 1;
  color:#FC0606;
  position: absolute;
  right:0;
  top:0;
}

.contact_section .form_label.free::after{
  content:none;
}

.contact_section .form_right{
  width:100%;
}

.contact_section .radio_area{
  margin-top: -4px;
}

.contact_section .radio_area .wpcf7-list-item {
  display: inline-block;
  margin: 0;
}
.contact_section .radio_area .wpcf7-radio{
  display: flex;
  align-items: center;
  gap:16px 40px;
}

.contact_section .radio_area label{
  display: flex;
  align-items: center;
  cursor: pointer;
}

.contact_section .radio_area label input{
  margin-right: 8px;
}

.contact_section .select_frame{
  max-width: 330px;
  position: relative;
  margin-top: -8px;
}

.contact_section .select_frame select{
  width: 100%;
  
  height: 35px;
  padding:0 16px;
  background-color: #fff;
  width: 100%;
  cursor: pointer;
}

.contact_section .input_frame{
  margin-top: -8px;
}

.contact_section .input_frame.half{
  max-width: 330px;
}

.contact_section .input_frame input{
  height: 35px;
  padding:0 16px;
  background-color: #fff;
  width: 100%;
}

.contact_section .input_frame textarea{
  height: 200px;
  padding:16px;
  background-color: #fff;
  width: 100%;
  line-height: 1.5;
}

.contact_section .submit{
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  width: 92px;
  height: 33px;
  background-color:#315AE8;
  font-size: 14px;
  color:#fff;

}