    /* ===== ヒーロー写真エリア ===== */
    .hero { width: 100%; height: 360px; background: url('../../images/2019_24.jpg') center center / cover no-repeat; position: relative; }
    .hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%, rgba(10,30,60,0.45) 100%); }

    /* ===== キャッチコピー ===== */
    .catch { background: #1a3a5c; padding: 36px 16px; text-align: center; }
    .catch p { font-size: 22px; font-weight: 900; color: #fff; letter-spacing: 0.06em; line-height: 1.7; }
    .catch p .catch-keyword { color: #7eb8e8; }
    .catch p .catch-nowrap { white-space: nowrap; }

    /* ===== メインコンテンツ ===== */
    .container { max-width: 1200px; margin: 0 auto; padding: 32px 16px; }

    .news-section { margin-bottom: 32px; }
    .news-section-header { display: flex; justify-content: space-between; align-items: center; }
    .news-more { color: #fff; font-size: 13px; font-weight: 700; text-decoration: none; background: rgba(255,255,255,0.2); border: 1px solid rgba(255,255,255,0.5); padding: 4px 14px; border-radius: 2px; transition: background 0.15s; }
    .news-more:hover { background: rgba(255,255,255,0.35); }

    /* バナーエリア */
    .banner-section-title { font-size: 16px; font-weight: 700; color: #1a3a5c; border-bottom: 2px solid #1a3a5c; padding-bottom: 6px; margin-bottom: 16px; }
    .banner-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
    .banner-card { background: #fff; border: 1px solid #c8d8e8; border-radius: 4px; padding: 20px 16px; text-align: center; transition: box-shadow 0.2s; text-decoration: none; color: inherit; display: block; }
    .banner-card:hover { box-shadow: 0 3px 12px rgba(26,58,92,0.15); }
    .banner-label { font-size: 11px; color: #fff; font-weight: 700; background: #1a3a5c; border: 1px solid #1a3a5c; padding: 2px 8px; border-radius: 2px; display: inline-block; margin-bottom: 10px; }
    .banner-title { font-size: 15px; font-weight: 700; color: #1a3a5c; line-height: 1.6; margin-bottom: 6px; }
    .banner-sub { font-size: 13px; color: #2a5a8c; line-height: 1.6; font-weight: 500; }
    .banner-card.netis { border-left: 3px solid #1a3a5c; }
    .banner-card.netis .banner-title { font-size: 14px; color: #1a3a5c; margin-top: 22px; }
    .banner-card.orsc { border-left: 3px solid #009844; }
    .banner-card.orsc .banner-label { background: #009844; border-color: #009844; }
    .banner-card.orsc .banner-title { color: #00713a; }
    .banner-card.orsc .banner-sub { color: #009844; }
    .banner-card.orsc:hover { box-shadow: 0 3px 12px rgba(0,152,68,0.20); }
    .banner-card.orsc .orsc-logo { display: block; max-width: 220px; width: 100%; height: auto; margin: 4px auto 8px; }
    .banner-card.video { border-left: 3px solid #c0271c; }
    .banner-card.video .banner-label { background: #c0271c; border-color: #c0271c; }
    .banner-card.video:hover { box-shadow: 0 3px 12px rgba(192,39,28,0.20); }
    .banner-card.video .play-icon { width: 46px; height: 46px; border-radius: 50%; background: #c0271c; margin: 0 auto 12px; display: flex; align-items: center; justify-content: center; transition: transform 0.2s, background 0.2s; }
    .banner-card.video .play-icon::before { content: ""; border-style: solid; border-width: 9px 0 9px 15px; border-color: transparent transparent transparent #fff; margin-left: 3px; }
    .banner-card.video:hover .play-icon { transform: scale(1.08); background: #e0301f; }

    /* レスポンシブ（index固有） */
    @media (max-width: 700px) {
      .hero { height: 220px; }
      .catch p { font-size: 17px; }
    }
