@charset "utf-8";
/* CSS Document */

/*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
root設定
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/

*:root {
    /*幅1300pxの時に1文字10pxとなる値 最小値10px*/
    font-size: 0.7692vw;
    /* font-size: 10px; */
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    line-height: 1;
    /*自動カーニング*/
    font-feature-settings: "palt";
    /*両端揃え*/
    text-align: justify;
    /* ---------- */
    /* 変数 */
    /* 色 */
    --color-blue: #00afd8;
    --color-deep-blue: #128abd;
    --color-green: #cfd62f;
}
@media screen and (max-width: 768px) {
    /*幅768pxの時に1文字10pxとなる値*/
    *:root {
        font-size: 1.3vw;
    }
}
@media screen and (max-width: 480px) {
    /*幅375pxの時に1文字10pxとなる値*/
    *:root {
        font-size: 2.6667vw;
    }
}

/*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
スムーズスクロール
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/
html {
    scroll-behavior: smooth;
}

/*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
noscript
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/

noscript {
    display: block;
    font-size: var(--fsize_m);
    padding: 1em;
    background-color: #ff0;
    text-align: center;
    line-height: 2;
    position: relative;
    z-index: 10000000;
    width: auto;
    color: #000;
    word-break: keep-all;
}
/*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
表示制御
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/

/*PCで消す*/
.pc_hide {
    display: none;

    @media screen and (max-width: 768px) {
        display: block;
    }
}

/*SPで消す*/
@media screen and (max-width: 768px) {
    .sp_hide {
        display: none;
    }
}

/*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
リンク設定
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/

/*リンク*/

a {
    text-decoration: none;
    transition: all 0.2s ease;
}

/*--------------------*/
/* 丸ボタン */
.button-kaku {
    background-color: var(--color-blue);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    color: #fff;
    font-size: 1.8rem;
    letter-spacing: 0.05em;
    line-height: 1.5;
    padding: 0 1em;
    height: 5.4rem;
    position: relative;
    font-weight: 700;
    max-width: 28.8rem;
    margin: auto;
    &:hover {
        background-color: var(--color-deep-blue);
    }
    &.yajirushi {
        &::after {
            content: "→";
            position: absolute;
            font-size: 1em;
            right: 1em;
            bottom: 50%;
            transform: translateY(50%);
            font-size: 1.95rem;
        }
    }
    &.size-l {
        height: 6.6rem;
        font-size: 1.6rem;
        &.yajirushi {
            &::after {
                bottom: 0.25em;
                transform: none;
            }
        }
    }
}

/*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
ページトップボタン設定
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/

.pagetop_jump {
    position: fixed;
    right: 0.5rem;
    bottom: 0.5rem;
    visibility: hidden;
    opacity: 0;
    transition: 0.5s;
    z-index: 100;
    width: 4rem;
    height: 4rem;
    z-index: 1000;
    &.on {
        visibility: visible;
        opacity: 1;
    }
    a {
        display: block;
        width: 100%;
        height: 100%;
        background-color: rgba(18, 138, 189, 0.8);
        position: relative;
        font-size: 0;

        &::after {
            content: "";
            position: absolute;
            display: block;
            top: 50%;
            left: 50%;
            width: 1rem;
            height: 1rem;
            border: 1px solid #fff;
            border-bottom: none;
            border-left: none;
            transform: translate(-50%, -25%) rotate(-45deg);
        }
        @media screen and (min-width: 769px) {
            &:hover {
                background-color: rgba(18, 138, 189, 1);
            }
        }
    }
}

/*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
ローディング画面
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/

#loading-screen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--color-blue);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    transition: opacity 0.3s ease-out;
    .loader {
        position: relative;
        width: min(20%, 120px);
        aspect-ratio: 1/1;
        &::before {
            content: "";
            background-image: url(../img/logo.svg);
            background-size: contain;
            background-position: center center;
            background-repeat: no-repeat;
            display: block;
            position: absolute;
            top: calc(50% - 4px);
            left: 50%;
            transform: translate(-50%, -50%);
            width: 70%;
            aspect-ratio: 1/1;
        }
        div.progress {
            position: absolute;
            bottom: 0;
            height: 4px;
            width: 100%;
            --c: no-repeat linear-gradient(#999 0 0);
            background: var(--c), var(--c), #ccc;
            background-size: 60% 100%;
            animation: l16 3s infinite;
        }
    }
    &.fade-out {
        opacity: 0;
    }
}

@keyframes l16 {
    0% {
        background-position:
            -150% 0,
            -150% 0;
    }
    66% {
        background-position:
            250% 0,
            -150% 0;
    }
    100% {
        background-position:
            250% 0,
            250% 0;
    }
}
/*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
画像
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/

img {
    width: 100%;
    height: auto;
}
/*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
フェード
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/

/*--------------------*/
/* 下から上にフェード */
.fade {
    opacity: 0;
    transform: translate(0, 0.5rem);

    /* 左から出てくる */
    &.fade_left {
        transform: translateX(-1rem);
    }

    /* 右から出てくる */
    &.fade_right {
        transform: translateX(1rem);
    }

    /* 発火 */
    &.fade_in {
        opacity: 1;
        transform: translate(0, 0);
        transition:
            transform 500ms ease-in-out,
            opacity 500ms ease-in-out;
    }
}
/*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
ページ設定
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/
#page_wrap {
    /*--------------------*/
    /* ページ全体の幅 */
    min-width: 320px;
    position: relative;
    .main_img_wrap {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 1;
        width: 100%;
        height: 100vh; /* fallback for old browsers */
        height: 100lvh; /* prefer modern browsers */

        @media screen and (max-width: 768px) {
            width: 100vw;
        }
        img {
            object-fit: cover;
            width: 100%;
            height: 100%;
        }
    }

    .main_contents_area {
        position: relative;
        z-index: 10;

        /* ロゴ */
        .logo {
            position: fixed;
            width: 16.9vw;
            left: 9.2vw;
            top: max(6.38vw, 8.2rem);
            z-index: 20;
            @media screen and (max-width: 768px) {
                display: none;
            }
            &.sp {
                width: 13.4rem;
                top: 1.7rem;
                left: 50%;
                transform: translateX(-50%);
                position: absolute;
                @media screen and (max-width: 768px) {
                    display: block;
                }
            }
        }

        /* タイトル */
        hgroup.title {
            position: fixed;
            color: #fff;
            text-align: left;
            width: 25.54vw;
            left: 5.08vw;
            top: 20.77vw;
            transition-delay: 0.1s;
            z-index: 20;
            @media screen and (max-width: 768px) {
                display: none;
            }
            &.sp {
                font-size: min(1rem, 12px);
                width: 100%;
                top: 12rem;
                left: 0;
                position: absolute;
                @media screen and (max-width: 768px) {
                    font-size: min(1rem, 1.3rem);
                    display: block;
                }
            }
            h1 {
                text-align: center;
                margin-bottom: 1.8em;
                span {
                    display: inline-block;
                    position: relative;
                    font-size: 1.6em;
                    letter-spacing: 0.04em;
                    padding-left: 0.04em;
                    padding: 0 0.8em 0 0.84em;
                    margin-bottom: 1em;
                    &::before,
                    &::after {
                        content: "";
                        display: block;
                        position: absolute;
                        top: 0;
                        height: 1.1em;
                        width: 1px;
                        background-color: #fff;
                    }
                    &::before {
                        left: 0;
                        transform: rotate(-23deg);
                    }
                    &::after {
                        right: 0;
                        transform: rotate(23deg);
                    }
                }
                em {
                    display: block;
                    font-style: normal;
                    letter-spacing: 0.06em;
                    font-size: 4.6em;
                    color: var(--color-green);
                    text-shadow: 0.3rem 0.3rem 0.3rem rgba(0, 0, 0, 0.3);
                    font-weight: 900;
                }
            }
            p {
                text-align: center;
                font-size: 1.8em;
                letter-spacing: 0.06em;
                padding-left: 0.06em;
                font-weight: 700;
                line-height: 1.39;
            }
        }

        /*バッジ */
        .badge_syoukin {
            position: absolute;
            left: 50%;
            top: max(50vh, 32.4rem);
            width: 15rem;
            max-width: 180px;
            transform: translate(7.3%, -54%);
            transition-delay: 0.6s;
            z-index: 20;
            @media screen and (max-width: 768px) {
                width: 13rem;
                transform: translate(9%, 0);
            }
        }
        /*ボタン */
        a.button_form {
            font-size: 0.769vw;
            display: block;
            position: fixed;
            right: 10.6vw;
            top: min(17.7vw, 23rem);
            width: 12.7vw;
            transition:
                transform 500ms ease-in-out 0.3s,
                opacity 500ms ease-in-out 0.3s;
            color: var(--color-blue);
            z-index: 20;
            p {
                position: absolute;
                font-size: 1.8em;
                font-weight: 500;
                letter-spacing: 0.05em;
                padding-left: 0.05em;
                text-align: center;
                top: 50%;
                width: 100%;
                line-height: 1.6;
                transform: translateY(-50%);
            }
            svg {
                fill: var(--color-green);
                -webkit-filter: drop-shadow(0.3rem 0.3rem 0.3rem rgba(0, 0, 0, 0.3));
                filter: drop-shadow(0.3rem 0.3rem 0.3rem rgba(0, 0, 0, 0.3));
            }
            &::after {
                content: "";
                display: block;
                width: 116.3%;
                aspect-ratio: 193/61;
                position: absolute;
                background-repeat: no-repeat;
                background-size: contain;
                background-position: center center;
                background-image: url(../img/button-form-text.svg);
                top: 0;
                left: 50%;
                transform: translate(-51%, -49%);
            }
            &:hover {
                svg {
                    fill: #fff;
                }
            }
            @media screen and (max-width: 768px) {
                display: none;
            }
        }
        .contents_wrap {
            position: relative;
            z-index: 10;
            width: 100%;
            max-width: 37.5rem;
            padding-top: 100vh;
            padding-top: 100lvh;
            margin: auto;
            overflow: hidden;
            &::after {
                content: "";
                position: absolute;
                display: block;
                top: 0;
                left: 50%;
                width: 100vw;
                height: 100vh; /* fallback for old browsers */
                height: 100lvh; /* prefer modern browsers */
                background-image: url(../img/back-img.webp);
                background-size: cover;
                background-position: center center;
                z-index: 2;
                transform: translateX(-50%);
            }
            @media screen and (max-width: 480px) {
                &::after {
                    background-image: url(../img/back-img-sp.webp);
                }
            }
            .contents {
                background-color: rgb(255, 255, 255, 0.9);
                position: relative;
                z-index: 10;
                /*--------------------*/
                /* 共通 */
                section.gen {
                    padding: 0 1.7rem;
                    h2.gen {
                        font-size: 1.6rem;
                        letter-spacing: 0.15em;
                        padding: 0.525em 0 0.725em 0.15em;
                        box-sizing: border-box;
                        background-color: var(--color-blue);
                        color: #fff;
                        text-align: center;
                        border-radius: 9999px;
                        max-width: 12.4rem;
                        margin: auto;
                    }
                    h3.gen {
                        font-size: 1.8rem;
                        text-align: center;
                        line-height: 1.56;
                        letter-spacing: 0.04em;
                        padding-left: 0.04em;
                    }

                    p.gen {
                        font-size: 1.8rem;
                        line-height: 1.78;
                    }
                    p.anotation {
                        font-size: 1.6rem;
                        line-height: 1.625;
                    }

                    /*--------------------*/
                    /* 応募締切 */
                    &.section-01 {
                        padding-top: 0;
                        padding-bottom: 3.2rem;
                        h2 {
                            transform: translateY(-50%);
                        }

                        h3 {
                            font-size: 2.8rem;
                            line-height: 1.3;
                            text-align: center;
                            margin-bottom: 0.5em;
                        }

                        .img_wrap {
                            display: flex;
                            flex-wrap: wrap;
                            justify-content: space-between;
                            margin-bottom: 3.2rem;
                            div {
                                &:first-child {
                                    margin-bottom: 0.9rem;
                                }
                                &:nth-child(n + 2) {
                                    width: 48.53%;
                                }
                            }
                        }
                        p {
                            margin-bottom: 1.2em;
                        }
                    }
                    /*--------------------*/
                    /* 概要 */
                    &.section-02 {
                        padding-top: 3.8rem;
                        padding-bottom: 3.8rem;
                        background-color: var(--color-green);
                        h2 {
                            margin-bottom: 1.125em;
                        }
                        h3 {
                            margin-bottom: 0.89em;
                            &.shohin {
                                font-size: 2.4rem;
                                line-height: 1.5;
                                margin-bottom: 1.58em;
                            }
                        }
                        p {
                            margin-bottom: 2em;

                            &:has(+ .kinyujikou) {
                                margin-bottom: 0.78em;
                            }
                        }

                        .kinyujikou {
                            background-color: #fff;
                            font-size: 1.8rem;
                            padding: 0.89em 0.78em;
                            line-height: 1.67;
                            margin-bottom: 0.78em;
                        }
                    }
                    /*--------------------*/
                    /* 募集要項・注意事項 */
                    &.section-03 {
                        padding-top: 3.4rem;
                        padding-bottom: 4rem;
                        hgroup {
                            text-align: center;
                            margin-bottom: 1.8rem;
                            h2 {
                                font-size: 2.4rem;
                                letter-spacing: 0.08em;
                                padding-left: 0.08em;
                                margin-bottom: 0.5em;
                            }
                            p {
                                font-size: 1.8rem;
                                letter-spacing: 0.04em;
                                padding-left: 0.04em;
                                font-weight: 700;
                            }
                        }
                    }
                    /*--------------------*/
                    /* お問合せ */
                    &.section-04 {
                        padding-top: 4rem;
                        padding-bottom: 6rem;
                        border-top: 1px solid #000;
                        text-align: center;
                        h2 {
                            margin-bottom: 2.4rem;
                        }
                        address {
                            font-size: 1.6rem;
                            letter-spacing: 0.04em;
                            line-height: 1.5;

                            font-style: normal;
                        }
                        .copyright {
                            font-size: 1rem;
                            line-height: 1.5;
                            letter-spacing: 0.06em;
                            padding-left: 0.06em;
                            margin-top: 4.4em;
                        }
                    }
                }
            }
        }
    }
}
