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

/* body全体で1画面を構成 */
body {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    height: 100dvh; /* iPhone対応。100vhより確実 */
    overflow: hidden; /* スクロール無効 */
}

/* メインビジュアル（画像エリア） */
.main-visual {
    flex: 1;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

/* 画像を中央に、アスペクト比維持で拡大縮小 */
.main-image {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}

/* スマホ画像切り替え */
@media screen and (max-width: 767px) {
    .main-image {
        content: url("../images/top-sp.jpg");
    }
}

/* フッター（常に画面下に固定） */
.footer {
    text-align: center;
    font-size: 12px;
    color: #555;
    flex-shrink: 0;
    padding: 8px 0;
    line-height: 1;
}
