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

/* common */
body {
    background-color: #fbfbf8;
    color: #2e4104;
}

.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 10px;
        align-items: center;

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

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

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

@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;
            }
        }
    }
}




/* home section */
.sec-mv#mv {
    display: block;
    width: 100%;
    position: relative;
    padding: 0 0 110px;

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

        .logo {
            width: 307px;
        }
    }

    .img-mv {
        width: 77.37%;
        margin-right: -3%;
        margin-left: auto;
        display: block;
        border-radius: 20px;
    }

    .box-txt {
        position: absolute;
        top: 34%;
        left: 0;
        padding: 0 0 0 97px;

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

            span {
                display: block;

                &.en {
                    font-size: 18px;
                    letter-spacing: .1em;
                    line-height: 1;
                }
                &.ja {
                    font-size: 100px;
                    letter-spacing: .05em;
                    line-height: 1.25;
                    font-weight: 500;
                }
            }
        }

        .txt-mv {
            font-size: 19px;
            letter-spacing: .15em;
            line-height: 1.89;
        }
    }

    .box-scroll {
        display: flex;
        flex-direction: column;
        gap: 10px 0;
        align-items: flex-start;
        padding-left: 37px;
        pointer-events: none;

        .txt-scroll {
            font-size: 12px;
            font-weight: 400;
            writing-mode: vertical-rl;
            line-height: 1;
            letter-spacing: .04em;
        }

        img {
            width: auto;
        }
    }
}


/* MV SP */
@media screen and (max-width: 640px) {
    .sec-mv#mv {
        background-color: #f4f4f1;
        padding: 0 0 25px;

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

            .logo {
                width: 150px;
            }
        }

        .img-mv {
            border-radius: 0;
            width: 100%;
            margin-right: auto;
            margin-left: auto;
        }

        .box-txt {
            /* top: 20%; */
            top: 0;
            padding: 0 0 0 16px;
            margin-top: -23px;
            position: relative;

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

                span {
                    display: block;

                    &.en {
                        font-size: 12px;
                        letter-spacing: .05em;
                    }
                    &.ja {
                        font-size: 40px;
                        letter-spacing: .02em;
                    }
                }
            }

            .txt-mv {
                font-size: 14px;
                letter-spacing: .07em;
                line-height: 1.45;
            }
        }

        .box-scroll {
            gap: 5px 0;
            padding-left: 16px;
            padding-top: 10px;
            position: absolute;
            right: 10px;
            bottom: 24px;

            .txt-scroll {
                font-size: 12px;
                font-weight: 400;
                writing-mode: vertical-rl;
                line-height: 1;
                letter-spacing: .04em;
            }

            img {
                width: 5px;
            }
        }
    }
}



.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: 100px 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 160px;
        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: 32px 30px;
                    justify-content: center;
                    flex-wrap: wrap;

                    .item-prec {
                        width: calc((100% - (30px * (2 - 1))) / 2);
                        background-color: #ffffff;
                        padding: 40px 40px 45px;
                        display: flex;
                        gap: 30px 0;
                        flex-direction: column;
                        box-sizing: border-box;
                        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: 100%;
                        background-color: #ffffff;
                        padding: 94px 80px 94px;
                        display: flex;
                        gap: 70px;
                        align-items: center;
                        border-radius: 10px;

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

                            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: 30px 0;
                            flex-direction: column;

                            figure {
                                img {
                                    width: 120px;
                                }
                            }

                            .ttl-item {
                                font-size: 17px;
                                letter-spacing: .05em;
                                line-height: 1.45;
                                margin-bottom: 20px;
                            }

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

                        }
                    }
                }
            }
        }
    }
}




/* #case 症例・事例 */
.sec-case {
    background-color: #fff;
    padding: 155px 0 75px;

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

        .ttl-case {
            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-case {
            display: flex;
            gap: 85px 30px;
            flex-wrap: wrap;
            margin-bottom: 80px;

            .item-case {
                overflow: hidden;
                border-radius: 130px 130px 10px 10px;
                background-color: #f5f9ec;
                box-sizing: border-box;
                width: calc(100% / 3 - 20px);

                a {
                    display: block;
                    text-decoration: none;

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

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

                    .elem-data {
                        padding: 23px 35px 40px;

                        .ttl-post {
                            font-size: 16px;
                            letter-spacing: .1em;
                            line-height: 1.62;
                            margin-bottom: 10px;
                            min-height: 3.5em;
                            font-weight: 500;
                        }

                        .cat-all {
                            display: flex;
                            gap: 4px 5px;
                            flex-wrap: wrap;
                            margin-bottom: 12px;

                            span {
                                font-size: 10px;
                                font-weight: 500;
                                line-height: 1;
                                letter-spacing: .1em;
                                padding: 4px 5px;
                                background-color: #8bc01f;
                                color: #ffffff;
                                border-radius: 3px;
                            }
                        }

                        .txt-post {
                            font-size: 14px;
                            font-weight: 500;
                            letter-spacing: .1em;
                            line-height: 1.85;
                            color: #545454;
                        }
                    }
                }
            }
        }

        .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-case {
        padding: 40px 16px 60px;

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

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

                img {
                    width: 51px;
                }

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

            .list-case {
                gap: 30px 0;
                margin-bottom: 40px;

                .item-case {
                    border-radius: 150px 150px 6px 6px;
                    width: 100%;

                    a {
                        figure {
                            height: 200px;
                        }

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

                            .ttl-post {
                                font-size: 12px;
                                letter-spacing: .05em;
                                line-height: 1.45;
                                margin-bottom: 10px;
                                min-height: auto;
                            }

                            .cat-all {
                                margin-bottom: 10px;
                            }

                            .txt-post {
                                font-size: 10px;
                                letter-spacing: .05em;
                                line-height: 1.45;
                            }
                        }
                    }
                }
            }

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

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

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



/* #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 205px;

    .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 160px;

        .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: #f7f9f2;
    padding: 80px 0 400px;
    border-radius: 50px 50px 0 0;
    margin-top: -80px;

    .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 200px;

        .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;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}



.sec-info {
    background-color: transparent;
    margin-top: -200px;
}
@media screen and (max-width: 640px) {
    .sec-info {
        background-color: transparent;
        margin-top: -100px;
    }
}
