@charset "UTF-8";

/*----------------
common
----------------*/

.subtit{
  color: #123479;
  text-align: center;
  width: 100%;
  /*padding: 40px 0;*/
  padding: 4rem 0;
}

.bg_blue{
  background-color: #006bb4;
  /*background-image: url(../images/point_bg_city.png);
  background-position: center bottom;
  background-repeat: no-repeat;*/
}

@media (max-width: 1280px) {/*タブレットで分岐*/
  .subtit{
    /*width: 40%;*/
    width: 88%;
    margin: 0 auto;
    padding: 4rem 0 2rem 0;
}

}

@media (max-width: 767px) {
  .subtit{
    /*width: 64%;*/
    width: 100%;
    /*margin-top: 2rem;*/
    padding: 1.2rem 0 0 0;
}

  .w_80{
    width: 80%;
    margin: 0 auto;
  }

}

/*----------------
mv
----------------*/

.mv_base{
  background-image: url(../images/mv_bg.jpg);
  width: 100%;
  background-size: cover;
  background-repeat: no-repeat;
  /*padding-bottom: 8rem;*/
  padding: 4rem 0;
}

.logo_catch{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 64%;
  margin: 0 auto 1.6rem auto;
}

.logo_catch p{
  font-weight: bold;
  text-align: center;
  font-family: "Noto Serif JP",sans-serif;
  /*font-size: 1.6rem;*/
  font-size: 1.2rem;
  line-height: 1.6;
}

.logo{
  margin-right: 16px;
  width: 8%;
}

.mv_cont_base{
  width: 64%;
  align-items: center;
  background-color: rgba(255,255,255,0.6);
  /*padding: 56px 24px 0px 24px;*/
  /*padding: 56px 32px 0px 32px;*/
  padding: 16px 32px 0px 32px;
  margin:0 auto;
}

.mv_cont{
  display: flex;
  justify-content: space-around;
   align-items: center;
   width: 72%;
   margin: 0 auto;
}

.mv_person{
  /*width: 32%;*/
  /*width: 24%;*/
  width: 32%;
}

.mv_person img{
  width: 100%;
}

.mv_menu{
  /*width:56%*/
  /*width: 64%;*/
  width: 56%;
}

dl.mv_menu_list{
  text-align: center;
}

dl.mv_menu_list dt{
  font-weight: bold;
  font-size: 1.2rem;
  margin-bottom: 1rem;
}

dl.mv_menu_list dd{
  background-color: #006bb4;
  color: #fff;
  font-weight: bold;
  padding: 16px;
  font-size: 1.4rem;
  margin-bottom: 2rem;
  box-shadow: 8px 8px 0px rgba(18, 52, 121);
}

dl.mv_menu_list dd:last-child{
  margin-bottom: 0;
}

.bnr_cam{
  width: 64%;
  margin: 1.2rem auto;
  box-shadow: 10px 10px 15px -10px #333;
}

.mv_base .pc{
  display: block;
}

@media (max-width: 1280px) {/*タブレットで分岐*/

  .logo_catch{
    width: 88%;
  }

  .logo{
    width: 16%;
  }

  .mv_cont_base{
    width: 88%;
    margin: 0 auto;
  }

  .mv_cont{
    width: 100%;
  }

  dl.mv_menu_list dt{
    font-size: .8rem;
    margin-bottom: .4rem;
  }

  dl.mv_menu_list dd{
    font-size: 1rem;
  }

  /*.mv_menu{
    padding-bottom: 2rem;
  }*/

  .bnr_cam{
  width: 88%;
}

}

@media (max-width: 767px) {

  .mv_base .pc{
    display: none;
  }

  .mv_base{
    padding: 1.6rem 0;
  }

  .mv_cont_base{
    width: 80%;
    padding: 24px 0 32px 0;
  }

  .mv_cont{
    flex-direction: column-reverse;
    width: 80%;
  }

  .logo_catch{
    width: 100%;
    flex-direction: column;
  }

.logo_catch p{
  font-size: .8rem;
}

.logo{
  width: 24%;
}

.mv_menu{
  width: 96%;
}

dl.mv_menu_list dt{
  font-size: 1rem;
  line-height: 1.4;
  margin-bottom: .4rem;
}

dl.mv_menu_list dd{
  font-size: 1rem;
  line-height: 1.6;
  padding: 8px;
}

.mv_person{
  /*width: 56%;*/
  width: 48%;
  margin-top: 1.2rem;
}

.mv_person_sp{
  width: 32%;
  margin: 1.2rem auto 0 auto;
}

.bnr_cam{
  width: 80%;
}

}

/*----------------
onayami
----------------*/

/*.onayami_cont{
  background-image: url(../images/onayami_bg.png);
  background-size: contain;
  background-repeat: no-repeat;
}*/

.onayami_contents{
  width: 64%;
  margin: 0 auto;
  /*padding: 4rem 0;*/
  line-height: 1.8;
}

.onayami_bg_top{
  background-image: url(../images/onayami_top_bg.png);
  background-size: cover;
  background-repeat: no-repeat;
}

.onayami_bg_center{
  background-color: #e0ebf2;
}

.onayami_bg_bottom{
  background-image: url('../images/onayami_center_bg.png');
  background-color: #e0ebf2;
  /*padding: 0rem 0rem 16rem 0rem;*/
  background-size: cover;
  position: relative;
  /*padding-bottom: 80px;*/ /* 三角形が入る分の余白を確保 */
  padding-bottom: 10rem; /* 三角形が入る分の余白を確保 */
}

.onayami_bg_bottom::after {
  content: '';
  position: absolute;
  bottom: -1px; /* 0 から -1px に変更 背景画像の下に白線が入るため */
  left: 0;
  width: 100%;
  /*height: 60px;*/ /* 三角形の高さ */
  height: 10rem; /* 三角形の高さ */
  background-image: url('../images/onayami_bottom_bg_2.png');
  background-size: 100% 100%;
  background-repeat: no-repeat;
  pointer-events: none;
}

/*.onayami_bg_bottom{
  background-image: url(../images/onayami_bottom_bg_3.png);
  background-size: contain;
  background-repeat: no-repeat;
  padding: 2rem 0rem 16rem 0rem;
}

.onayami_bg_bottom::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 60px;
  background-image: url('../images/onayami_bottom_pc.png');
  background-size: 100% 100%;
  background-repeat: no-repeat;
  pointer-events: none;
}*/

.subtit_top{
  font-size: 1.6rem;
  /*display: block;*/
  border-bottom: 1px solid #123479;
  padding-bottom: .8rem;
  font-weight: bold;
}

.subtit_bottom{
  font-size: 1.4rem;
  padding-top: .8rem;
  font-weight: bold;
}

.onayami_list{
  display: flex;
  justify-content: space-around;
  /*gap: 40px;*/
}

.onayami_card {
  /*width: 48%;*/
  /*width: 40%;*/
  width: 45%;
  margin-top: 8rem; /* 上に飛び出す分の余白を確保 */
  background: #fff;
  border-radius: 8px;
  /* overflow: hidden; は指定しないでください（飛び出さなくなります） */
  padding-bottom: 2.4rem;
}

.onayami_card img{
  display: block;
  width: 40%;
  margin: 0 auto 1.6rem auto;
  margin-top: -6rem; /* マイナス値を指定して上に飛び出させる */
}

dl.onayami_card_tit dt{
  background-color: #006bb4;
  color: #fff;
  padding: 8px 16px; /* 左右の余白を均等に調整 */
  font-size: 1.2rem;
  /* Flexboxでアイコンと文字をひとかたまりにして中央揃えにする */
  display: flex;
  justify-content: center; /* 左右中央揃え */
  align-items: center;     /* 上下中央揃え */
  gap: 8px;                /* アイコンと文字の間の余白 */
}

dl.onayami_card_tit dt::before{
  content: "";
  /* absoluteを解除し、普通のインライン要素として扱う */
  display: inline-block;
  width: 1.2rem;
  height: 1.2rem;
  background-image: url('../images/icon_check.png');
  background-size: contain;
  background-repeat: no-repeat;
  flex-shrink: 0; /* アイコンが縮まないように保護 */
}

dl.onayami_card_tit dd{
  font-size: 1.1rem;
  padding: 16px 16px 0 16px;
  margin: 0; /* ブラウザのデフォルトマージンをリセット */  
}

.marker_under{
  background: linear-gradient(transparent 70%, #fff100 0%);
  /*display: inline;
  margin: 16px 16px 0 16px;*//*display:inline;を使うと改行されるはずの文がつながってしまうので、HTMLでspanで囲んで対処*/
}


@media (max-width: 1280px) {/*タブレットで分岐*/

  .subtit_top{
  font-size: 1.4rem;
}

.subtit_bottom{
  font-size: 1.2rem;
}

  .onayami_contents{
    width: 88%;
}

}

@media (max-width: 767px) {

  .onayami_contents{
    width: 80%;
    /*padding: .5rem 0;*/
    /*padding: .5rem 0 1.8rem 0;*/
    padding: .5rem 0 0rem 0;
    line-height: 1.6;
}

.onayami_bg_top{
  background-size: contain;
  background-color: #e0ebf2;
}

.onayami_bg_bottom{
  background-image: url('../images/onayami_center_bg.png');
  background-color: #e0ebf2;
  /*padding: 0rem 0rem 16rem 0rem;*/
  background-size: cover;
  position: relative;
  padding-bottom: 80px; /* 三角形が入る分の余白を確保 */
}

.onayami_bg_bottom::after {
  content: '';
  position: absolute;
  /*bottom: 0;*/
  bottom: -1px; /* 0 から -1px に変更 背景画像の下に白線が入るため */
  left: 0;
  width: 100%;
  height: 60px; /* 三角形の高さ */
  background-image: url('../images/onayami_bottom_bg_2.png');
  background-size: 100% 100%;
  background-repeat: no-repeat;
  pointer-events: none;
}

.onayami_list{
  flex-direction: column;
}

.onayami_card {
  width: 100%;
  margin-top: 5rem;
}

dl.onayami_card_tit dt{
  font-size: 1rem;
}

dl.onayami_card_tit dd{
  font-size: 1rem;
}

.onayami_card img{
   margin-top: -4rem; /* マイナス値を指定して上に飛び出させる */
}

.subtit_top{
    font-size: 1rem;
    padding-bottom: .4rem;
    line-height: 1.4;
}

.subtit_bottom{
  font-size: .8rem;
  padding-top: .4rem;
  line-height: 1.4;
}

/*.bg_blue{
  background-color: #e0ebf2;
}*/

}

/*----------------
solution
----------------*/

.solution{
  /*padding-bottom: 4rem;*/
  background-color: #006bb4;
  padding-top: 4rem;
}

.solution p{
  font-size: 1.5rem;
  text-align: center;
  color: #fff;
  font-weight: bold;
  line-height: 2;
  margin-bottom:2rem;
}

.solution img{
  display: block;
  vertical-align: bottom;
  max-width: 100%;
}

.subtit_w{
  color: #fff;
  text-align: center;
  width: 100%;
  /*padding: 40px 0;*/
  padding: 4rem 0;
}

.subtit_w_top{
  font-size: 1.6rem;
  /*display: block;*/
  border-bottom: 1px solid #fff;
  padding-bottom: .8rem;
  font-weight: bold;
}

.subtit_w_bottom{
  font-size: 1.4rem;
  padding-top: .8rem;
  font-weight: bold;
}

@media (max-width: 1280px) {/*タブレットで分岐*/
  .subtit_w{
   /*width: 40%;*/
   width: 88%;
   margin: 0 auto;
   padding: 2rem 0;
}

  .subtit_w_top{
  font-size: 1.4rem;
}

.subtit_w_bottom{
  font-size: 1.2rem;
}

}

@media (max-width: 767px) {

  .solution{
    padding-top: 2rem;
  }

  .solution p{
  font-size: 1rem;
  margin-bottom: 1rem;
}

.subtit_w{
  /*width: 64%;*/
  /*width: 100%;*//*20261005 修正*/
  width: 80%;/*20261005 追記*/
  /*margin-top: 2rem;
  margin-bottom: 1rem;*/
  padding: 0;
}

.subtit_w_top{
    font-size: 1rem;
    padding-bottom: .4rem;
    line-height: 1.4;
}

.subtit_w_bottom{
  font-size: .8rem;
  padding-top: .4rem;
  line-height: 1.6;
  margin-bottom: 1rem;
}


}

/*----------------
point
----------------*/

.point_bg{
  background-color: #f7f7f7;
  /*padding-bottom: 2rem;*/
}

.point_contents{
  width: 64%;
  margin: 0 auto;
  /*padding: 8rem 0;*/
  line-height: 1.8;
}

.point_num{
  background-color: #006bb4;
  color: #fff;
  border-radius: 50px;
  display: inline-block;
  padding: .2rem 1rem;
  margin-bottom: .8rem;
}

.point_subtit{
  color: #006bb4;
  font-weight: bold;
  font-size: 1.4rem;
  margin-bottom: .8rem;
}

.point_box{
  display: flex;
  justify-content: space-between;
  background-color: #fff;
  border: 2px #006bb4 solid;
  padding: 1.6rem;
  align-items: center;
  border-radius: 1.2rem;
  margin-bottom: 2rem;
}

.point_img{
  display: inline-block;
  width: 32%;
}

.point_txt{
  width: 64%;
}

@media (max-width: 1280px) {/*タブレットで分岐*/

  .point_contents{
  width: 88%;
  margin: 0 auto;
  }
}

@media (max-width: 767px) {

  .point_contents{
    width: 80%;
    padding-top: .8rem;
  }

  .point_box{
    flex-direction: column;
    margin-top: 1rem;
    padding: 1rem;
  }

  .point_img{
    width: 100%;
  }

  .point_txt{
    width: 100%;
  }

  .point_num{
    font-size: .8rem;
    margin-bottom: .4rem;
  }

  .point_subtit{
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: .4rem;
  }

  .point_txt p{
    font-size: .8rem;
    line-height: 1.4;
  }

  .point_box{
    margin-bottom: 1rem;
  }

}

/*----------------
form
----------------*/

.form_bg{
  background-color: #123479;
  padding-bottom: 2rem;
  background-image: url(../images/form_bg.jpg);
  background-size: cover;
  padding-bottom: 4rem;
}

.form_bg_img{
  background-color: #f7f7f7;
  /*↓画像の下に入る白線の打ち消し*/
  display: block;/*20261005 追記*/
  font-size: 0;   /* 20261005 追記 万が一の余白を完全に消去 */
  line-height: 0; /* 20261005 追記 万が一の余白を完全に消去 */
  margin-bottom: -1px; /*　20261005 追記 下に1px引っ張って下の要素と重ねる */
}

.form_bg_img img{
  display: block;
  vertical-align: bottom;
  max-width: 100%;
  /*↓画像の下に入る白線の打ち消し*/
  /*padding-top: 1rem;*//*20261005修正*/
  width: 100%;/*20261005 追記*/
  height: auto;/*20261005 追記*/
  vertical-align: bottom;/*20261005 追記*/
  padding-top: 0; /*20261005 追記*//* 前回のコードにpadding-top: 1remがあった場合は不要なら0に */
}

.form_contents{
  width: 64%;
  margin: 0 auto;
  padding: 4rem 0;
  line-height: 1.8;
}

.form{
  width:72%;
  margin: 0 auto 4rem auto;
}

.responsive-iframe{/*20261005 追記*/
  width: 100%;
  height: 2200px; /* PCでのフォーム高さ */
  border: none;
}

.form_box{/*20261005 追記*/
  width: 100%;
  /*max-width: 800px;*/ /* PCでフォームが広がりすぎないように制限 */
  margin: 0 auto;   /* 中央寄せ */
}

@media (max-width: 1280px) {/*タブレットで分岐*/

  .form_contents{
    width: 88%;
    padding: 2rem 0;
  }

  .responsive-iframe {/*20261006 追記*/
    height: 2100px; /* 少し縦長になるため高さを広げる */
  }


}

@media (max-width: 767px) {

  .form_contents{
    /*width: 80%;*//*20261005 修正*/
    width: 96%;/*20261005 追加*/
    padding: 2rem 0;
  }

  .form{
    /*width: 88%;*/
    width: 100%;
    margin: 0 auto 2rem auto;
}

.form_bg{
  padding-bottom: 2rem;
}

.responsive-iframe {/*20261005 追記*/
    height: 2300px; /* 折り返しが増えて最も縦長になるため、高さをしっかり確保 */
  }

}

/*----------------
footer
----------------*/
footer{
  background-color: #006bb4;
  color: #fff;
}

.footer_contents{
  width: 64%;
  margin: 0 auto;
  /*padding: 4rem 0;*//*20260918 修正*/
  padding: 2rem 0;
  line-height: 1.8;
  text-align: center;
}

.under_line{
  border-bottom: 1px solid #fff;
  line-height: 1.6;/*20261005 追記*/
}

.under_line a{
  color: #fff;/*20261005 追記*/
}

.licence{
  /*font-size: 12px;*/
  font-size: .8rem;
}

.tel_bnr{
  /*width: 80%;*/
  width: 72%;
  margin: 0 auto;
}

@media (max-width: 1280px) {/*タブレットで分岐*/

  .tel_bnr{
      /*margin-top: 4rem;*//*20261005 追記*/
    }

  footer {
    padding-bottom: 8rem;
  }

  .under_line{
    line-height: 1.6;/*20261005 追記*/
    /*text-align: right;*/
}

}

@media (max-width: 767px) {

    footer {
    padding-bottom: 4rem;
  }

  .footer_contents{
    width: 80%;
  }

  .under_line{
    font-size: .8rem;
}

  .cr{
   font-size: .6rem;
  }

  .licence{
    /*font-size: 8px;*/
    font-size: .4rem;
  }

  .tel_bnr{
    /*width: 100%;*//*20261005 追記*/
    width: 88%;
    /*margin-top:2rem;*//*20261005 追記*/
  }

}

/*--------------------------------
20260901 PC用 CTAフローティングボタン
----------------------------------*/

/* PC専用設定 */

/*20261001 追記↓*/
@media (max-width: 1280px) {
  .floating-container-pc {
    display: none !important;
  }
}

@media (min-width: 769px) {/*タブレット幅（769px〜1280px）の時もPC用フローティングを表示にする場合は and (max-width: 1280px) を入れる*/
  .floating-container {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 9999;
    width: 200px;

    /* 初期状態：隠しておく */
    opacity: 0;
    visibility: hidden;
    /*transform: translateY(10px); *//* 少し下に落としておく */
    transform: translateY(80px); /* 少し下に落としておく */
    /*transition: opacity 0.4s ease, transform 0.4s ease, visibility 0.4s ease;*//*フェードインの速度*/
    transition: opacity 0.8s ease, transform 0.8s ease, visibility 0.8s ease-out;/*フェードインの速度*/
  }

  /* JavaScriptでこのクラスが付与されたらふわっと表示 */
  .floating-container.is-show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

  .floating-item {
    display: block;
    margin-bottom: 12px;
    text-decoration: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
  }

  .floating-item:last-child {
    margin-bottom: 0;
  }

  .floating-item:hover {
    opacity: 0.9;
    transform: translateY(-2px);
  }

  .floating-item img {
    width: 100%;
    height: auto;
    display: block;
  }

.shadow{
    box-shadow: 2px 2px 4px #bbb;
}

}

/* スマホでは非表示 */
@media (max-width: 768px) {
  .floating-container {
    display: none;
  }
}

/*--------------------------------
20261001 tab用 CTA画面下固定ボタン
----------------------------------*/

@media (min-width: 1281px) {
  .floating-container-tab {
    display: none !important;
  }
}

@media (max-width: 1280px) {
  .floating-container-tab {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    display: flex;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 12px;
    background-color: rgba(255, 255, 255, 0.95);
    opacity: 0;
    visibility: hidden;
    transform: translateY(100%);
    transition: opacity 0.4s ease, transform 0.4s ease, visibility 0.4s ease;
  }

  .floating-container-tab.is-show {
      opacity: 1;
      visibility: visible;
      transform: translateY(0);
  }

  .floating-item-tab {
      flex: 1;
      text-decoration: none;
  }

  .floating-item-tab img {
      width: 100%;
      height: auto;
      display: block;
  }
}

/*--------------------------------
20261001 SP用 CTA画面下固定ボタン
----------------------------------*/

@media (min-width: 769px) {
  .floating-container-sp {
    display: none !important;
  }
}

@media (max-width: 768px) {
  .floating-container-sp {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    display: flex;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 12px;
    background-color: rgba(255, 255, 255, 0.95);
    opacity: 0;
    visibility: hidden;
    transform: translateY(100%);
    transition: opacity 0.4s ease, transform 0.4s ease, visibility 0.4s ease;
  }

  .floating-container-sp.is-show {
      opacity: 1;
      visibility: visible;
      transform: translateY(0);
  }

  .floating-item-sp {
      flex: 1;
      text-decoration: none;
  }

  .floating-item-sp img {
      width: 100%;
      height: auto;
      display: block;
  }
}