body { font-family: 'Noto Sans JP', Arial, sans-serif; background-color: #f0f0f0; color: #333; margin: 0; padding: 0; } .schedule-container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 20px; background-color: white; border-radius: 8px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); } .date-header { font-size: 1.8em; font-weight: bold; color: #222; margin: 20px 0; border-bottom: 2px solid #333; padding-bottom: 10px; } .banners { display: flex; flex-wrap: wrap; gap: 20px; } .banner { display: flex; flex-direction: row; align-items: center; text-decoration: none; color: black; background-color: #ffffff; border: 1px solid #ddd; border-radius: 8px; overflow: hidden; flex: 1 1 calc(50% - 13px); max-width: calc(50% - 13px); min-width: 550px; /* デフォルトはPC向け */ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); transition: transform 0.2s, box-shadow 0.2s; } .banner:hover { transform: scale(1.02); box-shadow: 0 6px 10px rgba(0, 0, 0, 0.15); border-color: #444; } /* 1時間以内のバナーを強調表示 */ .banner.highlight-live { background-color: #ffe5e5; /* 明るい赤系 */ border-color: #ff4d4d; /* 濃い赤 */ } .banner.highlight-live .details { color: #a10000; /* 赤系の文字色 */ } /* サムネイル部分 */ .thumbnail img { width: 150px; height: auto; object-fit: cover; border-right: 1px solid #ddd; } .details { padding: 10px; flex: 1; } .time-channel { font-size: 1em; margin-bottom: 5px; color: #333; } .title { font-size: 1.2em; font-weight: bold; color: #222; } .header-spacer { height: 60px; } .main-content { background-color: #f9f9f9; } /* スマホや縦長画面の場合 */ @media (max-width: 768px) { .banner { flex: 1 1 100%; /* 横幅を画面いっぱいにする */ max-width: 100%; min-width: 100%; } }