html, body {
    height: 100%;
    margin: 0;
    /* ページ全体の余白をなくして地図がフルスクリーンで収まる */
}

/* カードを横並びで折り返すレイアウト */
#wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding: 12px;
    align-items: flex-start;
}

/* 地図カードの基本スタイル */
.card {
    width: 300px;
    height: 400px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: #fff;
    display: flex;
    flex-direction: column;
}

.card-header {
    /* 見出しテキストを収めるエリア */
    padding: 8px 10px;
    font-size: 14px;
    border-bottom: 1px solid #eee;
}

.card-footer {
    /* 必要なら補足情報を表示する領域 */
    padding: 6px 8px;
    font-size: 12px;
    border-top: 1px solid #eee;
    color: #666;
}

/* ページ全体のフッター */
.site-footer {
    padding: 8px 12px;
    font-size: 12px;
    color: #666;
    border-top: 1px solid #eee;
}

/* カード内の地図領域 */
.map {
    flex: 1 1 auto;
    min-height: 0; /* flex 子要素の高さ計算を安定させる */
}
