@charset "UTF-8";
@font-face {
    font-family: 'HiraKaku';
    src: url("../fonts/hirakakupro-w3.otf") format("opentype");
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'HiraKaku';
    src: url("../fonts/hirakakupro-w6.otf") format("opentype");
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}


/*　共通設定
----------------------------------------------- */

html {
    font-size: 62.5%;
}

body {
    padding-top: 155px;
    font-size: 2.1rem;
    font-family: 'HiraKaku', 'ヒラギノ角ゴ ProN W3', Hiragino Kaku Gothic ProN, "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", 'メイリオ', Meiryo, sans-serif;
    color: #343C32;
    line-height: 1.6;
}

.body-wrapper {
    overflow-x: hidden;
}

figure {
    line-height: 0;
}

.container {
    width: 100%;
    max-width: 910px;
    margin: 0 auto;
    padding: 0 15px;
}

@media screen and (max-width: 768px) {
    html {
        font-size: 50%;
    }
    body {
        padding-top: 0;
    }
}


/*　カラー系
----------------------------------------------- */

.col-white {
    color: #fff !important;
}

.bg-white {
    background: #fff !important;
}


/*　レイアウト系
----------------------------------------------- */

.d-block {
    display: block;
}

.d-flex {
    display: flex !important;
}

.flex-wrap {
    flex-wrap: wrap;
}

.justify-content-center {
    justify-content: center;
}

.justify-content-between {
    justify-content: space-between;
}

.justify-content-end {
    justify-content: flex-end;
}

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

.align-items-center {
    align-items: center;
}

.align-items-end {
    align-items: flex-end;
}

.flex-column {
    flex-direction: column;
}

.flex-row-reverse {
    flex-direction: row-reverse;
}

.font-weight-bold {
    font-weight: bold;
}

.text-left {
    text-align: left;
}

.text-center {
    text-align: center;
}

.text-right {
    text-align: right;
}

.position-relative {
    position: relative;
}

.flex-1 {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
}


/* SPのみ表示用 */

.pc,
.sp-show {
    display: none;
}

@media screen and (min-width: 769px) {
    /* PCのみ表示用 */
    .sp {
        display: none;
    }
    .pc {
        display: block;
    }
}

@media screen and (max-width: 480px) {
    .sp-hide {
        display: none;
    }
    .sp-show {
        display: block;
    }
}


/********************************************
***************** header ********************
********************************************/

header {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    background: #fff;
    border-bottom: 1px solid #B3B3B3;
    z-index: 10;
}

.header_txt {
    padding: 6px 0;
    font-size: 1.5rem;
    background: #39B54A;
    color: #fff;
}

.header_wrapper {
    padding: 10px 0;
}

.header_right {
    padding-right: 20px;
    border-right: 1px solid #B3B3B3;
}

.header_tel {
    margin-right: 20px;
    padding-right: 20px;
    border-right: 1px solid #B3B3B3;
}

@media screen and (max-width: 768px) {
    header {
        position: relative;
        border-bottom: 5px solid #39B54A;
    }
    .header_logo {
        width: calc( 90% - 185px);
    }
    .header_txt {
        position: absolute;
        font-size: 1.3rem;
        right: 0;
        bottom: 5px;
        color: #231815;
        background: none;
    }
}

@media screen and (max-width: 480px) {
    .header_logo {
        width: calc( 90% - 125px);
    }
}


/********************************************
********************* mv ********************
********************************************/

.mv_tag p {
    display: inline-block;
    margin-right: 10px;
    padding: 3px 15px;
    font-size: 2.1rem;
    background: #E6E6E6;
    border-radius: 10px;
}

h1 {
    font-size: 4.4rem;
}

h1 span {
    font-size: 80%;
}

.mv_banner {
    position: absolute;
    right: 2%;
    bottom: 0;
    transform: translateY(30%);
}

.border_yellow {
    background: linear-gradient(to top, #FFFF00 30%, #fff 30%);
}

@media screen and (max-width: 768px) {
    .mv_tag p {
        margin-right: 2px;
    }
    .mv_banner {
        width: 25%;
        text-align: right;
        transform: translateY(30%);
    }
}

@media screen and (max-width: 480px) {
    h1 {
        font-size: 3rem;
        line-height: 3.5rem;
    }
}


/********************************************
******************* Contact *****************
********************************************/

.cmn_tel_btn {
    position: absolute;
    left: 29%;
    width: 49%;
    top: 31%;
}

.cmn_tel_btn2 {
    position: absolute;
    left: 35%;
    width: 55%;
    top: 30%;
}

.cmn_contact_btn {
    position: absolute;
    right: 5%;
    top: 34%;
    width: 9%;
}

.blank_link {
    position: absolute;
    left: 5%;
    right: 5%;
    top: 45%;
}

@media screen and (max-width: 768px) {
    .cmn_contact_btn {
        right: 6%;
        top: 65%;
        width: 57%;
    }
    .cmn_tel_btn {
        left: 35%;
        width: 56%;
        top: 28%;
    }
    .cmn_tel_btn2 {
        left: 35%;
        width: 60%;
        top: 32%;
    }
}

.sec_ttl {
    position: relative;
    padding: 24px 4%;
    font-size: 3.2rem;
    font-weight: bold;
    line-height: 1.3;
    background: rgba(140, 198, 63, .2);
    border-bottom: 5px solid #8CC63F;
}

.sec_subttl {
    position: relative;
    padding: 12px 0 12px 30px;
    font-size: 2.9rem;
    font-weight: bold;
    line-height: 1.3;
}

.sec_subttl::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 12px;
    height: 100%;
    background: linear-gradient(to bottom, #39B54A 50%, #8CC63F 50%);
}

.read-more-btn {
    margin-top: 15px;
    text-decoration: underline;
    cursor: pointer;
    color: #0071BC;
}

.read-more-btn .open,
.read-more-btn .close.active {
    display: none;
}

.read-more-btn .open.active {
    display: block;
}

@media screen and (max-width: 768px) {
    .sec_subttl::before {
        width: 7px;
    }
    .sec_subttl {
        padding: 7px 0 7px 20px;
    }
    .read-more {
        display: none;
    }
}

@media screen and (max-width: 480px) {
    .sec_ttl {
        font-size: 2.75rem;
    }
    .sec_subttl {
        font-size: 2.5rem;
    }
}


/********************************************
******************* Contents ****************
********************************************/

.contents {
    background: #E6E6E6;
}

.contents_ttl {
    padding: 16px;
    font-size: 2.9rem;
    background: #cfcfcf;
}

.contents_cont {
    padding: 30px 4.5%;
}

.contents_cont ul>li {
    position: relative;
    padding: 15px 0 15px 35px;
    border-bottom: 1px dashed #333;
}

.contents_cont ul>li:last-child {
    border-bottom: none;
}

.contents_cont ul>li::before {
    content: '▼';
    position: absolute;
    top: 19px;
    left: 0;
    font-size: 1.5rem;
}

.contents_cont ul li ol {
    padding-left: 25px;
    color: #0071BC;
}

.contents_cont ul li ol li {
    margin-top: 5px;
}

@media screen and (max-width: 768px) {
    .contents {
        margin-left: -15px;
        margin-right: -15px;
    }
    .contents_ttl {
        background: none;
        border-bottom: 1px solid #B3B3B3;
    }
    .contents_cont {
        padding: 5px 4.5% 15px;
        font-size: 2rem;
    }
    .contents_cont ul>li {
        padding: 5px 0 0 25px;
        border-bottom: none;
    }
    .contents_cont ul>li::before {
        top: 5px;
    }
    .contents_cont ul li ol {
        padding-left: 0px;
    }
}


/********************************************
********************* Sec1 ******************
********************************************/

#sec1-1 .sec_subttl::after {
    content: url(../images/clock.png);
    position: absolute;
    top: 50%;
    left: 630px;
    transform: translateY(-50%);
    line-height: 0;
}

@media screen and (max-width: 768px) {
    #sec1-1 .sec_subttl::after {
        left: 320px;
        transform: translateY(-50%) scale(.7);
    }
}

@media screen and (max-width: 480px) {
    #sec1-1 .sec_subttl::after {
        left: 265px;
    }
}


/********************************************
********************* Sec3 ******************
********************************************/

.price {
    padding: 30px 5%;
    border: 1px solid #999;
    border-radius: 20px;
}

.price h3 {
    font-weight: bold;
    font-size: 3.4rem;
}

.price h3 span {
    font-size: 200%;
}

.price_tag p {
    min-width: 140px;
    margin: 5px 3.5px;
    padding: 3px 15px;
    font-size: 1.9rem;
    background: #E6E6E6;
    border-radius: 10px;
}

.price .underline {
    font-size: 2.7rem;
    color: #39B54A;
    text-decoration: underline;
}

@media screen and (max-width: 768px) {
    .price {
        padding: 20px 0;
        border: none;
    }
}

@media screen and (max-width: 480px) {
    .price {
        font-size: 1.35rem;
        padding: 0;
    }
    .price .underline {
        font-size: 2rem;
    }
    .price h3 {
        margin-bottom: 10px;
        font-size: 2.25rem;
        line-height: 1.3;
    }
    .price h3 span {
        font-size: 150%;
    }
}


/********************************************
********************* Sec4 ******************
********************************************/

.reason {
    border: 6px solid rgba(214, 163, 73, .3);
    border-radius: 25px;
}

.reason_cont {
    padding: 20px 4.5%;
}

.reason_cont ul li {
    position: relative;
    padding: 7px 0 7px 40px;
}

.reason_cont ul li::before {
    content: '▶';
    position: absolute;
    left: 0;
    top: 12px;
    font-size: 1.5rem;
    color: #8CC63F;
}

#sec4-5 .sec_subttl::after {
    content: url(../images/person.png);
    position: absolute;
    bottom: 0;
    left: 500px;
    line-height: 0;
}

#sec4-5 h4 {
    font-size: 2.9rem;
}

table {
    border-collapse: collapse;
    font-size: 1.8rem;
}

.col-green {
    color: #39B54A;
}

table tr td,
table tr th {
    padding: 15px 1.5%;
    border: 1px solid #333;
    vertical-align: middle;
}

table tr th {
    font-size: 2.5rem;
    background: #E6E6E6;
}

table thead tr td:last-child {
    background: #8CC63F;
    color: #fff;
}

table tbody tr td:last-child {
    background: rgba(140, 198, 63, .2);
}

.table_num {
    font-size: 2.5rem;
    line-height: 1.2;
}

.shape {
    font-size: 4.5rem;
}

@media screen and (max-width: 768px) {
    #sec4-5 .sec_subttl::after {
        left: 395px;
        transform: scale(.7);
        transform-origin: left bottom;
    }
    .reason {
        border: none;
    }
    .reason_header img {
        max-width: 90%;
        margin-left: 5%;
    }
    .reason_cont ul li::before {
        top: 8px;
    }
    .reason_cont ul li {
        padding-left: 20px;
    }
}

@media screen and (max-width: 480px) {
    .reason_cont {
        padding: 10px 0 0;
    }
    #sec4-5 .sec_subttl::after {
        left: 195px;
    }
    .table_num {
        font-size: 2rem;
        min-height: 32px;
    }
    table tbody tr td {
        vertical-align: top;
    }
}


/********************************************
********************* Sec5 ******************
********************************************/

.sec5 .sec_ttl {
    padding-right: 150px;
}

.sec5 .sec_ttl::after {
    content: url(../images/character1.png);
    position: absolute;
    right: 20px;
    bottom: -20px;
    line-height: 0;
}


/********************************************
********************* Sec6 ******************
********************************************/

.sec6 .sec_ttl {
    padding-right: 150px;
}

.sec6 .sec_ttl::after {
    content: url(../images/character2.png);
    position: absolute;
    right: 20px;
    bottom: -20px;
    line-height: 0;
}

.sec6-slider-pc .slider-item {
    width: 48%;
    margin-bottom: 30px;
    border: 1px solid #323232;
    border-radius: 15px;
}

.slider-item {
    font-size: 1.9rem;
    padding: 20px 12px;
}

.sec6-slider-sp {
    margin: 0 -15px;
}

.sec6-slider-sp .slick-slide {
    margin: 0 25px 10px;
    background: #fff;
    border-radius: 15px;
    border: 1px solid #323232;
}

.slider-header figure {
    width: 25%;
    margin-right: 3%;
}

.slider-header h3 {
    font-size: 2.2rem;
    line-height: 1.3;
}

.slider-item .bg-grey {
    padding: 15px;
    background: #E6E6E6;
}

.slider-item .arrow {
    margin: 10px 0;
}

.slick-dots {
    bottom: -45px;
}

.slick-dots li button {
    padding: 0;
    background: #E6E6E6;
    border: none;
    border-radius: 50%;
}

.slick-dots li.slick-active button {
    background: #8CC63F;
}

.slick-dots li button:before {
    display: none;
}

.slick-prev {
    left: 0;
    width: 40px;
    height: 40px;
    z-index: 10;
}

.slick-next {
    right: 0;
    width: 40px;
    height: 40px;
    z-index: 10;
}

.slick-prev:before {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    background: url(../images/slider-prev.png) no-repeat center / contain;
}

.slick-next:before {
    content: '';
    width: 100%;
    height: 100%;
    right: 0;
    top: 0;
    position: absolute;
    background: url(../images/slider-next.png) no-repeat center / contain;
}

.slick-slide img {
    margin: 0 auto;
}

@media screen and (max-width: 768px) {
    .sec5 .sec_ttl,
    .sec6 .sec_ttl {
        padding-right: 95px;
    }
    .sec5 .sec_ttl::after,
    .sec6 .sec_ttl::after {
        right: 10px;
        bottom: -15px;
        transform: scale(.7);
        transform-origin: right bottom;
    }
    .sec6-slider-pc .slider-item {
        width: 100%;
    }
}


/********************************************
********************* Sec7 ******************
********************************************/

.faq-header {
    background: #fff;
    padding: 3px 3px 3px 15px;
    border: 1px solid #666;
    font-size: 2.9rem;
    cursor: pointer;
}

.q-mark {
    margin-right: 10px;
}

.q-arrow {
    margin-left: 10px;
}

.q-arrow .up,
.q-arrow.active .down {
    display: none;
}

.q-arrow.active .up {
    display: block;
}

.answer {
    display: none;
    padding-left: 70px;
}

.col-blue {
    color: #0071BC;
}

@media screen and (max-width: 480px) {
    .faq-header {
        padding: 3px 3px 3px 10px;
        font-size: 2rem;
    }
    .answer {
        padding-left: 30px;
    }
    .q-arrow {
        width: 30px;
    }
}


/********************************************
********************* Sec8 ******************
********************************************/

.f-18 {
    font-size: 1.8rem;
}

.sec8 ul li h3 {
    padding: 7px;
    text-align: center;
    font-weight: bold;
    background: #E6E6E6;
}


/********************************************
********************* Sec9 ******************
********************************************/

.sec9 ul li {
    padding: 15px 0;
    font-size: 2.9rem;
    align-items: flex-start;
    border-bottom: 1px dashed #333;
}

.sec9 ul li:first-child {
    border-top: 1px dashed #333;
}

.promise_ttl {
    position: relative;
    top: 3px;
    font-size: 2.1rem;
    margin-right: 15px;
    padding: 3px 15px;
    background: rgba(140, 198, 63, .2);
    border-radius: 10px;
}

@media screen and (max-width: 480px) {
    .sec9 ul li {
        padding: 7px 0;
        font-size: 2rem;
        border-bottom: 0px dashed #333;
    }
    .sec9 ul li:first-child {
        margin-top: -1.5rem;
        border-top: 0px dashed #333;
    }
    .promise_ttl {
        font-size: 1.75rem;
        top: 0;
        padding: 3px 10px 0px;
        border-radius: 0px;
    }
}


/********************************************
******************** Contact ****************
********************************************/

.contact_sec {
    background: #E6E6E6;
}

.contact_sec .cmn_contact::before {
    content: '';
    position: absolute;
    right: 10px;
    top: 25%;
    height: 50%;
    width: 50%;
    background: #fff;
}

.contact_sec .cmn_tel_btn {
    top: 30%;
    left: 37%;
    width: 52%;
    background: #fff;
}

.contact_sec h2 {
    padding: 10px;
    font-size: 3.1rem;
    background: #39B54A;
    color: #fff;
}

.contact_sec h2 img {
    position: relative;
    top: 5px;
    margin-right: 10px;
}

.contact-form {
    padding: 40px 4%;
    background: #fff;
}

.contact-form dl {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 20px 0;
    font-size: 1.8rem;
    border-bottom: 1px dashed #333;
}

.contact-form dl dt {
    position: relative;
    width: 190px;
    padding-top: 15px;
    margin-right: 20px;
}

.confirm-form dl dt {
    padding-top: 0;
}

.contact-form dl dt .required {
    position: absolute;
    right: 0;
    top: 50%;
    font-size: 1.4rem;
    color: #fff;
    background: #FF0000;
    padding: 3px 10px;
    transform: translateY(-50%);
}

.contact-form dl dd {
    flex: 1;
}

.contact-form dl dd input[type="text"],
.contact-form dl dd textarea {
    width: 100%;
    padding: 15px;
    border: 1px solid #323232;
    border-radius: 5px;
    box-sizing: border-box;
}

.contact-form dl dd input[type="text"] {
    height: 58px;
}

.confirm-btn {
    max-width: 460px;
    height: 100px;
    margin: 0 auto;
    background: url(../images/confirm_btn.png) no-repeat center / contain;
}

.submit-btn,
.back-btn {
    width: 48%;
    max-width: 460px;
    height: 85px;
    margin: 10px 1%;
}

.submit-btn {
    background: url(../images/submit_btn.png) no-repeat center / contain;
}

.back-btn {
    background: url(../images/back_btn.png) no-repeat center / contain;
}

input[type="button"],
input[type="submit"] {
    display: block;
    width: 100%;
    font-size: 0;
    height: 100%;
    background: transparent;
    outline: none;
    border: none;
    cursor: pointer;
}

.sitetop {
    position: relative;
    display: inline-block;
    width: 100%;
    max-width: 420px;
    font-size: 3.4rem;
    color: #fff;
    line-height: 100px;
    border-radius: 100px;
    background-color: #8cc63f;
    box-shadow: 0 5px 0 #367c30;
}

.sitetop::before {
    content: url(../images/icon-button.png);
    position: absolute;
    right: 20px;
    top: 50%;
    line-height: 0;
    transform: translateY(-50%);
}

.contact-form input[type="submit"] {
    display: block;
    width: 100%;
}

.confirm_ttl {
    font-size: 3.5rem;
}

@media screen and (max-width: 910px) {
    .submit-btn,
    .back-btn {
        height: 9.5vw;
    }
}

@media screen and (max-width: 768px) {
    .contact_sec h2 {
        padding: 5px 0 10px;
    }
    .contact_sec h2 img {
        transform: translateY(3px) scale(.7);
    }
    .contact-form dl {
        font-size: 2rem;
    }
    .contact-form dl dd input[type="text"] {
        height: 38px;
    }
}

@media screen and (max-width: 480px) {
    .contact-form {
        padding-top: 10px;
    }
    .contact-form dl {
        padding: 0;
        border-bottom: none;
    }
    .contact-form dl dt {
        padding: 15px 0 5px;
    }
    .contact-form dl dd {
        flex: none !important;
        width: 100%;
    }
    .contact-form dl dt .required {
        position: relative;
        top: 0;
        transform: none;
        margin-left: 10px;
    }
    .confirm-btn,
    .submit-btn,
    .back-btn {
        width: 100%;
        height: 18.5vw;
    }
    .sitetop {
        font-size: 3rem;
        line-height: 75px;
    }
}


/********************************************
********************* Sec10 *****************
********************************************/

.sec10 .bg-green {
    padding: 0 15px;
    font-size: 2.8rem;
    background: #39B54A;
}

.owner_header figure {
    margin-right: 20px;
}

.sec10 h2 {
    margin: 10px 0;
    font-size: 3.2rem;
    line-height: 1.2;
}

.f-22 {
    font-size: 2.2rem;
}

.sec10_cont {
    margin-top: 30px;
    padding: 30px 0;
    border-top: 1px dashed #333;
    border-bottom: 1px dashed #333;
}

@media screen and (max-width: 768px) {
    .sec10_cont {
        margin-top: 10px;
        padding: 20px 0 30px;
    }
}

@media screen and (max-width: 480px) {
    .owner_header figure {
        width: 30%;
    }
    .sec10 .bg-green,
    .f-22 {
        font-size: 1.7rem;
    }
    .sec10 h2 {
        font-size: 2.5rem;
    }
}


/********************************************
****************** footer *******************
********************************************/

footer {
    line-height: 2;
}

.copyright {
    padding: 15px;
    background: #39B54A;
    color: #fff;
    font-size: 1.5rem;
}

#topBtn {
    position: fixed;
    right: 15px;
    bottom: 15px;
    z-index: 10;
}

@media screen and (min-width: 769px) {
    .ctaBtn {
        display: none !important;
    }
}

@media screen and (max-width: 768px) {
    footer .pa_bo30 {
        padding-bottom: 1em !important;
    }
    .footer_logo {
        width: 65%;
    }
    .footer_banner {
        position: absolute;
        top: 0;
        right: 0;
        width: 30%;
        text-align: right;
    }
    .copyright {
        padding: 0 0 23vw;
        background: #fff;
        color: #000;
    }
    #topBtn {
        width: 40px;
        bottom: 15vw;
        opacity: .8;
    }
    .ctaBtn {
        position: fixed;
        left: 0;
        bottom: 0;
        width: 100%;
        background: rgba(57, 181, 74, .9);
    }
    .ctaBtn a {
        padding: 15px 3%;
    }
    .cta_tel {
        width: 70%;
        border-right: 1px solid #fff;
    }
    .cta_mail {
        width: 30%;
    }
}

@media screen and (max-width: 480px) {
    #topBtn {
        bottom: 17vw;
    }
}