@charset "UTF-8";

body,
html {
    margin: 0;
    padding: 0;
    height: 100vh;
}

@media screen and (max-width: 1015px) {

    .brandPolicyWrapper {
        display: none;
    }

    .spBlock {
        width: 100%;
        margin: 0px auto 50px auto;
    }

    .policy-contents-sp {
        width: 100%;
    }

    .policy-content-sp {
        width: 100%;
        /* margin-bottom: 15%; */
        margin-bottom: 3vw;
    }

    .pplicy_img {
        width: 100%;
    }

    .pplicy_img img {
        width: 100%;
    }

    .text {
        width: 95%;
        margin: 0 auto;
    }

    .policy_bar1,
    .policy_bar2 {
        display: none;
    }

    .scrollTitle {
        font-size: clamp(20px, 2vw, 24px) !important;
        color: #231815;
    }

    .scrollText {
        /* font-size: clamp(12px, 3vw, 16px) !important; */
        font-size: clamp(13px, 2.2vw, 16px) !important;
        color: #231815;
        /* margin-top: 20px; */
        line-height: 2;
        margin-bottom: 50px;
    }
    .scrollTextNo50 {
        /* font-size: clamp(12px, 3vw, 16px) !important; */
        font-size: clamp(13px, 2.2vw, 16px) !important;
        color: #231815;
        /* margin-top: 20px; */
        line-height: 2;
        margin-bottom: 20px;
    }
    /*山梨で暮らす*/
    .scrollTitle2 {
        font-size: clamp(28px, 7vw, 35px) !important;
        color: #231815;
        letter-spacing: 1.5px;
        margin: 20px 0px;
    }
    .scrollSmall {
        font-size: clamp(14px, 3.1vw, 16px) !important;
    }
    .scrollSubTitle {
        font-size: clamp(18px, 4.5vw, 28px) !important;
        color: #231815;
        margin-bottom: 20px;
    }
    .scrollText2 {
        /* font-size: clamp(13px, 2.4vw, 16px) !important; */
        font-size: clamp(13px, 2.2vw, 16px) !important;
        color: #231815;
        line-height: 2.5;
        width: 90%;
    }
    .wideLine {
        /* width: 90%; */
        width: 100%;
        border-bottom: solid 1px #231815;
        padding-bottom: 5px;
    }
    .scrollTitle3 {
        /* font-size: clamp(16px, 3.4vw, 20px) !important; */
        font-size: clamp(18px, 3.5vw, 22px) !important;
        margin-top: 20px;
        color: #231815;
        letter-spacing: 1.5px;
        margin-bottom: 20px;
    }
}

@media screen and (min-width: 1016px) {
    .spBlock {
        display: none;
    }

    .brandPolicyWrapper {
        position: relative;
        padding: 0px;
    }

    .policy-contents {
        position: sticky;
        top: 0;
        width: 100%;
        height: 100vh;
        overflow: hidden;
        /* margin-top: -5%; */
        margin-top: 0px;
    }

    .policy-content {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        display: flex;
        flex-direction: row;
    }

    .pplicy_img {
        width: 60%;
        display: flex;
        align-items: flex-start;
        /* overflow: hidden;
        margin-bottom: 5vw; */
    }

    .pplicy_img img {
        width: 100%;
        height: auto;
        object-fit: cover;
        margin-top: 15%;
        aspect-ratio: 3/2.1;
    }

    .policy_bar1 {
        position: absolute;
        /* bottom: 10%; */
        bottom: -2vw;
        left: -1.5%;
        width: 100%;
    }

    .policy_bar1 .policy-bar {
        position: absolute;
        bottom: 60px;
        right: 2.5%;
        width: 28%;
        height: 2px;
        background: #231815;
        z-index: 1000;
    }

    .policy_bar1 .policy-bar-progress {
        width: 0;
        height: 100%;
        transition: width 0.2s;
    }

    .policy_bar1 .policy-bar-buttons {
        position: absolute;
        margin-left: 70%;
        bottom: 30px;
        right: 6.5%;
        transform: translateX(15%);
        display: flex;
        width: 28%;
        z-index: 2000;
    }

    .policy_bar1 .policy-bar-buttons button {
        flex: 1;
        text-align: center;
        background: none;
        border: none;
        font-size: 13px;
        cursor: pointer;
        color: #231815 !important;
        position: relative;
        background: none !important;
        margin-bottom: 35px;
    }

    .policy_bar1 .policy-bar-buttons button::after {
        content: '';
        position: absolute;
        bottom: -5px;
        left: 0;
        width: 0;
        height: 2px;
        background: #231815;
        transition: width 0.8s ease;
    }

    .policy_bar1 .policy-bar-buttons button.-current::after {
        width: 100%;
    }

    .policy_bar1 .policy-bar {
        position: absolute;
        bottom: 60px;
        right: 2.3%;
        width: 28%;
        height: 1px;
        background: #231815;
        z-index: 1000;
    }

    .policy_bar1 .policy-bar::before {
        content: "";
        position: absolute;
        top: -5px;
        left: 0;
        width: 100%;
        height: 10px;
        pointer-events: none;
    }

    /*3分割（4本線）*/
    .policy_bar1.-nav3 .policy-bar::before {
        background-image: repeating-linear-gradient(to right,
                #231815 0,
                #231815 1px,
                transparent 1px,
                transparent 33.333%);
    }

    .policy_bar1.-nav3 .policy-bar::after {
        content: "";
        position: absolute;
        top: -5px;
        right: 0;
        width: 1px;
        height: 10px;
        background: #231815;
    }

    /*4分割（5本線）*/
    .policy_bar1.-nav4 .policy-bar::before {
        background-image: repeating-linear-gradient(to right,
                #231815 0,
                #231815 1px,
                transparent 1px,
                transparent 25%);
    }

    .policy_bar1.-nav4 .policy-bar::after {
        content: "";
        position: absolute;
        top: -5px;
        right: 0;
        width: 1px;
        height: 10px;
        background: #231815;
    }

    /*5分割（6本線）*/
    .policy_bar1.-nav5 .policy-bar::before {
        background-image: repeating-linear-gradient(to right,
                #231815 0,
                #231815 1px,
                transparent 1px,
                transparent 20%);
    }

    .policy_bar1.-nav5 .policy-bar::after {
        content: "";
        position: absolute;
        top: -5px;
        right: 0;
        width: 1px;
        height: 10px;
        background: #231815;
    }


    .display {
        position: relative;
        /* デフォルトで良い */
        opacity: 1;
        /* 表示 */
        transition: none;
        /* アニメなし */
    }

    .fade-item {
        opacity: 1 !important;
        transform: translateY(40px);
    }

    .policy-content2 {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        display: flex;
        flex-direction: row;
    }

    .marginTop1 {
        margin-top: 80px;
    }

    .pplicy_img2 {
        width: 60%;
        display: flex;
        align-items: flex-start;
        /* overflow: hidden; */
        /* margin-bottom: 5vw; */
    }

    .pplicy_img2 img {
        width: 100%;
        height: auto;
        object-fit: cover;
        /* margin-top: 10%; */
        margin-top: 15%;
        aspect-ratio: 3/2.1;
    }

    .policy_bar2 {
        position: absolute;
        bottom: -2vw;
        /* left: -1.5%; */
        left: 1%;
        width: 100%;
    }

    .policy_bar2 .policy-bar-progress {
        width: 0;
        height: 100%;
        transition: width 0.2s;
    }

    .policy_bar2 .policy-bar-buttons {
        position: absolute;
        bottom: 30px;
        transform: translateX(15%);
        display: flex;
        width: 28%;
        z-index: 2000;
    }

    .policy_bar2 .policy-bar-buttons button {
        flex: 1;
        text-align: center;
        background: none;
        border: none;
        font-size: 13px;
        cursor: pointer;
        color: #231815 !important;
        position: relative;
        background: none !important;
        margin-bottom: 35px;
    }

    .policy_bar2 .policy-bar-buttons button::after {
        content: '';
        position: absolute;
        bottom: -5px;
        left: -3px;
        width: 0;
        height: 2px;
        background: #231815;
        transition: width 0.8s ease;
    }

    .policy_bar2 .policy-bar-buttons button.-current::after {
        width: 100%;
    }


    /*縦線*/
    /*共通*/
    .policy_bar2 .policy-bar {
        position: absolute;
        bottom: 60px;
        /* left: 4%; */
        left: 3.9%;
        width: 28%;
        height: 1px;
        background: #231815;
        z-index: 1000;
    }

    .policy_bar2 .policy-bar::before {
        content: "";
        position: absolute;
        top: -5px;
        left: 0;
        width: 100%;
        height: 10px;
        pointer-events: none;
    }

    /*3分割（4本線）*/
    .policy_bar2.-nav3 .policy-bar::before {
        background-image: repeating-linear-gradient(to right,
                #231815 0,
                #231815 1px,
                transparent 1px,
                transparent 33.333%);
    }

    .policy_bar2.-nav3 .policy-bar::after {
        content: "";
        position: absolute;
        top: -5px;
        right: 0;
        width: 1px;
        height: 10px;
        background: #231815;
    }

    /*4分割（5本線）*/
    .policy_bar2.-nav4 .policy-bar::before {
        background-image: repeating-linear-gradient(to right,
                #231815 0,
                #231815 1px,
                transparent 1px,
                transparent 25%);
    }

    .policy_bar2.-nav4 .policy-bar::after {
        content: "";
        position: absolute;
        top: -5px;
        right: 0;
        width: 1px;
        height: 10px;
        background: #231815;
    }

    /*5分割（6本線）*/
    .policy_bar2.-nav5 .policy-bar::before {
        background-image: repeating-linear-gradient(to right,
                #231815 0,
                #231815 1px,
                transparent 1px,
                transparent 20%);
    }

    .policy_bar2.-nav5 .policy-bar::after {
        content: "";
        position: absolute;
        top: -5px;
        right: 0;
        width: 1px;
        height: 10px;
        background: #231815;
    }


    .scrollTitle {
        font-size: clamp(22px, 2.2vw, 26px) !important;
        color: #231815;
    }

    .scrollText {
        /* font-size: clamp(14px, 1.3vw, 16px) !important; */
        font-size: clamp(12px, 1.1vw, 16px) !important;
        color: #231815;
        margin-top: 20px;
        line-height: 2.3;
        width: 90%;
    }
    .scrollTextNo50 {
        font-size: clamp(14px, 1.3vw, 16px) !important;
        color: #231815;
        margin-top: 20px;
        line-height: 2.3;
        width: 90%;
    }
    /*山梨で暮らす*/
    .scrollTitle2 {
        font-size: clamp(32px, 3.8vw, 48px) !important;
        color: #231815;
        letter-spacing: 1.5px;
        margin-bottom: 20px;
    }
    .scrollSmall {
        font-size: clamp(16px, 1.6vw, 18px) !important;
    }
    .scrollSubTitle {
        /* font-size: clamp(18px, 1.8vw, 22px) !important; */
        font-size: clamp(22px, 2.2vw, 25px) !important;
        color: #231815;
        margin-bottom: 20px;
    }
    .scrollText2 {
        font-size: clamp(14px, 1.3vw, 16px) !important;
        color: #231815;
        line-height: 2.5;
        width: 90%;
    }
    .wideLine {
        width: 90%;
        border-bottom: solid 1px #231815;
        padding-bottom: 5px;
    }
    .scrollTitle3 {
        font-size: clamp(20px, 2.1vw, 22px) !important;
        margin-top: 70px;
        color: #231815;
        letter-spacing: 1.5px;
        margin-bottom: 20px;
    }
    .scrollTitleTop {
        /* font-size: clamp(18px, 1.8vw, 22px) !important; */
        font-size: clamp(25px, 2.5vw, 28px) !important;
        color: #231815;
    }
}
@media (min-width: 1016px) and (max-width: 1300px) {
    .policy-content .text {
        width: 40%;
        height: 100vh;
        padding: 120px 0px 0px 2.5% !important;
        display: flex;
        flex-direction: column;
        color: #666;
        opacity: 0;
        transform: translateY(40px);
        position: relative;
        font-size: clamp(22px, 2vw, 40px) !important;
    }
    .policy-content2 .text {
        width: 40%;
        height: 100vh;
        padding: 120px 0px 0px 2.5% !important;
        display: flex;
        flex-direction: column;
        color: #666;
        opacity: 0;
        transform: translateY(100px);
        position: relative;
        font-size: clamp(22px, 2vw, 40px) !important;
    }
    .policy-content2 .text.noPadding {
        padding-top: 40px !important;
    }
    .scrollTitle3.titleNoPadding {
        margin-top: 45px !important;
    }
    .scrollText.textNoPadding {
        line-height: 2.2 !important;
    }
}
@media screen and (min-width: 1301px) {
    .policy-content .text {
        width: 40%;
        height: 100vh;
        padding: 7vw 0px 0px 2.5% !important;
        display: flex;
        flex-direction: column;
        color: #666;
        opacity: 0;
        transform: translateY(40px);
        position: relative;
        font-size: clamp(22px, 2vw, 40px) !important;
    }
    .policy-content2 .text {
        width: 37.5%;
        height: 100vh;
        padding: 7vw 0px 0px 5% !important;
        display: flex;
        flex-direction: column;
        color: #666;
        opacity: 0;
        transform: translateY(40px);
        position: relative;
        font-size: clamp(22px, 2vw, 40px) !important;
    }
    .scrollText.textNoPadding {
        line-height: 1.8 !important;
    }
}

.policy_bar.-nav3, .policy_bar2.-nav3 {
    width: 60% !important;
    margin-left: 2% !important;
}
.policy_bar.-nav4, .policy_bar2.-nav4 {
    width: 75% !important;
    margin-left: 1.5% !important;
}