@charset "utf-8";
html {
  scroll-behavior: smooth;
}
body {
  font-size: 18px;
  font-family: "Noto Sans CJK JP", "游ゴシック", "YuGothic", "Segoe UI", "Roboto", "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", 'Noto Sans JP', "Droid Sans", "ＭＳ Ｐゴシック", "Verdana", sans-serif;
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
  color: #333;
}
/*------------------------------全体の設定PCここから*/
main {
  margin: 0 auto;
}
section {
  width: 1000px;
  padding: 80px 0;
  margin: 0 auto;
}
div, p {
  line-height: 1.8em;
  text-align: justify;
  text-justify: inter-ideograph;
}
h1, h2, h3, h4 {
  line-height: 1.6em;
}
.small_txt {
  display: inline-block;
  line-height: 1.5em;
  font-size: .8em;
}
.mgt50 {
  margin: 50px auto 0;
}
.mgt20 {
  margin: 20px auto 0;
}
.mgb20 {
  margin: 0 auto 20px;
}
.hover {
  transition: .5s;
}
.hover:hover {
  transform: scale(1.05);
  opacity: .8;
}
.sp_img {
  display: none;
}
/*--------------*/
/*------------------------------全体の設定*/
/*----------------------------------------------タブレット*/
@media (min-width: 641px) and (max-width: 1024px) {
  section {
    width: 700px;
  }
}
/*--------------*/
/*------------------------------全体の設定*/
/*------------------------------スマホ*/
@media (max-width: 640px) {
  section {
    width: 90vw;
    padding: 10vw 0;
  }
  div, p {
    line-height: 1.7em;
    word-break: break-all;
  }
  p {
    font-size: 3.5vw;
  }
  h1, h2, h3, h4 {
    line-height: 1.8em;
  }
  .small_txt {
    line-height: 1.5em;
    font-size: 3vw;
    margin: 0 auto;
  }
  .mgt50 {
    margin: 10vw auto 0;
  }
  .mgt20 {
    margin: 3vw auto 0;
  }
  .mgb20 {
    margin: 0 auto 5vw;
  }
  .pc_img {
    display: none;
  }
  .sp_img {
    display: block;
  }
}
/*--------------*/
/*-----------------------------------------固定CVボタン*/
#cv_fix {
  width: 350px;
  position: fixed;
  right: 10px;
  bottom: 20px;
  z-index: 99999;
}
/*----------------*/
/*------------------------------固定CVボタン*/
/*------------------------------スマホ*/
@media (max-width: 640px) {
  #cv_fix {
    width: 100%;
    position: fixed;
    right: 0;
    left: 0;
    bottom: 0;
    z-index: 99999;
  }
}
/*--------------*/

/*------------------------------ポップアップPC*/
.popup-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

.popup-overlay.is-show {
  display: flex;
}

.popup-box {
  position: relative;
  width: 90%;
  max-width: 500px;
  background: #fff;
    font-size: 1.2em;
  padding: 50px;
  border-radius: 10px;
  text-align: center;
}

.popup-close {
  position: absolute;
  top: 10px;
  right: 10px;
  font-size: 1.2em;
  cursor: pointer;
}

/*----------------*/
/*------------------------------ポップアップ*/
/*------------------------------スマホ*/
@media (max-width: 640px) {
.popup-box {
  max-width: 90vw;
    font-size: 4vw;
    font-weight: 600;
  padding: 8vw;
  border-radius: 2vw;
}

.popup-close {
  top: 1vw;
  right: 1vw;
  font-size: 3.8vw;
}
}
/*--------------*/


/*------------------------------各セクションPC*/
header img {
  width: 200px;
  margin: 10px;
}
#sec1 h1 {
  color: #0C3187;
  font-size: 2.5em;
  font-weight: 900;
  text-align: center;
}
#sec1 h2 {
  background: #0C3187;
  color: #fff;
  font-size: 2em;
  font-weight: 600;
  text-align: center;
  border-radius: 40px;
  padding: 10px 0;
  margin: 10px 0 20px;
}

#sec1 .caution{
  background: #CD1111;
  color: #fff;
  font-size: 1.8em;
  font-weight: 600;
  text-align: center;
  padding: 10px;
  margin: 0 0 10px;
}

#sec1 p {
  font-size: 1.2em;
  text-align: center;
}
.sec2 {
  width: 100%;
  background: #EBF0FB;
  padding: 80px 0 30px;
}
.sec2 .contents {
  width: 1000px;
  background: #fff;
  border-radius: 30px;
  padding: 50px;
  margin: 0 auto 50px;
}
.red {
  color: rgba(235, 0, 3, 1.00);
  font-weight: 600;
}
.sec2 .contents h2, #sec3 h2, #faq h2 {
  color: #0C3187;
  font-size: 1.6em;
  font-weight: 600;
  text-align: center;
}
.border {
  width: 40px;
  height: 10px;
  background: #0C3187;
  margin: 15px auto 30px;
}
.sec2 .contents h3 {
  font-size: 1.2em;
  font-weight: 600;
}
.sec2 .contents p {
  margin: 10px 0 30px;
}
.sec2 .contents p:nth-last-child(1) {
  margin: 10px 0 0;
}
#sec3 {
  width: 1000px;
  border: 1px solid #0C3187;
  border-radius: 30px;
  padding:60px 50px;
  margin: 80px auto;
}
#sec3 .flow {
  display: flex;
  flex-wrap: wrap;
}
#sec3 .flow li {
  width: 400px;
  margin: 30px auto;
}
iframe{
    width: 600px;
    height: 340px;
    margin: 20px 150px 0;
}
/*--------------*/
/*------------------------------各セクション*/
/*----------------------------------------------タブレット*/
@media (min-width: 641px) and (max-width: 1024px) {
  .sec2 .contents {
    width: 700px;
  }
  #sec3 {
    width: 700px;
  }
  #sec3 .flow li {
    width: 250px;
  }
iframe{
    width: 600px;
    height: 340px;
    margin:20px 0 0;
}    
}
/*--------------*/
/*------------------------------各セクション*/
/*------------------------------スマホ*/
@media (max-width: 640px) {
  header img {
    width: 30vw;
    margin: 1vw;
  }
  #sec1 {
    padding: 5vw 0 10vw;
  }
  #sec1 h1 {
    font-size: 6vw;
  }
  #sec1 h2 {
    font-size: 5vw;
    border-radius: 7vw;
    padding: 2vw 0;
    margin: 2vw 0 5vw;
  }
    
#sec1 .caution{
  font-size: 5.5vw;
  padding:3vw;
  margin: 0 0 3vw;
}    
    
    
  #sec1 p {
    font-size: 4vw;
    text-align: left;
  }
  .sec2 {
    width: 100%;
    background: #EBF0FB;
    padding: 10vw 0 5vw;
  }
  .sec2 .contents {
    width: 90vw;
    border-radius: 3vw;
    padding: 8vw;
    margin: 0 auto 5vw;
  }
  .sec2 .contents h2, #sec3 h2, #faq h2 {
    font-size: 5.5vw;
  }
  .border {
    width: 7vw;
    height: 2vw;
    margin: 2vw auto 8vw;
  }
  .sec2 .contents h3 {
    font-size: 4vw;
  }
  .sec2 .contents p {
    margin: 1vw 0 5vw;
  }
  .sec2 .contents p:nth-last-child(1) {
    margin: 1vw 0 0;
  }
  #sec3 {
    width: 90vw;
    border: .2vw solid #0C3187;
    border-radius: 3vw;
    padding: 8vw 8vw 3vw;
    margin: 10vw auto;
  }
  #sec3 .flow {
    flex-direction: column;
  }
  #sec3 .flow li {
    width: 100%;
    margin: 5vw auto;
  }
    
iframe{
    width: 80vw;
    height: 42vw;
    margin: 5vw 0;
}    
    
}
/*--------------*/
/*------------------------------キット申し込みPC*/
#cta {
  width: 100%;
  background: #EBF0FB;
}
#cta .cta_contents {
  width: 1000px;
  margin: 0 auto;
}
#cta .about-kit {
  background: #fff;
  text-align: center;
  border-radius: 30px;
  padding: 50px;
}
#cta .cta_contents h2 {
  color: #0C3187;
  font-size: 2em;
  font-weight: 600;
  text-align: center;
}
#cta .cta_contents .kit-ph {
  width: 460px;
  margin: 20px 120px 0;
}
#cta .cta_contents h3, #cta .cta_contents .price {
  font-size: 1.8em;
  font-weight: 600;
  text-align: center;
}
#cta .cta_contents h3.caution-txt{
    font-size: 1.3em;
}
#cta .about-kit .item{
    font-size: 1.1em;
    text-align: center;
}
#cta .caution {
  width: 600px;
  color: rgba(235, 0, 3, 1.00);
  font-weight: 600;
  margin: 30px auto;
}
.cv {
  margin: 80px 0 0;
}
input[type="checkbox"], input[type="radio"] {
  transform: scale(2.0);
  margin: 50px 10px 0 0;
}
.checkbox {
  font-size: 1.2em;
}
.cv-btn {
  display: flex;
    text-decoration: none;
  align-items: center;
  width: 500px;
  background: #0C3187;
  color: #fff;
  font-size: 1.2em;
  border-radius: 10px;
  padding: 30px 0;
  margin: 20px auto;
  cursor: pointer;
}
/* 無効状態 */
.cv-btn.disabled {
  opacity: 0.5;
  pointer-events: none; /* ← クリックできなくする */
}
.cv-btn img {
  width: 30px;
  margin: auto;
}
.cv-btn a:hover {
  background-color: #0056b3;
}
.cv .accordion_title {
  align-items: center;
  width: 800px;
  background: #DB2121;
  color: #fff;
  font-size: 1.1em;
  position: relative;
  cursor: pointer;
  padding: 30px;
  margin: 30px auto;
}


/* summaryの標準矢印（▶）を消す */
summary.accordion_title {
  list-style: none;
}

summary.accordion_title::-webkit-details-marker {
  display: none;
}


/* 開く・閉じるボタン共通 */
.cv .accordion_title::after {
  content: "注意事項を開く";
    display: block;
    width: 300px;
    line-height: 1;
  background: #F1F1F1;
  color: #252525;
    font-weight: 600;
    text-align: center;
  border-radius: 30px;
    padding: 10px 0;
    margin: 20px auto 0;
  pointer-events: none;
  transition: .5s;    
}

/* 開いている時 */
.cv .accordion[open] .accordion_title::after {
  content: "閉じる";
  background: #F1F1F1;
  color: #454545;
}

#cta .cv h4 {
    color: #0056b3;
  font-size: 1.5em;
  font-weight: 600;
  margin: 40px 0 10px;
}

.highlight{
    background: #FFFAC0;
    font-weight: 600;
}
/*--------------*/
/*------------------------------キット申し込み*/
/*----------------------------------------------タブレット*/
@media (min-width: 641px) and (max-width: 1024px) {
  #cta .cta_contents {
    width: 700px;
  }

.cv {
  margin: 40px 0 0;
}
input[type="checkbox"], input[type="radio"] {
  transform: scale(2.0);
  margin: 40px 10px 0 0;
}
.cv-btn img {
  width: 40px;
}
.cv .accordion_title {
  width: 500px;
  padding: 40px;
}

}
/*--------------*/
/*------------------------------キット申し込み*/
/*------------------------------スマホ*/
@media (max-width: 640px) {
  #cta .cta_contents {
    width: 90vw;
  }
  #cta .about-kit {
    border-radius: 3vw;
    padding: 8vw;
  }
  #cta .cta_contents h2 {
    font-size: 6.5vw;
  }
  #cta .cta_contents .kit-ph {
    width: 70vw;
    margin: 2vw 5vw 0;
  }
  #cta .cta_contents h3, #cta .cta_contents .price {
    font-size: 5.5vw;
  }
    
#cta .cta_contents h3.caution-txt{
    font-size: 3.5vw;
}    
    
  #cta .cta_contents .price span {
    font-size: 3.5vw;
  }
#cta .about-kit .item{
    font-size: 3.5vw;
    margin:0 0;
}    
  .cv {
    font-size: 3.8vw;
    margin: 3vw 0;
  }
  input[type="checkbox"], input[type="radio"] {
    transform: scale(1.1);
    margin: 5vw 1vw 0 0;
  }
  .checkbox {
    font-size: 4vw;
  }
.cv-btn {
  width: 100%;
  border-radius: 2vw;
  padding: 6vw 0;
  margin: 5vw auto;
}
    .cv-btn p{
        font-size: 4.5vw;
    }
  .cv-btn img {
    width: 6vw;
  }

.cv .accordion_title {
  width: 64vw;
    font-size: 3.8vw;
    padding: 5vw;
    margin: 2vw auto 5vw;
}
/* 開く・閉じるボタン共通 */
.cv .accordion_title::after {
    width:100%;
    font-size: 3.5vw;
  border-radius: 6vw;
    padding: 3vw 0;
    margin: 4vw auto 0;
  transition: .5s;    
}

    #cta .cv h4 {
  font-size: 4.5vw;
  margin: 5vw 0 1vw;
}    
}
/*--------------*/


/*------------------------------バナー設定PC*/
.banner {
    width: 700px;
  margin: 100px auto 50px;
}
.banner p{
    font-size: 1.2em;
    font-weight: 600;
    text-align: center
}
.banner img{
    width: 350px;
    object-fit: contain;
    margin: 10px 175px 30px;
}
/*--------------*/
/*------------------------------バナー*/
/*------------------------------スマホ*/
@media (max-width: 640px) {
.banner {
width: 90vw;
  margin: 10vw auto 0;
}
.banner p{
    font-size: 3.5vw;
}
.banner img{
    width: 70vw;
    margin: 1vw 10vw 5vw;
}
}
/*--------------*/


/*------------------------------よくある質問の設定PC*/
#faq .accordion_title {
  display: flex;
  align-items: center;
  width: 100%;
  background: #F0F5FF;
  color: #0C3187;
  font-size: 1.1em;
  font-weight: 600;
  position: relative;
  cursor: pointer;
  padding: 15px 20px;
  margin: 40px auto 0;
}
summary.accordion_title::-webkit-details-marker {
  display: none;
}
#faq .accordion_title:after {
  content: "＋";
  line-height: 1;
  pointer-events: none;
  margin: 0 0 0 auto;
}
.accordion::details-content {
  opacity: 0;
  block-size: 0;
  transition: .3s;
  transition-property: display, opacity, block-size, padding;
  transition-behavior: allow-discrete;
}
.accordion[open]::details-content {
  opacity: 1;
  block-size: auto;
  block-size: calc-size(auto, size);
}
.accordion[open] .accordion_title:after {
  content: "閉じる";
}
.accordion_contents {
  margin: 15px 0 0;
}
/*--------------*/
/*------------------------------よくある質問*/
/*----------------------------------------------タブレット*/
@media (min-width: 641px) and (max-width: 1024px) {
  .accordion_title {
    width: 660px;
  }
}
/*--------------*/
/*------------------------------よくある質問*/
/*------------------------------スマホ*/
@media (max-width: 640px) {
  .accordion_title {
    width: 76vw;
    font-size: 3.5vw;
    padding: 3vw 5vw;
    margin: 8vw auto 0;
  }
  .accordion_title:after {
    font-size: 3.5vw;
  }
  .accordion_contents {
    width: 76vw;
    margin: 2vw auto 0;
  }
}
/*--------------*/
/*------------------------------問合せの設定PC*/
#inquiry h2 {
  font-size: 1.2em;
  font-weight: 600;
  text-align: center;
}
#inquiry div {
  text-align: center;
  margin: 20px auto 0;
}
#inquiry div span {
  font-size: 1.3em;
  font-weight: 600;
  text-align: center;
}
/*--------------*/
/*------------------------------問合せ*/
/*------------------------------スマホ*/
@media (max-width: 640px) {
  #inquiry h2 {
    font-size: 4.5vw;
  }
  #inquiry div {
    margin: 5vw auto 0;
  }
  #inquiry div span {
    font-size: 5vw;
  }
}
/*--------------*/
/*------------------------------フッターPCここから*/
#footer {
  background: #fff;
  padding: 0 0;
}
#footer .institution {
  font-size: 1.2em;
  text-align: center;
}
#footer .institution span {
  display: block;
  line-height: 1.3em;
  font-size: .8em;
}
.tel a {
  text-decoration: none;
  color: #333;
}
#footer .foot_logo {
  width: 250px;
  margin: 50px auto 20px;
}
#footer .add, #footer .registration-number {
  font-size: .7em;
  text-align: center;
  margin: 0 auto;
}
#footer .registration-number {
  font-size: .6em;
}
#footer .foot_list li {
  font-size: .8em;
  font-weight: 300;
  text-align: center;
  margin: 20px auto;
}
#footer .foot_list li a {
  text-decoration: none;
  color: #333;
}
#footer .small_box {
  font-size: .5em;
  text-align: center;
  padding: 30px 0 10px;
}
/*--------------*/
/*------------------------------フッター*/
/*----------------------------------------------スマホ*/
@media (max-width: 640px) {
  #footer {
    padding: 0 0 20vw;
  }
  #footer .institution {
    width: 90vw;
    font-size: 4vw;
    margin: 0 auto;
  }
  #footer .foot_logo {
    width: 40vw;
    margin: 5vw auto 2vw;
  }
  #footer .add, #footer .registration-number {
    font-size: 2.5vw;
    padding: 3vw 0;
    margin: 0 auto;
  }
  #footer .foot_list {
    flex-direction: column;
    margin: 5vw auto;
  }
  #footer .foot_list li {
    width: 70vw;
    font-size: 3vw;
    padding: 2vw 0;
    margin: 0 auto;
  }
  #footer .small_box {
    font-size: 2vw;
    margin: 0 auto;
  }
}
/*--------------*/
/*--------------*/
.clearfix:after {
  content: "";
  display: block;
  clear: both;
}