@media only screen and (max-width:768px) {
    .home_page .key {
        --height: calc(100vh - 60px);
        --max-height: 164vw;
        --min-height: 465px;
        font-size: 8px
    }

    .home_page .key:before {
        top: 37em
    }

    .home_page .key:after {
        bottom: calc(-100% + 19.4em)
    }

    .home_page .key .key_text {
        width: calc(100% - 40px)
    }

    .home_page .key .key_text:before {
        font-size: 5.5px;
        left: unset;
        right: -1px;
        top: -8px
    }

    .home_page .key .key_text .item {
        border-top-right-radius: 50px;
        border-top-left-radius: 50px;
    }
    .home_page .mv-txt{        
        justify-content: flex-start;
        align-items: flex-start;
    }
    .home_page .key .s1 {
        background-image: url(../images/idx-main-img01-sp.jpg)
    }
    .home_page .key .slick-initialized .s2 {
    background-image: url(../images/idx-main-img02-sp.jpg);
    }
    .home_page .key .slick-initialized .s3 {
    background-image: url(../images/idx-main-img03-sp.jpg);
    }
    .home_page .key .slick-initialized .s4 {
    background-image: url(../images/idx-main-img04-sp.jpg);
    }
    .home_page .key .catch {
        padding: 8em 0em 1.9em 0;
        max-width: fit-content;
        width: auto
    }

    .home_page .key .catch .ml-sp {
        margin-left: 2.1em
    }

    .home_page .key .catch .ml-pc {
        margin-left: -1.1em;
        margin-top: 0.1em;
        display: inline-block
    }

    .home_page .key .catch .title {
        margin-bottom: 18px;
        margin-left: 1.2em;
        font-size: 3.6em
    }

    .home_page .key .catch .title .fz-lg {
        font-size: 1.3em;
        line-height: 1.45
    }

    .home_page .key .catch .txt {
        text-align: center;
        font-size: 2em
    }

    .idx-scroll {
        bottom: 11.6em
    }

    .idx-scroll a:before {
        top: -0.7em
    }

    .idx-scroll a span {
        font-size: 1.4em
    }
}

@media only screen and (max-width:639px) {
    .home_page .key {
        font-size: 1.5vmin
    }

    .home_page .key .catch {
        padding-top: 16.5em
    }

    .home_page .key .catch .ml-pc {
        letter-spacing: 0.05em
    }
}

@media only screen and (max-width:768px) {
    .wrap-title .en {
        font-size: 14px;
        margin-bottom: 2px
    }

    .wrap-title h2 {
        font-size: 30px
    }

    .wrap-title.sm h2 {
        font-size: 24px
    }

    .wrap-title.sm .en {
        margin-bottom: 2px
    }

    .idx01 {
        padding: 20px 0px 60px
    }

    .idx01 .inner_sm {
        padding: 0 20px
    }

    .idx01 .wrap-title {
        margin-bottom: 4px
    }

    .idx01 .block-news {
        padding: 0 5% 9px
    }

    .idx01 .block-news:before {
        top: -30px
    }

    .idx01 .list-post a {
        padding: 9px 40px 11px 22px;
        flex-wrap: wrap
    }

    .idx01 .list-post a:after {
        top: 17px;
        right: 21px;
        width: 17px;
        height: 17px
    }

    .idx01 .list-post a .title {
        width: 100%;
        top: 0
    }

    .idx01 .btn-group {
        bottom: -37px
    }

    .idx01 .btn-group .btn {
        max-width: 212px
    }

    .idx02 {
        padding-top: 35px
    }

    .idx02:before {
        content: "";
        position: absolute;
        top: -43px;
        right: 12px;
        width: 117px;
        height: 104px;
        background: url(../images/idx02_illus_sp.svg) no-repeat center/contain
    }

    .idx02 .inner_sm {
        padding: 0 20px
    }

    .idx02 h3.en {
        font-size: 14px;
        margin-bottom: 29px
    }

    .idx02 .bx-cont>p {
        font-size: 16px;
        line-height: 2.2
    }

    .idx02 .bx-img {
        max-width: 600px;
        margin: 27px auto 0
    }

    .idx02 .bx-img:before {
        top: -26px;
        left: -1px;
        background-image: url(../images/idx02_illus01_sp.svg);
        font-size: min(10px, 1.6vw)
    }

    .idx02 .bx-img:after {
        right: -7.3em;
        bottom: -12em;
        background-image: url(../images/idx02_illus02_sp.svg);
        font-size: min(10px, 1.6vw)
    }

    .idx03 {
        padding-top: 71px;
        padding-bottom: 16vw
    }

    .idx03:before {
        height: calc(100% + 550px);
        width: 140%;
        bottom: -235px
    }

    .idx03 .wrap-title {
        margin-bottom: 24px
    }

    .idx03 .inner_sm {
        padding: 0 20px
    }

    .idx03 .block-services .link a:before {
        width: 40px;
        height: 40px;
        bottom: 5px;
        left: 14%;
        right: unset;
        background-size: 40px auto;
        border-width: 4px;
        margin: 0
    }

    .idx03 .block-services .services-item {
        max-width: 500px;
        width: 100%;
        margin: 10px auto;
        padding: 14px 14px 19px;
        min-height: 160px
    }

    .idx03 .block-services .services-img {
        margin: 0;
        width: 35%
    }

    .idx03 .block-services .cont {
        width: calc(65% - 20px)
    }

    .idx03 .block-services .cont>p {
        line-height: 1.5;
        letter-spacing: 0
    }

    .idx03 .block-services .box-in {
        display: flex;
        justify-content: space-between;
        height: 100%
    }

    .idx03 .block-services h3 {
        text-align: left;
        font-size: min(20px, 4.8vw);
        display: table;
        margin-bottom: 13px
    }

    .idx03 .block-services h3:after {
        margin-right: 0;
        margin-left: 0;
        margin-top: 5px;
        width: 100%
    }

    .idx03 .block-menu {
        margin-top: 31px;
        padding: 32px 10px 34px
    }

    .idx03 .block-menu h3 {
        font-size: 24px;
        text-align: center
    }

    .idx03 .menu-link .menu-item {
        width: calc(50% - 10px);
        margin: 4px 5px
    }

    .idx03 .menu-link .menu-item a {
        padding: 12px 20px 12px 0
    }

    .idx03 .menu-link .menu-item a:after {
        width: 16px;
        height: 16px
    }

    .idx04 {
        background-color: #fff;
        padding-top: 39px;
        padding-bottom: 100px
    }

    .idx04:before {
        top: -45px
    }

    .idx04 .inner_sm:after {
        top: -21.6em;
        right: 4em;
        font-size: 5.5px
    }

    .idx04 .wrap-title {
        margin-bottom: 35px
    }

    .idx04 .checkup-illus {
        font-size: min(4.5px, 1.18vw)
    }

    .idx04 .checkup-illus .img01 {
        bottom: unset;
        top: -25px;
        left: 0px
    }

    .idx04 .checkup-illus .img02 {
        bottom: unset;
        top: -27px;
        right: -4px
    }

    .idx04 .wrap-title {
        margin-bottom: 34px
    }

    .idx04 .block-checkup {
        padding: 32px 7% 4px;
        border-radius: 60px
    }

    .idx04 .block-checkup:before {
        width: 43px;
        height: 100px;
        bottom: 225px;
        left: -2px;
        background-image: url(../images/idx04_illus02_sp.svg)
    }

    .idx04 .block-checkup:after {
        content: "";
        position: absolute;
        bottom: 140px;
        right: -3px;
        background: url(../images/idx04_illus03_sp.svg) no-repeat center/contain;
        width: 44px;
        height: 43px
    }

    .idx04 .block-checkup>p {
        line-height: 2.14
    }

    .idx04 .btn-group {
        width: calc(100% + 28px);
        margin-left: -14px;
        margin-top: 23px
    }

    .idx04 .btn-group .btn {
        width: calc((100% - 10px) / 2);
        margin-right: 10px
    }

    .idx04 .btn-group .btn a {
        padding: 0.6em 1.5em
    }

    .block-common .wrap-title {
        max-width: 650px;
        width: calc(100% - 86px);
        margin: -39px auto 0;
        position: relative;
        padding-top: 17px
    }

    .block-common .wrap-title h2 {
        line-height: 1.3
    }

    .block-common .wrap-title h2 span {
        display: table;
        margin: 7px auto 0;
        padding: 7px 15px 7px 15px
    }

    .block-common h3 {
        font-size: 22px;
        line-height: 1.3
    }

    .block-common h3.st02 {
        margin-bottom: 7px
    }

    .block-common h3.st02 span {
        padding-left: 1.3em;
        letter-spacing: 0.02em
    }

    .block-common h3.st02 span:before {
        width: 18px;
        height: 18px
    }

    .block-common .cm-tt {
        padding: 20px 25px 0 24px
    }

    .block-common .cm-bx01:before {
        background-image: url(../images/idx05_illus01_sp.svg);
        width: 122px;
        height: 136px;
        right: 0;
        top: -88px
    }

    .block-common .cm-bx02 {
        margin-top: 36px;
        padding: 0 10px
    }

    .block-common .cm-bx02 .cont>p {
        font-size: 16px
    }

    .block-common .common-cont {
        margin-top: 21px
    }

    .block-common .cm-cnt {
        padding: 41px 20px 29px 20px
    }

    .block-common .cm-cnt>.fblock {
        padding-left: 0
    }

    .block-common .listcheck {
        margin-bottom: 10px
    }

    .block-common .listcheck:last-child {
        margin-bottom: 0
    }

    .block-common .listcheck li {
        font-size: 16px;
        margin-bottom: 10px;
        padding-left: 1.8em
    }

    .block-common .listcheck li:before {
        top: 0.35em;
        left: 0.2em
    }

    .block-common .bx-consultation {
        padding: 17px 10px 20px 20px;
        margin-top: 29px
    }

    .block-common .bx-consultation:before {
        bottom: unset;
        top: -64px;
        font-size: 4.5px
    }

    .block-common .bx-guide {
        margin-bottom: 10px;
        margin-top: 20px
    }

    .block-common .bx-guide .guide-item {
        width: 100%;
        max-width: 450px;
        margin-right: auto;
        margin-left: auto;
        margin-bottom: 15px;
        padding: 16px 3px 14px
    }

    .block-common .bx-guide .guide-item:last-child,
    .block-common .bx-guide .guide-item:nth-child(3n+3) {
        margin-right: auto
    }

    .block-common .btn-group.col4 {
        margin: 0 -5px;
        justify-content: center
    }

    .block-common .btn-group.col4 .btn {
        width: calc(50% - 10px);
        margin: 5px
    }

    .block-common .common-img {
        padding: 0 10px;
        width: 100%
    }

    .idx05 {
        padding-bottom: 65px
    }

    .idx05 .block-common .cm-bx02 .cont {
        padding-left: 30px
    }

    .idx06 {
        padding-bottom: 40px
    }

    .idx06:before {
        bottom: -30px
    }

    .idx06 .block-common .cm-bx02 .btn-group {
        width: 100%;
        padding-left: 30px;
        margin-top: 22px
    }

    .idx06 .block-common .cm-bx02 .btn-group .btn {
        width: 53%
    }

    .idx06 .block-common .cm-bx02 .cont {
        padding-left: 30px
    }

    .idx06 .block-common .listcheck li {
        letter-spacing: 0.05em
    }

    .idx07 {
        padding-top: 99px;
        padding-bottom: 60px
    }

    .idx07 .inner_sm {
        padding: 0 20px
    }

    .idx07 .wrap-title {
        margin-bottom: 109px
    }

    .idx07 .wrap-title h2 {
        font-size: min(25px, 7vw);
        letter-spacing: 0
    }

    .idx07 .illus {
        background: none;
        font-size: 7px;
        left: 0;
        right: 1.9em;
        top: -11.5em;
        margin: auto
    }

    .idx07 .movie {
        font-size: min(9px, 1.19vw);
        margin: 0 auto 29px
    }

    .idx07 .movie:before {
        top: 0.8em;
        left: 1.2em;
        background-size: auto
    }

    .idx07 .bx-cnt {
        padding: 0 10px 40px
    }

    .idx07 .bx-cnt:before {
        right: -10px;
        width: calc(100% + 20px);
        height: calc(100% + 85px)
    }

    .idx07 .bx-cnt p {
        line-height: 2;
        font-size: 16px
    }

    .idx07 .block-video:before {
        width: 122px;
        height: 66px;
        top: -82px;
        right: -40px;
        background-image: url(../images/idx07_illus02_sp.svg)
    }

    .idx07 .block-video:after {
        content: "";
        position: absolute;
        top: -70px;
        left: -28px;
        width: 97px;
        height: 58px;
        background: url(../images/idx07_illus03_sp.svg)
    }

    .idx07 .bx-appstore .title {
        font-size: 18px
    }

    .idx07 .bx-appstore .title:after {
        margin-bottom: 21px
    }

    .idx07 .gr-bnr {
        margin: 0 -3px
    }

    .idx07 .gr-bnr .store img {
        max-height: 65px;
        height: 13.5vw;
        width: auto
    }

    .idx08 {
        padding: 0 0 55px
    }

    .idx08 .flex {
        width: 100%;
        justify-content: space-between
    }

    .idx08 .wrap-title {
        width: 55%
    }

    .idx08 .wrap-title:before {
        display: none
    }

    .idx08 .btn-group {
        position: relative;
        bottom: 0;
        right: 0;
        width: 43%
    }

    .idx08 .feature-slider {
        font-size: min(10px, 1.4vw)
    }

    .idx08 .feature-slider .feature-item {
        width: calc(33.3333333333% - 16px);
        margin-left: 8px;
        margin-right: 8px;
        padding: 1.9em 2em 4.1em
    }

    .idx08 .feature-slider h3 {
        font-size: 2.2em
    }

    .idx08 .feature-slider p {
        font-size: 1.4em
    }

    .idx08 .feature-slider .point {
        font-size: 0.8em
    }

    .idx08 .feature-btn {
        width: 100%
    }

    .idx08 .slider_dot {
        width: calc(100% - 120px)
    }

    .idx08 .slider_arrow {
        width: 110px
    }

    .idx08 .slick-arrow {
        width: 40px;
        height: 40px
    }

    .idx08 .slick-arrow.prev-arrow {
        margin-right: 5px
    }

    .idx09 .wrap-title {
        text-align: left;
        padding-left: 8%;
        padding-right: 5%
    }

    .idx09 .wrap-title .en {
        margin-left: 0;
        margin-right: 0
    }

    .idx09 h3 {
        font-size: 22px;
        margin-bottom: 15px
    }

    .idx09 .greeting-img {
        font-size: min(10px, 1.35vw);
        margin: 0 auto 25px
    }

    .idx09 .greeting-img:before {
        background-image: url(../images/idx09_illus01_sp.svg);
        width: 107px;
        height: 130px;
        bottom: 35px;
        left: -49px
    }

    .idx09 .greeting-img:after {
        background-image: url(../images/idx09_illus02_sp.svg);
        width: 109px;
        height: 83px;
        top: unset;
        bottom: -163px;
        right: -25px
    }

    .idx09 .greeting-img .mask {
        mask-image: url(../images/idx09_img_mask_sp.svg);
        -webkit-mask-image: url(../images/idx09_img_mask_sp.svg);
        width: 59em;
        height: 56em
    }

    .idx09 .greeting-cont {
        padding: 20px 5% 30px 8%
    }

    .idx09 .box-name {
        font-size: 1.47em;
        bottom: -4.3em;
        right: -3.8em
    }

    .idx09 .box-name .name-en {
        font-size: 1.4em
    }

    .idx09 .b-banner {
        margin-top: 15px;
        padding-top: 20px
    }

    .idx09 .b-banner .item {
        width: calc(50% - 16px);
        margin: 8px 8px
    }

    .idx09 .btn-group {
        justify-content: center
    }

    .idx09 .btn-group .btn {
        margin-right: 10px;
        width: calc(50% - 10px)
    }

    .idx09 .btn-group .btn a {
        letter-spacing: 0.05em
    }
}

@media only screen and (max-width:639px) {
    .idx02 .bx-img .img01 {
        width: 63%
    }

    .idx02 .bx-img .gr_img {
        width: 35.5%
    }

    .idx02 .bx-img .gr_img figure {
        margin-bottom: 2.5em;
        position: relative;
        right: -17px
    }

    .idx03:before {
        height: calc(100% + 394px)
    }

    .idx03 .block-services .cont>p {
        font-size: 13px;
        line-height: 1.7
    }
}

@media only screen and (max-width:450px) {
    .idx01 {
        padding-top: 6px
    }

    .idx03 {
        padding-bottom: 27vw
    }

    .idx04:before {
        top: -32px
    }

    .block-common .cm-bx01:before {
        top: -56px
    }

    .idx08 .feature-slider {
        font-size: min(10px, 2.8vw)
    }

    .idx08 .feature-slider:not(.slick-slider) {
        display: flex;
        opacity: 0
    }

    .idx08 .feature-slider h3 {
        letter-spacing: 0.05em
    }

    .idx08 .feature-slider figure {
        max-width: 22.5em
    }

    .idx09 .b-banner {
        flex-wrap: wrap
    }

    .idx09 .b-banner .item {
        margin: 10px auto;
        width: 100%
    }

    .idx09 .greeting-img:after {
        bottom: -138px
    }
}

@media only screen and (max-width:370px) {
    .idx03 .block-services h3 {
        font-size: min(20px, 5.8vw)
    }

    .idx03 .menu-link .menu-item a {
        font-size: 13px;
        letter-spacing: 0
    }

    .idx04 .wrap-title h2 {
        letter-spacing: 0.05em
    }

    .idx04 .block-checkup>p {
        letter-spacing: 0;
        font-size: 13px
    }

    .idx04 .btn-group .btn a {
        font-size: 13px
    }

    .block-common .btn-group.col4 .btn a {
        font-size: 13px;
        padding: 0.2em 1.5em 0.2em 1em
    }

    .idx09 .btn-group .btn a {
        padding: 0.3em 1.5em 0.25em 1em;
        font-size: 13px
    }

    .idx09 .btn-group .btn a:after {
        right: 10px
    }
}

/*# sourceMappingURL=index_sp.css.map */