/*
*
* INDIVIDUAL styles
*
*/

/*==============================================
COMMON
==============================================*/

/*==============================================
01 LEGAL
==============================================*/

/*****************************
legal-outline
******************************/
#legal-outline{
  padding-bottom: 0;
}

.legal-list {
  margin-top: clamp(50px,6.944vw,100px);
  margin-bottom: clamp(50px,6.944vw,100px);
}
.legal-list:last-child {
  margin-bottom: 0;
}
.legal-ttl {
  border: 0 none;
  text-align: center;
  background: #ececec;
  font-size: clamp(24px,2.73vw,32px);
  font-weight: 700;
  letter-spacing: .05em;
  line-height: 1.0;
  padding: 15px;
  border-radius: clamp(15px,1.7vw,20px);
  margin-bottom: clamp(15px,2.56vw,30px);
}
.legal-ttl::after {content: none;}

.legal-lebel {
  text-align: center;
  margin-bottom: 0;
}
.legal-lebel dt {
  font-weight: 700;
  font-size: clamp(22px,2.05vw,24px);
  line-height: 1.0;
  color: #666;
}
.legal-lebel dd {
  font-size: clamp(18px,1.709vw,20px);
  font-weight: 700;
}

.legal-list .img-wrap img{
  max-width: 270px;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.is-red .legal-ttl{background-color: #ffcccc;}
.is-red .legal-lebel dt {color: #aa2a2a;}

.is-green .legal-ttl{background-color: #e2f0d9;}
.is-green .legal-lebel dt {color: #507c34;}

.is-beige .legal-ttl{background-color: #ede7d8;}
.is-beige .legal-lebel dt {color: #7a632b;}

/*****************************
legal-01
******************************/
#legal-01 .section-title {
  margin-bottom: clamp(26px, 6.41vw, 75px);
}

.legal-bg-list{
  margin-bottom: min(10.25vw, 120px);
}
.legal-bg-list > li {
  position: relative;
  z-index: 0;
  padding: clamp(45px, 5.98vw, 70px) clamp(30px, 3.41vw, 40px);
  min-height: 355px;
}
.legal-bg-list > li::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #f6f3ee;
  border-radius: 50% / 30%;
  z-index: -1;
}

.legal-txt {
  text-align: center;
}
.legal-txt dt {
  font-weight: 700;
  color: var(--vk-color-custom-1);
  font-size: clamp(24px,2.73vw,32px);
  letter-spacing: .05em;
  min-width: 170px;
  width: fit-content;
  max-width: 100%;
  padding: 0 1em .5em;
  margin: 0 auto .5em;
  border-bottom: 4px solid currentColor;
}
.legal-txt dd {
  text-align: left;
  text-align: justify;
  font-weight: 500;
  line-height: 2.0;
}

.list-wrap:last-child{
  margin-bottom: 0;
}
.list-wrap > figcaption {
  color: var(--vk-color-custom-1);
  text-align: center;
  letter-spacing: .05em;
  font-size: clamp(20px,1.88vw,22px);
  font-weight: 700;
}
.list-wrap .wp-block-list li{
  letter-spacing: 0;
}

@media (max-width: 767px){
  .legal-txt {
    margin-bottom: 1rem;
  }
  .legal-txt dt {
    border-bottom-width: 3px;
  }
  .legal-txt dd {
    line-height: 1.75;
  }
}

#legal-01 .border-box {
  border-radius: 50px;
}

@media (max-width: 767px) {
  #legal-01 .border-box {
    padding: 50px 25px 40px;
    margin: 50px 0;
  }
  #legal-01 .border-box:last-child {
    margin-bottom: 0;
  }
  #legal-01 .border-box .border-box-ttl .br {
    display: block;
    width: fit-content;
  }
  #legal-01 .border-box .border-box-ttl {
    top: -50px;
    margin-bottom: -65px;
  }
}

/*****************************
legal-flow
******************************/

#legal-flow-2 .dl-list dd span {
  display: inline-block;
}

/*****************************
legal-02
******************************/
#legal-02 .section-title {
  margin-bottom: min(5.98vw, 70px);
}
#legal-02 .is-layout-flex {
  justify-content: space-between;
  align-items: flex-start;
}
.is-layout-flex > .left-body {
  width: 48.71%;
}
.is-layout-flex > .right-body {
  width: 42.73%;
}

@media (max-width: 768px){
  #legal-02 .flow-list {
    margin-left: auto;
    margin-right: auto;
  }
  .is-layout-flex > .left-body,
  .is-layout-flex > .right-body {
    width: 100%;
  }
}


/*==============================================
02 VOLUNTARY
==============================================*/

/*****************************
voluntary-outline
******************************/
#voluntary-outline .img {
  text-align: center;
}
#voluntary-outline .img img {
  width: 66.07%;
  width: 90%;
  max-width: 370px;
  /*max-width: 100%;*/
}
@media (max-width: 767px) {
  #voluntary-outline .img img {
    max-width: 222px;
  }
}

/*****************************
voluntary-flow
******************************/
#voluntary-flow-1 .has-img-right {
  margin-top: 3rem;
  margin-bottom: min(8.54vw, 100px);
}
#voluntary-flow-1 .has-img-right .img {
  width: 56.7%;
}

#voluntary-flow-3 .has-img-right .img img {
  width: 84.48%;
  width: 392px;
  max-width: 100%;
}

#voluntary-flow-5 .has-img-right .img img {
  width: 366px;
  max-width: 100%;
}


@media (max-width: 767px){
  #voluntary-flow-1 .has-img-right{
    margin-bottom: 0;
  }
  #voluntary-flow-1 .has-img-right .img{
    width: 100%;
  }
}

/* more arrow */
.more-arw{
  padding-top: 60px;
  margin-bottom: min(5.1%, 50px);
  cursor: pointer;
  width: fit-content!important;
  z-index: 1;
}
.more-arw .arw{
  position: relative;
  display: block;
  margin: 0 auto;
  font-size: 1rem;
  font-weight: 700;
  text-align: center;
  color: var(--vk-color-custom-1);
  transition: color .3s;
}
.more-arw .arw::before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  margin: 0 auto -1rem;
  bottom: calc(100% + clamp(35px, 4.27vw, 50px));
  width: clamp(35px, 4.27vw, 50px);
  height: clamp(35px, 4.27vw, 50px);
  transform: rotate(-45deg);
  border-width: 3px;
  border-color: transparent transparent #1f4e79 #1f4e79;
  border-style: solid;
  transition: border-color .3s;
}
.more-arw:hover .arw {
  color: #f19119;
}
.more-arw:hover .arw::before {
  border-bottom-color: #f19119;
  border-left-color: #f19119;
}
:root {
  interpolate-size: allow-keywords;
}
.more-contents {
  height: 0;
  opacity: 0;
  overflow: hidden;
  transition-duration: .3s;
  transition-property: height, opacity;
}
.more-contents.open {
  height: auto;
  opacity: 1;
}

/*==============================================
03 ABOUT
==============================================*/
#post-16 .title-01 {
  margin-bottom: .5em;
}
#post-16 .title-03 {
  font-size: clamp(18px, 1.709vw, 20px);
}

#about-outline .section-header.has-img-right {
  padding-right: 50%;
  max-width: 1170px;
}
#about-outline .section-header.has-img-right > .section-header-img {
  width: 48.71%;
  max-width: inherit;
}
#about-outline .outline-txt {
  font-size: clamp(18px, 1.59vw, 23px);
}
#about-outline .section-sub-title{
  margin-bottom: clamp(30px, 6.83vw,80px);
}

#about-outline .section-body > .title-01 {
  font-size: clamp(24px, 2.361vw, 34px);
}
#about-outline .section-body .has-img-right > .img {
  right: calc(min(2.56vw, 30px) * -1);
}

#about-01 .title-02 {
  margin-bottom: 2em;
}

@media (max-width: 767px) {
  #post-16 .title-01 {
    text-align: center;
    line-height: 1.3;
    margin-bottom: .25em;
  }
  #about-outline .section-header.has-img-right {
    padding-right: 0;
    margin-bottom: 50px;
  }
  #about-outline .section-header.has-img-right > .section-header-img{
    width: 82.5%;
    margin-bottom: 20px;
  }
  #about-outline .title-01 {
    margin-top: 0;
  }
  #about-outline .section-body .has-img-right > .img {
    right: inherit;
  }
  
  #about-01 .section-body.card{
    padding-top: 30px;
  }
}

/*==============================================
05 CONTACT
==============================================*/
#post-22{
  max-width: 970px;
  margin: 0 auto;
}
#post-22 .entry-body > .section {
  max-width: 840px;
  position: relative;
  margin: 0 auto;
  padding-bottom: clamp(30px,5.15vw,50px);
}
#post-22 .entry-body > .section + .section{
  padding-top: clamp(30px,7.21vw,70px);
}
#post-22 .entry-body > .section + .section::before {
  content: "";
  display: block;
  position: absolute;
  max-width: 970px;
  width: calc(100vw - 30px);
  height: 0;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  border-top: 3px solid var(--vk-color-custom-1);
}
#post-22 .title-01 {
  font-size: clamp(20px,2.88vw,28px);
  text-align: center;
}
#post-22 .headline-01 {
  font-size: clamp(18px,2.06vw,20px);
}
#post-22 .wp-block-list li{
  letter-spacing: 0;
}

#contact-tel .tel-contents{
  margin-bottom: 0;
}
#contact-tel .tel-contents .fax {
  margin-top: 1em;
}

#contact-form > *:not(.headline-01) {
  max-width: 770px;
  margin-left: auto;
  margin-right: auto;
}


@media (max-width: 768px){

}

/* input */
.form-set{
  margin: 50px auto 0;
}
fieldset.form-item {
  border: 0 none;
  padding: 0;
  margin-bottom: 15px;
}
fieldset.form-item legend.form-label{
  font-size: 16px;
  font-weight: 500;
  text-align: left;
  margin-bottom: .75em;
  color: var(--vk-color-custom-1);
  letter-spacing: 0;
}
fieldset.form-item.req legend.form-label::after{
  content: "必須";
  color: #fff;
  background: #d34a53;
  font-size: 14px;
  font-weight: 500;
  margin-left: .5em;
  border-radius: 5px;
  padding: 2px 5px;
}
fieldset.form-item.check-acceptance legend.form-label::after{
  margin-left: -.5em;
}
input[type=date], input[type=email], input[type=number], input[type=password], input[type=tel], input[type=text], input[type=url], select, textarea {
  font-size: 16px;
  border: 0 none;
  border-radius: 10px;
  background: #f6f5f5;
  padding: 1.35em;
  margin-bottom: 0;
}
input[type=date]::placeholder, input[type=email]::placeholder, input[type=number]::placeholder, input[type=password]::placeholder, input[type=tel]::placeholder, input[type=text]::placeholder, input[type=url]::placeholder, select::placeholder, textarea::placeholder{
  color: #7f7f7f;
}
input[type=date].wpcf7-not-valid, input[type=email].wpcf7-not-valid, input[type=number].wpcf7-not-valid, input[type=password].wpcf7-not-valid, input[type=tel].wpcf7-not-valid, input[type=text].wpcf7-not-valid, input[type=url].wpcf7-not-valid, select.wpcf7-not-valid, textarea.wpcf7-not-valid, .wpcf7-not-valid {
  background-color: #fde9e9;
}
.form-item.w30 .wpcf7-form-control-wrap{
  width: 30%;
  min-width: 200px;
}

.form-item.check-acceptance .form-label{
  margin-top: .65em;
  margin-bottom: 0;
}

.wpcf7-form-control .wpcf7-list-item{
  position: relative;
  margin-left: 0;
}
.wpcf7-acceptance .wpcf7-list-item a {
  color: #00a794;
  text-decoration: underline;
  text-decoration-style: solid;
  text-underline-offset: 2px;
  text-decoration-color: rgba(0, 167, 148, .5);
  text-decoration-thickness: 1px;
  transition-duration: .3s;
  transition-property: text-decoration-color;
}
.wpcf7-acceptance .wpcf7-list-item a:hover {
  text-decoration-color: transparent;
}
.wpcf7-form-control label{
  line-height: 1.0;
}
.wpcf7-form-control input[type="checkbox"] + span::before,
.wpcf7-form-control input[type="checkbox"] + span::after,
.wpcf7-form-control input[type="radio"] + span::before,
.wpcf7-form-control input[type="radio"] + span::after{
  content: "";
  
  display: block;
  position: absolute;
  left: 3px;
  top: 3px;
}
.wpcf7-form-control input[type="checkbox"] + span::before,
.wpcf7-form-control input[type="radio"] + span::before{
  background-color: #a89d95;
  width: 16px;
  height: 16px;
  margin-top: 12px;
  margin-left: 12px;
  border-radius: 8px;
  z-index: 2;
  opacity: 0;
  transition: opacity .2s;
}
.wpcf7-form-control input[type="checkbox"] + span::after,
.wpcf7-form-control input[type="radio"] + span::after{
  background-color: #f6f5f5;
  width: 40px;
  height: 40px;
  border-radius: 20px;
  z-index: 1;
}
.wpcf7-form-control input[type="checkbox"]:checked + span::before,
.wpcf7-form-control input[type="radio"]:checked + span::before{
  opacity: 1;
}

.wpcf7-radio .wpcf7-list-item input,
.wpcf7-checkbox .wpcf7-list-item input,
.wpcf7-acceptance input.form-input {
  width: 40px;
  height: 40px;
  vertical-align: middle;
  border: 0 none;
  visibility: hidden;
  vertical-align: -14px;
}
.wpcf7-list-item-label{
  font-size: 18px;
}
.wpcf7-acceptance .wpcf7-list-item-label {
  font-size: 16px;
  vertical-align: middle;
}

.wpcf7-radio{
  display: block;
  padding-top: 1em;
  padding-bottom: 1em;
}
.wpcf7-list-item.first{
  margin-left: 0;
}
.wpcf7-radio .wpcf7-list-item-label{
  letter-spacing: 0;
  font-weight: 500;
}

.wpcf7-form-control-wrap{display: block;}
.wpcf7-form-control-wrap[data-name="your-pref"]::after{
  content: '\f078';
  font-family: "Font Awesome 7 Free";
  font-size: 1.25em;
  font-weight: 700;
  position: absolute;
  top: 0;
  right: 0;
  padding: 1.05em 0.8em;
  width: fit-content;
  color: #000;
  pointer-events:none
}

div.wpcf7cp-btns,
.form-btn{
  text-align: center;
  margin-top: 6.25%;
  display: block;
  position: relative;
}

.wpcf7-not-valid-tip{
  font-size: .8125em;
}

.wpcf7-spinner {
  position: absolute;
  top: 50%;
  left: 50%;
  margin: 0 !important;
  transform: translate(-50%, -50%);
}
form.submitting button.wpcf7-submit.has-spinner{
  opacity: .5;
}

@media (max-width: 991px){
  .wpcf7-radio{
    padding: .5em 0;
  }
  .wpcf7-list-item{
    display: block;
    margin: 1em 0;
  }
  .wpcf7-list-item.first{
    margin-top: 0;
  }
  .wpcf7-list-item.last{
    margin-bottom: 0;
  }
  .has-text-align-center{
    text-align: left;
  }
  .wpcf7-spinner{
    display: block;
    /*margin: 15px auto;*/
  }
  fieldset.form-item.check-acceptance .form-label,
  fieldset.form-item.check-acceptance .wpcf7-form-control-wrap {
    float: left;
  }
  fieldset.form-item.check-acceptance .form-label{
    margin-right: .25em;
  }
  fieldset.form-item.check-acceptance .wpcf7-form-control-wrap {
    line-height: 1.0;
  }
  fieldset.form-item.check-acceptance .wpcf7-list-item{
    margin: 0;
  }
}
@media (min-width: 992px){
  input[type=date], input[type=email], input[type=number], input[type=password], input[type=tel], input[type=text], input[type=url], select, textarea{
    font-size: 18px;
  }
  fieldset.form-item {
    position: relative;
    overflow: hidden;
    margin-right: 0;
    width: 100%;
    margin-bottom: 30px;
  }
  fieldset.form-item legend.form-label{
    width: 210px;
    font-size: 20px;
    font-weight: 700;
    padding-right: 15px;
    position: relative;
    float: left;
    margin-top: 1.35em;
    margin-bottom: 1em;
  }
  fieldset.form-item.req legend.form-label::after{
    display: block;
    position: absolute;
    right: 0;
    top: 0;
    margin-left: 0;
    margin-right: 1em;
    line-height: 1.75;
    width: calc(2em + 10px);
    padding: 0 5px;
    font-size: 15px;
  }
  fieldset.form-item.check-acceptance legend.form-label::after{
    margin-left: 0;
    margin-right: 1em;
  }
  
  .wpcf7-form-control-wrap{
    width: calc(100% - 210px);
    display: block;
    float: left;
  }
  .wpcf7-form-control .wpcf7-list-item + .wpcf7-list-item {
    margin-left: 1em;
  }
  div.wpcf7cp-btns{
    display: flex;
    gap: 20px;
  }
  
}


button.wpcf7-form-control{
  font-family: Quicksand, "Zen Maru Gothic", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", メイリオ, Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  width: 100%;
  padding: 1.52em 1.05em;
  font-size: clamp(20px,1.88vw,22px);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .1em;
  text-align: center;
  vertical-align: middle;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  border: 0 none;
  transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
  color: #fff;
  cursor: pointer;
  display: block;
  margin-left: 0;
  margin-right: 0;
  
  border-radius: 4.54em;
  box-shadow: 5px 5px 10px rgba(0,0,0,.2);
  position: relative;
  z-index: 0;
  overflow: hidden;
}
button.wpcf7-form-control::after {
  content: "\f061";
  font-family: "Font Awesome 7 Free";
  font-size: 22px;
  /*margin-right: .35em;*/
  text-indent: 0;
  display: inline-block;
  line-height: 1.0;
  vertical-align: 0;
  font-weight: 700;
  
  transition: transform .3s;
  margin-left: 1em;
  margin-right: -1em;
}
button.wpcf7-form-control[disabled]{
  opacity: .8;
}
button.wpcf7-form-control:not([disabled]):hover::after {
  transform: translateX(50%);
}
button.wpcf7-form-control::before {
  content: "";
  display: block;
  background: #f19119;
  background: linear-gradient(45deg,rgba(241, 145, 25, 1) 0%, rgba(241, 116, 25, 1) 100%);
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  z-index: -1;
  transition: opacity .15s ease-in-out;
}
button.wpcf7-form-control:not([disabled]):hover {
  color: #fff;
  filter: none;
}
button.wpcf7-form-control:not([disabled]):hover::before {
  opacity: 1;
}



button.wpcf7cp-cfm-edit-btn{
  background: #666;
}
button.wpcf7cp-cfm-edit-btn::before {
  /*content: "\f3e5";*/
}
button.wpcf7cp-cfm-edit-btn:hover {
  background-color: #999;
}
button.wpcf7-submit{
  background: var(--vk-color-custom-2);
  background: linear-gradient(45deg,rgba(0, 167, 148, 1) 0%, rgba(0, 157, 167, 1) 100%);
}
/*.wpcf7-submit::before{
  content: "\f044";
}*/
button.wpcf7-submit:not([disabled]):hover {
  background-color: var(--vk-color-custom-1);
}

@media (min-width: 992px) {
  .wpcf7-form-control::before {
  }
  button.wpcf7-form-control{
    padding-top: 1.42em;
    padding-bottom: 1.42em;
    font-weight: 700;
  }
  button.wpcf7-form-control::after{
    margin-left: 2em;
    margin-right: -2em;
  }
}

.wpcf7 + .has-text-align-center.notice{
  margin-top: 50px;
}

.wpcf7cp-form-hide{
  position: absolute;
}
div#wpcf7cpcnf{
  position: relative;
  margin-top: 8%;
}
#wpcf7cpcnf table{
  border-color: currentColor;
  border-style: dotted;
  border-left: 0 none;
  border-right: 0 none;
}
#wpcf7cpcnf th, #wpcf7cpcnf td {
  padding: 1.35rem;
  border-color: currentColor;
  border-style: dotted;
  border-left: 0 none;
  border-right: 0 none;
  font-size: 18px;
}
#wpcf7cpcnf th{
  width: 196px;
  text-align: left;
}
#wpcf7cpcnf td{
  width: calc(100% - 196px);
}
@media (max-width: 991px){
  #wpcf7cpcnf table, #wpcf7cpcnf tr, #wpcf7cpcnf th, #wpcf7cpcnf td {
    display: block;
    width: 100%;
    border-left: 0 none;
    border-right: 0 none;
  }
  #wpcf7cpcnf table {
    border: 0 none;
  }
  #wpcf7cpcnf th{
    border: 0 none;
  }
  #wpcf7cpcnf td{
    background: #f6f5f5;
    min-height: 3em;
    border-top: 0 none;
    border-bottom-color: #ccc;
  }
}


/* complete */
.contact-complete{
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 70px;
}
@media (max-width: 768px){
  .post-name-thanks h1.page-header-title{
    font-size: 31px;
  }
}

/*==============================================
06 PRIVACY POLICY
==============================================*/
.privacy-content{
  max-width: 770px;
  margin-left: auto;
  margin-right: auto;
}
.privacy-content *:not(.privacy-title){
  font-size: 16px;
}
.privacy-title {
  color: var(--vk-color-custom-1);
  font-size: clamp(18px,2.47vw,24px);
  font-weight: 700;
  line-height: 1.0;
  margin-top: 3em;
  margin-bottom: 2em;
  background: transparent;
  padding: 0 0 1em 0;
  border-radius: 0;
  border-bottom: 0 none;
}
.privacy-title::after {
  content: "";
  display: block;
  position: absolute;
  left: 50%;
  bottom: 0;
  max-width: 970px;
  width: calc(100vw - 30px);
  transform: translateX(-50%);
  border-bottom: 3px solid var(--vk-color-custom-1);
}
.privacy-title span.num{
  font-size: 133%;
  font-weight: 700;
  margin-right: .5em;
  font-family: "Zen Maru Gothic", sans-serif;
  vertical-align: bottom;
}
.privacy-content ul.wp-block-list {
  font-weight: 400;
}
.privacy-content p.privacy-date {
  font-size: 14px;
  margin-top: 4em;
  line-height: 2.0;
  letter-spacing: .1em;
}