/* === PAGE-SPECIFIC === */
.page-intro .sec-head{
  margin: 0 0 12px;
}
.news-box{border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--white);margin-bottom:4px}
.news-box-header{background:var(--or-d);color:#fff;padding:10px 16px;font-size:13px;font-weight:800}
.news-list{list-style:none;padding:0;max-height:210px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--or-tint) transparent}
.news-list li{display:flex;align-items:baseline;gap:10px;padding:9px 16px;border-bottom:1px solid var(--border);font-size:13px;flex-wrap:wrap}
.news-list li:last-child{border-bottom:none}
.news-list li:hover{background:var(--or-pale)}
.news-date{color:var(--muted);font-size:12px;white-space:nowrap;flex-shrink:0;min-width:76px}
.news-tag{display:inline-block;font-size:10px;font-weight:700;padding:2px 8px;border-radius:3px;white-space:nowrap;flex-shrink:0}
.tag-cap{background:#fff0e6;color:#c96a24;border:1px solid #f5c9a0}
.tag-imp{background:#fff0e0;color:#b94040;border:1px solid #f5b8b8}
.tag-inf{background:#e8f4ff;color:#1a6ab4;border:1px solid #b3d4f0}
.news-body{color:var(--text);line-height:1.5;flex:1}
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:4px}
.cat-card{position:relative;border-radius:8px;overflow:hidden;display:block;border:2px solid transparent;transition:transform .18s,box-shadow .18s,border-color .18s;aspect-ratio:16/9;background:#ccc}
.cat-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(100,40,0,.18);border-color:var(--or);text-decoration:none}
.cat-card img{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(.65);transition:filter .18s}
.cat-card:hover img{filter:brightness(.5)}
.cat-card-label{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.72));color:#fff;font-size:13px;font-weight:700;padding:24px 12px 10px;display:flex;align-items:flex-end;justify-content:space-between;line-height:1.35}
.cat-arrow{font-size:18px;opacity:.8;margin-left:6px;flex-shrink:0}
.info-banners{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px}
.info-card{display:flex;align-items:center;gap:12px;padding:11px 14px;border:1px solid var(--border);border-radius:8px;background:var(--or-pale);transition:background .15s}
.info-card:hover{background:var(--or-tint);text-decoration:none}
.info-icon{width:36px;height:36px;border-radius:6px;background:var(--or);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.info-icon svg{width:20px;height:20px;fill:#fff}
.info-text strong{display:block;font-size:12.5px;font-weight:800;color:var(--or-d)}
.info-text span{font-size:11px;color:var(--muted)}
.quick-links{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.ql{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border:1.5px solid var(--or);border-radius:20px;font-size:12px;font-weight:600;color:var(--or-d);background:var(--white);transition:all .15s;white-space:nowrap}
.ql:hover{background:var(--or);color:#fff;text-decoration:none}
.tier-label{display:block;background:var(--or-tint);border-left:4px solid var(--or);padding:6px 12px;font-size:12px;font-weight:800;color:var(--brown);margin:18px 0 0;border-radius:0 4px 4px 0}
.ctbl{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:4px}
.ctbl thead th{background:var(--or-d);color:#fff;padding:8px 10px;font-weight:700;font-size:12px;text-align:left;white-space:nowrap}
.ctbl thead th:nth-child(1){width:34px;text-align:center}
.ctbl thead th:nth-child(2){width:96px}
.ctbl thead th:nth-child(4){width:88px}
.ctbl thead th:nth-child(5){width:90px;text-align:right}
.ctbl tbody tr{border-bottom:1px solid var(--border);transition:background .12s}
.ctbl tbody tr:hover{background:var(--or-pale)}
.ctbl td{padding:8px 10px;vertical-align:middle;line-height:1.45}
.ctbl td:nth-child(1){text-align:center;font-weight:700;color:var(--muted);font-size:12px}
.ctbl td:nth-child(2){color:var(--muted);font-size:12px;white-space:nowrap}
.ctbl td:nth-child(5){text-align:right;font-weight:700;color:var(--or-d);white-space:nowrap}
.ctbl a{color:var(--or);font-weight:600}
.ctbl a:hover{color:var(--or-d)}
.bn{display:inline-block;font-size:9px;font-weight:700;padding:1px 6px;border-radius:3px;margin-left:4px;vertical-align:middle}
.bn-new{background:#e8f4ff;color:#1a6ab4;border:1px solid #b3d4f0}
.bn-on{background:#eaf5ea;color:#2a7a2a;border:1px solid #b3e0b3}
.price-free{color:#2a7a2a;font-weight:800}
.page-intro{
  background:var(--light);
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:16px 18px;
}
.page-intro p{
  font-size:13px;
  color:var(--text);
}
/* バッジ共通スタイル */
.bn-status {
  display: inline-block;
  font-size: 9px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 3px;
  margin-left: 4px;
  vertical-align: middle;
  white-space: nowrap;
}
 
/* 満席・キャンセル待ち */
.bn-full {
  background: #fff0f0;
  color: #b94040;
  border: 1px solid #f5b8b8;
}
 
/* 満席間近（80%以上） */
.bn-near {
  background: #fffbe6;
  color: #b87a00;
  border: 1px solid #f5d87a;
}
 
/* 終了 */
.bn-past {
  background: #f1f1f1;
  color: #666;
  border: 1px solid #ccc;
}
 
/* 終了した研修の行全体を薄く */
tr[data-status="past"] {
  opacity: 0.5;
}

tr[data-status="past"] td {
  color: #aaa;
}

tr[data-status="past"] a {
  color: #888;
}

tr[data-status="past"] td:nth-child(5) {
  color: #aaa;
}
 
/* 状態別の行アクセント */
tr[data-status="full"] { background: #fff8f8; }
tr[data-status="near"] { background: #fffdf5; }
tr[data-status="past"] { background: #fafafa; }
tr[data-status="full"] td:first-child { border-left: 4px solid #b94040; }
tr[data-status="near"] td:first-child { border-left: 4px solid #b87a00; }
tr[data-status="past"] td:first-child { border-left: 4px solid #aaa; }
 
/* モバイルでバッジが折れても大丈夫なように */
@media (max-width: 720px) {
  .bn-status {
    display: block;
    margin: 3px 0 0;
    width: fit-content;
  }
}

@media(max-width:720px){
  #content-area{flex-direction:column}
  #sidebar{width:100%;position:static;max-height:none;overflow:visible;border-left:none;border-top:1px solid var(--border)}
  #global-nav ul{padding-left:8px;padding-right:8px}
  #global-nav ul li a{min-height:50px;padding:6px 4px;font-size:10px;line-height:1.2}
  .header-top,.header-contact{padding-left:16px;padding-right:16px}
  #wrapper{margin:0;border-radius:0}
  #site-footer{padding-left:16px;padding-right:16px}
  .cat-grid{grid-template-columns:1fr 1fr}
  /* 研修一覧テーブル：スマホでも講師名を隠さず、列幅を再配分 */
  .ctbl{
    table-layout:fixed;
    font-size:11px;
  }
  .ctbl thead th,
  .ctbl td{
    padding:6px 4px;
    line-height:1.4;
  }
  .ctbl thead th{
    font-size:10px;
    white-space:normal;
    word-break:keep-all;
  }
  .ctbl thead th:nth-child(1),
  .ctbl tbody td:nth-child(1){
    width:28px;
    padding-left:2px;
    padding-right:2px;
  }
  .ctbl thead th:nth-child(2),
  .ctbl tbody td:nth-child(2){
    width:47px;
    white-space:normal;
    word-break:keep-all;
    overflow-wrap:anywhere;
  }
  .ctbl thead th:nth-child(3),
  .ctbl tbody td:nth-child(3){
    width:auto;
  }
  .ctbl thead th:nth-child(4),
  .ctbl tbody td:nth-child(4){
    display:table-cell;
    width:72px;
    font-size:10.5px;
    word-break:keep-all;
    overflow-wrap:normal;
  }.ctbl thead th:nth-child(5){
  width:62px;
  text-align:center;
  white-space:normal;
  word-break:keep-all;
}
.ctbl tbody td:nth-child(5){
  width:62px;
  text-align:right;
  white-space:normal;
  word-break:keep-all;
}
  .ctbl tbody td:nth-child(3){
    word-break:normal;
    overflow-wrap:anywhere;
  }
  .ctbl tbody td:nth-child(4){
    white-space:normal;
  }
  .ctbl tbody td:nth-child(5){
    font-size:10.5px;
  }
  .bn{
    margin:3px 0 0;
  }
  .info-banners{grid-template-columns:1fr}
  .site-logo-text{font-size:16px}
  .page-intro{
    padding:14px 14px;
  }
}
@media(max-width:400px){
  .ctbl{font-size:10.5px}
  .ctbl thead th,
  .ctbl td{padding:5px 3px}
  .ctbl thead th:nth-child(1),
  .ctbl tbody td:nth-child(1){width:24px}
  .ctbl thead th:nth-child(2),
  .ctbl tbody td:nth-child(2){width:42px}
  .ctbl thead th:nth-child(4),
  .ctbl tbody td:nth-child(4){width:68px;font-size:10px}
  .ctbl thead th:nth-child(5){text-align:left}
  .ctbl tbody td:nth-child(5){width:58px;font-size:10px}
}