@charset "utf-8";

/* -----------------------------------------------------------------
 setting・上書き
----------------------------------------------------------------- */
.cmn_breadcrumb::before {
  background: var(--color_accent_orange);
}
.cmn_entry_wrap {
  padding-bottom: var(--margin_size_100);
}
.cmn_sec_entry {
  margin-top: var(--margin_size_100);
}
.site_footer {
  margin-top: 0;
}


/* -----------------------------------------------------------------
 CF7 完了メッセージを非表示
----------------------------------------------------------------- */
.wpcf7 form.sent .wpcf7-response-output {
    display: none !important;
}

/* -----------------------------------------------------------------
 背景ラインアニメーション
----------------------------------------------------------------- */
/*--------------- 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_item04 ---------------*/
#box_deco_item04 {
  width: max(1920px,100vw);
  aspect-ratio: 1920 / 430;
  position: absolute;
  top: 80vh;
  left: 50%;
  transform: translateX(-50%);
}
#deco_item04 {
  top: 0;
  right: 0;
}
@media screen and (max-width: 767px) {
  #box_deco_item04 {
    width: max(800px,100vw);
  }
}
@media print, screen and (min-width: 768px) {
  #box_deco_item04 {
    width: 100vw;
  }
}

/*--------------- deco_item09 ---------------*/
#wrap_deco_item09 {
  position: absolute;
  overflow: hidden;
  top: clamp(-900px, calc(-900px + (900 * ((100vw - 768px) / (1688 - 768)))), 0px);  bottom: 0;
  left: 0;
  right: 0;
}

#box_deco_item09 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
#deco_item09 {
  top: 0;
  right: 0;
}
@media screen and (max-width: 767px) {
  #wrap_deco_item09 {
    top: -20rem;
  }
  #box_deco_item09 {
    width: max(800px,100vw);
  }
}
@media print, screen and (min-width: 768px) {

  #box_deco_item09 {
    width: 100vw;
  }
}


/* -----------------------------------------------------------------
 sec_intro
----------------------------------------------------------------- */
.sec_intro {
  position: relative;
  margin-top: var(--margin_size_80);
  z-index: 1;
}
.sec_intro .cmn_text_base {
  text-align: center;
}
.sec_intro .cmn_text_base span {
  display: inline-block;
}



/* -----------------------------------------------------------------
 sec_post（base）
----------------------------------------------------------------- */
.sec_post {
  position: relative;
  margin-top: var(--margin_size_80);
  background: #fff;
  border-radius: var(--margin_size_60);
  z-index: 1;
}
.sec_post .sec_inner {
  width: min(1200px, 90%);
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .sec_post {
    padding: var(--margin_size_80) 0;
  }
}
@media print, screen and (min-width: 768px) {
  .sec_post {
    padding: var(--margin_size_100) 0;
  }
}
@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;
}
