:root {

    /* color */
    --black: #0F1524;
    --blue: #0084CE;
    --blueDeep: #0071BC;
    --white: #fff;
    --lightBlue:#E5F3FA;
    --gray: #707070;
    --GrayDark:#808080;
    --grayLight: #BDBDBD;
    --gradation: linear-gradient(90deg, #0071BC 0%, #0097E0 100%);    
  

    /* font family */
    --ja-font: "noto-sans-cjk-jp", sans-serif;
    --en-font:"Roboto", sans-serif;


    /* border radius */
    --radius-s: 0.3125rem;
    --radius-r: 0.625rem;


    /* font size */
    --fontSize-pcS: 1.05rem;
    --fontSize-pcR: 1.125rem;
    --fontSize-tabR: 1rem;
    --fontSize-tabR: 1rem;
    --fontSize-spR: 1rem;
    --fontSize-spS: 0.875rem;


    /* line height */
    --lineHeight-pcR: 1.875;
    --lineHeight-tabR: 1.75rem;


    /* margin */
    --sp-contentMargin: 4.37rem;
    --sec-margin-r: 4.38rem;
    --sec-margin-l: 6.25rem;
  }


.contact-form {
    max-width: 1100px;
    margin: 0 auto;
  }

  .form-detail {
    margin-top: 2.5rem;
    text-align: center;
  }
  
  .form-title {
    color: var(--blue);
    text-align: center;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.625rem; /* 81.25% */
    letter-spacing: 0.02rem;
  }
  
  
  .form-content {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: .62rem;
  }


  .form-group{
    margin-top:2.81rem;
    display: flex;
    gap: 3.75rem;
    align-items: flex-start;
  }

  .form-group.confirm {
    margin-top: 3.12rem;
  }

  .form-group.confirm.name .form-content {
    width: auto;
  }
  
  .label-text {
    display: flex;
    align-items: center;
    gap: .94rem;
    width: 30%;
    flex-shrink: 0;
    font-size: var(--fontSize-pcR);
    font-weight: 500;
    line-height: var(--lineHeight-pcR); /* 181.818% */
    letter-spacing: 0.09rem;
  }
  
  .label-text span:last-child {
    font-size: var(--fontSize-pcR);
    font-weight: 500;
    line-height: var(--lineHeight-pcR); /* 181.818% */
  }
  
  .required,
  .optional {
    display: inline-block;
    padding: 0.2rem 0.5125rem 0.2rem 0.9125rem;
    border-radius: 0.1875rem;
    font-size: var(--fontSize-pcS);
    font-weight: 700;
    line-height: 1.5; /* 181.818% */
    letter-spacing: 0.54rem;
    border: solid .75px var(--blue);
  }
  
  .required {
    background-color: var(--blue);
    color: var(--white);
  }
  
  .optional {
    border-color: var(--blue);
    color: var(--blue);
  }


  
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  textarea {
    width: 100%;
    padding: 0.8125rem 1.25rem;
    border: 1px solid var(--grayLight);
    transition: border-color 0.3s ease;
    font-size: var(--fontSize-pcR);
    line-height: var(--lineHeight-pcR); /* 181.818% */
    letter-spacing: 0.09rem;
    font-weight: 400;
    color: var(--black);
  }
  
  input[type="text"]:focus,
  input[type="email"]:focus,
  input[type="tel"]:focus,
  textarea:focus {
    outline: none;
    border-color: var(--blue);
  }

  ::placeholder {
    color: var(--grayLight);
    font-size: var(--fontSize-pcR);
    line-height: var(--lineHeight-pcR); /* 181.818% */
    letter-spacing: 0.09rem;
    font-weight: 400;
  }
  
  .name-inputs {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    width: 100%;
  }

  .name-inputs input {
    width: 100%;
  }
  
  .tel-inputs {
    display: flex;
    align-items: center;
    gap: .94rem;
  }
  
  .tel-inputs input {
    width:calc(100% / 3 );
  }
  
  .separator {
    color: #000;
    width: 0.625rem;
  }
  
  .form-note {
    font-size: 1.125rem;
    line-height: 1.875rem; /* 166.667% */
    letter-spacing: 0.09rem;

  }
  
  
  .checkbox-label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    position: relative;
    padding-left: 2.125rem;
    color: var(--black);
    margin-top: 2.5rem;
  }
  
  .checkbox-label input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
  }

  .checkbox-label::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1.425rem;
    height: 1.425rem;
    border: 1px solid var(--grayLight);
    box-sizing: border-box;
  }

  .checkbox-label input[type="checkbox"]:checked + span::after {
    content: '';
    position: absolute;
    top: 47%;
    left: 0.35rem;
    transform: translateY(-50%) rotate(-45deg);
    width: 12px;
    height: 8px;
    border-left: 3px solid var(--blue);
    border-bottom: 3px solid var(--blue);
  }

  .checkbox-label span {
    font-size: var(--fontSize-pcR);
    line-height: var(--lineHeight-pcR); /* 181.818% */
    letter-spacing: 0.09rem;
    padding-bottom: 0;
  }

  
  .policy-text {
    margin-top: 0;
    font-size: var(--fontSize-pcR);
    line-height: var(--lineHeight-pcR); /* 181.818% */
    letter-spacing: 0.09rem;

  }
  
  .policy-link {
    color: var(--blue);
    text-decoration: none;
    transition: all 0.3s ease;
  }
  
  @media (hover: hover) and (pointer: fine) {
  .policy-link:hover {
    text-decoration: underline;
  }
}
    
  
  .form-actions {
    text-align: center;
    padding-bottom: 6.25rem;
  }

  .form-actions .cta-button-container.flex {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3.5rem;
  }
  

  .form-group.privacy-policy {
    opacity: 1;
    margin-top: 3.75rem;
  }

  .form-group.privacy-policy .form-content {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    width: 70%;
  }


  .contact-border {
    border-top: 1px solid var(--grayLight);
    width: 100%;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    display: block;
  }

  .section-description {
    font-size: var(--fontSize-pcR);
    line-height: var(--lineHeight-pcR); /* 181.818% */
    letter-spacing: 0.09rem;
    margin: 0 auto;
    text-align: left;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .form-content .form-value {
    font-size: var(--fontSize-pcR);
    line-height: var(--lineHeight-pcR); /* 181.818% */
    letter-spacing: 0.09rem;
  }

  /* contact btn */


  .form-actions .cta-button-container .arrow-button {
    width: 17.825vw;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 1.65rem 1.25rem 1.8rem;
}

.form-actions .cta-button-container .arrow-button.back {
    padding: 1.25rem 2rem 1.25rem 1.8rem;
}

.form-actions .cta-button-container .arrow-button.send {
    padding: 1.25rem 1.8rem 1.25rem 2rem;
}

  /* thanks page */

  .thanks-content {
    text-align: center;
    margin-top: 5.25rem;
  }
  .thanks-content .detail {
    color: var(--blue);
    font-size: 1.0625rem;
    font-weight: 700;
    letter-spacing: 0.01063rem;
  }

  .thanks-content .contact-info {
    margin-top: 1.32rem;
    justify-content: center;
  }

  .thanks-content .phone {
    align-items: center;
  }

  .thanks-content .phone-number ,
  .thanks-content .phone-hours{
    color: var(--blue);
  }

  .thanks-content .phone-hours{
    font-size: 0.6875rem;
    font-style: normal;
    font-weight: 500;
  }


  @media (max-width: 1500px) {

    .contact-form {
        max-width: 950px;
        margin: 0 auto;
      }
      
  .label-text {
    gap: .94rem;
    font-size: var(--fontSize-tabR);
    line-height: var(--lineHeight-tabR); /* 181.818% */
  }

  .required, .optional {
    font-size: var(--fontSize-tabR);
    line-height: var(--lineHeight-tabR); /* 181.818% */
    padding: 0.15rem 0.3125rem 0.25rem 0.8125rem;
    white-space: nowrap;
    flex-shrink: 0;
    

  }

  .label-text span:last-child {
    font-size: var(--fontSize-tabR);
    font-weight: 500;
    line-height: var(--lineHeight-tabR); /* 181.818% */

  }

  .form-note {
    font-size: var(--fontSize-spR);
    line-height: var(--lineHeight-tabR); /* 181.818% */
  }


  input[type="text"],
  input[type="email"],
  input[type="tel"],
  textarea {
    padding: 0.8125rem 1.25rem;
    font-size: var(--fontSize-tabR);
    line-height: var(--lineHeight-tabR); /* 181.818% */

  }

  ::placeholder {
    font-size: var(--fontSize-tabR);
    line-height: var(--lineHeight-tabR); /* 181.818% */
  }

  .section-description {
    font-size: var(--fontSize-tabR);
    line-height: var(--lineHeight-tabR); /* 181.818% */
    text-align: center;
  }


  .checkbox-label span {
    font-size: var(--fontSize-tabR);
    line-height: var(--lineHeight-tabR); /* 181.818% */
    letter-spacing: 0.09rem;
    padding-bottom: 0;
  }

  
  .policy-text {
    margin-top: 0;
    font-size: var(--fontSize-tabR);
    line-height: var(--lineHeight-tabR); /* 181.818% */
    letter-spacing: 0.09rem;

  }

  .form-content .form-value {
    font-size: var(--fontSize-tabR);
    line-height: var(--lineHeight-tabR); /* 181.818% */
    letter-spacing: 0.09rem;
  }

  .form-actions .cta-button-container .arrow-button.back {
    padding: 1.25rem 1.8rem 1.25rem 1.8rem;
}

.form-actions .cta-button-container .arrow-button.send {
    padding: 1.25rem 1.8rem 1.25rem 1.8rem;
}

.contact-border {
  width: 100%;
}


  }


    
  @media (max-width: 1100px) {
    .form-group{
        margin-top:2.81rem;
        display: flex;
        gap: 2.56rem;
        align-items: flex-start;
      }

      .checkbox-label {
        margin-top: 0;
      }
    
      .form-group.privacy-policy .form-content {
        gap: 1.25rem;
      }

      .form-actions .cta-button-container .arrow-button {
        width: 16.5rem;
        text-align: center;
    }

    .form-actions .cta-button-container .arrow-button-container:first-child {
        margin-top: 0;
    }

    .form-actions .cta-button-container .arrow-button-container:last-child {
      margin-top: 6.25rem;
  }


  /* フォームのボタン余白調整 */

  .form-actions .cta-button-container .arrow-button.back {
    padding: 1.25rem 1rem 1.25rem 7rem;
}

.form-actions .cta-button-container .arrow-button.send {
    padding: 1.25rem 1.8rem 1.25rem 7rem;
}

.form-actions .arrow-button-container.back::before  {
  content: '';
    position: absolute;
  left: 20%;
}
      
  .form-group.privacy-policy {
    margin-top: 2.56rem;
  }

  .form-actions .cta-button-container.flex {
    flex-direction: column-reverse;
    gap: .25rem;
  }


  .contact-border {
    width: 100%;
    display: block;
  }

  }
  
  @media (max-width: 768px) {

    .form-group {
        flex-direction: column;
        gap: .75rem;
        margin-top: 2.2rem;
    }

    .form-group.confirm {
      gap: .35rem;
    }

    .form-content {
        width: 100%;
    }

  
    .form-title {
      font-size: 24px;
      margin-bottom: 32px;
    }

    input[type="text"],
    input[type="email"],
    input[type="tel"],
    textarea {
      width: 100%;
      padding: 0.625rem;
      font-size: var(--fontSize-spR);
    }


    ::placeholder {
        font-size: var(--fontSize-spR);
      }
  
    .form-group label {
      flex-direction: column;
      gap: 12px;
    }

    .required, .optional {
        font-size: var(--fontSize-spR);
        padding: 0.7rem 0.5125rem 0.8rem 0.8125rem;
        letter-spacing: 0.35rem;
        height: 1.5625rem;
        display: flex;
        align-items: center;
        justify-content: center;
      }
  
    .label-text {
      width: 100%;
      gap: .94rem;
      font-size: var(--fontSize-spR);
    }

    .label-text span:last-child {
        font-size: 1rem;
    }

    .thanks-content .contact-info {
      margin-top: 1rem;
    }
  
    .form-note {
      padding-left: 0;
      font-size: 0.875rem;
      font-style: normal;
      font-weight: 400;
      line-height: 1.25rem; /* 171.429% */
      letter-spacing: 0.00875rem;
    }
  
    .name-inputs {
      grid-template-columns: 1fr;
      gap: 12px;
    }
  
    .tel-inputs {
      flex-wrap: wrap;
    }
  
    .tel-inputs input {
      flex: 1;
      min-width: 80px;
    }

    .checkbox-label {
        align-items: flex-start;
        position: relative;
      }

      .checkbox-label span {
        margin-bottom: 0;
        margin-top: .2rem;
      }

      .form-actions {
        padding-bottom: var(--sp-contentMargin);
      }
      .form-actions .cta-button-container .arrow-button {
        width: 16.875rem;
    }

    .form-actions .cta-button-container .arrow-button-container:last-child {
        margin-top: var(--sp-contentMargin);
    }
    .form-actions .cta-button-container .arrow-button-container:first-child {
      margin-top: 0;
  }
      .form-actions img.btn-arrow {
        height: 56%;
      }

      .form-actions  .button {
        max-width: 14rem;
        width: 100%;
      }

      .thanks-content .contact-info .phone {
        gap: .1rem;
      }

      .thanks-content {
        text-align: center;
        margin-top: 3.75rem;
      }

    .form-group.privacy-policy {
      margin-top: 1.5rem;
    }

    .form-group.privacy-policy .form-content {
      width: 100%;
    }

    .checkbox-label {
      align-items: flex-start;
    }

    .checkbox-label span {
      font-size: var(--fontSize-spR);
      margin-top: 0;
    }

    .policy-text {
      font-size: var(--fontSize-spR);
      line-height: 1.6;
    }

    .form-group.confirm {
      margin-top: 2.5rem;
    }

    .form-actions .cta-button-container .arrow-button.send {
      padding: 1rem 1.8rem 1rem 7rem;
    }
    
    .form-actions .cta-button-container .arrow-button.back {
      padding: 1rem 1rem 1em 7rem;
    }
  }

  /* Radio Button Styles */
  .radio-group {
    display: flex;
    align-items: center;
    column-gap: 3.12rem;
  }
  
  .radio-label {
    position: relative;
    padding-left: 2rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    font-size: var(--fontSize-pcR);
    line-height: var(--lineHeight-pcR);
    letter-spacing: 0.09rem;
    color: var(--black);
  }
  
  .radio-label input[type="radio"] {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
  }
  
  .radio-label::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1.375rem;
    height: 1.375rem;
    border: 1px solid var(--grayLight);
    border-radius: 50%;
    background-color: var(--white);
    box-sizing: border-box;
    cursor: pointer;
    transition: border-color 0.3s;
  }
  
  .radio-label input[type="radio"]:checked + span::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0.3rem;
    transform: translateY(-50%);
    width: 0.75rem;
    height: 0.75rem;
    background-color: var(--blue);
    border-radius: 50%;
  }

  @media (max-width: 1500px) {
    .radio-label {
      font-size: var(--fontSize-tabR);
      line-height: var(--lineHeight-tabR);
    }
  }

  @media (max-width: 768px) {
    
    .radio-label {
      font-size: var(--fontSize-spR);
      line-height: 1.6;
      padding-left: 1.8rem;
    }
    
    .radio-label::before {
      width: 1.375rem;
      height: 1.375rem;
    }
    
    .radio-label input[type="radio"]:checked + span::after {
      width: 0.75rem;
      height: 0.75rem;
      left: 0.3rem;
    }
  }



  /*確認画面と完了画面を非表示*/
  .confirm_area,
  .thanks_area {
      display: none;
  }

  /*デフォルトのサンクスメッセージを非表示*/
  .wpcf7-response-output{
      display: none;
  }




/* カスタムラジオボタンの外枠 */
.wpcf7-checkbox label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1.2rem;
  height: 1.2rem;
  border: 1px solid #CDD6DD;
  border-radius: .2rem;
  background-color: #fff;
  box-sizing: border-box;
  cursor: pointer;
  transition: border-color 0.3s;
}

/* カスタムラジオボタンの選択時のチェック */
.wpcf7-checkbox input[type="checkbox"]:checked + span::before {
  border-color: #0297E0;
}

.wpcf7-checkbox input[type="checkbox"]:checked + span::after {


    content: '';
    position: absolute;
    top: 50%;
    left: 0.3rem;
    transform: translateY(-50%) rotate(-45deg);
    width: 10px;
    height: 6px;
    border-left: 2.5px solid #0297E0;
    border-bottom: 2.5px solid #0297E0;
}


.wpcf7-checkbox  .wpcf7-list-item.first,
.wpcf7-radio  .wpcf7-list-item.fist {
  margin: 0;
}


/* contact form 7の形式に変更 */
.form-actions .arrow-button-container {
  display: inline-flex;
  align-items: center;
  cursor: pointer !important;
  position: relative;

}

.form-actions .arrow-button-container .arrow-button {
  padding: 1rem 2.6rem 1rem 1.4rem;
}

.form-actions .arrow-button-container::after {
  content: '';
  position: absolute;
  top: 42%;
  right: 10%;
  width: .65rem;
  height: .65rem;
  transform: translateY(-60%);
  background-size: contain;
  background-repeat: no-repeat;
  background-image: url('https://e-value.jp/legal-support/wordpress/wp-content/themes/legal-support-site/src/img/common/arrow-r-bl.svg');
  transition: all .3s ease;

}

.form-actions .arrow-button-container:hover::after {
  content: '';
  position: absolute;
  top: 42%;
  right: 10%;
  width: .65rem;
  height: .65rem;
  transform: translateY(-60%);
  background-size: contain;
  background-repeat: no-repeat;
  background-image: url('https://e-value.jp/legal-support/wordpress/wp-content/themes/legal-support-site/src/img/common/arrow-r-w.svg');

}

.form-actions .cta-button-container {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.25rem;
}

.form-actions .cta-button-container .arrow-button {
  padding: 1rem 2.6rem 1rem 1.4rem;
}

/* 戻るボタン */

.form-actions .arrow-button-container.back {
  position: relative;
}
.form-actions .arrow-button-container.back::before {
  content: '';
  position: absolute;
  top: 42%;
  left: 10%;
  width: .65rem;
  height: .65rem;
  transform: translateY(-60%);
  background-size: contain;
  background-repeat: no-repeat;
  background-image: url('https://e-value.jp/legal-support/wordpress/wp-content/themes/legal-support-site/src/img/common/arrow-l-bl.svg');
  transition: all .3s ease;

}

.form-actions .arrow-button-container.back:hover::before {
  content: '';
  position: absolute;
  top: 42%;
  left: 10%;
  width: .65rem;
  height: .65rem;
  transform: translateY(-60%);
  background-size: contain;
  background-repeat: no-repeat;
  background-image: url('https://e-value.jp/legal-support/wordpress/wp-content/themes/legal-support-site/src/img/common/arrow-l-w.svg');

}


.form-actions .arrow-button-container.back::after {
  display: none;
}


.form-actions .arrow-button-container.send {
  position: relative;
}
.form-actions .arrow-button-container.send::after {
  content: '';
  position: absolute;
  top: 42%;
  right: 9%;
  width: .65rem;
  height: .65rem;
  transform: translateY(-60%);
  background-size: contain;
  background-repeat: no-repeat;
  background-image: url('https://e-value.jp/legal-support/wordpress/wp-content/themes/legal-support-site/src/img/common/arrow-r-bl.svg');
  transition: all .3s ease;

}

.form-actions .arrow-button-container.send:hover::after {
  content: '';
  position: absolute;
  top: 42%;
  right: 9%;
  width: .65rem;
  height: .65rem;
  transform: translateY(-60%);
  background-size: contain;
  background-repeat: no-repeat;
  background-image: url('https://e-value.jp/legal-support/wordpress/wp-content/themes/legal-support-site/src/img/common/arrow-r-w.svg');

}

/* 送信ボタン */

.confirm_your_myouji,
.confirm_your_kaan {
  display: inline-block;
}


.wpcf7-spinner {
  display: none !important;
}





/* ラジオボタンのスタイル  */

.radio-group .wpcf7-radio {
  display: flex;
justify-content:flex-start;
	align-items: center;
  flex-wrap: wrap;
  column-gap: 2rem;
  row-gap: .5rem;
  font-size: 1.125rem;
}
.radio-group.contact-method {
  flex-direction: row;
}


.wpcf7-list-item label{
  display: flex;
  align-items: center;
  cursor: pointer;
  position: relative;
}
/* .wpcf7-list-item label::before {
  content: "";
  appearance: none;
  width: 1rem;
  height:1rem;
  border: 1.5px solid #CDD6DD;
  border-radius: 50%;
  margin-right: 0.5rem;
  cursor: pointer;
}

.wpcf7-list-item label::after {  
  content: "";
  position: absolute;
  top: 18%;
  left: 2%;
  background: #0297E0;
  border-radius: 50%;
  opacity: 1;
  width: .6rem;
  height: .6rem;
}

.wpcf7-list-item label:has(:checked)::after {  
  opacity: 1;
} */

/* ラジオボタンの元のスタイルを非表示にする */
.wpcf7-radio input[type="radio"] {
  display: none;
}

/* ラベルのスタイルをカスタマイズ */
.wpcf7-radio label {
  position: relative;
  padding-left: 2rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
}

/* カスタムラジオボタンの外枠 */
.wpcf7-radio label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1.2rem;
  height: 1.2rem;
  border: 1px solid var(--grayLight);
  border-radius: 50%;
  background-color: #fff;
  box-sizing: border-box;
  cursor: pointer;
  transition: border-color 0.3s;
}

/* カスタムラジオボタンの選択時のチェック */
.wpcf7-radio input[type="radio"]:checked + span::before {
  border-color: var(--blue);
}

.wpcf7-radio input[type="radio"]:checked + span::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0.3rem;
  transform: translateY(-50%);
  width: 0.6rem;
  height: 0.6rem;
  background-color: var(--blue);
  border-radius: 50%;
}

@media screen and (max-width: 768px) {
  .radio-group .wpcf7-radio {
    flex-direction: column;
    align-items: flex-start;
    row-gap: 0;
  }
  .wpcf7-list-item {
    margin: 0 0 0 0.45rem !important;
  }
}



/* thanks page */
.sec-wrapper.thanks .section-title {
  margin-bottom: 4.3rem;
}

.sec-wrapper.thanks .form-actions .arrow-button-container::after {
  display: none;
}

.sec-wrapper.thanks .form-actions .arrow-button-container .arrow-button {
  padding: 1rem 3.8rem 1rem 1.4rem;
}
@media screen and (max-width: 1500px) {

  .sec-wrapper.thanks .form-actions .arrow-button-container .arrow-button {
    padding: 1rem 4rem 1rem 1.4rem;
  }
}

@media screen and (max-width: 1200px) {
  .form-actions .arrow-button-container .arrow-button {
    padding: 1rem 1.4rem 1rem 3rem;
  }
}

@media screen and (max-width: 768px) {
  .sec-wrapper.thanks .section-title {
    margin-bottom: 3.12rem;
  }
}