/*
 Theme Name: issue_tcd106 Child
 Template: issue_tcd106
 Version: 1.0.1
*/

/* =======================================
  0) Variables / Base
======================================= */

/* 大会概要全体に変数をスコープ */
.nyc-outline{
  --ink:#111;
  --muted:#6b7280;
  --line:#e5e7eb;
  --card:#ffffff;
  --bg:#fafafa;
  --accent:#2d5cff;
  --accent-dark:#102a8a;
  --danger:#e01616;
  --radius:14px;
  --shadow:0 6px 20px rgba(0,0,0,.06);

  color:var(--ink);
  background:transparent;
  max-width:1100px;
  margin:0 auto 2.5rem;
  padding:clamp(8px, 1.2vw, 16px);
  font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP",system-ui,sans-serif;
}

/* =======================================
  1) Layout (image-row, grids)
======================================= */

.image-row{
  display:flex; gap:10px; flex-wrap:nowrap;
  justify-content:center; align-items:flex-start;
}
.image-row > *{ flex:0 0 calc((100% - 30px)/4); }
.image-row img{ width:100%; height:auto; display:block; }

@media (max-width: 768px){
  .image-row{ flex-direction:column; align-items:center; }
  .image-row > *{ flex:0 0 auto; width:100%; max-width:300px; }
}

/* =======================================
  2) Sponsors
======================================= */

.sponsor-block{
  max-width:980px;
  margin:0 auto;
  padding:0 16px;
  box-sizing:border-box;
  text-align:center;
}

#sponsors{
  margin: 2.2em 0 1rem;
  text-align:center;
  font-size:1.2rem;
}

.sponsor-list{
  list-style:none;
  margin:12px 0 0;
  padding-left:0;
}

.sponsor-list li{
  display:inline-flex;
  align-items:baseline;
  line-height:1.9;
}

.sponsor-list li:not(:last-child)::after{
  content:"／";
  margin:0 .45em;
}

/* =======================================
  3) Tournament Outline (.nyc-outline)
======================================= */

/* ヒーロー */
.nyc-outline .nyc-hero{ text-align:center; margin:12px auto 24px; }
.nyc-outline .nyc-hero .en{
  font-size:clamp(22px, 2.4vw, 32px);
  font-weight:800; letter-spacing:.02em;
}
.nyc-outline .nyc-hero .jp{
  margin-top:.25rem; font-size:clamp(14px, 1.4vw, 16px);
  color:var(--muted); font-weight:600;
}

/* メタ情報帯 */
.nyc-outline .nyc-meta{
  list-style:none; margin:16px auto 0; padding:0;
  display:grid; gap:10px;
}
@media (min-width:840px){
  .nyc-outline .nyc-meta{ grid-template-columns:1fr; max-width:980px; }
}
.nyc-outline .nyc-meta .meta-item{
  background:var(--card);
  border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:10px 14px; text-align:left;
}
.nyc-outline .nyc-meta .label{
  display:inline-flex; align-items:center;
  padding:2px 8px; font-weight:700; font-size:.85em;
  color:#fff; background:var(--accent-dark); border-radius:999px;
  margin-right:.5rem;
}
.nyc-outline .nyc-meta .value{ font-weight:600; }
.nyc-outline .nyc-meta .note{ color:var(--muted); font-weight:500; margin-left:.5em; }

/* カード（概要内） */
.nyc-outline .nyc-grid{ display:grid; gap:16px; margin-top:18px; }
@media (min-width:860px){
  .nyc-outline .nyc-grid{ grid-template-columns:1fr; gap:20px; max-width:980px; margin-inline:auto; }
}
.nyc-outline .nyc-card{
  background:var(--card);
  border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:clamp(14px, 1.8vw, 22px);
  position:static; aspect-ratio:auto; overflow:visible; isolation:auto;
}
.nyc-outline .nyc-card .card-title{
  font-size:clamp(16px,1.6vw,18px); font-weight:800;
  margin:0 0 10px; padding-bottom:6px; border-bottom:2px solid var(--line);
}


/* 定義リスト */
.nyc-outline .dl-list{ margin:0; }
.nyc-outline .dl-list > div{
  display:grid; grid-template-columns:9rem 1fr;
  gap:10px 12px; padding:8px 0; border-bottom:1px dashed var(--line);
}
.nyc-outline .dl-list > div:last-child{ border-bottom:0; }
.nyc-outline .dl-list dt{ font-weight:700; color:var(--muted); }
.nyc-outline .dl-list dd{ margin:0; font-weight:600; line-height:1.6; }

/* 箇条書き（ドット） */
.nyc-outline .dot-list{ list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.nyc-outline .dot-list li{
  position:relative; padding-left:1.05em; line-height:1.65; font-weight:600;
}
.nyc-outline .dot-list li::before{
  content:""; position:absolute; left:.2em; top:.7em;
  width:6px; height:6px; border-radius:999px; background:var(--accent);
}
.nyc-outline .dot-list.columns{ grid-template-columns:1fr; }
@media (min-width:640px){
  .nyc-outline .dot-list.columns{ grid-template-columns:1fr 1fr; }
}

/* 賞金 */
.nyc-outline .prize .prize-total{ margin:.2rem 0 .6rem; font-weight:700; }
.nyc-outline .prize .prize-total strong{ color:var(--danger); font-size:1.1em; }
.nyc-outline .prize-grid{ display:grid; gap:10px; }
@media (min-width:640px){ .nyc-outline .prize-grid{ grid-template-columns:repeat(3,1fr); } }
.nyc-outline .prize-item{
  border:1px solid var(--line); border-radius:10px; padding:10px 12px;
  display:flex; align-items:center; justify-content:space-between; background:#fff;
}
.nyc-outline .prize-item .place{ font-weight:800; }
.nyc-outline .prize-item .amount{ font-weight:800; color:var(--accent-dark); }


/* レイアウト */
.nyc-outline .team-list{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
@media (min-width:640px){
  .nyc-outline .team-list.cols-2{ grid-template-columns:1fr 1fr; }
}

/* ▼ 非リンク行：li がボックス（バッジも同じ枠内） */
.nyc-outline .team-list li{
  display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center;
  padding:8px 12px;
  border:1px solid var(--line); border-radius:10px; background:#fff;
}

/* ▼ リンク行：a がボックス、li は枠を外す（二重防止） */
.nyc-outline .team-list li:has(> a){
  padding:0; border:0; background:transparent;
}
.nyc-outline .team-list li > a{
  display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center;
  padding:8px 12px;
  border:1px solid var(--line); border-radius:10px; background:#fff;
  color:inherit; text-decoration:none; font-weight:800;
}
.nyc-outline .team-list li > a:hover{
  background:rgba(0,0,0,.03);
  border-color:var(--accent, #cfe3ff);
}

/* テキスト／バッジ */
.nyc-outline .team-name{ font-weight:800; }
.nyc-outline .team-meta{
  display:inline-block;
  color:var(--muted); font-weight:700; font-size:.9em;
  padding:.15em .55em; border-radius:999px;
  background:#f1f5ff; border:1px solid #e0e7ff;
}

/* 概要内リンク（通常は下線、チーム行だけ打ち消し） */
.nyc-outline a{ color:var(--accent-dark); text-decoration:underline; text-underline-offset:2px; }
.nyc-outline .team-list li > a{ text-decoration:none; }

/* 賞金 */
.nyc-outline .prize-item .amount{ font-weight:800; color:var(--accent-dark); }

/* === Team rows: always full-width & same box === */

/* 1列固定 */
.nyc-outline .teams .team-list,
.nyc-outline .teams .team-list.cols-2{
  display:grid; gap:10px; grid-template-columns:1fr;
}

/* li はブロック化（幅100%にする土台） */
.nyc-outline .teams .team-list li{
  display:block;
  margin:0; padding:0; border:0; background:transparent;
}

/* 非リンク行：liが箱（幅100%） */
.nyc-outline .teams .team-list li:not(:has(> a)){
  display:flex; inline-size:100%;
  gap:6px 10px; align-items:center;
  padding:10px 12px;
  border:1px solid var(--line); border-radius:12px; background:#fff;
}

/* リンク行：aが箱（幅100%） */
.nyc-outline .teams .team-list li:has(> a){ padding:0; border:0; background:transparent; }
.nyc-outline .teams .team-list li > a{
  display:flex; inline-size:100%;
  gap:6px 10px; align-items:center;
  padding:10px 12px;
  border:1px solid var(--line); border-radius:12px; background:#fff;
  color:inherit; text-decoration:none; font-weight:800;
}
.nyc-outline .teams .team-list li > a:hover{
  background:rgba(0,0,0,.03);
  border-color:var(--accent, #cfe3ff);
}

/* テキスト／バッジ */
.nyc-outline .teams .team-name{ font-weight:800; }
.nyc-outline .teams .team-meta{
  display:inline-block;
  color:var(--muted); font-weight:700; font-size:.9em;
  padding:.2em .6em; border-radius:999px;
  background:#f1f5ff; border:1px solid #e0e7ff;
}

/* team-list 内のリンクだけは下線消す */
.nyc-outline .teams .team-list li > a{ text-decoration:none; }

/* <br> 対策（保険） */
.nyc-outline .teams .team-list li br{ display:none; }

/* 対戦未定 */
.tbd {
  color:#999;
  font-style:italic;
  font-weight:600;
}

.nyc25-btn {
  display: inline-block;
  margin: 1.5em auto;
  background: #2c63c9;
  color: #fff !important;
  font-weight: 700;
  padding: 1em 2em;
  border-radius: 40px;
  text-decoration: none;
  box-shadow: 0 4px 10px rgba(0,0,0,0.15);
  transition: 0.25s;
}
.nyc25-btn:hover {
  background: #1d4faa;
  box-shadow: 0 6px 14px rgba(0,0,0,0.25);
  transform: translateY(-2px);
}


/* =======================================
  4) Photo Index (.nyc-2025)
======================================= */

.nyc-2025{ max-width:820px; margin:0 auto 40px; padding:0 16px; }
.nyc-ttl{ margin:0 0 16px; font-size:clamp(22px,3.2vw,32px); font-weight:800; }

.nyc-2025 .nyc-card{
  position:relative; aspect-ratio:16/9;
  border-radius:16px; overflow:hidden;
  box-shadow:0 10px 28px rgba(0,0,0,.12);
  isolation:isolate;
}
.nyc-2025 .nyc-card__img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center; display:block;
  filter:saturate(1.05) contrast(1.05);
  transition:transform .45s ease, filter .45s ease;
}
.nyc-2025 .nyc-card::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(0,0,0,.15) 10%, rgba(0,0,0,.65) 100%);
}
.nyc-2025 .nyc-card:hover .nyc-card__img{
  transform:scale(1.03); filter:saturate(1.15) contrast(1.1);
}
.nyc-2025 .nyc-card__text{
  position:absolute; left:16px; bottom:16px; z-index:2;
  margin:0; display:inline-block; background:rgba(255,255,255,.78);
  padding:12px 18px; border-radius:6px;
  font-weight:700; font-size:clamp(14px,1.8vw,18px); color:#0b0c0d;
}
.nyc-2025 .nyc-card__link{
  position:absolute; inset:0; z-index:3;
  display:block; text-decoration:none; background:transparent;
}

.teams-group {
  margin-bottom: 1.5rem; /* 下に余白を確保 */
}

.teams-group + .teams-group {
  margin-top: 2rem; /* 連続するグループ間をしっかり空ける */
}

.group-title {
  margin: 1rem 0 0.5rem; /* 上下のバランスを整える */
}

/* smooth_gallery の箇条書きマーカーを完全OFF */
.ag-wrap ul,
.ag-wrap li {
  list-style: none !important;
  margin: 0;
  padding: 0;
}

/* ブラウザの ::marker を潰す（Safari対策含む） */
.ag-wrap li::marker { content: '' !important; }

/* 念のため、テーマの本文スタイルに勝つ指定も */
.entry-content .ag-wrap ul,
.post .ag-wrap ul {
  list-style: none !important;
  padding-left: 0 !important;
}



/* =======================================
  5) Schedule Tables (.nyc-schedule scoped)
======================================= */

/* ====== 共通部分 ====== */
.nyc25__period {
  margin: .3rem 0 1rem;
  color: #666;
}
.nyc25__legend {
  display: flex;
  gap: 1rem;
  list-style: none;
  padding: 0;
  margin: 0 0 1rem;
}
.nyc25__legend .dot {
  display: inline-block;
  width: .75em;
  height: .75em;
  border-radius: 50%;
  margin-right: .4em;
}
.dot--a { background: #8aa9ff; }
.dot--b { background: #ff8a8a; }
.nyc25__note {
  margin: .75rem 0;
  color: #555;
  font-size: .95em;
}

/* ====== テーブル基本 ====== */
.nyc25-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
}
.nyc25-table th,
.nyc25-table td {
  border: 1px solid #e6e6e6;
  padding: .6rem .5rem;
  vertical-align: middle;
}
.nyc25-table thead th {
  background: #f7f7f7;
  font-weight: 600;
  text-align: center;
  white-space: nowrap;
}
.nyc25-table .date {
  background: #fbfbfb;
  white-space: nowrap;
  text-align: left;
}
.nyc25-table .date small {
  display: block;
  color: #666;
  font-weight: 400;
}
.nyc25-table .time {
  text-align: center;
  white-space: nowrap;
}
.nyc25-table col.c-ab { width: 50%; }

/* === A/B の中央寄せを rowSpan ありでも安定させる === */
.nyc25-table tbody td {
  text-align: center !important;
}
.nyc25-table tbody td.date {
  text-align: left !important;
  white-space: nowrap;
  background: #fbfbfb;
}
.nyc25-table tbody td.time {
  text-align: center !important;
}
.nyc25-table tbody td.band {
  text-align: center !important;
}

/* ====== 色帯 ====== */
.band {
  font-weight: 700;
  text-align: center;
}
.band small {
  display: block;
  font-weight: 400;
  font-size: .9em;
  color: #555;
}
.band--blue   { background: #e7f0ff !important; }
.band--yellow { background: #fff6bf !important; }
.band--ice    { background: #eef7ff !important; }
.band--gray   { background: #efefef !important; }
.band--red    { background: #ffe3e3 !important; }

/* ====== スマホ：横スクロール + 左2列固定（Dateはrowspan対応版） ====== */
@media (max-width: 1024px) {
  :root {
    --dateW: 6.2em;   /* ← Date列を少し詰めた幅 */
    --timeW: 5em;
  }

  .nyc25-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* 固定レイアウト + 分離ボーダーでズレ防止 */
  .nyc25-table {
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    min-width: calc(var(--dateW) + var(--timeW) + 26rem);
  }

  /* colgroupで列幅ロック（A/Bは等幅） */
  .nyc25-table col.c-date { width: var(--dateW) !important; }
  .nyc25-table col.c-time { width: var(--timeW) !important; }
  .nyc25-table col.c-ab   { width: 50% !important; }

  .nyc25-table th,
  .nyc25-table td {
    box-sizing: border-box;
    white-space: nowrap;
  }
  .nyc25-table thead th {
    position: static !important;
    z-index: auto !important;
  }

  /* === 左2列固定 === */
  /* Date列：rowspanセル（またはth.date）だけを固定 */
  .nyc25-table td.date[rowspan],
  .nyc25-table th.date {
    position: sticky;
    left: 0;
    z-index: 3;
    background: #fbfbfb;
    white-space: nowrap;
    border-right: 1px solid #e6e6e6;
  }

  /* Time列：常にDateの右隣で固定 */
  .nyc25-table td.time,
  .nyc25-table th:nth-child(2) {
    position: sticky;
    left: var(--dateW);
    z-index: 2;
    background: #fff;
    text-align: center;
  }

  /* A/B列は折返し可（はみ出し防止） */
  .nyc25-table td:nth-child(3),
  .nyc25-table th:nth-child(3),
  .nyc25-table td:nth-child(4),
  .nyc25-table th:nth-child(4),
  .nyc25-table td.band {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-height: 1.35;
  }

  /* Date/Time列もsticky用に背景維持 */
  .nyc25-table tbody td.date,
  .nyc25-table tbody td.time {
    background: #fff;
  }
}

/* =======================================
  6) Countdown
======================================= */

.cb_banner .tcd-countdown{
  position:absolute; left:50%; bottom:40px;
  transform:translateX(-50%); z-index:50;
  pointer-events:none;
}
.cb_banner .tcd-countdown .tcd-countdown__wrap{
  display:flex; align-items:center; gap:16px;
  background:rgba(0,0,0,.55);
  padding:10px 16px; border-radius:12px;
  box-shadow:0 8px 24px rgba(0,0,0,.15);
  color:#fff; font-family:"Noto Sans JP",system-ui,sans-serif;
  pointer-events:auto;
}
.cb_banner .tcd-countdown .tcd-countdown__sep{ display:none !important; }
.cb_banner .tcd-countdown .tcd-countdown__wrap::before{
  content:"開幕まで"; font-weight:700; font-size:14px;
  margin-right:6px; opacity:.95;
}
.cb_banner .tcd-countdown .tcd-countdown__item{
  display:flex; flex-direction:column; align-items:center; min-width:62px;
}
.cb_banner .tcd-countdown .tcd-countdown__num{
  font-size:28px; font-weight:800; line-height:1; letter-spacing:.02em;
}
.cb_banner .tcd-countdown .tcd-countdown__label{
  font-size:12px; font-weight:700; margin-top:4px; opacity:.95;
}
@media (max-width:640px){
  .cb_banner .tcd-countdown,
  .tcd-countdown,
  .tcd-countdown.tcd-countdown--hero{ display:none !important; }
}
@media (min-width:641px){
  .cb_banner .tcd-countdown .tcd-countdown__wrap{ display:flex !important; flex-wrap:nowrap !important; }
}

/* =======================================
  7) Misc overrides
======================================= */

#countdown{ text-align:center; margin:40px auto; font-family:sans-serif; }
.countdown-title{ font-size:1.5em; margin-bottom:10px; }
.countdown-wrapper{ display:flex; justify-content:center; gap:15px; font-size:1.2em; }
.countdown-wrapper div{
  background:#fff; padding:10px 15px; border-radius:10px;
  box-shadow:0 2px 5px rgba(0,0,0,0.1); font-weight:bold;
}
.countdown-wrapper small{ display:block; font-size:0.8em; font-weight:normal; }

/* 円バッジ */
#header_slider_notice .content .inner{ text-shadow:2px 2px 6px rgba(0,0,0,.4); }
#header_slider_notice .content{ border:6px solid #d60017; border-radius:50%; }

/* =======================================
  8) Accessibility
======================================= */
@media (prefers-reduced-motion: reduce){
  .nyc-2025 .nyc-card__img{ transition:none; }
}


/* =======================================
  9) Contact
======================================= */
/* CF7の同意ブロックだけに限定 */
.wpcf7 form .consent-note{ margin:10px 0 8px; font-size:.95rem; line-height:1.6; }
.wpcf7 form .consent-note a{ text-decoration: underline; }

.wpcf7 form .consent-accept .wpcf7-list-item{
  display:inline-flex; align-items:center; gap:10px;
}
.wpcf7 form .consent-accept input[type="checkbox"]{
  width:18px; height:18px; margin:0; vertical-align:middle;
}

/* 未チェック時のエラー文を近くに */
.wpcf7 form .wpcf7-not-valid-tip{ margin-top:6px; }

/* =======================================
  10) Contact
======================================= */

/* ========= チームヒストリー：H3 見出し ========= */
/* ===== Staff page 見出し ===== */

/* H3：セクション見出し（青ドットのみ） */
#staff_right_content .post_content .tcdce-body h3.styled_h3{
  position: relative;
  margin: 48px 0 28px;
  padding-left: 18px;
  font-size: clamp(20px, 2.4vw, 28px);
  font-weight: 700;
  line-height: 1.25;
  color: #111;
}
#staff_right_content .post_content .tcdce-body h3.styled_h3::before{
  content: "";
  position: absolute;
  left: 0; top: 50%;
  transform: translateY(-50%);
  width: 10px; height: 10px;
  border-radius: 50%;
  background: #2c63c9;
  box-shadow: 0 0 0 4px rgba(44,99,201,.25);
}

/* H4：年見出し（ピル＋白ドット） */
#staff_right_content .post_content .tcdce-body h4.styled_h4{
  position: relative;
  margin: 24px 0 8px;
  padding: 10px 16px 10px 44px;
  font-size: clamp(18px, 2.0vw, 22px);
  font-weight: 800;
  letter-spacing: .02em;
  background: #e9f0ff;          /* 薄い青のピル */
  border-radius: 999px;
}
#staff_right_content .post_content .tcdce-body h4.styled_h4::before{
  content: "";
  position: absolute;
  left: 16px; top: 50%;
  transform: translateY(-50%);
  width: 14px; height: 14px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 4px #2c63c9;
}
/* H4直後の本文 */
#staff_right_content .post_content .tcdce-body h4.styled_h4 + p{
  margin-top: 8px;
  line-height: 1.8;
}


p.catch span {
  background: rgba(0,0,0,0.4);   /* 半透明の黒 */
  color: #fff;                   /* 文字色（必要なら） */
  padding: 0.2em 0.5em;          /* 背景と文字の余白 */
  border-radius: 0.3em;          /* 角丸 */
  display: inline;               /* デフォルトでOK */
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;   /* 改行しても帯が続く */
}



/* =======================================
  11) Score
======================================= */

/* リスト全体 */
.nyc-scorecards{ display:grid; gap:14px; }
.nyc-scorecards.nyc-cols-one{ grid-template-columns:1fr; }   /* ←1試合1行 */
.nyc-scorecards.nyc-cols-two{ grid-template-columns:1fr 1fr; }
@media (max-width:899px){
  .nyc-scorecards.nyc-cols-two{ grid-template-columns:1fr; }
}
.nyc-sc-title{ margin:.2rem 0; font-weight:800; }

/* カード */
.nyc-scorecard{
  border:1px solid #8db4ff; border-radius:8px;
  background:#f4f5f9; padding:10px; box-shadow:0 1px 0 rgba(0,0,0,.02);
}

/* メタは1行だけにする */
.nyc-scorecard .meta.single-line{
  font-weight:700; color:#2e52c9; margin-bottom:6px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* 表 */
.nyc-scorecard table.scoretable{
  width:100%; border-collapse:collapse; font-weight:700; font-size:15px;
}
.nyc-scorecard table.scoretable th,
.nyc-scorecard table.scoretable td{
  border:1px solid #575757; text-align:center; padding:4px 6px;
}
.nyc-scorecard table.scoretable thead th{
  background:#8db4ff; color:#1b1564;
}
.nyc-scorecard table.scoretable th.team{
  background:#c5d2e5; text-align:left; padding-left:8px; white-space:nowrap;
}
.nyc-scorecard table.scoretable td.total,
.nyc-scorecard table.scoretable th.total{
  background:#d6dfee; font-weight:800; min-width:3ch;
}

.nyc-scorecard .meta.single-line{
  font-weight:700; color:#151938; margin-bottom:6px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* ステータスバッジ */
.sc-badge{
  display:inline-block; margin-left:.5rem; padding:.1rem .5rem;
  border-radius:999px; font-size:.85em; vertical-align:baseline;
  border:1px solid currentColor;
}
.sc-badge.live{ color:#c62424; background:#ffecec; }
.sc-badge.final{ color:#225a2a; background:#e8f5e9; }

/* 行の高さをそろえる基盤 */
.nyc-scorecard table.scoretable{
  table-layout: fixed;       /* ← 列幅を固定計算に */
}

/* 1列目（チーム名）の幅を固定。数字列は自動で均等 */
.nyc-scorecard table.scoretable th:first-child,
.nyc-scorecard table.scoretable td:first-child{
  width: 30ch;               /* お好みで 18–26ch くらいに調整 */
}

/* チーム名は1行にしてはみ出したら省略（…） */
.nyc-scorecard table.scoretable th.team{
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 縦位置＆見た目を統一 */
.nyc-scorecard table.scoretable th,
.nyc-scorecard table.scoretable td{
  vertical-align: middle;
  padding: 8px 6px;          /* ここで実質的な行高さを揃える */
}

/* （任意）数字セルの最小幅を確保して詰まり防止 */
.nyc-scorecard table.scoretable thead th:not(.team),
.nyc-scorecard table.scoretable tbody td:not(.team){
  min-width: 2.4ch;
}

/* ===== テーブル幅調整（PC標準）===== */
.nyc-scorecard table.scoretable {
  table-layout: fixed;
  width: 100%; /* はみ出し防止 */
  border-collapse: collapse;
}

.nyc-scorecard table.scoretable th:first-child,
.nyc-scorecard table.scoretable td:first-child {
  width: 35ch; /* PCでは広めに確保 */
}

/* チーム名省略設定 */
.nyc-scorecard table.scoretable th.team {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 700;
}

/* 数字セル均等配置 */
.nyc-scorecard table.scoretable th,
.nyc-scorecard table.scoretable td {
  vertical-align: middle;
  padding: 8px 6px;
  text-align: center;
}

/* ===== スマホ対応 ===== */
@media (max-width: 768px) {
  /* テーブル幅を画面内に収める */
  .nyc-scorecard table.scoretable {
    font-size: 13px; /* 全体の文字サイズを少し小さく */
  }

  /* チーム名列を狭める */
  .nyc-scorecard table.scoretable th:first-child,
  .nyc-scorecard table.scoretable td:first-child {
    width: 24ch; /* スマホは狭める */
  }

  /* チーム名の文字サイズをさらに微調整 */
  .nyc-scorecard table.scoretable th.team {
    font-size: 12.5px;
  }

  /* はみ出し防止＋横スクロール許可（保険） */
  .nyc-scorecard {
    overflow-x: auto;
  }
}

/* ===== さらに狭いデバイス（iPhone SEなど）===== */
@media (max-width: 480px) {
  .nyc-scorecard table.scoretable th:first-child,
  .nyc-scorecard table.scoretable td:first-child {
    width: 20ch;
  }
  .nyc-scorecard table.scoretable {
    font-size: 12px;
  }
}
/* ===== リロードボタン　===== */

.nyc-scorecards__actions{
  margin-top: 6px;
  display:flex; justify-content:flex-end;
}
.nyc-refresh-btn{
  appearance:none; border:1px solid #3c4a2b; background:#fff;
  border-radius:999px; padding:.35rem .8rem; font-weight:700; cursor:pointer;
}
.nyc-refresh-btn:hover{ background:#f2f6ea; }
.nyc-refresh-btn:disabled{ opacity:.6; cursor:not-allowed; }

/* すっきりした日付リスト */
.nyc-day { margin: 18px 0; border: 0; padding: 0; }
.nyc-day__heading { margin: 0; }
.nyc-day__toggle{
  all: unset;
  display: flex; align-items: baseline; gap: .6em;
  font-size: 1.05rem; font-weight: 700; cursor: pointer;
  padding: 6px 0; border-bottom: 1px solid #eee;
}
.nyc-day__toggle::before{
  content:"▸"; display:inline-block; transform:rotate(0deg);
  transition: transform .2s ease;
}
.nyc-day__toggle[aria-expanded="true"]::before{ transform: rotate(90deg); }
.nyc-day__count{ font-weight: 400; font-size: .9rem; opacity: .7; }
.nyc-day__panel{ margin-top: 8px; }

/* 縦書き干渉ガード（再掲・強め） */
.nyc-scorecards .scoretable th,
.nyc-scorecards .scoretable td{
  writing-mode: horizontal-tb !important;
  white-space: normal !important;
}

/* ===========================
   Scores: 見た目の微調整
   （既存DOMそのまま適用OK）
=========================== */

/* ベース余白の微調整 */
.nyc-scorecards { gap: 16px; }

/* --- 日付ブロック（.nyc-day） --- */
.nyc-scorecards .nyc-day {
  margin: 10px 0 14px; /* 上下バランスをとる（お好みで+/-） */
  border-top: 1px solid #e7e9f2;
  padding-top: 4px;
}

.nyc-scorecards .nyc-day:first-child { border-top: none; }

/* 見出し行は“リスト”風にフラット化 */
.nyc-scorecards .nyc-day__heading { margin: 0; }
/* 日付見出しの行間と配置を調整 */
.nyc-scorecards .nyc-day__toggle{
  all: unset;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  cursor: pointer;
  font-size: 1.2rem;
  font-weight: 700;
  padding: .6rem .4rem;   /* ← 上下を増やして押しやすく */
  border-radius: 6px;
  transition: background .15s ease;
}

/* マウスオーバーで軽い反応 */
.nyc-scorecards .nyc-day__toggle:hover{
  background: #f7f9ff;
}

/* 矢印と日付の間を詰める */
.nyc-scorecards .nyc-day__toggle::before{
  content: "▸";
  margin-right: .25rem;
  transform: rotate(0deg);
  transition: transform .2s ease;
  opacity: .7;
}
.nyc-scorecards .nyc-day__toggle[aria-expanded="true"]::before{
  transform: rotate(90deg);
  opacity: 1;
}

/* 試合数は右寄せをやめて隣に控えめ表示 */
.nyc-scorecards .nyc-day__count{
  font-weight: 500;
  font-size: .9rem;
  opacity: .6;
  margin-left: .6rem;            /* 日付との間隔を少しだけ */
}

/* 全体を左寄せに固定（中央寄せ解除） */
.nyc-scorecards .nyc-day__heading{
  text-align: left;
  margin: 0;
  padding: 0 .3rem;
}
.nyc-scorecards .nyc-day__toggle:hover{
  background: #f7f9ff;
  box-shadow: inset 0 0 0 1px rgba(44,99,201,.12);
}
.nyc-scorecards .nyc-day__toggle:focus-visible{
  outline: 2px solid #2c63c9;
  outline-offset: 2px;
}

/* 左に細いアクセントライン（開いている時だけ） */
.nyc-scorecards .nyc-day[aria-expanded="true"],
.nyc-scorecards .nyc-day__toggle[aria-expanded="true"]{
  /* セレクタ補完用 */
}
.nyc-scorecards .nyc-day__toggle[aria-expanded="true"]{
  background: #f2f6ff;
  box-shadow: inset 3px 0 0 0 #2c63c9;
}

/* トグル矢印（▸→▼）をシュッと */
.nyc-scorecards .nyc-day__toggle::before{
  content: "▸";
  margin-right: .4rem;
  transform: rotate(0deg);
  transition: transform .2s ease;
  opacity: .75;
}
.nyc-scorecards .nyc-day__toggle[aria-expanded="true"]::before{
  transform: rotate(90deg);
  opacity: 1;
}

/* 件数は薄めに */
.nyc-scorecards .nyc-day__count{
  font-weight: 500;
  font-size: .9rem;
  opacity: .6;
}

/* パネルの内側余白を少しだけ */
.nyc-scorecards .nyc-day__panel{
  margin: .2rem 0 .9rem;
  padding: 0 .2rem .2rem;
}

/* --- カード（共通） --- */
.nyc-scorecards .nyc-scorecard{
  margin: 0;                    /* リストの中で詰める */
  border-color: #c9d9ff;
  background: #fbfcff;
}
.nyc-scorecards .nyc-scorecard + .nyc-scorecard{
  margin-top: 10px;
}

/* メタ行を読みやすく */
.nyc-scorecards .nyc-scorecard .meta.single-line{
  font-weight: 700;
  color: #17223a;
  margin-bottom: 6px;
}

/* テーブルの微調整 */
.nyc-scorecards .scoretable thead th{
  background: #e9f1ff;         /* 既存より淡め */
  color: #1b2a5f;
}
.nyc-scorecards .scoretable th.team{
  background: #f2f6ff;
}

/* --- LIVEブロック --- */
/* --- LIVEブロック --- */
.nyc-scorecards .nyc-live{
  border: 0;
  background: #fff;
  padding: 0;
  margin: 4px 0 12px;
}

/* 見出し（LIVEピル） */
.nyc-scorecards .nyc-live__heading{
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin: 0 0 .6rem;
  padding: .35rem .7rem;
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 800;
  color: #fff;
  background: #e53935;
  box-shadow: 0 0 8px rgba(229,57,53,.4);
  position: relative;
  overflow: hidden;
}

/* 赤丸の点滅アニメーション */
.nyc-scorecards .nyc-live__heading::before{
  content: "";
  width: .55rem;
  height: .55rem;
  border-radius: 50%;
  background: #fff;
  animation: nyc-blink 2s ease-in-out infinite;
  box-shadow: 0 0 6px rgba(255,255,255,.8);
}

/* LIVEカード全体の発光もゆっくり */
.nyc-scorecards .nyc-scorecard.live{
  border-color: #ff7a80;
  background: #fff7f8;
  animation: nyc-cardblink 8s ease-in-out infinite;
}

@keyframes nyc-blink {
  0%, 100% { opacity: 0.25; transform: scale(0.8); }
  50%      { opacity: 1; transform: scale(1.2); }
}

@keyframes nyc-cardblink {
  0%,100% { box-shadow: 0 0 0 rgba(255,57,53,0.0); }
  50%     { box-shadow: 0 0 10px rgba(255,57,53,0.25); }
}

/* LIVEスコアカード本体も軽く赤味＆点滅 */
.nyc-scorecards .nyc-scorecard.live{
  border-color: #ff7a80;
  background: #fff7f8;
  animation: nyc-cardblink 2s ease-in-out infinite;
}

@keyframes nyc-cardblink {
  0%,100% { box-shadow: 0 0 0 rgba(255,57,53,0.0); }
  50%     { box-shadow: 0 0 10px rgba(255,57,53,0.25); }
}

/* LIVEバッジも点滅するタイプに */
.nyc-scorecards .sc-badge.live{
  background: #ff1e2b;
  color: #fff;
  animation: nyc-blink 3s ease-in-out infinite;
  border-radius: 6px;
  font-weight: 700;
  padding: 2px 8px;
}


/* 動きを嫌う設定ユーザーへの配慮 */
@media (prefers-reduced-motion: reduce){
  .nyc-scorecards .nyc-live__heading::before,
  .nyc-scorecards .nyc-scorecard.live,
  .nyc-scorecards .sc-badge.live{
    animation: none;
  }
}

.nyc-scorecards .nyc-live__heading{
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin: 0 0 .6rem;
  padding: .35rem .6rem;
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 800;
  color: #b00020;
  background: #ffe9ec;          /* 目立つが軽いトーン */
  box-shadow: inset 0 0 0 1px rgba(176,0,32,.15);
}
.nyc-scorecards .nyc-live__heading::before{
  content: "";
  width: .55rem; height: .55rem;
  border-radius: 50%;
  background: #ff3742;
  animation: nyc-pulse 1.2s ease-in-out infinite;
}
@keyframes nyc-pulse {
  0%,100% { transform: scale(.9); opacity: .85; }
  50%     { transform: scale(1.15); opacity: 1; }
}
@media (prefers-reduced-motion: reduce){
  .nyc-scorecards .nyc-live__heading::before{ animation: none; }
}

/* LIVEカードは枠色だけ強調 */
.nyc-scorecards .nyc-scorecard.live{
  background: #fffdfd;
  border-color: #ffb7bd;
  box-shadow: 0 0 0 1px rgba(255,55,66,.06), 0 1px 0 rgba(0,0,0,.02);
}

/* ステータスバッジの視認性UP（既存classのまま） */
.nyc-scorecards .sc-badge{
  padding: 2px 8px;
  font-weight: 700;
}
.nyc-scorecards .sc-badge.live  { background: #e53935; }
.nyc-scorecards .sc-badge.final { background: #6b7280; }

/* 細かな文字サイズ最適化（SP） */
@media (max-width: 768px){
  .nyc-scorecards .nyc-day__toggle{ padding: .6rem .5rem; }
  .nyc-scorecards .nyc-live__heading{ font-size: .95rem; }
}

/* =======================================
  12) TICKET
======================================= */
.ticket .sub-title{margin:1.2rem 0 .6rem;font-weight:700;font-size:1.05rem}
.ticket .ticket-note{background:#fbfbfb;border:1px solid #eee;padding:.9rem;border-radius:8px;margin:.8rem 0}
.ticket .ticket-list{margin:.4rem 0 1.2rem;padding-left:1.2rem}
.ticket .ticket-list li{margin:.2rem 0}
.ticket .sub-title {
  margin: 1.2rem 0 .6rem;
  font-weight: 700;
  font-size: 1.05rem;
}

.ticket .ticket-note {
  background: #fbfbfb;
  border: 1px solid #eee;
  padding: .9rem;
  border-radius: 8px;
  margin: .8rem 0;
}

.ticket .ticket-list {
  margin: .4rem 0 1.2rem;
  padding-left: 1.2rem;
}

.ticket .ticket-list li {
  margin: .2rem 0;
}

.ticket .ticket-prices {
  display: flex;
  flex-direction: column;
  gap: .4rem;
}

.ticket .ticket-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid #eee;
  border-radius: 8px;
  padding: .6rem .8rem;
  font-size: 15px;
  background: #fff;
}

.ticket .ticket-item .date {
  font-weight: 700;
  color: #2c63c9;
  margin-right: .5rem;
  flex-shrink: 0;
}

.ticket .ticket-item .price {
  font-weight: 600;
  color: #111;
  margin-left: .5rem;
}

@media (min-width: 768px) {
  .ticket .ticket-item {
    font-size: 16px;
  }
}

.ticket .card-title {
  font-weight: 700;
  font-size: 1.4rem;
  border-left: 6px solid #2c63c9;
  padding-left: .6rem;
  margin-bottom: .8rem;
}

.ticket-label {
  display: inline-block;
  background: #2c63c9;
  color: #fff;
  font-size: .85rem;
  font-weight: 600;
  letter-spacing: .05em;
  padding: .25em .7em;
  border-radius: 4px;
  margin-bottom: .25rem; /* ←ここを小さく */
}

.ticket .card-title {
  font-size: 1.4rem;
  font-weight: 700;
  border-left: 6px solid #2c63c9;
  padding-left: .6rem;
  margin: .2rem 0 .8rem; /* ←上の余白をほぼゼロに */
}

.ticket-label.general {
  background: #555; /* 一般販売はグレーで差別化 */
}

.btn-ticket {
  display: inline-block;
  background: #2c63c9; /* テーマカラー */
  color: #fff !important;
  font-weight: 600;
  font-size: 1rem;
  padding: 0.75rem 2rem;
  border-radius: 6px;
  text-align: center;
  text-decoration: none;
  transition: background 0.2s, transform 0.2s;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}

.btn-ticket:hover {
  background: #1f4da3;
  transform: translateY(-2px);
}

.ticket-buttons {
  margin-top: 1.2rem;
  text-align: center;
}
/* =======================================
  13) PRIVACY　POLICY
======================================= */

/* ========== プライバシーポリシー全体レイアウト ========== */
.policy {
  max-width: 900px;
  margin: 0 auto;
  padding: 40px 16px 80px;
  color: #111;
  font-family: "Noto Sans JP", sans-serif;
}

.policy__title {
  font-size: clamp(28px, 3.2vw, 40px);
  font-weight: 800;
  text-align: center;
  letter-spacing: 0.02em;
  margin: 8px 0 32px;
}

/* リード文 */
.policy__lead {
  margin: 8px 0 28px;
  line-height: 1.9;
  color: #444;
}

/* ========== 目次（TOC） ========== */
.policy-toc {
  border: 1px solid #e6e9f3;
  background: #f8faff;
  border-radius: 14px;
  padding: 14px 16px;
  margin: 10px 0 30px;
}
.policy-toc strong {
  display: block;
  font-size: 0.95rem;
  color: #2c63c9;
  margin-bottom: 6px;
}
.policy-toc ol {
  margin: 0;
  padding-left: 18px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 14px;
}
@media (max-width: 640px) {
  .policy-toc ol {
    grid-template-columns: 1fr;
  }
}
.policy-toc a {
  text-decoration: none;
  color: #111;
}
.policy-toc a:hover {
  text-decoration: underline;
}

/* ========== セクション見出し ========== */
.policy h3 {
  position: relative;
  margin: 32px 0 12px;
  padding-left: 0.75rem;
  border-left: 4px solid #2c63c9; /* 細い青ラインで統一 */
  font-size: clamp(18px, 2.2vw, 22px);
  font-weight: 800;
  line-height: 1.4;
  color: #111;
}
.policy h3::before {
  content: none !important; /* 以前の丸バッジ削除 */
}

/* ========== テキスト要素 ========== */
.policy p,
.policy ul {
  line-height: 1.9;
  color: #2a2a2a;
  margin-bottom: 1.2em;
}
.policy ul {
  padding-left: 1.2em;
  margin: 0 0 18px;
}
.policy li {
  margin: 0.25em 0;
}

/* ========== お問い合わせカード ========== */
.contact-card {
  margin: 20px 0 30px;
  padding: 18px 20px;
  border: 1px solid #e6e9f3;
  background: #fbfcff;
  border-radius: 12px;
}
.contact-card__name {
  font-weight: 700;
  margin: 0 0 8px;
}
.mail-btn {
  display: inline-block;
  padding: 0.5em 0.9em;
  border-radius: 8px;
  background: #2c63c9;
  color: #fff !important;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
}
.mail-btn:hover {
  background: #204a96;
}

/* ========== 制定日など ========== */
.policy-meta {
  margin-top: 10px;
  color: #666;
  font-size: 0.95rem;
  text-align: right;
}

/* ========== グッズ関係 ========== */

/*******************************
 * GOODS: 横スクロールカード一式
 * 使い方：<section class="gg-wrap" style="--per:3; --gap:16px"> … </section>
 *******************************/

/* ラッパー */
.gg-wrap{
  --per: 3;          /* 1画面に見せる枚数（デフォルト） */
  --gap: 16px;       /* カード間隔 */
  --radius: 12px;
  --bd: 1px;
  --shadow: 0 6px 16px rgba(0,0,0,.06);

  margin: 24px 0 40px;
  color: #111;
  font-family: var(--tcd-font-type1, inherit);
}

/* 見出し + ナビ */
.gg-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}
.gg-title{
  font-size: clamp(18px,2.2vw,22px);
  font-weight:700;
  margin:0;
}

/* 次/前ボタン */
.gg-nav{display:flex; gap:10px;}
.gg-btn{
  appearance:none; -webkit-appearance:none;
  width:34px; height:34px; line-height:34px;
  display:inline-grid; place-items:center;
  border:1px solid rgba(0,0,0,.15);
  background:#fff;
  border-radius:50%;
  cursor:pointer;
  font-size:18px;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.gg-btn:hover{ transform:translateY(-1px); box-shadow:0 6px 14px rgba(0,0,0,.10); }
.gg-btn:active{ transform:translateY(0); }

/* トラック（横スクロール本体） */
.gg-track{
  display:grid;
  grid-auto-flow:column;
  /* カード幅 = 100% を --per で割り、間隔ぶんを控除 */
  grid-auto-columns: calc( (100% - (var(--gap) * (var(--per) - 1))) / var(--per) );
  gap: var(--gap);

  overflow-x:auto;           /* ← スクロールバーを出す */
  overflow-y:hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;

  scroll-snap-type: x mandatory;
  scroll-padding-inline: 0.5px; /* Safariの端吸着の微妙なズレ対策 */

  padding-bottom: 10px;      /* スクロールバー分の余白 */
}

/* スクロールバー（表示・細め） */
.gg-track{
  scrollbar-width: thin;                 /* Firefox */
  scrollbar-color: #b9c3d6 #eef2f7;      /* Firefox */
}
.gg-track::-webkit-scrollbar{ height: 8px; }
.gg-track::-webkit-scrollbar-track{ background:#eef2f7; border-radius:4px; }
.gg-track::-webkit-scrollbar-thumb{
  background:#b9c3d6; border-radius:4px;
  border:2px solid #eef2f7;
}

/* カード */
.gg-card{
  scroll-snap-align:start;
  background:#fff;
  border: var(--bd) solid #eee;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  display:flex;
  flex-direction:column;
  min-width:0;   /* 長いテキスト折返し用 */
  transition: transform .2s ease, box-shadow .2s ease;
}
.gg-card:hover{ transform: translateY(-2px); box-shadow:0 10px 24px rgba(0,0,0,.10); }

/* 画像（トリミングなし・自然比率で表示） */
.gg-img{
  width:100%;
  height:auto;
  display:block;
  object-fit: contain;   /* 画像を切らない */
  background:#fff;       /* 余白は白で統一 */
  aspect-ratio: auto;    /* ← 正方形固定を解除 */
}

/* もし統一感重視で“正方形トリミング”にしたい場合は、親に .gg--cover を付与 */
.gg--cover .gg-img{
  aspect-ratio:1/1;
  height:auto;
  object-fit:cover;       /* 中央トリミング */
}

/* 本文 */
.gg-body{ padding: 12px 14px 14px; display:grid; gap:6px; }
.gg-name{
  font-size: 14.5px;
  font-weight: 700;
  line-height: 1.45;
  margin:0;
}
.gg-meta{
  display:flex; align-items:center; gap:10px;
  color:#666; font-size:12.5px;
}
.gg-price{ font-weight:700; color:#111; }

/* 枠線色をTCDのメイン色に寄せたい場合（必要なら） */
/* .gg-card{ border-color: rgba(var(--main_color_hex, 0,0,0), .1); } */

/* レスポンシブ：表示枚数を自動で落とす（--per未指定の場合のフォールバック） */
@media (max-width: 960px){
  .gg-wrap{ --per: 2; }
}
@media (max-width: 600px){
  .gg-wrap{ --per: 1; }
}

/* 既存テーマ干渉の保険（カード内画像のmax-width指定などをリセット） */
.gg-card img{ max-width:100%; height:auto; }

.gg-non-swiper .swiper,
.gg-non-swiper .swiper-wrapper,
.gg-non-swiper .swiper-slide {
  all: unset !important;
  display: revert !important;
}