/* 全体コンテナ */
.class-container {
    max-width: 600px;
    margin: 0 auto;
    font-family: sans-serif;
    color: #333;
}

/* 新しいメインタイトル見出し */
.main-section-title {
    display: block;
    max-width: 500px;
    margin: 30px auto 20px;
    padding: 12px 0;
    background: linear-gradient(135deg, #003366 0%, #005599 100%); /* 濃紺のグラデーション */
    color: #ffffff;
    text-align: center;
    font-size: 1.5em;
    font-weight: bold;
    letter-spacing: 0.1em;
    border-radius: 50px; /* 角を丸くして親しみやすさを出す */
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
    border: 3px solid #ffffff; /* 白いフチ取りでクッキリさせる */
    outline: 2px solid #003366; /* 外側にさらに細い線を引く */
}

/* メインタイトル */
.main-section-header {
    margin: 20px 0 10px;
    padding: 15px;
    background: linear-gradient(135deg, #003366 0%, #005599 100%);
    color: #fff;
    text-align: center;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.main-section-header h2 {
    margin: 0;
    font-size: 1.6em;
    font-weight: bold;
    letter-spacing: 0.1em;
}

/* サブテキスト（JARD主催などの部分） */
.sub-notice-block {
    text-align: center;
    background: #fdfdfd;
    border: 2px solid #005599;
    border-radius: 8px;
    padding: 15px;
    margin-bottom: 30px;
}

.sub-notice-block .jard-label {
    display: inline-block;
    color: #005599;
    font-weight: bold;
    border-bottom: 2px solid #005599;
    margin-bottom: 10px;
}

.sub-notice-block h3 {
    font-size: 1.2em;
    color: #333;
    margin: 0;
    line-height: 1.5;
}

/* タイトルの前にアイコン風の装飾をつける場合 */
.main-section-title::before {
    content: "??"; /* 無線らしいアイコン（絵文字） */
    margin-right: 10px;
}

/* 導入文 */
.class-intro {
    text-align: center;
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 8px;
}
.class-intro h2 { margin: 0; font-size: 1.4em; }

/* カードデザイン */
.class-card {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    margin-bottom: 30px;
    border: 1px solid #eee;
    overflow: hidden;
}

/* ヘッダーの色分け */
.card-header {
    padding: 12px 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: bold;
}
.bg-3ama { background-color: #ffaa00; color: #fff; }
.bg-4ama { background-color: #bbbbff; color: #fff; }

/* 状態バッジ */
.badge-recruiting { background-color: #008000; color: #fff; padding: 4px 12px; border-radius: 20px; text-decoration: none; }
.badge-closed { background-color: #888; color: #fff; padding: 4px 12px; border-radius: 20px; }
.badge-warn { background-color: #ff6600; color: #fff; padding: 4px 12px; border-radius: 20px; }
.badge-wait { background-color: #0000ff; color: #fff; padding: 4px 12px; border-radius: 20px; text-decoration: none; }

/* カードの中身 */
.card-body { padding: 15px; }

/* 会場画像 */
.card-image img {
    width: 100%;
    height: auto;
    max-height: 200px;
    object-fit: cover;
    border-radius: 6px;
    margin-bottom: 15px;
    border: 1px solid #eee;
}

/* 項目リスト */
.card-item { display: flex; padding: 10px 0; border-bottom: 1px dotted #ddd; }
.card-item:last-child { border-bottom: none; }
.item-label { width: 120px; font-size: 0.8em; color: #777; font-weight: bold; }
.item-content { flex: 1; font-size: 0.95em; }
.knum { font-family: monospace;  font-size: 1.05em; font-weight: bold; }

/* フッター */
.class-footer {
    background: #f4f4f4;
    padding: 15px;
    border-radius: 8px;
    font-size: 0.85em;
    line-height: 1.6;
}