/* ===================================================================
   KOJI TORIUMI OFFICIAL WEBSITE
   Phase 7-B3 — MATCH CALENDAR / 過去試合一覧 専用スタイル

   ・MATCH CALENDAR と過去試合一覧の内側だけを対象にします。
   ・既存の .koji-calendar-grid / -head / -cell / .koji-empty-state の
     定義は Elementor Kit 側のままで、ここでは上書きしません。
   ・グローバルCSSには一切手を入れていません。
   =================================================================== */

/* ---------- 読み上げ専用テキスト ---------- */
.koji-match-calendar .koji-sr-only{
  position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;
}

/* ---------- 月移動 ---------- */
.koji-calendar-nav-link{
  display:inline-block;color:inherit;text-decoration:none;
  padding:8px 6px;margin:-8px -6px;min-height:32px;
}
.koji-calendar-nav-link:hover,
.koji-calendar-nav-link:focus{color:var(--koji-yellow)}
.koji-calendar-nav-link:focus-visible{
  outline:2px solid var(--koji-yellow);outline-offset:2px;
}
.koji-calendar-nav-link.is-disabled{opacity:.32;cursor:default}
.koji-calendar-nav-link.is-disabled:hover{color:inherit}

/* ---------- カレンダー本体 ---------- */
.koji-calendar-body{width:100%;min-width:0}
.koji-calendar-grid-wrap .koji-calendar-grid{min-width:0}

/* 当月以外（前月・次月）のセルを当月と視覚的に区別します。 */
.koji-calendar-cell--outside{background-color:var(--koji-deep-black)}

.koji-calendar-cell--day{
  display:flex;flex-direction:column;align-items:stretch;gap:4px;
  min-width:0;overflow:hidden;
}
.koji-calendar-day{
  display:block;font-family:'Inter Tight',sans-serif;font-size:12px;line-height:1;
  letter-spacing:.06em;color:var(--koji-gray);
}
.koji-calendar-cell--day.is-today .koji-calendar-day{color:var(--koji-yellow);font-weight:700}
.koji-calendar-cell--day.has-match .koji-calendar-day{color:var(--koji-white)}

/* ---------- セル内の試合（同日複数試合は縦に並びます） ---------- */
.koji-calendar-match{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 5px;
  width:100%;min-width:0;margin:0;padding:4px 5px;
  background:transparent;border:1px solid var(--koji-line);border-left-width:2px;
  border-radius:0;cursor:pointer;text-align:left;
  font-family:'Inter Tight',sans-serif;line-height:1.2;color:var(--koji-gray);
  min-height:30px;
}
.koji-calendar-match:hover{border-color:rgba(255,255,255,.34)}
.koji-calendar-match:focus-visible{outline:2px solid var(--koji-yellow);outline-offset:1px}

.koji-calendar-match--scheduled{border-left-color:var(--koji-yellow)}
.koji-calendar-match--completed{border-left-color:var(--koji-white)}
.koji-calendar-match--time_tbd{border-left-style:dashed}
.koji-calendar-match--postponed{border-left-style:dashed}
.koji-calendar-match--cancelled{border-left-style:dotted}

.koji-calendar-match.is-selected{
  background-color:rgba(255,212,0,.10);
  border-color:var(--koji-yellow);
}

.koji-calendar-match-comp{
  flex:1 1 100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--koji-gray);
}
.koji-calendar-match-opp{
  flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:11px;font-weight:600;color:var(--koji-white);
}
.koji-calendar-match-side{
  flex:0 0 auto;font-size:9px;font-weight:700;letter-spacing:.04em;
  padding:0 3px;border:1px solid var(--koji-line);color:var(--koji-gray);
}
.koji-calendar-match-note{
  flex:1 1 100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--koji-white);
}
.koji-calendar-match--cancelled .koji-calendar-match-note,
.koji-calendar-match--postponed .koji-calendar-match-note{color:var(--koji-gray);font-weight:600}
.koji-calendar-match-pk{
  flex:0 0 auto;font-size:9px;letter-spacing:.1em;color:var(--koji-yellow);
}

/* ---------- 試合がない月 ---------- */
.koji-calendar-empty-note{
  margin:16px 0 0;text-align:center;font-family:'Inter Tight',sans-serif;
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--koji-gray);
}

/* ---------- 選択試合の詳細 ---------- */
.koji-calendar-detail-body{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:8px;width:100%;min-width:0;text-align:center;
  font-family:'Inter Tight',sans-serif;color:var(--koji-gray);
}
.koji-calendar-detail-date{
  font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--koji-gray);
}
.koji-calendar-detail-comp{
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--koji-yellow);
}
.koji-calendar-detail-teams{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:6px 16px;
  max-width:100%;
}
.koji-calendar-detail-team{
  font-size:clamp(15px,2.2vw,22px);font-weight:700;color:var(--koji-white);
  overflow-wrap:anywhere;
}
.koji-calendar-detail-score{
  font-size:clamp(20px,3vw,32px);font-weight:900;letter-spacing:-.02em;
  color:var(--koji-white);white-space:nowrap;
}
.koji-calendar-detail-vs{font-size:12px;letter-spacing:.2em;color:var(--koji-gray)}
.koji-calendar-detail-pk{
  font-size:12px;letter-spacing:.14em;color:var(--koji-yellow);white-space:nowrap;
}
.koji-calendar-detail-extra,
.koji-calendar-detail-meta{font-size:11px;letter-spacing:.12em;color:var(--koji-gray);overflow-wrap:anywhere}
.koji-calendar-detail-status{
  font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
  padding:3px 10px;border:1px solid var(--koji-line);color:var(--koji-white);
}
.koji-calendar-detail-links{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:center}
.koji-calendar-detail-link{
  display:inline-block;padding:8px 2px;color:var(--koji-yellow);
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;
  border-bottom:1px solid var(--koji-line);
}
.koji-calendar-detail-link:hover,
.koji-calendar-detail-link:focus{border-bottom-color:var(--koji-yellow)}
.koji-calendar-detail-empty{
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--koji-gray);
}

/* ---------- 過去試合一覧 ---------- */
.koji-match-archive-body{width:100%;min-width:0;text-align:left}
.koji-match-archive-list{
  list-style:none;margin:0;padding:0;width:100%;
  font-family:'Inter Tight',sans-serif;
}
.koji-match-archive-item{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;
  padding:14px 0;border-top:1px solid var(--koji-line);min-width:0;
}
.koji-match-archive-item:first-child{border-top:0}
.koji-archive-date{
  flex:0 0 auto;font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--koji-white);
}
.koji-archive-comp{
  flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--koji-yellow);
}
.koji-archive-teams{
  flex:1 1 260px;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;
}
.koji-archive-team{
  font-size:14px;font-weight:600;color:var(--koji-white);min-width:0;overflow-wrap:anywhere;
}
.koji-archive-score{
  font-size:15px;font-weight:900;letter-spacing:-.01em;color:var(--koji-white);white-space:nowrap;
}
.koji-archive-vs{font-size:11px;letter-spacing:.16em;color:var(--koji-gray)}
.koji-archive-pk{flex:0 0 auto;font-size:11px;letter-spacing:.1em;color:var(--koji-yellow);white-space:nowrap}
.koji-archive-side{
  flex:0 0 auto;font-size:10px;font-weight:700;letter-spacing:.06em;
  padding:1px 5px;border:1px solid var(--koji-line);color:var(--koji-gray);
}
.koji-archive-venue{
  flex:0 1 auto;min-width:0;font-size:11px;letter-spacing:.06em;color:var(--koji-gray);
  overflow-wrap:anywhere;
}
.koji-archive-link{
  flex:0 0 auto;padding:6px 0;font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--koji-yellow);text-decoration:none;border-bottom:1px solid var(--koji-line);
}
.koji-archive-link:hover,
.koji-archive-link:focus{border-bottom-color:var(--koji-yellow)}
.koji-archive-more{
  display:inline-block;margin-top:20px;padding:12px 24px;min-height:44px;
  border:1px solid var(--koji-line);color:var(--koji-white);text-decoration:none;
  font-size:11px;letter-spacing:.24em;text-transform:uppercase;
}
.koji-archive-more:hover,
.koji-archive-more:focus{border-color:var(--koji-yellow);color:var(--koji-yellow)}

/* ---------- レスポンシブ（7列はすべての幅で維持します） ---------- */
@media (max-width:1024px){
  .koji-calendar-match-comp{font-size:8px;letter-spacing:.08em}
  .koji-calendar-match-opp{font-size:10px}
}

@media (max-width:767px){
  .koji-calendar-cell--day{gap:3px}
  .koji-calendar-day{font-size:10px}
  .koji-calendar-match{padding:3px 4px;gap:1px 4px;min-height:28px;border-left-width:2px}
  .koji-calendar-match-comp{display:none}
  .koji-calendar-match-opp{font-size:9px;letter-spacing:-.01em}
  .koji-calendar-match-side{font-size:8px;padding:0 2px}
  .koji-calendar-match-note{font-size:10px}
  .koji-calendar-match-pk{font-size:8px}

  .koji-match-archive-item{gap:4px 10px;padding:12px 0}
  .koji-archive-teams{flex:1 1 100%}
  .koji-archive-venue{flex:1 1 100%}
}

@media (max-width:479px){
  .koji-calendar-match{padding:3px;min-height:26px}
  .koji-calendar-match-side{display:none}
  .koji-calendar-match-opp{font-size:8px}
  .koji-calendar-match-note{font-size:9px}
  .koji-calendar-detail-teams{gap:4px 10px}
  .koji-archive-date{font-size:11px}
  .koji-archive-team{font-size:13px}
}

@media (max-width:374px){
  .koji-calendar-day{font-size:9px}
  .koji-calendar-match{padding:2px;min-height:24px}
  .koji-calendar-match-opp{font-size:8px}
  .koji-calendar-match-note{font-size:9px}
}

/* ---------- モーション軽減 ---------- */
@media (prefers-reduced-motion:reduce){
  .koji-calendar-match,
  .koji-calendar-nav-link,
  .koji-archive-more{transition:none!important}
}
