@charset "utf-8";

/* -----------------------------------------------------------------
 setting・上書き
----------------------------------------------------------------- */
:root {
  --footer_margin :30vw;
}
.cmn_breadcrumb::before {
  background: var(--color_accent_red);
}
.cmn_entry_wrap {
  padding-bottom: var(--margin_size_100);
}
.cmn_sec_entry {
  margin-top: 0;
}
.site_footer {
  margin-top: calc(var(--footer_margin) * -1);
/*  background: var(--color_base);*/
}


/* -----------------------------------------------------------------
 背景ラインアニメーション
----------------------------------------------------------------- */
/*--------------- deco_item01 ---------------*/
#wrap_deco_item01 {
  position: absolute;
  overflow: hidden;
  width: 100vw !important;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}
#box_deco_item01 {
  position: absolute;
  left: 55vw;
}
#deco_item01 {
  width: 710px;
}
@media screen and (max-width: 767px) {
  #box_deco_item01 {
    width: 298px;
  }
  #deco_item01 {
    width: 298px;
  }
}
@media print, screen and (min-width: 768px) {
  #box_deco_item01 {
    left: auto;
    right: min(calc((100vw - 1920px) * 0.2), 0px);
    width: 710px;
  }
  #deco_item01 {
    width: 710px;
  }
}

/*--------------- deco_item14 ---------------*/
#box_deco_item14 {
  position: absolute;
  top: 30vw;
  left: 50%;
  transform: translateX(-50%);
}
#deco_item14 {
  top: 0;
  right: 0;
}
@media screen and (max-width: 767px) {
  #box_deco_item14 {
    width: max(800px,100vw);
  }
}
@media print, screen and (min-width: 768px) {
  #box_deco_item14 {
    width: 100vw;
  }
}

/*--------------- deco_item17 ---------------*/
#box_deco_item17 {
  position: absolute;
  top: -5vw;
  left: 50%;
  transform: translateX(-50%);
}
#deco_item17 {
  top: 0;
  right: 0;
}
@media screen and (max-width: 767px) {
  #box_deco_item17 {
    width: max(800px,100vw);
  }
}
@media print, screen and (min-width: 768px) {
  #box_deco_item17 {
    width: 100vw;
  }
}
/* -----------------------------------------------------------------
 cmn_local_nav（上書き）
----------------------------------------------------------------- */
@media screen and (max-width: 767px) {
}
@media print, screen and (min-width: 768px) {
  .cmn_local_nav {
    gap: 2.5rem;
  }
  .cmn_local_nav .list {
    gap: 2.5rem;
  }
}
@media (hover: hover) and (pointer: fine) {
}


/* -----------------------------------------------------------------
 sec_requirements
----------------------------------------------------------------- */
.sec_requirements {
  position: relative;
  margin-top: var(--margin_size_100);
  background: #fff;
  border-radius: var(--margin_size_60);
  z-index: 1;
}
.sec_requirements .sec_inner{
  position: relative;
  width: min(1200px, 90%);
  margin: 0 auto;
  z-index: 10;
}

@media screen and (max-width: 767px) {
  .sec_requirements {
    padding: var(--margin_size_80) 0;
  }
  .sec_requirements .cmn_box_title01::after {
    left: 16rem;
  }
}
@media print, screen and (min-width: 768px) {
  .sec_requirements {
    padding: var(--margin_size_110) 0;
  }
  .sec_requirements .sec_header {
    display: flex;
  }
  .sec_requirements .cmn_box_title01::after {
    left: 23rem;
  }
}
@media (hover: hover) and (pointer: fine) {
}



/* -----------------------------------------------------------------
 sec_flow
----------------------------------------------------------------- */
.sec_flow {
  position: relative;
  margin-top: var(--margin_size_100);
  z-index: 1;
}
.sec_flow .sec_cont {
  margin-top: var(--margin_size_70);
}
.sec_flow .sec_cont .item {
  display: flex;
  align-items: center;
  padding: 1.875rem;
  border-radius: var(--margin_size_30);
  background: #ede9e2;
}
.sec_flow .sec_cont .item .item_step {
  flex: 0 0 10rem;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.sec_flow .sec_cont .item .item_step .num {
  font-weight: 700;
}
.sec_flow .sec_cont .item .item_cont {
}
.sec_flow .sec_cont .item .item_cont .title {
  font-size: 1.25rem;
  font-weight: 700;
}
.sec_flow .sec_cont .item .item_cont .text {
  margin-top: .6rem;
  line-height: 1.6;
}
.sec_flow .sec_cont .arrow {
  display: table;
  margin: .85rem auto;
}
.sec_flow .sec_cont .item {
}
@media screen and (max-width: 767px) {
  .sec_flow .cmn_box_title01::after {
    left: 6.5rem;
  }
}
@media print, screen and (min-width: 768px) {
  .sec_flow .cmn_box_title01::after {
    left: 9.5rem;
  }
}
@media (hover: hover) and (pointer: fine) {
}

/* -----------------------------------------------------------------
 sec_faq
----------------------------------------------------------------- */
.sec_faq {
  position: relative;
  margin-top: var(--margin_size_120);
  background: #fff;
  border-radius: var(--margin_size_60);
  z-index: 1;
}
.sec_faq .sec_inner{
  position: relative;
  width: min(1200px, 90%);
  margin: 0 auto;
  z-index: 10;
}

@media screen and (max-width: 767px) {
  .sec_faq {
    padding: var(--margin_size_80) 0;
  }
  .sec_faq .cmn_box_title01::after {
    left: 5rem;
  }
}
@media print, screen and (min-width: 768px) {
  .sec_faq {
    padding: var(--margin_size_110) 0;
  }
  .sec_faq .sec_header {
    display: flex;
  }
  .sec_faq .cmn_box_title01::after {
    left: 6.5rem;
  }
}
@media (hover: hover) and (pointer: fine) {
}


/* -----------------------------------------------------------------
 accordion
----------------------------------------------------------------- */
.accordion {
  margin-top: var(--margin_size_80);
}
.accordion_item {
  border-top: #aeaeae 1px solid;
  border-bottom: #aeaeae 1px solid;
  overflow: hidden;
}
.accordion_item + .accordion_item {
  border-top: none;
}
.accordion_hd {
  display: flex;
  align-items: center;
  gap: 2rem;
  width: 100%;
  min-height: 3rem;
  padding: 1rem 1.3rem;
  border: none;
  background: #fff;
  cursor: pointer;
  transition: 0.3s ease-in-out;
}
.accordion_hd:hover {
  background: var(--color_base);
}
.accordion_hd:focus {
  background: #fff;
}
.accordion_hd span {
  flex-grow: 1;
  text-align: left;
  margin-top: .15rem;
  font-weight: 700;
}
.accordion_hd .plus {
  flex-shrink: 0;
  width: 1.25rem;
  height: 2px;
  background: var(--color_txt_netz);
}
.accordion_hd .plus::after {
  content: "";
  display: block;
  width: 1.25rem;
  height: 2px;
  background: var(--color_txt_netz);
  transform: rotate(-90deg);
  transition: 0.3s ease-in-out;
}
.accordion_hd .plus.js_open::after {
  transform: rotate(0deg); /* 開いたときに 0度に回転 */
}
.accordion_item i.qa {
  align-self: flex-start;
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 1.6em;
  height: 1.6em;
  border-radius: 9999px;
  background: var(--color_txt_netz);
  font-style: normal;
  font-weight: 700;
  font-size: 1.5rem;
  font-family: var(--font_en);
  color: #fff;
}
.accordion_item i.qa.a {
  background: var(--color_accent_red);
}
.accordion_cont {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.3s ease-in-out;
}
.accordion_cont .accordion_cont_in {
  display: flex;
  gap: 2rem;
  padding: 1rem 1.3rem;
  font-size: 0.85rem;
}
.accordion_cont p {
  margin-top: .4rem;
  line-height: 1.8;
  font-size: .98rem;
}
.accordion_cont a,
.accordion_cont p a{
  position: relative;
  color: #fff;
}
.accordion_cont a::after ,
.accordion_cont p a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background-color: #fff;
  transition: background-color 0.3s ease;
}
@media (hover: hover) and (pointer: fine) {
  .accordion_cont a:hover::after,
  .accordion_cont p a:hover::after{
    background-color: transparent;
  }
}
/* -----------------------------------------------------------------
 .sec_parallax
----------------------------------------------------------------- */
.sec_parallax {
  position: relative;
  z-index: 1;
}
.sec_parallax_item {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 120%;
  will-change: transform;
  background: var(--color_base);
}
.sec_parallax_item .curve_top {
  position: absolute;
  top: 0;
}
.sec_parallax_item .curve_top path {
  height: 6vw;
}
@media screen and (max-width: 767px) {
  .sec_parallax {
    margin-top: 10rem;
    min-height: 100vh;
  }
}
@media print, screen and (min-width: 768px) {
  .sec_parallax {
    margin-top: 160px;
    min-height: 100vh;
  }
}
@media (hover: hover) and (pointer: fine) {
}

/* -----------------------------------------------------------------
 .sec_parallax（sec_cont）
----------------------------------------------------------------- */
.sec_parallax .sec_cont {
  position: relative;
  z-index: 1;
  padding-bottom: calc(var(--footer_margin) + 100px);
  background: linear-gradient(0deg,rgba(0, 114, 206, 1) 70%, rgba(0, 114, 206, 0) 71%);
}
.sec_parallax .cmn_box_title02 {
  color: #fff;
}
.sec_parallax .cmn_box_title02 .title_main::before{
  left: -5rem;
  background: url("/img/common/deco03_wh.svg") no-repeat;
  background-size: contain;
  opacity: .4;
}
.sec_parallax .cmn_box_title02 .title_main::after{
  right: -3rem;
  background: url("/img/common/deco04_wh.svg") no-repeat;
  background-size: contain;
  opacity: .4;
}
/* -----------------------------------------------------------------
 .bg_white
----------------------------------------------------------------- */
.bg_white {
  margin-top: var(--margin_size_100);
  padding: var(--margin_size_60) 0;
  background: #fff;
  border-radius: var(--margin_size_60);
}
.bg_white .bg_white_inner{
  position: relative;
  width: min(1200px, 90%);
  margin: 0 auto;
  z-index: 10;
}
@media screen and (max-width: 767px) {
}
@media print, screen and (min-width: 768px) {
}
@media (hover: hover) and (pointer: fine) {
}
/* -----------------------------------------------------------------
 box_form 
----------------------------------------------------------------- */
.box_form {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  margin-top: 3rem;
}
.box_form .item {
  display: flex;
  flex-direction: column;
  gap: .6rem;
  min-height: 3rem;
}
@media print, screen and (min-width: 768px) {
  .box_form .item {
    flex-direction: row;
    gap: 2rem;
  }
}
/* -----------------------------------------------------------------
 box_form .item .ttl
----------------------------------------------------------------- */
.box_form .item .ttl{
  display: flex;
  align-items: center;
  gap: .5rem;
  padding-top: 1rem;
}
.box_form .item .ttl label {
  line-height: 1;
}
.box_form .item .ttl .reqd {
  display: flex;
  align-items: center;
  padding: .3em .5em .4em;
  border-radius: 5px;
  background: #ff0000;
  line-height: 1;
  font-weight: 700;
  font-size: .875rem;
  color: #fff;
}
@media print, screen and (min-width: 768px) {
  .box_form .item .ttl{
    flex: 0 0 17rem;
    justify-content: space-between;
    align-items: flex-start;
    width: 17rem;
    font-size: 1.125rem;
  }
}
/* -----------------------------------------------------------------
 box_form .item .cont
----------------------------------------------------------------- */
.box_form .item .cont{
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .4rem;
}
.box_form .item .cont .input_set{
  display: flex;
  gap: .7rem;
}
.box_form .item .cont .input_set input {
  flex: 1;
  min-width: 0;
}
.box_form .item .cont *::placeholder {
  color: #ccc;
}
.box_form .item .cont input[type="text"],
.box_form .item .cont input[type="email"],
.box_form .item .cont input[type="tel"],
.box_form .item .cont select,
.box_form .item .cont textarea{
  padding: 1.2rem 1.5rem;
  flex: 1;
  width: 100%;
  min-width: 0;
  border-radius: 5px;
  border: #a9a9a9 1px solid;
  outline: none;
}
@media print, screen and (min-width: 768px) {
  .box_form .item .cont{
    flex: 1;
    min-width: 0;
  }
}

/* -----------------------------------------------------------------
 select
----------------------------------------------------------------- */
.select_wrap {
  position: relative;
}
.select_wrap select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  width: 100%;
  cursor: pointer;
}
.select_wrap select:focus {
/*  outline: none;*/
}
.select_wrap::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: 2.5rem;
  height: 1.28rem;
  pointer-events: none;
  border-left: #9c9c9c 1px solid;
  background: url("../img/arrow03_dn_gray.svg") no-repeat center center;
  background-size: .88rem;
}

/* -----------------------------------------------------------------
 checkbox
----------------------------------------------------------------- */
.box_check {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  position: relative;
}
.box_check input[type="checkbox"] {
  outline: none;
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}


.box_check .wpcf7-list-item-label {
  position: relative;
  padding-left: 2.4rem;
  cursor: pointer;
}
.box_check .wpcf7-list-item-label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1.8rem;
  height: 1.8rem;
  border-radius: 5px;
  border: #a9a9a9 1px solid;
  background: #fff;
}
/* チェックマーク */
.box_check .wpcf7-list-item-label::after {
  content: "";
  position: absolute;
  left: .65rem;
  top: .1rem;
  width: .5rem;
  height: .8rem;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg) scale(0);
  transform-origin: center;
}

/* checked時 */
.box_check input[type="checkbox"]:checked + .wpcf7-list-item-label::before {
  border: var(--color_txt_netz) 1px solid;
  background: var(--color_txt_netz);
}
.box_check input[type="checkbox"]:checked + .wpcf7-list-item-label::after {
  transform: rotate(45deg) scale(1);
}


/* -----------------------------------------------------------------
 エラー表示
----------------------------------------------------------------- */
.wpcf7-not-valid-tip {
  margin-top:.6rem;
}
.box_form .item .cont input.wpcf7-not-valid[type="text"],
.box_form .item .cont input.wpcf7-not-valid[type="email"],
.box_form .item .cont input.wpcf7-not-valid[type="tel"],
.box_form .item .cont select.wpcf7-not-valid,
.box_form .item .cont textarea.wpcf7-not-valid{
  border: #d36d6d 1px solid;
  background: #fff4f4;
}
.box_form .item .cont input[type="checkbox"]:not(:checked) + .wpcf7-list-item-label {
/*
  border: #d36d6d 1px solid;
  background: #d36d6d;
*/
}


/* -----------------------------------------------------------------
 box_form_footer
----------------------------------------------------------------- */
.box_form_footer {
  border-top: var(--color_line_light_gray) 1px solid;
}
.box_form_footer .cmn_btn_link01 {
  margin-top: var(--margin_size_S);
}
.box_form_footer .go_back .cmn_btn_link01{
  margin-top: 1rem;
}