/* --- レイアウト基盤 --- */
.container { max-width: 1100px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }

/* Hero */
.hero { padding: 60px 0 40px; text-align: center; }
.hero-title { font-size: clamp(28px, 5vw, 54px); font-weight: 1000; line-height: 1.2; margin: 20px 0; }
.hero-desc { color: rgba(255,255,255,0.7); max-width: 820px; margin: 0 auto 30px; line-height: 1.85; font-size: 14px; }
.section-sub { text-align: center; color: rgba(255,255,255,0.6); margin-bottom: 30px; }

/* Grids */
.stats, .cards3, .steps-grid { display: grid; gap: 20px; margin-top: 30px; }
.stats { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.cards3 { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.steps-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }

.stat, .card, .step { padding: 24px; border-radius: 16px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.1); }
.step-num { font-size: 32px; font-weight: 950; color: #ff8c00; opacity: 0.2; }

/* --- 修正：コミッション体系のデザイン --- */
.commission-table-wrapper {
    margin-top: 30px;
    overflow-x: auto;
    border: 1px solid #333;
    border-radius: 12px;
    background: #000;
}
.commission-table { width: 100%; border-collapse: collapse; text-align: left; min-width: 500px; }
.commission-table th, .commission-table td { padding: 20px; border-bottom: 1px solid #222; }
.commission-table th { background: #111; color: #888; font-size: 0.9rem; font-weight: normal; }
.rank-name { font-weight: bold; font-size: 1.1rem; color: #fff; }
.rate { color: #ff8c00; font-size: 1.4rem; font-weight: bold; }
.condition { color: #ccc; font-size: 0.95rem; }
.premium-row { background-color: rgba(255, 140, 0, 0.05); }

/* --- ラジオボタンカード --- */
.ptype-card-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin: 15px 0; }
.ptype-card-item { position: relative; display: block; cursor: pointer; }
.ptype-card-item input { position: absolute; opacity: 0; }
.ptype-card-body { padding: 15px; border-radius: 16px; background: rgba(0,0,0,0.2); border: 1px solid rgba(255,255,255,0.1); transition: all 0.2s; }
.ptype-card-item input:checked + .ptype-card-body { border-color: #ff8c00; background: rgba(255,140,0,0.05); }
.ptype-card-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.ptype-card-name { font-weight: 950; font-size: 15px; }
.ptype-card-badge { font-size: 11px; padding: 4px 8px; border-radius: 999px; background: rgba(255,255,255,0.1); }
.ptype-card-desc { font-size: 12px; color: rgba(255,255,255,0.6); line-height: 1.6; }

/* フォーム共通 */
.formwrap { max-width: 780px; margin: 40px auto; padding: 40px; background: rgba(255,255,255,0.02); border-radius: 24px; border: 1px solid rgba(255,140,0,0.2); }
.form-section-title { font-weight: bold; margin: 20px 0 10px; text-align: center; color: #ff8c00; font-size: 14px; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.field { margin-bottom: 20px; }
.field label { display: block; margin-bottom: 8px; font-size: 13px; opacity: 0.8; }
.req { color: #ff4b2b; }
input, select, textarea { width: 100%; padding: 12px; border-radius: 8px; box-sizing: border-box; background: #000; color: #fff; border: 1px solid rgba(255,255,255,0.1); }
.fine { font-size: 11px; color: rgba(255,255,255,0.5); margin-top: 5px; }
.btn-primary { display: inline-block; width: 100%; padding: 18px; border-radius: 50px; background: linear-gradient(90deg, #ff8c00, #ff4b2b); color: #fff; font-weight: bold; border: none; cursor: pointer; font-size: 16px; margin-top: 20px; }
.hp { display: none; }

/* スマホ対応 */
@media (max-width: 768px) {
  .grid2, .ptype-card-grid { grid-template-columns: 1fr; }
  .stats { grid-template-columns: 1fr 1fr; }
  .formwrap { padding: 20px; }
}