* {

    font-family: -apple-system, YuGothic, "Yu Gothic Medium", "Yu Gothic", BlinkMacSystemFont, Roboto, "Segoe UI", "Helvetica Neue", HelveticaNeue, Verdana, Meiryo, sans-serif;
    /* font-family: "Roboto Condensed", sans-serif; */

    text-decoration: none;
    list-style: none;
    padding: 0;
    margin: 0;
    box-sizing: border-box;
    --main_body_color: rgb(30, 33, 30);

    /* デバックコード */
    /* border: 1px solid red; */
}

/* 個別指定フォント用 */
.shippori-fonts {
    font-family: "Shippori Mincho", serif;
    font-weight: 300;
    font-style: italic;
}

.zen-antique-soft-regular {
    font-family: "Zen Antique Soft", serif;
    /* font-weight: 200; */
    font-style: normal;
    line-height: 1.6;
}

/* ******************************* */
/* メインページ領域 */
/* ******************************* */
video {
    display: block;
    margin: 0;
    padding: 0;
}

.bg_video_image {
    /* top: 0;
    left: 0; */
    width: 100vw;
    height: 100vh;
    /* width: auto; */
    /* height: auto; */
    z-index: -1;
    object-fit: cover;
    animation: fadeIn 5s forwards;
}

.main_base_contaier {
    position: relative;
    /* background-image: url(/image/main_image_pc02.jpg); */
    /* background-repeat: no-repeat; */
    /* background-size: cover; */
    /* height: 100vh; */
    /* opacity: 0; */
    /* animation: fadeIn 5s forwards; */
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.main_message_contaier {
    position: absolute;
    top: 30vh;
    left: 12%;
    width: auto;
}

.main_message_contaier h1 {
    color: white;
    font-weight: 500;
    /* font-size: min(3vw, 4rem); */
    font-size: max(2.2vw, 3rem);
}

.main_message_contaier h3 {
    color: white;
    font-weight: 100;
    font-size: min(1.3vw, 2rem);
    width: 80%;
    border: 1px, solid, rgba(255, 255, 255, 0.753);
    text-align: center;
}

.main_message_contaier p {
    /* font-size: min(1.3vw, 2rem); */
    font-size: max(1.2vw, 1.8rem);
    text-align: center;
    color: #fff;
    position: relative;
    font-weight: 200;
    font-style: normal;
    background-image: linear-gradient(70deg,
            rgba(243, 242, 242, 0.3) 45%,
            #fff 50%,
            rgba(235, 232, 232, 0.3) 55%);
    background-size: 500% 100%;
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    animation: shine 5s infinite;
    width: 80%;
}

@keyframes shine {
    0% {
        background-position: 100% 80%;
    }

    100% {
        background-position: 0% 50%;
    }
}

/* ******************************* */
/* ニュース領域 */
/* ******************************* */
.main_news_contaier {
    position: absolute;
    right: 0;
    /* transform:translateY(100%) ; */
    bottom: 0;
    width: auto;
}

.main_news_block_orange {
    background-color: rgb(226, 145, 6);
    color: white;
    /*下部BOXと同一サイズ指定*/
    width: 55vw;
    height: min(3rem, 100px);
    padding: 0 5rem 0 5rem;
    display: flex;
    justify-content: start;
    text-align: center;
    align-items: center;

    p {
        font-size: 1rem;
        margin: 0 5px 5px 0;
    }
}

/* ******************************* */
/* ポリシー記述領域 */
/* ******************************* */
.main_policy_contaier {
    position: absolute;
    left: min(5vw, 200px);
    top: 70vh;
    width: auto;
}

.main_policy_contaier p {
    color: white;
    font-size: min(1rem, 1vw);
    line-height: min(2rem, 3vh);
}

.main_policy_contaier h3 {
    color: white;
    font-size: min(1.5rem, 1.5vw);
}

.main_policy_contaier h4 {
    color: white;
    padding-top: min(1vw, 1rem);
    font-size: min(1.5rem, 1.5vw);
    font-weight: 100;
    line-height: min(3rem, 4vh);
}

/* ******************************* */
/* メインコピー領域 */
/* ******************************* */
.main_copymessage_contaier {
    display: flex;
    justify-content: right;
    width: 100%;
    position: relative;
}

.left_copy_box {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 7vw;

    h1 {
        /* font-weight: 400; */
        font-size: max(1.5rem, 1.5vw);
    }

    p {
        color: #555454;
        margin-bottom: 1rem;
    }
}

.right_copy_box {
    position: relative;
    /* 注意 */
    z-index: -1;
    display: flex;
    align-items: center;
    background-color: rgb(237, 241, 248);
    /* 上部BOXと同一サイズ */
    width: 55vw;
    min-height: 62vh;
    padding: 5vw 10vw 5vw 10vw;

    p {
        font-size: min(1rem, 1vw);
        text-indent: 1rem;
        text-align: justify;
        /* text-justify: inter-ideograph; */
        text-justify: auto;
        line-height: 1.8;
    }
}

/* モバイル用のボタン配置領域 */
/* モバイルメニューのZーindex対象用 */
.mobile_btn_box {
    display: none;
}

/* ******************************* */
/* メインコンテンツ領域 */
/* ニュース・インフォメーション領域 */
/* ******************************* */
.sub_body {
    /* background-color: rgb(25, 34, 53); */
    background-color: var(--main_body_color);
    height: auto;
    display: flex;
    justify-content: center;
    padding: min(1vw, 5vw);
}

.sub_body h2 {
    font-size: max(1.2vw, 1.8rem);
    margin-bottom: min(0.5rem, 0.5vw);
}

.sub_body p {
    font-size: max(0.8vw, 1rem);
}

.sub_body_grid_contaier {
    color: white;
    display: grid;
    grid-template:
        "box1 box2" auto
        "box3 box4" auto /
        40vw 40vw;
}

.sub_box1 {
    grid-area: box1;
    padding: min(2rem, 2vw);

    p {
        width: min(30vw, 15rem);
    }
}

.sub_box2 {
    grid-area: box2;
    padding: min(2rem, 2vw);

    p {
        width: min(30vw, 15rem);
    }
}

.sub_box3 {
    grid-area: box3;
}

.sub_box4 {
    grid-area: box4;
}

.news_contaier {
    margin-top: min(1rem, 1vw);
    margin-bottom: min(1rem, 1vw);
}

.news_box {
    display: flex;
    justify-content: left;
    padding-top: min(1rem, 1vw);
    color: white;

    data {
        font-size: min(1.3rem, 1.3vw);
        /* padding: 0.1rem; */
    }

    data::after {
        content: "|";
        margin-left: min(1rem, 1vw);
    }
}

.news_icon {
    display: flex;
    align-items: center;
    border-radius: 20px;
    background-color: #7a7b7c;
    margin-left: 1rem;
    padding: 0.1rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    text-align: center;
    font-size: min(0.8rem, 0.8vw);
    color: white;
}

.news_text {
    padding-top: min(1rem, 1vw);
    font-size: min(1rem, 1vw);
    color: white;
}

/* ******************************* */
/* プラクティス（支援）記載領域  */
/* ******************************* */
.practice_main_contaier {
    background-color: var(--main_body_color);
    position: relative;
    height: 60vh;
    /* z-index: -1; */
}

.practice_position_left {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 10%;
}

.practice_image_box {
    img {
        width: 50vw;
        height: auto;
        opacity: 70%;
    }
}

.practice_position_right {
    position: absolute;
    right: 20%;
    top: 50%;
    transform: translateY(-50%);
}

.practice_contents_box {
    background-color: white;
    padding: max(2rem, 2vw);

    h3 {
        font-size: min(2rem, 2vw);
        font-weight: 200;
        padding: 1rem 0 0 1rem;
    }

    p:nth-child(1) {
        padding: 1rem 0 0 1rem;
        font-size: min(1rem, 1vw);
    }

    p {
        font-size: min(1rem, 1vw);
        padding: 0 1rem 0 1rem;
    }
}

.practice_message_box {
    display: flex;
    align-items: center;

    p {
        font-size: min(0.9rem, 0.9vw);
        padding: 1rem 0 0 1rem;
    }
}

/* ******************************* */
/* プラクティス領域 */
/* ******************************* */
.practice_body {
    padding: min(5vw, 5rem);
    background-color: var(--main_body_color);
    height: auto;
}

.practice_box_area {
    display: flex;
    justify-content: center;
}

.practice_box {
    width: 35vw;
    height: auto;
}

.practice_box h2 {
    color: white;
    font-size: min(2rem, 2vw);
}

.practice_flex {
    display: flex;
    justify-content: left;
    align-items: end;

    p {
        color: white;
        font-size: min(1rem, 1vw);
        margin-left: min(1rem, 1vw);
    }
}

.practice_text_area {
    margin-top: min(1vw, 1rem);

    p {
        color: white;
        font-size: min(1rem, 1vw);
    }
}

.practice_link_area {
    margin-top: min(1rem, 1vw);
    width: min(10vw, 300px);
    color: white;
    position: relative;

    p {
        font-size: min(1rem, 1vw);
        /* padding-bottom: min(1rem, 1vw); */
    }

}

/* 擬似要素（マーク） */
.practice_link_area::after {
    content: "";
    position: absolute;
    top: 50%;
    /* 縦軸をセンタリングする */
    right: 0;
    transform: translateY(-50%);
    /* 縦軸をセンタリングする */
    border: 5px solid transparent;
    border-left: 8px solid #f9f7f7;
}

/* ******************************* */
/* スペシャルコンテンツ領域 */
/* ******************************* */
.special_contents_area {
    /* background-color: var(--main_body_color); */
    background-image: url(/image/image_topic_bgimage.jpg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    height: auto;
    /* height: min(40vh,50vw); */
    /* text-align: center; */
    display: flex;
    align-items: center;
    justify-content: center;

    p {
        text-align: end;
        padding: 1rem;
        font-size: min(1rem, 1vw);
        color: white;
    }
}

.special_contents_header {
    display: flex;
    justify-content: center;
    align-items: end;
    color: white;
    padding-top: min(5vw, 5rem);

    h1 {
        font-size: min(2.5rem, 2.5vw);
    }

    h2 {
        margin-left: min(1rem, 1vw);
        font-size: min(1rem, 1vw);
    }
}

.special_contents_grid_contaier {
    display: grid;
    grid-template:
        "box1 box2" auto /
        30vw 60vw;
}

.special_box1 {
    grid-area: box1;
}

.special_box2 {
    grid-area: box2;
}

.special_box_line {
    margin-top: min(2rem, 2vh);
    margin-bottom: min(2rem, 2vh);
    border: 1px solid white;
}

/* バックグランドイメージは、topic.cssで指定 */
/* 個別ページのメインビジュアルと合わせるため */
.slide_contents {
    background-position: top;
    background-repeat: no-repeat;
    background-size: cover;
    display: flex;
    justify-content: center;
    text-align: center;
    align-items: center;
    /* background-color: #101010; */
    color: white;
    width: 15vw;
    height: 15vw;

    h3 {
        border-bottom: 1px solid white;
        padding-bottom: 0.5rem;
        font-size: min(1rem, 1vw);
    }

    p {
        text-align: center
    }

    ;
}

/* ******************************* */
/* コンタクトバナー領域 */
/* ******************************* */
.main_contact_contaier {
    text-align: center;
    padding: 3rem;
    position: relative;

    span:nth-child(2) {
        position: absolute;
        width: 50vw;
        height: 10vw;
        top: 0;
        right: 0;
        background-color: rgb(237, 241, 248);
        z-index: -1;
    }
}

/* ******************************* */
/* メディアクエリ領域 */
/* ******************************* */
@media screen and (max-width:720px) {

    /* =========================== */
    /* メディア：メイン背景 */
    /* =========================== */
    .main_base_contaier {
        background-image: url(/image/image_main_sp_back.jpg);
        background-position: center;
        height: 100vh;
    }

    /* =========================== */
    /* メディア：メイン領域 */
    /* =========================== */
    .main_message_contaier {
        top: 35vh;
        /* transform: translateY(-50%); */
        left: 50vw;
        transform: translateX(-50%);
        width: 100vw;
        text-align: center;
        /* padding: min(1rem,1vw); */
    }

    .main_message_contaier h1 {
        /* display: none; */
        /* text-indent: 20px; */
        text-align: center;
        /* text-justify: auto; */
        font-size: max(1.5rem, 2vh);
    }

    .main_message_contaier p {
        font-size: max(1vw, 1rem);
        width: 100%;
    }

    /* ******************************* */
    /* メディア：ニュース領域 */
    /* ******************************* */
    .main_news_contaier {
        position: absolute;
        right: 0;
        /* transform:translateX(25vw) ; */
        bottom: 0;
        width: auto;
    }

    .main_news_block_orange {
        display: inline-block;
        width: 100vw;
        height: min(5rem, 100px);
        display: block;
        margin: 0;
        padding: 10px 0 0 0;
        /* justify-content: start; */
        /* text-align: center; */
        /* align-items: center; */

        p {
            font-size: 0.8rem;
            margin: 0px 5px 5px 0;
        }
    }

    /* =========================== */
    /* メディア：ポリシー記載領域 */
    /* =========================== */
    .main_policy_contaier {
        position: absolute;
        left: min(5vw, 200px);
        top: 50vh;
        width: 70%;
    }

    .main_policy_contaier p {
        font-size: min(2.6rem, 2.6vw);
        line-height: min(2.3rem, 2.3vh);
        /* text-justify: auto;
        text-align: justify; */
    }

    .main_policy_contaier h3 {
        font-size: min(4rem, 4vw);
    }

    .main_policy_contaier h4 {
        padding-top: min(2vw, 2rem);
        font-size: min(4rem, 4vw);
        font-weight: 100;
        line-height: min(3rem, 3vh);
    }

    /* ******************************* */
    /* メディア：メインコピー領域 */
    /* ******************************* */
    .main_copymessage_contaier {
        /* justify-content: center; */
        display: block;
        /* モバイルメニュー対処（Zーindex指定） */
        z-index: -1;
    }

    .left_copy_box {
        position: relative;
        top: 0;
        transform: translateY(0%);
        left: 0;
        padding: 15vw 1rem 0 1rem;

        h1 {
            text-align: center;
            font-weight: 400;
            font-size: max(1.4rem, 1.4vw);
            text-align: center;
        }

        p {
            text-align: center;
            color: #555454;
            margin-bottom: 1rem;
        }
    }

    .right_copy_box {
        width: 100vw;
        background-color: white;
        padding: 1vw 1vw 1vw 1vw;
        /* サイズ注意 */
        height: auto;
        /* align-items: start; */
        /* display: flex; */

        p {
            font-size: 0.8rem;
            padding: 1.5rem;
        }
    }

    .button_link_box {
        display: none;
    }

    /* モバイル用のボタン配置領域 */
    /* モバイルメニューのZーindex対象用 */
    .mobile_btn_box {
        /* display: block; */
        display: flex;
        justify-content: center;
    }

    /* =========================== */
    /* メディア：サービス＆＆インフォグリッド領域 */
    /* =========================== */
    .sub_body {
        background-color: var(--main_body_color);
        height: auto;
        display: flex;
        justify-content: center;
        padding: min(1vw, 5vw);
    }

    .sub_body_grid_contaier {
        grid-template:
            "box1" auto
            "box2" auto
            "box3" auto
            "box4" auto /
            90vw;
    }

    .sub_box1 {
        text-align: center;
    }

    .sub_box2 {
        text-align: center;

        p {
            width: min(80vw, 15rem);
        }
    }

    .news_flex {
        display: flex;
        justify-content: center;
    }

    .sub_body h2 {
        font-size: max(1.2vw, 1.2rem);
    }

    .sub_body p {
        font-size: max(1vw, 1rem);
    }

    .news_box {
        display: flex;
        justify-content: center;
        padding-top: min(1rem, 1vw);

        data {
            font-size: min(4rem, 4vw);
        }

        data::after {
            margin-left: min(2rem, 2vw);
        }
    }

    .news_contaier {
        margin-top: min(3rem, 3vw);
        margin-bottom: min(3rem, 3vw);
    }

    .news_icon {
        display: flex;
        align-items: center;
        border-radius: 20px;
        background-color: #7a7b7c;
        margin-left: 1rem;
        padding: 0.1rem;
        padding-left: 0.5rem;
        padding-right: 0.5rem;
        text-align: center;
        font-size: min(2.2rem, 2.2vw);
        color: white;
    }

    .news_text {
        text-align: center;
        padding-top: min(1.3rem, 1.3vw);
        font-size: min(3rem, 3vw);
    }

    /* ******************************* */
    /* メディア：プラクティス（支援）記載領域  */
    /* ******************************* */
    .practice_main_contaier {
        /* background-color: var(--main_body_color); */
        background-color: white;
        position: relative;
        height: 55vh;
        /* モバイルメニュー対処（Zーindex指定） */
        z-index: -1;
    }

    .practice_position_left {
        position: absolute;
        top: 0%;
        transform: translateY(0%);
        left: 0;
    }

    .practice_image_box {
        img {
            width: 100vw;
            height: auto;
        }
    }

    .practice_position_right {
        position: absolute;
        right: 0;
        top: 70%;
        transform: translateY(-50%);
    }

    .practice_contents_box {
        background-color: white;
        padding: max(1rem, 1vw);

        h3 {
            font-size: min(5.5rem, 5.5vw);
            font-weight: bold;
            padding: 1rem 0rem 0 1rem;
        }

        p:nth-child(1) {
            padding: 1rem 0 0 1rem;
            font-size: min(4rem, 4vw);
        }

        p {
            font-size: min(3.5rem, 3.5vw);
            padding: 1rem 0rem 0 1rem;
        }
    }

    .practice_message_box {
        align-items: center;

        p {
            font-size: min(3rem, 3vw);
            padding: 1rem 0rem 0 0;
        }
    }

    /* =========================== */
    /* メディア：プラクティス領域 */
    /* =========================== */
    .practice_box_area {
        flex-wrap: wrap;
    }

    .practice_body {
        padding: min(1vw, 1rem);
    }

    .practice_box {
        width: 80vw;
        margin-bottom: min(4vh, 4vw);
    }

    .practice_box h2 {
        font-size: min(6rem, 6vw);
    }

    .practice_flex {
        justify-content: center;

        p {
            color: white;
            font-size: min(3rem, 3vw);
            margin-left: min(1rem, 1vw);
        }
    }

    .practice_text_area {
        text-align: center;
        margin-top: min(3vw, 3rem);

        p {
            font-size: min(3rem, 3vw);
            padding: min(0.5rem, 0.5vw);
        }
    }

    .practice_link_area {
        display: flex;
        justify-content: center;
        margin-top: min(1rem, 1vw);
        width: 80vw;
        color: white;

        p {
            font-size: min(4rem, 4vw);
            padding-bottom: min(1rem, 1vw);
        }
    }

    .practice_size {
        width: 100vw;
    }

    /* =========================== */
    /* メディア：スペシャルコンテンツ領域 */
    /* =========================== */

    .special_contents_area {
        p {
            text-align: center;
            padding: 1rem;
            font-size: min(5rem, 5vw);
        }
    }

    .special_contents_header {

        padding-top: min(10vh, 10vw);
        padding-bottom: min(2vh, 2vw);

        h1 {
            font-size: min(6rem, 6vw);
        }

        h2 {
            margin-left: min(1rem, 1vw);
            font-size: min(3rem, 3vw);
        }
    }

    .special_contents_grid_contaier {
        display: grid;
        justify-content: center;
        grid-template:
            "box1" auto
            "box2" auto /
            90vw;
    }

    .slide_contents {
        width: 90vw;
        height: 90vw;

        h3 {
            font-size: min(3.5rem, 3.5vw);
        }
    }

    /* ******************************* */
    /* メディア：コンタクトバナー領域 */
    /* ******************************* */
    .main_contact_contaier {
        padding: 2rem;

        span:nth-child(2) {
            width: 60vw;
            height: 40vw;
        }
    }
}