@charset "UTF-8";
/* 
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com 
Twitter: @rich_clark
*/
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}
body {
    line-height: 1;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
    display: block;
}
nav ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after {
    content: '';
    content: none;
}
a {
    margin: 0;
    padding: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}
/* Change colours to suit your needs */
ins {
    background-color: #ff9;
    color: #000;
    text-decoration: none;
}
/* Change colours to suit your needs */
mark {
    background-color: #ff9;
    color: #000;
    font-style: italic;
    font-weight: bold;
}
del {
    text-decoration: line-through;
}
abbr[title], dfn[title] {
    border-bottom: 1px dotted;
    cursor: help;
}
table {
    border-collapse: separate;
    border-spacing: 0;
}
/* Change border colour to suit your needs */
hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #cccccc;
    margin: 1em 0;
    padding: 0;
}
input, select {
    vertical-align: middle;
}
/*
Battery
*/
*, *:before, *:after {
    box-sizing: border-box
}
html {
    box-sizing: border-box;
    font-size: 10px;
}
body {
    background: #fff;
    color: #383635;
    font-family: "ヒラギノ丸ゴ ProN W4", "Hiragino Maru Gothic ProN", "HG丸ｺﾞｼｯｸM-PRO", HGMaruGothicMPRO, "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    font-feature-settings: "palt";
}
/* header */
header {
    position: relative;
    background: url("../media/header_bg_pc.jpg") no-repeat;
    background-size: cover;
    width: 100%;
    height: 768px;
}
.header_copy {
    position: absolute;
    top: 119px;
    left: 50%;
    transform: translateX(-50%);
}
.header_screenshot {
    position: absolute;
    top: 502px;
    left: 50%;
    transform: translateX(-50%);
}
.header_phone {
    display: none;
}
.header_menu {
    position: absolute;
    top: 60px;
    right: 60px;
}
.header_menu img {
    width: 70px;
    height: auto;
}
@media screen and (max-width: 768px) {
    header {
        background: url("../media/header_bg_sp.jpg") no-repeat;
        background-size: cover;
        height: 750px;
    }
    .header_copy {
        top: 132px;
    }
    .header_copy h1 img {
        max-width: 294px;
    }
    .header_screenshot {
        top: 360px;
    }
    .header_screenshot img {
        max-width: 236px;
    }
    .header_phone {
        display: inherit;
        position: absolute;
        bottom: 0;
        left: 0;
        background: rgba(255, 255, 255, 0.5);
        width: 100%;
        height: 90px;
    }
    .header_phone a {
        display: block;
        background: #fff url("../media/header_phone.png") no-repeat 10px center;
        background-size: auto 34px;
        border-radius: 25px;
        margin: 20px auto;
        padding: 0 0 0 34px;
        max-width: 320px;
        height: 50px;
        text-align: center;
        line-height: 50px;
        color: #40a138;
        font-size: 1.6rem;
        text-decoration: none;
    }
}
/* nav */
.menu_icon, .menu_icon span {
    display: inline-block;
    transition: all 0.3s;
}
.menu_icon {
    position: fixed;
    top: 60px;
    right: 60px;
    z-index: 200;
    background: none !important;
    border: none !important;
    width: 60px;
    height: 50px;
    cursor: pointer;
}
.menu_icon span {
    position: absolute;
    background: #fff;
    border-radius: 5px;
    left: 0;
    z-index: 200;
    width: 100%;
    height: 10px;
}
.menu_icon span:nth-of-type(1) {
    top: 0px;
}
.menu_icon span:nth-of-type(2) {
    top: 20px;
}
.menu_icon span:nth-of-type(3) {
    bottom: 0px;
}
.menu_icon.active span:nth-of-type(1) {
    background: #fff;
    transform: translateY(20px) rotate(45deg);
}
.menu_icon.active span:nth-of-type(2) {
    opacity: 0;
}
.menu_icon.active span:nth-of-type(3) {
    background: #fff;
    transform: translateY(-20px) rotate(-45deg);
}
#nav_box {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 200;
    background: #fff;
    border-radius: 30px;
    margin: 160px auto;
    max-width: 1220px;
    height: auto;
    opacity: 0;
    transition: all 0.3s ease;
    visibility: hidden;
}
#nav_box.active {
    right: 0;
    left: 0;
    margin: 160px auto 0;
    opacity: 1;
    transform: translateX(0);
    visibility: visible;
}
#nav_box ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 20px auto;
    padding: 30px 30px 10px;
}
#nav_box ul li {
    background: #40a138;
    border: 3px solid #40a138;
    border-radius: 50px;
    margin: 0 0 20px;
    width: 48%;
    font-size: 3.2rem;
    text-align: center;
    line-height: 60px;
}
#nav_box ul li:last-child {
    background: #f3d800;
    border: 3px solid #40a138;
    color: #f3d800;
}
#nav_box ul li a {
    display: block;
    color: #fff;
    text-decoration: none;
    transition: all 0.3s ease;
}
#nav_box ul li:last-child a {
    color: #40a138;
}
#nav_box ul li:hover {
    opacity: 0.7;
    transition: all 0.3s ease;
}
@media screen and (max-width: 1112px) {
    #nav_box {
        width: 98%;
    }
    #nav_box.active {
        width: 98%;
    }
}
@media screen and (max-width: 1024px) {
    .menu_icon.active span:nth-of-type(1) {
        background: #40a138;
    }
    .menu_icon.active span:nth-of-type(3) {
        background: #40a138;
    }
    #nav_box {
        width: 98%;
    }
    #nav_box.active {
        margin: 30px auto 0;
        padding: 60px 0 0;
        width: 98%;
    }
    #nav_box ul li {
        font-size: 2.8rem;
    }
}
@media screen and (max-width: 896px) {
    #nav_box {
        width: 97%;
    }
    #nav_box.active {
        margin: 30px auto 0;
        width: 97%;
    }
    #nav_box ul {
        display: block;
    }
    #nav_box ul li {
        width: 100%;
        font-size: 2.8rem;
        line-height: 60px;
    }
}
@media screen and (max-width: 480px) {
    #nav_box {
        margin: 110px auto;
        width: 95%;
    }
    #nav_box.active {
        margin: 10px auto 0;
        padding: 50px 0 0;
        width: 95%;
    }
    #nav_box ul {
        display: block;
    }
    #nav_box ul li {
        width: 100%;
        font-size: 2.0rem;
        line-height: 60px;
    }
    .menu_icon {
        top: 30px;
        right: 30px;
    }
}
/* content */
.bg_green {
    background: #40a138;
    padding: 70px 0 30px;
    width: 100%;
}
.bg_white {
    background: #fff;
    padding: 70px 0 30px;
    width: 100%;
}
.wrapper {
    padding: 0 10px;
}
.box_white {
    background: #fff;
    border: 6px solid #fff;
    border-radius: 30px;
    margin: 0 auto 40px;
    max-width: 1140px;
    overflow: hidden;
}
.box_white_02 {
    background: #fff;
    border: 6px solid #fff;
    border-top-left-radius: 30px;
    border-top-right-radius: 30px;
    margin: 0 auto 10px;
    max-width: 1140px;
    overflow: hidden;
}
.box_white_03 {
    background: #fff;
    border: 6px solid #fff;
    margin: 0 auto 10px;
    max-width: 1140px;
    overflow: hidden;
}
.box_green {
    background: #40a138;
    border: 6px solid #40a138;
    border-radius: 30px;
    margin: 0 auto 10px;
    max-width: 1140px;
    overflow: hidden;
}
.box_transparent {
    margin: 0 auto 40px;
    max-width: 1140px;
}
.box_inner {
    padding: 30px;
}
h2 {
    border-top-left-radius: 24px;
    border-top-right-radius: 24px;
    margin: 0;
    padding: 30px 10px;
    font-size: 3.2rem;
    line-height: 1.5;
    text-align: center;
}
.h2_green {
    background: #40a138;
    color: #fff;
}
.h2_white {
    background: #fff;
    color: #40a138;
}
@media screen and (max-width: 480px) {
    .box_inner {
        padding: 30px 20px;
    }
    h2 {
        font-size: 2.4rem;
    }
    h2 span {
        display: block;
        font-size: 2.0rem;
    }
}
/* faq */
#faq {
    position: relative;
}
#faq dl {
    float: right;
    background: #f3d800;
    border: 6px solid #40a138;
    border-radius: 20px;
    margin: 0 0 30px;
    padding: 20px 20px 0;
}
#faq dl dt {
    background: url("../media/faq_q.png") no-repeat;
    background-size: 40px 40px;
    margin: 0 0 10px;
    padding: 0 0 0 50px;
    font-weight: bold;
    font-size: 2.8rem;
    line-height: 40px;
}
#faq dl dd {
    background: url("../media/faq_a.png") no-repeat;
    background-size: 40px 40px;
    margin: 0 0 30px 50px;
    padding: 0 0 0 50px;
    font-size: 2.0rem;
    line-height: 40px;
}
.faq_inner {
    padding: 30px;
}
.faq_img01 {
    position: absolute;
    bottom: 30px;
    left: 30px;
    max-width: 300px;
}
@media screen and (max-width: 1024px) {
    #faq dl {
        float: none;
    }
    #faq dl dd {
        margin: 0 0 30px 30px;
    }
    #faq dl dt:nth-last-child(2) {
        width: 70%;
    }
    #faq dl dd:last-child {
        width: 70%;
    }
    .faq_inner {
        padding: 30px 30px 100px;
    }
    .faq_img01 {
        position: absolute;
        right: 50px;
        bottom: 10px;
        left: auto;
    }
}
@media screen and (max-width: 896px) {
    #faq dl dt {
        font-size: 2.0rem;
    }
    #faq dl dt:nth-last-child(2) {
        width: auto;
    }
    #faq dl dd {
        font-size: 1.6rem;
    }
    #faq dl dd:last-child {
        margin: 0 0 120px 30px;
        width: auto;
    }
    .faq_inner {
        padding: 30px 20px 220px;
    }
    .faq_img01 {
        position: absolute;
        right: 10px;
        bottom: 10px;
        left: auto;
        max-width: 280px;
    }
}
@media screen and (max-width: 480px) {
    #faq dl dt {
        line-height: 1.5;
    }
    #faq dl dt:nth-last-child(2) {
        line-height: 1.5;
    }
    #faq dl dd {
        line-height: 1.5;
    }
    #faq dl dd:last-child {
        line-height: 1.5;
    }
}
/* result */
#result .box_inner img {
    width: 100%;
}
/* sns */
.sns_icons {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
}
.sns_icons img {
    width: 181px;
    height: 181px;
}
@media screen and (max-width: 1024px) {
    .sns_icons {
        flex-wrap: nowrap;
    }
    .sns_icons img {
        width: 15.8%;
        height: 15.8%;
    }
}
@media screen and (max-width: 896px) {
    .sns_icons {
        flex-wrap: nowrap;
    }
    .sns_icons img {
        width: 15.8%;
        height: 15.8%;
    }
}
@media screen and (max-width: 480px) {
    .sns_icons {
        flex-wrap: wrap;
    }
    .sns_icons img {
        margin: 0 0 10px;
        width: 48.5%;
        height: 48.5%;
    }
}
/* price */
.price_table {
    width: 100%;
    font-size: 2.0rem;
    text-align: center;
}
.price_table tr th {
    background: #40a138;
    border: 1px solid #fff;
    padding: 30px 0;
    width: 20%;
    color: #fff;
    white-space: nowrap;
    vertical-align: middle;
}
.price_table tr th.th_blank {
    background: #fff;
}
.price_table tr th.th_recommend {
    position: relative;
}
.price_table tr th.th_recommend img {
    position: absolute;
    top: -20px;
    left: -20px;
    width: 80px;
    height: 80px;
}
.price_table tr td {
    border: 1px solid #40a138;
    padding: 30px 0;
    color: #383635;
    white-space: nowrap;
}
.price_table tr td.td_label {
    background: #40a138;
    border: 1px solid #fff;
    padding: 30px 0;
    width: 20%;
    color: #fff;
    vertical-align: middle;
}
.price_table tr td.td_icon {
    position: relative;
    padding: 20px 0;
}
.price_table tr td img {
    width: auto;
    height: 3.0rem;
}
.price_table tr td.td_add_note {
    position: relative;
}
.price_table tr td .td_note {
    position: absolute;
    top: 36px;
    right: 10px;
    font-size: 1.4rem;
    font-weight: normal;
}
.price_table tr td.td_yellow {
    background: #f3d800;
}
.price_table tr td span {
    font-size: 1.4rem;
}
.p_note_sp {
    display: none;
}
.p_note {
    margin: 30px 0 0;
    color: #383635;
    font-size: 1.6rem;
    line-height: 1.5;
}
@media screen and (max-width: 896px) {
    .price_table {
        position: relative;
        font-size: 1.6rem;
    }
    .price_table tr th {
        position: sticky;
        z-index: 100;
        padding: 20px;
    }
    .price_table tr th:first-of-type {
        left: 0;
        z-index: 101;
    }
    .price_table tr th.th_recommend img {
        position: absolute;
        top: 10px;
        left: 10px;
        width: 40px;
        height: 40px;
    }
    .price_table tr td {
        padding: 20px;
    }
    .price_table tbody tr td:first-of-type {
        position: sticky;
        left: -2px;
    }
    .price_table tr td.td_label {
        padding: 20px;
    }
    .price_table tr td.td_icon {
        padding: 20px;
    }
    .price_table tr td img {
        width: auto;
        height: 2.0rem;
    }
    .price_table tr td .td_note {
        top: 24px;
        right: 5px;
    }
    .table_wrapper {
        max-width: 100%;
        overflow: scroll;
    }
    .p_note_sp {
        display: block;
        margin: 0 0 20px;
        color: #383635;
        font-size: 1.2rem;
        line-height: 1.7;
        text-align: right;
    }
}
/* voice */
.voice_box {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    padding: 30px;
}
.voice_balloon {
    display: inline-block;
    background: #f3d800;
    border: 6px solid #40a138;
    border-radius: 20px;
    padding: 30px;
    width: 340px;
    height: 220px;
    font-size: 2.0rem;
    line-height: 1.5;
}
.voice_balloon_arrow {
    margin: -6px;
    text-align: center;
}
.voice_profile {
    display: flex;
    flex-wrap: nowrap;
}
.voice_profile {
    position: relative;
    height: 113px;
}
.voice_profile_img {
    position: absolute;
    bottom: 0;
}
.voice_profile_txt {
    position: absolute;
    right: 0;
    bottom: 0;
    font-size: 2.0rem;
    font-weight: bold;
    line-height: 1.5;
}
@media screen and (max-width: 1024px) {
    .voice_balloon {
        width: 288px;
        height: 280px;
    }
}
@media screen and (max-width: 896px) {
    .voice_box {
        display: block;
    }
    .voice_inner {
        margin: 0 0 20px;
    }
    .voice_balloon {
        width: 100%;
        height: auto;
    }
}
/* contact */
.box_inner {
    color: #fff;
    font-size: 2.0rem;
}
.contact_table {
    width: 100%;
}
.contact_table tr th {
    padding: 10px 30px 10px 0;
    width: 33.3%;
    font-weight: normal;
    text-align: right;
    vertical-align: middle;
}
.contact_table tr td {
    padding: 5px 0;
    width: 66.6%;
}
.contact_table tr td input {
    border: 1px solid #fff;
    padding: 0 10px;
    width: 50%;
    height: 40px;
    font-family: "ヒラギノ丸ゴ ProN W4", "Hiragino Maru Gothic ProN", "HG丸ｺﾞｼｯｸM-PRO", HGMaruGothicMPRO, "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    font-size: 2.0rem;
    line-height: 40px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
.contact_table tr td select::-ms-expand {
    display: none;
}
.contact_table tr td select {
    background: #40a138 url("../media/contact_arrow.png") no-repeat right 20px center;
    ;
    background-size: 15px auto;
    border: 2px solid #fff;
    border-radius: 0;
    padding: 0 10px;
    width: 50%;
    height: 40px;
    color: #fff;
    font-family: "ヒラギノ丸ゴ ProN W4", "Hiragino Maru Gothic ProN", "HG丸ｺﾞｼｯｸM-PRO", HGMaruGothicMPRO, "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    font-size: 2.0rem;
    line-height: 40px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
.contact_table tr td textarea {
    border: 1px solid #fff;
    width: 100%;
    height: 160px;
    font-family: "ヒラギノ丸ゴ ProN W4", "Hiragino Maru Gothic ProN", "HG丸ｺﾞｼｯｸM-PRO", HGMaruGothicMPRO, "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    font-size: 2.0rem;
    line-height: 1.5;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
.contact_table tr td.contact_button {
    text-align: center;
}
.contact_table tr td button {
    background: #f3d800;
    border: none;
    border-radius: 30px;
    margin: 30px 0 0;
    width: 500px;
    font-family: "ヒラギノ丸ゴ ProN W4", "Hiragino Maru Gothic ProN", "HG丸ｺﾞｼｯｸM-PRO", HGMaruGothicMPRO, "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    font-size: 2.4rem;
    line-height: 60px;
    text-align: center;
    cursor: pointer;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
.contact_table tr td button:hover {
    opacity: 0.7;
    transition: all 0.3s ease;
}
.cantact_error {
    margin: 10px 0 0;
    font-size: 1.6rem;
}
@media screen and (max-width: 896px) {
    .contact_table tr th {
        display: block;
        width: 100%;
        text-align: left;
    }
    .contact_table tr td {
        display: block;
        margin: 0 0 10px;
        width: 100%;
    }
    .contact_table tr td input {
        width: 100%;
    }
    .contact_table tr td select {
        width: 100%;
    }
    .contact_table tr td textarea {
        width: 100%;
    }
    .contact_table tr td button {
        width: 100%;
    }
}
/* footer */
footer {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    background: url("../media/footer_bg.png") repeat-x center bottom;
    padding: 120px 10px 200px;
    width: 100%;
}
.footer_logo {
    margin: 0 40px 0 0;
}
.footer_logo img {
    width: 340px;
}
.footer_com {
    font-size: 4.0rem;
    line-height: 1.5;
}
.footer_com address {
    margin: 30px 0 0;
    font-size: 2.4rem;
    font-style: normal;
}
.footer_com address a {
    color: #383635;
}
@media screen and (max-width: 1024px) {
    footer {
        display: block;
        padding: 100px 10px 200px;
        text-align: center;
    }
    .footer_logo {
        margin: 0 0 100px;
    }
    .footer_com {
        font-size: 3.2rem;
    }
    .footer_com address {
        font-size: 1.6rem;
    }
}