@charset "UTF-8";
html{
 overflow:auto;
 /* scroll-behavior: smooth; */
}

body {
  font-family: 'Noto Sans JP', sans-serif;
  color: #333;
  overflow-x:hidden;
  margin: 0 auto;
  background: linear-gradient(#f5ffe9, #e1f9ff, #f5ffe9, #e1f9ff, #f5ffe9, #e1f9ff, #f5ffe9, #e1f9ff);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
}

a{
  color: #415A9E;
}

p{
  font-size: 13px;
}

a:hover{
  text-decoration: none;
}

a:visited{
  color: #415A9E;
}

img{
  width: 100%;
}

.img_link{
  margin-bottom: 14px;
}

.img_link:hover{
  opacity: 0.8;
  transition-duration: 0.4s;
}

.pc{
  display: none !important;
}
.sp{
  display: block !important;
}

h2{
  display: flex;
  justify-content: center;
  margin-top: 40px;
}

/****注意文言*****/

.attention{
  font-size: 12px;
  text-indent: -12px;
  margin-left: 12px;
  text-align: justify;
  margin-bottom: 4px;
  list-style: none;
}

/* 固定ボタン */

.btn_floting {
  display: block;
  width: 300px;
  line-height: 60px;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  background: linear-gradient(#00b7a9, #00a8c4);
  box-shadow: 3px 3px 6px 0px rgba(0, 0, 0, .15);
  border-radius: 50px;
  color: #fbfbfb;
  text-align: center;
  overflow: hidden;
}

.btn_floting:hover{
  opacity: 0.9;
}

.btn_floting:visited{
  color: #fff
}

.btn_floting{
  text-align: center;
  height: 60px;
}

#btn-fixed-wrap {
  opacity: 0; /* 初期は透明 */
  pointer-events: none; /* 非表示時はクリック不可 */
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  margin: 0 auto;
  z-index: 2000;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  padding: 10px;
  transition: opacity 0.5s ease; /* フェードインのアニメーション */
  width: 430px;
}

#btn-fixed-wrap.active {
  opacity: 1; /* 表示 */
  pointer-events: auto; /* クリック可能 */
}

.btn-fixed {
  display: flex;
  justify-content: space-around;
  align-items: center;
  }


/* 固定ボタンここまで */


.fv_img{
  width: 100%;
  margin-bottom: 14px;
}

.btn_box{
  position: absolute;
  left: 50%;
  transform: translate(-50%, 28%);
  margin: 0;
}

.btn {
  display: block;
  position: relative;
  width: 300px;
  line-height: 60px;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  background: linear-gradient(#ff8d2f, #ff5f00);
  box-shadow: 3px 3px 6px 0px rgba(0, 0, 0, .15);
  border-radius: 50px;
  color: #fbfbfb;
  text-align: center;
  overflow: hidden;
}

.btn:hover{
  transition-duration: 0.4s;
  background: linear-gradient(#ff9136, #ff7424);
}

.btn:visited{
  color: #fff
}

.btn_top_area{
  background-color: #ddf8f4;
  text-align: center;
  height: 100px;
}

.fade {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.6s, transform 1s;
}

.fade.active {
	opacity: 1;
	transform: translateY(0px);
}

#about{
  margin: 20px;
  margin-top: 40px;
  padding: 30px;
  background-color: #f3feff;
  text-align: center;
  position: relative;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  z-index: 1;
}

#about p{
  text-align: justify;
  text-align: center;
}

#about::before {
  content: "";
  position: absolute;
  top: 10px;
  left: 10px;
  right: 10px;
  bottom: 10px;
  border: 1px solid #9ad8db;
  pointer-events: none; /* 内側クリックを邪魔しない */
}

#about::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -22px;
  transform: translateX(-50%);
  width: 12%;
  height: 12%;
  background: url("../img/soushoku.png") no-repeat center top / contain;
  z-index: -1;
  pointer-events: none;
}

#recommend{
  display: flex;
  flex-direction: column;
  gap: 30px;
  margin-top: 40px;
}

#recommend p{
  text-align: center;
}

#recommend h2{
  position: relative;
}

#recommend h2::before {
  content: "Reccomend";
  font-family: "elite", sans-serif;
  font-weight: 700;
  font-style: normal;
  font-size: 32px;
  color: rgba(137, 211, 211, .6);
  position: absolute;
  top: -60px; 
  left: 0;
  z-index: 1;
  pointer-events: none;
}

.recommend_box_ttl_box{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-bottom: 1px solid #66b9cc;
  width: 100%;
  padding-bottom: 16px;
}

.recommend_box_ttl{
  font-size: 18px;
  line-height: 24px;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 900;
  font-style: normal;
  color: #008399;
  position: relative;
}

.recommend_flag{
  display: flex;
  align-items: center;
  gap: 4px;
}

.recommend_flag_ttl{
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 900;
  font-style: normal;
  font-size: 12px;
  background-color: #008399;
  padding: 4px 8px;
  color: #fff;
  position: relative;
  margin-right: 8px;
}

.recommend_flag_ttl::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -6px;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-top: 3px solid transparent;
  border-bottom: 3px solid transparent;
  border-left: 8px solid #008399;
}

.recommend_icon{
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 900;
  font-style: normal;
  color: #008399;
  padding: 4px 10px;
  border: 1px solid #008399;
  background-color: #fff;
  border-radius: 30px;
  font-size: 12px;
}

.recommend_icon span{
  font-size: 11px;
}

.recommend_box_l{
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  background-color: #f3feff;
  padding: 20px;
  margin-right: 30px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

.recommend_box_r{
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  background-color: #f3feff;
  padding: 20px;
  margin-left: 30px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}



#reason{
  display: flex;
  flex-direction: column;
  gap: 30px;
  margin-top: 80px;
}

#reason h2{
  position: relative;
}

#reason h2::before {
  content: "Reason";
  font-family: "elite", sans-serif;
  font-weight: 700;
  font-style: normal;
  font-size: 32px;
  color: rgba(137, 211, 211, .6);
  position: absolute;
  top: -60px; 
  left: 0;
  z-index: 1;
  pointer-events: none;
}

.anker_group{
  display: flex;
  align-items: center;
  justify-content: space-evenly;
  margin: 14px;
  gap: 10px;
  flex-wrap: wrap;
  flex-direction: row;
}

.anker{
  width: 40%;
  display: flex;
  align-items: center;
  background-color: #f3feff;
  padding: 14px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  gap: 10px;
  justify-content: space-around;
  text-decoration: none;
}

.anker p{
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 900;
  font-style: normal;
  color: #008399;
  font-size: 15px;
  line-height: 18px;
}

.reason_box{
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #f3feff;
  padding: 20px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  gap:20px;
  justify-content: space-around; 
  margin: 14px;
  text-align: justify;
  position: relative;
  z-index: 1;
  align-items: flex-start;
  padding-top: 30px;
}

.reason_box_img{
  margin-top: -80px;
  display: block; 
  position: relative;
  top: 66px;
  transform: translateX(-50%);
  z-index: 2;
}


#how{
  display: flex;
  flex-direction: column;
  margin-top: 80px;
}

#how h2{
  position: relative;
}

#how h2::before {
  content: "Switching";
  font-family: "elite", sans-serif;
  font-weight: 700;
  font-style: normal;
  font-size: 32px;
  color: rgba(137, 211, 211, .6);
  position: absolute;
  top: -60px; 
  left: 0;
  z-index: 1;
  pointer-events: none;
}

.how_box{
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #f3feff;
  padding: 30px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  gap:20px;
  justify-content: space-around; 
  margin: 24px 14px;
  text-align: justify;
  position: relative;
  z-index: 1;
  padding-top: 30px;
}

.how_box_group {
  position: relative;
  margin-bottom: 30px;
}

.how_box_group::after {
  content: "";
  position: absolute;
  bottom: -20px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-top: 24px solid #6ad3d1;
  z-index: 2;
}

h4{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  font-size: 19px;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 900;
  font-style: normal;
  color: #0088a8;
  line-height: 24px;
}

.how_img{
  box-shadow: 0 0 14px rgba(0, 0, 0, 0.2);
}

.flow_box{
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #f3feff;
  padding: 30px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  gap:20px;
  justify-content: space-around; 
  margin: 14px;
  text-align: justify;
  position: relative;
  z-index: 1;
  padding-top: 30px;
}

.flow_box_ttl{
  border-bottom: 1px solid #66b9cc;
  padding-bottom: 18px;
  width: 100%;
}

.flow_box_ttl2 {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start; 
  text-align: left; 
  gap: 16px; 
}

.flow_box_ttl2 p{
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 17px;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
  color: #0088a8;
  line-height: 24px;
}

.flow_box_accent{
  position: relative;
  display: inline-block;
  font-family: gamay, sans-serif;
  font-weight: 500;
  background-color: #ff872e;
  padding: 0px 8px 5px 8px;
  color: #fff;
  font-size: 14px;
}

.flow_box_accent::after {
  content: "";
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 6px solid #ff872e;
}

.flow_box_accent span{
  font-size: 20px;
}

.schedule_img{
  box-shadow: 0 0 14px rgba(0, 0, 0, 0.1);
}

/* モーダル */
.modal {
  display: none; /* 最初は非表示 */
  position: fixed;
  z-index: 9999;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0,0,0,0.4);
  align-items: center;
  justify-content: center;
}

.modal-content {
  max-width: 95%;
  max-height: 95%;
  margin: auto;
  display: block;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
}


/* 全体 */
.qa_box {
  border-radius: 14px;
  overflow: hidden;
  margin: 20px 14px;
}

/* 質問部分 */
.qa_question {
  background-color: #35a4b7;
  color: #fff;
  padding: 20px;
  border-radius: 8px 8px 0 0;
  display: flex;
  align-items: center;
  position: relative;
  cursor: pointer;
  transition: border-radius 0.3s;
}

/* 質問テキスト */
.qa_text {
  flex: 1;
  font-weight: 900;
  font-size: 16px;
  line-height: 1.5;
  margin-left: 10px;
  margin-right: 14px;
  text-align: justify;
  font-family: "Zen Kaku Gothic New", sans-serif;
}

/* ▼矢印 */
.qa_toggle {
  width: 10px;
  height: 10px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg);
  transition: transform 0.3s;
}

/* 回答部分 */
.qa_answer {
  display: none;
  background-color: #fff;
  color: #333;
  padding: 20px;
  gap: 10px;
  align-items: flex-start;
  border-radius: 0 0 16px 16px;
  z-index: 0;
  border: 1px solid #35a4b7;
}

.qa_answer_icon {
  font-weight: 700;
  font-size: 24px;
  color: #4fa2ab;
}

.qa_answer p{
  text-align: justify;
}

/* 開いたときの状態 */
.qa_box.open .qa_answer {
  display: flex;
  align-items: center;
}

.qa_box.open .qa_question {
  border-radius: 8px 8px 0 0;
}

.qa_box.open .qa_toggle {
  transform: rotate(225deg);
}


/* マーカーアニメ */

.reason_ttl span::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: currentColor;
  transform: scaleX(0); /* 初期状態では線を隠す */
  transform-origin: left center;
  transition: transform 0.5s ease-in-out; /* 線を引くアニメーション */
}
/* 線が右から左に引かれるフェードアウトアニメーション */
.reason_ttl span.fade-out::after {
  transform-origin: right center;
  transform: scaleX(0); /* フェードアウト時に縮小 */
  transition: transform 0.3s ease-in-out 0.3s; /* 遅延を追加 (線を引いた後) */
}
/* アクティブ時 (線を左から右に引く) */
.reason_ttl span.active::after {
  transform: scaleX(1); /* 線を引く */
}


/* フェードインアニメーション */
.box.fade {
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.6s ease-in-out;
}

.box.fade.active {
  opacity: 1;
  transform: translateY(0);
}

.reason_img{
  margin-bottom: 20px;
}

#others{
  padding: 24px;
  text-align: center;
  background-color: #e7f3f5;
}

.others_text_link{
  font-size: 14px;
  text-align: right;
}

/****footer*****/

footer ul li{
  color: #6F6F6F;
  padding-bottom: 3px;
  text-indent: -1.3rem;
  margin-left: 1.3rem;
  }
  
  
  a img.btn:hover{
  opacity: 0.7;
  transition-duration: 0.4s;
  }
  
  .contents{
  margin: 60px auto;
  }
  
  
  footer{
  background-color: #F1F1F1;
  padding-bottom: 80px;
  width: 100%;
  }
  
  footer .inner{
    padding: 30px 0;
    margin: 0 auto 10px;
    width: 90%;
    max-width: 1000px;
    color: #808080;
    font-size: 12px;
  }
  
  footer .inner ul li{
   color: #808080;
   font-weight: 400;
  }
  
  footer h4{
  border-bottom: 1px solid #808080;
  display: block;
  margin-bottom: 10px;
  font-size: 14px;
  padding-bottom: 5px;
  font-weight: 500;
  color: #808080;
  }
  
  footer p span{
  font-weight: 600;
  color: #141E50;
  }

  .voice{
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 6px;
  }

  .hito_box{
    display: flex;
  }

  .hito{
    width: 80px;
    height: 80px;
  }

  .fukisashi_midashi{
    font-size: 11px;
    margin-bottom: 4px;
    text-align: left;
    margin-left: 20px;
    color: #4f4f4f;
    font-weight: 500;
  }

  .accent{
    font-family: "Gamay-wide", sans-serif;
    font-weight: 200;
    font-size: 14px;
    color: #66b9cc;
    margin-bottom: 10px;
    letter-spacing: 2px;
  }

  .fukisashi_text{
    font-weight: 400;
  }

  /* 吹き出し */

  .fukidashi {
    position: relative;
    display: inline-block;
    margin-left: 14px;
    padding: 10px 12px;
    border-radius: 10px;
    background-color: #e1f0f9;
    text-align: left;
    font-size: 12px;
    line-height: 1.5;
    color: #333333;
    text-align: center;
  }
  
  .fukidashi::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    border-style: solid;
    border-width: 5.5px 14px 5.5px 0;
    border-color: transparent #e1f0f9 transparent transparent;
    translate: -100% -50%;
  }
  
  .fukidashi::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    border-style: solid;
    border-width: 4.4px 11.3px 4.4px 0;
    border-color: transparent #e1f0f9 transparent transparent;
    translate: -100% -50%;
  }


@media screen and (min-width:451px) {
  html{
    background: linear-gradient(#f5ffe9, #e1f9ff, #f5ffe9, #e1f9ff, #f5ffe9, #e1f9ff, #f5ffe9, #e1f9ff);
  }

  body{
    max-width:450px;
    margin: 0 auto;
    box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, .1);
  }

  .sp{
    display: none !important;
  }
  .pc{
    display: block !important;
  }

  .modal-content {
  max-width: 60%;
  max-height: 60%;
}

  footer{
    background-color: #f1f1f1;
    padding-bottom: 80px;
    width: 100%;
    }
}
