@charset "UTF-8";

html {
  font-size:62.5%;
}
body {
  font-size:1.4rem;
  color: #fff;
  font-family: 'Noto Sans JP', sans-serif;
  
}
img{
    display: block;
    width: auto;
}
*, *::before, *::after {
  box-sizing:border-box;
}
.clearfix::after {
  content:'';
  display:block;
  clear:both;
}
h2{
    font-weight: 400;
}
p{
    font-size: 2rem;
}
section{
    margin: 42px 0 0;
}
#ap{
    background-color: #000;
}
.head-wrap{
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
}
.mv-pc{
    position: relative;
}
.mv-pc img{
    display: block;
    margin: 0 auto;
}
.free-emblem{
    position: absolute;
    top: 30px;
    right: 100px;
}
.site-ttl{
    position: absolute;
    bottom: 80px;
    left: 100px;
}
.site-ttl span{
    display: block;
    margin-top: 23px;
    font-size: 2.4rem;
    letter-spacing: 0.09em;
}
.inner{
    max-width: 998px;
    width: 100%;
    margin: 0 auto;
}
.intro_img-area{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 32px;
    margin-bottom: 25px;
}
.intro h2,.about h2{
    font-size: 3.6rem;
    line-height: 1.6;
}
.intro p{
    max-width: 761px;
    width: 100%;
    margin: 15px 0;
    line-height: 1.6;
}
.bottom_dot-line{
    background-image : linear-gradient(to right, #fff 4px, transparent 4px);
    background-size: 10px 2px;
    background-repeat: repeat-x;
    max-width: 817px;
    width: 100%;
    height: 4px;
    margin: 50px auto;
    background-position: bottom;
}
.about-img{
    display: grid;
    grid-template-columns: 369px 90px 1fr;
    gap: 20px;
}
.ba-arrow{
    display: flex;
    justify-content: center;
    align-items: center;
}
.about p{
    margin: 15px 0;
    line-height: 1.6;
    max-width: 796px;
}
.pre{
    text-align: center;
}
.pre-ttl{
    max-width: 682px;
    width: 100%;
    margin: 0 auto;
    padding: 20px 50px;
    border: 3px solid #fff;
}
.pre-ttl h2{
    font-size: 3.6rem;
    line-height: 1.6;
}
.pre{
    padding: 30px 0;
}
.pre p{
    max-width: 850px;
    width: 100%;
    margin: 40px auto;
    padding-bottom: 40px;
}
.btn{
    margin: 40px 0;
}
.btn a{
    padding: 30px;
    background-color: #009389;
    border-radius: 10px;
    font-size: 2.2rem;
    text-decoration: none;
}
.footer-wrap{
    margin-top: 40px;
    background-color: #3E3E3E;
    color: #B6B6B6;
    text-align: center;
    padding: 30px 0;
}

/**コンタクト**/
.ct-head-wrap{
    margin: 0 auto;
    display: block;
    width: 100%;
}
.ct-mv{
    display: block;
    margin: 80px auto;
    max-width: 910px;
    width: 100%;
}
.ct-mv img{
    margin: 0 auto;
}
.ct-intro{
    max-width: 790px;
    width: 100%;
    margin: 0 auto;
    text-align: center;
}
.ct-intro p{
    font-size: 2rem;
    line-height: 1.6;
}
.ct-attentions h2{
    text-align: center;
    font-size: 3.2rem;
}
.exa{
    margin: 30px 0 0;
}
.exa h3{
    font-size:2rem;
    font-weight: 400;
    position: relative;
    padding-left: 70px;
    margin-bottom: 20px;
}
.exa h3::before{
    content: "";
    width: 43px;
    height: 43px;
    background-size: contain;
    position: absolute;
    background-repeat: no-repeat;
    top: -10px;
    left: 10px;
}
.good-exa h3::before{
    background-image: url(../img/good.png);
}
.bad-exa h3::before{
    background-image: url(../img/bad.png);
    width: 60px;
    height: 60px;
    left: 0;
    top: -15px;
}

.exa-img{
    display: flex;
    gap: 10px;
}

.exa-notes p{
    text-align: right;
    font-size: 1.5rem;
}
.exa-bottom-txt{
    max-width: 685px;
    width: 100%;
    margin: 60px auto;
    border: 3px solid #fff;
    padding: 30px;
    text-align: center;
}
.txt_box{
    width: 70%;
    padding: 30px;
    background-color: #fff;
    border-radius: 10px;
    margin-bottom: 20px;
}






/*画像ドラッグ*/
#inputFile {
    position: relative;
    padding: 180px 80px 100px;
    text-align: center;
}

#dropArea {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding: 100px 0 0;
    border: 2px dashed #494949;
    background: rgba(22, 165, 191, 0);
    transition: all 0.25s cubic-bezier(0.21, 0.51, 0.51, 1);
}

#dropArea.dragover {
    border: 2px solid #16a5bf;
    background: rgba(22, 165, 191, 0.6);
}

#uploadFile {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10;
    display: block;
    width: 300px;
    height: 80px;
    opacity: 0;
}

#inputFileWrap {
    position: relative;
    display: inline-block;
}

#btnInputFile,
#btnChangeFile {
    display: table;
    width: 300px;
}

#btnChangeFile {
    display: none;
}


#btnInputFile span,
#btnChangeFile span {
    position: relative;
    z-index: 2;
    display: table-cell;
    width: 300px;
    height: 80px;
    border: 1px solid #333;
    border-radius: 4px;
    background: #333;
    text-decoration: none;
    color: #fff;
    font-size: 26px;
    line-height: 1;
    font-weight: bold;
    vertical-align: middle;
}

#upFileWrap.selected #btnInputFile {
    display: none;
}

#upFileWrap.selected #btnChangeFile {
    display: table;
}
.ct-wrap{
    max-width: 715px;
    width: 100%;
    margin: 0 auto;
}
.ct-wrap label{
    font-size: 20px;
    max-width: 210px;
    width: 100%;
}
.ct-wrap .form-area{
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}
.ap-form_box{
    max-width: 460px;
    width: 100%;
    /* border-radius: 5px; */
    /* padding: 20px 10px; */
    margin-bottom: 50px;
}
.ap-form_box input {
  width: 100%;
  border-radius: 5px;
  padding: 20px 10px;
}
.upfile-area{
    max-width: 715px;
    width: 100%;
    margin-left: 50px;
}
.kiyaku-area{
    width: 460px;
    height: 190px;
    overflow: auto;  
    background-color: #fff; 
    color: #000;
    padding: 14px 18px;
    font-size: 16px;
}
.kiyaku-area p{
    font-size: 16px;
}
.kiyaku-area ol>li{
    margin-left: 0;
    padding-left: 0;
    font-weight: 700;
}

.kiyaku-area ul>li{
    margin-left: 0;
    padding-left: 0;
    list-style: disc;
    font-weight: 400;
    margin-top: 10px;
    margin-bottom: 20px;
}
.ap-form_tbox{
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-top: 50px;
}
.ap-form_tbox span{
    font-size: 20px;
    max-width: 210px;
    width: 100%;
    display: block;
    
}

input[type="checkbox"] {
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
  }

  /* チェックボックスデザイン */
input[type="checkbox"] {
    cursor: pointer;
    padding-left: 30px;/*label手前にチェックボックス用の余白を開ける*/
    vertical-align: middle;
    position: relative;
  }
  input[type="checkbox"]::before,
  input[type="checkbox"]::after {
    content: "";
    display: block; 
    position: absolute;
  }
  input[type="checkbox"]::before {
    background-color: #fff;
    border-radius: 0%;
    border: 1px solid #666464;
    width: 20px;/*チェックボックスの横幅*/
    height: 20px;/*チェックボックスの縦幅*/
    transform: translateY(-50%);
    top: 50%;
    left: 5px;
  }
  input[type="checkbox"]::after {
    border-bottom: 3px solid #666464;/*チェックの太さ*/
    border-left: 3px solid #666464;/*チェックの太さ*/
    opacity: 0;/*チェック前は非表示*/
    height: 6px;/*チェックの高さ*/
    width: 11px;/*チェックの横幅*/
    transform: rotate(-45deg);
    top: -7px;/*チェック時の位置調整*/
    left: 10px;/*チェック時の位置調整*/
  }
  input[type="checkbox"]:checked::after {
    opacity: 1;/*チェック後表示*/
  }
  .c-box{
    text-align: center;
    margin: 40px 0 50px;
  }

  .c-btn{
    margin: 0 auto;
    display: block;
    text-align: center;
  }
  .c-btn button{
    font-size: 22px;
    background-color: #009389;
    color: #fff;
    border-radius: 10px;
    padding: 20px 40px;
  }

#imagePreviewList,#form2_img {
    display: flex;
    flex-wrap: wrap;
    padding: 10px 0;
}

#imagePreviewList>div ,#form2_img>div{
    width: 33.333333%;
    padding: 5px;
    position: relative;
}

#imagePreviewList>div::before ,#form2_img>div::before{
    padding-top: 50%;
}

#imagePreviewList button {
    position: absolute;
    right: 5px;
    top: 5px;
}

.img-box::before {
    /* width: 100%; */
    padding-top: 100%;
    content: "";
    display: block;
}

.img-box {
    position: relative;
}

.img-box img {
    object-fit: contain;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

.c-btn button[disabled] {
    opacity: 0.5;
}


  @media screen and (min-width: 769px){
    .mv-sp,.spbr,.hidepc{
        display: none;
    }
    
  }
  @media screen and (max-width: 768px){
    p{
        font-size: 1.6rem;
    }
    .mv-pc,.hidesp{
        display: none;
    }
    .site-ttl{
        top: 0;
        left: 0;
        padding: 10px;
    }
    .site-ttl img{
        padding: 20px;
    }
    .site-ttl span{
        display: block;
        text-align: center;
        font-size: 5vw;
        margin-top: 0;
    }
    .intro_img-area{
        grid-template-columns: 1fr 1fr;
        gap: 23px;
    }
    .about-img{
        display: block;
    }
    .inner{
        padding: 0 20px;
    }
    .intro h2, .about h2{
        font-size: 2.4rem;
    }
    .arrowsp{
        margin-top: 20px;
    }
    .about h2{
        margin-top: 20px;
    }
    .pre-ttl{
        padding: 20px;
    }
    .pre-ttl h2{
        font-size: 2.4rem;
        text-align: left;
    }
    .pre p{
        text-align: left;
    }
    .ct-mv{
        padding: 0 20px;
    }
    .ct-intro .inner{
        padding: 0 25px;
    }
    .exa-img{
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }
    .spblock{
        display: block;
    }
    .ct-wrap .form-area{
        display: block;
    }
    .ap-form_tbox{
        display: block;
    }
    .upfile-area{
        margin-left: 0;
    }
    .ct-attentions h2{
        font-size: 2rem;
    }
    .kiyaku-area{
        width: 100%;
    }
    .ct-intro{
        text-align: left;
    }
    .ct-intro p{
        font-size: 1.6rem;
    }
    .exa h3::before{
        top: 0;
        left: 0;
    }
    .exa h3{
        padding-left: 55px;
        font-size: 1.6rem;
        line-height: 1.4;
    }
    .bad-exa h3::before{
        left: -10px;
        top: -10px;
    }
    .exa-notes p{
        text-align: left;
        margin-top: 10px;
    }
    .spblock img{
        width: 100%;
        margin-bottom: 10px;
    }
    .exa-bottom-txt p{
        font-size: 2rem;
    }
    #inputFile{
        padding: 160px 30px 100px;
    }
    .ap-form_tbox span{
        max-width: 400px;
        margin-bottom: 10px;
    }
    .form-area label{
        max-width: 400px;
        margin-bottom: 10px;
        display: block;
    }
    .btn a{
        font-size: 5.5vw;
    }
  }

    /*フェードイン*/
    .fadein {
        opacity: 0;
        transform: translateY(80px);
        transition: opacity 1s, transform 1s;
    }.fadein.active {
        opacity: 1;
        transform: translateY(0px);
    }