.main-visual {
    position: relative;
    height: 100vh;
    overflow: hidden;
}

.bg-image {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: auto;
    height: 100%;
    min-width: 100%;
    object-fit: cover;
    z-index: 1;
}

.center-logo {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 3;
    width: 50%;
    max-width: 35%;
}

.slogan {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    z-index: 4;
    width: 90%;
    text-align: center;

    color: black;
    font-family: "Josefin Sans", sans-serif, "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Verdana;
    font-size: 2rem;
    letter-spacing: 0.1em;
    font-weight: 600;
    opacity: 0;
    animation: fadeIn 1s ease 0.5s forwards;
}

.center-logo+.slogan {
    top: calc(50% + 20%);
}

/* スマホ対応 */
@media (max-width: 768px) {
    .bg-image {
        width: 100%;
        height: auto;
        object-position: center 40%;
        min-height: 100%;
    }

    .center-logo {
        width: 70%;
        max-width: 80%;
    }
}

@keyframes fadeIn {
    to {
        opacity: 1;
        transform: translate(-50%, 0);
    }
}