@charset "utf-8";
/*------------------------------------------------------------
	index
------------------------------------------------------------*/
.mainVisual {
    margin-bottom: 5%;
    position: relative;
    overflow: hidden;
    background: #6DC8C4;
}
.mainVisual .inner {
    text-align: center;
}
.mainVisual img {
    width: auto;
    height: 100vh;
    max-width: none;
}
#main .feature {
    margin-bottom: 6.1%;
}
#main .feature .imgBoxR .photo {
    float: right;
}
#main .feature .imgBoxR .txtBox {
    float: left;
}
#main .feature .photo {
    width: 56.7%;
}
#main .feature .txtBox {
    margin-top: 2.6%;
    padding: 0 10px;
    width: 43.3%;
    box-sizing: border-box;
}
#main .feature .txtBox .inner {
    margin-left: auto;
    max-width: 30.8vw;
}
#main .feature .txtBox .inner p {
    letter-spacing: 0.04em;
}
#main .feature .imgBoxL .photo {
    margin-top: -4.1%;
    width: 56.6%;
    float: left;
}
#main .feature .imgBoxL .txtBox {
    margin-top: 7.8%;
    float: right;
}
#main .feature .imgBoxL .txtBox .inner {
    margin-right: auto;
    max-width: 500px;
}
#main .menu {
    margin-bottom: 4.05vw;
}
#main .menu .content {
    max-width: 1800px;
}
#main .menu .headLine01 {
    margin-bottom: 1.65vw;
}
#main .menu .headLine01 .en02 {
    margin-bottom: 1.8vw;
}
#main .menu .cTxt {
    margin-bottom: 3.5vw;
    text-align: center;
    letter-spacing: 0.04em;
}
#main .menu ul {
    margin-top: -20px;
    justify-content: center;
    text-align: center;
}
#main .menu li {
    margin: 20px 1.4% 0;
    line-height: 1.35;
    width: 10.5vw;
    padding-bottom: 10.5vw;
    border-radius: 50%;
    position: relative;
    box-sizing: border-box;
    box-shadow: 0 15px 20px rgba(0,0,0,0.1);
    background-color: #FFF;
}
#main .menu li img {
    width: auto;
    height: 3vw;
}
#main .menu li .txt {
    margin-top: 14px;
    display: block;
    font-size: 0.8vw;
    font-weight: 500;
    line-height: 1.5;
}
#main .menu li .inn {
    padding-top: 5.5%;
    width: 100%;
    position: absolute;
    left: 50%;
    top: 50%;
    box-sizing: border-box;
    transform: translate(-50%, -50%);
}
#main .sample {
    margin-bottom: 8.45vw;
}
#main .sample .slider {
    margin: -4.4% auto 0;
    padding: 0 10px;
    max-width: 88.9%;
    position: relative;
    z-index: 1;
}
#main .sample .slider li {
    margin-right: 3.73%;
    float: left;
    width: 22.2%;
    box-shadow: 0 0 50px rgba(0,0,0,0.16);
}
#main .sample .slider li:nth-child(4n) {
    margin-right: 0;
}
#main .sample .rTxt {
    margin: 1.05vw auto 0;
    padding: 0 10px;
    max-width: 88.9%;
    text-align: right;
    font-size: 0.75vw;
    letter-spacing: 0.01em;
}
#main .price {
    padding-bottom: 13.6vw;
    position: relative;
    background-color: #f7f7f7;
}
#main .price .comImgBox {
    padding: 3.8% 0 6.7%;
    min-height: inherit;
    background: #6dc8c3;
    position: relative;
    border-bottom: 0.98vw solid #FFF;
}
#main .price .comImgBox .photo {
    width: 55.18%;
    position: absolute;
    right: 6.9%;
    top: -11.5%;
}
#main .price:before {
    width: 100%;
    height: 62px;
    position: absolute;
    left: 0;
    top: 0;
    background: #FFF;
    
    content: "";
}
#main .price .comImgBox ul {
    margin-top: 30px;
    font-size: 1.4rem;
    line-height: 1.428;
}
#main .price .tabBox {
    margin: -4.78vw auto 0;
    padding: 3.1% 10px 5.3%;
    max-width: 83.5vw;
    box-sizing: border-box;
    box-shadow: 0 50px 50px rgba(0,0,0,0.08);
    background-color: #FFF;
}
#main .price .tabBox .inner {
    margin: 0 auto;
    max-width: 77.8%;
}
#main .price table {
    margin-bottom: 5vw;
    width: 100%;
    overflow: hidden;
    border-collapse: collapse;
}
#main .price th,
#main .price td {
    padding: 1.12vw 0.2vw;
    text-align: center;
    font-size: 1.2vw;
    vertical-align: middle;
    box-sizing: border-box;
}
#main .price th {
    width: 16.8%;
    color: #6DC8C4;
    font-weight: 500;
}
#main .price td {
    width: 28%;
}
#main .price thead td {
    padding: 0;
}
#main .price tbody th {
    line-height: 1.5;
    background-color: #e8faf9;
}
#main .price .tdStyle01 {
    width: auto;
    background-color: #FFF;
}
#main .price .tdStyle02 {
    padding: 1vw 0.2vw;
    color: #FFF;
    font-weight: 500;
    position: relative;
    background-color: #6dc8c4;
}
#main .price .tdStyle02:before {
    width: 3px;
    height: 999px;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    background-color: #6dc8c4;
    
    content: "";
}
#main .price .tdStyle02:after {
    width: 3px;
    height: 999px;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 1;
    background-color: #6dc8c4;
    
    content: "";
}
#main .price .tdStyle03 {
    padding: 1vw 0.2vw;
    color: #FFF;
    font-weight: 500;
    position: relative;
    background-color: #ff4181;
}
#main .price .tdStyle03:before {
    width: 3px;
    height: 999px;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    background-color: #ff4181;
    
    content: "";
}
#main .price .tdStyle03:after {
    width: 3px;
    height: 999px;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 1;
    background-color: #ff4181;
    
    content: "";
}
#main .price .thStyle01 {
    background-color: #FFF;
}
#main .price .trStyle01 th,
#main .price .trStyle01 td {
    padding: 0 !important;
    height: 7px;
    background-color: #FFF;
}
#main .price .imgBox {
    text-align: left;
    display: flex;
    align-items: flex-end;
}
#main .price .imgBox .photo {
    width: 50.5%;
}
#main .price .imgBox .txtBox {
    margin: 0.5vw 0 0.2vw;
    width: 49.5%;
    float: right;
}
#main .price .imgBox .txtBox .ttl {
    margin: 0 0 0.3vw;
    padding: 0.3vw 0 0.4vw;
    display: block;
    color: #6DC8C4;
    font-size: 0.7vw;
    font-weight: 500;
    text-align: center;
    border: 1px solid #6dc8c4;
    border-radius: 35px;
}
#main .price .imgBox .txtBox .ttl01 {
    color: #FF4181;
    border-color: #FF4181;
}
#main .price .imgBox .txtBox p {
    margin: 0 0 0 1vw;
    font-size: 0.75vw;
    line-height: 1.4;
}
#main .price td .sml {
    margin-top: -3px;
    display: block;
    font-size: 1.4rem;
}
#main .price td.left {
    padding: 15px 5px 30px 50px;
    text-align: left;
}
#main .price tbody td {
    position: relative;
}
#main .price tbody td:before {
    position: absolute;
    left: 15px;
    right: 15px;
    bottom: 0;
    border-bottom: 2px dotted #aadfdd;
    content: "";
}
#main .price tbody .tdStyle04:before {
    border-color: #fbccdc;
}
#main .price tbody .tdStyle05 {
    border-bottom: 3px solid #6dc8c4;
}
#main .price tbody .tdStyle06 {
    border-bottom: 3px solid #ff4181;
}
#main .price tbody .tdStyle06 sup {
    font-size: 1.4rem;
}
#main .price tbody .tdStyle06:before {
    display: none;
}
#main .price tbody .tdStyle05:before {
    display: none;
}
#main .price tbody .trStyle01 td:before {
    display: none;
}
#main .price .trStyle02 td {
    font-size: 1.72vw;
    font-weight: 700;
}
#main .price .trStyle02 td sup {
    font-size: 1vw;
    font-weight: 400;
}
#main .price .imgList {
    position: relative;
    font-size: 1.15vw;
    font-weight: 500;
}
#main .price .imgList:before {
    width: 2px;
    height: 100%;
    position: absolute;
    left: 50%;
    top: 0;
    background-color: #e0e0e0;
    
    content: "";
}
#main .price .lBox {
    padding-right: 4.5%;
    width: 50%;
    float: left;
    box-sizing: border-box;
}
#main .price .rBox {
    padding-left: 4.5%;
    width: 50%;
    float: right;
    box-sizing: border-box;
}
#main .price .imgList dt {
    width: 60%;
    float: left;
    position: relative;
}
#main .price .imgList dd {
    margin-bottom: 10.5%;
    text-align: right;
    position: relative;
}
#main .price .imgList dd .inn {
    padding-left: 6%;
    min-width: 12%;
    display: inline-block;
    position: relative;
    box-sizing: border-box;
    background-color: #FFF;
    z-index: 1;
}
#main .price .imgList .ddStyle01 .inn {
    min-width: inherit;
}
#main .price .imgList dd:last-of-type {
    margin-bottom: 0;
}
#main .price .imgList dd:before {
    margin-top: 0;
    width: 100%;
    height: 1px;
    position: absolute;
    left: 0;
    top: 50%;
    border-bottom: 1px dotted#7b7b7b;
    
    content: "";
}
#main .price .imgList dt img {
    margin-right: 5.5%;
    width: 20.5%;
}
#main .price .imgList dt .inn {
    padding-right: 2%;
    position: relative;
    background-color: #FFF;
    z-index: 1;
}
#main .price .rBox ul {
    margin-top: 9%;
}
#main .price .rBox li {
    padding-left: 1em;
    font-size: 0.75vw;
    font-weight: 400;
    line-height: 1.35;
    text-indent: -1em;
}
#main .flow {
    margin-bottom: 7.3vw;
    padding-bottom: 7.05vw;
    background-color: #f7f7f7;
}
#main .flow .content {
    max-width: 77.4%;
}
#main .flow .headLine01 {
    margin-bottom: 1.65vw;
}
#main .flow .headLine01 .en02 {
    margin-bottom: 1.8vw;
}
#main .flow .cTxt {
    margin-bottom: 3.8vw;
    text-align: center;
    letter-spacing: 0.04em;
}
#main .flow li {
    margin-right: 1.75%;
    width: 18.6%;
    position: relative;
}
#main .flow li:after {
    width: calc(100% + 2vw);
    height: 1px;
    position: absolute;
    left: 50%;
    top: 0.6vw;
    background-color: #6dc8c4;
    
    content: "";
}
#main .flow li:nth-child(n+3):after {
    background-color: #f89aba;
}
#main .flow li:last-of-type:after {
    display: none;
}
#main .flow li:nth-child(5n) {
    margin-right: 0;
}
#main .flow li .ttl {
    margin-bottom: 1.65vw;
    padding-top: 2.4vw;
    font-size: 1.25vw;
    font-weight: 400;
    text-align: center;
    position: relative;
    letter-spacing: 2px;
}
#main .flow li .ttl:before {
    margin-left: -0.65vw;
    width: 1.3vw;
    height: 1.3vw;
    position: absolute;
    left: 50%;
    top: 0;
    z-index: 1;
    background-color: #6dc8c4;
    border-radius: 50%;
    
    content: "";
}
#main .flow li:nth-child(n+3) .ttl:before {
    background-color: #f89aba;
}
#main .flow li .ttl .num {
    margin-top: -0.15vw;
    display: block;
    font-size: 5.6rem;
    font-weight: 500;
    line-height: 1;
}
#main .flow li .title {
    padding: 1.2vw 0.2vw 0.9vw;
    color: #FFF;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25vw;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    border-radius: 5px 5px 0 0;
    background-color: #6dc8c4;
}
#main .flow li:nth-child(n+3) .title {
    background-color: #f89aba;
}
#main .flow li .text {
    padding: 1.1vw 0.5vw 2.1vw 1vw;
    border-radius: 0 0 5px 5px;
    box-shadow: 0 40px 40px rgba(0,0,0,0.08);
    background-color: #FFF;
}
#main .faq {
    margin-bottom: 4vw;
}
#main .faq .headLine01 {
    margin-bottom: 1.7vw;
}
#main .faq .headLine01 .en02 {
    margin-bottom: 2.05vw;
}
#main .faq .cTxt {
    margin-bottom: 3vw;
    text-align: center;
    letter-spacing: 0.04em;
}
#main .faq .content {
    margin: 0 auto;
    max-width: 53.9%; 
}
#main .faq dt {
    margin-bottom: 20px;
    cursor: pointer;
    padding: 1.2vw 1.5vw 1.2vw 5vw;
    position: relative;
    letter-spacing: 0.04em;
    background: #f7f7f7 url("../img/common/icon01.png") no-repeat center left 1.05vw;
    background-size: 2.56vw auto;
}
#main .faq dt:after {
    margin-top: -10px;
    width: 19px;
    height: 19px;
    position: absolute;
    right: 22px;
    top: 50%;
    background: url("../img/common/icon03.png") no-repeat center center;
    background-size: 19px auto;
    
    content: "";
}
#main .faq dt.on {
    margin-bottom: 0;
}
#main .faq dt.on:after {
    background-image: url("../img/common/icon04.png");
}
#main .faq dd {
    margin-bottom: 3.35vw;
    padding: 1.4vw 4.5vw 0 5vw;
    display: none;
    letter-spacing: 0.04em;
    background: url("../img/common/icon02.png") no-repeat top 0.95vw left 1.05vw;
    background-size: 2.56vw auto;
}
#main .faq dd:last-of-type {
    margin-bottom: 0;
}
#main .faq dd p {
    margin-bottom: 1.9vw;
}
#main .faq dd p:last-of-type {
    margin-bottom: 0;
}
#main .faq dd ul {
    margin-bottom: 1.9vw;
}
#main .faq dd li {
    padding-left: 1em;
    text-indent: -1em;
}
#main .message {
    margin-bottom: 0;
}
#main .message .comImgBox {
    padding: 12.5% 0 5.3%;
    background: url("../img/index/bg03.png") no-repeat center top;
    background-size: 100vw auto;
}
#main .message .bgBox {
    padding: 8% 0.5% 0;
    background-color: #f89aba;
}
#main .message .img {
    margin: 0 auto -3px;
    max-width: 62.5%;
    text-align: center;
}
#main .message .photo {
    max-width: 88.6%;
}
#main .contact {
    padding: 7.7% 0 8.2%;
    background-color: #f7f7f7;
}
#main .contact .content {
    max-width: 50.5%;
}
#main .contact .headLine01 {
    margin-bottom: 1.7vw;
}
#main .contact .headLine01 .en02 {
    margin-bottom: 2.08vw;
}
#main .contact .cTxt {
    margin-bottom: 4.8vw;
    text-align: center;
    letter-spacing: 0.04em;
}
#main .contact table {
    margin-bottom: 50px;
    width: 100%;
    border-collapse: collapse;
}
#main .contact th,
#main .contact td {
    margin-bottom: 1vw;
    width: 100%;
    display: block;
    font-size: 0.9vw;
    font-weight: 400;
    letter-spacing: 0.1em;
    word-break: break-all;
}
#main .contact th .must {
    margin-left: 0.8vw;
    padding: 0.2vw 0.5vw;
    display: inline-block;
    color: #FFF;
    font-size: 0.68vw;
    line-height: 1.2;
    border-radius: 2px;
    background-color: #6dc8c4;
}
#main .contact td {
    margin-bottom: 2.25vw;
    padding-bottom: 1.8vw;
    border-bottom: 1px solid #eaeaea;
}
#main .contact td input[type="text"],
#main .contact td input[type="email"],
#main .contact td select,
#main .contact td textarea {
    padding: 0 0.9vw;
    width: 100%;
    height: 3vw;
    font-size: 0.9vw;
    border-radius: 0;
    appearance: none;
    -webkit-appearance: none;
    box-sizing: border-box;
    border: 1px solid #eaeaea;
}
#main .contact td select::-ms-expand { 
	display: none;
} 
#main .contact td textarea {
    padding: 15px;
    height: 510px;
    resize: none;
    word-break: break-all;
}
#main .contact tr:last-of-type td {
    margin-bottom: 0;
    padding-bottom: 0;
    border: none;
}
#main .contact .submit {
    text-align: center;
}
#main .contact .submit li {
    margin-bottom: 30px;
}
#main .contact .submit li:last-of-type {
    margin-bottom: 0;
}
#main .contact .submit li input {
    padding: 2vw 0.5vw;
    width: 50%;
    color: #FFF;
    cursor: pointer;
    font-size: 1.7vw;
    font-weight: 700;
    border-radius: 60px;
    letter-spacing: 0.04em;
    border: none;
    box-shadow: 20px 20px 45px rgba(0,0,0,0.16);
    box-sizing: border-box;
    background: #ff4181 url("../img/common/icon05.png") no-repeat right 10% center;
    background-size: 2vw auto;
}
#main .contact .submit li input:hover {
    opacity: 0.7;
}
#main .topMar {
    padding-top: 180px;
}
#main .thanks {
    margin-bottom: 50px;
    text-align: center;
}
.errorMsg {
    margin-bottom: 30px;
    color: #F00;
}
@media all and (min-width: 1025px) {
    #main .faq dt:hover {
        opacity: 0.7;
    }
}
@media all and (min-width: 561px) and (max-width: 1024px) {
    .mainVisual {
        margin-bottom: 12.5vw;
        background: #6DC8C3;
    }
    .mainVisual .inner {
        position: absolute;
        left: 0;
        bottom: 0;
    }
    .mainVisual .inner img {
        width: 100%;
        height: auto;
        max-width: 100%;
    }
    #main .feature {
        margin-bottom: 13.8vw;
    }
    #main .feature .photo {
        width: 51.6%;
    }
    #main .feature .txtBox .inner {
        max-width: inherit;
        width: 83%;
    }
    #main .feature .txtBox {
        margin-top: 1vw;
    }
    #main .feature .txtBox .headLine01 {
        font-size: 3.1vw;
    }
    #main .feature .txtBox .headLine01 .en02 {
        font-size: 1.45vw;
    }
    #main .feature .txtBox p {
        font-size: 1.55vw;
        line-height: 1.76;
    }
    #main .feature .imgBoxR {
        margin-bottom: 2.95vw;
    }
    #main .feature .imgBoxL .photo {
        margin-top: -2px;
        width: 54.8%;
    }
    #main .feature .imgBoxL .txtBox {
        margin-top: 11%;
    }
    #main .feature .imgBoxL .txtBox .inner {
        width: 96%;
    }
    #main .menu .headLine01 {
        margin-bottom: 2.2vw;
    }
    #main .menu .headLine01 .en02 {
        margin-bottom: 2.3vw;
    }
    #main .menu .cTxt {
        margin-bottom: 3.8vw;
        letter-spacing: 0.015em;
    }
    #main .menu li {
        padding-bottom: 11.5vw;
        width: 11.5vw;
    }
    #main .menu li img {
        height: 3.5vw;
    }
    #main .menu li .txt {
        margin-top: 0.2vw;
        font-size: 1.2vw;
    }
    #main .menu {
        margin-bottom: 12.45vw;
    }
    #main .sample {
        margin-bottom: 13.4vw;
    }
    #main .sample .slider {
        margin-top: -10.2%;
        padding: 0;
        max-width: 94%;
    }
    #main .sample .rTxt {
        margin-top: 2.35vw;
        font-size: 1.2vw;
        max-width: 94%;
    }
    #main .price .comImgBox {
        padding-bottom: 0;
        padding-top: 6.2%;
        min-height: 44vw;
        border: none;
        background: #6dc8c4;
    }
    #main .price .comImgBox .photo {
        width: 66.2%;
        right: 0;
        top: -16.6%;
    }
    #main .price .comImgBox .txtBox {
        max-width: 84.3%;
    }
    #main .price .comImgBox ul {
        margin-top: 3.8vw;
        font-size: 1.2vw;
    }
    #main .price .tabBox {
        margin-top: 0;
        padding: 37px 10px 47px;
        max-width: inherit;
    }
    #main .price .tabBox .inner {
        max-width: 870px;
    }
    #main .price .imgBox .txtBox .ttl {
        padding: 4px 0 5px;
        font-size: 1rem;
    }
    #main .price .imgBox .txtBox p {
        margin: 0 5px;
        font-size: 1rem;
    }
    #main .price .imgBox .txtBox {
        margin-bottom: 6px;
    }
    #main .price th,
    #main .price td {
        padding: 13px 3px;
        font-size: 1.8rem;
        line-height: 1.55;
    }
    #main .price .tdStyle02,
    #main .price .tdStyle03 {
        padding: 15px 3px 14px;
    }
    #main .price .trStyle02 td {
        font-size: 2.4rem;
    }
    #main .price .trStyle02 td sup {
        font-size: 1.5rem;
    }
    #main .price td .sml {
        font-size: 1.2rem;
    }
    #main .price td.left {
        padding: 11px 5px 22px 25px;
    }
    #main .price table {
        margin-bottom: 3.5vw;
    }
    #main .price .imgList {
        font-size: 1.6vw;
    }
    #main .price .imgList dt {
        width: 62%;
    }
    #main .price .imgList dd {
        margin-bottom: 6%;
    }
    #main .price .txtList {
        margin-top: 3vw;
        font-size: 1.2vw;
        line-height: 1.65;
    }
    #main .price {
        padding-bottom: 16.6vw;
    }
    #main .price .rBox ul {
        display: none;
    }
    #main .flow .headLine01 {
        margin-bottom: 2.4vw;
    }
    #main .flow .headLine01 .en02 {
        margin-bottom: 2.25vw;
    }
    #main .flow .cTxt {
        margin-bottom: 6.4vw;
        letter-spacing: 0.02em;
    }
    #main .flow .content {
        max-width: 94%;
    }
    #main .flow li .ttl:before {
        margin-left: -8px;
        width: 16px;
        height: 16px;
    }
    #main .flow li .ttl {
        margin-bottom: 20px;
        padding-top: 30px;
        font-size: 1.5rem;
    }
    #main .flow li .ttl .num {
        margin-top: -1px;
        font-size: 3.5rem;
    }
    #main .flow li::after {
        width: calc(100% + 16px);
        top: 8px;
    }
    #main .flow li .title {
        padding: 1.2vw 0.2vw;
        font-size: 1.8vw;
        line-height: 1.3;
    }
    #main .flow li .text {
        padding: 1.3vw 1.5vw 5.1vw;
        font-size: 1.4vw;
        line-height: 1.7;
        box-shadow: 0 20px 20px rgba(0,0,0,0.08);
    }
    #main .flow {
        margin-bottom: 13.6vw;
        padding-bottom: 11.7vw;
    }
    #main .faq .headLine01 {
        margin-bottom: 2.4vw;
    }
    #main .faq .headLine01 .en02 {
        margin-bottom: 2.2vw;
        font-size: 1.8vw;
    }
    #main .faq .content {
        max-width: 98%;
    }
    #main .faq .cTxt {
        margin-bottom: 7vw;
    }
    #main .faq dl {
        margin: 0 auto;
        width: 86%;
    }
    #main .faq dt {
        padding: 2vw 5vw 2vw 8vw;
        background-position: left 1.8vw center;
        background-size: 4.1vw auto;
    }
    #main .faq dd {
        margin-bottom: 6vw;
        padding: 2.2vw 8vw 0 8vw;
        background-position: top 1.4vw left 1.8vw;
        background-size: 4.1vw auto;
    }
    #main .faq dd p {
        margin-bottom: 2.7vw;
    }
    #main .faq dd ul {
        margin-bottom: 2.7vw;
    }
    #main .faq {
        margin-bottom: 19vw;
    }
    #main .message .comImgBox {
        padding: 17.4vw 10px 0;
        min-height: 55.9vw;
        background: url("../img/index/pad_bg03.png") no-repeat center top;
        background-size: 100vw auto;
    }
    #main .message .headLine01 .en02 {
        font-size: 1.8rem;
    }
    #main .message .bgBox {
        padding: 10.4vw 6.8vw 0;
        overflow: hidden;
    }
    #main .message .img {
        margin-bottom: -20px;
        max-width: 100%;
    }
    #main .message .photo {
        margin: 0 1vw 0 -11.6vw;
        max-width: inherit;
    }
    #main .contact {
        padding: 10.2vw 10px;
    }
    #main .contact .content {
        max-width: 96%;
    }
    #main .contact .headLine01 {
        margin-bottom: 2.5vw;
    }
    #main .contact .headLine01 .en02 {
        margin-bottom: 2.3vw;
        font-size: 1.8vw;
    }
    #main .contact .cTxt {
        margin-bottom: 7.1vw;
    }
    #main .contact .mailForm {
        margin: 0 auto;
        width: 90%;
    }
    #main .contact table {
        margin-bottom: 9.1vw;
    }
    #main .contact th, #main .contact td {
        margin-bottom: 1.8vw;
        font-size: 1.75vw;
        letter-spacing: 0.15em;
    }
    #main .contact td {
        margin-bottom: 4.5vw;
        padding-bottom: 3.3vw;
    }
    #main .contact th .must {
        margin-top: -0.5vw;
        padding: 0.2vw 0.5vw 0.4vw;
        font-size: 1.4vw;
    }
    #main .contact td input[type="text"], #main .contact td input[type="email"], #main .contact td select, #main .contact td textarea {
        height: 5.5vw;
    }
    #main .contact td textarea {
        height: 50.2vw;
    }
    #main .contact {
        padding-bottom: 13.5vw;
    }
    #main .contact .submit li input {
        padding: 3.7vw 0.5vw;
        width: 56%;
        font-size: 3vw;
        min-width: inherit;
        background-size: 3.8vw auto;
    }
    #main .contact .submit li input:hover {
        opacity: 1;
    }
}
@media all and (min-width: 561px) and (max-width: 890px) {
    #main .price .imgList dt {
        margin-bottom: 8px;
        width: 100%;
    }
}
@media all and (max-width: 560px) {
    .mainVisual {
        margin-bottom: 91px;
        background: #6DC8C3;
    }
    .mainVisual img {
        max-width: 100%;
        width: auto;
        height: auto;
    }
    .mainVisual .inner {
        position: relative;
    }
    .mainVisual .inner .contact {
        width: 45.5%;
        position: absolute;
        left: 2.8%;
        bottom: 2%;
    }
    #main .feature {
        margin-bottom: 100px;
    }
    #main .feature .imgBoxR {
        margin-bottom: 86px;
    }
    #main .feature .imgBoxR .photo {
        float: none;
        text-align: right;
    }
    #main .feature .imgBoxR .txtBox {
        float: none;
    }
    #main .feature .photo {
        width: auto;
    }
    #main .feature .photo img {
        width: 94.4%;
    }
    #main .feature .txtBox {
        margin: 30px 30px 0;
        padding: 0;
        width: auto;
    }
    #main .feature .txtBox .inner {
        margin-left: 0;
        max-width: inherit;
    }
    #main .feature .imgBoxL .photo {
        margin-top: 0;
        width: auto;
        float: none;
    }
    #main .feature .imgBoxL .txtBox {
        margin-top: 30px;
        float: none;
    }
    #main .feature .imgBoxL .txtBox .inner {
        margin-right: 0;
        max-width: inherit;
    }
    #main .menu {
        margin-bottom: 73px;
    }
    #main .menu .content {
        max-width: inherit;
    }
    #main .menu .headLine01 {
        margin-bottom: 15px;
    }
    #main .menu .headLine01 .en02 {
        margin-bottom: 17px;
    }
    #main .menu .cTxt {
        margin-bottom: 30px;
        text-align: left;
        letter-spacing: 0.08em;
    }
    #main .menu ul {
        margin: -28px auto 0;
        width: 76%;
        box-sizing: border-box;
        justify-content: space-between;
    }
    #main .menu li {
        margin: 28px 0 0;
        width: 40%;
        padding-bottom: 40%;
        line-height: 1.35;
    }
    #main .menu li img {
        height: 30px;
    }
    #main .menu li:nth-child(2n) {
        margin-right: 8%;
    }
    #main .menu li .txt {
        margin-top: 8px;
        font-size: 0.8rem;
    }
    #main .sample {
        margin-bottom: 38px;
    }
    #main .sample .headLine01 {
        margin-bottom: 16px;
    }
    #main .sample .headLine01 .en02 {
        margin-bottom: 22px;
    }
    #main .sample .comImgBox .txtBox {
        margin-bottom: 5px;
    }
    #main .price .comImgBox .photo {
        width: auto;
        position: static;
        right: auto;
        top: auto;
    }
    #main .sample .slider {
        margin: -40px auto 0;
        padding: 0;
        max-width: inherit;
    }
    .slick-list {
        padding: 0 0 76px !important;
    }
    #main .sample .slider li {
        margin: 0 15px !important;
        width: 180px !important;
        float: none;
        box-shadow: 0 20px 20px rgba(0,0,0,0.16);
    }
    #main .sample .slider li:nth-child(4n) {
        margin-right: 15px;
    }
    #main .sample .rTxt {
        margin-top: -72px;
        max-width: inherit;
        font-size: 0.6rem;
    }
	#main .price {
		padding-bottom: 102px;
	}
    #main .price .headLine01 .en02 {
        margin-bottom: 8px;
    }
    #main .price .comImgBox {
        padding: 58px 0 0;
        background: #6dc8c4;
    }
    #main .price .comImgBox .txtBox {
        margin-bottom: 25px;
    }
    #main .price .comImgBox ul {
        margin-top: 30px;
        font-size: 1.4rem;
        line-height: 1.428;
    }
    #main .price .tabBox {
        margin: 0 auto 0;
        padding: 48px 15px 42px;
        max-width: inherit;
        box-shadow: 0 30px 30px rgba(0,0,0,0.08);
    }
    #main .price .tabList {
        justify-content: space-between;
    }
    #main .price .tabList li {
        width: 32.5%;
    }
    #main .price .tabList li span {
        padding: 14px 2px;
        display: block;
        color: #FFF;
        font-size: 1.6rem;
        font-weight: 500;
        cursor: pointer;
        text-align: center;
        line-height: 1.25;
        border-radius: 5px 5px 0 0;
        background-color: #9fa0a0;
    }
    #main .price .tabList li.on span {
        background-color: #6dc8c4;
    }
    #main .price .tabList li:last-of-type.on span {
        background-color: #ff4181;
    }
    #main .price .tabInner {
        padding: 25px 5px 23px;
        border: 4px solid #6dc8c4;
    }
    #main .price .tabInner:last-of-type {
        border-color: #ff4181;
    }
    #main .price .tabInner:last-of-type .imgBox .txtBox .ttl {
        color: #ff4181;
        border-color: #ff4181;
    }
    #main .price .tabBox .inner {
        margin: 0 auto;
        max-width: inherit;
    }
    #main .price .imgBox {
        margin-bottom: 9px;
        align-items: flex-start;
    }
    #main .price .imgBox .photo {
        width: 110px;
    }
    #main .price .imgBox .txtBox {
        margin: 2px 0;
        width: calc(100% - 110px);
    }
    #main .price .imgBox .txtBox .ttl {
        margin: 0 0 2px;
        padding: 4px 10px;
        display: inline-block;
        font-size: 1.1rem;
    }
    #main .price .imgBox .txtBox p {
        margin: 0;
        font-size: 1.2rem;
        line-height: 1.57;
    }
    #main .price .tabInner dl {
        margin: 0 20px;
    }
    #main .price .tabInner dt {
        margin-bottom: 2px;
        padding-bottom: 0;
        color: #6DC8C4;
        font-size: 1.4rem;
        font-weight: 500;
        border-bottom: 1px dotted #6DC8C4;
    }
    #main .price .tabInner:last-of-type dt {
        color: #FF4181;
        border-color: #FF4181;
    }
    #main .price .tabInner dd {
        margin-bottom: 13px;
        font-size: 1.6rem;
    }
    #main .price .tabInner dd .sml {
        display: block;
        font-size: 1.2rem;
    }
    #main .price .tabInner dd strong {
        margin-top: -5px;
        font-size: 2rem;
        font-weight: 700;
    }
    #main .price .tabInner dd sup {
        font-size: 2rem;
        font-size: 1rem;
    }
    #main .price .tabInner dd:last-of-type {
        margin-bottom: 0;
    }
    #main .price .imgList {
        margin-top: 27px;
        font-size: 1.2rem;
    }
    #main .price .imgList:before {
        display: none;
    }
    #main .price .lBox {
        padding-right: 0;
        width: auto;
        float: none;
    }
    #main .price .rBox {
        padding-left: 0;
        width: auto;
        float: none;
    }
    #main .price .imgList dl {
        margin: 0 15px;
    }
    #main .price .imgList dt {
        width: auto;
    }
    #main .price .imgList dd {
        margin-bottom: 18px;
    }
    #main .price .imgList dd .inn {
        padding-left: 10px;
        min-width: inherit;
    }
    #main .price .imgList .lBox dd:last-of-type {
        margin-bottom: 20px;
    }
    #main .price .imgList dt img {
        margin-right: 15px;
        width: 42px;
    }
    #main .price .imgList dt .inn {
        padding-right: 5px;
    }
    #main .price .rBox ul {
        margin: 21px 15px 0;
    }
    #main .price .rBox li {
        font-size: 0.6rem;
        line-height: 1.5;
    }
    #main .flow {
        margin-bottom: 72px;
        padding-bottom: 55px;
    }
    #main .flow .headLine01 {
        margin-bottom: 15px;
    }
	#main .flow .content {
		max-width: inherit;
	}
	#main .flow .headLine01 .en02 {
		margin-bottom: 8px;
	}
	#main .flow .cTxt {
		margin-bottom: 32px;
		text-align: left;
	}
	#main .flow li {
		margin: 0 0 46px;
		width: auto;
		display: flex;
    	justify-content: space-between;
	}
    #main .flow li:last-of-type {
        margin-bottom: 0;
    }
    #main .flow li:after {
        width: 1px;
        height: calc(100% - 25px);
        left: 14px;
        top: 50px;
    }
    #main .flow li .ttl {
        margin: -3px 0 0;
        padding-top: 0;
        font-size: 1.2rem;
        letter-spacing: 2px;
    }
	#main .flow li .ttl:before {
		display: none;
	}
	#main .flow li .ttl .num {
        margin-top: -4px;
		font-size: 2.8rem;
	}
	#main .flow li .txtBox {
		width: calc(100% - 42px);
	}
    #main .flow li .title {
        padding: 6px 15px;
        display: block;
        font-size: 1.6rem;
        text-align: left;
    }
    #main .flow li .text {
        padding: 12px 20px 16px 20px;
        min-height: 100px;
        font-size: 1.2rem;
        line-height: 1.55;
        box-sizing: border-box;
        box-shadow: 0 10px 20px rgba(0,0,0,0.1);
    }
    #main .faq {
        margin-bottom: 75px;
    }
    #main .faq .headLine01 {
        margin-bottom: 16px;
    }
    #main .faq .headLine01 .en02 {
        margin-bottom: 8px;
    }
    #main .faq .cTxt {
        margin: 0 15px 34px;
        text-align: left;
    }
    #main .faq .content {
        margin: 0 auto;
        padding: 0 15px;
        max-width: inherit; 
    }
    #main .faq dt {
        padding: 14px 45px 20px 56px;
        line-height: 1.8;
        font-size: 1.4rem;
        background: #f7f7f7 url("../img/common/icon01.png") no-repeat center left 18px;
        background-size: 24px auto;
    }
    #main .faq dt:after {
        margin-top: -14px;
        width: 28px;
        height: 28px;
        right: 10px;
        background-size: 28px auto;
    }
    #main .faq dd {
        margin-bottom: 36px;
        padding: 15px 20px 0 58px;
        line-height: 1.7;
        font-size: 1.4rem;
        background: url("../img/common/icon02.png") no-repeat top 20px left 19px;
        background-size: 24px auto;
    }
    #main .faq dd p {
        margin-bottom: 25px;
    }
    #main .faq dd ul {
        margin-bottom: 25px;
    }
    #main .message {
        margin-bottom: 0;
        overflow: hidden;
    }
    #main .message .comImgBox {
        padding: 55px 0 0;
        background: #1d1d1d;
    }
    #main .message .comImgBox .txtBox {
        margin-bottom: -2px;
    }
    #main .message .comImgBox .txtBox p {
        text-align: center;
        font-weight: 400;
        line-height: 2.35;
    }
    #main .message .headLine01 {
        margin-bottom: 15px;
        line-height: 1.5;
    }
    #main .message .headLine01 .en02 {
        margin-bottom: 5px;
    }
    #main .message .bgBox {
        margin-top: -1px;
        padding: 55px 11px 0;
    }
    #main .message .img {
        margin: 0 auto -10px;
        max-width: inherit;
    }
    #main .message .bgBox .photo {
        margin: 0 -20px;
        max-width: inherit;
    }
    #main .message .bgBox .photo img {
        width: 100%;
    }
    #main .message .photo {
        max-width: inherit;
    }
    #main .contact {
        padding: 55px 0 70px;
    }
    #main .contact .content {
        padding: 0 15px;
        max-width: inherit;
    }
    #main .contact .headLine01 {
        margin-bottom: 15px;
    }
    #main .contact .headLine01 .en02 {
        margin-bottom: 8px;
    }
    #main .contact .cTxt {
        margin: 0 15px 98px;
        text-align: left;
        line-height: 2;
    }
    #main .contact table {
        margin-bottom: 16px;
    }
    #main .contact th,
    #main .contact td {
        margin-bottom: 12px;
        font-size: 1.4rem;
    }
    #main .contact th .must {
        margin: -3px 0 0 10px;
        padding: 3px 5px;
        font-size: 0.8rem;
        line-height: 1.2;
        border-radius: 2px;
        vertical-align: middle;
    }
    #main .contact td {
        margin-bottom: 20px;
        padding-bottom: 19px;
    }
    #main .contact td input[type="text"],
    #main .contact td input[type="email"],
    #main .contact td select,
    #main .contact td textarea {
        padding: 0 15px;
        font-size: 1.2rem;
        height: 57px;
    } 
    #main .contact td textarea {
        height: 190px;
        resize: none;
    }
    #main .contact .submit li input {
        padding: 18px 5px;
        width: 70%;
        font-size: 1.6rem;
        background-size: 20px auto;
    }
    #main .contact .submit li input:hover {
        opacity: 1;
    }
}
@media all and (max-width: 340px) {
    .mainVisual .ttl .inn {
        font-size: 1.4rem;
    }
}