@charset "UTF-8";

/* -------------------------------------------
ヘッダー
------------------------------------------- */
#header {
    height: 100px;
    /* ヘッダーの高さを100pxに設定 */
    width: 100%;
    padding: 24px 0 24px 50px;
    /* 上部に40px、左に50pxの余白を追加 */
    position: fixed;
    top: 0;
    display: flex;
    /* フレックスボックスを使用して子要素を配置 */
    justify-content: space-between;
    /* 子要素の間にスペースを均等に配置 */
    align-items: center;
    background: #fff;
    /* box-shadow: 0 0px 8px rgba(0, 0, 0, 0.1); */
    z-index: 999;

    .site-title {
        width: 150px;
        /* 画像の幅を100pxに設定 */
    }
}

/* ----------------------
nav
---------------------- */
#nav {
    visibility: hidden;
    /* 初期状態で非表示 */
    position: fixed;
    /* 固定位置に配置 */
    top: 0;
    /* 上端に配置 */
    left: 0;
    /* 左端に配置 */
    opacity: 0;
    /* 初期状態で透明 */
    z-index: 40;
    /* スタッキング順序を設定（他の要素の上に表示） */
    /* overflow-y: auto; */
    /* 垂直方向にオーバーフローを自動で処理 */
    transition: all .6s ease;
    /* 全てのプロパティに0.6秒のイージングトランジションを設定 */
    background: #fff;
    /* 背景色を赤に設定 */
    height: 100vh;
    /* 高さをビューポートの高さに設定 */
    width: 100%;
    /* 幅を100%に設定 */
    color: #000;
    /* テキストの色を黒に設定 */

    .nav-title {
        position: fixed;
        /* 固定位置に配置 */
        top: 5px;
        /* 上端から40pxの位置に配置 */
        left: 50px;
        /* 左端から50pxの位置に配置 */
        width: 200px;
    }

    .menu {
        display: none;
        /* 初期状態でメニューを非表示 */
        width: 90%;
        margin: 160px auto 0;

        .menu-list {
            /* メニューリストのテキスト色を白に設定 */
            font-weight: bold;
            /* テキストを太字に設定 */
            padding-bottom: 20px;
            /* 下部に20pxの余白を追加 */

            a:target {
                color: red;
                /* アクティブなページのリンクだけ赤く */
                font-weight: bold;
            }

            >li {
                margin-bottom: 8px;
                transition: all .5s ease;

                &:hover {
                    transform: translateX(1rem);
                }

                &:hover .hyphen::before {
                    opacity: 0;
                }
            }

            .hyphen {
                /* margin-bottom: 20px; */
                /* 各リスト項目の下部に20pxのマージンを追加 */
                position: relative;
                line-height: .8;
                /* 行間を1.5に設定 */
                padding-left: 3rem;

                &::before {
                    position: absolute;
                    top: 50%;
                    left: 0px;
                    width: 16px;
                    height: 1px;
                    content: "";
                    transition: 0.3s;
                    background: rgba(0, 0, 0, 0.9);
                }
            }

            .viewmore {
                margin-left: 3rem;
                padding: 3px 16px;
                display: grid;
                grid-template-columns: repeat(2, auto);
                align-content: center;
                position: relative;

                a {
                    display: inline-block;
                }

                span {
                    display: none;
                    /* レイアウトを変えずに非表示 */
                    opacity: 0;
                    /* アニメーションで表示 */
                    transition: opacity 0.3s;
                }

                a {
                    width: min;
                }

                .arrow {
                    width: min-content;
                    height: auto;
                }

                &::before {
                    content: "";
                    position: absolute;
                    top: 50%;
                    left: 0;
                    transform: translateY(-50%);
                    width: 8px;
                    height: 8px;
                    background: rgba(0, 0, 0, 0.9);
                    transition: all 0.3s;
                }

                &:hover,
                &:active {
                    transform: translateX(1rem);

                    &::before {
                        background: red;
                    }

                    a {
                        color: red;
                    }

                    span {
                        display: block;
                        opacity: 1;
                    }
                }

            }
        }

        .menu-right-container {
            width: 35%;

            .btn {
                margin: 0;
                width: 100%;

                a {
                    justify-content: center;
                }
            }

            #banner {
                p {
                    text-align: center;
                    color: #fff;
                }

                .banner {
                    margin-bottom: 8px;
                    padding: 0;
                }
            }
        }
    }
}

.open #nav {
    visibility: visible;
    /* `.open`クラスが追加されたときに表示 */
    opacity: 1;
    /* 不透明度を1に設定（完全に表示） */
}

.open #nav .menu {
    display: flex;
    justify-content: center;
    /* `.open`クラスが追加されたときにメニューを表示 */
    gap: 48px;
}

.nav-icon-list {
    display: flex;

    .bg-toggle:nth-of-type(1) {
        background: #fff;
        color: #fff;

        div {
            flex-grow: 1;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translateY(-50%) translateX(-50%);
        }
    }

    .bg-toggle:nth-of-type(2) {
        background: #fff;

        div {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translateY(-50%) translateX(-50%);
        }

        &.open {
            background: red;
        }
    }
}

/* ----------------------
toggle-btn
---------------------- */
.bg-toggle {
    height: 100px;
    width: 100px;
    background: #fff;
    position: relative;
    z-index: 50;
    transition: all .6s ease;
}

.toggle-btn {
    width: 50px;
    height: 50px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    cursor: pointer;
    z-index: 50;
    background: #fff;
    transition: all .6s;
}

.toggle-btn span {
    display: block;
    position: absolute;
    width: 100%;
    height: 2px;
    background: #333;
    z-index: 50;
    transition: all .3s ease;
}

.toggle-btn span:nth-child(1) {
    top: 20%;
}

.toggle-btn span:nth-child(2) {
    top: 50%;
}

.toggle-btn span:nth-child(3) {
    top: 80%;
}

.open .toggle-btn span:nth-child(1) {
    top: 50%;
    transform: rotate(-45deg);
}

.open .toggle-btn span:nth-child(2) {
    transform: rotate(-45deg);
}

.open .toggle-btn span:nth-child(3) {
    top: 50%;
    transform: rotate(45deg);
}

/* -------------------------------------------
メイン
------------------------------------------- */
.main-visual {
    height: 100vh;
    width: 100%;
    margin-bottom: var(--margin-bottom-ll);
    position: sticky;
    top: 0;
    z-index: -1;

    .main-visual-text {
        margin: 0 32px;
        position: absolute;
        top: 50%;
        right: 0%;
        transform: translateY(-50%) translateX(-50%);
        z-index: 50;

        h2 {
            margin-bottom: 24px;
            font-size: var(--font-size-xl);
            font-weight: bold;
        }

        h2 span {
            padding: 8px 24px;
            margin-bottom: 16px;
            display: inline-block;
            background: var(--sub-color);
        }

        p {
            font-size: var(--font-size-l);
            font-weight: 600;
        }
    }
}

#influencer-marketing {
    .sec-title {
        display: flex;
        justify-content: center;
        align-items: center;
        overflow: auto;


        .influencer,
        .marketing {
            h3 {
                font-size: var(--font-size-xl);
                color: #fff;
                flex: 2;
            }
        }

        .cross-img {
            img {
                width: 120px;
                display: block;
                flex: 1;
            }
        }
    }

    .marketing-img-list {
        width: 100%;
        margin-bottom: 64px;
        display: flex;
        justify-content: space-between;

        img {
            width: 30%;
        }
    }

    .appear {
        text-align: center;

        h4 {
            margin-bottom: 32px;
        }

        p {
            margin-bottom: 32px;
        }

        .sns-list {
            margin-bottom: 64px;
            display: flex;
            justify-content: center;
            gap: 24px;

            img {
                width: 80px;
                object-fit: contain;
            }
        }
    }
}

#needs {
    padding-bottom: 64px;

    p {
        text-align: center;
    }

    .needs-box {
        margin-bottom: 64px;
        padding: 48px 0;
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 16px;

        .box {
            width: 30%;
            padding: 16px 8px;
            text-align: center;
        }

        p {
            padding: 0 8px;
            text-align: left;
        }

        img {
            width: 200px;
        }
    }
}

#merit {
    .merit-box {
        width: 100%;
        padding-bottom: 64px;
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 24px;

        .box {
            width: 47%;
            padding: 40px 32px 24px;
            position: relative;


            h4 {
                margin-bottom: 40px;
            }
        }

        .box1 {
            background: #fff url(img/top/Balance-Happy-4--Streamline-Ux.png) no-repeat top right/30%;
            background: #fff url(img/top/Balance-Happy-4--Streamline-Ux.webp) no-repeat top right/30%;
        }

        .box2 {
            background: #fff url(img/top/Avatar-Network--Streamline-Ux.png) no-repeat top right/30%;
            background: #fff url(img/top/Avatar-Network--Streamline-Ux.webp) no-repeat top right/30%;
        }

        .box3 {
            background: #fff url(img/top/Like-Hand-1--Streamline-Ux.png) no-repeat top right/30%;
            background: #fff url(img/top/Like-Hand-1--Streamline-Ux.webp) no-repeat top right/30%;
        }

        .box4 {
            background: #fff url(img/top/Advertise-Announce-4--Streamline-Ux.png) no-repeat top right/28%;
            background: #fff url(img/top/Advertise-Announce-4--Streamline-Ux.webp) no-repeat top right/28%;
        }

        .banner {
            margin-top: 64px;
        }
    }
}

#ad {
    padding-bottom: 64px;

    .ad-box {
        margin-bottom: 64px;
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 24px;

        .box {
            width: 45%;
            padding: 24px 32px;
            background: #fbe8e6;

            h4 {
                margin-bottom: 16px;
                color: #f19189;
            }
        }
    }

    .shop-product {
        text-align: center;
    }
}

#pr-movie {
    padding-bottom: 64px;

    .wrapper {
        text-align: center;
    }

    h4 {
        text-align: center;
        margin-bottom: var(--margin-bottom-l);
    }

    .video {
        margin-bottom: var(--margin-bottom-l);
        display: flex;
        justify-content: center;
        flex-wrap: wrap;

        video {
            width: 20%;
            min-height: 300px;
        }
    }

}

#development {
    padding-bottom: 64px;

    h4 {
        margin-bottom: var(--margin-bottom-m);
        text-align: center;
    }

    .text {
        padding: 16px 24px;
    }

    .text+img {
        width: 250px;
        height: 250px;
        box-shadow: 0px 0px 16px rgba(180, 180, 180, .5);
    }

    .development-box {
        margin-bottom: var(--margin-bottom-s);
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 32px;
        background: #fbe8e6;

        &:nth-of-type(2) {
            flex-direction: row-reverse;
        }
    }
}

#plan {
    padding-bottom: 64px;

    h4 {
        margin-bottom: 64px;
        font-size: var(--font-size-m);
        text-align: center;
    }

    .red {
        text-align: center;
        padding-bottom: 64px;
    }

    .plan-box {
        margin-bottom: 64px;
        padding: 24px 32px;
        width: 100%;
        display: flex;
        justify-content: center;
        gap: 40px;
        background: #fbe8e6;
        text-align: left;

        h4 {
            margin-bottom: 16px;
            font-weight: bold;
            text-align: left;
        }

        p {
            text-align: left;
        }

        .box1 {
            width: 30%;
        }

        .box2 {
            width: 60%;

            .font_s {
                font-size: var(--font-size-s);
                margin-bottom: 16px;
            }
        }
    }
}

#recruit {
    padding-bottom: 64px;

    .wrapper {
        text-align: center;
    }

    h4 {
        margin-bottom: var(--margin-bottom-l);
    }

    h4+p {
        margin-bottom: var(--margin-bottom-m);
        font-size: var(--font-size-l);
    }

    .registration-box {
        margin-bottom: var(--margin-bottom-s);
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 16px;

        .box {
            width: 20%;
            padding: 16px 8px;
            display: flex;
            align-items: center;
            aspect-ratio: 1;
        }
    }
}

#case {
    padding-bottom: 64px;

    .banner {
        padding: 0;
    }

    .pr-banner {
        margin-bottom: var(--margin-bottom-s);
    }

    .instagram-area {
        width: 100%;
        height: 900px;
        display: flex;
        justify-content: center;

        iframe {
            display: flex;
            flex-direction: column;
            align-items: stretch;
        }
    }



    .btn-container {
        padding: 0;
    }
}

#footer {
    position: relative;
    text-align: center;
    padding: 24px;

    small {
        font-size: var(--font-size-s);
    }
}


/* タブレット */
@media (width <=960px) {
    .main-visual {
        .main-visual-text {
            width: 90%;
            position: absolute;
            top: 50%;
            left: 0;
            transform: translateY(-50%);

            h2 {
                span {
                    margin-bottom: 8px;
                    padding: 8px 16px;
                }
            }
        }
    }

    #influencer-marketing {
        .sec-title {
            display: flex;
            padding: 32px;

            .influencer,
            .marketing {
                h3 {
                    font-size: var(--font-size-l);
                }
            }

            .marketing {
                margin-top: 0;
            }

            .cross-img {
                margin-top: 0;

                img {
                    width: 100px;
                    text-align: center;
                }
            }
        }

        .appear {
            .sns-list {
                img {
                    width: 60px;
                }
            }
        }
    }

    #needs {
        .needs-box {
            .box {
                width: 45%;
            }
        }
    }

    #merit {
        .merit-box {
            .box {
                width: 100%;
            }
        }
    }

    #ad {
        .ad-box {
            .box {
                padding: 16px;
            }
        }
    }

    #plan {
        h4 {
            margin-bottom: 64px;
            font-size: var(--font-size-m);
            text-align: center;
        }

        .red {
            text-align: center;
        }

        .plan-box {
            flex-direction: column;

            .box1 {
                width: 100%;
            }

            .box2 {
                width: 100%;
            }
        }
    }

    #case {
        .instagram-area {
            height: 700px;
        }
    }

}

/* スマホ */
@media (width <=430px) {

    /* -------------------------------------------
ヘッダー
------------------------------------------- */
    #header {
        padding: 0 0 0 20px;
        /* 上部に40px、左に50pxの余白を追加 */
        height: 60px;
        /* ヘッダーの高さを100pxに設定 */

        .site-title {
            width: 100px;
            /* 画像の幅を100pxに設定 */
        }
    }

    /* ----------------------
nav
---------------------- */
    #nav {
        overflow-y: scroll;

        .nav-title {
            left: 20px;
            /* 左端から50pxの位置に配置 */
            width: 100px;
        }

        .menu {
            width: 90%;
            margin: 120px 0 0 50px;

            .menu-right-container {
                width: 80%;
                margin-right: 0;

                .btn {
                    margin: 0;
                    width: 100%;

                    a {
                        justify-content: center;
                    }

                }

                #banner {
                    p {
                        text-align: center;
                        color: #fff;
                    }

                    .banner {
                        margin-bottom: 8px;
                    }
                }
            }
        }
    }

    .open #nav .menu {
        display: flex;
        justify-content: center;
        flex-direction: column;
        /* `.open`クラスが追加されたときにメニューを表示 */
        gap: 8px;

    }

    /* ----------------------
toggle-btn
---------------------- */
    .bg-toggle {
        height: 60px;
        width: 50px;
    }

    .toggle-btn {
        width: 25px;
        height: 25px;
    }

    .main-visual {
        .main-visual-text {
            h2 {
                margin-bottom: 16px;
                font-size: var(--font-size-l);
                font-weight: bold;
            }

            h2 span {
                padding: 8px 16px;
                margin-bottom: 8px;
                display: inline-block;
                background: var(--sub-color);
            }

            p {
                font-size: var(--font-size-m);
                font-weight: 600;
            }
        }
    }

    #influencer-marketing {
        .sec-title {
            display: grid;
            justify-items: center;
            align-items: center;

            .influencer,
            .marketing {
                h3 {
                    font-size: var(--font-size-ll);
                }
            }
        }

        .appear {
            .sns-list {
                gap: 8px;

                img {
                    width: 40px;
                }

            }

            .cross-img {
                img {
                    width: 100px;
                    display: block;
                }
            }
        }
    }

    #needs {
        padding-bottom: 0;

        .needs-box {
            padding: 0;

            .box {
                width: 100%;
            }
        }
    }

    #merit {
        & .merit-box {
            padding-bottom: 0;

            .banner {
                margin-top: 16px;
                margin-bottom: 0;
                padding-bottom: 0;
            }
        }
    }

    #ad {
        padding-bottom: 0;

        .ad-box {
            .box {
                width: 100%;
                padding: 16px;
            }
        }
    }

    #pr-movie {
        padding-bottom: 0;

        h4 {
            text-align: center;
            margin-bottom: var(--margin-bottom-s);
        }

        .video {
            margin-bottom: var(--margin-bottom-m);
            display: flex;
            justify-content: center;
            flex-wrap: wrap;

            video {
                width: 50%;
                min-height: 300px;
            }
        }
    }

    #development {
        padding-bottom: 0;

        .text {
            width: 100%;
            padding: 0;
        }

        .text+img {
            width: 150px;
            height: 150px;
            align-self: flex-end;
            border-radius: 50%;
        }

        h4 {
            margin-bottom: var(--margin-bottom-m);
        }

        .development-box {
            flex-direction: column;
            gap: 8px;

            &:nth-of-type(2) {
                flex-direction: column;
            }
        }
    }

    #plan {
        padding-bottom: 0;
    }

    #recruit {
        padding-bottom: 0;

        .registration-box {
            display: flex;
            justify-content: center;
            flex-wrap: wrap;
            gap: 16px;

            .box {
                width: 46%;
                padding: 16px 8px;
            }
        }
    }

    #case {
        padding-bottom: 0;

        .instagram-area {
            height: 380px;
        }
    }
}