@charset "UTF-8";

:root {
	--main-color: #89B244;
}

/*====================================
	common
====================================*/
/* section */
section:not(:first-of-type) {
    padding-top: 70px;
    padding-bottom: 70px;
}

/* ttl */
.sec_ttl {
    text-align: left;
    margin-bottom: 20px;
}
    .sec_ttl h2 {
        color: var(--main-color);
        font-size: 28px;
        font-weight: 700;
    }


h3.sub {
    font-size: 20px;
    font-weight: 700;
    padding-left: 8px;
    border-left: 5px solid var(--main-color);
    margin-bottom: 20px;
}


/*====================================
	fv
====================================*/
#fv {
    position: relative;
}
    #fv .fv_area {
        width: 100%;
    }
        #fv .fv_area img {
            width: 100%;
        }
    #fv .fv_txt {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        left: 11%;
        z-index: 10;
    }
        #fv .fv_txt .logo_area {
            display: flex;
            justify-content: flex-start;
            align-items: center;
        }
            #fv .fv_txt .logo_area img {
                display: block;
                width: 80px;
                margin-right: 5px;
            }
            #fv .fv_txt .logo_area h1 {
                color: var(--main-color);
                font-size: 18px;
                font-weight: 700;
            }
                #fv .fv_txt .logo_area h1 span {
                    font-size: 33px;
                    font-weight: 500;
                    display: block;
                    line-height: 1;
                }
        #fv .fv_txt h3 {
            font-size: 26px;
            font-weight: 700;
        }
        #fv .fv_txt p {
            font-size: 39px;
            font-weight: 700;
            line-height: 1.4;
        }
        #fv .fv_txt .box_area {
            display: flex;
            justify-content: flex-start;
            gap: 12px;
        }
            #fv .fv_txt .box_area h4 {
                background-color: var(--main-color);
                padding: 5px 20px;
                border-radius: 11px;
                font-size: 26px;
                font-weight: 700;
                color: #fff;
            }


/*====================================
	about
====================================*/
#about {
    background: 
    linear-gradient(#EEF4E2, #EEF4E2) no-repeat,
    white;
  background-size: 40% 70%;
}
#about .wrap {
    display: flex;
    justify-content: space-between;
}
    #about .pic_area {
        width: 48%;
    }
        #about .pic_area .item {
            width: 100%;
        }
            #about .pic_area .item img {
                display: block;
                width: 100%;
                aspect-ratio: 1.3;
            }
    #about .txt_area {
        width: 46%;
    }
        #about .txt_area .sec_ttl {
            text-align: left;
            margin-bottom: 25px;
        }
            #about .txt_area .sec_ttl h2 {
                font-size: 24px;
                line-height: 1.5;
            }
        #about .txt_area p {
            font-size: 15px;
            line-height: 1.7;
        }

    
/*====================================
	jissyuu, tokutei
====================================*/
#tokutei {
    background-color: #EEF4E2;
}
.ginou .block {
    display: flex;
    justify-content: space-between;
    margin-bottom: 55px;
}
    .ginou .block .txt_area {
        width: 46%;
    }
        .ginou .block .txt_area p {
            font-size: 15px;
        }
    .ginou .block .pic_area {
        width: 49%;
    }
        .ginou .block .pic_area img {
            width: 100%;
            display: block;
        }

.ginou .flow_area .flow p {
    font-size: 16px;
    margin-bottom: 35px;
}
    .ginou .flow_area .flow p span {
        font-weight: 700;
    }
.ginou .flow_area .flow .flow_flex {
    display: flex;
    justify-content: flex-start;
    gap: 14px;
    flex-wrap: wrap;
}
    .ginou .flow_area .flow .flow_flex .box {
        position: relative;
        width: calc((100% - 84px) / 7);
        min-width: 130px;
        height: 100px;
        margin-bottom: 10px;
        border: 1px solid var(--main-color);
        border-radius: 10px;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        background-color: #fff;
    }
    .ginou .flow_area .flow .flow_flex .box::before {
        content: attr(data-step);
        position: absolute;
        top: 0;
        left: 0;
        transform: translateY(-50%);
        width: 31px;
        height: 31px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: var(--main-color);
        border-radius: 50%;
        font-weight: 500;
        font-size: 20px;
        color: #fff;
    }
        .ginou .flow_area .flow .flow_flex .box span {
            font-size: 16px;
            font-weight: 700;
        }


/*====================================
    union
====================================*/
#union .block {
    margin-bottom: 55px;
}
#union table {
    width: 100%;
}
    #union table tr {
        border-bottom: 1px solid #CCCCCC;
        text-align: left;
    }
        #union table tr th {
            padding: 25px 15px;
            width: 15%;
            font-size: 16px;
            font-weight: 700;
            vertical-align: middle;
        }
        #union table tr td {
            padding: 25px 15px;
            width: 85%;
            font-size: 16px;
        }

#union .map_area {
    width: 100%;
}
    #union .gmap {
        width: 100%;
        height: 0;
        overflow: hidden;
        padding-bottom: 40%;
        position: relative;
    }
        #union .gmap iframe {
            position: absolute;
            left: 0;
            top: 0;
            height: 100%;
            width: 100%;
        }


/*====================================
	contact
====================================*/
#contact .txt_area {
    margin-bottom: 45px;
}
    #contact .txt_area h4 {
        font-size: 16px;
        font-weight: 700;
        margin-bottom: 20px;
    }
    #contact .txt_area .info {
        font-size: 15px;
        font-weight: 500;
        margin-bottom: 20px;
    }
    #contact .txt_area .tel {
        font-size: 16px;
        font-weight: 500;
    }
        #contact .txt_area .tel a {
            display: inline-block;
            margin-left: 15px;
            text-decoration: underline;
        }
        #contact .txt_area .tel span {
            display: block;
            font-size: 14px;
            font-weight: 500;
        }

#contact .contact_area {
    border: 4px solid #EBEBEB;
    padding: 30px;
}
#contact p {
    font-size: 14px;
    margin-bottom: 15px;
    }
    #contact table {
    width: 100%;
    }
    #contact table tr {
        border-bottom: 1px solid #CCCCCC;
        text-align: left;
    }
    #contact table tr:first-of-type {
        border-top: 1px solid #CCCCCC;
    }
        #contact table tr th {
            padding: 15px 15px;
            width: 20%;
            font-size: 16px;
            font-weight: 700;
            position: relative;
        }
        #contact table tr.inq th {
            vertical-align: top;
        }
        #contact table tr th .required {
            position: absolute;
            top: 50%;
            right: 0;
            transform: translateY(-50%);
            background: #AC2817;
            color: #fff;
            font-size: 13px;
            display: inline-block;
            padding: 2px 5px;
        }
        #contact table tr.inq th .required {
            transform: inherit;
            top: 15px;
        }
    
        #contact table tr td {
            padding: 15px 15px;
            width: 80%;
            font-size: 16px;
        }
#contact .accept_area {
    padding-top: 40px;
    padding-bottom: 40px;
    max-width: 720px;
    margin: 0 auto;
}
#contact .accept_area h4 {
    margin-bottom: 20px;
    font-size: 16px;
    display: flex;
    justify-content: center;
    align-items: center;
}
    #contact .accept_area h4 .required {
        display: inline-block;
        background: #AC2817;
        color: #fff;
        font-size: 13px;
        display: inline-block;
        padding: 2px 5px;
        margin-left: 15px
    }
#contact .accept_area p {
    margin-bottom: 15px;
    font-size: 14px;
    text-align: center;
}
#contact .accept_area .privacy_area {
    height: 200px;
    padding: 15px 25px;
    border: 1px solid #CCCCCC;
    overflow: auto;
}
    #contact .accept_area .privacy_area h2 {
    font-size: 14px;
    margin-bottom: 10px;
    }
    #contact .accept_area .privacy_area h3 {
    font-size: 14px;
    margin-bottom: 10px;
    }
    #contact .accept_area .privacy_area p {
    text-align: left;
    font-size: 14px;
    margin-bottom: 10px;
    }
#contact .accept_area .agree_check {
    text-align: center;
    margin-top: 15px;
}
#contact .btn_send:disabled {
    background-color: #D9D9D9;
    cursor: not-allowed;
}
#contact .btn_send {
    display: block;
    width: 210px;
    margin: 0 auto;      
    text-decoration: none;
    background: var(--main-color);
    border: none;
    color: #fff;
    cursor: pointer;
    outline: none;
    -webkit-appearance: none;
    transition: all .2s;
    border-radius: 40px;
    padding: 15px;
    font-size: 18px;
}
#contact .btn_send:hover {
    opacity: .7;
}
#contact .btn_send:disabled:hover {
    opacity: 1;
}


#contact form input[type="text"], 
#contact form input[type="email"], 
#contact form input[type="tel"], 
#contact form textarea {
  width: 45%;
  padding: 10px 15px;
  background: #F8F5F3;
  border: 1px solid #F8F5F3;
}
#contact form textarea {
  width: 100%;
  resize: none;
}
#contact form .address input[type="text"] {
  width: 100%;
}
#contact input[type="radio"] {
    /* width: 23px;
    height: 23px;
    margin: 0;
    background-color: #EAEAEA; */
}

.wpcf7-radio {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
  .wpcf7-radio .wpcf7-list-item {
    margin-left: 0;
  }
  .wpcf7 input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 23px;
    height: 23px;
    border: 1px solid #676767;
    border-radius: 50%; /* 丸にする */
    display: inline-block;
    position: relative;
    cursor: pointer;
    vertical-align: middle;
    background-color: #EAEAEA;
    margin: 0;
  }
  
  .wpcf7 input[type="radio"]:checked::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 15px;
    height: 15px;
    background-color: #007bff;
    border-radius: 50%;
    transform: translate(-50%, -50%);
  }

.wpcf7 input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 23px;
    height: 23px;
    border: 1px solid #676767;
    border-radius: 50%;
    display: inline-block;
    position: relative;
    cursor: pointer;
    vertical-align: middle;
    background-color: #EAEAEA;
  }
  .wpcf7 input[type="checkbox"]:checked::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 15px;
    height: 15px;
    background-color: #007bff;
    border-radius: 50%;
    transform: translate(-50%, -50%);
  }

.wpcf7-radio label,
.wpcf7-acceptance label {
    display: flex;
    align-items: center;
    gap: 10px;
}
    .wpcf7-acceptance .wpcf7-list-item {
        margin-left: 0;
    }



@media only screen and (max-width: 1100px) {
/*====================================
	fv
====================================*/
#fv .fv_txt {
    left: 20px;
}

}


@media only screen and (max-width: 1024px) {
/*====================================
	fv
====================================*/
    #fv .fv_txt .logo_area img {
        width: 66px;
    }
    #fv .fv_txt .logo_area h1 {
        font-size: 16px;
    }
        #fv .fv_txt .logo_area h1 span {
            font-size: 23px;
        }
    #fv .fv_txt h3 {
        font-size: 20px;
    }
    #fv .fv_txt p {
        font-size: 26px;
    }
        #fv .fv_txt .box_area h4 {
            font-size: 20px;
        }


/*====================================
	about
====================================*/
#about {
  background-size: 40% 40%;
}
#about .txt_area {
    width: 48%;
}



}


@media only screen and (max-width: 767px){
/*====================================
	base
====================================*/
/* section */
section:not(:first-of-type) {
    padding-top: 30px;
    padding-bottom: 30px;
}


/* ttl */
.sec_ttl h2 {
    font-size: 20px;
}



/*====================================
	fv
====================================*/
#fv .fv_txt {
    width: 80%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(255, 255, 255, .85);
    padding: 20px 25px;
}
#fv .fv_txt .logo_area {
    /* justify-content: center; */
}
    #fv .fv_txt .logo_area img {
        width: 60px;
    }
    #fv .fv_txt .logo_area h1 {
        font-size: 13px;
    }
        #fv .fv_txt .logo_area h1 span {
            font-size: 25px;
        }
    #fv .fv_txt h3 {
        font-size: 19px;
    }
    #fv .fv_txt p {
        font-size: 29px;
        margin-bottom: 15px;
    }
    #fv .fv_txt .box_area {
        gap: 9px;
        justify-content: center;
    }
        #fv .fv_txt .box_area h4 {
            font-size: 19px;
        }


/*====================================
	about
====================================*/
#about {
  background : transparent;
}
#about .wrap {
    flex-wrap: wrap;
    flex-direction: column-reverse;
}
    #about .pic_area {
        width: 100%;
    }
    #about .pic_area .item {
        position: relative;
    }
    #about .pic_area .item::before {
        content: '';
        position: absolute;
        top: -20px;
        left: -20px;
        background-color: #EEF4E2;
        width: 85vw;
        height: 240px;
        z-index: -1;
    }
        #about .pic_area .item img {
            width: 90%;
            margin-left: auto;
        }
    #about .txt_area {
        width: 100%;
        margin-bottom: 25px;
    }
        #about .txt_area .sec_ttl h2 {
            font-size: 20px;
            line-height: 1.4;
        }
        #about .txt_area p {
            font-size: 13px;
        }


/*====================================
	jissyuu, tokutei
====================================*/
.ginou .block {
    flex-wrap: wrap;
    margin-bottom: 40px;
}
    .ginou .block .txt_area {
        width: 100%;
        margin-bottom: 20px;
    }
        .ginou .block .txt_area p {
            font-size: 13px;
        }
    .ginou .block .pic_area {
        width: 100%;
    }

.ginou .flow_area .flow p {
    margin-bottom: 20px;
}
.ginou .flow_area .flow .flow_flex {
    gap: 7px;
}
    .ginou .flow_area .flow .flow_flex .box {
        width: 100%;
        height: auto;
        padding: 10px 10px 10px 50px;
        justify-content: flex-start;
        margin-bottom: 0;
    }
    .ginou .flow_area .flow .flow_flex .box::before {
        width: 30px;
        height: 30px;
        font-size: 20px;
        top: 50%;
        left: 8px;
    }
        .ginou .flow_area .flow .flow_flex .box span {
            font-size: 14px;
        }


/*====================================
    union
====================================*/
#union table tr th {
    padding: 10px 0 0;
    width: 100%;
    display: block;
    box-sizing: border-box;
    font-size: 13px;
}
#union table tr td {
    padding: 5px 0 10px;
    width: 100%;
    display: block;
    box-sizing: border-box;
    font-size: 13px;
}

#union .gmap {
    width: 100%;
    padding-bottom: 65%;
}


/*====================================
	contact
====================================*/
#contact .txt_area {
    margin-bottom: 20px;
}
#contact .txt_area h4 {
    font-size: 14px;
    margin-bottom: 15px;
    }
    #contact .txt_area .info {
        font-size: 12px;
        margin-bottom: 10px;
    }
    #contact .txt_area .tel {
        font-size: 12px;
    }
        #contact .txt_area .tel a {
            font-size: 16px;
        }
        #contact .txt_area .tel span {
            font-size: 12px;
        }
#contact .contact_area {
    border: 2px solid #EBEBEB;
    padding: 20px;
}
#contact p {
    font-size: 12px;
    margin-bottom: 10px;
  }
    #contact table tr {
      display: block;
      padding: 10px 0;
    }
      #contact table tr th {
        padding: 0;
        padding-bottom: 5px;
        width: 100%;
        display: block;
        box-sizing: border-box;
      }
      #contact table tr th .required {
        font-size: 11px;
        position: relative;
        top: inherit;
        right: inherit;
        transform: inherit;
        margin-left: 10px;
      }
        #contact table tr.inq th .required {
            top: inherit;
        }
    
      #contact table tr td {
        padding: 0;
        width: 100% !important;
        display: block;
        box-sizing: border-box;
      }
  #contact .accept_area {
    padding-top: 20px;
    padding-bottom: 20px;
    width: 100%;
  }
    #contact .accept_area h4 {
      font-size: 14px;
      justify-content: flex-start;
    }
        #contact .accept_area h4 .required {
          font-size: 12px;
          margin-left: 10px
       }
    #contact .accept_area p {
      margin-bottom: 12px;
      text-align: left;
    }
    #contact .accept_area .privacy_area {
      padding: 10px 10px;
    }
    #contact .accept_area .privacy_area .privacy_inner {
      padding-left: 0;
      padding-right: 0;
    }
    #contact .btn_send {
      width: 200px;
      border-radius: 40px;
      padding: 10px;
      font-size: 16px;
    }
  
  #contact form input[type="text"], 
  #contact form input[type="email"], 
  #contact form input[type="tel"], 
  #contact form textarea {
    width: 100%
  }




}