@charset "UTF-8";
/* -------------------------------
   price
------------------------------- */

/* common */
body {
    background-color: #ffffff;
    color: #545454;
}

.txt-or {
    color: #ff8d2c;
}

#wrap {
    padding-top: 0;
}

.header {
    opacity: 0;
    pointer-events: none;
}

.box-btn {
    display: flex;
    justify-content: center;

    a {
        text-decoration: none;
        display: flex;
        justify-content: center;
        gap: 0 7px;
        align-items: center;

        .txt-link {
            font-size: 18px;
            display: block;
            color: #545454;
            padding: 4px 0 8px;
            line-height: 1.45;
            position: relative;

            &::after {
                content: '';
                display: block;
                width: 100%;
                height: 1px;
                background: linear-gradient(to right,  #7ac300 0%,#bcd600 100%);
                position: absolute;
                bottom: 0;
            }
        }
    }
}

@media screen and (max-width: 640px) {
    .header {
        opacity: 1;
        pointer-events: auto;
    }
    .box-btn {
        a {
            gap: 0 5px;

            .txt-link {
                font-size: 16px;
                padding: 4px 0 6px;
            }

            img {
                width: 20px;
            }
        }
    }
}



/* for price page only */
/* .sec-info {
    background-color: #f7faf2;
} */







/* price section */
.sec-mv#mv {
    display: flex;
    width: 100%;
    position: relative;
    padding: 0;
    align-items: flex-start;

    .box-logo {
        display: flex;
        padding: 50px 75px 70px;

        .logo {
            width: 307px;
        }
    }

    .img-mv {
        width: 48.12%;
        margin-right: 0;
        margin-left: auto;
        display: block;
    }

    .box-txt {
        position: absolute;
        top: 43%;
        left: 16%;
        padding: 0;

        .ttl-mv {
            display: flex;
            flex-direction: column;
            gap: 30px 0;
            margin-bottom: 40px;

            span {
                display: block;

                &.en {
                    font-size: 54px;
                    letter-spacing: .02em;
                    line-height: 1;
                    color: #467600;
                }
                &.ja {
                    font-size: 24px;
                    letter-spacing: .1em;
                    line-height: 1;
                    font-weight: 500;
                }
            }
        }
    }
}
/* MV SP */
@media screen and (max-width: 640px) {
    .sec-mv#mv {
        padding: 0 0 40px;
        flex-direction: column;
        gap: 15px;

        .box-logo {
            padding: 20px 16px;
            display: none;

            .logo {
                width: 150px;
            }
        }

        .img-mv {
            border-radius: 0;
            width: 73%;
            display: block;
            margin: 0 0 0 auto;
        }

        .box-txt {
            padding: 0 0 0 16px;
            left: 0;
            top: 0;
            position: relative;

            .ttl-mv {
                gap: 10px 0;
                margin-bottom: 10px;

                span {
                    display: block;

                    &.en {
                        font-size: 30px;
                        letter-spacing: .02em;
                    }
                    &.ja {
                        font-size: 16px;
                        letter-spacing: .02em;
                    }
                }
            }
        }
    }
}




/* #flow 診療の流れ */
@keyframes updown {
    0% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-20px);
    }
    100% {
        transform: translateY(0);
    }
}
.sec-flow {
    background-color: #fff;
    padding: 110px 0 162px;

    .inner {
        max-width: 1100px;
        margin: 0 auto;
        width: 100%;

        .ttl-flow {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            gap: 30px 0;
            margin-bottom: 80px;

            span {
                font-size: 24px;
                font-weight: 500;
                letter-spacing: .1em;
                color: #545454;
                line-height: 1;
            }
        }

        .box-step {
            background-color: #fcfdfa;
            border: 1px solid #b7d300;
            position: relative;
            padding: 50px 50px 50px 60px;

            &:not(:last-child) {
                margin-bottom: 110px;

                &::after {
                    content: "";
                    display: block;
                    width: 39px;
                    height: 23px;
                    display: block;
                    background:  url(../img/price/icon_arr.svg) center top / 100% auto no-repeat;
                    position: absolute;
                    bottom: -63px;
                    left: 50%;
                    transform: translateX(-50%);
                }
            }

            &.step1 {
                background-color: #fffcf9;
                background: #fffcf9;
                border: 1px solid #ff8500;
                padding: 68px 60px 62px;
                position: relative;
                margin-bottom: 130px;

                .ttl-step {
                    border-color: #ee8934;
                }

                .txt-bg {
                    font-size: 20px;
                    line-height: 1;
                    background-color: #ee8934;
                    color: #fdfbf8;
                    padding: 15px 50px;
                    display: inline-block;
                    position: absolute;
                    left: 50%;
                    transform: translateX(-50%);
                    bottom: -20px;
                    text-wrap: nowrap;
                    font-weight: 600;
                }

                .elem {
                    .elem-txt {
                        flex: 1;

                        .ttl-elem {
                            color: #517407;
                            line-height: 1.66;
                            font-size: 24px;
                            font-weight: 500;
                            margin-bottom: 14px;
                            letter-spacing: .1em;
                            display: flex;
                            gap: 28px;
                            align-items: center;

                            dl {
                                display: flex;
                                gap: 12px;

                                dt, dd {
                                    line-height: 1;
                                }

                                dt {
                                    border: 1px solid #517407;
                                    padding: 5px 0;
                                    width: 98px;
                                    display: block;
                                    text-align: center;
                                    font-size: 16px;
                                }
                                dd {
                                    font-size: 24px;
                                    font-weight: 500;
                                    letter-spacing: .1em;
                                }
                            }
                            small {
                                font-size: 14px;
                            }
                        }

                        .txt-ast {
                            margin-bottom: 30px;
                            font-size: 14px;
                            color: #545454;
                        }

                        .txt-elem {
                            font-size: 18px;
                            line-height: 2;
                            margin-bottom: 40px;

                            .link-name {
                                display: flex;
                                align-items: center;
                                justify-content: flex-start;
                                margin-top: 0.5rem;
                                margin-bottom: 2rem;

                                .txt {
                                    padding: 0 5px;
                                    display: inline-block;
                                    position: relative;
                                    color: #545454;

                                    &::after {
                                        content: "";
                                        width: 100%;
                                        height: 1px;
                                        display: block;
                                        background: linear-gradient(to right,  #7ac300 0%,#bcd600 100%);
                                        position: absolute;
                                        bottom: -8px;
                                        left: 0;
                                        transition: all .4s ease-in;
                                    }
                                }

                                &:hover {
                                    .txt {
                                        &::after {
                                            opacity: 0;
                                        }
                                    }
                                }
                            }
                        }

                        .txt-note {
                            font-size: 20px;
                            font-weight: 600;
                            line-height: 1.72;
                            color: #ff8500;
                            letter-spacing: .025em;
                        }
                    }
                }

                &::after {
                    bottom: -86px;
                }
            }

            &.step4 {
                .elem {
                    align-items: flex-start;
                }
            }

            .elem {
                display: flex;
                gap: 0 30px;
                align-items: center;

                .elem-txt {
                    flex: 1;

                    .ttl-step {
                        display: flex;
                        flex-direction: column;
                        gap: 20px 0;
                        padding-bottom: 17px;
                        border-bottom: 1px solid #7ac100;
                        margin: 0 auto 40px;

                        span {
                            line-height: 1;

                            &.en {
                                font-size: 20px;
                                font-weight: 600;
                                color: #597222;
                                letter-spacing: .025em
                            }
                            &.ja {
                                font-size: 24px;
                                font-weight: 500;
                                letter-spacing: .1em;
                            }
                        }
                    }

                    .txt-elem {
                        font-size: 16px;
                        line-height: 2.12;
                    }
                }

                figure {
                    max-width: 370px;
                    overflow: hidden;
                    border-radius: 0 0 60px 0;

                    img {
                        max-width: 100%;
                    }
                }
            }

            .elem-img {
                position: relative;
                height: 365px;
                margin-top: 55px;
                width: 100%;

                .img-ball {
                    position: absolute;
                    animation-name: updown;
                    animation-delay: 0s;
                    animation-duration: 3s;
                    animation-timing-function: ease-in-out;
                    animation-iteration-count: infinite;

                    &.ball1 {
                        width: 15.99%;
                        left: 0;
                        top: 0;
                    }
                    &.ball2 {
                        width: 15.99%;
                        left: 37%;
                        top: 10%;
                        animation-duration: 5s;
                    }
                    &.ball3 {
                        width: 15.99%;
                        right: 13%;
                        top: 0;
                        animation-duration: 6s;
                    }
                    &.ball4 {
                        width: 11.63%;
                        left: 0;
                        bottom: 4%;
                        animation-duration: 8s;
                    }
                    &.ball5 {
                        width: 11.63%;
                        right: 61%;
                        bottom: 0;
                        animation-duration: 4s;
                    }
                    &.ball6 {
                        width: 11.63%;
                        right: 27%;
                        bottom: -2%;
                        animation-duration: 7s;
                    }
                    &.ball13 {
                        width: 11.63%;
                        right: 1%;
                        bottom: 15%;
                        animation-duration: 3s;
                    }

                    &.ball7 {
                        width: 4.75%;
                        left: 14%;
                        bottom: -4%;
                    }
                    &.ball8 {
                        width: 6.78%;
                        right: 0;
                        top: 12%;
                        animation-duration: 6s;
                    }
                    &.ball14 {
                        width: 5.22%;
                        right: 12%;
                        bottom: -9%;
                        animation-duration: 5s;
                    }
                    &.ball15 {
                        width: 3.22%;
                        left: 28%;
                        top: 8%;
                        animation-duration: 5s;
                    }

                    &.ball9 {
                        width: 4.04%;
                        left: 17%;
                        top: 51%;
                        animation-duration: 6s;
                    }
                    &.ball10 {
                        width: 4.04%;
                        left: 49%;
                        bottom: 10%;
                    }
                    &.ball11 {
                        width: 4.04%;
                        left: 60%;
                        top: 33%;
                    }
                    &.ball12 {
                        width: 4.04%;
                        right: 18%;
                        bottom: 26%;
                    }
                }
            }

            .txt-btm {
                font-size: 16px;
                line-height: 2.12;
            }
        }
    }
}
/* SP #flow 診療の流れ */
@media screen and (max-width: 640px) {
    .sec-flow {
        padding: 40px 16px 60px;

        .inner {
            max-width: 100%;
            margin: 0 auto;
            width: 100%;

            .ttl-flow {
                gap: 20px 0;
                margin-bottom: 35px;

                img {
                    width: 51px;
                }

                span {
                    font-size: 18px;
                    letter-spacing: .05em;
                }
            }

            .box-step {
                padding: 30px 16px 40px;

                &:not(:last-child) {
                    margin-bottom: 80px;

                    &::after {
                        content: "";
                        display: block;
                        width: 39px;
                        height: 23px;
                        display: block;
                        background:  url(../img/price/icon_arr.svg) center top / 100% auto no-repeat;
                        position: absolute;
                        bottom: -53px;
                        left: 50%;
                        transform: translateX(-50%);
                    }
                }

                &.step1 {
                    padding: 40px 16px 60px;

                    .ttl-step {
                        gap: 10px 0;
                        padding-bottom: 15px;
                        width: 100%;
                        margin: 0 auto 40px;

                        span {
                            line-height: 1;

                            &.en {
                                font-size: 22px;
                            }
                            &.ja {
                                font-size: 18px;
                                letter-spacing: .05em;

                                small {
                                    font-size: 16px;
                                }
                            }
                        }
                    }

                    .elem {
                        flex-direction: column-reverse;

                        .elem-txt {
                            .ttl-elem {
                                align-items: flex-start;
                                line-height: 1.45;
                                font-size: 19px;
                                margin-bottom: 15px;
                                letter-spacing: .05em;
                                flex-direction: column;
                                gap: 10px;

                                small {
                                    font-size: 13px;
                                }
                            }

                            .txt-elem {
                                font-size: 14px;
                                line-height: 1.75;
                                margin-bottom: 20px;
                            }

                            .txt-note {
                                font-size: 15px;
                                line-height: 1.45;
                                text-align: center;
                            }
                        }
                    }

                    .txt-bg {
                        font-size: 16px;
                        line-height: 1.45;
                        padding: 10px 16px;
                        display: inline-block;
                        position: absolute;
                        left: 50%;
                        width: 98%;
                        transform: translateX(-50%);
                        bottom: -20px;
                        text-wrap: wrap;
                        text-align: center;
                    }
                }

                &.step4 {
                    .elem {
                        align-items: flex-start;
                    }
                }

                .elem {
                    gap: 30px 0;
                    flex-direction: column;

                    .elem-txt {
                        flex: 1;

                        .ttl-step {
                            display: flex;
                            flex-direction: column;
                            gap: 20px 0;
                            padding-bottom: 15px;
                            margin: 0 auto 20px;

                            span {
                                line-height: 1;

                                &.en {
                                    font-size: 18px;
                                }
                                &.ja {
                                    font-size: 20px;
                                    letter-spacing: .05em;
                                }
                            }
                        }

                        .txt-elem {
                            font-size: 16px;
                            line-height: 2.12;
                        }
                    }

                    figure {
                        max-width: 100%;
                        width: 100%;
                        border-radius: 0;
                    }
                }

                .elem-img {
                    height: 330px;
                    margin-top: 30px;

                    .img-ball {
                        position: absolute;
                        animation-name: updown;
                        animation-delay: 0s;
                        animation-duration: 3s;
                        animation-timing-function: ease-in-out;
                        animation-iteration-count: infinite;

                        &.ball1 {
                            width: 30%;
                            left: 0;
                            top: 0;
                        }
                        &.ball2 {
                            width: 30%;
                            left: 37%;
                            top: 17%;
                            animation-duration: 5s;
                        }
                        &.ball3 {
                            width: 30%;
                            right: 0;
                            top: 0;
                            animation-duration: 6s;
                        }
                        &.ball4 {
                            width: 26%;
                            left: 0;
                            bottom: 31%;
                            animation-duration: 8s;
                        }
                        &.ball5 {
                            width: 26%;
                            right: 52%;
                            bottom: 0;
                            animation-duration: 4s;
                        }
                        &.ball6 {
                            width: 26%;
                            right: 16%;
                            bottom: 23%;
                            animation-duration: 7s;
                        }
                        &.ball13 {
                            width: 26%;
                            right: 0;
                            bottom: -10%;
                            animation-duration: 3s;
                        }

                        &.ball7 {
                            width: 11.75%;
                            left: 6%;
                            bottom: 4%;
                        }
                        &.ball8 {
                            width: 17.78%;
                            right: 0;
                            top: 31%;
                            animation-duration: 6s;
                        }

                        &.ball9 {
                            width: 8%;
                            left: 24%;
                            top: 29%;
                            animation-duration: 6s;
                        }
                        &.ball10 {
                            width: 8%;
                            left: 32%;
                            bottom: 32%;
                        }
                        &.ball11 {
                            width: 8%;
                            left: 69%;
                            top: 37%;
                        }
                        &.ball12 {
                            width: 8%;
                            right: 36%;
                            bottom: 10%;
                        }

                        &.ball14 {
                            width: 5.22%;
                            right: 4%;
                            bottom: 23%;
                            animation-duration: 5s;
                        }
                    }
                }

                .txt-btm {
                    font-size: 16px;
                    line-height: 2.12;
                }
            }
        }
    }
}



/* #cure 治療法一覧 */
.sec-cure {
    background-color: #fff;
    padding: 100px 0 225px;

    .inner {
        max-width: 1100px;
        margin: 0 auto;
        width: 100%;

        .ttl-cure {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            gap: 30px 0;
            margin-bottom: 80px;

            span {
                font-size: 24px;
                font-weight: 500;
                letter-spacing: .1em;
                color: #545454;
                line-height: 1;
            }
        }

        .list-cure {
            display: flex;
            gap: 80px 35px;
            flex-wrap: wrap;
            justify-content: space-between;

            .item-cure {
                width: calc(100% / 4 - 27px);

                &:first-child {
                    display: flex;
                    flex-direction: column;
                    justify-content: center;
                    align-items: center;
                }

                a {
                    display: block;

                    figure {
                        margin-bottom: 25px;
                        overflow: hidden;
                        border-radius: 0 60px 0 0;
                    }
                    .name-cure {
                        display: flex;
                        align-items: center;
                        justify-content: center;

                        .txt {
                            font-size: 20px;
                            font-weight: 500;
                            letter-spacing: .1em;
                            line-height: 1;
                            color: #545454;
                            padding: 0 5px;
                            display: inline-block;
                            position: relative;

                            &::after {
                                content: "";
                                width: 100%;
                                height: 1px;
                                display: block;
                                background: linear-gradient(to right,  #7ac300 0%,#bcd600 100%);
                                position: absolute;
                                bottom: -8px;
                                left: 0;
                            }
                        }
                    }
                }
            }
        }
    }
}
/* SP #cure 治療法一覧 */
@media screen and (max-width: 640px) {
    .sec-cure {
        padding: 60px 16px 60px;

        .inner {
            max-width: 100%;

            .ttl-cure {
                gap: 10px 0;
                margin-bottom: 0;

                span {
                    font-size: 18px;
                    letter-spacing: .05em;
                }
            }

            .list-cure {
                display: flex;
                gap: 30px 15px;
                flex-wrap: wrap;
                justify-content: space-between;

                .item-cure {
                    width: calc(100% / 2 - 10px);

                    &:first-child {
                        width: 100%;
                    }

                    a {
                        display: block;

                        figure {
                            margin-bottom: 15px;
                            border-radius: 0 20px 0 0;
                        }
                        .name-cure {
                            .txt {
                                font-size: 16px;
                                letter-spacing: .05em;

                                &::after {
                                    content: "";
                                    width: 100%;
                                    height: 1px;
                                    display: block;
                                    background: linear-gradient(to right,  #7ac300 0%,#bcd600 100%);
                                    position: absolute;
                                    bottom: -8px;
                                    left: 0;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}







/* #table 料金表 */
.sec-tbl {
    background-color: #f7faf2;
    padding: 100px 0 200px;
    border-radius: 100px 100px 0 0;

    .inner {
        max-width: 1100px;
        margin: 0 auto;
        width: 100%;

        .ttl-tbl {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            gap: 30px 0;
            margin-bottom: 53px;

            span {
                font-size: 24px;
                font-weight: 500;
                letter-spacing: .1em;
                color: #545454;
                line-height: 1;
            }
        }

        .dl-price {
            display: flex;
            flex-direction: column;
            align-items: center;
            margin-bottom: 20px;

            dt {
                color: #ffffff;
                font-weight: 400;
                letter-spacing: .16em;
                line-height: 1;
                background-color: #ff8500;
                width: 558px;
                padding: 24px 0;
                text-align: center;
                display: block;
                font-size: 24px;
                margin-bottom: -36px;
                z-index: 1;
            }

            dd {
                background-color: #ffffff;
                border: 1px solid #ff8500;
                padding: 112px 0 70px;
                width: 972px;
                text-align: center;

                .txt-one {
                    display: flex;
                    padding: 0 45px 15px 25px;
                    justify-content: space-between;
                    border-bottom: 1px solid #ff8500;
                    width: 775px;
                    margin: 0 auto 45px;
                    align-items: center;

                    span {
                        line-height: 1;
                        font-weight: 400;
                        letter-spacing: .16em;

                        &.time {
                            font-size: 21px;
                            color: #517407;
                        }
                        &.price {
                            font-size: 25px;
                            small {
                                font-size: 16px;
                            }
                        }
                        &.txt-note {
                            padding: 5px 0 10px 30px;
                            border-left: 1px solid #90c800;
                            text-align: left;
                            font-size: 14px;
                            letter-spacing: .1em;
                        }
                    }
                }

                .txt-note {
                    font-size: 20px;
                    letter-spacing: .1em;
                    font-weight: 400;
                    line-height: 1.7;
                }
            }
        }

        .list-ast {
            margin: 20px auto 80px;
            display: flex;
            flex-direction: column;
            gap: 10px 0;
            line-height: 1.7;
            width: 972px;

            .item-ast {
                font-size: 14px;
                letter-spacing: .1em;
                text-indent: -1em;
                padding-left: 1em;
            }
        }

        .tbl-plan, .tbl-exam, .tbl-cert {
            max-width: 972px;
            margin: 0 auto;
            width: 100%;

            tr {
                &:nth-child(odd) {
                    background-color: #ffffff;
                }
                &:nth-child(even) {
                    background-color: #e5f1d6;
                }
            }

            th, td {
                font-weight: 400;
                vertical-align: middle;
                padding: 12px 10px;
                text-align: center;
                font-size: 18px;
                line-height: 1.33;
                letter-spacing: .1em;
            }
            th {
                background-color: #85c400;
                color: #ffffff;

                &:not(:first-child) {
                    border-left: 1px solid #ffffff;
                }
            }
            td {
                padding: 20px 30px;
                &:not(:first-child) {
                    border-left: 1px solid #979797;
                }
                &.border-l {
                    border-left: 1px solid #979797;
                }
            }
        }

        .tbl-exam, .tbl-cert {
            border-radius: 30px 30px 0 0;
            overflow: hidden;
            margin: 0 auto 30px;

            tr {
                &:not(:last-child) {
                    border-top: 1px solid #979797;
                }
                &:nth-child(2) {
                    border-top: none;
                }
                th, td {

                }
                th {
                    font-size: 24px;
                    padding: 25px 0;
                }
                td {
                    font-size: 21px;
                    padding: 25px 0;

                    &:not(:last-child) {
                        color: #517407;
                    }

                    .link-name {
                        display: flex;
                        align-items: center;
                        justify-content: center;

                        .txt {
                            color: #517407;
                            padding: 0 5px;
                            display: inline-block;
                            position: relative;

                            &::after {
                                content: "";
                                width: 100%;
                                height: 1px;
                                display: block;
                                background: linear-gradient(to right,  #7ac300 0%,#bcd600 100%);
                                position: absolute;
                                bottom: -8px;
                                left: 0;
                                transition: all .4s ease-in;
                            }
                        }

                        &:hover {
                            .txt {
                                &::after {
                                    opacity: 0;
                                }
                            }
                        }
                    }
                }
            }
        }

        .tbl-cert {
            tr {
                background-color: #ffffff !important;

                &:last-child {
                    border-top: 1px solid #979797;
                }

                td {
                    padding: 45px 50px;

                    &:first-child {
                        text-align: left;
                    }

                    small {
                        font-size: 16px;
                    }
                }
            }
        }
    }
}
/* SP #table 料金表 */
@media screen and (max-width: 640px) {
    .sec-tbl {
        padding: 60px 16px 30px;
        border-radius: 60px 60px 0 0;

        .inner {
            max-width: 100%;

            .ttl-tbl {
                gap: 10px 0;
                margin-bottom: 30px;

                span {
                    font-size: 18px;
                    letter-spacing: .05em;
                }
            }

            .dl-price {
                margin-bottom: 20px;

                dt {
                    letter-spacing: .08em;
                    width: 80%;
                    padding: 20px 0;
                    font-size: 18px;
                    margin-bottom: -36px;
                }

                dd {
                    padding: 60px 16px 30px;
                    width: 100%;

                    .txt-one {
                        flex-direction: column;
                        gap: 20px 0;
                        padding: 0 0 15px;
                        width: 100%;
                        margin: 0 auto 20px;

                        span {
                            line-height: 1;
                            font-weight: 400;
                            letter-spacing: .16em;

                            &.time {
                                font-size: 16px;
                            }
                            &.price {
                                font-size: 20px;
                                small {
                                    font-size: 14px;
                                }
                            }
                            &.txt-note {
                                padding: 15px 0 10px 0;
                                border-left: none;
                                border-top: 1px solid #90c800;
                                text-align: left;
                                font-size: 13px;
                                letter-spacing: .06em;
                            }
                        }
                    }

                    .txt-note {
                        font-size: 16px;
                        letter-spacing: .05em;
                        line-height: 1.45;
                        text-align: left;
                    }
                }
            }


            .elem-tbl-sp {
                display: flex;
                flex-direction: column;
                padding-bottom: 20px;

                .ttl-tbl {
                    color: #ffffff;
                    font-size: 18px;
                    letter-spacing: .16em;
                    line-height: 1;
                    background-color: #84c300;
                    padding: 11px 0 13px;
                    margin: 0;
                }
                .plan {
                    padding: 17px 15px 25px;
                    background-color: #ffffff;

                    &:nth-child(even) {
                        background-color: #e4f0d5;
                    }
                    &:not(:last-child) {
                        border-bottom: 1px solid #969696;
                    }

                    .ttl-plan {
                        font-size: 14px;
                        color: #517407;
                        margin-bottom: 20px;
                        font-weight: 400;
                        letter-spacing: .025em;
                        line-height: 1;
                    }

                    .tbl {
                        display: flex;
                        flex-wrap: wrap;
                        gap: 12px 1px;

                        dl {
                            display: flex;
                            width: calc((100% - (1px * (2 - 1))) / 2);
                            align-items: center;
                            gap: 10px;

                            dt, dd {
                                font-size: 12px;
                                line-height: 1;
                            }
                            dt {
                                width: 100px;
                                border: 1px solid #517407;
                                text-align: center;
                                padding: 3px 0;
                            }
                            dd {
                                flex: 1;
                                text-align: left;
                            }

                            &.price {
                                dt {
                                    background-color: #517407;
                                    color: #ffffff;
                                }
                            }
                        }
                    }
                }
            }


            .list-ast {
                margin: 0 auto 30px;
                line-height: 1.45;
                width: 100%;

                .item-ast {
                    font-size: 14px;
                    letter-spacing: .05em;
                }
            }

            .box-tbl {
                margin-bottom: 20px;
            }

            .tbl-plan, .tbl-exam, .tbl-cert {
                min-width: 670px;

                th, td {
                    padding: 12px 10px;
                    font-size: 14px;
                    letter-spacing: .05em;
                }
                td {
                    padding: 20px 20px;
                }
            }

            .tbl-exam, .tbl-cert {
                border-radius: 30px 30px 0 0;
                overflow: hidden;
                margin: 0 auto 30px;

                tr {
                    &:not(:last-child) {
                        border-top: 1px solid #979797;
                    }
                    &:nth-child(2) {
                        border-top: none;
                    }
                    th, td {
                    }
                    th {
                        font-size: 16px;
                        padding: 15px 0;
                    }
                    td {
                        font-size: 12px;
                        padding: 15px 5px;

                        &:not(:last-child) {
                            color: #517407;
                        }

                        .link-name {
                            display: flex;
                            align-items: center;
                            justify-content: center;

                            .txt {
                                color: #517407;
                                padding: 0 5px;
                                display: inline-block;
                                position: relative;
                                font-size: 12px;

                                &::after {
                                    content: "";
                                    width: 100%;
                                    height: 1px;
                                    display: block;
                                    background: linear-gradient(to right,  #7ac300 0%,#bcd600 100%);
                                    position: absolute;
                                    bottom: -8px;
                                    left: 0;
                                    transition: all .4s ease-in;
                                }
                            }

                            &:hover {
                                .txt {
                                    &::after {
                                        opacity: 0;
                                    }
                                }
                            }
                        }
                    }
                }
            }

            .tbl-exam {
                /* min-width: 450px; */
                width: 100%;
                min-width: auto;
            }

            .tbl-cert {
                min-width: auto;

                tr {
                    background-color: #ffffff !important;

                    &:last-child {
                        border-top: 1px solid #979797;
                    }

                    td {
                        padding: 15px 16px;

                        small {
                            font-size: 12px;
                        }
                    }
                }
            }
        }
    }
}





/* #about 診療について */
.sec-about {
    padding: 0 0 158px;

    .inner {
        max-width: 1100px;
        margin: 0 auto;
        width: 100%;

        .ttl-about {
            display: flex;
            flex-direction: column;
            gap: 18px;
            align-items: center;
            padding: 30px 0 33px;
            background:  url(../img/price/bg_ttl-about.svg) center center / auto 100% no-repeat;
            margin-bottom: 27px;

            span {
                line-height: 1;

                &.txt-s {
                    font-size: 24px;
                    font-weight: 500;
                }
                &.txt-l {
                    font-size: 42px;
                    color: #467600;
                }
            }
        }

        .txt-about {
            font-size: 16px;
            line-height: 2.12;
            text-align: center;
            margin-bottom: 75px;
        }

        .ttl-sub {
            display: flex;
            justify-content: center;
            flex-direction: column;
            align-items: center;
            margin-bottom: 65px;
            position: relative;

            &::before {
                content: "";
                width: 100%;
                border-bottom: 1px dashed #afd101;
                position: absolute;
                top: 50%;
            }

            span {
                font-size: 28px;
                color: #467600;
                display: inline-block;
                line-height: 1;
                background-color: #ffffff;
                padding: 0 95px;
                position: relative;
            }
        }

        .box-about {
            display: flex;
            gap: 75px;


            &.onlySP {
                display: none;
            }

            .elem-l, .elem-r {
                width: 500px;
            }

            .elem-l {
                .list {
                    .item {
                        &::after {
                            content: "";
                            display: block;
                            width: 40px;
                            height: 40px;
                            background:  url(../img/price/icon_arr-about.svg) center center / 100% auto no-repeat;
                            position: absolute;
                            right: -59px;
                        }
                    }
                }
            }


            .elem-r {
                .ttl-elem {
                    &::before, &::after {
                        background-color: #7ac100;
                    }
                    span {
                        color: #467600;
                    }
                }
                .list {
                    .item {
                        background-color: #fbfcf9;
                        border: 1px solid #81c200;

                        .txt-item {
                            color: #467600;
                        }
                    }
                }
            }

            .ttl-elem {
                position: relative;
                padding: 0 25px;
                display: flex;
                gap: 5px;
                align-items: flex-end;
                margin-bottom: 23px;
                justify-content: center;

                &::before, &::after {
                    content: '';
                    width: 24px;
                    height: 1px;
                    background-color: #b0b0b0;
                    display: block;
                    transform: rotate(74deg);
                    top: -11px;
                    position: relative;
                }
                &::after {
                    transform: rotate(-74deg);
                }

                span {
                    line-height: 1;
                    letter-spacing: .1em;
                    font-weight: 500;

                    &.txt-l {
                        font-size: 24px;
                    }
                    &.txt-s {
                        font-size: 18px;
                    }
                }
            }

            .list {
                display: flex;
                flex-direction: column;
                gap: 30px;
                align-items: center;

                .item {
                    display: flex;
                    background-color: #efefef;
                    border: 1px solid #e3e3e3;
                    border-radius: 15px;
                    height: 130px;
                    box-sizing: border-box;
                    align-items: center;
                    padding-left: 30px;
                    position: relative;

                    figure {
                        width: 107px;
                    }

                    .txt-item {
                        font-size: 18px;
                        letter-spacing: .1em;
                        line-height: 1.55;
                    }
                }
            }
        }
    }
}
/* SP #about 診療について */
@media screen and (max-width: 640px) {
    .sec-about {
        padding: 0 0 100px;

        .inner {
            width: 100%;m
            .ttl-about {
                gap: 14px;
                padding: 25px 0 15px;
                background:  url(../img/price/bg_ttl-about.svg) center center / auto 100% no-repeat;
                margin-bottom: 35px;

                span {
                    &.txt-s {
                        font-size: 18px;
                    }
                    &.txt-l {
                        font-size: 32px;
                    }
                }
            }

            .txt-about {
                font-size: 14px;
                line-height: 2.22;
                margin-bottom: 65px;
            }

            .ttl-sub {
                margin-bottom: 42px;
                span {
                    font-size: 22px;
                    padding: 0 23px;
                }
            }

            .box-about {
                &.onlyPC {
                    display: none;
                }
                &.onlySP {
                    display: flex !important;
                    gap: 38px;
                    padding: 0 24px;
                    flex-direction: column;
                }

                .list-plan {
                    display: flex;
                    flex-direction: column;
                    gap: 17px;

                    .item-plan {
                        background-color: #efefef;
                        border: 1px solid #e3e3e3;
                        border-radius: 12px;
                        box-sizing: border-box;
                        align-items: center;
                        position: relative;
                        flex-wrap: wrap;

                        &:nth-child(odd)&::after {
                            content: "";
                            display: block;
                            width: 30px;
                            height: 30px;
                            background:  url(../img/price/icon_arr-about.svg) center center / 100% auto no-repeat;
                            position: absolute;
                            transform: translateX(-50%) rotate(90deg);
                            left: 50%;
                            right: auto;
                            bottom: -15px;
                        }

                        &.plan {
                            background-color: #fbfcf9;
                            border: 1px solid #81c200;
                            .ttl-item {
                                background-color: #7ac100;
                                span {
                                    color: #ffffff;
                                }
                            }
                            .txt-item {
                                color: #467600;
                            }
                        }

                        .ttl-item {
                            width: 100%;
                            background-color: #b0b0b0;
                            text-align: center;
                            padding: 10px;
                            overflow: hidden;
                            border-radius: 10px 10px 0 0;

                            span {
                                line-height: 1;
                                letter-spacing: .1em;
                                font-weight: 500;

                                &.txt-l {
                                    font-size: 18px;
                                }
                                &.txt-s {
                                    font-size: 16px;
                                }
                            }
                        }

                        .elem-item {
                            display: flex;
                            box-sizing: border-box;
                            align-items: center;
                            padding: 0 0 0 20px;
                            height: 106px;

                            figure {
                                width: 75px;
                            }

                            .txt-item {
                                font-size: 16px;
                            }
                        }
                    }
                }
            }
        }
    }
}







































































.sec-mess {
    padding: 300px 0 90px;
    text-align: center;

    .ttl-mess {
        position: relative;
        margin-bottom: 125px;

        span {
            font-size: 54px;
            letter-spacing: .02em;
            line-height: 1.51;
            z-index: 1;
            position: relative;
        }

        &::before {
            content: 'Message';
            font-size: 163px;
            color: #f0f7e3;
            position: absolute;
            top: -130%;
            left: 50%;
            transform: translateX(-50%);
            z-index: 0;
        }
    }

    .txt-mess {
        font-size: 17px;
        line-height: 3.11;
        margin-bottom: 3em;
        letter-spacing: .1em;
    }

}

/* message SP */
@media screen and (max-width: 640px) {
    .sec-mess {
        padding: 60px 0 90px;

        .ttl-mess {
            margin-bottom: 30px;

            span {
                font-size: 28px;
                letter-spacing: .01em;
                line-height: 1.45;
            }

            &::before {
                content: 'Message';
                font-size: 62px;
                top: -99%;
            }
        }

        .txt-mess {
            font-size: 14px;
            line-height: 2;
            margin-bottom: 3em;
            letter-spacing: .05em;
        }

    }
}



/* #precious クリニックが大切にしていること */
.sec-prec {
    background-color: #fff;
    overflow: hidden;

    .inner {
        background: #fbfbf8 url(../img/home/bg_prec.png) center bottom / 100% auto no-repeat;
        padding: 100px 0 120px;
        overflow: hidden;
        margin: 0 -20%;
        border-radius: 0 0 40% 40%;

        .ttl-prec {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 30px 0;
            margin-bottom: 75px;

            span {
                font-size: 24px;
                font-weight: 500;
                letter-spacing: .1em;
                color: #545454;
                line-height: 1;

                &.txt-or {
                    color: #ff8d2c;
                }
            }
        }

        .box-prec {
            max-width: 980px;
            margin: 0 auto;
            width: 100%;

            .elem-top {
                margin-bottom: 25px;

                .list-prec {
                    display: flex;
                    gap: 0 30px;
                    justify-content: center;

                    .item-prec {
                        width: calc(100% / 2);
                        background-color: #ffffff;
                        padding: 40px 0 45px;
                        display: flex;
                        gap: 30px 0;
                        flex-direction: column;
                        align-items: center;
                        border-radius: 10px;

                        .ttl-item {
                            font-size: 20px;
                            font-weight: 500;
                            letter-spacing: .1em;
                            line-height: 1.7;
                            text-align: center;

                            span {
                                color: #8bc01f;
                            }
                        }

                        figure {
                            text-align: center;
                        }

                        .txt-prec {
                            font-size: 16px;
                            font-weight: 500;
                            line-height: 1.75;
                            color: #517407;
                        }

                    }
                }
            }

            .elem-btm {
                margin-bottom: 115px;

                .list-prec {
                    display: flex;
                    gap: 0 30px;
                    justify-content: center;

                    .item-prec {
                        width: calc(100% / 3);
                        background-color: #ffffff;
                        padding: 40px 0 45px;
                        display: flex;
                        gap: 30px 0;
                        flex-direction: column;
                        align-items: center;
                        border-radius: 10px;

                        .ttl-item {
                            font-size: 20px;
                            font-weight: 500;
                            letter-spacing: .1em;
                            line-height: 1.7;
                            text-align: center;

                            span {
                                color: #8bc01f;
                            }
                        }

                        .txt-prec {
                            font-size: 16px;
                            font-weight: 500;
                            line-height: 1.75;
                            color: #517407;
                        }

                    }
                }
            }
        }
    }

}

/* #precious SP */
@media screen and (max-width: 640px) {
    .sec-prec {
        padding: 0 0 60px;

        .inner {
            background: #fbfbf8 url(../img/home/bg_prec.png) center bottom / 100% auto no-repeat;
            padding: 40px 16px 90px;
            overflow: hidden;
            margin: 0 auto;
            border-radius: 0 0 120px 120px;

            .ttl-prec {
                gap: 20px 0;
                margin-bottom: 35px;

                img {
                    width: 51px;
                }

                span {
                    font-size: 18px;
                    letter-spacing: .05em;
                }
            }

            .box-prec {
                max-width: 100%;

                .elem-top {
                    margin-bottom: 25px;

                    .list-prec {
                        gap: 20px 0;
                        flex-wrap: wrap;

                        .item-prec {
                            width: 100%;
                            padding: 30px 16px;
                            gap: 20px 0;

                            figure {
                                img {
                                    width: 90px;
                                }
                            }

                            .ttl-item {
                                font-size: 18px;
                                letter-spacing: .05em;
                                line-height: 1.45;
                            }
                            .txt-prec {
                                font-size: 14px;
                                line-height: 1.45;
                            }

                        }
                    }
                }

                .elem-btm {
                    margin-bottom: 40px;

                    .list-prec {
                        flex-wrap: wrap;
                        gap: 20px 0;

                        .item-prec {
                            width: 100%;
                            background-color: #ffffff;
                            padding: 30px 16px;
                            gap: 10px 0;

                            .ttl-item {
                                font-size: 18px;
                                letter-spacing: .05em;
                                line-height: 1.45;
                            }

                            .txt-prec {
                                font-size: 14px;
                                line-height: 1.45;
                            }

                        }
                    }
                }
            }
        }
    }
}







/* #voice お客様の声 */
.sec-voice {
    background-color: #fff;
    padding: 0 0 155px;

    .inner {
        max-width: 970px;
        margin: 0 auto;
        width: 100%;

        .ttl-voice {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 30px 0;
            margin-bottom: 40px;

            span {
                font-size: 24px;
                font-weight: 500;
                letter-spacing: .1em;
                color: #545454;
                line-height: 1;
            }
        }

        a {
            display: block;

            img {
                width: 100%;
            }
        }

    }
}

@media screen and (max-width: 640px) {
    .sec-voice {
        padding: 0 16px 60px;

        .inner {
            max-width: 100%;

            .ttl-voice {
                margin-bottom: 30px;

                span {
                    font-size: 18px;
                    letter-spacing: .05em;
                }
            }

            a {
                display: block;

                img {
                    width: 100%;
                }
            }

        }
    }
}



/* #column コラム */
.sec-column {
    background-color: #fff;
    padding: 155px 0 145px;

    .inner {
        max-width: 980px;
        margin: 0 auto;
        width: 100%;

        .ttl-column {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 30px 0;
            margin-bottom: 75px;

            span {
                font-size: 24px;
                font-weight: 500;
                letter-spacing: .1em;
                color: #545454;
                line-height: 1;
            }
        }


        .list-column {
            display: flex;
            flex-wrap: wrap;
            margin-bottom: 80px;

            .item-column {
                border-bottom: 1px solid #545454;

                a {
                    text-decoration: none;
                }

                &:nth-child(4),
                &:nth-child(5) {
                    width: 100%;

                    a {
                        display: block;
                        padding: 20px 0;

                        figure {
                            display: none;
                        }

                        .elem-data {
                            width: 100%;
                            align-items: center;
                            display: flex;
                            gap: 0 80px;
                            line-height: 1;

                            .ttl-post {
                                order: 2;
                                font-size: 13px;
                                letter-spacing: .1em;
                                font-weight: 500;
                            }

                            .txt-cat-time {
                                order: 1;

                                time {
                                    color: #517407;
                                    font-size: 13px;
                                    line-height: 1;
                                }
                                .list-tag {
                                    display: none;
                                }
                            }
                        }
                    }
                }

                &:nth-child(4) {
                    border-top: 1px solid #545454;
                    margin-top: 35px;
                }

                &:nth-child(1),
                &:nth-child(2),
                &:nth-child(3) {
                    background-color: #fbfbf8;
                    border: none;
                    width: calc(100% / 3 - 20px);
                    overflow: hidden;
                    border-radius: 10px;

                    a {
                        padding: 0;

                        &:hover {
                            opacity: .6;
                        }

                        figure {
                            height: 190px;
                            overflow: hidden;
                            position: relative;

                            img {
                                height: 100%;
                                left: 0;
                                object-fit: cover;
                                position: absolute;
                                top: 0;
                                width: 100%;
                            }
                        }

                        .elem-data {
                            padding: 20px 35px 30px;
                            flex-direction: column;

                            .ttl-post {
                                font-size: 16px;
                                line-height: 1.43;
                                margin-bottom: 1em;
                                min-height: 3.5em;
                                width: 100%;
                                color: #545454;
                                font-weight: 500;
                            }

                            .txt-cat-time {
                                align-items: center;
                                display: flex;
                                justify-content: space-between;
                                width: 100%;

                                time, .list-tag {
                                    color: #545454;
                                    font-size: 10px;
                                    line-height: 1;
                                }

                                .list-tag {
                                    display: flex;

                                    li {
                                        font-size: 10px;
                                        letter-spacing: .1em;
                                        line-height: 1;
                                        position: relative;

                                        &:not(:last-child) {
                                            padding-right: 6px;
                                            &::after {
                                                content: '/';
                                                display: block;
                                                position: absolute;
                                                right: 0;
                                                top: 0;
                                            }
                                        }


                                        &:nth-child(n + 3) {
                                            font-size: 0;

                                            &:before {
                                                content: "⋯";
                                                display: block;
                                                font-size: 10px;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                &:nth-child(2) {
                    margin: 0 30px
                }
            }
        }


        .box-btn {
            display: flex;
            justify-content: flex-end;

            a {
                display: flex;
                gap: 0 11px;
                position: relative;

                &::after {
                    content: "";
                    display: block;
                    width: 325px;
                    height: 1px;
                    background: linear-gradient(to right,  #7ac300 0%,#bcd600 100%);
                    position: absolute;
                    right: 30px;
                    bottom: 0;
                }

                span {
                    color: #545454;
                    font-size: 14px;
                    font-weight: 600;
                    line-height: 1;
                    letter-spacing: .1em;
                    padding-bottom: 6px;
                }

                img {
                    margin-bottom: 5px;
                }
            }
        }
    }
}

@media screen and (max-width: 640px) {
    .sec-column {
        padding: 40px 16px 60px;

        .inner {
            max-width: 100%;

            .ttl-column {
                gap: 20px 0;
                margin-bottom: 35px;

                img {
                    width: 51px;
                }

                span {
                    font-size: 18px;
                    letter-spacing: .05em;
                }
            }

            .list-column {
                margin-bottom: 80px;

                .item-column {
                    border-bottom: 1px solid #545454;

                    a {
                        text-decoration: none;
                    }

                    &:nth-child(4),
                    &:nth-child(5) {
                        width: 100%;

                        a {
                            padding: 20px 0;

                            .elem-data {
                                gap: 0 20px;

                                .ttl-post {
                                    font-size: 12px;
                                    letter-spacing: .05em;
                                    line-height: 1.45;
                                    overflow: hidden;
                                    text-overflow: ellipsis;
                                    white-space: nowrap;
                                }

                                .txt-cat-time {
                                    time {
                                        font-size: 12px;
                                    }
                                }
                            }
                        }
                    }

                    &:nth-child(4) {
                        border-top: 1px solid #545454;
                        margin-top: 30px;
                    }

                    &:nth-child(1),
                    &:nth-child(2),
                    &:nth-child(3) {
                        width: 100%;

                        a {
                            figure {
                                height: 160px;
                            }

                            .elem-data {
                                padding: 20px 16px 30px;

                                .ttl-post {
                                    font-size: 14px;
                                    line-height: 1.45;
                                    margin-bottom: 20px;
                                    min-height: auto;
                                }

                                .txt-cat-time {
                                    align-items: center;
                                    display: flex;
                                    justify-content: space-between;
                                    width: 100%;

                                    time, .list-tag {
                                        color: #545454;
                                        font-size: 10px;
                                        line-height: 1;
                                    }

                                    .list-tag {
                                        display: flex;

                                        li {
                                            font-size: 10px;
                                            letter-spacing: .1em;
                                            line-height: 1;
                                            position: relative;

                                            &:not(:last-child) {
                                                padding-right: 6px;
                                                &::after {
                                                    content: '/';
                                                    display: block;
                                                    position: absolute;
                                                    right: 0;
                                                    top: 0;
                                                }
                                            }


                                            &:nth-child(n + 3) {
                                                font-size: 0;

                                                &:before {
                                                    content: "⋯";
                                                    display: block;
                                                    font-size: 10px;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    &:nth-child(2) {
                        margin: 30px 0
                    }
                }
            }


            .box-btn {
                a {
                    gap: 0 10px;

                    &::after {
                        width: calc(100% - 20px);
                    }

                    span {
                        font-size: 14px;
                        letter-spacing: .05em;
                    }

                    img {
                        margin-bottom: 5px;
                    }
                }
            }
        }
    }
}







/* #news 重要なお知らせ */
.sec-news {
    background-color: #fff;
    padding: 0 0 180px;

    .inner {
        max-width: 980px;
        margin: 0 auto;
        width: 100%;

        .ttl-news {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 30px 0;
            margin-bottom: 35px;

            span {
                font-size: 24px;
                font-weight: 500;
                letter-spacing: .1em;
                color: #545454;
                line-height: 1;
            }
        }

        .list-news {
            display: flex;
            flex-direction: column;
            border-top: 1px solid #545454;

            .item-news {
                border-bottom: 1px solid #545454;

                a {
                    text-decoration: none;
                    display: block;
                    padding: 35px 0;

                    figure {
                        display: none;
                    }

                    .elem-data {
                        width: 100%;
                        align-items: center;
                        display: flex;
                        gap: 0 80px;
                        line-height: 1;

                        .ttl-post {
                            order: 2;
                            font-size: 13px;
                            letter-spacing: .1em;
                            font-weight: 500;
                            color: #545454;
                        }

                        .txt-cat-time {
                            order: 1;

                            time {
                                color: #517407;
                                font-size: 13px;
                                line-height: 1;
                            }
                            .list-tag {
                                display: none;
                            }
                        }
                    }
                }
            }
        }
    }
}

@media screen and (max-width: 640px) {
    .sec-news {
        padding: 40px 16px 60px;

        .inner {
            max-width: 100%;

            .ttl-news {
                margin-bottom: 35px;

                span {
                    font-size: 18px;
                    letter-spacing: .05em;
                }
            }

            .list-news {
                .item-news {
                    a {
                        padding: 20px 0;

                        .elem-data {
                            gap: 0 20px;

                            .ttl-post {
                                font-size: 12px;
                                letter-spacing: .05em;
                                line-height: 1.45;
                                overflow: hidden;
                                text-overflow: ellipsis;
                                white-space: nowrap;
                            }

                            .txt-cat-time {
                                time {
                                    font-size: 12px;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
