@media only screen and (max-width:768px) {
    .home_page .key {
        --height: calc(100vh + 60px);
        --max-height: 128vw;
        --min-height: 320px;
        font-size: min(1.2vw, 10px);
        overflow: hidden
    }

    .home_page .key .mv_slider{
        width: 100%;
        max-width: 800px;
        max-height: 800px;
        aspect-ratio: 800/800;
        top: 45px;
        margin: 0 auto
    }
    .home_page .key .mv_slider .item{
        width: 116%;
        max-width: 800px;
        aspect-ratio: 800/800;
        left: -8%;
        right: -8%;
        position: absolute;
        top: 0;
        background-size: contain;

    }
    .home_page .key .mv_slider .item.s1{background-image: url("../images/idx_key_bg_sp.png");}
    .home_page .key .mv_slider .item.s2{background-image: url("../images/idx_key_bg02.png");}
    .home_page .key .mv_slider .item.s3{background-image: url("../images/idx_key_bg03.png");}
    .home_page .key .mv_slider .slider{
        height: var(--height);
        min-height: var(--min-height);
        max-height: var(--max-height);
        position: relative;
    }
    .home_page .key .banner {
        margin: -21em auto 2em
    }

    .home_page .key .list {
        justify-content: center
    }

    .home_page .key .catch {
        padding-top: 11em;
        margin-bottom: 3.2em;
        margin-right: 2em
    }
    .home_page .key .catch .title{
        display: flex;
        flex-direction: column;
        align-items: flex-start;
    }

    .home_page .key .catch .desc {
        font-size: 1.6em;
        letter-spacing: 0.05em;
        margin-top: 3em;
        text-shadow: 0 0 6px rgb(68, 67, 67), 0 0 8px rgba(68, 67, 67, 0.9), 0 0 9px rgba(68, 67, 67, 0.66), 0 0 10px rgba(68, 67, 67, 0.79), 0 0 10px rgba(68, 67, 67, 0.79), 0 0 10px rgba(68, 67, 67, 0.79), 0 0 10px rgba(68, 67, 67, 0.79)
    }

    .idx_marquee {
        font-size: min(0.7vw, 5px)
    }

    .idx_marquee .txt {
        top: -20vw
    }
}

@media only screen and (max-width:639px) {
    .idx_marquee .txt {
        top: min(-44px, -8vw)
    }

    .home_page .key {
        --height: calc(100vh - 60px)
    }
}

@media only screen and (max-width:450px) {
    .home_page .key .banner {
        font-size: 1.05em
    }
    .home_page .key .list .item>span {
        font-size: 1.2em;
        letter-spacing: 0.05em
    }
    .home_page .key .list .item{
        width: 12em;
        height: 12em;
    }
}

@media only screen and (max-width:376px) {
    .home_page .key .key_text {
        font-size: 1.2em
    }

    .home_page .key .catch {
        margin-bottom: 0.2em
    }

    .home_page .key .catch .title>span {
        padding-right: 0.4em
    }

    .idx_marquee .txt {
        top: -24vw
    }
}

@media only screen and (max-width:768px) and (orientation:landscape) {
    .home_page .key {
        font-size: 1.5vmin;
        --min-height: 320px
    }
}

@media only screen and (max-width:768px) {
    .idx_news {
        margin-top: 0;
        margin-left: 0;
        background-color: #f7f7f7;
        padding: 60px 0;
        font-size: 8px;
        width: 100%
    }

    .idx_news ul {
        width: calc(100% - 35px - 1em);
        max-width: 460px;
        padding-right: 1em;
        margin-right: 1em
    }

    .idx_news ul li a:after {
        width: round(1em, 1px);
        height: round(1em, 1px)
    }

    .idx_news ul li a .date {
        width: 5.6em
    }

    .idx_news ul li a .title {
        max-width: calc(100% - 5.7em)
    }

    .idx_news .news {
        width: calc(100% - 20px);
        padding: 1.9em 3em 2.2em 2em
    }

    .idx_news .btn-news {
        width: 35px
    }

    .idx_news .btn-news a {
        font-size: 1.6em
    }

    .idx_news .btn-news a:after {
        width: round(3em, 1px)
    }
}

@media only screen and (max-width:768px) {
    .wrap-title01 h2 {
        font-size: 26px
    }

    .wrap-title01 h2:before {
        margin-bottom: 10px
    }

    .wrap-title01 h2.fz26 {
        font-size: 22px;
        line-height: 1.4
    }

    .wrap-title01 .en {
        font-size: 60px;
        top: 10px
    }

    .wrap-title02 {
        margin-bottom: 12px
    }

    .wrap-title02 .en {
        font-size: 14px;
        padding-top: 14px;
        margin-bottom: 9px
    }

    .wrap-title02 h2 {
        font-size: 28px
    }

    .block-common {
        padding: 35px 5%
    }

    .block-common .wrap-title02 {
        padding-left: 0;
        margin-bottom: 25px
    }

    .block-common .cm-row1 {
        position: relative
    }

    .block-common .cm-row1:before {
        width: calc(100% - 40px)
    }

    .block-common .cm-row1:after {
        font-size: 5px
    }

    .block-common .cm-row1 .cm-img {
        font-size: min(7px, 1.4vw);
        display: table;
        margin: 0 auto 20px
    }

    .block-common .cm-row1 .subtl {
        text-align: center;
        font-size: 20px;
        line-height: 1.5;
        margin-bottom: 15px
    }

    .block-common .cm-row1 .btn-group {
        margin-top: 20px
    }

    .block-common .cm-row1 .btn-group .btn {
        margin: 0 auto
    }

    .block-common .cm-bx {
        padding: 80px 5% 30px
    }

    .block-common .cm-bx .cm-tl {
        padding: 12px 20px 14px;
        left: 0;
        right: 0;
        margin: auto;
        display: table
    }

    .block-common .cm-bx .cm-tl p {
        font-size: 20px
    }

    .block-common .cm-bx .btn-group {
        gap: 1em;
        font-size: min(8px, 2.05vw)
    }

    .block-common .cm-bx .btn-group .btn {
        width: calc(50% - 1em)
    }

    .block-common .cm-bx .btn-group .btn a {
        padding: 0.5625em 2em 0.6875em 1.25em
    }

    .block-common .cm-bx .btn-group .btn a:not(:hover):after {
        right: 0.6em
    }

    .block-common .cm-list {
        gap: 0.5em;
        align-items: stretch
    }

    .block-common .cm-list .item {
        width: calc(50% - 0.5em);
        padding: 1.2em 3em 1em 1em;
        font-size: min(10px, 2.2vw);
        min-height: 7em
    }

    .block-common .cm-list .item:after {
        right: 1em
    }

    .block-common .cm-list .cont {
        width: 100%;
        height: 100%;
        justify-content: space-between
    }

    .block-common .cm-list .cont .img {
        width: 4.8em;
        height: 4.8em
    }

    .block-common .cm-list .cont .title {
        padding-left: 0;
        padding-bottom: 0
    }

    .block-common .cm-row3 h3 {
        font-size: min(20px, 5.9vw);
        margin-bottom: 10px
    }

    .block-common .cm-row3 .cm-list {
        margin-top: 25px
    }
    .idx01{padding-top: 45px;}
    .idx01_bnr{
        margin-bottom: 40px;
        width: 90%;
    }
    .idx01:before {
        display: none
    }

    .idx01 .idx_box {
        display: block;
        padding: 35px 0
    }

    .idx01 .idx_box:after {
        right: -10px;
        max-height: 460px;
        height: 75vw;
        width: calc(100% + 20px);
        background-image: url(../images/idx01_img_sp.jpg);
        border-radius: 0
    }

    .idx01 .idx_box .box_img {
        width: 100%;
        margin: 0 auto 30px
    }

    .idx01 .idx_box .box_img .txt {
        font-size: min(10px, 1.8vw)
    }

    .idx01 .idx_box .box_img .txt .en {
        letter-spacing: 0
    }

    .idx01 .idx_box .box_info {
        font-size: 8.75px;
        width: 100%;
        padding: 25px 5%;
        margin: 0 auto
    }

    .idx01 .idx_box .box_info.st1 {
        padding-top: 25px
    }

    .idx01 .idx_box .box_info .time_sheet {
        font-size: min(2.3vw, 10px)
    }

    .idx02 {
        padding: 60px 0
    }

    .idx02:after {
        font-size: min(5px, 1vw)
    }

    .idx02 .inner_big:after {
        font-size: min(5px, 1vw);
        bottom: -21.9em;
        right: 7em
    }

    .idx02 .img-pos {
        position: relative
    }

    .idx02 .gr-img {
        display: flex;
        align-items: flex-end;
        justify-content: center;
        margin-top: 20px;
        font-size: min(5px, 0.8vw)
    }

    .idx02 .gr-img img {
        width: 100%
    }

    .idx02 .img01 {
        top: 0;
        left: 0;
        margin-right: 1.5em;
        width: 39%
    }

    .idx02 .img02 {
        top: 2em;
        left: 0;
        width: 39%
    }

    .idx02 .img03 {
        position: absolute;
        top: -24em;
        right: 0;
        font-size: min(4px, 1vw)
    }

    .idx03 {
        padding-top: 65px
    }

    .idx03 .wrap-title01 {
        margin-bottom: 25px
    }

    .idx03 .block-service {
        padding: 0 20px;
        font-size: min(8px, 1.4vw)
    }

    .idx03 .block-service .service-item {
        width: round((100% - 1.5em)/2, 1px);
        margin-bottom: 1.5em
    }

    .idx03 .block-service .service-item.it01:before {
        left: -2em
    }

    .idx03 .block-service .service-item.it01 .service-bg {
        background-position: right center
    }

    .idx03 .block-service .service-item.it01 .service-bg:before {
        right: -1px
    }

    .idx03 .block-service .service-item.it02:before {
        right: -2em
    }

    .idx03 .block-service .service-item.it02 .service-bg {
        background-position: left center
    }

    .idx03 .block-service .service-item.it02 .service-bg:before {
        left: -1px
    }

    .idx03 .block-service .service-item.it03:before {
        left: -2em
    }

    .idx03 .block-service .service-item.it03 .service-bg {
        background-position: left center
    }

    .idx03 .block-service .service-item.it03 .service-bg:before {
        right: -1px
    }

    .idx03 .block-service .service-item.it04:before {
        right: -2em
    }

    .idx03 .block-service .service-item.it04 .service-bg {
        background-position: right center
    }

    .idx03 .block-service .service-item.it04 .service-bg:before {
        left: -1px
    }

    .idx04 {
        padding-top: 60px
    }

    .idx04 .block-common .cm-row1 {
        padding-bottom: 38px;
        margin-bottom: 40px
    }

    .idx04 .block-common .cm-row1:after {
        right: -3em;
        bottom: -8.2em
    }

    .idx05 {
        padding: 60px 0 90px
    }

    .idx05 .wrap-title02 {
        margin-bottom: 25px
    }

    .idx05 .block-care:before {
        bottom: 0;
        height: calc(100% + 350px)
    }

    .idx05 .block-care .item {
        padding: 25px 5%;
        max-width: 450px;
        margin: 0 auto 30px
    }

    .idx05 .block-care .item:last-child {
        margin-bottom: 0
    }

    .idx05 .block-care .care-bg:before {
        left: 0
    }

    .idx05 .block-care h3 {
        font-size: 20px
    }

    .idx05 .block-care .care-img .pickup {
        font-size: min(7px, 1.5vw);
        right: -2em
    }

    .idx05 .block-care .btn-group .btn {
        margin-top: 20px
    }

    .idx06 {
        padding-top: 40px
    }

    .idx06:before {
        top: -30px
    }

    .idx06 .block-common {
        padding-bottom: 45px
    }

    .idx06 .block-common:before {
        height: 36%
    }

    .idx06 .block-common .cm-row1 {
        padding-bottom: 38px;
        margin-bottom: 40px
    }

    .idx06 .block-common .cm-row1:after {
        right: 0;
        bottom: -8.2em
    }

    .idx06 .block-common .cm-row3 {
        margin-top: 35px
    }

    .idx07 {
        padding: 60px 0 48px
    }

    .idx07 .bg-white {
        padding-left: 10px;
        padding-right: 0
    }

    .idx07 .bg-white:before {
        height: calc(100% - 6px);
        border-radius: 0 60px 10px 0
    }

    .idx07 .wrap-title02 {
        margin-bottom: 18px
    }

    .idx07 .b-diseases {
        padding-right: 0
    }

    .idx07 .b-diseases:before {
        top: -23.4em;
        font-size: min(5px, 1vw)
    }

    .idx07 .diseases-item {
        padding: 20px 15px;
        margin: 0 5px;
        width: min(160px, 40vw) !important;
        max-width: 170px
    }

    .idx07 .diseases-item figure {
        width: 90px;
        height: 90px
    }

    .idx07 .diseases-tl {
        padding-right: 20px
    }

    .idx07 .diseases-tl:after {
        width: 16px;
        height: 16px
    }

    .idx07 .btn-group .btn {
        margin: 25px auto 0
    }

    .idx07 .diseases-btn {
        flex-wrap: wrap;
        margin-top: 20px
    }

    .idx07 .slider_arrow {
        order: 2;
        width: 100%;
        margin-top: 20px;
        justify-content: center
    }

    .idx07 .slider_arrow .slick-arrow {
        width: 35px;
        height: 35px;
        background-size: 7px auto
    }

    .idx07 .slider_dot {
        order: 1;
        width: calc(100% - 20px)
    }

    .idx08 {
        padding: 90px 0 180px
    }

    .idx08:before {
        height: calc(100% + 25px)
    }

    .idx08 .block-service {
        padding: 40px 5% 60px;
        border-radius: 10px 60px 10px 60px
    }

    .idx08 .block-service:before {
        font-size: 6px;
        bottom: -5.7em
    }

    .idx08 .btn-group .btn.style01 {
        margin-top: 20px
    }

    .idx09 {
        padding-bottom: 80px
    }

    .idx09:before {
        top: -80px
    }

    .idx09:after {
        font-size: 4px;
        top: -21.3em
    }

    .idx09 .inner:before {
        font-size: min(6px, 1.2vw);
        right: 10px;
        bottom: -18.8em
    }

    .idx09 .wrap-title01 {
        margin-bottom: 25px
    }

    .idx09 .block-feature {
        max-width: 600px;
        width: 100%;
        margin: 0 auto
    }

    .idx09 .feature-thumb {
        width: calc(100% - 40px);
        margin: 0 auto 30px;
        position: relative;
        z-index: 1
    }

    .idx09 .feature-thumb .thumb-item figure {
        border-radius: 10px 60px 10px 60px
    }

    .idx09 .feature-thumb .slick-arrow {
        height: 50px
    }

    .idx09 .feature-cont {
        padding: 0
    }

    .idx09 .feature-cont:before {
        top: -140px;
        left: 50%;
        right: 50%;
        margin: 0 -50vw;
        border-radius: 0;
        height: calc(100% + 195px)
    }

    .idx09 .feature-cont .f-point {
        margin-bottom: 3px
    }

    .idx09 .feature-cont h3 {
        font-size: 22px;
        line-height: 1.5;
        margin-bottom: 10px
    }

    .idx09 .feature-cont p {
        max-width: 100%
    }

    .idx09 .feature-cont .slick-dots {
        justify-content: center
    }

    .idx09 .feature-cont .slick-dots li {
        width: calc((100% - 35px) / 6)
    }

    .idx09 .feature-cont .slick-dots li button {
        font-size: 15px
    }

    .idx09 .btn-group .btn {
        margin: 20px auto 0
    }

    .idx10 {
        padding-bottom: 40px;
        background-color: #fff
    }

    .idx10 .bg-illus:before {
        font-size: 7px
    }

    .idx10 .en {
        writing-mode: unset;
        font-size: 56px
    }

    .idx10 .wrap-title {
        text-align: center;
        padding-left: 0;
        margin-bottom: 35px;
        order: 1
    }

    .idx10 .wrap-title .en {
        margin-top: 0;
        margin-right: 0;
        margin-bottom: 0
    }

    .idx10 .wrap-title h2 {
        margin-top: 0;
        font-size: 28px;
        line-height: 1.5
    }

    .idx10 .greeting-img {
        order: 2;
        margin: 0 auto 20px;
        font-size: min(8px, 1.5vw)
    }

    .idx10 .greeting-cont {
        order: 3;
        max-width: 500px;
        width: 100%;
        margin: 0 auto
    }

    .idx10 .btn-group {
        order: 4;
        justify-content: center;
        margin-top: 25px;
        margin-left: 0;
        gap: 6px
    }

    .idx10 .btn-group .btn a {
        padding: 0.2em 1.85em 0.255em 1em
    }

    .idx10 .box-name {
        padding: 2.4em 2em 2em 1.8em;
        height: 30em
    }

    .idx10 .box-name p {
        font-size: 12px
    }

    .idx10 .box-name p span {
        letter-spacing: 0.25em;
        padding-top: 0.2em
    }

    .idx10 .box-name p rt {
        margin-left: 0.4em
    }

    .idx10 .bx-bg {
        display: none
    }

    .idx10 .fblock {
        display: flex;
        flex-direction: column;
    }

    .idx10 .fblock:before {
        right: -10px;
        top: min(500px, 113vw);
        width: calc(100% + 20px);
        height: calc(100% + 160vw);
        border-radius: 0
    }
    .idx10 .greeting-cont {
        margin-bottom: 40px
    }
    .idx10 .fblock .column-star2 {
        display: contents
    }
}

@media only screen and (max-width:425px) {
    .block-common .cm-bx .btn-group .btn .sp_none {
        display: none
    }

    .block-common .cm-row3 h3 {
        font-size: min(20px, 5.5vw)
    }

    .block-common .cm-row3 h3 .tt-line {
        letter-spacing: 0
    }

    .idx03 .block-service .service-item {
        height: 22em
    }

    .idx03 .block-service .service-item.it01:before {
        border-radius: 1.5em 8em 1.5em 8em
    }

    .idx03 .block-service .service-item.it01 .service-bg {
        border-radius: 1.5em 8em 1.5em 8em
    }

    .idx03 .block-service .service-item.it02:before {
        border-radius: 8em 1.5em 8em 1.5em
    }

    .idx03 .block-service .service-item.it02 .service-bg {
        border-radius: 8em 1.5em 8em 1.5em
    }

    .idx03 .block-service .service-item.it03:before {
        border-radius: 8em 1.5em 8em 1.5em
    }

    .idx03 .block-service .service-item.it03 .service-bg {
        border-radius: 8em 1.5em 8em 1.5em
    }

    .idx03 .block-service .service-item.it04:before {
        border-radius: 1.5em 8em 1.5em 8em
    }

    .idx03 .block-service .service-item.it04 .service-bg {
        border-radius: 1.5em 8em 1.5em 8em
    }

    .idx03 .block-service .service-bg:before {
        width: 150%;
        height: 130%
    }

    .idx03 .block-service .service-tl:before {
        width: 15px;
        height: 15px
    }

    .idx07 .b-diseases:before {
        top: -28.4em;
        right: 0
    }

    .idx09:after {
        top: -28.3em
    }

    .idx09 .feature-cont h3 .br {
        display: none
    }

    .idx10 .txt-greeting {
        top: -3.6em;
        left: -1.3em;
        font-size: 1.5em
    }

    .idx10 .box-name {
        width: 14em;
        height: 34em;
        right: 4.3em
    }

    .idx10 .box-name p {
        font-size: 10px
    }
}

@media only screen and (max-width:370px) {
    .block-common .cm-bx .btn-group .btn a {
        letter-spacing: 0
    }
}

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