@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;600;700&display=swap');

html{
    scroll-behavior: smooth;
}
body{
    font-style: normal;
    color: #040000;
    height: 100%;
    margin-top: 0px;
    background-color: #fefefc;
    font-family: 'Noto Sans JP', sans-serif;
}
.serif {
    font-family: 'Noto Serif JP', serif;
}
.list {
    list-style: none;
    margin: 0px;
    padding: 0px;
}
a {
    text-decoration: none;
}
a:hover, a:focus {
    text-decoration: none;
    outline: none;
    color: #333333;
    transition: all 0.3s ease-in-out;
}
button:focus {
    outline: none;
    box-shadow: none;
}
*:focus {
    outline: none !important;
}
*:focus {
    box-shadow:none !important;
}
.container {
    max-width: 1280px;
    padding: 0px 10px 0px 10px;
    margin: 0px auto 0px auto;
}
.txt_red {
    color: #C12A21;
}
.row {
    margin: 0 0px 0 0px;
}
img {
    width: 100%;
    margin: 0px;
    padding: 0px;
}
h2 {
    font-size: 36px;
    font-weight: 600;
    }
h3 {
    font-size: 36px;
    font-weight: 600;
    }
h4 {
    font-size: 22px;
    font-weight: 600;
    }
p {
    font-size: 16px;
}
.mt40 {
    margin-top: 40px;
}
.md-hidden {
    display: none;
}
.btn_top {
    background: #fff;
    color: #7dc163;
    width: 90%;
    border-radius: 0px;
    border: 1px solid #7dc163;
}
.btn:hover {
    background: rgba(168, 251, 140, 0.18);
    color: #7dc163;
    width: 90%;
    border-radius: 0px;
    border: 1px solid #7dc163;
}

@media (max-width: 767px) {
    h2 {
        font-size: 26px;
    }
    h3 {
        font-size: 24px;
    }
    h4 {
        font-size: 20px;
    }
    p {
        font-size: 14px;
    }
    .sm-hidden {
        display: none;
    }

}
.ft12 {
    font-size: 12px!important;
}
.ft_18 {
    font-size: 18px!important;
    vertical-align: baseline;
}
.ft28 {
    font-size: 28px!important;
    vertical-align: baseline;
}
.ft30 {
    font-size: 30px!important;
    vertical-align: baseline;
}
.ft40 {
    font-size: 40px!important;
    vertical-align: baseline;
}
.figure-caption {
    font-size: 12px;
    font-weight: bold;
    color: #040000;
    text-align: left;
    padding: 0px;
    margin: 5px 0 0 10px;
}
@media screen and (max-width: 576px) {
    .ft_18 {
        font-size: 14px!important;
        vertical-align: baseline;
    }
    .ft28 {
        font-size: 20px!important;
        vertical-align: baseline;
    }
    .ft30 {
        font-size: 24px!important;
        vertical-align: baseline;
    }
    .ft40 {
        font-size: 20px!important;
        vertical-align: baseline;
    }
    .figure-caption {
        font-size: 10px;
    }
}


.list_decimal {
    list-style: decimal;
}

section {
    font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;

}

.footer {
    background-color: #7dc163;
    font-size: 14px;
    text-align: center;
    padding: 10px 0 10px 0;
    color: #fff;
    margin-top: 40px;
    width: 100%;
}
@media screen and (max-width: 576px) {
    .footer {
        font-size: 10px;
    }
}

/* コンテンツ */

.contents_header {
    border-top: 10px solid #7dc163;
    text-align: center;
}
.bg_top {
    background: url(../images/bg_top.png) no-repeat center top;
    background-size: contain;
    padding: 60px 0 40px 0;
}
h1 {
    font-size: 20px;
    font-weight: bold;
}
.logo {
    max-width: 340px;
    margin: 40px auto 60px auto;

}
.main_img {
    max-width: 700px;
    margin: auto;
}
.main_img img {
    width: 100%;
}
.contents_banner {
    border-top: 4px solid #7dc163;
    border-bottom: 4px solid #7dc163;
    text-align: center;
    background-color: #7dc163;

}
.contents_banner .container {
    padding: 13px 0 13px 0;
}
.bg_banner {
    background: url(../images/bg_01.png) no-repeat center center;
    background-size: cover;
}


.banner {
    max-width: 1012px;
    margin: auto;
    background-color:#fff;

}
.banner a:hover{
    opacity: 0.6 ;
}

.cont01 {
    margin: 0px auto 0px auto;
    padding-top: 40px;
    text-align: center;
    background-color: #fffef8;
    background: url(../images/bg_02.png) no-repeat center top;

}
.cont01 .haeding_logo {
    max-width: 547px;
    text-align: center;
    margin: 0 auto 40px auto;
}
.txt_underline  p {
    max-width: 880px;
    border-bottom: 2px dotted #040000;
    margin: 0 auto 8px auto;
    font-weight: bold;
    line-height: 1.7;
}
.txt_bg_green {
    max-width: 880px;
    background-color: #fff;
    border: 1px solid #7dc163;
    padding: 20px 10px 20px 10px;
    margin: 20px auto 20px auto;
}
.txt_bg_green p {
    font-size: 24px;
    color: #ea5a3a;
    font-weight: 600;
}
.txt_boder01 {
    max-width: 695px;
    border: 3px solid #040000;
    padding: 5px;
    background-color: #fff;
    margin: 40px auto 0 auto;
}
.txt_boder01 .txt_boder02 {
    border: 1px solid #040000;
    padding: 8px;
}
.txt_boder01 .txt_boder02 p {
    font-size: 26px;
    font-weight: bold;
}
.img_flow01 {
    max-width: 1066px;
    margin: 40px auto 0px auto;
    padding: 0 10px 0 10px;
}

.txt_wrap {
    margin: 20px auto 0px auto;
    position: relative;
}
.txt_wrap p {
    border: 1px solid #040000;
    max-width: 430px;
    margin: auto;
    font-size: 14px;
    font-weight: bold;
    padding: 20px 10px 20px 10px;
    background-color: #fff;
}
.img_flow01 .flow_img {
    margin-left: 30px;
}
.txt_wrap .img_arrow {
    text-align: center;
    position: absolute;
    top: 120px;
    left: 0;
    right: 0;
    max-width: 45px;
    margin: 0px auto 0 auto;

}
.txt_flow {
    max-width: 890px;
    position: relative;
    margin: auto;
}
.bd_green {
    border-bottom: 2px solid #7dc163;
}
.bd_red {
    border-bottom: 2px solid #f29b8f;
}
.bd_bl {
    border-bottom: 2px solid #040000;
}
.txt_flow h2 {
    position: absolute;
    top: -14px;
    left: 0;
    right: 0;
    margin: auto;
    font-size: 18px;
    font-weight: bold;
    border-radius: 50px;
    color: #fff;
    text-align: center;
}
.txt_flow .bg_green {
    background-color: #7dc163;
    max-width: 380px;
}
.txt_flow .bg_red {
    background-color: #f29b8f;
    max-width: 384px;
}
.txt_flow .bg_bl {
    background-color: #040000;
    max-width: 384px;
}
.title_bg {
    max-width: 548px;
    margin: auto;
}


.cont02 {
    margin: 0px auto 40px auto;
    background-color: #fffef8;
    background: url(../images/bg_03.png) no-repeat center top 400px;
    background-size: 100%;

}
.cont02 .cont02_top_img{
    max-width: 1040px;
    margin: auto;
    height: auto;
    background: url(../images/cont02_mv.png) no-repeat center top;
    background-size: contain;
}
.ratio-1_1:before {
    content: "";
    display: block;
    padding-top: 100%; /* 1:1 */
}
.cont02 .cont02_top_img img {
    width: 100%;
    text-align: center;
}
.cont02 .cont02_top_img .img_mv02 {
}
.cont02 .cont02_top_img .ba_kaizen {
    width: 100%;
    height: 100%;
    padding-top: 400px;
    margin-bottom: 40px;
}
.ba_kaizen .b_img01 {
    text-align: center;
    border: 1px solid #000;

}
.ba_kaizen .b_img01 .ba_title_b {
    font-size: 20px;
    font-weight: 600;
    background-color: #fff;
}
.ba_kaizen .b_img01 .ba_title_a {
    font-size: 20px;
    font-weight: 600;
    color: #fff;
    background-color: #ea5a3a;
}
.badge_01_wrap {
    position: relative;
}
.badge_01_wrap .badge_01 {
    position: absolute;
    top: -98px;
    right: -56px;

}
.cont02 .cont02_top_img .before_img01 .badge_01 {
    width: 161px;
}
.arrow02 {
    max-width: 67px;
    margin-top: 40px;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}
.caption_kojin {
    background-color: #fff;
    text-align: center;
    color: #000;
    max-width: 300px;
    margin: 40px auto 0 auto;
    font-size: 12px;
}
.cont02 .cont_step {
    border: 2px solid #7dc163;
    background-color: #fff;
    max-width: 1010px;
    margin: 40px auto 20px auto;
    padding: 20px 0px 20px 20px;
    position: relative;
}
.cont02 .cont_step01 {
    background: url(../images/stepbg01.png) no-repeat center center;
    background-size: contain;
    max-width: 1010px;
    margin: 40px auto 20px auto;
    padding: 20px 20px 20px 20px;
    position: relative;
}
.cont02 .cont_step02 {
    background: url(../images/stepbg02.png) no-repeat center center;
    background-size: contain;
    max-width: 1010px;
    margin: 40px auto 20px auto;
    padding: 20px 20px 20px 20px;
    position: relative;
}
.cont02 .cont_step03 {
    background: url(../images/stepbg03.png) no-repeat center center;
    background-size: cover;
    max-width: 1010px;
    margin: 40px auto 20px auto;
    padding: 20px 20px 20px 20px;
    position: relative;
}
.cont02 .cont_step01 .col-sm-12,
.cont02 .cont_step01 .col-md-5,
.cont02 .cont_step01 .col-md-7,
.cont02 .cont_step02 .col-sm-12,
.cont02 .cont_step02 .col-md-5,
.cont02 .cont_step02 .col-md-7,
.cont02 .cont_step03 .col-sm-12,
.cont02 .cont_step03 .col-md-6 {
    background-color: #fff;
    padding: 10px;
}


.cont_flow {
    padding: 0 0px 0 20px;
}
.cont02 h3 {
    font-size: 20px;
    font-weight: bold;
    margin-left: 70px;
    margin-top: 10px;
}
.cont02 p {
    font-weight: bold;
    margin: 20px 0px 0px 70px;
    font-size: 14px;
}
.cont02 .flow_sam {
    text-align: right;
}
.cont02 .img_flow02 {
    max-width: 170px;
    height: 170px;
    margin: 0 0px 0 auto;
}
.cont02 .img_flow02 img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.cont02 .icon_step {
    position: absolute;
    top: 50%;
    left: -60px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    max-width: 128px;
}
.cont02 .flow_wrap .col-4 {
    padding: 0px 5px 0px 0px;
}
.step03_img {
    max-width: 150px;
    margin-top: 20px;
}
.step03_img  img {
    width: 100%;
}
.flow_wrap01 {
    background-color: #7dc163;
    padding: 5px 5px 10px 5px;
    position: relative;
}
.cont02 .cont_step03 .flow_wrap01 .col-md-5,
.cont02 .cont_step03 .flow_wrap01 .col-md-7,
.cont02 .cont_step03 .flow_wrap01 .col-sm-12 {
    background-color: #7dc163;
}

.flow_wrap01 .step03_title {
    background-color: #fff;
    border: 1px solid #040000;
    border-radius: 50px;
    top: 0px;
    left: -20px;
    padding: 0px 10px 0px 10px;
    position: absolute;
    font-size: 16px;
    font-weight: bold;
}
.flow_wrap01 h4 {
    font-size: 18px;
    color: #fff;
}
.flow_wrap01 p {
    font-size: 12px;
    color: #fff;
    padding: 0px;
    margin: 10px 0px 0px 0px;
}

.flow_wrap01 .flow_img {
    width: 115px;
    height: 115px;
    object-fit: cover;
    text-align: center;
    margin: 40px auto 0 auto;

}
.flow_wrap01 img {
    width: 100px;

}
.flow_wrap01 .col-7,
.flow_wrap01 .col-5 {
    padding: 0px;
}

.step04_wrap .badge_01 {
    position: absolute;
    top: -98px;
    right: -24px;

}
.cont02 .step04_wrap .before_img01 .badge_01 {
    width: 140px;
}
.step04_wrap .caption_kojin {
    background-color: #fff;
    text-align: center;
    color: #000;
    max-width: 100%;
    margin: 40px auto 0 auto;
    font-size: 12px;
}
.step04 {
    max-width: 868px;
    margin: auto;
}
.step04_wrap{
    margin-top: 40px;
}
.step04_wrap .ba_kaizen .row,
.step04_wrap .ba_kaizen .row .col-6 {
    margin: 0px;
    padding: 0px;
}

.cont02 .step04_wrap .ba_kaizen {
    width: 100%;
    height: 100%;
}


.cont_price {
    max-width: 1010px;
    margin: 20px auto 0 auto;
}
.price_wrap  {
    max-width: 870px;
    margin: auto;
}
.price_wrap table {
    background-color: #fffef8;
}
.price_wrap thead {
    background-color: #7dc163;
}
.price_wrap thead th {
    padding: 5px 40px 5px 40px;
    vertical-align: middle;
}
.price_wrap table th {
    font-size: 26px;
    font-weight: bold;
}
.price_wrap table td {
    font-size: 26px;
    font-weight: bold;
}
.price_wrap table tbody td {
    font-size: 28px;
    padding: 20px 0px 0px 40px;
    border-bottom: 7px solid #7dc163;
}
.price_wrap .caption_kojin {
    margin-top: 10px;
}
.bd_dot {
    border-bottom: 2px dotted #040000;
}
.cont03 {
    margin: 80px auto 40px auto;
    text-align: center;
    background-color: #fffef8;
}

.plan_mv {
    text-align: center;
    margin: 60px auto 60px auto;
    max-width: 600px;
}
.plan_mv a:hover {
    opacity: 0.9;

}

.plan_mv img {
    width: 100%;
    height: 100%;
}
.plan_voice {
    margin: 60px auto 40px auto;
    text-align: left;
}
.plan_voice .img_voice {
    max-width: 248px;
    margin: auto;
}
.plan_voice .voice_txt {
    margin: 40px 0 0 0;
    position: relative;
    background-color: #fff;
    padding: 40px 20px 20px 40px;
}
.plan_voice p {
}
.plan_voice .voice_title {
    position: absolute;
    top: -20px;
    left: 40px;
    background-color: #7dc163;
    border-radius: 50px;
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    padding: 5px 20px 5px 20px;
    letter-spacing: 0.1em;
}
.info_wrap {
    margin: 20px 0 20px 0;
}
.info_wrap h3 {
    font-size: 22px;
}
.info_wrap p {
    margin-top: 10px;
}
.info_wrap .price_info {
    margin-left: 40px;
}


@media screen and (max-width: 767px) {
    .main_img {
        margin: 0 10px 0 10px;
    }
    .banner {
        margin: 0 20px 0 20px;
    }
    .cont02 .img_flow02 {
        margin-top: 20px;
    }
    .media {
        margin-bottom: 20px;
    }
    .step04_wrap{
        margin: 20px 0px 0px 0px;
        width: 100%;
    }
    .step04_wrap .step04_img {

    }

    .step04_wrap .icon_ba {
        width: 57px;
        position: absolute;
        bottom: -10px;
        left: -27px;

    }
    .step04_wrap .col-md-3:first-child {
        padding-left: 50px;
        margin-bottom: 20px;
    }
    .step04_wrap .col-md-3:nth-child(2) {
        padding-left: 0px;
        margin-bottom: 20px;
    }
    .step04_wrap .col-md-3:nth-child(3) {
        padding-left: 50px;
    }

    .cont02 .cont02_top_img .ba_kaizen {
        width: 100%;
        height: 100%;
        padding-top: 280px;
        margin-bottom: 40px;
    }
    .badge_01_wrap .badge_01 {
        position: absolute;
        top: -98px;
        right: -10px;

    }
    .cont02 .cont02_top_img .before_img01 .badge_01 {
        width: 120px;
    }
    .cont02 .cont_step01 {
        background: url(../images/stepbg01_sp.png) no-repeat center center;
        background-size: cover;

    }
    .cont02 .cont_step02 {
        background: url(../images/stepbg02_sp.png) no-repeat center center;
        background-size: cover;
    }
    .cont02 .cont_step03 {
        background: url(../images/stepbg03_sp.png) no-repeat center center;
        background-size: cover;
    }
    .cont02 .icon_step {
        top: 40px;
        left: -40px;
        max-width: 90px;
    }
    .step04_wrap .badge_01 {
        position: absolute;
        top: -80px;
        right: -18px;

    }
    .cont02 .step04_wrap .b_img01 {
        margin-bottom: 40px;
    }
    .cont02 .step04_wrap .before_img01 .badge_01 {
        width: 120px;
    }
    .step04_wrap .caption_kojin {
        margin: 0px auto 0 auto;
    }
    .price_wrap thead th {
        padding: 5px 20px 5px 20px;
    }
    .price_wrap table th {
        font-size: 20px;
        font-weight: bold;
    }
    .price_wrap table td {
        font-size: 20px;
        font-weight: bold;
    }
    .price_wrap table tbody td {
        font-size: 20px;
        padding: 20px 0px 0px 40px;
        border-bottom: 7px solid #7dc163;
    }

}


@media screen and (max-width: 576px) {
    .bg_top {
        padding-top: 126px;
    }
    h1 {
        font-size: 16px;
    }
    .logo {
        max-width: 260px;
        margin: 20px auto 40px auto;

    }
    .banner {
        margin: 0 10px 0 10px;
    }
    .txt_underline  p {
        border-bottom: none;
        margin: 0 auto 0px auto;
        line-height: 2.2;
        font-size: 12px;
    }
    .txt_underline .txt_ul  {
        border-bottom: 2px dotted #040000;
        max-width: 880px;
    }
    .txt_bg_green {
        padding: 10px;
    }
    .txt_bg_green p {
        font-size: 14px;
    }
    .txt_boder01 {
        padding: 3px;
        margin: 20px auto 0 auto;
    }

    .txt_boder01 .txt_boder02 {
        border: 1px solid #040000;
        padding: 5px;
    }
    .txt_boder01 .txt_boder02 p {
        font-size: 18px;
        font-weight: bold;
    }
    .img_flow01 {
        margin: 20px auto 0px auto;
        padding: 0 0px 0 0px;
    }
    .txt_wrap {
        margin: 10px auto 0px auto;
    }
    .txt_wrap p {
        max-width: 280px;
        font-size: 10px;
        font-weight: bold;
        padding: 8px;
    }
    .img_flow01 .flow_img {
        margin-left: 30px;
    }
    .txt_wrap .img_arrow {
        top: 76px;
        max-width: 20px;
    }
    .txt_flow h2 {
        font-size: 16px;
    }
    .txt_flow .bg_green {
        max-width: 250px;
    }
    .txt_flow .bg_red {
        max-width: 280px;
    }
    .txt_flow .bg_bl {
        max-width: 320px;
    }
    .cont02 {
        margin: 0px auto 20px auto;
    }
    .cont02 .cont_step {
        max-width: 1010px;
        margin: 40px auto 20px auto;
        padding: 20px 0px 20px 10px;
    }
    .cont_flow {
        padding: 0 0px 0 20px;
    }
    .cont02 h3 {
        font-size: 18px;
        margin-left: 46px;
    }
    .cont02 p {
        margin: 20px 0px 0px 40px;
        font-size: 12px;
    }
    .cont02 .img_flow02 {
        max-width: 100px;
        height: 100px;
    }
    .cont02 .icon_step {
        top: 40px;
        left: -40px;
        max-width: 90px;
    }
    .cont02 .flow_wrap .col-4 {
        padding: 0px 5px 0px 0px;
    }
    .media {
        display: block;
    }
    .step03_img {
        max-width: 200px;
        margin: 10px auto 0 auto;
    }
    .flow_wrap01 .step03_title {
        font-size: 14px;
    }
    .flow_wrap01 h4 {
        font-size: 16px;
        color: #fff;
    }
    .cont02 .flow_wrap01 p {
        font-size: 12px;
        color: #fff;
        padding: 0px;
        margin: 10px 0px 0px 0px;
    }
    .flow_wrap01 .flow_img {
        width: 115px;
        height: 115px;
        object-fit: cover;
        text-align: center;
        margin: 40px auto 0 auto;
    }
    .flow_wrap01 img {
        width: 100px;
    }
    .flow_wrap01 .col-7,
    .flow_wrap01 .col-5 {
        padding: 0px;
    }
    .step04_wrap{
        margin: 20px 0px 0px 0px;
        width: 100%;
    }
    .step04_wrap .step04_img {
    }
    .step04_wrap .icon_ba {
        width: 40px;
        position: absolute;
        bottom: -10px;
        left: -27px;

    }
    .step04_wrap .col-md-3:first-child {
        padding-left: 15px;
        margin-bottom: 20px;
        padding-right: 15px;
    }
    .step04_wrap .col-md-3:nth-child(2) {
        padding-left: 15px;
        margin-bottom: 20px;
    }
    .step04_wrap .col-md-3:nth-child(3) {
        padding-right: 15px;
        padding-left: 15px;
    }
    .step04_wrap .col-md-3:last-child {
        padding-left: 15px;
    }

    .cont_price {
        margin: 40px auto 0 auto;
    }
    .cont_price .col-md-7 {
        padding: 0px;
    }
    .price_wrap table {
        background-color: #fffef8;
    }
    .price_wrap table th {
        font-size: 14px;
        font-weight: bold;
    }
    .price_wrap table td {
        font-size: 14px;
        font-weight: bold;
    }

    .bd_dot {
        border-bottom: 2px dotted #040000;
    }
    .cont03 {
        margin: 40px auto 40px auto;
    }

    .plan_mv {
        margin: 40px auto 40px auto;
    }
    .plan_voice {
        margin: 40px auto 40px auto;
    }
    .plan_voice p {
        font-size: 12px;
    }

    .plan_voice .voice_title {
        font-size: 14px;
        padding: 5px 15px 5px 15px;
    }
    .info_wrap {
        margin: 20px 0 20px 0;
    }
    .info_wrap h3 {
        font-size: 18px;
    }
    .info_wrap p {
        margin-top: 10px;
        font-size: 12px;
    }
    .info_wrap .price_info {
        margin-left: 10px;
    }

    .cont02 .cont02_top_img .ba_kaizen {
        padding-top:140px;
    }
    .badge_01_wrap .badge_01 {
        position: absolute;
        top: -73px;
        right: -14px;

    }
    .cont02 .cont02_top_img .before_img01 .badge_01 {
        width: 55px;
    }
.step04_wrap .badge_01 {
    position: absolute;
    top: -63px;
    right: -14px;

}
.cont02 .step04_wrap .before_img01 .badge_01 {
    width: 55px;
}

.price_wrap thead th {
    padding: 5px 10px 5px 10px;
}
.price_wrap table th {
    font-size: 14px;
    font-weight: bold;
}
.price_wrap table td {
    font-size: 14px;
    font-weight: bold;
    text-align: left;
}
.price_wrap table tbody td {
    font-size: 14px;
    padding: 20px 0px 0px 40px;
    border-bottom: 7px solid #7dc163;
}
.price_wrap table thead th:first-child {
    white-space: nowrap;
}
.price_wrap table tbody td:nth-child(2) {
    white-space: nowrap;
}
    .cont02 .cont02_top_img{
        background-size: 94%;
    }
    .ba_kaizen .b_img01 .ba_title_b {
        font-size: 16px;
    }
    .ba_kaizen .b_img01 .ba_title_a {
        font-size: 16px;
    }
}



