/* ============================================================
   F.C VIOLET'S — child theme design
   長野県千曲市の社会人サッカークラブ / クレスト基調（青×黒×ゴールド）

   ● 事前設定（外観 → カスタマイズ）
     - 色設定 : primary #3c2378 / secondary #0d0918 / accent #cda451
     - 見出しスタイル : style-2（左寄せ）を選択
     ※親テーマはカスタマイザー値をインライン :root で最終適用するため、
       ブランド色そのものは custom.css でなくカスタマイザーが正。
     ※カスタマイザーが単一クラスで再出力する箇所（.section-heading__en 等）は
       必ず2クラス以上で上書きすること（下記参照）。
   ============================================================ */

:root{
  --vio-violet:#3c2378;   /* primary : deep royal navy */
  --vio-royal:#7a4fd8;  /* bright blue accent        */
  --vio-ink:#0d0918;    /* sub     : near-black       */
  --vio-gold:#cda451;   /* accent  : gold            */
  --vio-gold-hi:#e8c880;/* gold highlight            */
  --vio-paper:#f5f3fa;  /* light section base        */
  --vio-line:rgba(60,35,120,.14);

  --font-display:'Oswald', 'Noto Sans JP', sans-serif;   /* ナビ・ボタン・日付など */
  --font-emblem:'Cinzel', serif;          /* 金の刻印ラベル         */
  --font-crest:'Oswald', 'Archivo', sans-serif;   /* 見出しEN・FVワードマーク */

  /* 数字専用。FV画像の試合日程で使われている太めのコンデンス体に合わせる。
     和文を持たない書体なので、日本語は自動的に Noto Sans JP へ落ちる。
     ウェイトは400のみ。この変数を使う箇所は font-weight:400 に固定すること
     （700等を当てるとブラウザが太字を合成して字形が潰れる）。 */
  --font-num:'Bebas Neue', 'Oswald', 'Noto Sans JP', sans-serif;

  /* 親の汎用トークン（カスタマイザーが触らないもの）を下地色に寄せる */
  --color-bg:var(--vio-paper);
}

/* ============================================================
   1) Hero / ファーストビュー
   ============================================================ */
.fv-slide__overlay{
  background:linear-gradient(180deg,
    rgba(13,9,24,.15) 0%,
    rgba(60,35,120,.45) 50%,
    rgba(13,9,24,.82) 100%);
}

/* FVワードマーク（カスタマイザーでタイトルに「F.C VIOLET'S — NAGANO CHIKUMA」を入れ、
   サブタイトル・ボタンは空にする運用。ロゴに寄せた Graduate 体で表示） */
.fv-slide__content{ position:relative; }
.fv-slide__title{
  font-family:var(--font-crest);
  font-weight:800;                 /* Saira Condensed を最太で */
  font-size:clamp(1.7rem, 4.2vw, 3.2rem);
  letter-spacing:.01em;
  line-height:1.1;
  text-shadow:0 6px 30px rgba(0,0,0,.45);
  position:relative;
  padding-bottom:22px;
}
/* ワードマーク下のゴールド“キックオフ”ライン */
.fv-slide__title::after{
  content:"";
  position:absolute; left:0; bottom:0;
  width:90px; height:4px;
  background:linear-gradient(90deg,var(--vio-gold),var(--vio-gold-hi));
}
.fv-slide__subtitle{ color:rgba(255,255,255,.92); font-weight:500; }

/* ============================================================
   2) セクション見出し（シグネチャー：金の“盾”チック）
      ※ カスタマイザーの単一クラス出力に勝つため2クラス以上で指定
   ============================================================ */
/* ガンバ大阪イメージ：中央揃え・英語（大）＋日本語（小）の2段見出し */
.section .section-heading,
.container .section-heading{
  text-align:center;
  border-left:0;
  padding-left:0;
  margin-bottom:48px;
  position:relative;
}
/* 見出しが .container の外（section直下）にある場合も、コンテナ幅の中で中央に */
.section > .section-heading{
  width:100%;
  max-width:var(--container);
  margin-left:auto;
  margin-right:auto;
  padding-left:20px;
  padding-right:20px;
  box-sizing:border-box;
}
.section-heading .section-heading__en{
  display:block;
  font-family:var(--font-crest);
  font-weight:800;
  font-size:clamp(2rem, 5vw, 3.2rem);
  line-height:1.02;
  letter-spacing:normal;             /* トラッキングなし */
  text-transform:none;               /* 大文字強制をやめ、記載どおりの大文字小文字混在に */
  color:var(--vio-gold);             /* 英語＝金 */
}
.section-heading .section-heading__ja{
  display:block;
  margin-top:.28em;                  /* 英字と和文を近づける（従来 .7em は離れすぎ） */
  font-size:.95rem;
  font-weight:700;
  letter-spacing:.2em;
  text-indent:.2em;
  color:#ffffff;                     /* 日本語＝白（暗背景） */
}
/* 見出しまわりの余白を詰める。親テーマは .section に padding:80px 0（SPは60px）、
   .section-heading に margin-bottom:48px を当てるが、この2段見出しでは
   上下が空きすぎる（特にSPは見出しだけが宙に浮いて見える）。
   セクション間のリズムは保ちたいので、上下の padding は残しつつ縮める。 */
.section{ padding:64px 0; }
.section .section-heading,
.container .section-heading{ margin-bottom:32px; }

@media (max-width:768px){
  .section{ padding:40px 0; }
  .section .section-heading,
  .container .section-heading{ margin-bottom:24px; }
}

/* 旧デザインの装飾（金の盾チック・下線バー）は解除 */
.section .section-heading::before,
.container .section-heading::before,
.section .section-heading::after,
.container .section-heading::after{ display:none; }

/* ============================================================
   2b) セクション背景（ガンバ大阪風：青×黒の交互 / 暗色）
   ============================================================ */
.section{ background:var(--vio-violet); }                 /* 青 */
.section:nth-child(even){ background:var(--vio-ink); }  /* 黒 */
/* 暗背景セクション上の直置きテキスト・ボタンを明色へ */
.section .section__cta .btn--outline{
  color:#fff;
  border-color:rgba(255,255,255,.55);
}
.section .section__cta .btn--outline:hover{
  background:#fff; color:var(--vio-violet);
}

/* ============================================================
   3) ボタン
   ============================================================ */
.btn{ font-family:var(--font-display); font-weight:700; letter-spacing:.06em; }
.btn.btn--accent{
  background:linear-gradient(135deg, var(--vio-gold), var(--vio-gold-hi));
  border-color:var(--vio-gold);
  color:var(--vio-ink);
  box-shadow:0 6px 18px rgba(205,164,81,.32);
}
.btn.btn--accent:hover{
  opacity:1;
  transform:translateY(-2px);
  box-shadow:0 10px 26px rgba(205,164,81,.45);
}

/* ============================================================
   4) カードの角丸を一律なしに（ボタン・タグ・バッジは角丸のまま）
   ============================================================ */
.match-result-card, .next-match-card,
.player-card, .staff-card,
.partner-item, .partner-item__placeholder,
.news-card, .news-card__link, .news-card__img{
  border-radius:0 !important;
}
.news-card__placeholder{
  background:linear-gradient(135deg, var(--vio-violet), var(--vio-ink));
  display:flex; align-items:center; justify-content:center;
}
.news-card__placeholder::after{
  content:"VIOLET'S";
  font-family:var(--font-emblem);
  font-weight:700;
  letter-spacing:.22em;
  font-size:1.05rem;
  color:rgba(232,200,128,.5);
}
.news-card__date{ font-family:var(--font-display); font-weight:700; color:var(--vio-gold); }
.news-card__title{ color:var(--vio-violet); }

/* ============================================================
   5) フッター（クレスト基調：紺→黒のグラデーション＋金の刻印）

   直前のセクション（青 var(--vio-violet)）から黒 var(--vio-ink) へ落として
   ページの終わりを作る。装飾は「金の細線」「斜めの光沢」の2つだけに絞り、
   試合カード（7章）と同じ意匠でフッターまで統一する。
   マークアップは子テーマの footer.php を参照。
   ============================================================ */
.site-footer{
  position:relative;
  overflow:hidden;
  /* カスタマイザーの --color-footer-bg（単色）ではなくグラデで上のセクションと繋ぐ */
  background:linear-gradient(180deg, var(--vio-violet) 0%, #1e1338 46%, var(--vio-ink) 100%);
  color:rgba(255,255,255,.82);
}
/* 上端の金ライン */
.site-footer::before{
  content:"";
  position:absolute; left:0; right:0; top:0; height:3px; z-index:2;
  background:linear-gradient(90deg, var(--vio-violet) 0%, var(--vio-gold) 50%, var(--vio-violet) 100%);
}
/* 試合カードと同じ斜めの光沢（雰囲気を合わせる） */
.site-footer::after{
  content:"";
  position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(115deg, transparent 44%, rgba(205,164,81,.06) 50%, transparent 56%);
}
.site-footer > *{ position:relative; z-index:1; }

.site-footer__main{ padding:clamp(48px, 6vw, 76px) 20px clamp(36px, 4vw, 52px); }

/* 3カラム：ブランド / メニュー（2列） / お問い合わせ */
.site-footer__grid{
  grid-template-columns:minmax(0,1.25fr) minmax(0,1.35fr) minmax(0,1fr);
  gap:clamp(28px, 4vw, 64px);
}

/* --- ブランド --- */
.site-footer__brand{ gap:14px; margin-bottom:14px; }
.site-footer__logo{ height:56px; }
.site-footer__team-name{
  /* ヘッダーのクラブ名・FVワードマークと同じ書体で揃える */
  font-family:var(--font-crest);
  font-weight:800;
  font-size:1.35rem;
  letter-spacing:.02em;
  color:#ffffff;
}
/* ヘッダーと同じインラインSVGワードマーク。currentColor=白で表示する。
   この SVG は viewBox（1000×300）の上下に約18%の余白を持つため、
   指定した高さの約64%しか実際の文字にならない（32px → 文字約20px）。 */
.site-footer__wordmark{ display:flex; color:#fff; min-width:0; }
.site-footer__wordmark svg{ height:32px; width:auto; max-width:100%; display:block; }
.site-footer__desc{
  font-size:.86rem;
  line-height:1.9;
  opacity:1;
  color:rgba(255,255,255,.62);
  max-width:34em;
  margin-bottom:0;
}

/* --- 見出し（セクション見出しと同じ「英字（大）＋日本語（小）」） --- */
.site-footer__heading{
  font-family:var(--font-crest);
  margin-bottom:18px;
  line-height:1.2;
  text-transform:none;
  letter-spacing:normal;
}
.site-footer__heading-en{
  display:block;
  font-family:var(--font-crest);
  font-weight:800;
  font-size:1.15rem;
  letter-spacing:.01em;
  color:var(--vio-gold);
}
.site-footer__heading-ja{
  display:block;
  margin-top:.35em;
  font-family:var(--font-body);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.2em;
  text-indent:.2em;
  color:rgba(255,255,255,.62);
}

/* --- メニュー（項目が多いので2列。金の短いダッシュを行頭に） --- */
.site-footer__nav{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:11px 24px;
}
.site-footer__nav a{
  display:inline-block;
  position:relative;
  padding-left:15px;
  font-size:.88rem;
  opacity:1;
  color:rgba(255,255,255,.78);
  transition:color .2s ease;
}
.site-footer__nav a::before{
  content:"";
  position:absolute; left:0; top:.72em;
  width:7px; height:1px;
  background:var(--vio-gold); opacity:.65;
  transition:width .2s ease, opacity .2s ease;
}
.site-footer__nav a:hover{ color:var(--vio-gold-hi); opacity:1; }
.site-footer__nav a:hover::before{ width:11px; opacity:1; }

/* --- お問い合わせ --- */
.site-footer__contacts{
  list-style:none; margin:0; padding:0;
  display:flex; flex-direction:column; gap:14px;
}
.site-footer__contact{
  font-size:.9rem;
  line-height:1.7;
  opacity:1;
  color:rgba(255,255,255,.8);
  margin-bottom:0;
}
.site-footer__contact a{ color:inherit; transition:color .2s ease; }
.site-footer__contact a:hover{ color:var(--vio-gold-hi); }
.site-footer__contact-label{
  display:block;
  font-family:var(--font-display);
  font-size:.66rem; font-weight:700;
  letter-spacing:.16em;
  color:rgba(255,255,255,.58);   /* 11px相当の小さい文字なので薄くしすぎない */
  margin-bottom:2px;
}
/* お問い合わせフォームへの導線（カード同様に角丸なし・金の細枠） */
.site-footer__contact-btn{
  display:inline-flex; align-items:center;
  margin-top:20px;
  padding:11px 22px;
  border:1px solid rgba(205,164,81,.55);
  font-family:var(--font-display);
  font-weight:700; font-size:.82rem; letter-spacing:.08em;
  color:var(--vio-gold-hi);
  transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.site-footer__contact-btn:hover{
  background:var(--vio-gold); border-color:var(--vio-gold); color:var(--vio-ink);
}

/* --- SNS（カードと同じく角丸なし・金の細枠） --- */
.site-footer__sns-label{
  font-family:var(--font-display);
  font-size:.66rem; font-weight:700;
  letter-spacing:.18em;
  color:rgba(255,255,255,.58);   /* 11px相当の小さい文字なので薄くしすぎない */
  margin:24px 0 10px;
}
.site-footer__sns{ gap:10px; }
.site-footer__sns a{
  width:40px; height:40px;
  border-radius:0;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(205,164,81,.32);
  color:rgba(255,255,255,.9);
  transition:background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.site-footer__sns a:hover{
  background:var(--vio-gold);
  border-color:var(--vio-gold);
  color:var(--vio-ink);
  transform:translateY(-2px);
}

/* --- 下段（コピーライト / 法的情報） --- */
.site-footer__bottom{
  border-top:1px solid rgba(205,164,81,.2);
  padding:18px 20px;
  font-size:.75rem;
  opacity:1;
  color:rgba(255,255,255,.55);
}
.site-footer__bottom-inner{ justify-content:space-between; }
.site-footer__copy{
  font-family:var(--font-display);
  letter-spacing:.04em;
  margin:0;
}
.site-footer__legal{ display:flex; gap:20px; flex-wrap:wrap; }
.site-footer__legal a{ text-underline-offset:3px; transition:color .2s ease; }
.site-footer__legal a:hover{ color:var(--vio-gold-hi); opacity:1; }

/* --- 制作クレジット --- */
.site-footer__credit{
  border-top:1px solid rgba(255,255,255,.06);
  padding:16px 20px 26px;
}
.site-footer__credit a{ opacity:.7; }
.site-footer__credit a:hover{ opacity:1; }
.site-footer__credit-label{
  font-family:var(--font-display);
  font-size:.68rem; letter-spacing:.1em;
  color:rgba(255,255,255,.6);
}
.site-footer__credit-logo{ height:24px; }

/* --- タブレット（〜1024px）：ブランドを全幅にして2カラム --- */
@media (max-width:1024px){
  .site-footer__grid{
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:36px 40px;
  }
  .site-footer__col--brand{ grid-column:1 / -1; }
}

/* --- モバイル（〜768px）：1カラム。カラム間は細い罫線で区切る --- */
@media (max-width:768px){
  .site-footer__main{ padding:40px 20px 30px; }
  .site-footer__grid{ grid-template-columns:1fr; gap:0; }
  .site-footer__col + .site-footer__col{
    margin-top:28px; padding-top:28px;
    border-top:1px solid rgba(255,255,255,.08);
  }
  .site-footer__logo{ height:48px; }
  .site-footer__team-name{ font-size:1.2rem; }
  .site-footer__wordmark svg{ height:28px; }
  .site-footer__heading-en{ font-size:1.05rem; }
  /* 項目名が短いのでSPでも2列を維持する。1列にすると項目数ぶん縦に伸びて
     フッターだけで1画面を超えてしまう */
  .site-footer__nav{ gap:12px 14px; }
  .site-footer__nav a{ padding-left:13px; }
  /* タップ領域を44px確保 */
  .site-footer__sns a{ width:44px; height:44px; }
  .site-footer__contact-btn{ width:100%; justify-content:center; }
  .site-footer__bottom{ padding:16px 20px; }
  .site-footer__bottom-inner{
    flex-direction:column; justify-content:center;
    text-align:center; gap:10px;
  }
}

/* iPhone SE 等の極小幅だけ1列に戻す（2列だと項目名が折り返して読みにくい） */
@media (max-width:359px){
  .site-footer__nav{ grid-template-columns:1fr; }
}

/* ============================================================
   6) ヘッダー：エンブレム横のクラブ名（サイトタイトル）
      「外観 → カスタマイズ → サイト基本情報」で
      サイトタイトル = F.C VIOLET'S、タイトル表示ON にする。
   ============================================================ */
.site-header__brand{ display:flex; align-items:center; gap:16px; }
/* ロゴをヘッダーいっぱいに大きく。デスクトップはヘッダー自体も少し高くする。 */
@media (min-width:769px){
  :root{ --header-h:88px; }
  .site-header__brand img,
  .custom-logo{ height:80px; }
}
@media (max-width:768px){
  /* モバイルは --header-h:60px なのでロゴもそれに合わせる */
  .site-header__brand img,
  .custom-logo{ height:52px; }
}
.site-header__title{
  font-family:var(--font-crest);
  font-weight:800;
  color:var(--vio-gold);
  font-size:1.3rem;
  letter-spacing:.06em;
  line-height:1.05;
  text-decoration:none;
}

/* ============================================================
   7) 試合結果 / 次の試合カード（ダーク・スコアボード風：青黒×金）
      白カードをやめ、金枠＋大型スコア＋スコアボード窓で
      "一見変わった印象・視認性・雰囲気" を出す。
   ============================================================ */
.match-result-card,
.next-match-card{
  background:
    radial-gradient(130% 90% at 50% -15%, rgba(122,79,216,.32), transparent 60%),
    linear-gradient(155deg, #4a2c8f 0%, #1e1338 48%, #0d0918 100%);
  color:#eef1f8;
  border:1px solid rgba(205,164,81,.38);
  border-radius:0;                 /* カードは角丸なし */
  box-shadow:0 20px 46px rgba(0,0,0,.5);
  overflow:hidden;
  position:relative;
}
/* 上端の金ライン＋斜めの光沢（雰囲気） */
.match-result-card::after,
.next-match-card::after{
  content:""; position:absolute; left:0; right:0; top:0; height:3px;
  background:linear-gradient(90deg, transparent, var(--vio-gold), transparent);
}
.match-result-card::before,
.next-match-card::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(115deg, transparent 45%, rgba(205,164,81,.08) 50%, transparent 55%);
}

/* クレスト（円のボーダーは無し・背景も無しでクレストのみ表示） */
.match-result-card__crest-img,
.next-match-card__crest-img{
  width:66px; height:66px;
  object-fit:contain;
  background:none;
  border:none;
}
.match-result-card__team-name,
.next-match-card__team-name{
  font-family:var(--font-crest);
  font-weight:700; letter-spacing:.06em; color:#fff;
}
/* チーム名（エンブレム有無に関わらず）を縦中央に */
.match-result-card__body{ align-items:stretch; }
.match-result-card__team{ justify-content:center; }

/* ---- 試合結果カード ---- */
.match-result-card__header{
  background:transparent;
  padding:18px 24px 12px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.match-result-card__date{
  font-family:var(--font-crest); font-weight:800;
  color:var(--vio-gold); letter-spacing:.08em; font-size:1.4rem;
}
.match-result-card__competition{
  color:rgba(255,255,255,.6);
  text-transform:uppercase; letter-spacing:.16em; font-size:.7rem;
}
.match-result-card__body{ padding:30px 18px 26px; gap:10px; }

/* スコアを“スコアボードの窓”に収める（シグネチャー） */
.match-result-card__score{
  gap:10px;
  padding:10px 20px 12px;
  border-radius:10px;
  background:rgba(0,0,0,.28);
  box-shadow:inset 0 0 0 1px rgba(205,164,81,.28);
}
.match-result-card__score-num{
  font-family:var(--font-crest); font-weight:800;
  font-size:3.3rem; line-height:1; letter-spacing:.03em;
  color:#fff; text-shadow:0 2px 22px rgba(122,79,216,.7);
}
.match-result-card__badge{
  font-family:var(--font-crest); letter-spacing:.18em; border-radius:2px;
}
.match-result-card__badge--win{ background:linear-gradient(135deg,var(--vio-gold),var(--vio-gold-hi)); color:var(--vio-ink); }
.match-result-card__badge--lose{ background:#c0392b; color:#fff; }
.match-result-card__badge--draw{ background:#3d5480; color:#fff; }
.match-result-card__pk{ color:rgba(255,255,255,.6); }
.match-result-card__footer{
  border-top:1px solid rgba(255,255,255,.08);
  color:rgba(255,255,255,.6);
  background:rgba(0,0,0,.18);
}
.match-result-card__detail-link{ color:var(--vio-gold); }
.match-result-card__detail-link:hover{ color:var(--vio-gold-hi); }

/* ---- 次の試合カード ---- */
.next-match-card__competition{
  background:transparent;
  color:rgba(255,255,255,.6);
  text-transform:uppercase; letter-spacing:.16em; font-size:.7rem;
  padding:16px 12px 2px;
}
.next-match-card__meta{ padding:6px 24px 2px; }
.next-match-card__date{
  font-family:var(--font-crest); font-weight:800;
  color:var(--vio-gold); font-size:2rem; letter-spacing:.04em;
}
.next-match-card__date small{ color:rgba(255,255,255,.75); }
.next-match-card__time{
  font-family:var(--font-crest); font-weight:700;
  color:#fff; letter-spacing:.14em; opacity:1; font-size:.85rem;
}
.next-match-card__body{ padding:22px 24px 30px; }
/* VS を金リングのメダリオンに（シグネチャー） */
.next-match-card__vs{
  width:58px; height:58px; border-radius:50%;
  border:1px solid rgba(205,164,81,.45);
  background:rgba(0,0,0,.28);
  justify-content:center;
}
.next-match-card__vs-text{
  font-family:var(--font-crest); font-weight:800; font-size:1.5rem;
  color:var(--vio-gold);
}
.next-match-card__venue{
  background:rgba(0,0,0,.28);
  border-top:1px solid rgba(255,255,255,.08);
  color:rgba(255,255,255,.7);
}

/* スライダーの表示幅を抑え、カード幅を NEXT MATCH（単独カード）と同程度(約760px)に。
   親は slidesPerView:1.7 でセクション全幅を使うため、ラッパーに max-width を掛ける。 */
.section-match-results .match-results-slider-wrap,
.section-next-match .next-match-slider-wrap{
  max-width:1360px;
  padding-left:20px;
  padding-right:20px;
}

/* ---- スライダーの矢印・ドット（暗背景用） ---- */
.match-results-slider__prev, .match-results-slider__next,
.next-match-slider__prev, .next-match-slider__next{ color:rgba(255,255,255,.85); }
.match-results-slider__prev:hover, .match-results-slider__next:hover,
.next-match-slider__prev:hover, .next-match-slider__next:hover{ color:var(--vio-gold); }
.match-results-slider__pagination .swiper-pagination-bullet,
.next-match-slider__pagination .swiper-pagination-bullet{ background:rgba(255,255,255,.3); }
.match-results-slider__pagination .swiper-pagination-bullet-active,
.next-match-slider__pagination .swiper-pagination-bullet-active{ background:var(--vio-gold); }

/* ============================================================
   8) 次の試合カード（ガンバ大阪風レイアウト：相手エンブレム大｜大会名・特大日付・詳細ボタン）
      ダークカードの土台（上の .next-match-card）を流用し、中の配置を作り替える。
   ============================================================ */
.nm-card{
  display:grid;
  grid-template-columns:minmax(150px, 33%) 1fr;
  gap:28px;
  align-items:center;
  text-align:left;              /* 親の中央寄せを解除 */
  max-width:760px;
  margin:0 auto;
  padding:30px 34px;
}
/* 左：相手エンブレム＋VS.相手名（ロゴが無ければ名前だけを縦中央に） */
.nm-card__crestcol{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; }
.nm-card__crest{
  width:132px; height:132px;
  display:flex; align-items:center; justify-content:center;
}
.nm-card__crest img{ width:100%; height:100%; object-fit:contain; }
.nm-card__opp{
  font-family:var(--font-crest); font-weight:800;
  font-size:1.3rem; letter-spacing:.04em; color:#fff; text-align:center;
}
/* 右：情報 */
.nm-card__competition{
  color:#fff; font-weight:700; letter-spacing:.06em;
  font-size:.95rem; margin-bottom:10px;
}
.nm-card__daterow{ display:flex; align-items:flex-end; gap:18px; flex-wrap:wrap; }
.nm-card__bigdate{
  font-family:var(--font-crest); font-weight:800;
  font-size:clamp(3rem, 7vw, 4.8rem); line-height:.85;
  letter-spacing:.02em; color:var(--vio-gold);
}
.nm-card__when{ display:flex; flex-direction:column; gap:3px; padding-bottom:8px; }
.nm-card__venue{ color:#fff; font-size:.92rem; letter-spacing:.02em; }
.nm-card__kick{
  font-family:var(--font-crest); font-weight:700;
  color:var(--vio-gold-hi); letter-spacing:.08em; font-size:.92rem;
}
.nm-card__detail{
  display:flex; align-items:center; justify-content:center; gap:10px;
  position:relative;
  margin-top:22px; max-width:340px;
  padding:15px 22px;
  background:var(--vio-royal); color:#fff;
  font-family:var(--font-crest); font-weight:700; letter-spacing:.1em;
  border-radius:4px; text-decoration:none;
  transition:background .2s, transform .2s;
}
.nm-card__detail svg{ position:absolute; right:16px; }
.nm-card__detail:hover{ background:#3b63e6; transform:translateY(-2px); }

@media (max-width:560px){
  .nm-card{ grid-template-columns:1fr; gap:18px; text-align:center; padding:26px 20px; }
  .nm-card__daterow{ justify-content:center; }
  .nm-card__detail{ margin-left:auto; margin-right:auto; }
}

/* ============================================================
   9) 試合結果カード（ガンバ大阪風レイアウト：相手エンブレム大｜大会名・勝敗・大スコア・詳細）
      土台は上の .match-result-card（青黒グラデ＋金枠）を流用し、中の配置を作り替える。
   ============================================================ */
.mr-card{
  display:flex; flex-direction:column;
  max-width:760px; margin:0 auto;
  padding:0;                       /* head / match / foot が各自パディング */
  text-align:left;
}
/* 上部：大会名（左）｜日付（右） */
.mr-card__head{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:15px 26px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.mr-card__comp{ color:#fff; font-weight:700; letter-spacing:.05em; font-size:.86rem; }
.mr-card__date{ font-family:var(--font-crest); font-weight:700; color:var(--vio-gold-hi); letter-spacing:.06em; font-size:.9rem; white-space:nowrap; }

/* 中央：ホーム｜スコア｜アウェイ の対称マッチアップ
   flex:1 で余った高さを吸収し、下部の帯をカード最下部に固定（スライダーで高さが揃っても余白が出ない） */
.mr-card__match{
  flex:1 1 auto;
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
  gap:18px; padding:26px 24px;
}
.mr-card__team{ display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:12px; min-width:0; }
.mr-card__crest{ width:76px; height:76px; display:flex; align-items:center; justify-content:center; }
.mr-card__crest img{ width:100%; height:100%; object-fit:contain; }
.mr-card__team-name{
  font-family:var(--font-crest); font-weight:800; font-size:1.05rem;
  color:#fff; text-align:center; letter-spacing:.03em; line-height:1.2;
}
/* スコア（囲みボックス・ボーダーなし。中央に浮かせる） */
.mr-card__scorebox{
  display:flex; flex-direction:column; align-items:center; gap:9px;
  padding:2px 20px;
}
/* 勝敗ラベル：塗りボックスをやめ、結果ごとに色分けした「文字＋短い下線」のシンプル表示 */
.mr-card__badge{
  display:inline-block; position:relative;
  font-family:var(--font-crest); font-weight:800;
  font-size:.9rem; letter-spacing:.26em; text-indent:.26em;
  padding-bottom:8px; background:none; color:#fff;
}
.mr-card__badge::after{
  content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  width:22px; height:2px; border-radius:2px; background:currentColor;
}
.mr-card__badge--win{ color:var(--vio-gold-hi); }   /* WIN：ゴールド */
.mr-card__badge--draw{ color:#aab4c6; }              /* DRAW：シルバー */
.mr-card__badge--lose{ color:#e06b6b; }              /* LOSE：レッド */
.mr-card__scorenum{
  font-family:var(--font-crest); font-weight:800;
  font-size:3.1rem; line-height:.9; color:#fff; letter-spacing:.02em;
  text-shadow:0 2px 20px rgba(122,79,216,.6);
}
.mr-card__dash{ color:var(--vio-gold); padding:0 .16em; }
.mr-card__pk{ font-family:var(--font-crest); color:rgba(255,255,255,.6); font-size:.76rem; }

/* 下部：会場（左）｜試合詳細（右） */
.mr-card__foot{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:13px 26px;
  border-top:1px solid rgba(255,255,255,.08);
  background:rgba(0,0,0,.18);
  font-size:.85rem;
}
.mr-card__venue{ color:rgba(255,255,255,.7); }
.mr-card__detail-link{
  display:inline-flex; align-items:center; gap:6px; flex-shrink:0;
  color:var(--vio-gold); font-family:var(--font-crest); font-weight:700;
  letter-spacing:.06em; text-decoration:none; transition:color .2s;
}
.mr-card__detail-link:hover{ color:var(--vio-gold-hi); }

@media (max-width:560px){
  /* 上部：大会名が長いと日付と重なるため、縦積み（中央）にする */
  .mr-card__head{ flex-direction:column; align-items:center; gap:3px; padding:12px 16px; }
  .mr-card__comp{ font-size:.8rem; text-align:center; line-height:1.35; }
  .mr-card__date{ font-size:.82rem; }
  /* 下部：会場名が長い場合は省略して「試合詳細」と重ならないように */
  .mr-card__foot{ padding:12px 16px; gap:10px; }
  .mr-card__venue{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .mr-card__match{ gap:8px; padding:20px 12px; }
  .mr-card__crest{ width:52px; height:52px; }
  .mr-card__team-name{ font-size:.82rem; }
  .mr-card__scorenum{ font-size:2.4rem; }
  .mr-card__scorebox{ padding:2px 10px; }

  /* SP：カードの左右余白を揃える */
  /* 試合結果（スライダー）：余白が広すぎるのでラッパーのpaddingを詰める */
  .section-match-results .match-results-slider-wrap{ padding-left:0; padding-right:0; }
  /* 次の試合（単独カード）：端に密着していたので左右に余白を付与 */
  .section-next-match .nm-card{ margin-left:16px; margin-right:16px; }
}

/* ============================================================
   10) お知らせ（NEWS）：上=最新5件スライダー / 下=カテゴリー・タグ付きリスト
   ============================================================ */
/* スライダーのビューポートは overflow:visible（＝カードをコンテナ幅より外へ
   見切れさせる）。はみ出しはここ＝画面幅で切る。clip なら縦（影・フォーカス
   リング）は切られず、横スクロールバーも出ない。非対応ブラウザ用に hidden を先に置く。 */
.section-news{ overflow-x:hidden; overflow-x:clip; }

/* --- 上：スライダー（自作JS / news-slider.js。ライブラリ非依存） ---
   表示枚数の正は section-news.php の data-per-view（JS が --fcv-per-view に入れる）。
   下のメディアクエリはそれと同じ値を先に当てておくための「JS実行前の初期値」で、
   これが無いと 2枚→3枚 の一瞬のガタつきが出る。
   ブレークポイントは news-slider.js の BP_TABLET / BP_DESKTOP と揃えること。 */
.fcv-slider{
  --fcv-per-view:2;   /* SPも2枚並べる（選手スライダーと同じ見せ方） */
  --fcv-gap:12px;     /* 2枚並ぶぶんカード幅が細いので溝は詰める */
  position:relative;
}
.fcv-slider__viewport{
  /* コンテナ幅で切らず、カードを画面の左右両端まで見切れさせる。
     はみ出しは .section-news 側（＝画面幅）で切る。 */
  overflow:visible;
}
.fcv-slider__track{
  display:flex;
  gap:var(--fcv-gap);
  will-change:transform;
  touch-action:pan-y;              /* 縦スクロールはブラウザに任せる */
}
.fcv-slider__slide{
  flex:0 0 calc((100% - (var(--fcv-per-view) - 1) * var(--fcv-gap)) / var(--fcv-per-view));
  min-width:0;
  height:auto;
}
.fcv-slider.is-dragging{ cursor:grabbing; }

/* 操作系（矢印＋ドット）。全部収まっているときは出さない */
.fcv-slider__controls{
  display:flex; align-items:center; justify-content:center; gap:18px;
  margin-top:26px;
}
.fcv-slider.is-static .fcv-slider__controls{ display:none; }

.fcv-slider__arrow{
  width:44px; height:44px; flex:0 0 auto; padding:0;
  display:flex; align-items:center; justify-content:center;
  background:transparent;
  border:1px solid rgba(205,164,81,.55);
  border-radius:50%;
  color:var(--vio-gold);
  cursor:pointer;
  transition:background-color .25s ease, color .25s ease, border-color .25s ease, opacity .25s ease;
}
.fcv-slider__arrow:hover:not(:disabled){
  background:var(--vio-gold); border-color:var(--vio-gold); color:var(--vio-ink);
}
.fcv-slider__arrow:focus-visible{ outline:2px solid var(--vio-gold-hi); outline-offset:2px; }
.fcv-slider__arrow:disabled,
.fcv-slider__arrow.is-disabled{ opacity:.28; cursor:default; }

.fcv-slider__dots{ display:flex; align-items:center; gap:9px; }
.fcv-slider__dot{
  width:9px; height:9px; padding:0;
  border:0; border-radius:50%;
  background:rgba(255,255,255,.3);
  cursor:pointer;
  transition:background-color .25s ease, width .25s ease;
}
.fcv-slider__dot.is-active{ width:24px; border-radius:5px; background:var(--vio-gold); }
.fcv-slider__dot:focus-visible{ outline:2px solid var(--vio-gold-hi); outline-offset:3px; }

@media (min-width:768px){
  .fcv-slider{ --fcv-per-view:2; --fcv-gap:22px; }
}
@media (min-width:1024px){
  .fcv-slider{ --fcv-per-view:3; --fcv-gap:28px; }
}

.news-item, .news-item__link{ display:block; height:100%; }
/* 親テーマの .news-item は「日付＋タイトルを1行に並べるリスト行」用で padding:16px 0
   を持つ。スライダーではカードとして使い回しているため、その上パディングが
   見出しとサムネイルの間に乗り、お知らせだけ余白が広く見えていた。
   カード下端の区切り線までの余白は活かしたいので、上だけ落とす。 */
.section-news .fcv-slider .news-item{ padding-top:0; }
.news-item__link{ text-decoration:none; }
.news-item__thumb{
  position:relative; aspect-ratio:16 / 10; overflow:hidden;
  background:linear-gradient(135deg, var(--vio-violet), var(--vio-ink));
}
.news-item__thumb img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.news-item__link:hover .news-item__thumb img{ transform:scale(1.05); }
.news-item__ph{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
}
.news-item__ph::after{
  content:"VIOLET'S"; font-family:var(--font-emblem); font-weight:700;
  letter-spacing:.22em; font-size:1.05rem; color:rgba(232,200,128,.42);
}
.news-item__meta{ display:flex; align-items:center; gap:10px; margin-top:15px; }
.news-item__date{ font-family:var(--font-crest); color:var(--vio-gold-hi); letter-spacing:.06em; font-size:.9rem; }
/* カテゴリータグ：親テーマの塗りつぶしタグ（--color-secondary 地・金文字）をやめ、
   下のリスト（.news-list__cat）や試合ページのタグと同じ「暗い半透明＋白の細線」に統一。
   スコープを .section-news に限定して、親テンプレート側（team-category）には触れない。 */
.section-news .news-item__cat{
  display:inline-block;
  font-size:.75rem; font-weight:700; letter-spacing:.04em; line-height:1.4;
  color:#fff;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.22);
  padding:4px 10px; border-radius:4px; white-space:nowrap;
}
.news-item__title{
  color:#fff; font-weight:700; font-size:1.05rem; line-height:1.55; margin-top:8px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.news-item__excerpt{
  color:rgba(255,255,255,.58); font-size:.85rem; line-height:1.7; margin-top:8px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}

/* SPは2枚並び＝カード幅が画面の半分弱（375px幅で約160px）になる。
   PCのままの文字サイズだと1行に数文字しか入らず読めないので、
   スライダー内のカードだけ縮める。抜粋は断片になるだけなので落とす
   （タイトル2行までは残す）。下のリスト（.news-list）には影響させない。 */
@media (max-width:768px){
  .section-news .fcv-slider .news-item__meta{ gap:6px; margin-top:11px; }
  .section-news .fcv-slider .news-item__date{ font-size:.76rem; letter-spacing:.04em; }
  .section-news .fcv-slider .news-item__cat{
    font-size:.65rem; padding:3px 7px;
    max-width:9em; overflow:hidden; text-overflow:ellipsis;
  }
  .section-news .fcv-slider .news-item__title{ font-size:.86rem; line-height:1.5; margin-top:6px; }
  .section-news .fcv-slider .news-item__excerpt{ display:none; }
  .section-news .fcv-slider .news-item__ph::after{ font-size:.8rem; letter-spacing:.16em; }
}

/* --- カテゴリー絞り込みタブ（改行なし・SPは横スクロール） --- */
.news-filter{
  display:flex; flex-wrap:nowrap; justify-content:flex-start; gap:10px;
  max-width:900px; margin:36px auto 0;
  overflow-x:auto; -webkit-overflow-scrolling:touch;
  padding-bottom:4px;
  scrollbar-width:none;               /* Firefox: スクロールバー非表示 */
}
.news-filter::-webkit-scrollbar{ display:none; }   /* WebKit: スクロールバー非表示 */
@media (min-width:641px){
  .news-filter{ justify-content:center; }          /* PCは収まるので中央寄せ */
}
/* SP：タブの並びを画面幅いっぱいに広げ、上のスライダーのカードと同じく
   左右の余白（.container のパディング）を越えて画面端まで見切れさせる。
   margin-inline の負値で 100vw に広げ、同じ量を padding-inline で戻すので
   1つ目のタブの位置＝コンテンツ左端は変わらない。overflow-x:auto はそのまま
   なので横スクロールも従来どおり効く。 */
@media (max-width:640px){
  .news-filter{
    margin-inline:calc(50% - 50vw);
    padding-inline:calc(50vw - 50%);
    /* スクロール末端でも右端に余白が残るようスクロール用パディングを確保 */
    scroll-padding-inline:calc(50vw - 50%);
  }
}
.news-filter__btn{
  flex-shrink:0; white-space:nowrap;   /* 縮めない・改行しない */
  font-family:var(--font-display);
  font-size:.82rem; font-weight:700; letter-spacing:.04em;
  color:rgba(255,255,255,.72);
  background:transparent; border:1px solid rgba(255,255,255,.25);
  padding:8px 20px; border-radius:999px; cursor:pointer;
  transition:color .2s, background .2s, border-color .2s;
}
.news-filter__btn:hover{ color:#fff; border-color:rgba(205,164,81,.7); }
.news-filter__btn--active{
  color:var(--vio-ink);
  background:linear-gradient(135deg,var(--vio-gold),var(--vio-gold-hi));
  border-color:var(--vio-gold);
}

/* --- 下：リスト（サムネイル｜日付・カテゴリ横並び／その下にタイトル） --- */
.news-list{ list-style:none; margin:26px auto 0; padding:0; max-width:900px; }
.news-list__item{ border-bottom:1px solid rgba(255,255,255,.1); }
.news-list__item:first-child{ border-top:1px solid rgba(255,255,255,.1); }
.news-list__link{
  display:grid;
  grid-template-columns:auto 1fr auto;   /* サムネ｜本文｜矢印 */
  align-items:center; gap:18px;
  padding:14px 6px; text-decoration:none; transition:background .2s;
}
.news-list__link:hover{ background:rgba(255,255,255,.045); }
.news-list__thumb{
  width:104px; height:66px; flex-shrink:0; overflow:hidden;
  background:linear-gradient(135deg, var(--vio-violet), var(--vio-ink));
}
.news-list__thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.news-list__ph{ display:block; width:100%; height:100%; }
.news-list__body{ min-width:0; }
.news-list__meta{ display:flex; align-items:center; gap:12px; margin-bottom:7px; }
.news-list__date{ font-family:var(--font-crest); color:var(--vio-gold-hi); font-size:.85rem; letter-spacing:.04em; white-space:nowrap; }
/* スライダー側（.section-news .news-item__cat）と同一の値に揃える */
.news-list__cat{
  display:inline-block;
  font-size:.75rem; font-weight:700; letter-spacing:.04em; line-height:1.4;
  color:#fff;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.22);
  padding:4px 10px; border-radius:4px; white-space:nowrap;
}
.news-list__title{ color:#fff; font-weight:600; font-size:.98rem; line-height:1.5; display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.news-list__arrow{ color:rgba(255,255,255,.45); display:flex; flex-shrink:0; }
.news-list__link:hover .news-list__arrow{ color:var(--vio-gold); }

@media (max-width:560px){
  .news-list__link{ gap:12px; padding:12px 4px; }
  .news-list__thumb{ width:80px; height:54px; }
  .news-list__title{ white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
  .news-list__arrow{ display:none; }
}

/* ============================================================
   スポンサーロゴ帯（ヘッダー上・トップページのみ / wp_body_open で出力）
   ============================================================ */
.sponsor-bar{
  background:#ffffff;
  border-bottom:1px solid var(--vio-line);
  box-shadow:0 1px 0 rgba(205,164,81,.35);   /* ゴールドの極細ライン */
}
.sponsor-bar__inner{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px 26px;
  flex-wrap:wrap;
  padding:8px 0;
}
.sponsor-bar__label{
  font-family:var(--font-emblem);
  font-weight:600;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--vio-gold);
  white-space:nowrap;
}
.sponsor-bar__list{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px 22px;
  flex-wrap:wrap;
  margin:0;
  padding:0;
  list-style:none;
}
.sponsor-bar__item{ display:flex; align-items:center; }
.sponsor-bar__link{
  display:inline-flex;
  align-items:center;
  transition:opacity .2s ease, transform .2s ease;
}
.sponsor-bar__link:hover{ opacity:.72; transform:translateY(-1px); }
.sponsor-bar__logo{
  display:block;
  height:var(--sb-logo-h, 30px);
  width:auto;
  max-width:var(--sb-logo-w, 130px);
  object-fit:contain;
}

/* 区分ごとのロゴサイズ。トップ＞プラチナ＞ゴールドの序列を高さで付ける。
   帯は1行に収める前提なので、差は付けすぎず 40 / 34 / 30px に留めている。
   幅の上限を高さの5〜6倍と広めに取っているのは、横長のワードマーク
   （例：島田板金は8:1）が幅で頭打ちになって極端に小さく潰れるのを防ぐため。 */
.sponsor-bar__item--top-partner{ --sb-logo-h:40px; --sb-logo-w:210px; }
.sponsor-bar__item--platinum{    --sb-logo-h:34px; --sb-logo-w:175px; }
.sponsor-bar__item--gold{        --sb-logo-h:30px; --sb-logo-w:165px; }

@media (max-width:1024px){
  .sponsor-bar__list{ gap:8px 16px; }
  .sponsor-bar__item--top-partner{ --sb-logo-h:34px; --sb-logo-w:170px; }
  .sponsor-bar__item--platinum{    --sb-logo-h:29px; --sb-logo-w:142px; }
  .sponsor-bar__item--gold{        --sb-logo-h:26px; --sb-logo-w:134px; }
}

@media (max-width:768px){
  .sponsor-bar__inner{ gap:6px 14px; padding:7px 0; flex-wrap:nowrap; }
  .sponsor-bar__label{ font-size:.66rem; letter-spacing:.1em; }

  /* SPはトップパートナー＋プラチナの2社のみに絞って中央に収める。
     6枠を1画面に押し込むと判読できず、横スクロールも気付かれにくいため、
     ゴールド以下は落として PC（6社表示）と役割を分ける。 */
  .sponsor-bar__item--gold{ display:none; }
  .sponsor-bar__list{
    gap:16px;
    flex-wrap:nowrap;
    width:100%;
    justify-content:center;
  }
  .sponsor-bar__item{ flex:0 0 auto; }
  .sponsor-bar__logo{ height:var(--sb-logo-h, 24px); max-width:var(--sb-logo-w, 110px); }
  .sponsor-bar__item--top-partner{ --sb-logo-h:28px; --sb-logo-w:130px; }
  .sponsor-bar__item--platinum{    --sb-logo-h:25px; --sb-logo-w:118px; }
}

/* ============================================================
   10) 試合情報セクション（試合結果 × 次の試合を横並び）
       スライダーを廃し、最新1件のカードを左右に並べる統合レイアウト。
   ============================================================ */
.section-fixtures .front-fixtures{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  align-items:stretch;
  /* PCでカードが横に間延びしないよう、2枚組の全体幅に上限を持たせて中央寄せ。
     コンテナいっぱい（1160px）だとカード1枚が566pxになり、エンブレムと
     スコアの間が開いて中身がバラける。960px ならカード1枚466px ＝
     タブレットで1列にしたときの上限幅（460px）とほぼ同じ縦横比になる。
     見出し（Match / 試合情報）とページ下部のCTAは .container のままなので、
     ここで狭めるのはカードの行だけ。 */
  max-width:960px;
  margin:8px auto 0;
}
.section-fixtures .front-fixtures__col{
  display:flex;
  flex-direction:column;
  min-width:0;                       /* グリッド内のはみ出し防止 */
}
/* カラー見出し（Result / Next） */
.section-fixtures .front-fixtures__label{
  display:flex; align-items:baseline; gap:12px;
  margin-bottom:14px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.section-fixtures .front-fixtures__label-en{
  font-family:var(--font-crest); font-weight:800;
  font-size:1.15rem; letter-spacing:.04em; color:var(--vio-gold);
}
.section-fixtures .front-fixtures__label-ja{
  font-weight:700; font-size:.9rem; letter-spacing:.18em; color:#fff;
}
/* 横並び時は各カードをカラム幅いっぱいに（元は max-width:760px 中央寄せ） */
.section-fixtures .front-fixtures__col .mr-card,
.section-fixtures .front-fixtures__col .nm-card{
  max-width:none;
  width:100%;
  height:100%;                       /* 左右のカード高さを揃える */
  margin:0;
}
/* 次の試合カード：ハーフ幅では相手エンブレム列を少し詰める */
.section-fixtures .front-fixtures__col .nm-card{
  grid-template-columns:minmax(120px, 34%) 1fr;
  gap:22px;
  padding:26px 28px;
}
/* CTA：リンク2つを中央に横並び（デザインは 44章 .fixtures-link） */
.section-fixtures .front-fixtures__cta{
  display:flex;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
  margin-top:34px;
}
/* カード直下の一覧リンクはSP専用。PCでは下部の __cta にまとめて出す */
.section-fixtures .front-fixtures__col-cta{ display:none; }

/* タブレット以下：縦積みに切り替え、各カードは中央寄せで元の最大幅に戻す */
@media (max-width:900px){
  .section-fixtures .front-fixtures{
    grid-template-columns:1fr;
    gap:34px;
  }
  .section-fixtures .front-fixtures__col .mr-card,
  .section-fixtures .front-fixtures__col .nm-card{
    max-width:760px;
    margin:0 auto;
  }
  .section-fixtures .front-fixtures__col .nm-card{
    grid-template-columns:minmax(150px, 33%) 1fr;
  }
}
/* SP：下部のCTAをやめ、各カードの直下にそれぞれの一覧リンクを置く
   （結果カード→試合結果一覧 / 予定カード→試合予定一覧） */
@media (max-width:768px){
  .section-fixtures .front-fixtures__cta{ display:none; }
  .section-fixtures .front-fixtures__col-cta{
    display:flex;
    justify-content:center;
    margin-top:16px;
  }
  .section-fixtures .front-fixtures__col-cta .fixtures-link{ width:100%; max-width:460px; justify-content:center; }
}
@media (max-width:560px){
  .section-fixtures .front-fixtures__col .nm-card{ grid-template-columns:1fr; }
}

/* ============================================================
   11) 次の試合カードを試合結果カード(mr-card)と同一骨格に統一
       .mr-card--next は mr-card の head/match/foot をそのまま流用し、
       中央スコアの位置に「NEXT ラベル＋キックオフ時刻」を表示する。
   ============================================================ */
/* 中央ラベル「NEXT」：勝敗バッジと同じ書式で色だけ明るい青に */
.mr-card__badge--next{ color:#7f9cff; }        /* NEXT：ロイヤルブルー系 */

/* キックオフ時刻：スコア数字(.mr-card__scorenum)に相当する中央の主役 */
.nm-next__kickoff{
  font-family:var(--font-crest); font-weight:800;
  font-size:2.6rem; line-height:.9; letter-spacing:.02em;
  color:var(--vio-gold-hi);
  text-shadow:0 2px 20px rgba(122,79,216,.5);
}
.nm-next__ko-label{
  font-family:var(--font-crest); font-weight:700;
  font-size:.72rem; letter-spacing:.16em; color:rgba(255,255,255,.6);
}

@media (max-width:560px){
  .nm-next__kickoff{ font-size:2rem; }
}

/* ============================================================
   12) 試合情報カード（鹿島アントラーズ風レイアウト / 試合結果・予定 共通）
       背景は青紫×黒のグラデーション＋金枠。上から
       大会名 → 日付+曜日+KICKOFF → 対戦相手(結果はスコア) → 会場 → 試合詳細
       会場は以前カード上端の帯だったが、カードで最初に読ませたいのは
       「いつ・誰と」なので、エンブレム行の下（詳細ボタンの上）に移した。
   ============================================================ */
.section-fixtures .front-fixtures__col .fx-card{ flex:1; }

.fx-card{
  display:flex; flex-direction:column;
  background:
    radial-gradient(130% 90% at 50% -15%, rgba(122,79,216,.32), transparent 60%),
    linear-gradient(155deg, #4a2c8f 0%, #1e1338 48%, #0d0918 100%);
  color:#eef1f8;
  border:1px solid rgba(205,164,81,.38);
  border-radius:6px;
  overflow:hidden;
  box-shadow:0 18px 44px rgba(0,0,0,.5);
  position:relative;
}
/* 上端の金ライン */
.fx-card::after{
  content:""; position:absolute; left:0; right:0; top:0; height:3px; z-index:2;
  background:linear-gradient(90deg, transparent, var(--vio-gold), transparent);
}
.fx-card__body{
  flex:1;
  display:flex; flex-direction:column; align-items:center;
  gap:20px;
  padding:24px 26px 26px;
}
/* ① 大会名・第◯節 */
.fx-card__comp{
  color:rgba(255,255,255,.82); font-size:.9rem; letter-spacing:.04em; text-align:center;
  padding-bottom:10px; border-bottom:1px solid rgba(255,255,255,.18);
}
/* ② 日付＋曜日(大文字3文字)＋KICK OFF時刻 */
.fx-card__datetime{ display:flex; align-items:baseline; justify-content:center; gap:8px; flex-wrap:wrap; }
.fx-card__date{ font-family:var(--font-crest); font-weight:800; font-size:2.9rem; line-height:1; color:#9d90df; letter-spacing:.01em; }
.fx-card__dow{ font-family:var(--font-crest); font-weight:700; font-size:1.15rem; color:#9d90df; }
.fx-card__time{ font-family:var(--font-crest); font-weight:800; font-size:1.35rem; color:#fff; }
.fx-card__ko{ font-size:.7rem; letter-spacing:.12em; color:rgba(255,255,255,.55); }
/* ③ 対戦相手 / 結果 */
.fx-card__teams{ display:flex; align-items:center; justify-content:center; gap:16px; width:100%; }
.fx-card__team{ display:flex; align-items:center; gap:12px; min-width:0; }
/* エンブレム枠。サイズは --fx-crest 1つで管理する（各所の上書きを
   1変数に集約するため、width/height の直接指定はしない） */
.fx-card__crest{
  --fx-crest:54px;
  width:var(--fx-crest); height:var(--fx-crest);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
/* ロゴ未登録チームは no-emblem 画像（picture 経由）を出すので、
   picture も枠いっぱいに広げて img の 100% 指定を効かせる */
.fx-card__crest picture{ width:100%; height:100%; display:flex; }
.fx-card__crest img{ width:100%; height:100%; object-fit:contain; }
.fx-card__team-name{ font-family:var(--font-crest); font-weight:800; font-size:1.08rem; color:#fff; letter-spacing:.02em; line-height:1.2; }
/* 結果：自チーム｜スコア｜相手 の3分割 */
.fx-card__teams--result{ justify-content:space-between; gap:10px; }
.fx-card__teams--result .fx-card__team{ flex-direction:column; flex:1 1 0; gap:10px; text-align:center; }
.fx-card__teams--result .fx-card__team-name{ font-size:.9rem; }
/* 試合結果カードのエンブレムは大きめに */
.fx-card__teams--result .fx-card__crest{ --fx-crest:82px; }
/* 次の試合カードも相手エンブレムを大きく・名前の上に縦配置（試合結果と統一） */
.fx-card__teams--next .fx-card__team{ flex-direction:column; gap:12px; }
.fx-card__teams--next .fx-card__crest{ --fx-crest:82px; }
/* 「vs」表記はSPのコンパクト表示（12-c章）専用。通常のカードでは出さない */
.fx-card__vs{ display:none; }
.fx-card__score{ display:flex; flex-direction:column; align-items:center; gap:4px; flex-shrink:0; padding:0 4px; }
.fx-card__badge{ font-family:var(--font-crest); font-weight:800; font-size:.76rem; letter-spacing:.14em; }
.fx-card__badge--win{ color:var(--vio-gold-hi); }
.fx-card__badge--draw{ color:#aab4c6; }
.fx-card__badge--lose{ color:#e06b6b; }
.fx-card__scorenum{ font-family:var(--font-crest); font-weight:800; font-size:3.5rem; line-height:1; color:#fff; text-shadow:0 2px 20px rgba(122,79,216,.55); }
.fx-card__scorenum span{ color:var(--vio-gold); padding:0 .12em; }
.fx-card__pk{ font-size:.68rem; color:rgba(255,255,255,.55); }
/* ④ 会場：エンブレム行の下に置く控えめな1行（上に細い区切り線）。
   margin-top:auto で「会場＋詳細ボタン」をカードの下端に寄せる。
   トップの2枚・一覧の各行は高さを揃えているので、大会名の有無などで
   中身の量が違っても、この2つの足並みだけは揃う。 */
.fx-card__venue{
  margin-top:auto; align-self:stretch;
  padding-top:15px;
  border-top:1px solid rgba(255,255,255,.16);
  color:rgba(255,255,255,.74); text-align:center;
  font-weight:600; letter-spacing:.06em; font-size:.85rem; line-height:1.5;
}
/* ⑤ 試合詳細ボタン（下端寄せは会場側の margin-top:auto が担う） */
.fx-card__btn{
  margin-top:0; align-self:stretch;
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  background:linear-gradient(135deg, var(--vio-gold), var(--vio-gold-hi));
  color:var(--vio-ink);
  font-family:var(--font-crest); font-weight:800; letter-spacing:.08em;
  padding:14px 20px; text-decoration:none;
  box-shadow:0 6px 18px rgba(205,164,81,.28);
  transition:filter .2s ease, transform .2s ease, box-shadow .2s ease;
}
.fx-card__btn:hover{ filter:brightness(1.06); transform:translateY(-1px); box-shadow:0 10px 26px rgba(205,164,81,.42); }

@media (max-width:900px){
  .section-fixtures .front-fixtures__col .fx-card{ max-width:460px; margin:0 auto; width:100%; }
}
@media (max-width:560px){
  .fx-card__date{ font-size:2.4rem; }
  .fx-card__teams--result{ gap:4px; }
  .fx-card__crest{ --fx-crest:46px; }
  .fx-card__teams--result .fx-card__crest{ --fx-crest:64px; }
  .fx-card__teams--next .fx-card__crest{ --fx-crest:72px; }
  .fx-card__team-name{ font-size:1rem; }

  /* SPのスコアボードで「F.C バイオレ／ッツ」のようにチーム名が
     文字の途中で折り返されていた。3カラム（自チーム｜スコア｜相手）の
     うちスコアが幅を取りすぎているのが原因なので、
     スコア側を詰めてチーム名のカラム幅を稼ぎ、字送りも1行に収まる大きさにする。 */
  .fx-card__teams--result .fx-card__score{ padding:0; }
  .fx-card__teams--result .fx-card__scorenum{ font-size:2.8rem; }
  .fx-card__teams--result .fx-card__team-name{
    font-size:.8rem;
    word-break:keep-all;      /* 和文を1文字単位で折らない（折るなら空白位置で） */
    overflow-wrap:anywhere;   /* それでも収まらない長い名前だけは従来どおり折る */
  }
}
/* 320〜359px の極小幅。ここまで来るとスコアの窓を詰めても
   14px級のチーム名は1行に入らないため、もう一段だけ小さくする。 */
@media (max-width:359px){
  .fx-card__teams--result .fx-card__scorenum{ font-size:2.2rem; }
  .fx-card__teams--result .fx-card__team-name{ font-size:.7rem; }
}

/* 年（試合情報一覧でシーズン「すべて」のときだけ出す。トップページでは出ない） */
.fx-card__year{
  font-weight:700; font-size:1.15rem; line-height:1;
  color:rgba(255,255,255,.55); letter-spacing:.04em;
}

/* ------------------------------------------------------------
   12-b) 試合情報一覧ページ（archive-match.php）
   親テーマの match-result-card / next-match-card をやめ、
   トップページと同じ fx-card を並べる。グリッド自体は親の
   .match-card-grid（2列 / 900px以下で1列）をそのまま使う。
   ------------------------------------------------------------ */
.match-card-grid .fx-card{
  height:100%;        /* 同じ行のカードの高さを揃える */
  max-width:none;
}
/* 一覧では大会名が空の試合もあるため、詳細ボタンは常に最下部に固定 */
.match-card-grid .fx-card__body{ gap:18px; }

@media (max-width:900px){
  /* 1列になったときにカードが間延びしないよう、トップページと同じ上限幅にする */
  .match-card-grid .fx-card{ max-width:460px; margin:0 auto; width:100%; }
}

/* ------------------------------------------------------------
   12-c) SP：トップページの試合カードを画面幅いっぱいの2カラムに
       （左＝試合結果 / 右＝次の試合）。カードは左右の余白を捨てて
       画面端まで広げ、カード間のギャップは持たせず、区切りは細い
       ボーダー1本（縦線）だけにする。
       中身は上から
         ① 日付＋曜日＋時刻
         ② エンブレム（結果＝自チーム｜スコア｜相手 / 予定＝vs＋相手）
         ③ 大会名
         ④ 会場
         ⑤ 試合詳細ボタン
       の順に並べ替える。KICK OFF の文字だけ落とす。

       全幅化は .container の左右パディング 20px（starter/assets/css/style.css）を
       ネガティブマージンで相殺して行い、見出し・会場・CTA など「文字の行」は
       --fx-sp-pad（12px）で内側に戻す。ボーダーだけが画面端まで伸びる。
       半分の幅しかないので、20px ではなく 12px まで詰めている。

       ● 結果カードのチーム名の扱い
         ハーフ幅（375px 端末で実測 ≒163px）に エンブレム｜スコア｜エンブレム を
         収めると、両サイドの列にチーム名まで入れる横幅が残らない。そこで
         自チーム名は落とし、相手チーム名だけを エンブレム＋スコア行の下に
         全幅1行で置く（大会名の上）。自チームはエンブレムで示す。
         マークアップ（inc/fixture-card.php）はPC・試合情報一覧と共用なので、
         この組み替えはここ（SPメディアクエリ内）で行う。予定カードはそのまま。

       並べ替えは .fx-card__body を display:contents にして、
       body の中身を .fx-card 直下のフレックス項目に引き上げ、order で扱う。
       PC（769px以上）と試合情報一覧ページ（.match-card-grid）は従来のまま。

       この詰めたレイアウトは、トップページ（.home）とチームトップ
       （page-template-page-team-category）で共用する（2026-08にチームトップも
       揃えた。以前はチームトップだけ縦積みカードだった）。
       セクション見出しを消す指定は、この章では .home 限定。チームトップも
       SPでは同じく見出しを消すが、PCでは出すため 45章で指定している。
       セクションの上下余白もSPはどちらも 0（.home はこの章、チームトップは45章）。
   ------------------------------------------------------------ */
@media (max-width:768px){
  /* セクション見出し（Match / 試合情報）はトップページのSPでは出さない。
     カード上端の Result / Next ラベルで役割が分かるため、見出しは重複になる。
     見出しを消したうえでセクション上下の余白（.section の padding:60px 0）と
     .front-fixtures の margin-top も落とし、FVヒーローの直下にカードを密着させる。
     下側も同様に padding-bottom:0 とし、カード下端の境界線を次のセクション
     （お知らせ）の上端にそのまま接続させる。カード直下の一覧リンクの下の
     16px（.front-fixtures__col-cta の padding-bottom）は境界線の内側の余白なので残す。 */
  .home .section-fixtures .section-heading{ display:none; }
  .home .section-fixtures{ padding-top:0; padding-bottom:0; }

  :is(.home, body.page-template-page-team-category) .section-fixtures .front-fixtures{
    --fx-sp-line:rgba(255,255,255,.14);
    --fx-sp-pad:12px;                        /* 文字の行を内側に戻す量 */
    grid-template-columns:1fr 1fr;           /* 左＝結果 / 右＝次の試合 */
    gap:0;                                   /* カード間の余白は持たせない */
    margin:0 -20px;                          /* container の 20px を相殺して画面端まで */
    border-top:0;                            /* FVと密着させるので上の線は引かない */
    border-bottom:1px solid var(--fx-sp-line);
  }
  /* チームトップはFV直下ではなくページ中ほどに置かれるので、上にも境界線を引いて
     カードの面がどこから始まるのかを分かるようにする（トップはFVと密着させるため不要）。 */
  body.page-template-page-team-category .section-fixtures .front-fixtures{
    border-top:1px solid var(--fx-sp-line);
  }
  /* 結果カードと予定カードの区切りは縦線1本だけ */
  :is(.home, body.page-template-page-team-category) .section-fixtures .front-fixtures__col + .front-fixtures__col{
    border-left:1px solid var(--fx-sp-line);
  }

  /* Result / Next の見出し：カード上端の細い帯 */
  :is(.home, body.page-template-page-team-category) .section-fixtures .front-fixtures__label{
    margin:0; padding:10px var(--fx-sp-pad) 9px; gap:7px;
    background:rgba(0,0,0,.26);
    border-bottom:1px solid rgba(255,255,255,.10);
  }
  :is(.home, body.page-template-page-team-category) .section-fixtures .front-fixtures__label-en{ font-size:.88rem; }
  :is(.home, body.page-template-page-team-category) .section-fixtures .front-fixtures__label-ja{ font-size:.64rem; letter-spacing:.06em; }

  /* カード本体：枠・角丸・影を外し、背景だけで面を作る */
  :is(.home, body.page-template-page-team-category) .section-fixtures .front-fixtures__col .fx-card{
    max-width:none; width:100%; margin:0;
    border:0; border-radius:0; box-shadow:none;
    gap:11px;
    padding:14px var(--fx-sp-pad);
    background:
      radial-gradient(120% 78% at 50% 0%, rgba(122,79,216,.22), transparent 66%),
      linear-gradient(180deg, rgba(30,19,56,.55), rgba(13,9,24,.55));
  }
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card::after{ display:none; }  /* 上端の金ラインは出さない */
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__body{ display:contents; }

  /* ① 日付＋曜日＋時刻（例：07.19 (SUN) 18:00）。ハーフ幅なので折り返し前提 */
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__datetime{ order:1; gap:3px 6px; padding:0; }
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__date{ font-size:1.18rem; color:#fff; }
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__dow{ font-size:.68rem; }
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__time{ font-size:.88rem; }
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__ko{ display:none; }

  /* ② エンブレム＋スコア */
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__teams{ order:2; width:100%; padding:0; }
  /* 結果：自チーム｜スコア｜相手。両サイドを等幅にしてスコアをカード中央に置く */
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__teams--result{
    display:grid; grid-template-columns:1fr auto 1fr;
    align-items:center; gap:4px;
  }
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__teams .fx-card__team{
    flex-direction:column; align-items:center; gap:6px;
    text-align:center; min-width:0;
  }
  /* 結果カードのチーム名（上のコメント参照）。自チーム名は出さず、相手名だけを
     エンブレム＋スコア行の直下に1行で置く。「vs」は付けない。
     .fx-card__team--opp を display:contents にしてエンブレムと名前を
     それぞれグリッド項目に出し、名前を grid-column:1/-1 で全幅の2行目に送る。 */
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__teams--result .fx-card__team--own .fx-card__team-name{ display:none; }
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__teams--result .fx-card__team--opp{ display:contents; }
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__teams--result .fx-card__team--opp .fx-card__crest{ justify-self:center; }
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__teams--result .fx-card__team--opp .fx-card__team-name{
    grid-column:1 / -1; text-align:center;
    font-size:.65rem; color:rgba(255,255,255,.9);
  }
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__crest{ --fx-crest:44px; }
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__teams--next .fx-card__crest{ --fx-crest:50px; }
  /* 自チームのエンブレムだけ小さく見える問題の補正。
     logo-square.png は 288×288 の正方形だが、盾の絵柄自体は 166×212 しかなく
     周囲に余白が入っている（絵柄の高さ＝画像の 212/288 ＝ 0.736）。一方
     no-emblem.png（160×160）は盾が上下いっぱいまで描かれている。
     同じ枠に object-fit:contain で収めると自チームだけ約26%小さく見えるため、
     1 / 0.736 ≒ 1.36 倍に拡大して盾の見た目の大きさを揃える。
     拡大後も 44px 枠の高さちょうどに収まるので枠からはみ出さない。
     ※ logo-square.png を余白なしで描き直したらこの補正は外すこと。 */
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__team--own .fx-card__crest img{ transform:scale(1.36); }
  /* スコアが2桁（10-0 など）になると中央列が広がるので、両サイドの
     エンブレムは列幅に収まる範囲で縮める（正方形は維持） */
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__teams--result .fx-card__crest{
    width:min(var(--fx-crest), 100%); height:auto; aspect-ratio:1;
  }
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__team-name{
    font-size:.7rem; letter-spacing:0; line-height:1.35;
    overflow-wrap:anywhere;
  }
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__score{ gap:2px; padding:0; }
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__badge{ font-size:.55rem; letter-spacing:.06em; }
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__scorenum{ font-size:1.7rem; text-shadow:none; }
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__pk{ font-size:.55rem; }
  /* 予定：vs ＋ 相手エンブレム（自チーム側は出さない） */
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__teams--next{
    display:flex; align-items:center; justify-content:center; gap:8px;
  }
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__vs{
    display:block;
    font-family:var(--font-crest); font-weight:800;
    font-size:1rem; color:var(--vio-gold);
    letter-spacing:.02em; line-height:1;
  }

  /* ③ 大会名 */
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__comp{
    order:3; padding:0; border-bottom:0;
    font-size:.68rem; line-height:1.45; color:rgba(255,255,255,.8);
  }

  /* ④ 会場：カード下端の控えめな行（PCと同じ位置。SPは区切り線だけを
     ネガティブマージンでカード幅いっぱいに伸ばす）。
     margin-top:auto で「会場＋詳細ボタン」を下端に寄せる */
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__venue{
    order:4;
    margin:auto calc(var(--fx-sp-pad) * -1) 0;
    border-top-color:rgba(255,255,255,.10);
    padding:10px var(--fx-sp-pad) 0;
    font-size:.66rem; font-weight:600; letter-spacing:0; line-height:1.45;
    color:rgba(255,255,255,.62);
  }

  /* ⑤ 試合詳細ボタン */
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__btn{
    order:5; margin-top:0;
    padding:9px 8px; font-size:.68rem; letter-spacing:.02em; gap:4px;
    border-radius:0; box-shadow:none;
  }
  :is(.home, body.page-template-page-team-category) .section-fixtures .fx-card__btn svg{ width:12px; height:12px; }

  /* カード直下の一覧リンク：カード内の文字と同じ内側に揃える */
  :is(.home, body.page-template-page-team-category) .section-fixtures .front-fixtures__col-cta{
    margin:0; padding:0 var(--fx-sp-pad) 16px;
  }
  :is(.home, body.page-template-page-team-category) .section-fixtures .front-fixtures__col-cta .fixtures-link{
    width:100%; max-width:none; justify-content:center;
    padding:9px 8px; font-size:.66rem; letter-spacing:.02em; gap:6px; text-indent:0;
  }
}

/* ============================================================
   13) ヘッダー上の「トップパートナー」帯 & カテゴリバー
   ============================================================ */
/* カテゴリバー（トップチーム / U-15 の2タブ）。
   マークアップは子テーマの fcv_render_team_cat_bar()（inc/team-categories.php）が出力し、
   クラス名は親テーマと同じ .team-cat-bar 系を使う。ここは親のスタイルを
   ブランドの見た目（黒半透明＋金のヘアライン）に寄せる差分。

   ● 項目を左寄せにする理由
     ヘッダー中央のエンブレムは下へはみ出しており、かつヘッダー(z-index:1000)の中に
     描かれるためこのバーより必ず前面に来る。親テーマのように中央寄せにすると
     2タブがちょうどエンブレムの裏に隠れる。クラブ概要ページの .about-nav と同じ扱い。

   ● 追従位置・逃がし量は 38) の :root で定義済みの
     --header-total-h / --about-nav-clearance を再利用する（ヘッダー構成を変えたら
     あちら1か所を直せばこのバーも追従する）。 */
.team-cat-bar{
  display:block;
  position:sticky;
  top:var(--header-total-h, 93px);
  height:auto;                                    /* 親の固定高さ(40px)を解除。高さは padding で決める */
  z-index:900;                                    /* ヘッダー(1000)より下＝SPのメニュー展開時は隠れる */
  background:rgba(13,9,24,.88);                   /* --vio-ink の半透明 */
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(205,164,81,.30);   /* ヘッダー1段目と同じ金のヘアライン */
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.team-cat-bar::-webkit-scrollbar{ display:none; }

.team-cat-bar__inner{
  display:flex;
  align-items:stretch;
  justify-content:flex-start;
  height:auto;
  /* 上の余白はエンブレムの垂れ下がり分の逃がし（値は 38) の :root を参照） */
  padding:var(--about-nav-clearance, 0px) 0 0;
}

.team-cat-bar__item{
  position:relative;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:14px 20px;
  line-height:1;
  white-space:nowrap;
  font-family:var(--font-display);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.16em;
  text-indent:.16em;                 /* letter-spacing の右余りを打ち消して光学的に中央へ */
  color:rgba(255,255,255,.70);
  text-decoration:none;
  transition:color .2s ease;
}
.team-cat-bar__item:hover{ color:#fff; }
.team-cat-bar__item--active{ color:#fff; }

.team-cat-bar__item:focus-visible{
  outline:2px solid var(--vio-gold);
  outline-offset:-2px;
}

/* アクティブ項目：金の下線（左から伸びる）。.about-nav と同じ表現に揃える。
   カテゴリー色（--tc-color）は下線に使わない。ブランド色はどちらも紫系で、
   ほぼ黒のこのバーの上では沈んで「今どちらを見ているか」が読めないため。
   カテゴリー色は明るい面に置かれるフィルタータブ側で効かせる。 */
.team-cat-bar__color-line{
  position:absolute;
  left:20px; right:20px; bottom:0;
  width:auto;
  height:2px;
  border-radius:0;
  background:linear-gradient(90deg,var(--vio-gold),var(--vio-gold-hi));
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .25s ease;
}
.team-cat-bar__item:hover .team-cat-bar__color-line{ transform:scaleX(1); }
.team-cat-bar__item--active .team-cat-bar__color-line{ transform:scaleX(1); }

.team-cat-bar__sep{
  align-self:center;
  width:1px;
  height:14px;
  background:rgba(255,255,255,.16);
  flex-shrink:0;
}

@media (max-width:1024px){
  .team-cat-bar__item{ padding:12px 16px; font-size:.72rem; }
  .team-cat-bar__color-line{ left:16px; right:16px; }
}

/* トップパートナー帯：ロゴ未登録時のテキスト表示（白背景に濃色） */
.sponsor-bar__name{
  font-family:var(--font-crest);
  font-weight:700;
  letter-spacing:.06em;
  color:var(--vio-violet);
  white-space:nowrap;
  font-size:.95rem;
}
/* デモ時はプレースホルダー感を出す（薄めの枠） */
.sponsor-bar--demo .sponsor-bar__name{
  color:#9aa2b4;
  border:1px dashed rgba(60,35,120,.22);
  border-radius:4px;
  padding:6px 18px;
}

/* ============================================================
   14) ヘッダー（東京ヴェルディ風 2段構成）
       1段目：テキストロゴ(左) ｜ 大エンブレム(中央) ｜ SNS(右)  [白背景]
       2段目：メニュー  [ネイビー背景]
   ============================================================ */
.fcv-header{
  position:sticky; top:0; left:0; width:100%;
  height:auto;                       /* 親の固定高さ(var(--header-h))を解除 */
  background:transparent;
  z-index:1000;
  box-shadow:0 2px 14px rgba(0,0,0,.14);
  --fcv-emblem-size:118px;           /* エンブレム表示サイズ（高さ基準・実測118×118）*/
  --fcv-emblem-gap:150px;            /* 2段目メニュー中央の空き（左右16pxずつクリアランス）*/
}

/* ── 1段目（黒背景・ロゴ白）── */
.fcv-header__row1{
  background:var(--vio-ink);                       /* 黒 */
  border-bottom:1px solid rgba(205,164,81,.30);    /* 金の極細ライン */
}
.fcv-header__row1-inner{
  display:flex; align-items:center; justify-content:space-between;
  min-height:46px;                    /* 低く（2段目と同程度）*/
}
.fcv-header__logo{ display:flex; align-items:center; }
/* リンク自体も flex にする。インライン整形のままだと inline-flex の span が
   ベースライン揃えになり、下にディセンダ分の余白（約7px）が付いて
   ロゴが上寄りに見えてしまう。 */
.fcv-header__logo a{ display:flex; align-items:center; }
.fcv-header__logo-img{ display:flex; color:#fff; }   /* インラインSVGを currentColor=白 で表示 */
/* この SVG は viewBox（1000×300）の上下に約18%の余白を持つため、
   指定した高さの約64%しか実際の文字にならない（34px → 文字約22px）。 */
.fcv-header__logo-img svg{ height:34px; width:auto; display:block; }

/* エンブレム：ヘッダー中央に絶対配置し、下へはみ出す（ヴェルディ風）*/
.fcv-header__emblem{
  position:absolute; left:50%; top:5px; transform:translateX(-50%);
  z-index:6; line-height:0;
}
.fcv-header__emblem a{ display:block; line-height:0; }
.fcv-header__emblem-img{
  height:var(--fcv-emblem-size); width:auto; display:block;
  filter:drop-shadow(0 8px 16px rgba(0,0,0,.42));
}
.fcv-header__sns{ display:flex; }
.fcv-header__sns-icons{ display:flex; align-items:center; gap:16px; }
.fcv-header__sns-icons a{ color:#fff; display:inline-flex; transition:opacity .2s ease, transform .2s ease; }
.fcv-header__sns-icons a:hover{ opacity:.65; transform:translateY(-1px); }

/* ── 2段目（メニュー：中央にエンブレム分の空きを作り左右へ）──
   左右を別々の <ul> にして等幅（flex:1 1 0）で分け、その間に固定幅の空きを置く。
   1本の <ul> に margin で穴を空ける方式だと、左右グループの幅差の半分だけ
   穴が横にズレてしまう（auto マージンや flex-grow は必ず均等配分になるため）。 */
.fcv-header__row2{ background:var(--vio-violet); position:relative; z-index:1; }
.fcv-header__menus{ display:flex; align-items:center; }
.fcv-header__menu{ flex:1 1 0; min-width:0; display:flex; }
.fcv-header__menu--left{ justify-content:flex-end; }
.fcv-header__menu--right{ justify-content:flex-start; }
.fcv-header__emblem-gap{ flex:0 0 var(--fcv-emblem-gap); }
.fcv-header__nav .site-nav__list{
  display:flex; justify-content:center; align-items:center; flex-wrap:nowrap;
  gap:2px; margin:0; padding:0; list-style:none;
}
.fcv-header__nav .site-nav__list .menu-item a{
  display:block; padding:0 18px; line-height:46px;
  color:#fff; font-family:var(--font-display); font-weight:700;
  letter-spacing:.05em; font-size:.95rem; text-decoration:none;
  transition:color .2s ease;
  /* 左右の <ul> は min-width:0 の flex アイテムなので、詰まると項目内で
     「スケジュー／ル」のように改行してしまう。項目は必ず1行に保つ。 */
  white-space:nowrap;
}
.fcv-header__nav .site-nav__list .menu-item a:hover{ color:var(--vio-gold-hi); }

/* ── PCのドロップダウン（クラブ概要／チーム／パートナー／選手募集）────────
   親テーマ style.css の .sub-menu は明るいヘッダー前提の配色なので、
   サイトのダークテーマに寄せて上書きする。
   .fcv-header__nav 配下に限定し、他所のサブメニューには影響させない。
   1024px 以下はハンバーガー内のアコーディオンになるためここでは扱わない。

   意匠は「黒い面に白文字」だけのシンプルな作り。金の罫線・金のホバー色は
   使わない（ヘッダーは項目数が多く、装飾を足すと2段目の紫帯と競合して
   ドロップダウンだけが浮いて見えるため）。区別は背景の明暗だけでつける。

   親項目の下辺と接するように出す（間に隙間を作らない）ので、
   親 → 子へマウスを移す間にドロップダウンが閉じることはない。
   親項目自体もリンクのままなので、クリックすればページ本体へ遷移する。 */
@media (min-width:1025px){
  .fcv-header__nav .sub-menu{
    left:50%;                                   /* 親項目の中央に合わせる */
    transform:translateX(-50%) translateY(-4px);
    min-width:170px; padding:4px 0;
    background:var(--vio-ink);
    border:none;
    border-radius:0 0 3px 3px;
    box-shadow:0 10px 24px rgba(0,0,0,.45);
  }
  .fcv-header__nav .menu-item--dropdown:hover > .sub-menu,
  .fcv-header__nav .menu-item-has-children:hover > .sub-menu{
    transform:translateX(-50%) translateY(0);   /* 親の translateY だけを打ち消す */
  }
  .fcv-header__nav .sub-menu .menu-item a{
    padding:9px 18px !important;                /* 親テーマ側が !important のため揃える */
    line-height:1.5 !important;
    font-size:.85rem !important;
    font-weight:500; letter-spacing:.02em;
    color:rgba(255,255,255,.82);
    transition:color .2s ease, background .2s ease;
  }
  .fcv-header__nav .sub-menu .menu-item a:hover{
    background:rgba(255,255,255,.08);
    color:#fff;
  }
  /* SP用の開閉ボタンはPCでは使わない（ホバーで出るため） */
  .fcv-header__nav .site-nav__submenu-toggle{ display:none; }
}

/* 「チーム」「お問い合わせ」を足して項目が10個になったため、狭いデスクトップでは
   左右いっぱいになる。nowrap のまま溢れると中央のエンブレム位置がズレるので、
   文字間と余白だけ詰めて収める（2段階）。
   1024px 以下はハンバーガーのオーバーレイに切り替わるのでここでは扱わない。 */
@media (min-width:1025px) and (max-width:1400px){
  .fcv-header{ --fcv-emblem-gap:134px; }
  .fcv-header__nav .site-nav__list .menu-item a{
    padding:0 12px;
    letter-spacing:.02em;
  }
}
@media (min-width:1025px) and (max-width:1200px){
  .fcv-header{ --fcv-emblem-gap:124px; }
  .fcv-header__nav .site-nav__list .menu-item a{
    padding:0 8px;
    letter-spacing:0;
    font-size:.85rem;
  }
}
/* デスクトップでは nav内のSNS・お問い合わせCTAは非表示（1段目SNSを使用）*/
.fcv-header__nav .site-nav__sns,
.fcv-header__nav .site-nav__cta-btn{ display:none; }
.fcv-header .hamburger{ display:none; }

/* ── モバイル／タブレット（親の .site-nav オーバーレイを活用）──
   ブレークポイントは 1024px。親テーマが max-width:1024px で .site-nav を
   position:fixed のオーバーレイに切り替えるため、ここを 768px にすると
   769〜1024px でハンバーガーが出ずメニューを開けなくなる。 */
@media (max-width:1024px){
  .fcv-header__row1-inner{ min-height:52px; }
  .fcv-header__logo-img svg{ height:27px; }
  .fcv-header__emblem{ top:6px; }
  .fcv-header__emblem-img{ height:64px; filter:drop-shadow(0 4px 10px rgba(0,0,0,.4)); }
  .fcv-header__sns{ display:none; }                 /* SNSはモバイルメニュー内に表示 */
  .fcv-header .hamburger{ display:flex; }
  .fcv-header__row2{ background:none; }              /* nav が position:fixed になり2段目は0高さに */
  /* オーバーレイでは左右分割を解除し、2つの <ul> を縦に連結して1本のリストに見せる */
  .fcv-header__menus{ flex-direction:column; align-items:center; width:100%; }
  .fcv-header__menu{ flex:none; width:100%; justify-content:center; }
  .fcv-header__emblem-gap{ display:none; }
  /* 縦積みでは項目を親の幅いっぱいに伸ばす（デスクトップ用の align-items:center を解除）。
     center のままだと li が文字幅に縮み、項目ごとに区切り線の長さが変わってしまう。 */
  .fcv-header__nav .site-nav__list{ align-items:stretch; gap:0; max-width:340px; }

  /* ── ドロワーを開いてもヘッダーは見えたままにする ──────────────────
     親テーマの .site-nav は position:fixed / z-index:1001 の全画面オーバーレイ。
     1段目は position:static なので、そのままだと 2段目（.fcv-header__row2 が
     position:relative / z-index:1 で重なり文脈を作り、ドロワーはその中に閉じ込め
     られる）より後ろに描かれ、ロゴSVGもエンブレムも隠れてしまう。
     ヘッダー内の重なり順で1段目を 1002 に上げれば、ドロワーの上にロゴと
     エンブレムが残る（ハンバーガーは親テーマ側で既に z-index:1002）。
     エンブレムは1段目からドロワー側へ垂れ下がる形になるので、メニュー1項目目は
     その下端から始める（--fcv-drawer-top を assets/js/nav-drawer.js が実測して入れる）。 */
  .fcv-header__row1{ position:relative; z-index:1002; }

  /* ドロワーは画面最上部（y=0）から始まるが、ヘッダーはスポンサー帯の下に
     sticky で置かれているため、未スクロール時は1段目の上に隙間ができる。
     1段目の上辺から画面外まで同じ黒を敷いて、黒帯を1枚に見せる。 */
  .fcv-header:has(.site-nav.is-open) .fcv-header__row1::before{
    content:"";
    position:absolute; left:0; right:0; bottom:100%; height:100vh;
    background:var(--vio-ink);
  }
  /* 開いている間の×は金に。黒帯の上で「閉じる」だけが光る形にする。
     親テーマは transition:all .3s ease なので、3本の線が同じカーブで
     一斉に動いてしまい ≡→× の変化が硬い。線の回転はドロワーの立ち上がりと
     同じカーブに、真ん中の線の消え際はそれより速くする。 */
  .fcv-header .hamburger span{
    transition:transform .34s cubic-bezier(.22,.61,.36,1),
               opacity .18s ease,
               background-color .26s ease;
  }
  .fcv-header .hamburger.is-active span{ background:var(--vio-gold-hi); }
  .fcv-header .hamburger:focus-visible{
    outline:2px solid var(--vio-gold);
    outline-offset:2px;
  }

  /* モバイルメニュー内では SNS を表示（親の .site-nav__sns スタイルが適用される）*/
  .fcv-header__nav .site-nav__sns{ display:flex; }
  .fcv-header__nav .site-nav__cta-btn{ display:block; }

  /* ── ドロワーの意匠：紫×黒（サイト共通のダークテーマ）────────────
     親テーマはカスタマイザーの --color-mobile-menu-bg（既定 #0d2137 のネイビー）を
     背景に敷くため、サイトの紫×黒から浮いていた。
     :root の変数を差し替える手は使えない（カスタマイザーのインラインCSSが
     custom.css より後に出力されて負ける）ので、詳細度で勝つ形で上書きする。

     上端はヘッダーと同じ黒。エンブレムの背後だけ紫を薄く広げ、
     下へ向かってまた黒へ落とす。金は下の項目のアクセントにだけ使う。 */
  .fcv-header .fcv-header__nav{
    background:
      radial-gradient(88% 38% at 50% 16%, rgba(122,79,216,.32) 0%, rgba(122,79,216,0) 72%),
      linear-gradient(180deg, var(--vio-ink) 0%, #1a1033 32%, #150c29 66%, var(--vio-ink) 100%);
    /* ── 下端の項目までスクロールで届くようにする ──────────────────
       親テーマは height:100vh。スマホの 100vh は「アドレスバーが隠れた状態」の
       大きい方のビューポートを指すため、実際に見えている高さより 100px 前後
       大きくなる。ドロワーは position:fixed / top:0 なので、その差分の帯は
       常にブラウザUIの裏に隠れたままになり、いちばん下までスクロールしても
       最後の項目（お問い合わせCTA・SNS）が画面に出てこない。
       overflow-y は親テーマで auto になっているのでスクロール自体は効いており、
       スクロールの終点そのものが画面外にあるのが原因。
       実測（375×553 表示 / 100vh=667 想定・中身 801px）:
         100vh → 最大スクロール 134px・CTA下端 623px（見えない）
         dvh   → 最大スクロール 248px・CTA下端 509px（見える）
       dvh は表示中のビューポートに追従するので、アドレスバーの出入りでも崩れない。
       未対応ブラウザ向けに 100vh を先に書いて残す。 */
    height:100vh;
    height:100dvh;
    overflow-y:auto;                  /* 親テーマと同値。ここで打ち消さないことを明示する */
    /* 下端の余白はホームインジケータ（セーフエリア）の分だけ足す */
    padding:var(--fcv-drawer-top, 132px) 24px calc(44px + env(safe-area-inset-bottom, 0px));
    justify-content:flex-start;
    overscroll-behavior:contain;      /* 中身が短いとき背後のページへスクロールを伝えない */
    -webkit-overflow-scrolling:touch; /* 古い iOS でも慣性スクロールにする */
    /* 開くときは少し下りながら現れる。親テーマは opacity と visibility だけを
       0.3s ease で動かしていて、面がその場で明滅する見え方だった。 */
    transform:translateY(-10px);
    transition:opacity .32s cubic-bezier(.22,.61,.36,1),
               visibility .32s cubic-bezier(.22,.61,.36,1),
               transform .36s cubic-bezier(.22,.61,.36,1);
  }
  .fcv-header .fcv-header__nav.is-open{ transform:none; }

  /* サブメニューを開くと中身が画面に収まらなくなり、ドロワーをスクロールできる。
     このとき項目は上へ流れて黒帯の下に消えるが、帯から垂れ下がるエンブレムの
     部分だけは背景が透けているため、文字がエンブレムの裾と重なって見える。
     帯の下端から一段ぼかした黒を敷いて、そこで文字を消してからエンブレムに
     入るようにする。エンブレムは1段目（z-index:1002）なのでこの上に残る。
     背景はスクロールしない（スクロールするのは中身だけ）ので、
     position:fixed で画面に貼り付けたままにできる。 */
  .fcv-header .fcv-header__nav::before{
    content:"";
    position:fixed; left:0; right:0; top:0;
    height:var(--fcv-drawer-top, 132px);
    background:linear-gradient(180deg,
      var(--vio-ink) 0,
      var(--vio-ink) calc(100% - 38px),
      rgba(13,9,24,0) 100%);
    pointer-events:none;
    z-index:1;                       /* 中身（z-index なし）より前、エンブレムより後ろ */
  }
  /* 閉じるときは開くときより速く、上へ引き上げながら消す。
     開く＝見せる動きはためを作り、閉じる＝退く動きは待たせない。 */
  .fcv-header .fcv-header__nav:not(.is-open){
    transition:opacity .2s ease-in, visibility .2s ease-in, transform .2s ease-in;
  }

  /* 第1階層：見出し的に大きめ・字間広め。区切りは極細の白線だけ。 */
  .fcv-header__nav .site-nav__list > .menu-item > a{
    position:relative;
    padding:14px 8px 14px 18px;
    font-family:var(--font-display);
    font-size:.98rem;
    /* PC用（1386行あたり）で line-height:46px を当てているので必ず戻す */
    line-height:1.45;
    font-weight:700;
    letter-spacing:.09em;
    color:rgba(255,255,255,.90);
    border-bottom:1px solid rgba(255,255,255,.10);
    transition:color .22s ease;
  }
  /* 左端の金のマーカー。ホバー／現在地／サブメニューを開いている項目に伸ばす */
  .fcv-header__nav .site-nav__list > .menu-item > a::before{
    content:"";
    position:absolute; left:0; top:50%;
    width:2px; height:0;
    background:linear-gradient(180deg, var(--vio-gold-hi), var(--vio-gold));
    transform:translateY(-50%);
    transition:height .22s ease;
  }
  /* current_page_parent は使わない。WordPress が「投稿ページ」（お知らせ）に
     固定ページ以外のあらゆるクエリで配るクラスなので、選手紹介やスケジュールの
     一覧でも「お知らせ」がアクティブに見えてしまう。現在地の判定は
     functions.php（fcv_current_menu_url）で current-menu-item に一本化した。 */
  .fcv-header__nav .site-nav__list > .menu-item > a:hover,
  .fcv-header__nav .site-nav__list > .current-menu-item > a,
  .fcv-header__nav .site-nav__list > .current-menu-ancestor > a,
  .fcv-header__nav .site-nav__list > .is-submenu-open > a{
    color:var(--vio-gold-hi);
  }
  .fcv-header__nav .site-nav__list > .menu-item > a:hover::before,
  .fcv-header__nav .site-nav__list > .current-menu-item > a::before,
  .fcv-header__nav .site-nav__list > .current-menu-ancestor > a::before,
  .fcv-header__nav .site-nav__list > .is-submenu-open > a::before{ height:54%; }

  /* ── 触ったときの手応え ──────────────────────────────────
     タッチ端末には hover が無いので、押している間の状態を別に用意する。
     端末既定の青いハイライトは紫×黒の中で浮くので消して、
     行全体がわずかに明るくなる形に置き換える。 */
  .fcv-header__nav a,
  .fcv-header__nav button{ -webkit-tap-highlight-color:transparent; }
  .fcv-header__nav .site-nav__list > .menu-item > a:active,
  .fcv-header__nav .sub-menu .menu-item a:active,
  .fcv-header__nav .site-nav__submenu-toggle:active,
  .fcv-header__nav .site-nav__cta-btn:active{ background-color:rgba(255,255,255,.07); }
  /* キーボード操作時の現在位置。ドロワー内はフォーカスを閉じ込めているので
     （nav-drawer.js）、ここが見えないと今どこにいるか分からなくなる。 */
  .fcv-header__nav a:focus-visible,
  .fcv-header__nav button:focus-visible{
    outline:2px solid var(--vio-gold);
    outline-offset:-2px;
  }

  /* お問い合わせCTA：トップページ共通の .fixtures-link（細い白アウトライン＋
     金のシェブロン）と同じ意匠に揃える。44章を参照。
     親テーマの塗り（--color-mobile-cta-bg）と角丸は打ち消す。 */
  .fcv-header__nav .site-nav__cta-btn{
    display:flex; align-items:center; justify-content:center; gap:12px;
    width:100%; max-width:340px;
    margin-top:30px;
    padding:15px 18px;
    background:transparent;
    border:1px solid rgba(255,255,255,.32);
    border-radius:0;
    color:#fff;
    font-family:var(--font-display);
    font-size:.86rem; font-weight:600; letter-spacing:.12em;
    text-indent:.12em;               /* letter-spacing 分の右寄りを相殺 */
    transition:border-color .25s ease, background-color .25s ease;
  }
  .fcv-header__nav .site-nav__cta-btn::after{
    content:""; width:6px; height:6px;
    border-top:1.5px solid var(--vio-gold);
    border-right:1.5px solid var(--vio-gold);
    transform:rotate(45deg);
    transition:transform .25s ease, border-color .25s ease;
  }
  .fcv-header__nav .site-nav__cta-btn:hover{
    opacity:1; color:#fff;
    border-color:rgba(255,255,255,.9);
    background:rgba(255,255,255,.08);
  }
  .fcv-header__nav .site-nav__cta-btn:hover::after{
    transform:rotate(45deg) translate(2px,-2px);   /* 45度回転済みなので右移動は x+/y− */
    border-color:var(--vio-gold-hi);
  }

  /* SNS：丸いアウトラインのアイコンボタンにして、ホバーで金へ反転 */
  .fcv-header__nav .site-nav__sns{ margin-top:26px; gap:12px; justify-content:center; }
  .fcv-header__nav .site-nav__sns a{
    width:38px; height:38px; border-radius:50%;
    justify-content:center;
    border:1px solid rgba(255,255,255,.20);
    color:rgba(255,255,255,.80);
    transition:color .2s ease, border-color .2s ease, background-color .2s ease;
  }
  .fcv-header__nav .site-nav__sns a:hover{
    opacity:1;
    color:var(--vio-ink);
    background:var(--vio-gold);
    border-color:var(--vio-gold);
  }

  /* 開いたときに項目を下から順に立ち上げる。左右2本の <ul> に分かれているので
     右側は左側の続きになるよう遅延をずらす。
     刻みは 30ms。これ以上遅くすると最後のSNSが出るまで「まだ動いている」感じが
     残り、タップしたい人を待たせる。全体は約0.6秒で終わる。 */
  @keyframes fcvDrawerIn{
    from{ opacity:0; transform:translateY(10px); }
    to  { opacity:1; transform:none; }
  }
  .site-nav.is-open .site-nav__list > .menu-item,
  .site-nav.is-open .site-nav__cta-btn,
  .site-nav.is-open .site-nav__sns{
    animation:fcvDrawerIn .36s cubic-bezier(.22,.61,.36,1) both;
  }
  .site-nav.is-open .fcv-header__menu--left .site-nav__list > .menu-item:nth-child(1){ animation-delay:.04s; }
  .site-nav.is-open .fcv-header__menu--left .site-nav__list > .menu-item:nth-child(2){ animation-delay:.07s; }
  .site-nav.is-open .fcv-header__menu--left .site-nav__list > .menu-item:nth-child(3){ animation-delay:.10s; }
  .site-nav.is-open .fcv-header__menu--left .site-nav__list > .menu-item:nth-child(4){ animation-delay:.13s; }
  .site-nav.is-open .fcv-header__menu--left .site-nav__list > .menu-item:nth-child(5){ animation-delay:.16s; }
  .site-nav.is-open .fcv-header__menu--left .site-nav__list > .menu-item:nth-child(n+6){ animation-delay:.19s; }
  .site-nav.is-open .fcv-header__menu--right .site-nav__list > .menu-item:nth-child(1){ animation-delay:.19s; }
  .site-nav.is-open .fcv-header__menu--right .site-nav__list > .menu-item:nth-child(2){ animation-delay:.22s; }
  .site-nav.is-open .fcv-header__menu--right .site-nav__list > .menu-item:nth-child(3){ animation-delay:.25s; }
  .site-nav.is-open .fcv-header__menu--right .site-nav__list > .menu-item:nth-child(4){ animation-delay:.28s; }
  .site-nav.is-open .fcv-header__menu--right .site-nav__list > .menu-item:nth-child(n+5){ animation-delay:.31s; }
  .site-nav.is-open .site-nav__cta-btn{ animation-delay:.32s; }
  .site-nav.is-open .site-nav__sns{ animation-delay:.36s; }

  /* ── サブメニューは開閉式（アコーディオン）────────────────────────
     親テーマの SP 用ルールはサブメニューを常時展開する（position:static ＋ visible）。
     トップレベルだけで9項目あるうえ、クラブ概要4行・チーム2行・パートナー2行・
     選手募集2行が全部開いた状態で並ぶため、ドロワーを開いた時点で画面がリンクで
     埋まってしまう。初期状態は閉じ、行の右端の「＋」ボタンで開閉する。
     ボタンは assets/js/nav-accordion.js が各項目に差し込む。
     ラベル部分はリンクのままなので、タップすれば従来どおりページ本体へ遷移する。

     li を flex-wrap のコンテナにして「リンク｜＋ボタン」を1行目、サブメニューを
     2行目に回す。こうするとボタンの高さがリンクの行高に自動で揃うので、
     文字サイズを変えても位置合わせの数値を直さなくて済む
     （absolute ＋ 固定 height だと行高が変わるたびにズレる）。
     DOM順は a → ul → button なので、order でボタンを ul の前に出す。 */
  .fcv-header__nav .menu-item-has-children{
    display:flex; flex-wrap:wrap; align-items:stretch;
  }
  .fcv-header__nav .menu-item-has-children > a{ order:1; flex:1 1 auto; min-width:0; }
  .fcv-header__nav .menu-item-has-children > .sub-menu{ order:3; flex:0 0 100%; }

  .fcv-header__nav .site-nav__submenu-toggle{
    order:2; flex:0 0 52px;
    display:flex; align-items:center; justify-content:center;
    padding:0; margin:0; border:none; background:none; cursor:pointer;
    color:rgba(255,255,255,.55); -webkit-appearance:none; appearance:none;
    /* リンク側と同じ下線を引いて1行に見せる。左の細線でタップ範囲の境目を示す。 */
    border-bottom:1px solid rgba(255,255,255,.10);
    border-left:1px solid rgba(255,255,255,.08);
    transition:color .22s ease;
  }
  /* 開いている項目はラベルと同じ金にして、どこを開いているかを1色で示す */
  .fcv-header__nav .is-submenu-open > .site-nav__submenu-toggle{ color:var(--vio-gold-hi); }
  /* ＋／− のアイコン（横棒＋縦棒。開くと縦棒が消えて − になる）*/
  .fcv-header__nav .site-nav__submenu-toggle > span{
    position:relative; display:block; width:13px; height:13px;
  }
  .fcv-header__nav .site-nav__submenu-toggle > span::before,
  .fcv-header__nav .site-nav__submenu-toggle > span::after{
    content:""; position:absolute; left:0; top:50%;
    width:13px; height:1.5px; background:currentColor;
    transition:transform .25s ease, opacity .25s ease;
  }
  .fcv-header__nav .site-nav__submenu-toggle > span::before{ transform:translateY(-50%); }
  .fcv-header__nav .site-nav__submenu-toggle > span::after{ transform:translateY(-50%) rotate(90deg); }
  .fcv-header__nav .is-submenu-open > .site-nav__submenu-toggle > span::after{
    transform:translateY(-50%) rotate(0deg); opacity:0;
  }

  /* 閉じている状態。max-height はアニメーションのための上限値なので、
     項目数（最大4）×行高より十分大きい値にしておく。 */
  .fcv-header__nav .menu-item-has-children > .sub-menu{
    max-height:0; opacity:0; overflow:hidden;
    /* 畳んでいる間はタブ移動の対象から外す。overflow:hidden で見えていないだけの
       状態だと、キーボード操作で「見えないリンク」を順に踏むことになる。 */
    visibility:hidden;
    /* 第1階層より一段沈ませる。黒を重ねるのではなく紫を薄く敷いて、
       ドロワー全体の紫×黒の中で「入れ子になった面」に見せる。 */
    background:linear-gradient(180deg, rgba(122,79,216,.18), rgba(122,79,216,.06));
    transition:max-height .3s cubic-bezier(.22,.61,.36,1), opacity .22s ease, visibility .22s ease;
  }
  /* max-height は開くたびに assets/js/nav-accordion.js が実測値を入れる。
     ここの 360px は JS が動かなかった場合の保険（項目数の上限4行より十分大きい値）。 */
  .fcv-header__nav .menu-item-has-children.is-submenu-open > .sub-menu{
    max-height:360px; opacity:1; visibility:visible;
  }
  /* 中の項目も上から順に降りてくる。面が伸びるだけだと、
     中身が最初から全部そこにあったように見えて開いた実感が薄い。 */
  @keyframes fcvSubmenuIn{
    from{ opacity:0; transform:translateY(-6px); }
    to  { opacity:1; transform:none; }
  }
  .fcv-header__nav .is-submenu-open > .sub-menu > .menu-item{
    animation:fcvSubmenuIn .3s cubic-bezier(.22,.61,.36,1) both;
  }
  .fcv-header__nav .is-submenu-open > .sub-menu > .menu-item:nth-child(1){ animation-delay:.04s; }
  .fcv-header__nav .is-submenu-open > .sub-menu > .menu-item:nth-child(2){ animation-delay:.08s; }
  .fcv-header__nav .is-submenu-open > .sub-menu > .menu-item:nth-child(3){ animation-delay:.12s; }
  .fcv-header__nav .is-submenu-open > .sub-menu > .menu-item:nth-child(n+4){ animation-delay:.16s; }
  /* 第2階層：一回り小さく細く。行頭に金の短いダッシュを置いて階層を示す。 */
  .fcv-header__nav .sub-menu .menu-item a{
    position:relative;
    padding:11px 8px 11px 34px !important;
    font-size:.86rem !important;
    line-height:1.5 !important;      /* PC用の 46px 固定を戻す */
    font-weight:500;
    letter-spacing:.04em;
    color:rgba(255,255,255,.72);
    border-bottom:1px solid rgba(255,255,255,.08);
    transition:color .2s ease;
  }
  .fcv-header__nav .sub-menu .menu-item a::before{
    content:"";
    position:absolute; left:18px; top:50%;
    width:7px; height:1px;
    background:var(--vio-gold); opacity:.65;
    transform:translateY(-50%);
  }
  .fcv-header__nav .sub-menu .menu-item a:hover,
  .fcv-header__nav .sub-menu .current-menu-item > a{ color:var(--vio-gold-hi); }

  /* ── 閉じているドロワーが画面上部のタップを奪う問題の修正 ──────────
     親テーマは閉じた .site-nav を opacity:0 + visibility:hidden で隠している。
     visibility は継承されるので通常は中身も当たり判定を持たないが、
     親テーマの SP 用ルール `.sub-menu{ visibility:visible; }`（インライン展開用）が
     サブメニューで継承を打ち切ってしまい、「チーム」配下のトップチーム / U-15 だけが
     visible のまま viewport 上部（およそ y=225〜320px）に居座る。
     opacity:0 は当たり判定を消さないため、そこに重なった要素をタップすると
     見えないリンクが先に拾われ U-15 ページへ飛ばされる。
     （クラブ概要ページの sticky な .about-nav がちょうどこの帯に入るため顕在化した）

     閉じている間はドロワー全体の pointer-events を切り、あわせてサブメニューの
     visibility も継承どおり hidden に戻す（将来 pointer-events が上書きされても
     当たり判定が復活しないようにするための二重の備え）。
     デスクトップの hover ドロップダウンを壊さないよう、この媒体クエリ内に限定する。 */
  .site-nav:not(.is-open){ pointer-events:none; }
  .site-nav.is-open{ pointer-events:auto; }
  .site-nav:not(.is-open) .sub-menu{ visibility:hidden; }
}

/* ドロワーを開いている間、背後のページのスクロールを止める（assets/js/nav-drawer.js）。
   html ではなく body に掛けるのは、html に overflow:hidden を掛けると
   ビューポートがスクロールコンテナでなくなり、sticky なヘッダーが静的位置
   （＝画面外）へ落ちてしまうため。body だけならスクロール位置も sticky も保たれる。
   デスクトップ幅で開いたときはスクロールバーが消えて横にガタつくので、
   消えた幅（JS が --fcv-scrollbar-w に入れる）を余白で足して相殺する。 */
body.fcv-drawer-lock{
  overflow:hidden;
  padding-right:var(--fcv-scrollbar-w, 0px);
}

/* 動きを減らす設定では、ドロワー関連のアニメーション・遷移を止める。
   （@media の入れ子を避けて、上のモバイル用ブロックの外に条件を並べて書く）
   開閉そのものは opacity と visibility だけで成立するので、
   位置の移動と段送りを外しても操作は変わらない。 */
@media (max-width:1024px) and (prefers-reduced-motion:reduce){
  .site-nav.is-open .site-nav__list > .menu-item,
  .site-nav.is-open .site-nav__cta-btn,
  .site-nav.is-open .site-nav__sns,
  .fcv-header__nav .is-submenu-open > .sub-menu > .menu-item{ animation:none; }
  .fcv-header .fcv-header__nav,
  .fcv-header .fcv-header__nav:not(.is-open){
    transform:none;
    transition:opacity .15s linear, visibility .15s linear;
  }
  .fcv-header .hamburger span{ transition:background-color .2s linear; }
  .fcv-header__nav .menu-item-has-children > .sub-menu{ transition:none; }
}

/* スポンサー帯：デモ用テキスト枠をSPで小さくまとめる。
   .sponsor-bar--demo .sponsor-bar__name の padding 指定がこの下の方にあり、
   同じ詳細度では後勝ちしてしまうため、ここ（ファイル末尾）で上書きする。
   SPの帯は2枠だけなので、幅を潰さず文字サイズだけ落とす。 */
@media (max-width:768px){
  .sponsor-bar--demo .sponsor-bar__name{
    display:block; text-align:center; box-sizing:border-box;
    padding:5px 10px;
    font-size:.7rem;
    letter-spacing:.02em;
    white-space:nowrap;
  }
}

/* ============================================================
   15) 選手紹介（Players）：ダーク×金のクラブカード
       トップの選手カードだけが白い箱で暗背景から浮いていたため、
       試合情報カード（7〜12）と同じ言語（濃紺グラデ＋金の細枠＋上端の金ライン）に統一。
       マークアップは子テーマの template-parts/front/section-players.php を参照。
   ============================================================ */
/* ---- カード外枠（選手・スタッフ共通） ---- */
.section-players .fcv-pl{
  position:relative;
  height:100%;
  background:
    radial-gradient(120% 80% at 50% -10%, rgba(122,79,216,.28), transparent 62%),
    linear-gradient(165deg, #4a2c8f 0%, #1e1338 52%, #0d0918 100%);
  border:1px solid rgba(205,164,81,.30);
  border-radius:0;
  overflow:hidden;
  transition:box-shadow .35s ease, border-color .35s ease;
}
.section-players .fcv-pl:hover,
.section-players .fcv-pl:focus-within{
  border-color:rgba(205,164,81,.72);
  box-shadow:0 18px 44px rgba(0,0,0,.55);
}
/* 詳細ページがある選手は、枠線1pxの上にカーソルが乗ったときも
   「カード全体が押せる」ことが分かるようポインターにする。 */
.section-players .fcv-pl--link{ cursor:pointer; }
/* タップ時の反応。ホバーが無い端末でも押したことが分かるようにする。 */
.section-players .fcv-pl--link:active{ filter:brightness(1.12); }

.section-players .fcv-pl__link{
  display:flex;
  flex-direction:column;
  height:100%;
  color:inherit;
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
}
/* カード全体がリンクのとき、フォーカスが見えるように金の枠を出す */
.section-players .fcv-pl__link:focus-visible{
  outline:2px solid var(--vio-gold-hi);
  outline-offset:-4px;
}

/* ---- 写真エリア（共通） ---- */
.section-players .fcv-pl__visual{
  position:relative;
  aspect-ratio:3/4;
  overflow:hidden;
}
.section-players .fcv-pl__photo{
  width:100%; height:100%;
  object-fit:cover;
  object-position:center top;      /* 顔が切れないよう上寄せ */
  display:block;
  transition:transform .6s cubic-bezier(.2,.7,.3,1), filter .4s ease;
}
/* 写真未設定：お知らせカードと同じ共通プレースホルダー画像。
   背景画像の指定は35章にまとめてある（.news-item__ph などと同じ行）。 */
.section-players .fcv-pl__placeholder{
  width:100%; height:100%;
}

/* ============================================================
   15-1) スタッフカード（.fcv-pl--staff）
        写真の下に名前を置く従来のレイアウト。選手カードだけが
        2026-08 に「写真のみ＋ホバー」へ変わったため、ここに切り分けた。
        マークアップは inc/player-card.php の fcv_team_staff_card()。
   ============================================================ */
/* 上端の金ライン（試合カードと共通の意匠）
   pointer-events:none は必須。この擬似要素はリンクより上に重なるので、
   付けないとカード上端3pxだけクリックが吸われて遷移しない。 */
.section-players .fcv-pl--staff::before{
  content:""; position:absolute; left:0; right:0; top:0; height:3px; z-index:2;
  background:linear-gradient(90deg, transparent, var(--vio-gold), transparent);
  pointer-events:none;
}
.section-players .fcv-pl--staff:hover .fcv-pl__photo{ transform:scale(1.05); }

/* 写真上部を少し落とす。明るい写真でも役職バッジが読めるようにする。 */
.section-players .fcv-pl--staff .fcv-pl__visual::before{
  content:""; position:absolute; left:0; right:0; top:0; height:34%;
  background:linear-gradient(rgba(13,9,24,.62), transparent);
  pointer-events:none;
  z-index:1;
}
/* 写真の下端をカード地色へ溶かす（帯との境目をなくす） */
.section-players .fcv-pl--staff .fcv-pl__visual::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:38%;
  background:linear-gradient(transparent, rgba(13,9,24,.92));
  pointer-events:none;
}

.section-players .fcv-pl--staff .fcv-pl__body{
  flex:1;
  display:flex; flex-direction:column;
  padding:14px 16px 16px;
  border-top:1px solid rgba(205,164,81,.22);
}
.section-players .fcv-pl--staff .fcv-pl__name{
  margin:0;
  font-size:1.05rem; font-weight:700; line-height:1.35;
  letter-spacing:.02em;
  color:#fff;
  transition:color .3s ease;
}
.section-players .fcv-pl--staff:hover .fcv-pl__name{ color:var(--vio-gold-hi); }
/* 英字名（ローマ字）。HTML は "Sato Kenta" のまま持ち、大文字化は表示側で行う
   （全大文字を地の文に持たせると読み上げ・翻訳で不利になるため）。 */
.section-players .fcv-pl--staff .fcv-pl__name-en{
  margin:6px 0 0;
  font-family:var(--font-display);
  font-size:.64rem; font-weight:600; line-height:1.45;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(203,190,232,.72);
  overflow-wrap:anywhere;
}

/* ============================================================
   15-2) 選手カード（.fcv-pl--photo）：写真のみ＋ホバーオーバーレイ
        平常時は縦長の写真だけを見せ、ホバー／フォーカスで
        背番号 → 英字名 → ポジション＋漢字名 を重ねて立ち上げる
        （2026-08 クライアント指定）。
        マークアップは inc/player-card.php の fcv_player_card()。
   ============================================================ */
.section-players .fcv-pl--photo .fcv-pl__link{ display:block; }

.section-players .fcv-pl--photo:hover .fcv-pl__photo,
.section-players .fcv-pl--photo:focus-within .fcv-pl__photo{
  transform:scale(1.06);
  filter:saturate(.9) brightness(.82);
}

.section-players .fcv-pl__overlay{
  position:absolute; inset:0; z-index:2;
  /* 背番号は .fcv-pl__meta の中にあり、PCでは絶対配置で右上に抜く。
     残るのはメタだけなので、下寄せにして従来の見え方を保つ。 */
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:14px 16px 16px;
  background:
    radial-gradient(120% 70% at 50% 0%, rgba(122,79,216,.34), transparent 60%),
    linear-gradient(180deg, rgba(13,9,24,.28) 0%, rgba(18,11,40,.78) 48%, rgba(13,9,24,.96) 100%);
  opacity:0;
  transition:opacity .35s ease;
  /* 中身にリンクは無い。カード全体の <a> にクリックを通す。 */
  pointer-events:none;
}
.section-players .fcv-pl--photo:hover .fcv-pl__overlay,
.section-players .fcv-pl--photo:focus-within .fcv-pl__overlay{ opacity:1; }

/* 中身は少し下から立ち上げ、背番号→名前の順に遅らせて流れを作る。
   立ち上げの transform は .fcv-pl__meta ではなく中の2行に当てる。
   transform を持つ要素は絶対配置の基準（包含ブロック）になるため、
   meta に掛けると、中に入れた背番号の top/right が meta 基準になり
   カード右上に置けなくなる。 */
.section-players .fcv-pl__overlay .fcv-pl__no,
.section-players .fcv-pl__meta > .fcv-pl__name-en,
.section-players .fcv-pl__meta > .fcv-pl__id{
  transform:translateY(14px);
  opacity:0;
  transition:transform .45s cubic-bezier(.2,.7,.3,1), opacity .45s ease;
}
.section-players .fcv-pl--photo:hover .fcv-pl__no,
.section-players .fcv-pl--photo:focus-within .fcv-pl__no{
  transform:none; opacity:1; transition-delay:.06s;
}
.section-players .fcv-pl--photo:hover .fcv-pl__meta > .fcv-pl__name-en,
.section-players .fcv-pl--photo:hover .fcv-pl__meta > .fcv-pl__id,
.section-players .fcv-pl--photo:focus-within .fcv-pl__meta > .fcv-pl__name-en,
.section-players .fcv-pl--photo:focus-within .fcv-pl__meta > .fcv-pl__id{
  transform:none; opacity:1; transition-delay:.12s;
}

/* 背番号：右上に大きく（"No." ラベルは付けない） */
.section-players .fcv-pl__overlay .fcv-pl__no{
  position:absolute;
  top:14px; right:16px;
  font-family:var(--font-crest);
  font-weight:800;
  font-size:clamp(2.6rem, 5vw, 3.8rem);
  line-height:.9;
  color:var(--vio-gold);
  text-shadow:0 4px 18px rgba(0,0,0,.6);
}

/* 英字名。金の細線で下のポジション＋漢字名と分ける。 */
.section-players .fcv-pl--photo .fcv-pl__name-en{
  margin:0 0 9px;
  padding-bottom:9px;
  border-bottom:1px solid rgba(205,164,81,.36);
  font-family:var(--font-display);
  font-size:.64rem; font-weight:600; line-height:1.45;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(232,200,128,.88);
  overflow-wrap:anywhere;
}

/* ポジションバッジ＋漢字名を1行に並べる */
.section-players .fcv-pl__id{
  display:flex; align-items:center; gap:9px;
}
.section-players .fcv-pl--photo .fcv-pl__pos{
  position:static;
  flex:0 0 auto;
  display:inline-flex; align-items:center;
  padding:3px 8px;
  font-family:var(--font-display);
  font-size:.66rem; font-weight:700; line-height:1.4;
  letter-spacing:.1em;
  color:rgb(var(--pos-c));
  background:var(--pos-tag-bg);
  border:1px solid var(--pos-tag-line-hi);
  border-radius:var(--pos-tag-radius);
}
/* 先頭の色ドットは出さない（詳細ページ 47章の .fcv-pd__pos と同じ扱い）。 */
.section-players .fcv-pl--photo .fcv-pl__pos::before{ content:none; }
.section-players .fcv-pl--photo .fcv-pl__name{
  margin:0;
  font-size:1.02rem; font-weight:700; line-height:1.35;
  letter-spacing:.02em;
  color:#fff;
}

/* ホバーできない端末（タッチ）では常時表示にする。
   ホバー前提のままだと背番号も名前も一切読めなくなるため。 */
@media (hover: none){
  .section-players .fcv-pl__overlay{
    opacity:1;
    background:linear-gradient(180deg, transparent 28%, rgba(13,9,24,.52) 56%, rgba(13,9,24,.95) 100%);
  }
  .section-players .fcv-pl__overlay .fcv-pl__no,
  .section-players .fcv-pl__meta > .fcv-pl__name-en,
  .section-players .fcv-pl__meta > .fcv-pl__id{ transform:none; opacity:1; }
}

/* 動きを減らす設定では移動をやめ、フェードだけ残す */
@media (prefers-reduced-motion: reduce){
  .section-players .fcv-pl__overlay .fcv-pl__no,
  .section-players .fcv-pl__meta > .fcv-pl__name-en,
  .section-players .fcv-pl__meta > .fcv-pl__id{ transform:none; transition:opacity .2s ease; }
  .section-players .fcv-pl__photo{ transition:none; }
  .section-players .fcv-pl--photo:hover .fcv-pl__photo,
  .section-players .fcv-pl--photo:focus-within .fcv-pl__photo{ transform:none; }
}

/* スライダー内はカードを高さいっぱいに（メタ件数の差で下端が揃わないのを防ぐ） */
.section-players .players-slider .swiper-slide{ height:auto; }
.section-players .players-slider .fcv-pl{ width:100%; }

/* 1名のみのときのグリッド（親の4カラム指定を踏襲しつつ折り返す） */
.section-players .players-grid{
  grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));
}

/* ---- スライダーのナビ：暗背景で見えなかった矢印を金の丸ボタンに ---- */
.section-players .players-slider__nav{
  display:flex; align-items:center; justify-content:center;
  gap:16px;
  margin-top:24px;
}
.section-players .players-slider__prev,
.section-players .players-slider__next{
  width:44px; height:44px;
  flex:0 0 auto;
  padding:0;
  display:flex; align-items:center; justify-content:center;
  background:transparent;
  border:1px solid rgba(205,164,81,.55);
  border-radius:50%;
  color:var(--vio-gold);
  font-size:0;                       /* 親の 2.5rem 指定を打ち消す（中身はSVG）*/
  cursor:pointer;
  transition:background-color .25s ease, color .25s ease, border-color .25s ease;
}
.section-players .players-slider__prev:hover,
.section-players .players-slider__next:hover{
  background:var(--vio-gold);
  border-color:var(--vio-gold);
  color:var(--vio-ink);
}
.section-players .players-slider__prev:focus-visible,
.section-players .players-slider__next:focus-visible{
  outline:2px solid var(--vio-gold-hi);
  outline-offset:2px;
}
.section-players .players-slider__prev.swiper-button-disabled,
.section-players .players-slider__next.swiper-button-disabled{
  opacity:.28;
  cursor:default;
}

/* 進捗バー＋件数カウンタ（players-slider.js が更新。JSが無ければ非表示のまま）*/
.section-players .fcv-pl-progress{
  display:none;
  width:min(200px, 34vw); height:2px;
  background:rgba(255,255,255,.16);
  overflow:hidden;
}
.section-players .fcv-pl-progress__bar{
  display:block; height:100%; width:0;
  background:linear-gradient(90deg, var(--vio-gold), var(--vio-gold-hi));
  transition:width .35s ease, margin-left .35s ease;
}
.section-players .fcv-pl-count{
  display:none;
  font-family:var(--font-display);
  font-size:.72rem; font-weight:700; letter-spacing:.1em;
  color:rgba(255,255,255,.7);
  font-variant-numeric:tabular-nums;
}
.section-players .players-slider__nav.is-ready .fcv-pl-progress,
.section-players .players-slider__nav.is-ready .fcv-pl-count{ display:block; }

@media (max-width:768px){
  /* スタッフカード（写真＋下帯） */
  .section-players .fcv-pl--staff .fcv-pl__body{ padding:12px 12px 14px; }
  .section-players .fcv-pl--staff .fcv-pl__name{ font-size:.95rem; }
  .section-players .fcv-pl--staff .fcv-pl__name-en{ font-size:.6rem; letter-spacing:.13em; }

  /* 選手カード（写真のみ＋オーバーレイ）。狭い画面は余白と文字を詰める。 */
  .section-players .fcv-pl__overlay{ padding:11px 12px 13px; }

  /* 背番号は写真の上（右上）ではなく、英字名の左に並べる。
     カード上部はグラデーションが薄く、明るい写真だと金の数字が沈んで
     読めなくなるため。下端は常に暗いので、そこに寄せれば確実に読める。
     メタをグリッドにして「1行目＝背番号＋英字名 / 2行目＝ポジション＋漢字名」
     に組む。漢字名の行は2列ぶんを使うため、背番号の幅に押されて折り返さない。
     揃えは baseline ではなく end。baseline だと英字名が2行になったとき
     1行目のベースラインに引っ張られて背番号まで上がってしまうため、
     下端で揃えて英字名が何行でも背番号の位置が動かないようにする。 */
  .section-players .fcv-pl__meta{
    display:grid;
    grid-template-columns:auto minmax(0, 1fr);
    column-gap:8px;
    align-items:end;
  }
  .section-players .fcv-pl__overlay .fcv-pl__no{
    position:static;
    grid-column:1; grid-row:1;
    /* 英字名の下パディング＋罫線ぶん持ち上げ、数字の足元を英字の最終行にそろえる */
    margin-bottom:5px;
    font-size:1.8rem;
    line-height:1;
    text-shadow:0 2px 10px rgba(0,0,0,.8);
  }
  .section-players .fcv-pl--photo .fcv-pl__meta > .fcv-pl__name-en{
    grid-column:2; grid-row:1;
  }
  .section-players .fcv-pl--photo .fcv-pl__meta > .fcv-pl__id{
    grid-column:1 / -1; grid-row:2;
  }
  .section-players .fcv-pl--photo .fcv-pl__name{ font-size:.95rem; }
  .section-players .fcv-pl--photo .fcv-pl__name-en{
    font-size:.58rem; letter-spacing:.13em;
    margin-bottom:7px; padding-bottom:7px;
  }
  .section-players .fcv-pl__id{ gap:7px; }
  .section-players .fcv-pl--photo .fcv-pl__pos{
    font-size:.6rem; letter-spacing:.1em; padding:2px 7px;
  }

  .section-players .players-slider__nav{ gap:12px; }
}

@media (prefers-reduced-motion:reduce){
  .section-players .fcv-pl,
  .section-players .fcv-pl__photo,
  .section-players .fcv-pl__name,
  .section-players .fcv-pl__pos,
  .section-players .fcv-pl-progress__bar{ transition:none; }
  .section-players .fcv-pl:hover{ transform:none; }
  .section-players .fcv-pl:hover .fcv-pl__photo{ transform:none; }
  .section-players .fcv-pl--link:active{ transform:none; }
}

/* ============================================================
   30) 下層ページ：クラブ概要（トップページの暗色基調に合わせる）

   トップは黒×紺の交互＋金の見出しなのに、下層の本文は白／淡いラベンダー地の
   ままで、同じサイトに見えていなかった。さらに見出しは暗背景向けの配色が
   そのまま当たっており、実測で
     ・英語見出し  金 #cda451 on 白 → コントラスト 2.41:1（大文字基準の3:1未満）
     ・日本語見出し 白 #fff on #f5f3fa → ほぼ不可視
   という状態だった。セクションを暗色に戻すことで配色の前提を揃える。

   まずは1ページ目としてクラブ概要のみに適用（body.page-template-page-about）。
   ここで決めた型を他の下層ページへ横展開していく。
   ============================================================ */
body.page-template-page-about{
  --lp-ink:#0d0918;                    /* 黒セクション（トップと同じ）*/
  --lp-violet:#3c2378;                   /* 紺セクション（トップと同じ）*/
  --lp-text:#e6e9f2;                   /* 暗背景上の本文 */
  --lp-muted:#a8b0c6;                  /* 補助テキスト */
  --lp-line:rgba(205,164,81,.30);      /* 金のヘアライン */
  --lp-line-soft:rgba(255,255,255,.10);
}

/* ── セクション背景：トップと同じ「紺 → 黒」の交互 ── */
body.page-template-page-about .about-section{ background:var(--lp-violet); color:var(--lp-text); }
body.page-template-page-about .about-section:nth-of-type(even){ background:var(--lp-ink); }

/* ── 本文まわりの文字色を暗背景用に ── */
body.page-template-page-about .about-section p,
body.page-template-page-about .about-section li,
body.page-template-page-about .about-section dd,
body.page-template-page-about .about-philosophy__text{ color:var(--lp-text); }
body.page-template-page-about .about-philosophy__lead{ color:#fff; }
body.page-template-page-about .about-section a{ color:var(--vio-gold-hi); }
body.page-template-page-about .about-section a:hover{ color:#fff; }
/* 「※ …メタボックスで編集してください」等の注記 */
body.page-template-page-about .about-info-table__demo-note,
body.page-template-page-about .about-access__demo-note,
body.page-template-page-about .about-philosophy__demo .about-philosophy__text + p{ color:var(--lp-muted); }

/* ── クラブ情報テーブル：トップの試合カードと同じ「暗地＋金の罫線」に ── */
body.page-template-page-about .about-info-table-wrap{
  background:rgba(255,255,255,.03);
  border:1px solid var(--lp-line);
  border-radius:0;                      /* トップのカードと同じく角丸なし */
}
body.page-template-page-about .about-info-table__row{ border-bottom:1px solid var(--lp-line-soft); }
body.page-template-page-about .about-info-table__row:last-child{ border-bottom:0; }
body.page-template-page-about .about-info-table__row:hover{ background:rgba(205,164,81,.06); }
body.page-template-page-about .about-info-table__label{
  background:rgba(13,9,24,.45);
  color:var(--vio-gold);
  border-right:1px solid var(--lp-line-soft);
}
body.page-template-page-about .about-info-table__value{ color:var(--lp-text); }

/* ── 沿革テーブルも同じ扱いに ── */
body.page-template-page-about .about-history__body table thead th{
  background:rgba(13,9,24,.45); color:var(--vio-gold); border-bottom:1px solid var(--lp-line);
}
body.page-template-page-about .about-history__body table tbody td{
  color:var(--lp-text); border-bottom:1px solid var(--lp-line-soft);
}
body.page-template-page-about .about-history__body table tbody tr:hover{ background:rgba(205,164,81,.06); }

/* ── 代表挨拶 ── */
body.page-template-page-about .about-greeting__title{ color:var(--vio-gold); }
body.page-template-page-about .about-greeting__name{ color:#fff; }
body.page-template-page-about .about-greeting__photo img{ border:1px solid var(--lp-line); border-radius:0; }

/* ── アクセス：地図枠と住所リスト ── */
body.page-template-page-about .about-access__map iframe,
body.page-template-page-about .about-access__map-placeholder{
  background:rgba(255,255,255,.03);
  border:1px solid var(--lp-line);
  border-radius:0;
}
body.page-template-page-about .about-access__map-placeholder p{ color:var(--lp-muted); }
body.page-template-page-about .about-access__dt{ color:var(--vio-gold); }
body.page-template-page-about .about-access__dd{ color:var(--lp-text); border-left-color:var(--lp-line); }

/* ============================================================
   32) 下層ページ共通：トップの暗色基調に揃える

   クラブ概要で決めた型（紺×黒の交互／金の見出し／暗地＋金罫線のカード）を
   下層ページ全体へ広げる。個別クラスを列挙するのではなく、親テーマの
   色変数のうち「用途が背景か文字色のどちらかに限定されているもの」だけを
   差し替えて土台を作り、白い面と部品は別途上書きする。

   ※ --color-white は背景53箇所・文字色19箇所の両方で使われているため
     差し替えない（文字色まで暗くなり読めなくなる）。白い面は個別に扱う。
   ============================================================ */
body:not(.home){
  --lp-ink:#0d0918;
  --lp-violet:#3c2378;
  --lp-panel:rgba(255,255,255,.045);   /* 白いカードの代わりになる面 */
  --lp-text:#e6e9f2;
  --lp-muted:#a8b0c6;
  --lp-line:rgba(205,164,81,.30);
  --lp-line-soft:rgba(255,255,255,.12);

  /* 用途が限定されている変数だけ差し替える */
  --color-bg:var(--lp-ink);
  --color-text:var(--lp-text);
  --color-text-light:var(--lp-muted);
  --color-border:var(--lp-line-soft);
}

/* ── ページ本体の地。*-main は親テーマ共通の命名 ── */
body:not(.home) main,
body:not(.home) .archive-main,
body:not(.home) .faq-main,
body:not(.home) .trial-main,
body:not(.home) .contact-main,
body:not(.home) .schedule-main,
body:not(.home) .about-main{ background:var(--lp-ink); color:var(--lp-text); }

/* ── セクションは紺と黒の交互（トップと同じリズム）──
   ここを上書きする側は詳細度に注意（クラス1＋要素3／偶数側は :nth-of-type が
   クラス1つ分に数えられてクラス2＋要素4）。50章の .recruit-cta が実例。 */
body:not(.home) main > section,
body:not(.home) main > div > section{ background:var(--lp-violet); }
body:not(.home) main > section:nth-of-type(even),
body:not(.home) main > div > section:nth-of-type(even){ background:var(--lp-ink); }

/* ── 見出し・本文 ── */
body:not(.home) main h1,
body:not(.home) main h2,
body:not(.home) main h3,
body:not(.home) main h4,
body:not(.home) main p,
body:not(.home) main li,
body:not(.home) main dd,
body:not(.home) main td{ color:var(--lp-text); }
body:not(.home) main a:not(.btn){ color:var(--vio-gold-hi); }
body:not(.home) main a:not(.btn):hover{ color:#fff; }
/* 金地に置くリンクだけは除外する。上の一括指定（金の文字）が当たると
   金地×金文字になって文字が消える（試合カードの「試合詳細」で実際に起きた）。
   セレクタは a を含めること。上の指定は要素型を3つ持つため、
   .fx-card__btn だけでは詳細度が1つ足りず負ける。 */
body:not(.home) main a.fx-card__btn,
body:not(.home) main a.fx-card__btn:hover{ color:var(--vio-ink); }

/* ── 白いカード・パネル類 → 暗地＋金のヘアライン ──
   親テーマが background に白を指定している主な面をまとめて置き換える。 */
body:not(.home) .news-card__link,
body:not(.home) .news-featured__link,
body:not(.home) .faq-item,
body:not(.home) .faq-anchor-nav__item,
body:not(.home) .form-card,
body:not(.home) .match-row,
body:not(.home) .match-summary__item,
body:not(.home) .player-summary,
body:not(.home) .cal-grid,
body:not(.home) .cal-cards__item,
body:not(.home) .cal-day-cards__card,
body:not(.home) .cal-timeline__event,
body:not(.home) .recruit-flow__step,
body:not(.home) .partners-lead,
body:not(.home) .partners-cta__inner,
body:not(.home) .contact-lead,
body:not(.home) .single-match-meta-card,
body:not(.home) .cat-filter__item,
body:not(.home) .archive-pagination .page-numbers{
  background:var(--lp-panel);
  border-color:var(--lp-line);
  color:var(--lp-text);
}

/* ── フォーム部品：暗地でも入力位置と状態が分かるように ── */
body:not(.home) .form-input,
body:not(.home) .form-select,
body:not(.home) .form-textarea{
  background:rgba(255,255,255,.06);
  border-color:var(--lp-line-soft);
  color:#fff;
}
body:not(.home) .form-input::placeholder,
body:not(.home) .form-textarea::placeholder{ color:var(--lp-muted); }
/* セレクトの選択肢はOS側が描くので、暗地に合わせて明示しないと
   「白地に白文字」で読めなくなる環境がある（Windows Chrome など）。 */
body:not(.home) .form-select option{ background:#171128; color:#fff; }
/* 親テーマの .form-select は背景画像で「v」の矢印を敷いているが、上の暗色化が
   background の一括指定なので消えてしまう。暗地で見える色で敷き直す。 */
body:not(.home) .form-select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23cbbee8' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:40px;
}
body:not(.home) .form-input:focus,
body:not(.home) .form-select:focus,
body:not(.home) .form-textarea:focus{
  border-color:var(--vio-gold); outline:2px solid rgba(205,164,81,.45); outline-offset:1px;
}
body:not(.home) .form-label,
body:not(.home) .form-group label{ color:var(--lp-text); }

/* ── 共通土台で拾いきれなかった白い面（実測で洗い出したもの）── */
body:not(.home) .player-card,
body:not(.home) .recruit-benefit,
body:not(.home) .recruit-faq__item,
body:not(.home) .recruit-target,
body:not(.home) .form-radio,
body:not(.home) .form-checkbox{
  background:var(--lp-panel);
  border-color:var(--lp-line);
  color:var(--lp-text);
}
/* 画像プレースホルダは面として少し明るく残す（写真が入る場所だと分かるように）*/
body:not(.home) .news-card__img{ background:rgba(255,255,255,.07); }

/* 金地のバッジは文字を黒に（白のままだと 2.41:1 で読めない）*/
body:not(.home) .news-featured__badge,
body:not(.home) .badge--accent{ color:var(--vio-ink); }

/* 白地のボタンは暗地の枠線ボタンへ */
body:not(.home) .recruit-cta__btn.btn,
body:not(.home) .date-remove-btn{
  background:transparent; color:var(--vio-gold-hi); border:1px solid var(--lp-line);
}

/* 見出しの英字が本文色を継いで暗くなる箇所を金に戻す
  （faq「Service」/ partner-recruit「01」等が暗地に暗字で沈んでいた）*/
body:not(.home) main .section-heading__en,
body:not(.home) main [class*="__en"]:not([class*="__entry"]),
body:not(.home) main [class*="__num"],
body:not(.home) main [class*="__step-no"]{ color:var(--vio-gold); }
/* ※ [class*="__en"] は前方一致ではないため、沿革タイムラインの
     .fcv-history__entry（本文）まで金にしてしまっていた。英字見出しではない
     ので :not() で除外する。新しく __en… で始まるクラスを足すときは、
     本文用のクラスがここに巻き込まれないか確認すること。 */

/* ── 残りの個別対応（すべて実測で特定したもの）── */

/* ポジションバッジ：明るい地に白文字で 2.15:1。地が明るいので文字を黒に。 */
body:not(.home) .player-pos-group__badge,
body:not(.home) .player-card__pos-tag{ color:var(--vio-ink); }

/* 必須マーク：暗地で 3.59:1。明るい赤に上げる。 */
body:not(.home) .form-required{ color:#ff8a80; }

/* アコーディオンの質問文・見出しが紺のまま暗地に沈んでいた（1.13:1）*/
body:not(.home) .faq-item__question,
body:not(.home) .recruit-faq__q,
body:not(.home) .faq-item__answer,
body:not(.home) .recruit-faq__a{ color:var(--lp-text); }

/* 特典アイコンが黒のまま暗地に沈んでいた（1.09:1）*/
body:not(.home) .recruit-benefit__icon{ color:var(--vio-gold); }
body:not(.home) .privacy-toc{
  background:var(--lp-panel); border-color:var(--lp-line); color:var(--lp-text);
}
body:not(.home) .faq-anchor-nav__ja{ color:var(--lp-text); }

/* ラジオ／チェックは背景が #fff 固定で、暗地では全部が白丸に見えて
   選択状態が判別できなかった。輪郭線で示し、選択時だけ金で塗る。 */
body:not(.home) .form-radio input[type="radio"],
body:not(.home) .form-checkbox input[type="checkbox"]{
  background:transparent;
  border-color:rgba(255,255,255,.45);
}
body:not(.home) .form-radio input[type="radio"]:checked,
body:not(.home) .form-checkbox input[type="checkbox"]:checked{
  border-color:var(--vio-gold); background:transparent;
}
body:not(.home) .form-radio input[type="radio"]:checked::after{ background:var(--vio-gold); }
body:not(.home) .form-checkbox input[type="checkbox"]:checked{ background:var(--vio-gold); }
body:not(.home) .form-radio:has(input[type="radio"]:checked){
  border-color:var(--vio-gold); background:rgba(205,164,81,.10);
}

/* ============================================================
   33) 数字はFV画像と同じコンデンス体（--font-num / Bebas Neue）で揃える

   FV画像の試合日程で使われている数字が太めのコンデンス体のため、
   サイト側の「日付・時刻・スコア・件数」といった数字もそこに合わせる。
   Bebas Neue は和文を持たないので、同じ指定のまま日本語は Noto Sans JP に
   落ちる（＝実質「数字と英字だけ Bebas Neue」になる）。
   ============================================================ */
.fx-card__year, .fx-card__date, .fx-card__dow, .fx-card__time, .fx-card__scorenum, .fx-card__pk,
.news-list__date, .news-item__date, .news-card__date,
.mr-card__date, .nm-next__kickoff, .sch-row__day, .sch-row__time,
.match-row__date, .match-summary__num, .player-card__no, .pl-card__no,
.single-match-meta-card time, .archive-pagination .page-numbers{
  font-family:var(--font-num);
  font-variant-numeric:tabular-nums;   /* 桁を揃える */
  /* Bebas Neue はウェイト400しか無い。700/800のまま当てるとブラウザが
     太字を合成して字形が潰れるため、400に固定する（元々十分に太い書体）。 */
  font-weight:400;
}

/* ============================================================
   34) FV：正方形の素材をそのまま全体表示する

   親テーマは .fv-slide__img を width:100%; height:auto で置くので、
   指定を足さなければ画像の縦横比のまま全幅で表示される（＝正方形のまま）。
   切り抜きは行わない。
   ============================================================ */

/* ============================================================
   35) 画像未設定時のサムネイルを共通画像に差し替え

   従来は紫のグラデーション＋「VIOLET'S」の文字をCSSで描いていた。
   クラブから支給された news-thumb（エンブレム＋ワードマーク）に置き換える。
   お知らせ・選手のどちらも、記事側でアイキャッチが設定されていれば
   そちらが優先される（ここは未設定時の見え方のみ）。
   ============================================================ */
.news-card__placeholder,
.news-item__ph,
.news-list__ph,
.news-line__ph,
.player-card__placeholder,
.section-players .fcv-pl__placeholder{
  background-image:url(../images/news-thumb.webp);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  background-color:var(--vio-violet);   /* 読み込み前の下地 */
}
/* 画像に文字が入っているので、CSSで重ねていた「VIOLET'S」は不要 */
.news-card__placeholder::after,
.news-item__ph::after,
.news-list__ph::after,
.news-line__ph::after{ content:none; }

/* 選手・スタッフのカードだけは、写真未設定を「no image」と分かる形にする。
   エンブレム画像だと写真が入っているように見えてしまうため、
   グレーの人物シルエット（no-avatar.svg／3:4なので cover で欠けない）に差し替える。
   お知らせ側は従来どおりエンブレム画像のまま。 */
.player-card__placeholder,
.section-players .fcv-pl__placeholder{
  background-image:url(../images/no-avatar.svg);
  background-size:cover;
  background-position:center;
  background-color:#c8ccd3;
}

/* ============================================================
   36) 試合情報ページ（一覧 /matches/ ＋ 詳細 /match/…）

   これまでの見え方の問題：
     金の枠線（32章の --lp-line）＋カード上端の金ライン＋金の日付＋
     金のWINバッジ＋金のリンク色（32章の a:not(.btn)）が同時に効いて、
     ページ全体が「金色のページ」に見えていた。

   方針：
     ・土台は 紫（--vio-violet / --vio-royal）× 黒（--vio-ink）
     ・金は「細い線・小さなラベル・ホバー」だけに限定する
         └ ヒーローの帯 / 見出しのENラベル / WINバッジの内枠 /
           MVPカード / リンクのホバー色 の5箇所のみ
     ・文字は白系で統一（暗地でのコントラスト確保）
     ・タグ／バッジは角丸。フィルター・タブはピル（トップの
       .news-filter__btn と同じ 999px）、インラインの小バッジは 6px。
     ・カード本体の角丸は 0 のまま（4章のサイト共通ルールに合わせる）

   親テーマの archive-match.css / single-match.css は白背景前提なので、
   ここで暗背景用に読み替える。32章の body:not(.home) 一括指定と詳細度が
   同じになる指定があるため、このブロックは必ずファイル末尾に置くこと。
   ============================================================ */

/* ---- 36-1 このページ用のトークン ---- */
body.post-type-archive-match,
body.single-match{
  --mt-panel:rgba(255,255,255,.045);      /* 白カードの代わりになる面 */
  --mt-panel-hi:rgba(255,255,255,.085);   /* ホバー時の面 */
  --mt-line:rgba(255,255,255,.14);        /* 面の輪郭（金をやめて白の細線）*/
  --mt-line-strong:rgba(255,255,255,.26);
  --mt-violet-line:rgba(122,79,216,.45);  /* 紫の輪郭 */
  --mt-violet-soft:rgba(122,79,216,.16);  /* 紫の淡い塗り（タグの地）*/
  --mt-violet-fill:linear-gradient(135deg,#5b37a8 0%,#3c2378 100%); /* 選択状態 */
  --mt-lilac:#c3b0f0;                     /* 暗地で読める明るい紫（旧・金の代役）*/
  --mt-gold-line:rgba(205,164,81,.34);    /* 金は線としてだけ使う */
  --mt-card:linear-gradient(160deg,#2a1852 0%,#170e2f 48%,#0d0918 100%);
  --mt-tag-radius:999px;                  /* タブ・フィルター（ピル）*/
  --mt-badge-radius:6px;                  /* バッジ・小タグ */

  /* 32章の共通トークンを、このページだけ読み替える */
  --lp-line:rgba(255,255,255,.14);        /* パネルの枠線：金 → 白の細線 */
  --tag-radius:999px;                     /* .cat-filter__item の角丸 */
}

/* ---- 36-2 32章の「金一括指定」をこのページだけ解除 ----
   ・リンクは白、ホバーで金（＝金は動きのある所だけ）
   ・[class*="__num"] の金は、スコアや背番号まで金にしてしまうので白へ */
body.post-type-archive-match main a:not(.btn),
body.single-match main a:not(.btn){ color:#fff; }
body.post-type-archive-match main a:not(.btn):hover,
body.single-match main a:not(.btn):hover{ color:var(--vio-gold-hi); }

body.post-type-archive-match main [class*="__num"],
body.single-match main [class*="__num"]{ color:#fff; }

/* 金地の「試合詳細」ボタンだけは上の白リンク指定から外す。32章の
   body:not(.home) main a.fx-card__btn（クラス2＋要素3）と詳細度が同じで、
   後に来るこの章が勝ってしまい金地×白文字になっていた。
   クラスを1つ増やして（クラス3＋要素3）トップと同じ金地×黒文字に戻す。 */
body.post-type-archive-match main a.fx-card__btn,
body.post-type-archive-match main a.fx-card__btn:hover,
body.single-match main a.fx-card__btn,
body.single-match main a.fx-card__btn:hover{
  background:linear-gradient(135deg, var(--vio-gold), var(--vio-gold-hi));
  color:var(--vio-ink);
}

/* ---- 36-3 ページヒーロー（紫→黒。帯だけ金で締める）---- */
body.post-type-archive-match .archive-hero,
body.single-match .archive-hero{
  background:linear-gradient(135deg,#3c2378 0%,#1e1338 58%,#0d0918 100%);
}
body.post-type-archive-match .archive-hero__stripe,
body.single-match .archive-hero__stripe{
  height:3px;
  background:linear-gradient(90deg,var(--vio-royal) 0%,var(--vio-violet) 58%,var(--vio-gold) 100%);
}

/* ============================================================
   36-A 試合一覧（archive-match.php）
   ============================================================ */

/* ---- 36-4 タブ（試合予定／試合結果）----
   スポーツ中継のスコアボード下タブに寄せたアンダーライン切替。
   背景は一切動かさず、選択中だけ白文字＋細い白線で示す。
   親テーマはアクティブ色に secondary（＝黒）を使うため暗地では見えない。
   ここで白に置き換える。 */
body.post-type-archive-match .match-tabs{
  display:flex;
  gap:8px;
  padding:0;
  border:0;
  border-bottom:1px solid rgba(255,255,255,.14);
  border-radius:0;
  background:transparent;
}
/* タブは <a> なので、36-2 の a:not(.btn) より詳細度を上げておく
   （そうしないと非選択タブまで白 100% になり、選択状態が弱くなる）*/
body.post-type-archive-match .match-tabs .match-tab{
  position:relative;
  margin-bottom:-1px; /* 親の下線に自前の下線を重ねる */
  padding:14px 26px;
  border:0;
  border-radius:0;
  background:transparent;
  color:rgba(255,255,255,.52);
  letter-spacing:.02em;
  transition:color .2s ease;
}
/* 下線は擬似要素。border だと表示/非表示で文字がずれる */
body.post-type-archive-match .match-tabs .match-tab::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:2px;
  background:#fff;
  opacity:0;
  transform:scaleX(.6);
  transition:opacity .2s ease, transform .2s ease;
}
body.post-type-archive-match .match-tabs .match-tab:hover{ color:rgba(255,255,255,.85); }
body.post-type-archive-match .match-tabs .match-tab--active{
  color:#fff;
  background:transparent;
  box-shadow:none;
}
body.post-type-archive-match .match-tabs .match-tab--active::after{
  opacity:1;
  transform:none;
}
@media (max-width:768px){
  body.post-type-archive-match .match-tabs{ width:100%; gap:0; }
  body.post-type-archive-match .match-tabs .match-tab{
    flex:1;
    justify-content:center;
    padding:13px 8px;
  }
}

/* ---- 36-5 フィルター（チームカテゴリー／シーズン）----
   カテゴリータグはピル。トップの .news-filter__btn と同じ形に揃える。 */
body.post-type-archive-match .match-filters .cat-filter__item{
  color:#fff;
  background:var(--mt-panel);
  border:1px solid var(--mt-line);
  border-radius:var(--mt-tag-radius);
}
body.post-type-archive-match .match-filters .cat-filter__item:hover{
  color:#fff;
  background:var(--mt-panel-hi);
  border-color:var(--mt-line-strong);
}
/* 色指定のない項目（「すべて」など）は紫で塗る */
body.post-type-archive-match .match-filters .cat-filter__item--active:not(.cat-filter__item--colored){
  color:#fff;
  background:var(--mt-violet-fill);
  border-color:var(--mt-violet-line);
}
/* チームカテゴリー色が設定されている項目は、その色を尊重する（金ではない）*/
body.post-type-archive-match .match-filters .cat-filter__item--colored.cat-filter__item--active{
  color:#fff;
  background:var(--cat-color, var(--vio-violet));
  border-color:var(--cat-color, var(--vio-violet));
}
body.post-type-archive-match .match-filters .cat-filter__item--team.cat-filter__item--active{
  color:#fff;
  background:var(--cat-dot, var(--vio-violet));
  border-color:var(--cat-dot, var(--vio-violet));
}
body.post-type-archive-match .match-filters .cat-filter__count{
  background:rgba(0,0,0,.28);
}
body.post-type-archive-match .cat-filter--sub{ border-top-color:var(--mt-line); }

body.post-type-archive-match .match-year-filter__label{ color:rgba(255,255,255,.7); }
body.post-type-archive-match .match-year-filter__select{
  color:#fff;
  background-color:var(--mt-panel);
  border:1px solid var(--mt-line);
  border-radius:var(--mt-tag-radius);
  /* 親の矢印アイコンは #777 で暗地に沈むため、明るい紫に差し替える */
  background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23c3b0f0' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
}
body.post-type-archive-match .match-year-filter__select:hover,
body.post-type-archive-match .match-year-filter__select:focus{
  border-color:var(--mt-line-strong);
}
/* ドロップダウンはOS描画なので、白地・黒字を明示しないと読めない */
body.post-type-archive-match .match-year-filter__select option{
  color:#111; background:#fff;
}

/* ---- 36-6 試合カード共通（結果／予定）----
   金の枠 → 白の細線、上端の金ライン → 紫のライン、斜めの金の光沢 → 紫。 */
body.post-type-archive-match .match-result-card,
body.post-type-archive-match .next-match-card{
  background:var(--mt-card);
  border:1px solid var(--mt-line);
  box-shadow:0 18px 40px rgba(0,0,0,.5);
}
body.post-type-archive-match .match-result-card::after,
body.post-type-archive-match .next-match-card::after{
  height:3px;
  background:linear-gradient(90deg,var(--vio-royal) 0%,rgba(122,79,216,.12) 100%);
}
body.post-type-archive-match .match-result-card::before,
body.post-type-archive-match .next-match-card::before{
  background:linear-gradient(115deg,transparent 44%,rgba(122,79,216,.14) 50%,transparent 56%);
}
body.post-type-archive-match .match-result-card__team-name,
body.post-type-archive-match .next-match-card__team-name{ color:#fff; }

/* ---- 36-7 試合結果カード ---- */
body.post-type-archive-match .match-result-card__header{
  background:transparent;
  border-bottom:1px solid var(--mt-line);
}
body.post-type-archive-match .match-result-card__date{
  color:#fff;                       /* 旧：金。スコアと並ぶ主役なので白に */
  font-size:1.5rem;
}
/* 大会名を角丸タグに（トップのタグと同じ言語）*/
body.post-type-archive-match .match-result-card__competition{
  display:inline-block;
  padding:3px 12px;
  color:rgba(255,255,255,.78);
  background:var(--mt-violet-soft);
  border:1px solid var(--mt-violet-line);
  border-radius:var(--mt-badge-radius);
  letter-spacing:.12em;
}
/* スコアボードの窓：内枠を金 → 紫へ */
body.post-type-archive-match .match-result-card__score{
  background:rgba(0,0,0,.32);
  border-radius:12px;
  box-shadow:inset 0 0 0 1px var(--mt-violet-line);
}
body.post-type-archive-match .match-result-card__score-num{
  color:#fff;
  text-shadow:0 2px 24px rgba(122,79,216,.85);
}
body.post-type-archive-match .match-result-card__pk{ color:rgba(255,255,255,.6); }
body.post-type-archive-match .match-result-card__footer{
  background:rgba(0,0,0,.22);
  border-top:1px solid var(--mt-line);
  color:rgba(255,255,255,.62);
}

/* ---- 36-8 試合予定カード ---- */
body.post-type-archive-match .next-match-card__competition{
  background:transparent;
  color:rgba(255,255,255,.72);
}
body.post-type-archive-match .next-match-card__date{ color:#fff; }   /* 旧：金 */
body.post-type-archive-match .next-match-card__date small{ color:rgba(255,255,255,.6); }
/* キックオフ時刻を角丸タグに */
body.post-type-archive-match .next-match-card__time{
  margin-top:6px;
  padding:4px 14px;
  color:var(--mt-lilac);
  background:var(--mt-violet-soft);
  border:1px solid var(--mt-violet-line);
  border-radius:var(--mt-tag-radius);
}
/* VSのメダリオン：金リング → 紫リング */
body.post-type-archive-match .next-match-card__vs{
  background:rgba(122,79,216,.14);
  border:1px solid var(--mt-violet-line);
}
body.post-type-archive-match .next-match-card__vs-text{ color:#fff; }
body.post-type-archive-match .next-match-card__venue{
  background:rgba(0,0,0,.22);
  border-top:1px solid var(--mt-line);
  color:rgba(255,255,255,.62);
}

/* ---- 36-9 ページネーション・空状態 ---- */
body.post-type-archive-match .archive-pagination .page-numbers a,
body.post-type-archive-match .archive-pagination .page-numbers span{
  color:#fff;
  background:var(--mt-panel);
  border:1px solid var(--mt-line);
  border-radius:var(--mt-badge-radius);
}
body.post-type-archive-match .archive-pagination .page-numbers a:hover{
  color:#fff;
  background:var(--mt-panel-hi);
  border-color:var(--mt-line-strong);
}
body.post-type-archive-match .archive-pagination .page-numbers .current{
  color:#fff;
  background:var(--mt-violet-fill);
  border-color:var(--mt-violet-line);
}
body.post-type-archive-match .archive-pagination .page-numbers .prev,
body.post-type-archive-match .archive-pagination .page-numbers .next{
  color:var(--mt-lilac);
  background:transparent;
  border-color:transparent;
}
body.post-type-archive-match .archive-pagination .page-numbers .prev:hover,
body.post-type-archive-match .archive-pagination .page-numbers .next:hover{
  color:#fff;
  background:var(--mt-panel);
}
body.post-type-archive-match .archive-pagination .page-numbers .dots{
  color:rgba(255,255,255,.5);
  background:transparent;
  border-color:transparent;
}

/* 親は primary（紫）の 6% 塗り＋紫アイコンで、暗地だと何も見えない */
body.post-type-archive-match .archive-empty__icon{
  background:var(--mt-violet-soft);
  border:1px solid var(--mt-line);
  color:var(--mt-lilac);
}
body.post-type-archive-match .archive-empty__text{ color:rgba(255,255,255,.7); }

/* ============================================================
   36-B 試合詳細（single-match.php）
   ============================================================ */

/* ---- 36-10 スコアボードは57章へ移した ----
   スコアボードは 2026-08 に、トップの試合カード（.fx-card / 12章）を
   そのまま描画する形に作り直した（single-match.php →
   fcviolets_render_fixture_card()）。ここにあった
   .single-match-hero / .single-match-score* / .single-match-team* の
   暗色化指定は、対応するマークアップごと無くなったので削除している。
   現在の指定は 57章（カードを詳細ページ用に拡大するぶんだけ）。 */

/* ページ末尾の余白。親テーマの .single-match-wrap（padding-bottom:80px）と
   .archive-main（同80px）が二重に効き、「一覧へ戻る」ボタンの下に
   160px の空白が残っていた。フッター直前の導線（56章）を試合詳細で
   出さなくしたぶん、ここも外側の80pxだけに一本化する。 */
body.single-match .single-match-wrap{ padding-bottom:0; }

body.single-match .single-match-thumbnail{
  background:var(--mt-panel);
  border:1px solid var(--mt-line);
  border-radius:0;
  box-shadow:none;
}

/* ---- 36-10b アイキャッチをページ上部へ ----
   2026-08：アイキャッチをスコアボードの上（コンテンツ幅いっぱい）に移動した
   （single-match.php ⓪）。以前は2カラム行の下に置いていたので、
   その試合の「顔」になる写真がファーストビューに入らなかった。
   縦長の写真がそのまま入ると1画面を占領してしまうので、
   16:9（SPは4:3）で切り抜いて高さを固定する。 */
body.single-match .single-match-thumbnail--top{
  margin:0 0 20px;
  overflow:hidden;
}
body.single-match .single-match-thumbnail--top .single-match-thumbnail__img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:16 / 9;
  object-fit:cover;
  object-position:center;
}
@media (max-width:768px){
  body.single-match .single-match-thumbnail--top{ margin-bottom:16px; }
  body.single-match .single-match-thumbnail--top .single-match-thumbnail__img{
    aspect-ratio:4 / 3;
  }
}

/* ---- 36-11 WIN / DRAW / LOSE バッジ（一覧・詳細で共通）----
   金の塗り → 紫の塗り＋金1pxの内枠。角丸はピル。 */
body.post-type-archive-match .match-result-card__badge,
body.single-match .match-result-card__badge{
  padding:3px 16px;
  color:#fff;
  border-radius:var(--mt-tag-radius);
}
body.post-type-archive-match .match-result-card__badge--win,
body.single-match .match-result-card__badge--win{
  color:#fff;
  background:linear-gradient(135deg,#6b41c4 0%,#3c2378 100%);
  box-shadow:inset 0 0 0 1px rgba(205,164,81,.55);
}
body.post-type-archive-match .match-result-card__badge--draw,
body.single-match .match-result-card__badge--draw{
  color:#fff;
  background:rgba(255,255,255,.10);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.3);
}
body.post-type-archive-match .match-result-card__badge--lose,
body.single-match .match-result-card__badge--lose{
  color:#fff;
  background:rgba(176,52,42,.85);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
}

/* ---- 36-12 セクションカード（試合情報・得点者・レポート等）---- */
body.single-match .single-match-meta-card{
  background:var(--mt-panel);
  border:1px solid var(--mt-line);
  border-radius:0;
  box-shadow:none;
}
/* 見出し（Match Report 試合レポート / Goal Scorers 得点者 …）
   親テーマは「10.5px の小さなENアイブロウ＋和文17px＋全幅の下線」だが、
   サイト内の他のセクション見出し（Players 選手紹介 / News お知らせ）は
   2)章の .section-heading ＝「大きな金の英字 → 下に白の和文 → 金のバー」で
   統一されている。ここだけ作りが違って浮いていたので同じ骨格に揃える。
   カードの中なので英字はトップの clamp(2rem,5vw,3.2rem) までは上げず、
   1段小さい寸法にする（PC2カラム時の列幅は約490px）。 */
/* ※ セレクタは __heading だけに絞る。カードの中には試合レポート本文の h3 も
   入るので、.single-match-meta-card h3 に letter-spacing を掛けると本文の
   小見出しまで間延びしてしまう（53-3 側は letter-spacing を戻していない）。 */
body.single-match .single-match-meta-card__heading{
  position:relative;
  margin:0 0 22px;
  padding:0 0 14px;
  font-size:.95rem;                  /* 和文＝.section-heading__ja と同寸 */
  font-weight:700;
  letter-spacing:.2em;
  text-indent:.2em;                  /* letter-spacing で右にずれる分を戻す */
  line-height:1.5;
  color:#fff;
  border-bottom:0;                   /* 全幅の下線はやめ、金のバーだけで受ける */
}
/* 英字は data-en 属性から出している（PHP側の markup は変更なし）*/
body.single-match .single-match-meta-card__heading[data-en]::before{
  content:attr(data-en);
  display:block;
  margin-bottom:.4em;
  font-family:var(--font-crest);
  font-size:clamp(1.45rem, 2.4vw, 1.85rem);
  font-weight:800;
  line-height:1.02;
  letter-spacing:normal;             /* トップの見出しと同じくトラッキングなし */
  text-indent:0;
  text-transform:none;               /* 「Match Report」の大小はそのまま出す */
  color:var(--vio-gold);
  opacity:1;
}
body.single-match .single-match-meta-card__heading::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:56px;
  height:3px;
  background:linear-gradient(90deg, var(--vio-gold), var(--vio-gold-hi));
}
@media (max-width:600px){
  body.single-match .single-match-meta-card__heading{ margin-bottom:18px; }
  body.single-match .single-match-meta-card__heading[data-en]::before{ font-size:1.35rem; }
}

body.single-match .match-report-content{ color:var(--lp-text); }
body.single-match .match-report-content strong{ color:#fff; }

/* ---- 36-13 得点者 ----
   レポートと同じカードの中に入れる（single-match.php ②）。以前は全幅の単独
   カードで、親テーマの .scorer-time{margin-left:auto} が効いて得点時間だけが
   遠い右端に飛び、名前と関係が無いように見えていた。ここでは行を
   「印 → 背番号 → 名前 → 時間」の固定した並びにして、時間は幅を決めた枠に
   右寄せで入れる。時間が未入力の行も枠ごと出す（"–"）ので、入力の有無で
   行の作りが変わらず、右端が必ず揃う。 */
body.single-match .single-match-scorers-block{ margin-top:clamp(22px, 3vw, 30px); }
/* レポート本文がある場合だけ、上に区切りの線を入れて段を分ける */
body.single-match .match-report-content + .single-match-scorers-block{
  padding-top:clamp(20px, 2.6vw, 26px);
  border-top:1px solid var(--mt-line);
}

/* カード内の小見出し（「得点者」）。カード見出し（__heading）は金の英字が
   大きいので、同じカードに2つ並べると重い。こちらは英字を小さく前置きする。 */
body.single-match .single-match-subheading{
  display:flex;
  align-items:baseline;
  gap:10px;
  margin:0 0 14px;
  font-size:.9rem;
  font-weight:700;
  letter-spacing:.14em;
  color:#fff;
}
body.single-match .single-match-subheading[data-en]::before{
  content:attr(data-en);
  font-family:var(--font-crest);
  font-size:1.05rem;
  font-weight:800;
  letter-spacing:normal;
  color:var(--vio-gold);
}

body.single-match .single-match-scorers{ list-style:none; margin:0; padding:0; }
body.single-match .single-match-scorers li{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0;
  padding:11px 4px;
  border-bottom:1px solid var(--mt-line);
  border-radius:0;
  font-size:.95rem;
}
body.single-match .single-match-scorers li:last-child{ border-bottom:0; }
body.single-match .single-match-scorers li:hover{ background:var(--mt-panel-hi); }

/* 行頭の印。得点＝ボール1つ、という並びが目で追えるようにする小さな丸。 */
body.single-match .scorer-mark{
  flex:0 0 auto;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--vio-gold);
  box-shadow:0 0 0 3px rgba(205,164,81,.16);
}

body.single-match .scorer-number{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:26px;
  height:26px;
  padding:0 6px;
  border-radius:50px;
  font-family:var(--font-display);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:0;
  color:#fff;
  background:linear-gradient(135deg,#6b41c4 0%,#3c2378 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);
}

body.single-match .scorer-name{
  flex:1 1 auto;
  min-width:0;
  font-weight:600;
  color:#fff;
  overflow-wrap:anywhere;
}

body.single-match .scorer-time{
  flex:0 0 auto;
  min-width:3.6em;
  margin-left:0;                      /* 親テーマの margin-left:auto を打ち消す */
  text-align:right;
  font-family:var(--font-display);
  font-size:.95rem;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  letter-spacing:0;
  color:var(--vio-gold-hi);
}
body.single-match .scorer-time__unit{
  margin-left:1px;
  font-size:.72em;
  font-weight:600;
  color:var(--mt-lilac);
}
/* 時間が未入力の行。枠は残して中身だけ薄くする。 */
body.single-match .scorer-time--empty{ color:rgba(255,255,255,.28); font-weight:600; }

/* ---- 36-14 タイムライン ----
   アイコンの丸は親がパステル（#ecfdf5 等）で、暗地だと白く浮いてしまう。
   地は暗いタイントに、種別は線と文字色で示す。左のアクセントバー
   （.match-timeline__item::before）は親の色のままで暗地でも判別できる。 */
body.single-match .match-timeline__item{ border-bottom-color:var(--mt-line); }
body.single-match .match-timeline__item:hover{ background:var(--mt-panel-hi); }
body.single-match .match-timeline__time{ color:#fff; }
body.single-match .match-timeline__event-type{ color:rgba(255,255,255,.5); }
body.single-match .match-timeline__player{ color:#fff; }
body.single-match .match-timeline__icon{
  color:#fff;
  background:rgba(255,255,255,.06);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);
}
body.single-match .match-timeline__icon--goal{
  color:#6ee7b7; background:rgba(16,185,129,.15); box-shadow:inset 0 0 0 1px rgba(16,185,129,.5);
}
body.single-match .match-timeline__icon--assist{
  color:#93c5fd; background:rgba(59,130,246,.15); box-shadow:inset 0 0 0 1px rgba(59,130,246,.5);
}
body.single-match .match-timeline__icon--yellow_card{
  color:#fcd34d; background:rgba(234,179,8,.15); box-shadow:inset 0 0 0 1px rgba(234,179,8,.5);
}
body.single-match .match-timeline__icon--red_card{
  color:#fca5a5; background:rgba(239,68,68,.15); box-shadow:inset 0 0 0 1px rgba(239,68,68,.5);
}
body.single-match .match-timeline__icon--substitution{
  color:#67e8f9; background:rgba(6,182,212,.15); box-shadow:inset 0 0 0 1px rgba(6,182,212,.5);
}
body.single-match .match-timeline__icon--other{
  color:rgba(255,255,255,.7); background:rgba(255,255,255,.07); box-shadow:inset 0 0 0 1px var(--mt-line);
}

/* ---- 36-15 出場選手 ---- */
body.single-match .match-lineup__group-title{
  color:rgba(255,255,255,.62);
  border-bottom:1px solid var(--mt-line);
}
body.single-match .match-lineup__player{ border-bottom-color:var(--mt-line); }
body.single-match .match-lineup__name{ color:#fff; }
body.single-match .match-lineup__number{
  color:#fff;
  background:linear-gradient(135deg,#6b41c4 0%,#3c2378 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);
}
/* 2クラス指定：36-2 の [class*="__num"] に負けないようにする */
body.single-match .match-lineup__number.match-lineup__number--empty{
  color:rgba(255,255,255,.45);
  background:rgba(255,255,255,.07);
  box-shadow:inset 0 0 0 1px var(--mt-line);
}
/* ポジションタグ：色はトップの選手カード（.fcv-pl__pos）と統一し、角丸に */
body.single-match .match-lineup__position{
  border-radius:var(--mt-badge-radius);
  background:rgba(255,255,255,.1);
  color:#fff;
}
body.single-match .match-lineup__position--GK{ background:#f59e0b; color:#1a1200; }
body.single-match .match-lineup__position--DF{ background:#3b82f6; color:#fff; }
body.single-match .match-lineup__position--MF{ background:#10b981; color:#04231a; }
body.single-match .match-lineup__position--FW{ background:#ef4444; color:#fff; }
body.single-match .match-lineup__position--SW{ background:#8b5cf6; color:#fff; }

/* ---- 36-16 MVP ----
   ページ内で唯一、金をまとまった面積で使う場所（トロフィーの意味づけ）。
   ここに集約することで、他を紫×黒に振っても「金のクラブカラー」は残る。 */
body.single-match .match-mvp-card{
  background:linear-gradient(135deg,rgba(205,164,81,.12) 0%,rgba(60,35,120,.24) 55%,rgba(13,9,24,.6) 100%);
  border:1px solid var(--mt-gold-line);
  border-radius:0;
}
body.single-match .match-mvp-card::before{
  background:radial-gradient(circle, rgba(205,164,81,.16) 0%, transparent 70%);
}
body.single-match .match-mvp-icon{
  color:var(--vio-gold-hi);
  background:rgba(13,9,24,.55);
  border:1px solid rgba(205,164,81,.6);
  box-shadow:none;
}
body.single-match .match-mvp-label{ color:var(--vio-gold-hi); }
body.single-match .match-mvp-name{ color:#fff; }
body.single-match .match-mvp-reason{ color:rgba(255,255,255,.68); }

/* ---- 36-17 監督コメント ---- */
body.single-match .match-coach-quote{
  background:var(--mt-panel);
  border-left:3px solid var(--vio-royal);
  border-radius:0;
}
body.single-match .match-coach-quote::before{ color:var(--vio-royal); opacity:.4; }
body.single-match .match-coach-quote__text{ color:var(--lp-text); }
body.single-match .match-coach-quote__cite{ color:var(--mt-lilac); }

/* ---- 36-18 ギャラリー ---- */
body.single-match .match-gallery-item{
  background:rgba(255,255,255,.06);
  border-radius:var(--mt-badge-radius);
}

/* ---- 36-19 一覧へ戻る／前後ナビ ---- */
body.single-match .single-match-back .single-match-back__btn{
  color:#fff;
  background:var(--mt-violet-fill);
  border:1px solid rgba(255,255,255,.2);
  box-shadow:0 8px 22px rgba(13,9,24,.5);
}
body.single-match .single-match-back .single-match-back__btn:hover,
body.single-match .single-match-back .single-match-back__btn:focus-visible{
  color:#fff;
  background:linear-gradient(135deg,#6b41c4 0%,#4a2c8f 100%);
  border-color:var(--mt-gold-line);   /* ホバーで金の細線 */
}
body.single-match .single-match-back .single-match-back__btn:hover .single-match-back__icon,
body.single-match .single-match-back .single-match-back__btn:focus-visible .single-match-back__icon{
  color:#fff;
  background:rgba(255,255,255,.26);
}

body.single-match .single-match-nav .nav-prev,
body.single-match .single-match-nav .nav-next{
  color:#fff;
  background:var(--mt-panel);
  border:1px solid var(--mt-line);
  border-radius:0;
  box-shadow:none;
}
body.single-match .single-match-nav .nav-prev:hover,
body.single-match .single-match-nav .nav-next:hover{
  color:#fff;
  background:var(--mt-panel-hi);
  border-color:var(--mt-violet-line);
  box-shadow:0 8px 20px rgba(0,0,0,.35);
}
body.single-match .single-match-nav a svg{ color:var(--mt-lilac); }

/* ---- 36-20 数字はFV画像と同じコンデンス体（33章と同じ扱い）----
   33章のリストは試合情報ページのクラスを含んでいなかったため、
   スコアや日付だけ書体が違っていた。ここで揃える。 */
body.post-type-archive-match .match-result-card__date,
body.post-type-archive-match .match-result-card__score-num,
body.post-type-archive-match .match-result-card__pk,
body.post-type-archive-match .next-match-card__date,
body.post-type-archive-match .next-match-card__time,
body.single-match .scorer-number,
body.single-match .scorer-time,
body.single-match .match-timeline__time-num,
body.single-match .match-lineup__number{
  font-family:var(--font-num);
  font-variant-numeric:tabular-nums;
  /* Bebas Neue はウェイト400のみ。太字合成で字形が潰れるため400に固定 */
  font-weight:400;
}

/* ============================================================
   37) クラブ概要ページ（page-about.php／子テーマで内容を直書き）

   30章で暗色化した土台（about-section / about-info-table /
   about-history__body table）はそのまま使う。ここでは
     ・親テーマに無い「エンブレム」セクション
     ・理念の引用文と沿革の年（親CSSが暗背景を想定していない箇所）
   だけを足す。
   セクションの並びは 理念(紺) → クラブ概要(黒) → エンブレム(紺) → 沿革(黒)。
   ============================================================ */

/* ---- 37-1 クラブ理念：引用文を白＋金の下線で見出し扱いにする ----
   本文の幅は親テーマの .about-philosophy__content.wp-content（720px）に任せる。 */
body.page-template-page-about .about-philosophy__lead .about-philosophy__quote{
  color:#fff;
  position:relative;
  padding-bottom:24px;
  margin-bottom:32px;
}
/* トップのFVワードマークと同じ“キックオフ”ライン */
body.page-template-page-about .about-philosophy__lead .about-philosophy__quote::after{
  content:"";
  position:absolute; left:50%; bottom:0;
  transform:translateX(-50%);
  width:90px; height:3px;
  background:linear-gradient(90deg,var(--vio-gold),var(--vio-gold-hi));
}
body.page-template-page-about .about-philosophy__text p{
  line-height:2;
}
/* 4段落目の標語だけは1行のコピーとして扱う。前後を空けて金の細線で挟み、
   長い本文の中でここだけ読点で止まるようにする。 */
body.page-template-page-about .about-philosophy__text .about-philosophy__pledge{
  margin:clamp(28px, 3.4vw, 40px) 0;
  padding:clamp(18px, 2.2vw, 24px) 0;
  border-top:1px solid rgba(205,164,81,.28);
  border-bottom:1px solid rgba(205,164,81,.28);
  text-align:center;
  font-family:var(--font-display);
  font-size:clamp(1.02rem, 2.2vw, 1.32rem);
  font-weight:700;
  letter-spacing:.06em;
  line-height:1.8;
  color:var(--vio-gold-hi);
}
/* SP専用の改行。標語のように「文の切れ目で折り返したい」テキストで使う汎用クラス。
   PCでは1行に収まるので消し、768px以下だけ改行として効かせる。 */
.sp-only{ display:none; }
@media (max-width:768px){
  .sp-only{ display:inline; }
}
/* メタボックスからのHTML（strong / h2〜h4）は親CSSが紫指定＝暗背景で沈むため戻す */
body.page-template-page-about .about-philosophy__content.wp-content strong,
body.page-template-page-about .about-emblem__text.wp-content strong,
body.page-template-page-about .about-history__body.wp-content strong{ color:#fff; }
body.page-template-page-about .about-philosophy__content.wp-content h2,
body.page-template-page-about .about-philosophy__content.wp-content h3,
body.page-template-page-about .about-philosophy__content.wp-content h4{ color:var(--vio-gold); }
body.page-template-page-about .about-philosophy__content.wp-content h4{ border-left-color:var(--vio-gold); }

/* ---- 37-2 クラブ概要テーブル：連絡先のメールリンク ---- */
body.page-template-page-about .about-info-table__value a{
  color:var(--vio-gold-hi);
  text-decoration:underline;
  text-underline-offset:.25em;
}
body.page-template-page-about .about-info-table__value a:hover{ color:#fff; }

/* ---- 37-3 エンブレム ----
   画像は透過PNG。暗背景でクレストが浮くよう、後ろに金のごく淡い光だけ敷く。 */
body.page-template-page-about .about-emblem__inner{
  display:grid;
  /* カスタムロゴの実寸が 240px のため、列幅もそれ以上に広げない（拡大でぼやけるため） */
  grid-template-columns:minmax(0,240px) minmax(0,1fr);
  gap:48px;
  align-items:center;
  max-width:900px;
  margin:0 auto;
}
body.page-template-page-about .about-emblem__figure{
  margin:0;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
}
body.page-template-page-about .about-emblem__figure::before{
  content:"";
  position:absolute;
  inset:-8%;
  background:radial-gradient(circle at 50% 50%, rgba(205,164,81,.20) 0%, rgba(205,164,81,0) 68%);
  pointer-events:none;
}
body.page-template-page-about .about-emblem__img{
  position:relative;
  display:block;
  width:100%;
  max-width:240px;
  height:auto;
  filter:drop-shadow(0 10px 26px rgba(0,0,0,.45));
}
body.page-template-page-about .about-emblem__title{
  color:var(--vio-gold);
  font-family:var(--font-display);
  font-size:clamp(1.15rem,2.4vw,1.5rem);
  font-weight:700;
  letter-spacing:.04em;
  line-height:1.5;
  margin:0 0 20px;
  padding-left:14px;
  border-left:3px solid var(--vio-gold);
}
body.page-template-page-about .about-emblem__text p{
  line-height:2;
  margin:0 0 1em;
}
body.page-template-page-about .about-emblem__text p:last-child{ margin-bottom:0; }

@media (max-width:768px){
  body.page-template-page-about .about-emblem__inner{
    grid-template-columns:1fr;
    gap:32px;
    justify-items:center;
  }
  body.page-template-page-about .about-emblem__img{ max-width:200px; }
  body.page-template-page-about .about-emblem__title{ text-align:left; }
}

/* ---- 37-4 チーム沿革：年をFV画像と同じコンデンス体＋金に ---- */
body.page-template-page-about .about-history__body table tbody td:first-child{
  color:var(--vio-gold);
  font-family:var(--font-num);
  font-variant-numeric:tabular-nums;
  font-weight:400;                       /* Bebas Neue はウェイト400のみ */
  font-size:1.05rem;
  letter-spacing:.04em;
}
/* 見出し行は sr-only ではなく実表示。暗背景に合わせて金の罫線で締める */
body.page-template-page-about .about-history__body table thead th{
  letter-spacing:.18em;
}

/* ============================================================
   38) 下層ページ：ページ内ナビ（.about-nav）

   ヒーロー直下に置き、スクロールするとヘッダーの真下に貼り付く。

   ● 使っているテンプレート（マークアップとJSも共用）
       page-about.php    … クラブ概要（初出。クラス名の .about-* はこの名残）
       page-partners.php … パートナー（41章）
       page-recruit.php  … 選手募集（39章）
       page-team-category.php … チームトップ（45章）
     JS は assets/js/about-nav.js 1本を4つで使う（子テーマ functions.php で読込）。
     テンプレートを増やすときは、この章のセレクタ（body:is(...)）と
     下のアンカー用 scroll-margin-top のセレクタに body クラスを足す。

   ● 位置と余白は CSS変数で決める（JSでの実測はしない）
       --header-total-h      … ヘッダー(.fcv-header)の高さ。PC 2段構成で93px、
                               SPは2段目がオーバーレイになるため53px。
       --about-nav-h         … このナビの高さ。アンカーのオフセット計算に使う。
       --about-nav-clearance … ヘッダー中央のエンブレムがナビへ垂れ下がる分の逃がし。
     ヘッダーの構成を変えたときは、この3つを直せば追従位置もアンカー位置も揃う。
     ※ --about-nav-h でナビの高さ自体を指定しないこと。高さは padding で決め、
       この変数は「アンカーをどれだけ下げるか」の計算にだけ使う。

   ● SPは画面幅いっぱいの横スクロールタブ
     .about-nav__inner の .container（左右20px）をSPだけ外し、最初のタブを
     画面左端から始める。右端には「まだ先がある」ことを示すフェードを出す
     （下の @media (max-width:1024px) を参照）。フェードの出し分けに使う
     .is-scrollable / .is-scroll-end は about-nav.js が付け外しする。

   ● 項目を左寄せにしている理由
     ヘッダー中央のエンブレムは下へ約30pxはみ出す。エンブレムはヘッダー
     (z-index:1000)の中に描かれるためこのナビより必ず前面に来る。
     中央寄せだと文字がエンブレムの裏に隠れる。
   ============================================================ */
:root{
  --header-total-h:93px;
  --about-nav-h:44px;
  /* PCは項目が左寄せでエンブレムより左に収まるため逃がしは不要 */
  --about-nav-clearance:0px;
}
@media (max-width:1024px){
  :root{
    --header-total-h:53px;
    --about-nav-h:56px;
    /* SPは横スクロールで項目がエンブレム（下へ約17pxはみ出す）の真下を通るため逃がす */
    --about-nav-clearance:17px;
  }
}

body:is(.page-template-page-about,.page-template-page-partners,.page-template-page-partner-recruit,.page-template-page-recruit,.page-template-page-team-category) .about-nav{
  position:sticky;
  top:var(--header-total-h, 80px);
  z-index:900;                       /* ヘッダー(1000)より下＝SPのメニュー展開時は隠れる */
  background:rgba(13,9,24,.88);      /* --vio-ink の半透明 */
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(205,164,81,.30);   /* ヘッダー1段目と同じ金のヘアライン */
}
body:is(.page-template-page-about,.page-template-page-partners,.page-template-page-partner-recruit,.page-template-page-recruit,.page-template-page-team-category) .about-nav__inner{
  display:flex;
}
body:is(.page-template-page-about,.page-template-page-partners,.page-template-page-partner-recruit,.page-template-page-recruit,.page-template-page-team-category) .about-nav__list{
  display:flex;
  align-items:stretch;
  margin:0;
  /* 上の余白はエンブレムの垂れ下がり分の逃がし（値は上の :root を参照） */
  padding:var(--about-nav-clearance, 0px) 0 0;
  list-style:none;
  /* SPでは横スクロールするタブ。スクロールバーは隠す */
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  -ms-overflow-style:none;
  overscroll-behavior-x:contain;
}
body:is(.page-template-page-about,.page-template-page-partners,.page-template-page-partner-recruit,.page-template-page-recruit,.page-template-page-team-category) .about-nav__list::-webkit-scrollbar{ display:none; }
body:is(.page-template-page-about,.page-template-page-partners,.page-template-page-partner-recruit,.page-template-page-recruit,.page-template-page-team-category) .about-nav__item{ flex:0 0 auto; }

body:is(.page-template-page-about,.page-template-page-partners,.page-template-page-partner-recruit,.page-template-page-recruit,.page-template-page-team-category) .about-nav__link{
  position:relative;
  display:flex;
  align-items:center;
  padding:15px 20px;
  line-height:1;
  white-space:nowrap;
  font-family:var(--font-display);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.16em;
  text-indent:.16em;                 /* letter-spacing の右余りを打ち消して光学的に中央へ */
  color:rgba(255,255,255,.70);
  text-decoration:none;
  transition:color .2s ease;
}
body:is(.page-template-page-about,.page-template-page-partners,.page-template-page-partner-recruit,.page-template-page-recruit,.page-template-page-team-category) .about-nav__link:hover{ color:#fff; }
body:is(.page-template-page-about,.page-template-page-partners,.page-template-page-partner-recruit,.page-template-page-recruit,.page-template-page-team-category) .about-nav__link:focus-visible{
  outline:2px solid var(--vio-gold);
  outline-offset:-2px;
}

/* アクティブ項目：金の下線（左から伸びる） */
body:is(.page-template-page-about,.page-template-page-partners,.page-template-page-partner-recruit,.page-template-page-recruit,.page-template-page-team-category) .about-nav__link::after{
  content:"";
  position:absolute;
  left:20px; right:20px; bottom:0;
  height:2px;
  background:linear-gradient(90deg,var(--vio-gold),var(--vio-gold-hi));
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .25s ease;
}
body:is(.page-template-page-about,.page-template-page-partners,.page-template-page-partner-recruit,.page-template-page-recruit,.page-template-page-team-category) .about-nav__link.is-active{ color:#fff; }
body:is(.page-template-page-about,.page-template-page-partners,.page-template-page-partner-recruit,.page-template-page-recruit,.page-template-page-team-category) .about-nav__link.is-active::after{ transform:scaleX(1); }

/* アンカーで飛んだときに固定ヘッダー＋ナビの下へ潜らないようにする。
   JS の scrollIntoView() もこの値を尊重するため、JS側でのオフセット計算は不要。 */
body.page-template-page-about .about-section,
body.pt-page .pt-section,
body.pt-page .pt-tier,
body.pt-page .pt-subheading,
body.fcv-rec-page .rec-section,
body.page-template-page-team-category .tc-section{
  scroll-margin-top:calc(var(--header-total-h, 80px) + var(--about-nav-h, 44px) + 8px);
}

@media (max-width:1024px){
  body:is(.page-template-page-about,.page-template-page-partners,.page-template-page-partner-recruit,.page-template-page-recruit,.page-template-page-team-category) .about-nav__link{
    padding:13px 14px;
    font-size:.78rem;
    letter-spacing:.12em;
    text-indent:.12em;
  }
  body:is(.page-template-page-about,.page-template-page-partners,.page-template-page-partner-recruit,.page-template-page-recruit,.page-template-page-team-category) .about-nav__link::after{ left:14px; right:14px; }

  /* SPは項目が画面幅に収まらず横スクロールになる。
     .container の左右20pxが残っていると、スクロール領域が画面より内側で
     終わるため「20px手前で文字が切れている」ように見え、スクロールできることも
     伝わらない。SPだけ左右のパディングを外して画面端まで使い、
     最初のタブを画面左端から始める。 */
  body:is(.page-template-page-about,.page-template-page-partners,.page-template-page-partner-recruit,.page-template-page-recruit,.page-template-page-team-category) .about-nav__inner{
    max-width:none;
    padding-left:0;
    padding-right:0;
  }

  /* 右端のフェード：まだ先にタブがあることを示す。
     ::after は .about-nav__list（display:flex）の最後のフレックスアイテムに
     なる。position:sticky / right:0 なので、途中では右端に貼り付いて次のタブを
     ぼかし、末尾まで送ると本来の位置（最後のタブの後ろ）へ収まる。
     ＝スクロールし切ったときに最後のタブへ被らない（JSでの端判定は不要）。
     幅ぶんは末尾の余白としても働くので、最後のタブが画面右端に密着しない。

     項目が画面幅に収まるページ（クラブ概要など）では出さない。地色より濃い
     帯が右端に残って見えるだけで、意味が無いため。
     .is-scrollable は about-nav.js が「横スクロールが要るか」で付け外しする。
     既定は width:0 なので、クラスが付くまでフェード分がスクロール量を
     増やすこともない。 */
  body:is(.page-template-page-about,.page-template-page-partners,.page-template-page-partner-recruit,.page-template-page-recruit,.page-template-page-team-category) .about-nav__list::after{
    content:"";
    flex:0 0 auto;
    align-self:stretch;
    position:sticky;
    right:0;
    width:0;
    /* エンブレム逃がし（.about-nav__list の padding-top）の分も覆う */
    margin-top:calc(-1 * var(--about-nav-clearance, 0px));
    pointer-events:none;
    /* ナビ地色（--vio-ink の半透明）へ溶けるグラデーション */
    background:linear-gradient(90deg,rgba(13,9,24,0),rgba(13,9,24,.92) 70%);
    transition:opacity .2s ease;
  }
  body:is(.page-template-page-about,.page-template-page-partners,.page-template-page-partner-recruit,.page-template-page-recruit,.page-template-page-team-category) .about-nav.is-scrollable .about-nav__list::after{
    width:40px;
  }
  /* 末尾まで送ったらフェードを消す（もう先が無いので示唆する必要がない）。
     幅は残すので、最後のタブは画面右端に密着しない。 */
  body:is(.page-template-page-about,.page-template-page-partners,.page-template-page-partner-recruit,.page-template-page-recruit,.page-template-page-team-category) .about-nav.is-scroll-end .about-nav__list::after{
    opacity:0;
  }
}

@media (prefers-reduced-motion:reduce){
  body:is(.page-template-page-about,.page-template-page-partners,.page-template-page-partner-recruit,.page-template-page-recruit,.page-template-page-team-category) .about-nav__link,
  body:is(.page-template-page-about,.page-template-page-partners,.page-template-page-partner-recruit,.page-template-page-recruit,.page-template-page-team-category) .about-nav__link::after{ transition:none; }
}

/* ============================================================
   39) 下層ページ：選手募集（page-recruit.php）

   トップチーム（/recruit-top/）とU-15（/recruit-u15/）で同じテンプレートを
   使うため、CSSもカテゴリーで分けず body.fcv-rec-page に一本化する。

   土台は32章（下層ページ共通の暗色化）に乗っている。
     ・main > section の「紺 → 黒」の交互背景
     ・見出しの英字（[class*="__en"]）を金に戻す
   ここで足すのは、このページ固有の部品（概要テーブル／ポジション／
   タイムライン／CTA）と、セクションの余白だけ。

   クラス名を .rec-* にしているのは、親テーマのパートナー募集ページが持つ
   .recruit-flow__step / .recruit-cta__btn などと衝突させないため
   （32章に、それらを暗色化する共通指定が既にある）。
   ============================================================ */
/* スコープは .fcv-rec-page。以前は body.page-template-page-recruit だったが、
   パートナー募集ページのパートナーシップ申込フォームでも同じ .rec-form* を
   使うことになったので、テンプレート名ではなく共有のボディクラスに変えた
   （子テーマ functions.php の fcv_body_class で、選手募集ページと
   パートナー募集ページの両方に付けている）。
   .rec-hero / .rec-section などフォーム以外の指定は .rec-* 側のクラスが
   無いと当たらないので、パートナー募集ページには影響しない。 */
body.fcv-rec-page{
  --rec-line:rgba(205,164,81,.30);       /* 金のヘアライン */
  --rec-line-soft:rgba(255,255,255,.10);
  --rec-panel:rgba(255,255,255,.035);
}

/* ── セクションの余白（他の下層ページと同じリズム）── */
body.fcv-rec-page .rec-section{
  padding:clamp(56px, 7vw, 96px) 0;
}

/* ── ヒーロー：見出しの下にカテゴリー名を出す ──
   トップチームかU-15かはページの一番の情報なので、h1 の直下で金の枠に入れる。 */
body.fcv-rec-page .rec-hero__cat{
  display:inline-block;
  margin:14px 0 0;
  padding:5px 16px;
  border:1px solid var(--vio-gold);
  font-family:var(--font-display);
  font-weight:700;
  font-size:.82rem;
  letter-spacing:.16em;
  text-indent:.16em;
  color:var(--vio-gold-hi);
}

/* ============================================================
   39-1) チームからのメッセージ

   写真（左）＋本文（右）の2カラム。写真が未設定でもシルエット入りの枠が
   同じ場所に入るので、後から画像を差し替えても組みは変わらない。
   ============================================================ */
body.fcv-rec-page .rec-message__layout{
  max-width:980px;
  margin-inline:auto;
  display:grid;
  grid-template-columns:minmax(0, 210px) minmax(0, 1fr);
  gap:clamp(24px, 3.4vw, 44px);
  align-items:start;
}
/* 写真・署名を持たないカテゴリー（トップチーム）は本文だけ。1列に落として
   幅を絞る（本文が長いので、行長が伸びすぎないところで止める）。 */
body.fcv-rec-page .rec-message__layout--solo{
  max-width:860px;
  grid-template-columns:minmax(0, 1fr);
}
body.fcv-rec-page .rec-message__figure{
  margin:0;
}
/* 写真は縦3:4に固定して、差し替えでも高さが動かないようにする。 */
body.fcv-rec-page .rec-message__photo{
  width:100%;
  aspect-ratio:3 / 4;
  object-fit:cover;
  background:var(--rec-panel);
  border:1px solid var(--rec-line);
}
/* 未設定時のシルエット。金を薄く落として「まだ写真が無い枠」だと分かる程度に。 */
body.fcv-rec-page .rec-message__photo--empty{
  display:flex;
  align-items:center;
  justify-content:center;
  color:rgba(205,164,81,.32);
}
body.fcv-rec-page .rec-message__photo--empty svg{
  width:46%;
  height:auto;
}
body.fcv-rec-page .rec-message__caption{
  margin-top:14px;
  text-align:center;
}
body.fcv-rec-page .rec-message__role{
  display:block;
  font-size:.76rem;
  line-height:1.7;
  letter-spacing:.06em;
  color:var(--lp-muted);
}
body.fcv-rec-page .rec-message__name{
  display:block;
  margin-top:6px;
  font-size:1.05rem;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--vio-gold);
}
body.fcv-rec-page .rec-message__body{
  padding:clamp(24px, 3.4vw, 40px);
  background:var(--rec-panel);
  border:1px solid var(--rec-line);
  border-left:4px solid var(--vio-gold);
}
/* 冒頭の引用。本文より大きく金で置き、罫線で本文と切る。 */
body.fcv-rec-page .rec-message__quote{
  margin:0 0 clamp(20px, 2.6vw, 30px);
  padding-bottom:clamp(18px, 2.4vw, 26px);
  border-bottom:1px solid var(--rec-line-soft);
  font-size:clamp(1.05rem, 2vw, 1.32rem);
  font-weight:700;
  line-height:1.9;
  letter-spacing:.02em;
  color:var(--vio-gold-hi);
}
/* 段落は「空行で分かれた1かたまり」。段落内の改行（<br>）はそのまま残す。 */
body.fcv-rec-page .rec-message__text{
  margin:0 0 1.7em;
  font-size:clamp(.95rem, 1.4vw, 1.02rem);
  line-height:2.1;
  color:#fff;
}
body.fcv-rec-page .rec-message__text:last-child{ margin-bottom:0; }

/* ============================================================
   39-2) チーム概要テーブル
   クラブ概要ページの .about-info-table と同じ「暗地＋金の罫線」に揃える。
   ============================================================ */
body.fcv-rec-page .rec-table-wrap{
  max-width:820px;
  margin-inline:auto;
  background:var(--rec-panel);
  border:1px solid var(--rec-line);
  overflow:hidden;                      /* 角を揃える（角丸は使わない） */
}
body.fcv-rec-page .rec-table{
  width:100%;
  border-collapse:collapse;
}
body.fcv-rec-page .rec-table__row{
  border-bottom:1px solid var(--rec-line-soft);
}
body.fcv-rec-page .rec-table__row:last-child{ border-bottom:0; }
body.fcv-rec-page .rec-table__row:hover{ background:rgba(205,164,81,.06); }
body.fcv-rec-page .rec-table__label{
  width:34%;
  padding:16px 20px;
  text-align:left;
  vertical-align:top;
  background:rgba(13,9,24,.45);
  border-right:1px solid var(--rec-line-soft);
  font-size:.88rem;
  font-weight:700;
  letter-spacing:.04em;
  color:var(--vio-gold);
  white-space:nowrap;
}
body.fcv-rec-page .rec-table__value{
  padding:16px 20px;
  font-size:.92rem;
  line-height:1.9;
  color:var(--lp-text);
}

/* ============================================================
   39-2b) 指導方針

   「育成の柱」を番号付きのカードで2列に並べる。番号は装飾なので
   マークアップ側で aria-hidden にし、順序は ol が持つ。
   ============================================================ */
body.fcv-rec-page .rec-policy__lead{
  max-width:900px;
  margin:0 auto clamp(28px, 3.6vw, 44px);
  font-size:clamp(.95rem, 1.5vw, 1.02rem);
  line-height:2;
  text-align:center;
  color:var(--lp-text);
}
body.fcv-rec-page .rec-policy__list{
  max-width:900px;
  margin:0 auto;
  padding:0;
  list-style:none;
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:clamp(16px, 2.2vw, 24px);
}
body.fcv-rec-page .rec-policy__item{
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  gap:16px;
  padding:clamp(18px, 2.4vw, 26px);
  background:var(--rec-panel);
  border:1px solid var(--rec-line-soft);
  border-top:2px solid var(--vio-gold);
}
body.fcv-rec-page .rec-policy__no{
  font-family:var(--font-num);
  font-weight:400;                       /* Bebas Neue はウェイト400のみ */
  font-size:1.9rem;
  line-height:1;
  letter-spacing:.02em;
  color:var(--vio-gold);
}
body.fcv-rec-page .rec-policy__title{
  margin:0 0 10px;
  font-size:1rem;
  font-weight:700;
  line-height:1.7;
  letter-spacing:.03em;
  color:#fff;
}
body.fcv-rec-page .rec-policy__text{
  margin:0;
  font-size:.9rem;
  line-height:1.9;
  color:var(--lp-text);
}

/* ============================================================
   39-3) 募集要項
   ============================================================ */
body.fcv-rec-page .rec-block{
  max-width:820px;
  margin:0 auto clamp(40px, 5vw, 64px);
}
body.fcv-rec-page .rec-block:last-child{ margin-bottom:0; }

/* 小見出し。セクション見出しより弱く、しかし金で階層が分かるように。 */
body.fcv-rec-page .rec-block__title{
  margin:0 0 20px;
  padding-left:14px;
  border-left:3px solid var(--vio-gold);
  font-family:var(--font-display);
  font-size:1.15rem;
  font-weight:700;
  letter-spacing:.06em;
  color:var(--vio-gold-hi);
}

/* ── 募集ポジション：横並びの金枠バッジ ── */
body.fcv-rec-page .rec-positions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:0;
  padding:0;
  list-style:none;
}
body.fcv-rec-page .rec-positions__item{
  min-width:64px;
  padding:10px 18px;
  text-align:center;
  background:rgba(205,164,81,.10);
  border:1px solid var(--rec-line);
  font-family:var(--font-display);
  font-size:1rem;
  font-weight:700;
  letter-spacing:.1em;
  text-indent:.1em;
  color:var(--vio-gold-hi);
}
body.fcv-rec-page .rec-positions__note{
  margin:14px 0 0;
  font-size:.88rem;
  color:var(--lp-muted);
}

/* ── 応募条件：金のチェック風マーカー付きリスト ── */
body.fcv-rec-page .rec-conditions{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}
body.fcv-rec-page .rec-conditions__item{
  position:relative;
  padding:12px 16px 12px 42px;
  background:var(--rec-panel);
  border:1px solid var(--rec-line-soft);
  font-size:.92rem;
  line-height:1.85;
  color:var(--lp-text);
}
body.fcv-rec-page .rec-conditions__item::before{
  content:"";
  position:absolute;
  left:18px; top:1.35em;
  width:10px; height:6px;
  border-left:2px solid var(--vio-gold);
  border-bottom:2px solid var(--vio-gold);
  transform:translateY(-50%) rotate(-45deg);
}

/* 条件の中の注記（「※…」）。条件本文と同じ大きさで続くと本題が埋もれるので、
   入団までの流れの .rec-flow__note と同じ扱いで、下に一段落として小さく組む。 */
body.fcv-rec-page .rec-conditions__note{
  display:block;
  margin-top:2px;
  font-size:.82rem;
  line-height:1.7;
  color:var(--lp-muted);
}

/* ── ブロックの導入文（求める人物像など）──
   小見出しと箇条書きの間に入る説明。箇条書きより一段引いた明るさにする。 */
body.fcv-rec-page .rec-block__lead{
  margin:0 0 20px;
  font-size:.92rem;
  line-height:2;
  color:var(--lp-text);
}

/* ── 求める人物像（トップチームのみ）──
   応募条件（満たすべき条件）と並ぶので、同じチェックのマーカーは使わない。
   クラブの姿勢を示す項目なので、左のアクセント罫だけで区別する。 */
body.fcv-rec-page .rec-ideals{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}
body.fcv-rec-page .rec-ideals__item{
  position:relative;
  padding:12px 16px;
  background:var(--rec-panel);
  border:1px solid var(--rec-line-soft);
  border-left:2px solid var(--vio-gold);
  font-size:.92rem;
  line-height:1.85;
  color:var(--lp-text);
}

/* ============================================================
   39-3b) 入団までの流れ

   パートナーページの Flow（.pt-flow, 41-2章）と同じ「線画アイコン＋STEP番号」の
   ステップ形式。横に並べ、間を金のシェブロン（::after）でつなぐ。
   募集要項の中ではなく独立したセクション（#flow）なので、幅は container いっぱいを使う。

   ステップ数は管理画面で増減できる。列は 4 を基本に、画面幅で 2 → 1 と落とす。
   2列のときは行末（偶数番目）のシェブロンだけ消し、行内の左→右のつながりを残す。
   ============================================================ */
/* ステップの前に置く導入文。指導方針の導入文（39-2b）と同じ組み方。 */
body.fcv-rec-page .rec-flow__lead{
  max-width:900px;
  margin:0 auto clamp(28px, 3.6vw, 44px);
  font-size:clamp(.95rem, 1.5vw, 1.02rem);
  line-height:2;
  text-align:center;
  color:var(--lp-text);
}
body.fcv-rec-page .rec-flow{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:clamp(22px, 2.6vw, 32px);
}
body.fcv-rec-page .rec-flow__step{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  padding:clamp(20px, 2.4vw, 28px) clamp(14px, 1.6vw, 20px);
  background:var(--rec-panel);
  border:1px solid var(--rec-line-soft);
  border-top:2px solid var(--vio-gold);
  text-align:center;
}
body.fcv-rec-page .rec-flow__step:not(:last-child)::after{
  content:"";
  position:absolute;
  top:50%;
  right:calc(-1 * clamp(22px, 2.6vw, 32px) / 2);
  width:10px; height:10px;
  border-top:2px solid var(--vio-gold);
  border-right:2px solid var(--vio-gold);
  transform:translate(50%, -50%) rotate(45deg);
}
/* 線画アイコン。丸枠は付けず線画そのものを見せる。金はカード上端のラインと
   シェブロンに残したいので、アイコンは薄紫（.pt-flow__icon と同じ）にする。 */
body.fcv-rec-page .rec-flow__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:38px;
  height:38px;
  color:#cbbcee;
}
body.fcv-rec-page .rec-flow__icon svg{
  display:block;
  width:38px;
  height:38px;
}
body.fcv-rec-page .rec-flow__no{
  font-family:var(--font-crest);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.16em;
  text-indent:.16em;
  color:var(--vio-gold);
}
body.fcv-rec-page .rec-flow__title{
  margin:0;
  font-size:1rem;
  font-weight:700;
  line-height:1.7;
  letter-spacing:.03em;
  color:#fff;
}
body.fcv-rec-page .rec-flow__text{
  margin:0;
  font-size:.88rem;
  line-height:1.9;
  color:var(--lp-text);
}
/* 「※」以降の注記。本題より一段落として、行数が多くても読み流せるようにする。 */
body.fcv-rec-page .rec-flow__note{
  width:100%;
  margin:2px 0 0;
  padding-top:12px;
  border-top:1px dashed var(--rec-line-soft);
  font-size:.78rem;
  line-height:1.8;
  text-align:left;
  color:var(--lp-muted);
}

/* ============================================================
   39-4) 練習体験申し込みCTA

   面（背景写真・オーバーレイ・余白・枠線）は50章の .fcv-cta が持つ。
   ここに残すのは、このページ固有の文字組みだけ。
   ============================================================ */

/* セクションの上下余白は落とす（2026-08）。
   中の .rec-cta は50章の .fcv-cta ＝ 画面端まで届く全幅バナーなので、
   .rec-section の上下余白（56〜96px）は帯の外側に紫地の帯として残るだけになる。
   直前の入団までの流れとの間隔はあちらの padding-bottom（56〜96px）が、
   直後の入団申込フォームとの間隔はあちらの padding-top（56〜96px）が受け持ち、
   バナー内側の余白は .fcv-cta 自身の padding（48〜84px）が持っているので、
   ここを 0 にしても文字が詰まることはない。
   ページ最後の .rec-form-section は padding-bottom をそのまま残してあり、
   フッターとの間隔（56〜96px）はそちらが受け持つ。
   チームトップの .tc-section#join（45章）と同じ考え方。 */
body.fcv-rec-page .rec-section.rec-cta-section{
  padding-top:0;
  padding-bottom:0;
}

body.fcv-rec-page .rec-cta__en{
  margin:0 0 6px;
  font-family:var(--font-crest);
  font-weight:800;
  font-size:clamp(1.6rem, 4vw, 2.4rem);
  line-height:1.05;
  color:var(--vio-gold);
}
body.fcv-rec-page .rec-cta__title{
  margin:0 0 16px;
  font-size:clamp(1.15rem, 2.4vw, 1.5rem);
  font-weight:700;
  letter-spacing:.06em;
  color:#fff;
}
body.fcv-rec-page .rec-cta__text{
  margin:0 0 30px;
  font-size:.92rem;
  line-height:2;
  color:var(--lp-text);
}
/* ボタンは44章の .fixtures-link（細い白アウトライン＋金のシェブロン）。
   大きさは50章で面ごと揃えているので、ここでは触らない。 */

/* 電話・メールはボタンの下に控えめに */
body.fcv-rec-page .rec-cta__contacts{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px 32px;
  margin:28px 0 0;
  padding:22px 0 0;
  border-top:1px solid var(--rec-line-soft);
  list-style:none;
}
body.fcv-rec-page .rec-cta__contact{
  display:flex;
  align-items:center;
  gap:10px;
}
body.fcv-rec-page .rec-cta__contact-label{
  font-family:var(--font-display);
  font-size:.66rem;
  font-weight:700;
  letter-spacing:.18em;
  text-indent:.18em;
  padding:3px 8px;
  border:1px solid var(--rec-line);
  color:var(--vio-gold);
}
body.fcv-rec-page .rec-cta__contact-value{
  font-family:var(--font-display);
  font-size:1rem;
  letter-spacing:.04em;
}

/* CTA下の補足リンク（入団以外の相談先） */
body.fcv-rec-page .rec-cta__alt{
  margin:18px 0 0;
  font-size:.85rem;
  color:var(--lp-muted);
}

/* ============================================================
   39-5) 入団申込フォーム

   親テーマのフォームCSS（page-trial.css / page-contact.css）は
   このテンプレートでは読み込まれないため、部品は全てここで用意する。
   命名も .form-input などの汎用名を避けて .rec-form* に閉じている
   （32章にある .form-input 等の暗色化指定と二重に当たるのを防ぐため）。

   入力欄の font-size は 16px 未満にしないこと。iOS Safari は
   16px 未満の入力欄にフォーカスすると画面を自動でズームしてしまう。
   ============================================================ */
body.fcv-rec-page .rec-form-card{
  max-width:820px;
  margin-inline:auto;
  padding:clamp(24px, 4vw, 44px);
  background:var(--rec-panel);
  border:1px solid var(--rec-line);
}
body.fcv-rec-page .rec-form-card__note{
  margin:0 0 28px;
  padding-bottom:20px;
  border-bottom:1px solid var(--rec-line-soft);
  font-size:.92rem;
  line-height:1.9;
  color:var(--lp-text);
}
body.fcv-rec-page .rec-form-card__note small{ color:var(--lp-muted); }

/* 必須マーク。暗地で読める明るい赤（32章の .form-required と同じ値）。 */
body.fcv-rec-page .rec-form__required{
  color:#ff8a80;
  font-weight:700;
}

/* ── 行とグループ ── */
body.fcv-rec-page .rec-form__row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
body.fcv-rec-page .rec-form__group{ margin-bottom:22px; }
/* 2カラム行の中では下マージンを行側に任せる */
body.fcv-rec-page .rec-form__row > .rec-form__group{ margin-bottom:22px; }

/* ラベルは白。金は「たまに出るから効く」色なので、10個以上並ぶ入力ラベルに
   使うとページ全体が金色に見えてしまう（クライアント指摘・2026-08）。
   フォーム内で金を使うのは項目グループの見出し（.rec-form__legend）だけにする。
   お問い合わせフォームのラベル（.form-label）も白なので、そちらとも揃う。 */
body.fcv-rec-page .rec-form__label{
  display:block;
  margin-bottom:8px;
  font-size:.9rem;
  font-weight:700;
  letter-spacing:.04em;
  color:#fff;
}

/* ── 入力欄 ──
   16px 固定なのは iOS の自動ズーム対策（上のコメント参照）。 */
body.fcv-rec-page .rec-form__control{
  display:block;
  width:100%;
  padding:13px 15px;
  font-family:inherit;
  font-size:16px;
  line-height:1.6;
  color:#fff;
  background:rgba(255,255,255,.06);
  border:1px solid var(--rec-line-soft);
  border-radius:0;
  box-sizing:border-box;
  transition:border-color .2s ease, background .2s ease;
  -webkit-appearance:none;
  appearance:none;
}
body.fcv-rec-page .rec-form__control::placeholder{ color:rgba(168,176,198,.75); }
body.fcv-rec-page .rec-form__control:hover{ background:rgba(255,255,255,.09); }
body.fcv-rec-page .rec-form__control:focus{
  outline:2px solid rgba(205,164,81,.45);
  outline-offset:1px;
  border-color:var(--vio-gold);
  background:rgba(255,255,255,.10);
}
body.fcv-rec-page .rec-form__control--textarea{
  resize:vertical;
  min-height:96px;
}
body.fcv-rec-page .rec-form__control--narrow{ max-width:180px; }

/* セレクトは矢印を自前で描く（appearance:none で標準の矢印が消えるため）。
   暗地に黒い標準矢印だと見えないので金の三角に置き換えている。 */
body.fcv-rec-page select.rec-form__control{
  padding-right:42px;
  background-image:linear-gradient(45deg, transparent 50%, var(--vio-gold) 50%),
                   linear-gradient(135deg, var(--vio-gold) 50%, transparent 50%);
  background-position:calc(100% - 22px) calc(50% + 2px), calc(100% - 16px) calc(50% + 2px);
  background-size:6px 6px, 6px 6px;
  background-repeat:no-repeat;
}
/* 選択肢のドロップダウンはOS描画。暗い前提の色を明示しておく。 */
body.fcv-rec-page select.rec-form__control option{
  background:var(--vio-ink);
  color:#fff;
}

/* エラーになった項目 */
body.fcv-rec-page .rec-form__control--error{
  border-color:#ff8a80;
  background:rgba(255,138,128,.08);
}

body.fcv-rec-page .rec-form__hint{
  margin:8px 0 0;
  font-size:.82rem;
  line-height:1.7;
  color:var(--lp-muted);
}

/* 身長／体重のように、1つのラベルの下に小さな入力を2つ並べる行。
   通常の .rec-form__row より溝を詰めて「1項目」に見せる。 */
body.fcv-rec-page .rec-form__row--tight{
  gap:12px;
  margin-top:0;
}
body.fcv-rec-page .rec-form__row--tight .rec-form__hint{
  margin-top:6px;
}

/* ── 項目グループの見出し（U-15の「選手（生徒）について」「保護者について」）──
   クラブが運用している Google フォームと同じ区切りを付ける。
   h見出しにしないのは、フォーム内の段落見出しであってページの階層ではないため。 */
body.fcv-rec-page .rec-form__legend{
  margin:8px 0 -4px;
  padding-bottom:10px;
  border-bottom:1px solid var(--rec-line-soft);
  font-size:.95rem;
  font-weight:700;
  letter-spacing:.08em;
  /* ラベルを白にした分、グループ見出しは金にして上下関係を残す。
     1フォームに1〜2個しか出ないので、金の使用量はむしろ減る。 */
  color:var(--vio-gold-hi);
}
body.fcv-rec-page .rec-form__legend + .rec-form__row,
body.fcv-rec-page .rec-form__legend + .rec-form__group{ margin-top:4px; }

/* ── ラジオ（性別）──
   入力欄と高さを揃えたいので、器の余白は .rec-form__control と同じ縦幅にする。 */
body.fcv-rec-page .rec-form__radios{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
body.fcv-rec-page .rec-form__radio{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:12px 16px;
  background:rgba(255,255,255,.04);
  border:1px solid var(--rec-line-soft);
  font-size:.95rem;
  line-height:1.6;
  color:var(--lp-text);
  cursor:pointer;
}
body.fcv-rec-page .rec-form__radio:hover{ border-color:var(--rec-line); }
body.fcv-rec-page .rec-form__radio input[type="radio"]{
  flex:0 0 auto;
  width:18px;
  height:18px;
  margin:0;
  accent-color:var(--vio-gold);
  cursor:pointer;
}
body.fcv-rec-page .rec-form__radio:has(input:checked){
  border-color:var(--vio-gold);
  background:rgba(205,164,81,.10);
}

/* ── 同意チェック ── */
body.fcv-rec-page .rec-form__check{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:16px 18px;
  background:rgba(255,255,255,.04);
  border:1px solid var(--rec-line-soft);
  font-size:.92rem;
  line-height:1.7;
  color:var(--lp-text);
  cursor:pointer;
}
body.fcv-rec-page .rec-form__check input[type="checkbox"]{
  flex:0 0 auto;
  width:20px;
  height:20px;
  margin:1px 0 0;
  accent-color:var(--vio-gold);
  cursor:pointer;
}
body.fcv-rec-page .rec-form__check:hover{ border-color:var(--rec-line); }

/* ── 送信ボタン ──
   金グラデーションの塗りのままだと、下層CTA（50章）や .fixtures-link（44章）
   より面積・明度ともに強く、暗いフォームの中でこのボタンだけが浮く。
   サイト共通の「細い白アウトライン＋透明」に揃え、ホバーで初めて金の面を
   出して主導線であることを示す。
   ・border の !important: カスタマイザーの斜めカット（inc/customizer.php）が
     .btn に border:none !important を吐く。あれは wp_head:20 で custom.css
     より後に出るうえ !important なので、こちらも !important で返す。
   ・clip-path:none: 同じく斜めカットの平行四辺形を戻す。
   ・box-shadow / transform の打ち消し: 3章の .btn--accent が金の落ち影と
     ホバーの浮き上がりを付けている。アウトラインの意匠には合わないので消す。 */
body.fcv-rec-page .rec-form__submit{
  margin-top:32px;
  padding-top:26px;
  border-top:1px solid var(--rec-line-soft);
  text-align:center;
}
body.fcv-rec-page .rec-form__submit-btn.btn{
  clip-path:none;
  border:1px solid rgba(255,255,255,.5) !important;
  border-radius:0;
  background:transparent;
  color:#fff;
  padding:16px 52px;
  font-family:var(--font-display);
  font-size:.95rem;
  font-weight:600;
  letter-spacing:.12em;
  text-indent:.12em;                 /* letter-spacing 分の右寄りを相殺 */
  opacity:1;
  text-shadow:none;
  box-shadow:none;
  cursor:pointer;
  transition:border-color .25s ease, background-color .25s ease, color .25s ease;
}
body.fcv-rec-page .rec-form__submit-btn.btn:hover,
body.fcv-rec-page .rec-form__submit-btn.btn:focus-visible{
  border-color:var(--vio-gold) !important;
  background:linear-gradient(135deg, var(--vio-gold), var(--vio-gold-hi));
  color:var(--vio-ink);
  transform:none;
  box-shadow:0 10px 26px rgba(205,164,81,.32);
}

/* ── 送信結果の通知（成功／エラー）── */
body.fcv-rec-page .rec-form-notice{
  display:flex;
  align-items:flex-start;
  gap:16px;
  max-width:820px;
  margin:0 auto 24px;
  padding:22px 24px;
  border:1px solid var(--rec-line-soft);
  border-left-width:4px;
  background:rgba(255,255,255,.04);
}
body.fcv-rec-page .rec-form-notice--success{
  border-left-color:var(--vio-gold);
  background:rgba(205,164,81,.10);
}
body.fcv-rec-page .rec-form-notice--error{
  border-left-color:#ff8a80;
  background:rgba(255,138,128,.09);
}
body.fcv-rec-page .rec-form-notice__icon{ flex:0 0 auto; line-height:0; }
body.fcv-rec-page .rec-form-notice--success .rec-form-notice__icon{ color:var(--vio-gold); }
body.fcv-rec-page .rec-form-notice--error .rec-form-notice__icon{ color:#ff8a80; }
body.fcv-rec-page .rec-form-notice__title{
  margin:0 0 8px;
  font-size:1.05rem;
  font-weight:700;
  letter-spacing:.03em;
}
body.fcv-rec-page .rec-form-notice--success .rec-form-notice__title{ color:var(--vio-gold-hi); }
body.fcv-rec-page .rec-form-notice--error .rec-form-notice__title{ color:#ff8a80; }
body.fcv-rec-page .rec-form-notice__text{
  margin:0;
  font-size:.92rem;
  line-height:1.9;
  color:var(--lp-text);
}
body.fcv-rec-page .rec-form-notice__text small{
  display:inline-block;
  margin-top:6px;
  color:var(--lp-muted);
}
body.fcv-rec-page .rec-form-notice__list{
  margin:0;
  padding-left:1.2em;
  font-size:.9rem;
  line-height:1.9;
  color:var(--lp-text);
}

/* 送信完了の通知だけは、ページ内で目に留まるよう余白を広く取る */
body.fcv-rec-page .rec-form-section .rec-form-notice--success{
  padding:clamp(26px, 4vw, 40px);
}

/* ── アンカー（ページ内ナビ／CTAボタンから #entry-form へ飛ぶ）──
   ヘッダー＋ページ内ナビの分だけ手前で止める。指定は38章にまとめてある
   （ここに重ねると後勝ちでナビの高さ分がずれるため、この章では持たない）。 */

/* ============================================================
   39-6) レスポンシブ
   ============================================================ */
/* 流れは4列だと1列が200px前後になり、注記のある STEP 01/02 が縦に伸びすぎる。
   2列に落とし、シェブロンは行内（左→右）だけに残す。 */
@media (max-width:1080px){
  body.fcv-rec-page .rec-flow{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  body.fcv-rec-page .rec-flow__step:nth-child(2n)::after{ display:none; }
}

/* メッセージは写真列（210px）＋本文だと本文が窮屈になるので、
   写真を上に出して横1枚に組み替える。 */
@media (max-width:860px){
  body.fcv-rec-page .rec-message__layout{
    grid-template-columns:minmax(0, 1fr);
    gap:clamp(20px, 3vw, 28px);
  }
  body.fcv-rec-page .rec-message__figure{
    display:flex;
    align-items:center;
    gap:18px;
  }
  body.fcv-rec-page .rec-message__photo{
    flex:0 0 auto;
    width:120px;
  }
  body.fcv-rec-page .rec-message__caption{
    margin-top:0;
    text-align:left;
  }

  /* 指導方針は2列だと見出しが3行に折れるので1列に落とす */
  body.fcv-rec-page .rec-policy__list{
    grid-template-columns:minmax(0, 1fr);
  }
}

@media (max-width:768px){
  /* 概要テーブルは2カラムだと値が潰れるので縦積みにする */
  body.fcv-rec-page .rec-table,
  body.fcv-rec-page .rec-table tbody,
  body.fcv-rec-page .rec-table__row,
  body.fcv-rec-page .rec-table__label,
  body.fcv-rec-page .rec-table__value{
    display:block;
    width:auto;
  }
  body.fcv-rec-page .rec-table__label{
    border-right:0;
    border-bottom:1px solid var(--rec-line-soft);
    padding:11px 16px;
    white-space:normal;
  }
  body.fcv-rec-page .rec-table__value{ padding:14px 16px; }

  /* 流れは1列に。カードの中はアイコンを左に置いた横組みにして、
     シェブロンは右→下に向きを変える（.pt-flow のSP時と同じ組み方）。 */
  body.fcv-rec-page .rec-flow{
    grid-template-columns:minmax(0, 1fr);
    gap:clamp(18px, 3vw, 24px);
  }
  body.fcv-rec-page .rec-flow__step{
    display:grid;
    grid-template-columns:34px minmax(0, 1fr);
    align-items:center;
    gap:6px 14px;
    padding:16px 18px;
    text-align:left;
  }
  body.fcv-rec-page .rec-flow__icon,
  body.fcv-rec-page .rec-flow__icon svg{
    width:34px;
    height:34px;
  }
  /* アイコンは STEP番号と見出しの2行にまたがって左端に立てる */
  body.fcv-rec-page .rec-flow__icon{ grid-row:1 / span 2; }
  body.fcv-rec-page .rec-flow__text,
  body.fcv-rec-page .rec-flow__note{ grid-column:2; }
  body.fcv-rec-page .rec-flow__text{ margin-top:4px; }
  body.fcv-rec-page .rec-flow__step:nth-child(2n)::after{ display:block; }
  body.fcv-rec-page .rec-flow__step:not(:last-child)::after{
    top:auto;
    right:auto;
    left:50%;
    bottom:calc(-1 * clamp(18px, 3vw, 24px) / 2);
    transform:translate(-50%, 50%) rotate(135deg);
  }
  body.fcv-rec-page .rec-flow__step:last-child::after{ display:none; }

  body.fcv-rec-page .rec-positions__item{
    min-width:56px;
    padding:9px 14px;
    font-size:.92rem;
  }

  /* 狭い画面ではボタンを1本の帯にして押しやすくする（中身は左右中央） */
  body.fcv-rec-page .rec-cta__btn{
    display:flex;
    width:100%;
    max-width:340px;
    margin-inline:auto;
    justify-content:center;
    padding:14px 18px;
  }
  body.fcv-rec-page .rec-cta__contacts{ gap:12px 20px; }

  /* フォーム：2カラムの行は縦積みに。
     入力欄の font-size は 16px のまま下げないこと（iOSの自動ズーム対策）。 */
  body.fcv-rec-page .rec-form__row{
    grid-template-columns:1fr;
    gap:0;
  }
  body.fcv-rec-page .rec-form__control--narrow{ max-width:none; }
  body.fcv-rec-page .rec-form__submit-btn.btn{
    display:block;
    width:100%;
    padding:16px 20px;
  }
  body.fcv-rec-page .rec-form-notice{
    flex-direction:column;
    gap:10px;
    padding:18px 20px;
  }
}

/* ============================================================
   40) 選手紹介ページ（archive-player.php）

   トップチームは写真つきのカード、U-15・ジュニアユース等は選手写真を
   用意していないため「背番号 / 選手名 / ふりがな / 前所属」の表にする。
   出し分けは子テーマ archive-player.php（fcv_player_layout_for_team_cat）。

   色は 36章の試合ページと同じ考え方：土台は紫×黒、金は細線と
   小さなラベル（ヘッダー行・背番号）だけに絞る。
   部品の言語もお知らせ（42章）に合わせる:
     ・フィルタータブ … ピル（非選択は白の細線／選択は金のグラデ）
     ・ポジションタグ … 暗い半透明＋白の細線＋角丸4px（色はドットと文字）
   ポジション色そのものは46章の --pos-* トークンで他ページと共通化している。

   構成:
     40-1 ページ用トークン・ヒーロー
     40-2 人数サマリー
     40-3 フィルタータブ（チームカテゴリー／ポジション）
     40-4 ポジション別の見出し
     40-5 選手カード
     40-6 リスト表示（育成年代の表）
     40-7 選手なしの状態
   ============================================================ */

/* ---- 40-1 このページ用のトークン ---- */
body.post-type-archive-player{
  --pl-panel:rgba(255,255,255,.045);      /* 白カードの代わりになる面 */
  --pl-panel-hi:rgba(255,255,255,.08);    /* ホバー時の面 */
  --pl-line:rgba(255,255,255,.14);        /* 面の輪郭（金をやめて白の細線）*/
  --pl-line-strong:rgba(255,255,255,.26);
  --pl-card:                              /* カードの地（15章の選手カードと共通）*/
    radial-gradient(120% 80% at 50% -10%, rgba(122,79,216,.28), transparent 62%),
    linear-gradient(165deg, #4a2c8f 0%, #1e1338 52%, #0d0918 100%);

  /* 32章の共通トークンを、このページだけ読み替える（36章の試合ページと同じ）*/
  --lp-line:rgba(255,255,255,.14);        /* パネルの枠線：金 → 白の細線 */
  --tag-radius:999px;                     /* .cat-filter__item の角丸＝ピル */
}

/* ヒーローは試合情報ページ（36-3）と同じ紫→黒。下端の帯だけ金で締める。 */
body.post-type-archive-player .archive-hero{
  background:linear-gradient(135deg,#3c2378 0%,#1e1338 58%,#0d0918 100%);
}
body.post-type-archive-player .archive-hero__stripe{
  height:3px;
  background:linear-gradient(90deg,var(--vio-royal) 0%,var(--vio-violet) 58%,var(--vio-gold) 100%);
}

/* 32章の「main のリンクは一律で金」を解除する。カード全体がリンクなので、
   当たったままだと選手名まで金になり、ホバーの変化が出せない。 */
body.post-type-archive-player main a:not(.btn){ color:inherit; }
body.post-type-archive-player main a.pl-table__link{ color:#fff; }

/* ---- 40-2 人数サマリー ----
   親テーマは白い帯＋ポジション別の原色。暗地のパネルに置き換え、
   数字はポジション色（46章のトークン）、ラベルは白の小さなラベルにする。
   32章の [class*="__num"]（金の一括指定）と同詳細度なので、後ろのここが勝つ。 */
body.post-type-archive-player .player-summary{
  display:flex;
  flex-wrap:wrap;
  align-items:stretch;
  background:var(--pl-panel);
  border:1px solid var(--pl-line);
  border-radius:0;
  box-shadow:none;
  overflow:hidden;
  margin-bottom:clamp(18px, 2.6vw, 26px);
}
body.post-type-archive-player .player-summary__total{
  padding:15px 26px;
  background:linear-gradient(135deg,#5b37a8 0%,#3c2378 100%);
}
body.post-type-archive-player .player-summary__total-num{
  font-family:var(--font-num);
  font-variant-numeric:tabular-nums;
  font-weight:400;
  font-size:2rem;
  color:#fff;
}
body.post-type-archive-player .player-summary__total-label{
  font-size:.78rem; font-weight:700; letter-spacing:.08em;
  color:rgba(255,255,255,.82);
  opacity:1;
}
body.post-type-archive-player .player-summary__item{
  gap:8px;
  padding:15px 18px;
  border-right:1px solid var(--pl-line);
}
body.post-type-archive-player .player-summary__item:last-child{ border-right:0; }
body.post-type-archive-player main .player-summary__num{
  font-family:var(--font-num);
  font-variant-numeric:tabular-nums;
  font-weight:400;
  font-size:1.6rem;
  line-height:1;
  color:rgb(var(--pos-c));
}
body.post-type-archive-player .player-summary__label{
  font-family:var(--font-display);
  font-size:.72rem; font-weight:700; letter-spacing:.12em;
  color:rgba(255,255,255,.6);
}

/* ---- 40-3 フィルタータブ ----
   お知らせ一覧（42-6）と同じピル。非選択は白の細線、選択は金のグラデ＋黒文字。
   チームカテゴリー（2段タブ）とポジションの両方に同じ値を当てる。
   親テーマは色付きタブ（--colored / --team）を各カテゴリー色で塗るが、
   ここでは「選択中＝金」で統一する（お知らせ側と同じ判断）。 */
body.post-type-archive-player .cat-filter-group{
  margin-bottom:clamp(14px, 2vw, 18px);
}
body.post-type-archive-player .cat-filter{
  gap:10px;
  margin-bottom:clamp(20px, 3vw, 28px);
}
body.post-type-archive-player .cat-filter-wrap{
  margin-bottom:clamp(24px, 3.5vw, 36px);
}
body.post-type-archive-player .cat-filter-wrap .cat-filter{ margin-bottom:0; }
body.post-type-archive-player .cat-filter .cat-filter__item{
  font-family:var(--font-display);
  font-size:.82rem; font-weight:700; letter-spacing:.04em;
  color:rgba(255,255,255,.72);
  background:transparent;
  border:1px solid rgba(255,255,255,.25);
  padding:8px 18px; border-radius:999px;
  transition:color .2s, background .2s, border-color .2s;
}
body.post-type-archive-player .cat-filter .cat-filter__item:hover{
  color:#fff; border-color:rgba(205,164,81,.7); background:rgba(255,255,255,.05);
}
body.post-type-archive-player .cat-filter .cat-filter__item--active,
body.post-type-archive-player .cat-filter .cat-filter__item--team.cat-filter__item--active,
body.post-type-archive-player .cat-filter .cat-filter__item--colored.cat-filter__item--active{
  color:var(--vio-ink);
  background:linear-gradient(135deg,var(--vio-gold),var(--vio-gold-hi));
  border-color:var(--vio-gold);
}
/* 選択中タブのホバー。:hover（上の非選択ルール）の方が --active より詳細度が高く、
   金の背景だけが剥がれて「黒文字＋暗い背景」になり文字が消えていた。
   ホバー時も選択中の見た目（金のグラデ＋黒文字）を明示的に維持する。 */
body.post-type-archive-player .cat-filter .cat-filter__item--active:hover,
body.post-type-archive-player .cat-filter .cat-filter__item--team.cat-filter__item--active:hover,
body.post-type-archive-player .cat-filter .cat-filter__item--colored.cat-filter__item--active:hover{
  color:var(--vio-ink);
  background:linear-gradient(135deg,var(--vio-gold-hi),var(--vio-gold));
  border-color:var(--vio-gold);
}
body.post-type-archive-player .cat-filter .cat-filter__dot{
  background:var(--cat-dot, var(--vio-violet));
  box-shadow:0 0 0 1px rgba(255,255,255,.35);
}
body.post-type-archive-player .cat-filter .cat-filter__item--active .cat-filter__dot{
  box-shadow:0 0 0 1px rgba(13,9,24,.35);
}
body.post-type-archive-player .cat-filter .cat-filter__sep{
  background:rgba(255,255,255,.18);
}
/* 2段目（子カテゴリー）は一段落として小さく */
body.post-type-archive-player .cat-filter--sub .cat-filter__item{
  font-size:.76rem;
  padding:6px 15px;
}

/* ---- 40-4 ポジション別の見出し ----
   バッジ（丸）の見た目は46-2。ここでは行の組み方と、
   見出しの後ろに伸びるポジション色の細い罫線を足す。 */
body.post-type-archive-player .player-pos-group{
  margin-top:clamp(28px, 4vw, 42px);
  margin-bottom:14px;
}
body.post-type-archive-player .player-pos-group:first-of-type{ margin-top:4px; }
body.post-type-archive-player main .player-pos-group__title{
  display:flex; align-items:center; gap:12px;
  margin:0;
  font-family:var(--font-display);
  font-size:1rem; font-weight:700; letter-spacing:.06em;
  color:#fff;
}
body.post-type-archive-player .player-pos-group__title::after{
  content:"";
  flex:1 1 auto;
  height:1px;
  background:linear-gradient(90deg, rgba(var(--pos-c), .45), rgba(255,255,255,.05));
}

/* ---- 40-5 選手カード ----
   親テーマは白い箱＋影。トップの選手カード（15章 .fcv-pl）と同じ
   「紫→黒のグラデ＋細枠＋上端の金ライン」に組み替える。
   写真の上下にスクリムを敷き、ポジションタグと背番号が
   どんな写真でも読めるようにする。 */
body.post-type-archive-player .players-grid--archive{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:clamp(14px, 1.6vw, 22px);
  margin-bottom:8px;
}

body.post-type-archive-player .player-card{
  position:relative;
  height:100%;
  background:var(--pl-card);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:none;
  overflow:hidden;
  transition:border-color .35s ease, box-shadow .35s ease;
}
body.post-type-archive-player .player-card:hover,
body.post-type-archive-player .player-card:focus-within{
  /* 親テーマ style.css の .player-card:hover が translateY(-4px) を当てるので、
     浮き上がりを止めるには明示的に none で打ち消す必要がある。 */
  transform:none;
  border-color:rgba(205,164,81,.7);
  box-shadow:0 18px 44px rgba(0,0,0,.55);
}
/* 詳細ページがある選手は、枠線1pxの上でもポインターにして
   「カード全体が押せる」ことを示す。明度アップはタップ時のフィードバック。 */
body.post-type-archive-player .player-card:not(.player-card--no-link){ cursor:pointer; }
body.post-type-archive-player .player-card:not(.player-card--no-link):active{ filter:brightness(1.12); }
/* 選手詳細ページが無効なときはリンクではないので、枠線・影も動かさない */
body.post-type-archive-player .player-card--no-link:hover{
  border-color:rgba(255,255,255,.12);
  box-shadow:none !important;
  filter:none;
}
body.post-type-archive-player .player-card__link{
  display:block;
  height:100%;
  color:inherit; text-decoration:none;
  -webkit-tap-highlight-color:transparent;
}
body.post-type-archive-player .player-card__link:focus-visible{
  outline:2px solid var(--vio-gold-hi);
  outline-offset:-4px;
}

/* 写真：3:4。切り抜きサイズ player-card（450x600）と同じ比率なので、
   cover しても頭も足先も欠けない。ここで比率を変えると、その差分だけ
   写真の上下または左右が削られる。被写体の位置決めは元画像側の
   トリミングで完結させること。 */
body.post-type-archive-player .player-card__img{
  position:relative;
  aspect-ratio:3/4;
  overflow:hidden;
}
body.post-type-archive-player .player-card__img img{
  width:100%; height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  transition:transform .6s cubic-bezier(.2,.7,.3,1), filter .4s ease;
}
body.post-type-archive-player .player-card:hover .player-card__img img,
body.post-type-archive-player .player-card:focus-within .player-card__img img{
  transform:scale(1.06);
  filter:saturate(.9) brightness(.82);
}
/* 旧デザインの上下スクリムは出さない。平常時は写真だけを見せる。 */
body.post-type-archive-player .player-card__img::before,
body.post-type-archive-player .player-card__img::after{ content:none; }
body.post-type-archive-player .player-card__placeholder{
  width:100%; height:100%;
}

/* ---- ホバーで重なる情報オーバーレイ ----
   トップの選手カード（15-2章）と同じ組み方・同じ時間で揃えている。
   マークアップは archive-player.php の .player-card__overlay。 */
body.post-type-archive-player .player-card__overlay{
  position:absolute; inset:0; z-index:2;
  /* 背番号は .player-card__overlay-meta の中にあり、PCでは絶対配置で右上に抜く。
     残るのはメタだけなので、下寄せにして従来の見え方を保つ。 */
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:13px 15px 15px;
  background:
    radial-gradient(120% 70% at 50% 0%, rgba(122,79,216,.34), transparent 60%),
    linear-gradient(180deg, rgba(13,9,24,.28) 0%, rgba(18,11,40,.78) 48%, rgba(13,9,24,.96) 100%);
  opacity:0;
  transition:opacity .35s ease;
  /* 中身にリンクは無い。カード全体の <a> にクリックを通す。 */
  pointer-events:none;
}
body.post-type-archive-player .player-card:hover .player-card__overlay,
body.post-type-archive-player .player-card:focus-within .player-card__overlay{ opacity:1; }

/* 中身は少し下から立ち上げ、背番号→名前の順に遅らせて流れを作る。
   transform は .player-card__overlay-meta ではなく中の行に当てる。
   transform を持つ要素は絶対配置の基準（包含ブロック）になるため、
   meta に掛けると、中に入れた背番号の top/right が meta 基準になる。 */
body.post-type-archive-player .player-card__number,
body.post-type-archive-player .player-card__overlay-meta > .player-card__name-en,
body.post-type-archive-player .player-card__overlay-meta > .player-card__id,
body.post-type-archive-player .player-card__overlay-meta > .player-card__extra{
  transform:translateY(14px);
  opacity:0;
  transition:transform .45s cubic-bezier(.2,.7,.3,1), opacity .45s ease;
}
body.post-type-archive-player .player-card:hover .player-card__number,
body.post-type-archive-player .player-card:focus-within .player-card__number{
  transform:none; opacity:1; transition-delay:.06s;
}
body.post-type-archive-player .player-card:hover .player-card__overlay-meta > .player-card__name-en,
body.post-type-archive-player .player-card:hover .player-card__overlay-meta > .player-card__id,
body.post-type-archive-player .player-card:hover .player-card__overlay-meta > .player-card__extra,
body.post-type-archive-player .player-card:focus-within .player-card__overlay-meta > .player-card__name-en,
body.post-type-archive-player .player-card:focus-within .player-card__overlay-meta > .player-card__id,
body.post-type-archive-player .player-card:focus-within .player-card__overlay-meta > .player-card__extra{
  transform:none; opacity:1; transition-delay:.12s;
}

/* 背番号：右上に大きく（親テーマの「紫の帯＋白文字」は使わない） */
body.post-type-archive-player .player-card__number{
  position:absolute;
  /* 親テーマは bottom:0 / left:0 / width:100% で「下端いっぱいの帯」にしている。
     top・right だけ足すと左右（上下）とも突っ張って箱が伸びてしまうので、
     打ち消してから右上に置く。 */
  top:13px; right:15px; left:auto; bottom:auto;
  width:auto;
  padding:0;
  background:none;
  font-family:var(--font-crest);
  font-weight:800;
  font-size:clamp(2.2rem, 3.6vw, 3.2rem);
  line-height:.9;
  color:var(--vio-gold);
  text-shadow:0 4px 18px rgba(0,0,0,.6);
}

/* 英字名。金の細線で下のポジション＋漢字名と分ける。 */
body.post-type-archive-player .player-card--photo .player-card__name-en{
  margin:0 0 9px;
  padding-bottom:9px;
  border-bottom:1px solid rgba(205,164,81,.36);
  font-family:var(--font-display);
  font-size:.62rem; font-weight:600; line-height:1.45;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(232,200,128,.88);
  overflow-wrap:anywhere;
}

/* ポジションバッジ＋漢字名を1行に並べる。
   親テーマはベタ塗り＋absolute なので、位置も配色も打ち消している。 */
body.post-type-archive-player .player-card__id{
  display:flex; align-items:center; gap:9px;
}
body.post-type-archive-player .player-card--photo .player-card__pos-tag{
  position:static;
  flex:0 0 auto;
  display:inline-flex; align-items:center;
  padding:3px 8px;
  font-family:var(--font-display);
  font-size:.64rem; font-weight:700; line-height:1.4;
  letter-spacing:.1em;
  color:rgb(var(--pos-c));
  background:var(--pos-tag-bg);
  border:1px solid var(--pos-tag-line-hi);
  border-radius:var(--pos-tag-radius);
}
body.post-type-archive-player .player-card--photo .player-card__name{
  margin:0;
  font-size:1rem; font-weight:700; line-height:1.35;
  letter-spacing:.02em;
  color:#fff;
}

/* スタッフカードには背番号が無い。オーバーレイが flex コラムなので、
   兄弟が1つだけだと上に張り付く。margin-top:auto で常に下端に置く。 */
body.post-type-archive-player .player-card__overlay-meta{ margin-top:auto; }

/* 役職バッジ（監督／コーチ）。ポジションバッジと同じ器で、色だけ金にする。 */
body.post-type-archive-player .player-card--photo .player-card__role-tag{
  flex:0 0 auto;
  display:inline-flex; align-items:center;
  padding:3px 8px;
  font-size:.66rem; font-weight:700; line-height:1.4;
  letter-spacing:.06em;
  color:var(--vio-gold-hi);
  background:var(--pos-tag-bg);
  border:1px solid rgba(205,164,81,.55);
  border-radius:var(--pos-tag-radius);
  white-space:nowrap;
}

/* 詳細ページ無効時にカードへ出す補足情報（生年月日・利き足・学年）。
   オーバーレイの中に入るので、行で積んで読めるようにする。 */
body.post-type-archive-player .player-card__extra{
  margin-top:9px; padding-top:9px;
  border-top:1px solid rgba(255,255,255,.14);
}
body.post-type-archive-player .player-card__extra-item{
  display:block;
  font-size:.68rem; line-height:1.6;
  color:rgba(255,255,255,.72);
}
body.post-type-archive-player .player-card__extra-label{
  color:rgba(232,200,128,.8);
  font-weight:700;
  margin-right:6px;
}

/* ホバーできない端末（タッチ）では常時表示にする。
   ホバー前提のままだと背番号も名前も一切読めなくなるため。 */
@media (hover: none){
  body.post-type-archive-player .player-card__overlay{
    opacity:1;
    background:linear-gradient(180deg, transparent 28%, rgba(13,9,24,.52) 56%, rgba(13,9,24,.95) 100%);
  }
  body.post-type-archive-player .player-card__number,
  body.post-type-archive-player .player-card__overlay-meta > .player-card__name-en,
  body.post-type-archive-player .player-card__overlay-meta > .player-card__id,
  body.post-type-archive-player .player-card__overlay-meta > .player-card__extra{ transform:none; opacity:1; }
}

/* 動きを減らす設定では移動をやめ、フェードだけ残す */
@media (prefers-reduced-motion: reduce){
  body.post-type-archive-player .player-card__number,
  body.post-type-archive-player .player-card__overlay-meta > .player-card__name-en,
  body.post-type-archive-player .player-card__overlay-meta > .player-card__id,
  body.post-type-archive-player .player-card__overlay-meta > .player-card__extra{ transform:none; transition:opacity .2s ease; }
  body.post-type-archive-player .player-card__img img{ transition:none; }
  body.post-type-archive-player .player-card:hover .player-card__img img,
  body.post-type-archive-player .player-card:focus-within .player-card__img img{ transform:none; }
}

/* ---- 40-6 リスト表示（育成年代の表）---- */
body.post-type-archive-player .pl-list{ margin-bottom:8px; }

/* 幅が足りない端末では表だけ横スクロールさせる（ページ自体は横に伸ばさない）*/
body.post-type-archive-player .pl-list__scroll{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.14);
}

body.post-type-archive-player .pl-table{
  width:100%;
  min-width:620px;
  table-layout:fixed;
  border-collapse:collapse;
  margin:0;
}

/* ---- ヘッダー行 ---- */
body.post-type-archive-player .pl-table__th{
  padding:11px 14px;
  text-align:left;
  vertical-align:middle;
  background:rgba(13,9,24,.45);
  border-bottom:1px solid rgba(205,164,81,.34);
  font-family:var(--font-display);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.14em;
  color:var(--vio-gold);
  white-space:nowrap;
}
body.post-type-archive-player .pl-table__th--no{ width:72px; text-align:center; }
body.post-type-archive-player .pl-table__th--pos{ width:104px; }
/* ふりがなの列は 2026-08 に廃止（クライアント指定）。空いた分は経歴に回す。 */
body.post-type-archive-player .pl-table__th--prev{ width:44%; }

/* ---- 明細行 ---- */
body.post-type-archive-player .pl-table__row{
  border-bottom:1px solid rgba(255,255,255,.10);
  transition:background-color .15s ease;
}
body.post-type-archive-player .pl-table__row:last-child{ border-bottom:0; }
body.post-type-archive-player .pl-table__row:nth-child(even){ background:rgba(255,255,255,.022); }
body.post-type-archive-player .pl-table__row:hover{ background:rgba(122,79,216,.16); }

body.post-type-archive-player .pl-table td{
  padding:12px 14px;
  vertical-align:middle;
  color:var(--lp-text);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* 背番号：数字は FV と同じコンデンス体（33章）に合わせる */
body.post-type-archive-player .pl-table__no{
  text-align:center;
  font-family:var(--font-num);
  font-variant-numeric:tabular-nums;
  font-weight:400;
  font-size:1.4rem;
  line-height:1.1;
  letter-spacing:.02em;
  color:var(--vio-gold);
}

/* 選手名 */
body.post-type-archive-player main .pl-table__link,
body.post-type-archive-player .pl-table__player{
  display:block;
  font-weight:600;
  font-size:1rem;
  line-height:1.4;
  color:#fff;
  text-decoration:none;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.post-type-archive-player main .pl-table__link:hover,
body.post-type-archive-player main .pl-table__link:focus-visible{
  color:var(--vio-gold-hi);
  text-decoration:underline;
  text-underline-offset:3px;
}

/* 表のポジション（.pl-pos）の見た目は46-3にまとめてある。
   ここに同じプロパティを重ねて書くと、どちらが効いているのか
   追えなくなるので置かない（以前は色ごとの上書きが二重にあった）。 */

/* 経歴は補助情報なので一段落として扱う */
body.post-type-archive-player .pl-table__prev{
  font-size:.85rem;
  letter-spacing:.02em;
  color:var(--lp-muted);
}

/* 値が無いセル */
body.post-type-archive-player .pl-table__empty{ color:rgba(255,255,255,.3); }

/* ---- SP ---- */
@media (max-width:600px){
  body.post-type-archive-player .pl-table{ min-width:520px; }
  body.post-type-archive-player .pl-table__th{
    padding:9px 10px;
    font-size:.66rem;
    letter-spacing:.1em;
  }
  body.post-type-archive-player .pl-table__th--no{ width:52px; }
  body.post-type-archive-player .pl-table__th--pos{ width:74px; }
  body.post-type-archive-player .pl-table__th--prev{ width:44%; }

  body.post-type-archive-player .pl-table td{ padding:10px; }
  body.post-type-archive-player .pl-table__no{ font-size:1.15rem; }
  body.post-type-archive-player main .pl-table__link,
  body.post-type-archive-player .pl-table__player{ font-size:.92rem; }
  body.post-type-archive-player .pl-pos{
    min-width:36px;
    padding:2px 6px;
    font-size:.68rem;
    letter-spacing:.04em;
  }
  body.post-type-archive-player .pl-table__prev{ font-size:.78rem; }
}

/* ---- 40-7 選手なしの状態 ----
   親は primary（紫）の 6% 塗り＋紫アイコンで、暗地だと何も見えない（42-8と同じ）。 */
body.post-type-archive-player .archive-empty__icon{
  background:rgba(122,79,216,.16);
  color:var(--vio-gold-hi);
}
body.post-type-archive-player .archive-empty__text{ color:rgba(255,255,255,.7); }

/* ---- 40-8 レスポンシブ（カード表示）----
   親テーマは 1024/768/480 で 3→2→2 列。写真が主役のカードなので
   SPでも2列を保ち、余白と文字だけを詰める。 */
@media (max-width:1024px){
  body.post-type-archive-player .players-grid--archive{
    grid-template-columns:repeat(3, minmax(0,1fr));
  }
}
@media (max-width:768px){
  body.post-type-archive-player .players-grid--archive{
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:12px;
  }
  body.post-type-archive-player .player-summary__total{ padding:12px 20px; }
  body.post-type-archive-player .player-summary__total-num{ font-size:1.7rem; }
  body.post-type-archive-player .player-summary__item{ padding:11px 12px; gap:6px; }
  body.post-type-archive-player main .player-summary__num{ font-size:1.3rem; }
  body.post-type-archive-player .player-summary__label{ font-size:.66rem; letter-spacing:.08em; }
  body.post-type-archive-player .cat-filter .cat-filter__item{
    font-size:.76rem; padding:7px 15px;
  }
  body.post-type-archive-player .cat-filter--sub .cat-filter__item{ font-size:.72rem; padding:5px 13px; }
  body.post-type-archive-player main .player-pos-group__title{ font-size:.92rem; gap:10px; }
  /* 写真＋オーバーレイのカード。狭い画面は余白と文字を詰める。 */
  body.post-type-archive-player .player-card__overlay{ padding:11px 12px 13px; }

  /* 背番号は写真の上（右上）ではなく、英字名の左に並べる。
     カード上部はグラデーションが薄く、明るい写真だと金の数字が沈むため。
     組み方はトップの選手スライダー（15-2章）とまったく同じ。 */
  body.post-type-archive-player .player-card__overlay-meta{
    display:grid;
    grid-template-columns:auto minmax(0, 1fr);
    column-gap:8px;
    align-items:end;
  }
  body.post-type-archive-player .player-card__number{
    position:static;
    grid-column:1; grid-row:1;
    /* 英字名の下パディング＋罫線ぶん持ち上げ、足元を英字の最終行にそろえる */
    margin-bottom:5px;
    font-size:1.8rem;
    line-height:1;
    text-shadow:0 2px 10px rgba(0,0,0,.8);
  }
  body.post-type-archive-player .player-card--photo .player-card__overlay-meta > .player-card__name-en{
    grid-column:2; grid-row:1;
  }
  body.post-type-archive-player .player-card__overlay-meta > .player-card__id,
  body.post-type-archive-player .player-card__overlay-meta > .player-card__extra{
    grid-column:1 / -1;
  }
  body.post-type-archive-player .player-card--photo .player-card__name{ font-size:.92rem; }
  body.post-type-archive-player .player-card--photo .player-card__name-en{
    font-size:.58rem; letter-spacing:.13em;
    margin-bottom:7px; padding-bottom:7px;
  }
  body.post-type-archive-player .player-card__id{ gap:7px; }
  body.post-type-archive-player .player-card--photo .player-card__pos-tag{
    font-size:.6rem; letter-spacing:.1em; padding:2px 7px;
  }

  /* 役職バッジ（スタッフ）。ポジションの「GK」等と違って「マネージャー」まで
     あるので、SPのカード幅（2枚並びで実質145px）だと氏名と1行に収まらない。
     氏名が語中で折り返すと読みにくいので、氏名は折り返さずに丸ごと次の行へ
     落とす。「監督」のような短い役職はこれまでどおり1行に収まる。 */
  body.post-type-archive-player .player-card--photo .player-card__role-tag{
    font-size:.6rem; letter-spacing:.06em; padding:2px 7px;
  }
  body.post-type-archive-player .player-card--staff .player-card__id{
    flex-wrap:wrap;
    row-gap:5px;
  }
  body.post-type-archive-player .player-card--staff .player-card__name{
    white-space:nowrap;
  }
}
@media (max-width:480px){
  body.post-type-archive-player .players-grid--archive{ gap:10px; }
  /* 人数サマリーは「合計」を1行使い、内訳を4分割で下段に回す */
  body.post-type-archive-player .player-summary__total{
    width:100%; justify-content:center;
  }
  body.post-type-archive-player .player-summary__item{
    flex:1 1 0; min-width:0; padding:10px 4px;
  }
  body.post-type-archive-player .player-summary__label{ font-size:.62rem; letter-spacing:.06em; }
}

@media (prefers-reduced-motion:reduce){
  body.post-type-archive-player .player-card,
  body.post-type-archive-player .player-card__img img,
  body.post-type-archive-player .player-card__name{ transition:none; }
  body.post-type-archive-player .player-card:hover{ transform:none; }
  body.post-type-archive-player .player-card:hover .player-card__img img{ transform:none; }
  body.post-type-archive-player .player-card:not(.player-card--no-link):active{ transform:none; }
  body.post-type-archive-player .player-card--archive{ animation:none; }
}

/* ============================================================
   41) 下層ページ：パートナー（page-partners.php / page-partner-recruit.php）

   土台は32章（下層ページ共通の暗色化）に乗っている。
     ・main > section の「紺 → 黒」の交互背景（一覧＝紺／募集＝黒）
     ・見出しの英字（[class*="__en"]）を金に戻す
   ページ内ナビ（.about-nav）は38章を共用するのでここには無い。

   クラス名を .pt-* にしているのは、親テーマ page-partners.css が持つ
   .partners-tier / .partners-logo-grid / .partner-logo（列数やサイズが
   固定で入っている）と衝突させないため。親CSSはこのページでも読み込まれる。

   ● ランクの表現
     プラチナ → ゴールド → シルバー → ブロンズ の順に「金の濃さ」と
     ロゴ枠の高さを落として序列を出す。値は各 .pt-tier--* の
     --pt-accent / --pt-logo-h で切り替える（グリッド側は触らない）。

   ● グリッドの列数
     PC/SPの列数はテンプレート側から --pt-cols / --pt-cols-sp で渡す
     （プラチナ2/1・ゴールド3/2・シルバー4/2・ブロンズ5/3）。
     repeat() の中では calc が使えないため、SPの値もPHPで計算して渡している。
   ============================================================ */
body.pt-page{
  --pt-line:rgba(205,164,81,.30);        /* 金のヘアライン */
  --pt-line-soft:rgba(255,255,255,.12);
  --pt-panel:rgba(255,255,255,.04);
}

/* ── セクションの余白（他の下層ページと同じリズム）── */
body.pt-page .pt-section{
  padding:clamp(56px, 7vw, 96px) 0;
}

/* ── セクション見出しの英字（Partners / Recruit）──
   このページの英字は 'Oswald', 'Archivo', sans-serif（＝--font-crest）に統一する。
   共通の .section-heading__en がすでにその指定なので、ここでの上書きは不要。
   ランク見出し（TOP PARTNER / PLATINUM …／41-1章）も同じ書体に揃えてある。 */

/* ── 見出し直下のキャッチコピー ──
   見出しの一部として読ませたいので、本文リードより一段大きく金寄りにし、
   見出しとの間隔も詰める（:has() 非対応環境では共通の 48px のまま＝体裁は崩れない）。 */
body.pt-page .section-heading:has(+ .pt-catch){
  margin-bottom:clamp(18px, 2.2vw, 26px);
}
body.pt-page .pt-catch{
  max-width:820px;
  margin:0 auto clamp(28px, 3.4vw, 44px);
  text-align:center;
  font-family:var(--font-display);
  font-size:clamp(1.05rem, 2.2vw, 1.4rem);
  font-weight:500;
  line-height:1.7;
  letter-spacing:.06em;
  color:var(--vio-gold-hi);
}

/* ── リード文 ── */
body.pt-page .pt-lead{
  max-width:820px;
  margin:0 auto clamp(32px, 4vw, 52px);
  font-size:clamp(.94rem, 1.6vw, 1rem);
  line-height:2;
  color:var(--lp-text);
}
body.pt-page .pt-lead--center{ text-align:center; }

body.pt-page .pt-empty{
  padding:48px 0;
  text-align:center;
  color:var(--lp-muted);
}

/* ============================================================
   41-1) パートナー一覧：ランクごとのブロック
   ============================================================ */
body.pt-page .pt-tier{
  --pt-accent:var(--vio-gold);
  --pt-logo-h:96px;
}
body.pt-page .pt-tier + .pt-tier{
  margin-top:clamp(44px, 5.5vw, 76px);
}

body.pt-page .pt-tier__header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  padding-bottom:12px;
  border-bottom:1px solid var(--pt-line);
}
body.pt-page .pt-tier__title{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:4px 14px;
  margin:0;
}
/* 英字は見出しEN（'Oswald', 'Archivo', sans-serif）。ランクの序列はここの色で示す */
body.pt-page .pt-tier__en{
  font-family:var(--font-crest);     /* = 'Oswald', 'Archivo', sans-serif */
  font-size:clamp(1.1rem, 2.2vw, 1.5rem);
  font-weight:700;
  letter-spacing:.14em;
  text-indent:.14em;
  color:var(--pt-accent);
}
body.pt-page .pt-tier__ja{
  font-size:clamp(.82rem, 1.4vw, .92rem);
  font-weight:700;
  letter-spacing:.08em;
  color:var(--lp-text);
}
/* 社数（「1社」等）はテンプレート側から削除済み。ランク見出しは名称だけを出す。 */

/* ── ロゴグリッド ── */
body.pt-page .pt-logo-grid{
  display:grid;
  grid-template-columns:repeat(var(--pt-cols, 4), minmax(0, 1fr));
  gap:clamp(12px, 1.6vw, 22px);
  margin-top:clamp(20px, 2.6vw, 32px);
}
/* ロゴ枠を白いカードにしている理由
   実際に預かったロゴは全社が「透過PNG＋黒／濃色の文字」で、暗色パネルの上では
   ほぼ読めない。ヘッダーのスポンサー帯（.sponsor-bar）も同じ理由で白地なので、
   ここも白カードに揃える。暗いページの中で白カードが並ぶのは
   スポンサーウォールとして一般的な見せ方でもある。 */
body.pt-page .pt-logo{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:var(--pt-logo-h);
  padding:var(--pt-logo-pad-y, 16px) var(--pt-logo-pad-x, 16px);
  /* ロゴ画像の上限を「カード幅の何%」で決めるため、カード自体を
     コンテナクエリの基準にする（下の 20cqw が効くのはこれがあるから）。 */
  container-type:inline-size;
  background:#fff;
  border:1px solid var(--pt-line-soft);
  text-align:center;
  text-decoration:none;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
/* リンク付き（partner_url あり）のときだけ反応させる */
body.pt-page a.pt-logo:hover,
body.pt-page a.pt-logo:focus-visible{
  border-color:var(--pt-accent);
  box-shadow:0 8px 22px rgba(0,0,0,.35);
  transform:translateY(-2px);
}
body.pt-page a.pt-logo:focus-visible{
  outline:2px solid var(--vio-gold);
  outline-offset:2px;
}
/* ロゴの「見た目の大きさ」を揃えるための高さ上限
   預かったロゴはほぼ全社が横組みのワードマークで、画像の高さ＝文字の高さ。
   幅いっぱい（max-width:100%）だけで組むと、文字数が少ないロゴほど
   縦横比が正方形に近いぶん、同じ幅に伸びた結果 文字だけが大きく見える。
     例）シルバー段（カード幅274px）
         「電気工事店西條」7.3:1 → 高さ34px ／「杏花堂」3.1:1 → 高さ72px
   そこで高さの上限を「カード幅の17%」に置く（≒ 6:1 のロゴの文字の高さ）。
     ・横長（およそ 6:1 より長い）＝ これまで通り幅で決まる → 見た目は不変
     ・正方形寄り（杏花堂・鎌原まんぢゅう・GPR 等）＝ 頭打ちになって縮む
   17cqw が効くのは .pt-logo に container-type:inline-size があるため。

   34px の下限を噛ませている理由
     SPはカードが137px前後まで細くなるので、17%だと上限が23pxまで落ちて
     mimoto や GPR のような正方形寄りのロゴが判読できない大きさになる。
     絶対値の下限を置いて、SPでは「揃えきらないが読める」側に倒している。
   カード枠の高さ（--pt-logo-h）からの上限も従来どおり min() で残す。
   ランクごとに詰め方を変えたいときは --pt-logo-cap / --pt-logo-cap-min を上書きする。 */
body.pt-page .pt-logo__img{
  max-width:100%;
  /* 1行目はコンテナクエリ単位が使えない環境向けの従来値（枠の高さだけで抑える）。
     cqw が解釈できる環境では2行目が上書きする。 */
  max-height:calc(var(--pt-logo-h) - var(--pt-logo-pad-y, 16px) * 2);
  max-height:min(
    calc(var(--pt-logo-h) - var(--pt-logo-pad-y, 16px) * 2),
    max(var(--pt-logo-cap, 17cqw), var(--pt-logo-cap-min, 34px))
  );
  width:auto;
  height:auto;
  object-fit:contain;
}
/* ロゴ画像が無いパートナーは企業名だけのプレースホルダー。
   枠が白カードなので文字は暗色（デモ表示のときだけ出る） */
body.pt-page .pt-logo__name{
  font-size:clamp(.82rem, 1.4vw, .96rem);
  font-weight:700;
  letter-spacing:.06em;
  line-height:1.5;
  color:var(--vio-ink, #12101c);
}

/* ── ランク別の調整（金の濃さとロゴ枠の高さ）──
   上位ほど枠を高く、見出しの英字を濃い金に。
   下段4区分（サポート／メディア／ビジネス／ウェア）は金額の序列ではなく
   関わり方の種別なので、序列は付けずシルバー相当の中間サイズで揃える。

   高さは 2026-08 にクライアント指定で各ランク約13%下げた（白い面が
   縦に間延びして見えるため）。ロゴ画像は 41-1章の上限
   min(枠高 - 上下パディング, max(17cqw, 34px)) で決まるので、
   枠を下げたぶんだけ余白が減り、上位ランクでは画像も少し小さくなる。
   SP（768px以下）は別の値を持っているのでここの変更は効かない。 */
body.pt-page .pt-tier--top-partner{
  --pt-accent:var(--vio-gold-hi);
  --pt-logo-h:190px;
}
body.pt-page .pt-tier--platinum{
  --pt-accent:var(--vio-gold-hi);
  --pt-logo-h:146px;
}
body.pt-page .pt-tier--gold{
  --pt-accent:var(--vio-gold);
  --pt-logo-h:116px;
}
body.pt-page .pt-tier--silver{
  --pt-accent:#c9cede;
  --pt-logo-h:94px;
}
body.pt-page .pt-tier--bronze{
  --pt-accent:#c08a5a;
  --pt-logo-h:78px;
}
body.pt-page .pt-tier--support-company,
body.pt-page .pt-tier--media-partner,
body.pt-page .pt-tier--business-partner,
body.pt-page .pt-tier--wear-supplier{
  --pt-accent:#c9cede;
  --pt-logo-h:90px;
}

/* トップ／プラチナは最上位らしく、見出しと枠を一段豪華にする。
   ・見出しの英字にグラデーション（背景をテキストで抜く）
   ・区切り線を金のグラデーションの太線に
   ・ロゴ枠を金の縁取り＋外側にわずかな金の光 */
body.pt-page .pt-tier--top-partner .pt-tier__header,
body.pt-page .pt-tier--platinum .pt-tier__header{
  padding-bottom:14px;
  border-bottom:2px solid transparent;
  border-image:linear-gradient(90deg, var(--vio-gold-hi), var(--vio-gold) 45%, rgba(205,164,81,0)) 1;
}
body.pt-page .pt-tier--top-partner .pt-tier__en,
body.pt-page .pt-tier--platinum .pt-tier__en{
  background:linear-gradient(100deg, #fff2cf 0%, var(--vio-gold-hi) 35%, var(--vio-gold) 70%, #fff2cf 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
}
body.pt-page .pt-tier--top-partner .pt-tier__ja,
body.pt-page .pt-tier--platinum .pt-tier__ja{ color:#fff; }
body.pt-page .pt-tier--top-partner .pt-logo,
body.pt-page .pt-tier--platinum .pt-logo{
  border-color:var(--pt-accent);
  box-shadow:0 0 0 1px rgba(205,164,81,.35), 0 10px 30px rgba(0,0,0,.4);
}
body.pt-page .pt-tier--top-partner .pt-logo__name,
body.pt-page .pt-tier--platinum .pt-logo__name{
  font-size:clamp(1rem, 1.8vw, 1.2rem);
}
body.pt-page .pt-tier--gold .pt-logo__name{
  font-size:clamp(.9rem, 1.6vw, 1.05rem);
}

/* ============================================================
   41-2) パートナー募集

   中身はクラブの募集資料（PDF）p5〜p7 に合わせた7ブロック構成。
     導入 → メリット4枚 → プラン比較表 → 特典の内容9項目
     → 協賛金の使用用途 → 契約までの流れ → お問い合わせCTA

   ● 配色の考え方
     地は32章の暗色のまま。金（--vio-gold / --vio-gold-hi）は
     「番号・英字・罫線・○」だけに使い、面には広げない。
     面が要るところ（カード・表の地）は紫寄りの半透明を重ねて、
     一覧セクションの白いロゴカードとぶつからないようにする。
   ============================================================ */
body.pt-page .pt-recruit{
  /* 41-2 の中だけで使う面の色。41章の --pt-panel より少し紫に寄せている */
  --pt-face:linear-gradient(180deg, rgba(60,35,120,.24), rgba(255,255,255,.03));
  --pt-face-flat:rgba(60,35,120,.18);
}

/* 読み上げ専用テキスト。テーマに共通ユーティリティが無いのでここで定義する
   （比較表の ○／— は装飾文字なので、セルの意味は別に持たせている）。 */
body.pt-page .screen-reader-text{
  position:absolute;
  width:1px; height:1px;
  margin:-1px; padding:0;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}

/* ── 導入（夢、希望、感動を共に！）── */
body.pt-page .pt-recruit__intro{
  margin-bottom:clamp(48px, 6vw, 84px);
  text-align:center;
}
/* キャッチは一覧側の .pt-catch と同じ役割。金のグラデーションで
   ページ内で一番強い一行にし、下に短い金の罫を敷く。 */
body.pt-page .pt-recruit__title{
  margin:0 0 clamp(22px, 2.8vw, 32px);
  padding-bottom:clamp(16px, 2vw, 22px);
  font-family:var(--font-display);
  font-size:clamp(1.4rem, 3.4vw, 2.1rem);
  font-weight:700;
  line-height:1.5;
  letter-spacing:.08em;
  background:linear-gradient(100deg, #fff2cf 0%, var(--vio-gold-hi) 38%, var(--vio-gold) 72%, #fff2cf 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
}
body.pt-page .pt-recruit__title::after{
  content:"";
  display:block;
  width:64px;
  height:2px;
  margin:clamp(16px, 2vw, 22px) auto 0;
  background:linear-gradient(90deg, var(--vio-gold-hi), var(--vio-gold));
}
/* 導入とメリットのリードは複数段落。41章の .pt-lead は1要素前提なので、
   中の <p> 側に間隔を持たせる。 */
body.pt-page .pt-lead > p{
  margin:0 0 1.1em;
  text-align:left;
}
body.pt-page .pt-lead > p:last-child{ margin-bottom:0; }
body.pt-page .pt-recruit__intro .pt-lead{ margin-bottom:0; }
/* 中見出しのすぐ下に置くリードは、見出しとの間隔を詰める */
body.pt-page .pt-lead--tight{
  margin-top:calc(-1 * clamp(4px, .6vw, 8px));
  margin-bottom:clamp(26px, 3.2vw, 38px);
}

/* ── 中見出し（Merits / Plans / Benefits / Usage / Flow）──
   section-heading より一段小さい同じ骨格。2つ目以降は上に余白を足して
   ブロックの切れ目を作る（隣接セレクタではなく :not(:first-of-type) で
   拾うのは、間にリストや表が挟まるため）。 */
body.pt-page .pt-subheading{
  display:flex;
  align-items:baseline;
  gap:14px;
  margin:0 0 clamp(20px, 2.6vw, 30px);
  padding-bottom:10px;
  border-bottom:1px solid var(--pt-line);
}
body.pt-page .pt-subheading:not(:first-of-type){
  margin-top:clamp(52px, 6.5vw, 88px);
}
body.pt-page .pt-subheading__en{
  font-family:var(--font-crest);
  font-size:clamp(1rem, 2vw, 1.25rem);
  font-weight:700;
  letter-spacing:.16em;
  text-indent:.16em;
  color:var(--vio-gold);
}
body.pt-page .pt-subheading__ja{
  font-size:.86rem;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--lp-text);
}

/* ── メリット（カード5枚）──
   本文が無く見出し1行だけのカードなので、1段目にアイコンと「MERITS n」を
   横並びで置き、2段目でその見出しを受ける2段構成にする。縦に積むと
   5枚とも背が高くなって、たった1行の見出しに画面を使いすぎるため。
   MERITS 5 だけ見出しの下に説明が入るので、そのカードにだけ3段目が増える。
   以前は右下に 01〜04 の数字を透かしで敷いていたが、「MERITS n」と
   同じことを2回言っていたうえ、SPで1列になると本文と重なる調整が
   要ったため外した。面が平坦になるぶんは、右上の金のにじみ（::after）
   で持たせている。

   段組みは grid のエリア指定で作る。1段目の2つは高さを揃えたいだけで
   入れ子の意味は無いので、markup 側に行のラッパーは足していない。

   一覧は 6 列を土台にして1枚 span 2（＝1段3枚）で組む。5枚だと
   2段目が1枚余るので、そのときだけ4・5枚目を span 3 にして
   半々に割り、行の右側に穴が空かないようにする。nth-last-child を
   併記して「ちょうど5枚のとき」に限定してあるので、枚数が変われば
   自動で 3枚ずつの並びに戻る。 */
body.pt-page .pt-merits{
  display:grid;
  grid-template-columns:repeat(6, minmax(0, 1fr));
  gap:clamp(14px, 1.8vw, 22px);
  margin:0;
  padding:0;
  list-style:none;
}
body.pt-page .pt-merit{
  position:relative;
  overflow:hidden;
  grid-column:span 2;
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  grid-template-areas:
    "icon label"
    "title title";
  align-items:center;
  /* 同じ段のカードは grid で高さが揃うので、見出しが1行のカードは行が余る。
     余りは行に配らず下に落として、見出しの頭を揃える。 */
  align-content:start;
  column-gap:14px;
  row-gap:clamp(12px, 1.4vw, 16px);
  padding:clamp(18px, 2.2vw, 24px) clamp(18px, 2.2vw, 26px);
  background:var(--pt-face);
  border:1px solid var(--pt-line-soft);
  border-top:3px solid var(--vio-gold);
}
/* ちょうど5枚のときだけ、2段目の2枚で行を使い切る。 */
body.pt-page .pt-merits > :nth-child(4):nth-last-child(2),
body.pt-page .pt-merits > :nth-child(5):nth-last-child(1){
  grid-column:span 3;
}
/* ちょうど4枚のときは 3枚＋1枚 で右側が空くので、2列（2×2）に組む。
   1枚あたりが広くなり、見出しの下に並べるタグも折り返しにくい。
   900px以下は下のレスポンシブ側が2列グリッド（1枚=span 1）に組み替えるので、
   この指定はデスクトップに限定する。セレクタが長くて詳細度が高く、
   メディアクエリの中の .pt-merit{span 1} に勝ってしまうため。 */
@media (min-width:901px){
  body.pt-page .pt-merits > :first-child:nth-last-child(4),
  body.pt-page .pt-merits > :first-child:nth-last-child(4) ~ *{
    grid-column:span 3;
  }
}
/* 右上の金のにじみ。上端の金罫からこぼれた光として置く。
   カードは押せる要素ではないので、ホバーでは動かさない。 */
body.pt-page .pt-merit::after{
  content:"";
  position:absolute;
  top:-40px;
  right:-40px;
  width:130px;
  height:130px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(205,164,81,.16), rgba(205,164,81,0) 70%);
  pointer-events:none;
}
/* アイコンは器（丸枠）を持たせず、線画そのものを大きく見せる。
   ラベルと横に並ぶので、器があると1段目が高くなってしまう。
   色は .pt-flow__icon と同じ薄紫。金は上端の罫とラベルに残す。 */
body.pt-page .pt-merit__icon{
  position:relative;
  grid-area:icon;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:42px;
  height:42px;
  color:#cbbcee;
}
body.pt-page .pt-merit__icon svg{
  display:block;
  width:30px;
  height:30px;
}
/* ラベルの後ろの金罫は、アイコンとの1段目をカードの右端まで通す線として
   残す。行の余りを全部使わせたいので幅ではなく flex:1 で伸ばす。 */
body.pt-page .pt-merit__label{
  position:relative;
  grid-area:label;
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-crest);
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.18em;
  text-indent:.18em;
  color:var(--vio-gold);
  white-space:nowrap;
}
body.pt-page .pt-merit__label::after{
  content:"";
  flex:1 1 auto;
  min-width:12px;
  height:1px;
  background:var(--pt-line);
}
body.pt-page .pt-merit__title{
  position:relative;
  grid-area:title;
  margin:0;
  font-size:clamp(.98rem, 1.7vw, 1.1rem);
  font-weight:700;
  line-height:1.7;
  letter-spacing:.02em;
  color:#fff;
}
/* 説明が付くのは MERITS 5 だけ。見出しと同じ幅で受けたいので
   アイコンの列には回さず、行を丸ごと使う。
   3段目はエリア名を切らずに自動配置で足す — 名前付きの空行を
   用意してしまうと、説明の無いカードでも row-gap ぶんの空きが
   下に残ってしまうため。文字は特典カードの本文
   （.pt-benefit__text）と同じ大きさ・色に揃える。 */
body.pt-page .pt-merit__text{
  position:relative;
  grid-column:1 / -1;
  margin:-4px 0 0;
  font-size:.84rem;
  line-height:1.9;
  color:var(--lp-muted);
}

/* 見出しの下に並ぶ具体例のタグ。見出しと同じく行を丸ごと使う。
   3段目はエリア名を切らずに自動配置で足す — 名前付きの空行を用意すると
   タグの無いカードでも row-gap ぶんの空きが下に残るため。
   色と枠線はお知らせのカテゴリータグ（.news-item__cat）と同じ扱いで、
   金は上端の罫とラベルに残したまま、ここは白の細線でおとなしく見せる。 */
body.pt-page .pt-merit__tags{
  position:relative;
  grid-column:1 / -1;
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:-2px 0 0;
  padding:0;
  list-style:none;
}
body.pt-page .pt-merit__tag{
  display:inline-block;
  padding:4px 10px;
  font-size:.78rem;
  line-height:1.5;
  letter-spacing:.02em;
  color:var(--lp-text);
  background:rgba(255,255,255,.05);
  border:1px solid var(--pt-line-soft);
  border-radius:999px;
}

/* ── プラン比較表 ──
   列＝7プラン＋行見出し1列。1200px の .container（実効 1160px）に
   ちょうど収まる幅（240 + 7×128 = 1136px）を min-width にしてあるので、
   PCでは横スクロールは出ず、狭い画面でだけスクロールになる。
   行見出しの列は position:sticky で左に貼り付け、どこまで送っても
   「何の行を見ているか」が分かるようにする。 */
body.pt-page .pt-matrix-hint{
  margin:0 0 8px;
  font-size:.76rem;
  letter-spacing:.04em;
  color:var(--lp-muted);
  text-align:right;
}
/* 表の最小幅 1136px ＋ .container の左右パディング 40px を確保できる幅では
   横スクロールが起きないので、告知は出さない。 */
@media (min-width:1200px){
  body.pt-page .pt-matrix-hint{ display:none; }
}
body.pt-page .pt-matrix-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border:1px solid var(--pt-line);
  background:rgba(13,9,24,.55);
}
body.pt-page .pt-matrix-wrap:focus-visible{
  outline:2px solid var(--vio-gold);
  outline-offset:2px;
}
body.pt-page .pt-matrix{
  width:100%;
  min-width:1136px;
  border-collapse:separate;   /* sticky 列に罫線を残すため collapse は使わない */
  border-spacing:0;
}
body.pt-page .pt-matrix th,
body.pt-page .pt-matrix td{
  border-bottom:1px solid var(--pt-line-soft);
  border-right:1px solid rgba(255,255,255,.07);
  vertical-align:middle;
}
body.pt-page .pt-matrix tr > *:last-child{ border-right:0; }
body.pt-page .pt-matrix tbody tr:last-child > *{ border-bottom:0; }

/* 左上の角と行見出しの列（sticky）。地を不透明にしないと
   スクロールしたセルが透けて重なる。 */
body.pt-page .pt-matrix__corner,
body.pt-page .pt-matrix__label{
  position:sticky;
  left:0;
  z-index:2;
  /* 240px は「クラブオフィシャルサイト」（最長の1行想定ラベル）が
     行番号の丸と左右パディングを含めて1行に収まる幅。 */
  width:240px;
  min-width:240px;
  text-align:left;
  background:#150f26;
}
body.pt-page .pt-matrix__corner{
  z-index:3;
  padding:14px 16px;
  background:#20173a;
  border-bottom:1px solid var(--pt-line);
  font-family:var(--font-crest);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.16em;
  text-indent:.16em;
  color:var(--vio-gold-hi);
  white-space:nowrap;
}
body.pt-page .pt-matrix__label{
  padding:14px 16px;
  font-size:.86rem;
  font-weight:700;
  line-height:1.6;
  letter-spacing:.02em;
  color:var(--lp-text);
}
/* 行番号は資料の「1.」〜「9.」。枠線なしの金文字で先頭に置く */
body.pt-page .pt-matrix__label-no{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px; height:20px;
  margin-right:8px;
  font-family:var(--font-display);
  font-size:.72rem;
  font-weight:700;
  color:var(--vio-gold);
  vertical-align:1px;
}

/* プラン列の見出し。名称／金額／募集数の3段。
   ランクの序列は --pt-plan-accent（文字色と上の細い帯）だけで出す。 */
body.pt-page .pt-matrix__plan{
  --pt-plan-accent:var(--vio-gold);
  position:relative;
  min-width:128px;
  padding:16px 6px 14px;
  background:#20173a;
  border-bottom:1px solid var(--pt-line);
  text-align:center;
  vertical-align:top;
}
body.pt-page .pt-matrix__plan::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:3px;
  background:var(--pt-plan-accent);
}
/* 最長は「プラチナパートナー」「サポートカンパニー」の9字。
   列の内寸（131 - 12 = 119px）に9字が入る大きさにして1行に収める。
   それでも折れる環境向けに line-break:strict を付け、
   行頭に「ー」だけが落ちる（トップパートナ／ー）のを防ぐ。 */
body.pt-page .pt-matrix__plan-name{
  display:block;
  font-size:.78rem;
  font-weight:700;
  line-height:1.5;
  letter-spacing:0;
  line-break:strict;
  color:var(--pt-plan-accent);
}
body.pt-page .pt-matrix__plan-fee{
  display:block;
  margin-top:6px;
  font-family:var(--font-display);
  font-size:.92rem;
  font-weight:700;
  letter-spacing:.03em;
  color:#fff;
  white-space:nowrap;
}
body.pt-page .pt-matrix__plan-slots{
  display:block;
  margin-top:3px;
  font-size:.7rem;
  letter-spacing:.04em;
  color:var(--lp-muted);
  white-space:nowrap;
}
/* ランク別の色。41-1章のロゴ枠と同じ考え方（上位＝明るい金、
   シルバー＝白銀、ブロンズ＝銅、パープル＝クラブカラー）。 */
body.pt-page .pt-matrix__plan--top-partner{ --pt-plan-accent:#fff2cf; }
body.pt-page .pt-matrix__plan--platinum{    --pt-plan-accent:var(--vio-gold-hi); }
body.pt-page .pt-matrix__plan--gold{        --pt-plan-accent:var(--vio-gold); }
body.pt-page .pt-matrix__plan--silver{      --pt-plan-accent:#c9cede; }
body.pt-page .pt-matrix__plan--bronze{      --pt-plan-accent:#c08a5a; }
body.pt-page .pt-matrix__plan--purple{      --pt-plan-accent:#b79bf0; }
body.pt-page .pt-matrix__plan--support-company{ --pt-plan-accent:#9aa2b8; }

/* ○／— のセル */
body.pt-page .pt-matrix__cell{
  padding:14px 8px;
  text-align:center;
}
body.pt-page .pt-matrix__mark{
  font-size:1.05rem;
  line-height:1;
  color:var(--vio-gold-hi);
}
body.pt-page .pt-matrix__cell--no .pt-matrix__mark{
  color:rgba(255,255,255,.28);
}
body.pt-page .pt-matrix__note-ref{
  margin-left:2px;
  font-size:.62rem;
  color:var(--lp-muted);
  vertical-align:super;
}
body.pt-page .pt-matrix tbody tr:hover > *{
  background-color:rgba(205,164,81,.06);
}
/* sticky 列は上の hover 背景が透けるので、行ホバー時も地を塗り直す */
body.pt-page .pt-matrix tbody tr:hover .pt-matrix__label{
  background:#1c1430;
}

/* 表の下の注記（※1／※2と募集条件） */
body.pt-page .pt-matrix-notes{
  margin:clamp(14px, 1.8vw, 20px) 0 0;
  padding:0;
  list-style:none;
}
body.pt-page .pt-matrix-notes li{
  position:relative;
  padding-left:1em;
  font-size:.82rem;
  line-height:1.9;
  color:var(--lp-muted);
}
/* 「※」で始まる行にはマーカーを重ねない */
body.pt-page .pt-matrix-notes li::before{
  content:"・";
  position:absolute;
  left:0;
}
body.pt-page .pt-matrix-notes li:nth-child(1)::before,
body.pt-page .pt-matrix-notes li:nth-child(2)::before{ content:none; }
body.pt-page .pt-matrix-notes li:nth-child(1),
body.pt-page .pt-matrix-notes li:nth-child(2){ padding-left:0; }

/* ── プラン一覧のカード切替（SP専用）──
   PC は上の比較表で足りるので、ここは丸ごと隠しておく。SP では逆に表を
   隠してこちらを出す（41-2章末尾の 768px ブロック）。表とカードは同じ
   PHP 配列から出力しているので、中身のズレは起きない。
   タブのピルはトップのお知らせフィルター（.news-filter__btn）と同じ形。 */
body.pt-page .pt-plan-cards{ display:none; }

body.pt-page .pt-plan-tabs{
  display:flex;
  flex-wrap:nowrap;              /* 折り返さずに横スクロールさせる */
  gap:8px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  /* .container の左右パディング（20px）を打ち消して画面端まで送れるようにし、
     その分をリストの内側に戻す。ピルが端で切れて「まだ続く」ことが伝わる。 */
  margin-inline:-20px;
  padding:0 20px 4px;
}
body.pt-page .pt-plan-tabs::-webkit-scrollbar{ display:none; }
body.pt-page .pt-plan-tab{
  flex-shrink:0;
  white-space:nowrap;
  font-family:var(--font-display);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.04em;
  color:rgba(255,255,255,.72);
  background:transparent;
  border:1px solid rgba(255,255,255,.25);
  padding:8px 16px;
  border-radius:999px;
  cursor:pointer;
  transition:color .2s, background .2s, border-color .2s;
}
body.pt-page .pt-plan-tab:hover{
  color:#fff;
  border-color:rgba(205,164,81,.7);
}
body.pt-page .pt-plan-tab.is-active{
  color:var(--vio-ink);
  background:linear-gradient(135deg, var(--vio-gold), var(--vio-gold-hi));
  border-color:var(--vio-gold);
}

/* カード本体。枠線は全辺そろえて、プランごとの色分けはプラン名の文字色
   （--pt-plan-accent）だけで出す。 */
body.pt-page .pt-plan-card{
  margin-top:14px;
  padding:18px 16px;
  border:1px solid var(--pt-line);
  background:rgba(13,9,24,.55);
}
body.pt-page .pt-plan-card:focus-visible{
  outline:2px solid var(--vio-gold);
  outline-offset:2px;
}
body.pt-page .pt-plan-card--top-partner{ --pt-plan-accent:#fff2cf; }
body.pt-page .pt-plan-card--platinum{    --pt-plan-accent:var(--vio-gold-hi); }
body.pt-page .pt-plan-card--gold{        --pt-plan-accent:var(--vio-gold); }
body.pt-page .pt-plan-card--silver{      --pt-plan-accent:#c9cede; }
body.pt-page .pt-plan-card--bronze{      --pt-plan-accent:#c08a5a; }
body.pt-page .pt-plan-card--purple{      --pt-plan-accent:#b79bf0; }
body.pt-page .pt-plan-card--support-company{ --pt-plan-accent:#9aa2b8; }

body.pt-page .pt-plan-card__name{
  margin:0;
  font-family:var(--font-display);
  font-size:1.02rem;
  font-weight:800;
  letter-spacing:.04em;
  color:var(--pt-plan-accent, #fff);
}
/* 金額と募集数。ラベルを上、値を下に積んだ2枚組。 */
body.pt-page .pt-plan-card__meta{
  display:flex;
  gap:10px;
  margin:12px 0 0;
}
body.pt-page .pt-plan-card__meta-item{
  flex:1 1 0;
  min-width:0;
  padding:8px 10px;
  background:rgba(255,255,255,.05);
}
body.pt-page .pt-plan-card__meta dt{
  font-size:.68rem;
  letter-spacing:.06em;
  color:var(--lp-muted);
}
body.pt-page .pt-plan-card__meta dd{
  margin:2px 0 0;
  font-family:var(--font-display);
  font-size:.94rem;
  font-weight:700;
  color:#fff;
}
body.pt-page .pt-plan-card__fee{ color:var(--vio-gold-hi) !important; }

/* 特典9項目。○ を左に固定幅で置いて、項目名の頭を縦に揃える。 */
body.pt-page .pt-plan-card__benefits{
  margin:14px 0 0;
  padding:0;
  list-style:none;
  border-top:1px solid rgba(255,255,255,.1);
}
body.pt-page .pt-plan-card__benefit{
  display:flex;
  align-items:baseline;
  gap:10px;
  padding:9px 2px;
  font-size:.84rem;
  line-height:1.5;
  color:rgba(255,255,255,.9);
  border-bottom:1px solid rgba(255,255,255,.08);
}
body.pt-page .pt-plan-card__benefit:last-child{ border-bottom:0; }
/* 提供なしの行は文字を落として、○ の行だけが拾えるようにする */
body.pt-page .pt-plan-card__benefit--no{ color:rgba(255,255,255,.4); }
body.pt-page .pt-plan-card__mark{
  flex:0 0 1.1em;
  text-align:center;
  font-size:1rem;
  line-height:1;
  color:var(--vio-gold-hi);
}
body.pt-page .pt-plan-card__benefit--no .pt-plan-card__mark{
  color:rgba(255,255,255,.28);
}
body.pt-page .pt-plan-card__note-ref{
  margin-left:2px;
  font-size:.62rem;
  color:var(--lp-muted);
  vertical-align:super;
}

/* ── 特典の内容（9項目）──
   表の行と1対1で対応する説明。2列に流して縦の長さを抑える。
   見出し・本文・掲出例だけの構成で、アイコンや番号の飾りは置かない
   （掲出例の画像が項目の中身を示すため）。 */
body.pt-page .pt-benefits{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  /* 掲出例の画像を持つ項目と持たない項目が隣り合うので、行の高さに
     引き伸ばすと画像の無い側に大きな空白の面ができる。カードは中身の
     高さのままにして、余りは地のままにする。 */
  align-items:start;
  gap:clamp(12px, 1.6vw, 18px);
  margin:0;
  padding:0;
  list-style:none;
}
body.pt-page .pt-benefit{
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  align-content:start;
  gap:clamp(13px, 1.5vw, 17px);
  padding:clamp(16px, 2vw, 22px) clamp(16px, 2vw, 22px);
  background:var(--pt-face-flat);
  border:1px solid var(--pt-line-soft);
  border-left:2px solid var(--vio-gold);
}
body.pt-page .pt-benefit__body{
  min-width:0;
}
body.pt-page .pt-benefit__title{
  margin:0 0 6px;
  font-size:.95rem;
  font-weight:700;
  line-height:1.6;
  letter-spacing:.02em;
  color:#fff;
}
body.pt-page .pt-benefit__text{
  margin:0;
  font-size:.84rem;
  line-height:1.9;
  color:var(--lp-muted);
}

/* ── 特典カードの掲出例（写真・SNS投稿・サイトのキャプチャ）──
   説明文の下に敷く。縦横比は CSS 側で決め打ちして object-fit:cover で
   切る。元画像の比率がバラバラでも、カードが並んだときの行の高さが揃う。 */
body.pt-page .pt-benefit__media{
  display:grid;
  gap:8px;
  margin:0;
  padding:0;
  list-style:none;
}
/* SNSは4枚あるので、この項目だけ2列ぶんの幅を取って横一列に並べる。 */
body.pt-page .pt-benefit--wide{ grid-column:span 2; }
body.pt-page .pt-benefit__media--single{
  grid-template-columns:minmax(0, 1fr);
}
body.pt-page .pt-benefit__media--sns{
  grid-template-columns:repeat(4, minmax(0, 1fr));
}
body.pt-page .pt-benefit__media--pair{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}
/* 白地の投稿画像がそのまま浮かないよう、暗い地と細い罫で受ける。 */
body.pt-page .pt-benefit__shot{
  overflow:hidden;
  background:rgba(13,9,24,.5);
  border:1px solid var(--pt-line-soft);
}
body.pt-page .pt-benefit__shot picture{
  display:block;
  height:100%;
}
body.pt-page .pt-benefit__img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
/* 掲出位置図は1枚もの。ランク名の吹き出しが図中に入っていて、切ると
   意味が変わるので、この項目だけ cover で切らずに全体を出す。地は透過
   なので、他の掲出例のような暗い受け皿と罫も置かない。カードの幅は
   バナー等と同じ2列の片方ぶんで、図はその幅に収める。 */
body.pt-page .pt-benefit__media--wear{
  grid-template-columns:minmax(0, 1fr);
}
body.pt-page .pt-benefit__media--wear .pt-benefit__shot{
  background:none;
  border:0;
}
body.pt-page .pt-benefit__media--wear .pt-benefit__img{
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 6px 18px rgba(0,0,0,.45));
}
/* 掲出例に添える注記（※ 画像はイメージです 等）。 */
body.pt-page .pt-benefit__note{
  margin:0;
  font-size:.78rem;
  line-height:1.9;
  color:var(--lp-muted);
}
/* 写真とサイトのキャプチャは横位置で切る */
body.pt-page .pt-benefit__media--single .pt-benefit__shot{
  aspect-ratio:16 / 9;
}
/* SNS投稿は縦長のデザインそのものを見せたいので 4:5 のまま出す */
body.pt-page .pt-benefit__media--sns .pt-benefit__shot{
  aspect-ratio:4 / 5;
}
/* 企業紹介はスマホの投稿画面のキャプチャで元が縦に長い。SNS投稿と同じ
   4:5 で切ると企業ロゴのカードが途中で切れるので、少し縦を伸ばした
   2:3 にして、上寄せでロゴのところまで入るようにしている。 */
body.pt-page .pt-benefit__media--pair .pt-benefit__shot{
  aspect-ratio:2 / 3;
}
body.pt-page .pt-benefit__media--pair .pt-benefit__img{
  object-position:top center;
}

/* ── 協賛金の使用用途 ──
   5項目の短い箇条書き。折り返さない長さなので、幅に応じて詰める
   auto-fit のグリッドにして、行が余っても間延びしないようにする。 */
body.pt-page .pt-usages{
  display:grid;
  /* 1160px で5列（＝下の Flow と同じ列数）になる下限。
     幅が狭くなると 4→3→2→1 と自然に落ちる。 */
  grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
  gap:clamp(10px, 1.4vw, 14px);
  margin:0;
  padding:0;
  list-style:none;
}
body.pt-page .pt-usage{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:14px 16px;
  background:var(--pt-face-flat);
  border:1px solid var(--pt-line-soft);
}
body.pt-page .pt-usage__no{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:26px; height:26px;
  background:linear-gradient(135deg, var(--vio-gold), var(--vio-gold-hi));
  border-radius:50%;
  font-family:var(--font-display);
  font-size:.82rem;
  font-weight:700;
  line-height:1;
  color:var(--vio-ink);
}
body.pt-page .pt-usage__text{
  font-size:.9rem;
  line-height:1.7;
  color:var(--lp-text);
}

/* ── 契約締結までの流れ ──
   5ステップを横に並べ、間を金のシェブロン（::after）でつなぐ。
   最後のステップにはシェブロンを出さない。 */
body.pt-page .pt-flow{
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:clamp(22px, 2.6vw, 32px);
  margin:0 0 clamp(48px, 6vw, 80px);
  padding:0;
  list-style:none;
}
body.pt-page .pt-flow__step{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  padding:clamp(18px, 2.2vw, 24px) 14px;
  background:var(--pt-face);
  border:1px solid var(--pt-line-soft);
  border-top:2px solid var(--vio-gold);
  text-align:center;
}
body.pt-page .pt-flow__step:not(:last-child)::after{
  content:"";
  position:absolute;
  top:50%;
  right:calc(-1 * clamp(22px, 2.6vw, 32px) / 2);
  width:10px; height:10px;
  border-top:2px solid var(--vio-gold);
  border-right:2px solid var(--vio-gold);
  transform:translate(50%, -50%) rotate(45deg);
}
/* ステップの内容を表す線画アイコン。丸枠は付けず、線画そのものを大きく見せる。
   金はカード上端のラインとステップ間のシェブロンに残すので、
   アイコンは薄紫にして面全体が金に寄らないようにする。 */
body.pt-page .pt-flow__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:36px;
  height:36px;
  color:#cbbcee;
}
body.pt-page .pt-flow__icon svg{
  display:block;
  width:36px;
  height:36px;
}
body.pt-page .pt-flow__no{
  font-family:var(--font-crest);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.16em;
  text-indent:.16em;
  color:#fff;
}
body.pt-page .pt-flow__text{
  font-size:.88rem;
  font-weight:700;
  line-height:1.7;
  letter-spacing:.02em;
  color:#fff;
}

/* ── お問い合わせCTA ──
   面の意匠は50章の .fcv-cta に集約している。ここは文字とボタンだけ。
   見出しの組みは募集ページのCTA（39-4章）と同じ値にしている。 */
body.pt-page .pt-cta__en{
  margin:0 0 6px;
  font-family:var(--font-crest);
  font-weight:800;
  font-size:clamp(1.6rem, 4vw, 2.4rem);
  line-height:1.05;
  color:var(--vio-gold);
}
body.pt-page .pt-cta__title{
  margin:0 0 16px;
  font-size:clamp(1.15rem, 2.4vw, 1.5rem);
  font-weight:700;
  line-height:1.6;
  letter-spacing:.06em;
  color:#fff;
}
body.pt-page .pt-cta__text{
  margin:0 0 clamp(18px, 2.4vw, 26px);
  font-size:clamp(.92rem, 1.6vw, 1rem);
  line-height:1.9;
  color:var(--lp-text);
}
/* ボタンは44章の .fixtures-link。大きさは50章が面ごと決めている。 */

/* ボタンの下に添える補足リンク（申込ではなく相談だけしたい人の逃げ道）。
   主役は申込ボタンなので、一段落とした大きさ・色にする。 */
body.pt-page .pt-cta__sub{
  margin:clamp(14px, 1.8vw, 18px) 0 0;
  font-size:.85rem;
  line-height:1.8;
  color:var(--lp-muted);
}
body.pt-page .pt-cta__sub a{
  color:var(--vio-gold-hi);
  text-decoration:underline;
  text-underline-offset:.2em;
}
body.pt-page .pt-cta__sub a:hover{ color:#fff; }

/* ============================================================
   41-3) レスポンシブ
   ============================================================ */
@media (max-width:900px){
  body.pt-page .pt-merits{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  body.pt-page .pt-merit{ grid-column:span 1; }
  /* 2列だと5枚目が1枚だけ残るので、そこは横いっぱいに伸ばす。 */
  body.pt-page .pt-merits > :nth-child(4):nth-last-child(2){
    grid-column:span 1;
  }
  body.pt-page .pt-merits > :nth-child(5):nth-last-child(1){
    grid-column:span 2;
  }
  /* 特典の説明は2列だと1項目あたり2〜3行になって読みにくいので1列に落とす */
  body.pt-page .pt-benefits{
    grid-template-columns:minmax(0, 1fr);
  }
  /* 親が1列になったので、SNSの「2列ぶん」も1列に戻す */
  body.pt-page .pt-benefit--wide{ grid-column:span 1; }
  /* 1列になるとカードの幅がそのまま画像の幅になり、写真だけが極端に
     大きくなって説明文が埋もれる。画像側に幅の上限を置いて左に寄せる。 */
  body.pt-page .pt-benefit__media{
    max-width:min(100%, 520px);
  }
  /* 上限をかけた幅にSNSの4枚を横並べすると1枚120px前後まで縮んで
     投稿の中身が読めない。ここで2×2に折る。 */
  body.pt-page .pt-benefit__media--sns{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  /* 流れは5列だと1列が100px前後になり「パートナーシップ内容の決定」が
     4行に折れる。縦積みにして、シェブロンは右→下に向きを変える。 */
  body.pt-page .pt-flow{
    grid-template-columns:minmax(0, 1fr);
    gap:clamp(18px, 3vw, 24px);
  }
  body.pt-page .pt-flow__step{
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    gap:14px;
    padding:14px 18px;
    text-align:left;
  }
  /* 横並びに戻るぶんアイコンは一回り小さくして、STEP番号と本文の幅を残す */
  body.pt-page .pt-flow__icon{
    width:32px;
    height:32px;
  }
  body.pt-page .pt-flow__icon svg{
    width:32px;
    height:32px;
  }
  body.pt-page .pt-flow__no{
    flex:0 0 auto;
    min-width:66px;
  }
  body.pt-page .pt-flow__step:not(:last-child)::after{
    top:auto;
    right:auto;
    left:50%;
    bottom:calc(-1 * clamp(18px, 3vw, 24px) / 2);
    transform:translate(-50%, 50%) rotate(135deg);
  }
}

@media (max-width:768px){
  /* 列数はテンプレートから渡された SP用の値に差し替える */
  body.pt-page .pt-logo-grid{
    grid-template-columns:repeat(var(--pt-cols-sp, 2), minmax(0, 1fr));
  }
  /* SPは白カードの縦を詰める。
     ロゴ画像は 41-1章の高さ上限（カード幅の17%／下限34px）で頭打ちになり、
     2〜3列のSPではどのロゴも 34px 前後までしか使わない。
     PCと同じ上下16px＋PCと同じ枠高のままだと余白だけが縦に伸びて
     白い面が目立つので、上下パディングと枠の下限高さを一段落とす。
     左右パディングとPC側の縦は据え置き（横幅の見え方は変えない）。 */
  body.pt-page .pt-logo{ --pt-logo-pad-y:10px; }
  body.pt-page .pt-tier--top-partner{ --pt-logo-h:104px; }
  body.pt-page .pt-tier--platinum{ --pt-logo-h:92px; }
  body.pt-page .pt-tier--gold{     --pt-logo-h:78px; }
  body.pt-page .pt-tier--silver{   --pt-logo-h:70px; }
  body.pt-page .pt-tier--bronze{   --pt-logo-h:58px; }
  body.pt-page .pt-tier--support-company,
  body.pt-page .pt-tier--media-partner,
  body.pt-page .pt-tier--business-partner,
  body.pt-page .pt-tier--wear-supplier{     --pt-logo-h:68px; }

  body.pt-page .pt-tier__header{
    align-items:flex-start;
    flex-direction:column;
    gap:6px;
  }

  /* プラン一覧は表 → カード切替に差し替える。
     7列の表を横スクロールで読ませると、行見出しと ○ が同時に見える幅が
     ほとんど残らない。SPでは1プランずつ縦に読ませたほうが早い。 */
  body.pt-page .pt-matrix-hint,
  body.pt-page .pt-matrix-wrap{ display:none; }
  body.pt-page .pt-plan-cards{ display:block; }
}

@media (max-width:520px){
  body.pt-page .pt-merits{
    grid-template-columns:minmax(0, 1fr);
  }
  body.pt-page .pt-merits > :nth-child(4):nth-last-child(2),
  body.pt-page .pt-merits > :nth-child(5):nth-last-child(1){
    grid-column:span 1;
  }
  /* 幅いっぱいの帯になるぶん、アイコンは少しだけ小さくして
     ラベルと見出しに寄せる。 */
  body.pt-page .pt-merit__icon{
    width:36px;
    height:36px;
  }
  body.pt-page .pt-merit__icon svg{
    width:26px;
    height:26px;
  }
  /* この幅では比較表は 768px ブロックで display:none にしていて、
     出ているのは .pt-plan-cards のほう。表を細くする調整はもう効かない
     ので置いていない（表の SP 調整を戻すなら、まず 768px の出し分けから）。 */
  body.pt-page .pt-usages{
    grid-template-columns:minmax(0, 1fr);
  }
  /* ラベルが19字と長い。1行に収めるため字送りを詰め、幅いっぱいの帯にする。
     矢印は .fixtures-link の一部なので落とさず、ラベルだけ折り返させる。 */
  body.pt-page .pt-cta__btn{
    display:flex;
    width:100%;
    justify-content:center;
    padding:14px 16px;
    font-size:.78rem;
    letter-spacing:.04em;
    text-indent:.04em;
    gap:10px;
  }
}

@media (prefers-reduced-motion:reduce){
  body.pt-page .pt-logo{ transition:none; }
  body.pt-page a.pt-logo:hover,
  body.pt-page a.pt-logo:focus-visible{ transform:none; }
}

/* ============================================================
   42) お知らせ一覧ページ（archive.php／子テーマで上書き）

   親テーマの一覧は「1記事目だけ巨大なフィーチャーカード＋白いカード」で、
   トップページのお知らせスライダー（.news-item）と別物だった。
   子テーマの archive.php は同じ .news-item を出すようにしたので、
   ここではグリッドの並びと、トップ側でスコープが .section-news に
   限定されていたタグ類を、一覧にも同じ値で当て直す。

   レイアウトはハイブリッド（全件カードだと縦に伸びすぎるため）:
     上部 … 固定投稿優先の最大3枚をカードのグリッドで（42-1〜42-4）
     下部 … 残りは日付＋タグ＋タイトルの1行リストで（42-5）

   ・スコープ： <main class="archive-main news-archive">
   ・タグの specificity メモ：32章の body:not(.home) 系（クラス2つ＋要素）を
     上書きする必要があるため、クラス3つ以上になるように書いている。
   ============================================================ */

/* ---- 42-1 カードのグリッド（全幅で2列固定＝2カラム×2行の計4枚）----
   SP でも2列にする。1列で縦に伸びると、下のリストまで届くのに指が疲れるため。 */
.news-archive-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:20px 14px;
}
@media (min-width:640px){
  .news-archive-grid{ gap:28px 22px; }
}
@media (min-width:1024px){
  .news-archive-grid{ gap:34px 28px; }
}

/* カード本体はトップと同じ（.news-item の共通CSS）。
   一覧は面が並ぶので、ホバーの手応えだけ足す。 */
.news-archive .news-item{ transition:transform .25s ease; }
.news-archive .news-item:hover{ transform:translateY(-4px); }

/* ---- 42-2 サムネイル ----
   トップのスライダーと同じ 16:10。未設定時の共通画像は35章が入れる。 */
.news-archive .news-item__thumb{ border-radius:4px; }

/* NEW バッジ：金の塗りではなく、タグと同じ「暗い半透明＋細線」の言語に揃える
   （塗ると一覧で最大3枚並んだときに視線を取り過ぎるため、線と文字色だけ金）*/
.news-archive .news-item__badge{
  position:absolute; top:10px; left:10px; z-index:1;
  font-family:var(--font-display);
  font-size:.66rem; font-weight:700; letter-spacing:.12em; line-height:1.4;
  color:var(--vio-gold-hi);
  background:rgba(13,9,24,.72);
  border:1px solid rgba(205,164,81,.55);
  padding:3px 9px; border-radius:4px;
  backdrop-filter:blur(2px);
}

/* ---- 42-3 メタ（日付・タグ）----
   タグはトップの .section-news .news-item__cat と同一の値
   （暗い半透明＋白の細線＋角丸4px）。 */
.news-archive .news-item__meta{
  display:flex; align-items:center; flex-wrap:wrap; gap:8px 10px; margin-top:14px;
}
.news-archive .news-item__date{
  color:var(--vio-gold-hi); letter-spacing:.06em; font-size:.9rem;
}
.news-archive .news-item__cat,
.news-archive .news-item__team-tag{
  display:inline-block;
  font-size:.75rem; font-weight:700; letter-spacing:.04em; line-height:1.4;
  color:#fff;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.22);
  padding:4px 10px; border-radius:4px; white-space:nowrap;
}
/* チームカテゴリー（トップチーム / U-15）だけは、地と線は同じまま
   色の点で見分けられるようにする（塗り分けると2種類のタグが別デザインに見える）*/
.news-archive .news-item__team-tag{
  display:inline-flex; align-items:center; gap:6px;
}
.news-archive .news-item__team-tag::before{
  content:""; width:7px; height:7px; border-radius:50%;
  background:var(--tag-color, var(--vio-violet));
  /* 紫は暗地で沈むので、外側に淡い縁を付けて点として見えるようにする */
  box-shadow:0 0 0 1px rgba(255,255,255,.35);
  flex-shrink:0;
}

/* ---- 42-4 タイトル・抜粋 ----
   一覧の見出しは h2。32章の body:not(.home) main h2 / p（色の一括指定）に
   負けるため、ここで明示的に戻す。 */
.news-archive .news-item__title{
  color:#fff; font-weight:700; font-size:1.02rem; line-height:1.55; margin-top:8px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.news-archive .news-item__link:hover .news-item__title{ color:var(--vio-gold-hi); }
.news-archive .news-item__excerpt{
  color:rgba(255,255,255,.58); font-size:.85rem; line-height:1.7; margin:8px 0 0;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}

/* ---- 42-5 下部のリスト（ハイブリッドの後半）----
   カードは上部の最大3枚だけ。それ以降は同じカードを横に倒した行にする。
     左  … サムネイル（カードと同じ 16:10）
     右上 … 日付＋タグ  右下 … タイトル
   並びも見た目もトップのお知らせカード（.news-item）と同じ言語で、
   縦に伸びすぎないよう横組みにしただけ、という位置づけ。
   面は敷かずボーダーの区切りだけで並べ、上のカードの面と競合させない。
   ホバーは白 4.5% の淡い地＋左端に立つ金の縦線だけの控えめなハイライト。 */
/* 32章の body:not(.home) main > div > section に紫の面が入るので、
   ここは面を持たない「区切り線だけのリスト」に戻す（クラス2つで上書き）。
   クラス名も .news-list / .news-row ではなく news-line 系にしている。
   前者は親テーマ（.news-list は max-width:800px）とトップの一覧で
   既に使われていて、当たると幅と矢印の見た目が壊れるため。 */
.news-archive .news-archive-list{
  background:transparent;
  padding:0;
  margin-top:clamp(40px, 5.5vw, 64px);
}

.news-archive .news-line-list{
  list-style:none; margin:0; padding:0;
}
.news-archive .news-line{
  border-top:1px solid rgba(255,255,255,.09);
}
.news-archive .news-line:last-child{
  border-bottom:1px solid rgba(255,255,255,.09);
}
.news-archive .news-line__link{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:0 18px;
  padding:16px 14px;
  color:inherit; text-decoration:none;
  transition:background .2s ease;
}

/* サムネイル：カードと同じ 16:10・角丸4px。未設定時の共通画像は35章が入れる。
   幅は固定で、右のテキスト側だけが可変（minmax(0,1fr)）になるようにする。 */
.news-archive .news-line__thumb{
  position:relative; display:block;
  width:clamp(110px, 14vw, 150px);
  aspect-ratio:16 / 10;
  border-radius:4px; overflow:hidden;
  background:linear-gradient(135deg, var(--vio-violet), var(--vio-ink));
}
.news-archive .news-line__thumb img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .5s ease;
}
.news-archive .news-line__link:hover .news-line__thumb img,
.news-archive .news-line__link:focus-visible .news-line__thumb img{
  transform:scale(1.05);
}
.news-archive .news-line__ph{ position:absolute; inset:0; display:block; }

/* テキスト側：1行目に日付＋タグ、2行目にタイトル（カードと同じ順序）*/
.news-archive .news-line__body{
  display:flex; flex-direction:column; gap:8px; min-width:0;
}
.news-archive .news-line__meta{
  display:flex; align-items:center; flex-wrap:wrap; gap:8px 10px;
}
/* ホバー時に立つ左端の金の縦線 */
.news-archive .news-line__link::before{
  content:"";
  position:absolute; left:0; top:0; bottom:0; width:2px;
  background:linear-gradient(180deg,var(--vio-gold),var(--vio-gold-hi));
  transform:scaleY(0); transform-origin:center;
  transition:transform .22s ease;
}
.news-archive .news-line__link:hover,
.news-archive .news-line__link:focus-visible{
  background:rgba(255,255,255,.045);
}
.news-archive .news-line__link:hover::before,
.news-archive .news-line__link:focus-visible::before{
  transform:scaleY(1);
}

/* 日付はカード（.news-item__date）と同じ書体・大きさ */
.news-archive .news-line__date{
  font-family:var(--font-crest);
  font-size:.9rem; letter-spacing:.06em;
  color:var(--vio-gold-hi);
  white-space:nowrap;
}
/* タグもカード（42-3）と同一の値：暗い半透明＋白の細線＋角丸4px */
.news-archive .news-line__cat,
.news-archive .news-line__team-tag{
  display:inline-block;
  font-size:.75rem; font-weight:700; letter-spacing:.04em; line-height:1.4;
  color:#fff;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.22);
  padding:4px 10px; border-radius:4px; white-space:nowrap;
}
.news-archive .news-line__team-tag{
  display:inline-flex; align-items:center; gap:6px;
}
.news-archive .news-line__team-tag::before{
  content:""; width:7px; height:7px; border-radius:50%;
  background:var(--tag-color, var(--vio-violet));
  box-shadow:0 0 0 1px rgba(255,255,255,.35);
  flex-shrink:0;
}
/* タイトルはカードと同じく2行でクランプ。
   32章の body:not(.home) main 系の色指定に負けるので白を明示する。 */
.news-archive .news-line__title{
  min-width:0;
  color:#fff; font-size:1rem; font-weight:700; line-height:1.55;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  transition:color .2s ease;
}
.news-archive .news-line__link:hover .news-line__title,
.news-archive .news-line__link:focus-visible .news-line__title{
  color:var(--vio-gold-hi);
}
.news-archive .news-line__arrow{
  display:inline-flex; color:rgba(255,255,255,.35);
  transition:color .2s ease, transform .2s ease;
}
.news-archive .news-line__link:hover .news-line__arrow,
.news-archive .news-line__link:focus-visible .news-line__arrow{
  color:var(--vio-gold-hi); transform:translateX(3px);
}

/* SP：サムネを小さくし、幅を食う矢印は落とす（行全体がリンクなので情報は減らない）*/
@media (max-width:767px){
  .news-archive .news-line__link{
    gap:0 14px;
    padding:14px 10px;
  }
  .news-archive .news-line__thumb{ width:96px; }
  .news-archive .news-line__body{ gap:6px; }
  .news-archive .news-line__meta{ gap:6px 8px; }
  .news-archive .news-line__date{ font-size:.82rem; }
  .news-archive .news-line__cat,
  .news-archive .news-line__team-tag{ font-size:.68rem; padding:3px 8px; }
  .news-archive .news-line__title{ font-size:.92rem; }
  .news-archive .news-line__arrow{ display:none; }
}

/* ---- 42-6 カテゴリーフィルタータブ ----
   トップのお知らせフィルター（.news-filter__btn）と同じピル。
   選択中は金のグラデーション＋黒文字。 */
/* margin は bottom だけを触る。親テーマは SP で margin-inline:-20px を当てて
   画面端まで横スクロールさせているので、shorthand で潰すと SP の見え方が戻る。 */
.news-archive .cat-filter{
  gap:10px;
  margin-bottom:clamp(24px, 3.5vw, 40px);
}
.news-archive .cat-filter .cat-filter__item{
  font-family:var(--font-display);
  font-size:.82rem; font-weight:700; letter-spacing:.04em;
  color:rgba(255,255,255,.72);
  background:transparent;
  border:1px solid rgba(255,255,255,.25);
  padding:8px 18px; border-radius:999px;
  transition:color .2s, background .2s, border-color .2s;
}
.news-archive .cat-filter .cat-filter__item:hover{
  color:#fff; border-color:rgba(205,164,81,.7); background:rgba(255,255,255,.05);
}
.news-archive .cat-filter .cat-filter__item--active,
.news-archive .cat-filter .cat-filter__item--team.cat-filter__item--active{
  color:var(--vio-ink);
  background:linear-gradient(135deg,var(--vio-gold),var(--vio-gold-hi));
  border-color:var(--vio-gold);
}
.news-archive .cat-filter .cat-filter__item--active:hover{ color:var(--vio-ink); }
/* チームタブの色の点は出さない（金のピルだけで選択状態は伝わるため）。
   親テーマ archive.css の .cat-filter__dot がマークアップ側に残っても効かないよう、
   このスコープでは常に非表示にしておく。 */
.news-archive .cat-filter .cat-filter__dot{ display:none; }
/* 投稿数（カウント）はタグ名だけを見せたいので出さない。
   .cat-filter__dot と同様、親テーマ側のマークアップが残っても効かないよう非表示にしておく。 */
.news-archive .cat-filter .cat-filter__count{ display:none; }
.news-archive .cat-filter .cat-filter__sep{
  background:rgba(255,255,255,.18);
}

/* ---- 42-7 ページネーション ----
   .page-numbers は <ul> にも <a>/<span> にも付くので、面の指定は
   必ず a / span 側に当てる（ul に当てると帯が1本増えて見える）。 */
.news-archive .archive-pagination{ margin-top:clamp(36px, 5vw, 56px); }
/* 32章が .page-numbers（＝ul も含む）に面を敷くため、入れ物側は透明に戻す */
.news-archive .archive-pagination ul.page-numbers{
  background:transparent; border:0;
}
.news-archive .archive-pagination .page-numbers a,
.news-archive .archive-pagination .page-numbers span{
  color:rgba(255,255,255,.82);
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.14);
}
.news-archive .archive-pagination .page-numbers a:hover{
  color:#fff;
  background:rgba(255,255,255,.085);
  border-color:rgba(205,164,81,.6);
}
.news-archive .archive-pagination .page-numbers .current{
  color:var(--vio-ink);
  background:linear-gradient(135deg,var(--vio-gold),var(--vio-gold-hi));
  border-color:var(--vio-gold);
}
.news-archive .archive-pagination .page-numbers .prev,
.news-archive .archive-pagination .page-numbers .next{
  color:var(--vio-gold-hi);
  background:transparent;
  border-color:transparent;
}
.news-archive .archive-pagination .page-numbers .prev:hover,
.news-archive .archive-pagination .page-numbers .next:hover{
  color:#fff;
  background:rgba(255,255,255,.06);
}
.news-archive .archive-pagination .page-numbers .dots{
  color:rgba(255,255,255,.5);
  background:transparent;
  border-color:transparent;
}

/* ---- 42-8 記事なしの状態 ----
   親は primary（紫）の 6% 塗り＋紫アイコンで、暗地だと何も見えない。 */
.news-archive .archive-empty__icon{
  background:rgba(122,79,216,.16);
  color:var(--vio-gold-hi);
}
.news-archive .archive-empty__text{ color:rgba(255,255,255,.7); }

/* SP は1枚あたり画面の半分しか無いので、カードの中身を2列に収まる大きさへ落とす。
   タイトル・抜粋はどちらも2行クランプなので、縮めても行数は増えない。 */
@media (max-width:560px){
  .news-archive-grid{ gap:18px 12px; }
  .news-archive-grid .news-item__meta{ gap:5px 6px; margin-top:10px; }
  .news-archive-grid .news-item__date{ font-size:.76rem; letter-spacing:.04em; }
  .news-archive-grid .news-item__cat,
  .news-archive-grid .news-item__team-tag{ font-size:.62rem; padding:2px 6px; }
  .news-archive-grid .news-item__team-tag{ gap:4px; }
  .news-archive-grid .news-item__team-tag::before{ width:5px; height:5px; }
  .news-archive-grid .news-item__title{ font-size:.86rem; line-height:1.5; margin-top:6px; }
  .news-archive-grid .news-item__excerpt{ font-size:.74rem; line-height:1.6; margin-top:6px; }
  .news-archive-grid .news-item__badge{ font-size:.58rem; top:7px; left:7px; }
}

@media (prefers-reduced-motion:reduce){
  .news-archive .news-item,
  .news-archive .news-item:hover{ transition:none; transform:none; }
  .news-archive .news-line__thumb img,
  .news-archive .news-line__link:hover .news-line__thumb img{ transition:none; transform:none; }
}


/* ============================================================
   43) スケジュールページ（page-schedule.php／子テーマで上書き）

   予定はGoogleカレンダーで運用し、ページはAPIで読んでサーバー側で組み立てる
   （inc/schedule-gcal-source.php）。表示はかつてのCPT一覧と同じく
   「月カレンダー（上）＋ その月の予定リスト（下）」の二段。
   カレンダーは PC でセル内に予定チップを出し、SP では日付＋色ドットだけに落とす。
   同じマークアップのまま表示量だけ変えるので、テンプレートに分岐は要らない。

   色の使い分け（サイト共通のルールに合わせる）：
     金（--vio-gold）… 「試合」と「今日」だけ。最も目立たせたい2つに限定する。
     紫（--vio-royal）… 練習。面や罫線のアクセント。
     水（#3fb6c8）   … イベント。紫・金と混ざらない色を1つだけ持たせる。
   ============================================================ */
.schedule-archive{
  /* 月送り（43-2）をヘッダー直下に貼り付けるための寸法。
     --sch-monthnav-h        … 月送りの高さ（実測値）。下のリストのアンカー
                               （.schedule-day の scroll-margin-top）にだけ使う。
                               ここで高さ自体を決めないこと（高さは padding で決まる）。
     --sch-monthnav-clearance … ヘッダー中央のエンブレムが下へ垂れ下がる分の逃がし。
                               PCで約30px／SPで約17px はみ出し、月送りの中央に置いた
                               年月がその裏に隠れるため、上の padding に足して避ける。
                               （.about-nav の --about-nav-clearance と同じ考え方） */
  --sch-monthnav-h:106px;
  --sch-monthnav-clearance:10px;

  --sch-panel:rgba(255,255,255,.045);
  --sch-panel-hi:rgba(255,255,255,.075);
  --sch-line:rgba(255,255,255,.12);
  --sch-line-gold:rgba(205,164,81,.34);
  --sch-text:#e6e9f2;
  --sch-muted:rgba(255,255,255,.62);
  --sch-sun:#e8919f;
  --sch-sat:#8fc4e8;
}

/* ---- 43-1 絞り込み（チームタブ）----
   タブの見た目は 42章（お知らせ一覧）と同じ。暗地の上で金＝選択中に統一する。 */
.schedule-filters{
  display:flex; flex-wrap:wrap; align-items:center;
  justify-content:space-between; gap:16px 24px;
  margin-bottom:clamp(20px, 3vw, 32px);
}
.schedule-filters .cat-filter-group{ flex:1 1 auto; }
.schedule-filters .cat-filter{ gap:10px; margin-bottom:0; }
.schedule-archive .cat-filter .cat-filter__item{
  font-family:var(--font-display);
  font-size:.82rem; font-weight:700; letter-spacing:.04em;
  color:rgba(255,255,255,.72);
  background:transparent;
  border:1px solid rgba(255,255,255,.25);
  padding:8px 18px; border-radius:999px;
  transition:color .2s, background .2s, border-color .2s;
}
.schedule-archive .cat-filter .cat-filter__item:hover{
  color:#fff; border-color:rgba(205,164,81,.7); background:rgba(255,255,255,.05);
}
.schedule-archive .cat-filter .cat-filter__item--active,
.schedule-archive .cat-filter .cat-filter__item--team.cat-filter__item--active,
.schedule-archive .cat-filter .cat-filter__item--colored.cat-filter__item--active{
  color:var(--vio-ink);
  background:linear-gradient(135deg,var(--vio-gold),var(--vio-gold-hi));
  border-color:var(--vio-gold);
}
.schedule-archive .cat-filter .cat-filter__item--active:hover{ color:var(--vio-ink); }
.schedule-archive .cat-filter .cat-filter__count{
  font-size:.7rem; font-weight:700;
  background:rgba(255,255,255,.12);
  padding:1px 7px; border-radius:100px;
}
.schedule-archive .cat-filter .cat-filter__item--active .cat-filter__count{
  background:rgba(13,9,24,.18);
}

/* 種別の凡例（.schedule-legend）は非表示にしたためスタイルも削除した */

/* ---- 43-2 月送り ----
   年月は FV や試合カードと同じコンデンス体（--font-num）。
   左右の矢印は「隣の月の数字」も出して、今どちらへ動くのかを迷わせない。

   スクロールするとヘッダーの真下に貼り付く（position:sticky）。
   カレンダーを下まで見ていっても「今どの月を見ているか」と月送りが常に手元にある。
   仕組みは 38章の .about-nav と同じで、位置は --header-total-h から引く。

   見た目は貼り付いていてもいなくても同じ「全幅のフラットなバー」。
   以前はカード（角丸＋金枠＋左右余白）から貼り付いた瞬間だけバーへ切り替えて
   いたが、切り替わりが目についたので常にバーの姿に統一した。 */
.schedule-monthnav{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px;

  /* margin-inline の負値で画面幅いっぱいへ広げ、同じ量を padding-inline で
     戻して中身は .container の幅に揃える（42章 .fcv-cta と同じ手）。
     上の padding に足している --sch-monthnav-clearance は、ヘッダー中央の
     エンブレムが下へ垂れ下がる分の逃がし（変数の説明は 43章の冒頭）。 */
  margin-inline:calc(50% - 50vw);
  padding-block:calc(clamp(14px, 2.2vw, 22px) + var(--sch-monthnav-clearance, 0px)) clamp(14px, 2.2vw, 22px);
  padding-inline:calc(50vw - 50%);

  /* 背景はヘッダーと地続きに見えるよう黒（--vio-ink）。貼り付いている間は
     裏をカレンダーが通るので透けさせない（38章の .about-nav は半透明＋ぼかし
     だが、こちらは真下を文字が流れるため文字が滲んで見える）。
     枠線は下の金ヘアラインだけ（ヘッダー1段目と同じ線）。 */
  background:var(--vio-ink);
  border:0;
  border-bottom:1px solid rgba(205,164,81,.30);

  /* ── ヘッダー直下に貼り付く（.about-nav と同じ仕組み。38章を参照）──
     top はヘッダーの高さ（--header-total-h：PC 93px／SP 53px）。
     z-index はヘッダー(1000)より下＝SPでメニューを開いたときは隠れる。 */
  position:sticky;
  top:var(--header-total-h, 80px);
  z-index:900;
  box-shadow:0 10px 24px rgba(0,0,0,.35);
}

/* 100vw はスクロールバーの幅を含むため、環境によっては全幅バーが数pxはみ出す。
   横スクロールバーが出ないよう main で切り落とす（42章の .fcv-cta と同じ理由）。
   clip はスクロールコンテナを作らないので、中の position:sticky は効いたまま。 */
.schedule-archive{ overflow-x:clip; }
@media (max-width:1024px){
  /* SPはヘッダーが1段になり、エンブレムのはみ出しも約17pxに縮む */
  .schedule-archive{ --sch-monthnav-h:100px; --sch-monthnav-clearance:6px; }
}
.schedule-monthnav__arrow{
  display:inline-flex; align-items:center; gap:6px;
  padding:9px 14px; border-radius:999px;
  font-family:var(--font-display); font-size:.82rem; font-weight:700; letter-spacing:.04em;
  color:rgba(255,255,255,.78);
  background:rgba(255,255,255,.06);
  border:1px solid var(--sch-line);
  text-decoration:none;
  transition:color .2s, background .2s, border-color .2s, transform .2s;
}
.schedule-monthnav__arrow:hover{
  color:var(--vio-ink); background:var(--vio-gold); border-color:var(--vio-gold);
  transform:translateY(-1px);
}
.schedule-monthnav__current{
  display:flex; align-items:baseline; justify-content:center; gap:10px;
  line-height:1;
}
.schedule-monthnav__year{
  font-family:var(--font-num); font-size:1.1rem; letter-spacing:.08em;
  font-weight:400;                       /* Bebas Neue はウェイト400のみ */
  color:var(--vio-gold-hi);
}
.schedule-monthnav__month{
  font-family:var(--font-num);
  font-size:clamp(2.1rem, 5vw, 3.1rem); font-weight:400; letter-spacing:.02em;
  color:#fff;
}
.schedule-monthnav__month small{
  font-family:var(--font-display);
  font-size:.9rem; font-weight:600; margin-left:3px;
  color:rgba(255,255,255,.75);
}
.schedule-monthnav__en{
  font-family:var(--font-crest);
  font-size:.72rem; font-weight:600; letter-spacing:.22em;
  color:rgba(255,255,255,.42);
  text-transform:uppercase;
}
.schedule-thismonth{
  margin:12px 0 0; text-align:center;
  font-size:.82rem;
}
.schedule-thismonth a{
  color:var(--vio-gold-hi); text-decoration:none;
  border-bottom:1px solid rgba(205,164,81,.5); padding-bottom:2px;
}
.schedule-thismonth a:hover{ color:#fff; border-bottom-color:#fff; }

/* ---- 43-3 月カレンダー ----
   セルは grid の 7 列。行の高さは PC だけ確保し（チップが入るため）、
   SP は日付＋ドットが収まる最小限に落とす。 */
.schedule-calendar{
  margin-top:clamp(20px, 3vw, 32px);
  background:rgba(13,9,24,.55);
  border:1px solid var(--sch-line);
  border-radius:14px;
  overflow:hidden;
}
/* 列は必ず minmax(0,1fr)。既定の minmax(auto,1fr) だと、セル内のチップや
   TODAYバッジの最小幅が列幅の下限になり、SPで7列が画面からはみ出す（実測）。 */
.schedule-calendar__head{
  display:grid; grid-template-columns:repeat(7, minmax(0, 1fr));
  background:rgba(60,35,120,.55);
  border-bottom:1px solid var(--sch-line);
}
.schedule-calendar__dow{
  padding:10px 4px; text-align:center;
  font-family:var(--font-display);
  font-size:.78rem; font-weight:700; letter-spacing:.08em;
  color:rgba(255,255,255,.82);
}
.schedule-calendar__dow--sun{ color:var(--sch-sun); }
.schedule-calendar__dow--sat{ color:var(--sch-sat); }

.schedule-calendar__grid{
  display:grid; grid-template-columns:repeat(7, minmax(0, 1fr));
  gap:1px; background:var(--sch-line);
}
.schedule-cell{
  display:flex; flex-direction:column; gap:6px;
  min-width:0;
  min-height:112px; padding:8px 8px 10px;
  background:rgba(13,9,24,.92);
  text-decoration:none; color:inherit;
  transition:background .2s, box-shadow .2s;
}
.schedule-cell--blank{ background:rgba(255,255,255,.02); min-height:0; }

/* 予定が1件も無い月は、チップの入る高さを確保する意味がない。
   6行×112px の空カレンダーで画面が埋まると「読み込みに失敗した」ように見えるため詰める。 */
.schedule-calendar--empty .schedule-cell{ min-height:56px; }
.schedule-cell__num{
  display:flex; align-items:center; gap:6px;
  font-family:var(--font-num);
  font-weight:400;                       /* Bebas Neue はウェイト400のみ */
  font-size:1.05rem; letter-spacing:.04em;
  color:rgba(255,255,255,.86);
}
.schedule-cell--sun .schedule-cell__num{ color:var(--sch-sun); }
.schedule-cell--sat .schedule-cell__num{ color:var(--sch-sat); }

/* 予定のある日だけリンクになる。押すと下のリストの該当日へ飛ぶ。 */
a.schedule-cell:hover{ background:var(--sch-panel-hi); }
a.schedule-cell:focus-visible{
  outline:2px solid var(--vio-gold); outline-offset:-2px;
}

/* 今日：金の内枠。金はここと「試合」だけに使う。 */
.schedule-cell--today{
  background:rgba(205,164,81,.10);
  box-shadow:inset 0 0 0 2px var(--vio-gold);
}
.schedule-cell--today .schedule-cell__num{ color:var(--vio-gold-hi); }
.schedule-cell__today{
  font-family:var(--font-display);
  font-size:.55rem; font-weight:700; letter-spacing:.1em;
  color:var(--vio-ink); background:var(--vio-gold);
  padding:2px 5px; border-radius:3px;
}

.schedule-cell__dots{ display:none; gap:4px; flex-wrap:wrap; }
.schedule-cell__dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--vio-royal);
}

.schedule-cell__chips{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.schedule-chip{
  display:flex; align-items:baseline; gap:5px;
  padding:3px 6px 3px 7px;
  border-radius:4px;
  border-left:3px solid var(--vio-royal);
  background:color-mix(in srgb, #7a4fd8 20%, rgba(13,9,24,.9));
  font-size:.68rem; line-height:1.3;
  color:rgba(255,255,255,.92);
  min-width:0;
}
.schedule-chip__time{
  font-family:var(--font-num); font-size:.72rem; letter-spacing:.02em;
  font-weight:400;                       /* Bebas Neue はウェイト400のみ */
  color:rgba(255,255,255,.75); flex:0 0 auto;
}
.schedule-chip__title{
  min-width:0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.schedule-chip--more{
  border-left-color:transparent; background:transparent;
  color:var(--sch-muted); font-size:.66rem; padding-left:3px;
}

/* ---- 43-4 予定リスト ----
   左に日付バッジ、右に予定カード。カレンダーから飛んで来る先なので、
   スクロール位置がヘッダーに隠れないよう scroll-margin を取る。 */
.schedule-list{ margin-top:clamp(32px, 4.5vw, 56px); }
.schedule-list__heading{
  display:flex; align-items:baseline; gap:14px;
  margin:0 0 20px; padding-bottom:12px;
  border-bottom:1px solid var(--sch-line-gold);
}
.schedule-list__heading-en{
  font-family:var(--font-crest);
  font-size:.78rem; font-weight:600; letter-spacing:.24em;
  color:var(--vio-gold); text-transform:uppercase;
}
.schedule-list__heading-ja{
  display:flex; align-items:center; gap:10px;
  font-size:1.05rem; font-weight:700; color:#fff;
}
.schedule-day{
  display:grid; grid-template-columns:96px 1fr; gap:20px;
  padding:20px 0;
  border-bottom:1px solid rgba(255,255,255,.08);
  /* カレンダーの日付から飛んでくるアンカー。貼り付いたヘッダーと月送りの
     両方をよけた位置に止める（高さは上の :root と .schedule-archive の変数）。 */
  scroll-margin-top:calc(var(--header-total-h, 80px) + var(--sch-monthnav-h, 106px) + 16px);
}
.schedule-day:last-child{ border-bottom:0; }
.schedule-day__date{
  display:flex; flex-direction:column; align-items:center; gap:2px;
  padding-top:4px;
}
.schedule-day__num{
  font-family:var(--font-num);
  font-weight:400;                       /* Bebas Neue はウェイト400のみ */
  font-size:2.3rem; line-height:1; color:#fff;
}
.schedule-day__dow{
  font-family:var(--font-display);
  font-size:.7rem; font-weight:700; letter-spacing:.14em;
  color:var(--sch-muted);
}
.schedule-day__date--sun .schedule-day__num,
.schedule-day__date--sun .schedule-day__dow{ color:var(--sch-sun); }
.schedule-day__date--sat .schedule-day__num,
.schedule-day__date--sat .schedule-day__dow{ color:var(--sch-sat); }
.schedule-day__today{
  margin-top:4px;
  font-family:var(--font-display);
  font-size:.58rem; font-weight:700; letter-spacing:.1em;
  color:var(--vio-ink); background:var(--vio-gold);
  padding:2px 7px; border-radius:3px;
}
.schedule-day--today .schedule-day__num{ color:var(--vio-gold-hi); }

.schedule-day__items{
  list-style:none; margin:0; padding:0;
  display:flex; flex-direction:column; gap:12px;
}
.schedule-item{
  position:relative;
  padding:16px 18px 16px 22px;
  background:var(--sch-panel);
  border:1px solid var(--sch-line);
  border-left:3px solid var(--vio-royal);
  border-radius:10px;
  transition:background .2s, border-color .2s;
}
.schedule-item:hover{ background:var(--sch-panel-hi); }
.schedule-item__head{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px;
  margin-bottom:8px;
}
/* 種別バッジ（.schedule-item__type）は種別分類をやめたため削除した */
.schedule-item__team{
  font-size:.7rem; font-weight:600; letter-spacing:.04em;
  color:var(--sch-muted);
  background:rgba(255,255,255,.07);
  padding:3px 10px; border-radius:999px;
}
.schedule-item__title{
  margin:0 0 10px; font-size:1.02rem; font-weight:700; line-height:1.5;
  color:#fff;
}
.schedule-item__meta{
  list-style:none; margin:0; padding:0;
  display:flex; flex-wrap:wrap; gap:6px 20px;
}
.schedule-item__meta-row{
  display:inline-flex; align-items:center; gap:7px;
  font-size:.84rem; color:var(--sch-text);
}
.schedule-item__meta-row svg{ color:var(--vio-gold); flex:0 0 auto; }
.schedule-item__note{
  margin:10px 0 0; padding-top:10px;
  border-top:1px dashed rgba(255,255,255,.14);
  font-size:.8rem; color:var(--sch-muted);
}
.schedule-item__body{
  margin:8px 0 0; font-size:.84rem; line-height:1.8; color:var(--sch-muted);
}

/* ---- 43-5 予定なしの月 ---- */
.schedule-empty{ margin-top:clamp(28px, 4vw, 44px); }
.schedule-empty__nav{
  display:flex; justify-content:center; align-items:center; gap:12px;
  margin-top:14px; font-size:.84rem;
}
.schedule-empty__nav a{
  color:var(--vio-gold-hi); text-decoration:none;
  border-bottom:1px solid rgba(205,164,81,.5); padding-bottom:2px;
}
.schedule-empty__nav a:hover{ color:#fff; border-bottom-color:#fff; }
.schedule-empty__nav span{ color:rgba(255,255,255,.3); }

/* ---- 43-6 日付の数字を金から戻す ----
   32章の `body:not(.home) main [class*="__num"]{ color:金 }` が
   .schedule-cell__num / .schedule-day__num にも当たり、カレンダーの日付が
   全部金になっていた（実測）。金は「試合」と「今日」だけに使うルールなので白へ戻す。

   32章のセレクタは (0,2,2)。上書きにはクラス3つ以上が要る
   （2クラスだと要素セレクタの分だけ負ける）。36-2 と同じ回避方法。 */
.schedule-archive .schedule-calendar .schedule-cell__num{ color:rgba(255,255,255,.86); }
.schedule-archive .schedule-calendar .schedule-cell--sun .schedule-cell__num{ color:var(--sch-sun); }
.schedule-archive .schedule-calendar .schedule-cell--sat .schedule-cell__num{ color:var(--sch-sat); }
.schedule-archive .schedule-calendar .schedule-cell--today .schedule-cell__num{ color:var(--vio-gold-hi); }

.schedule-archive .schedule-list .schedule-day__num{ color:#fff; }
.schedule-archive .schedule-list .schedule-day__date--sun .schedule-day__num{ color:var(--sch-sun); }
.schedule-archive .schedule-list .schedule-day__date--sat .schedule-day__num{ color:var(--sch-sat); }
.schedule-archive .schedule-list .schedule-day--today .schedule-day__num{ color:var(--vio-gold-hi); }

/* 同じく 32章の [class*="__en"] が金を当ててくる。月名（AUGUST）は
   年月の添え物なので、金ではなく控えめな白のまま出す。 */
.schedule-archive .schedule-monthnav .schedule-monthnav__en{ color:rgba(255,255,255,.42); }

/* ---- 43-7 タブレット以下 ----
   セル内のチップは幅が足りず「…」だらけになるので、色ドットへ切り替える。
   予定の中身は下のリストで読ませる（カレンダーは月全体の当たりを付ける道具に徹する）。 */
@media (max-width:900px){
  .schedule-cell{ min-height:64px; padding:6px 5px 8px; align-items:center; }
  .schedule-cell__num{ font-size:.95rem; flex-direction:column; gap:2px; }
  .schedule-cell__chips{ display:none; }
  .schedule-cell__dots{ display:flex; justify-content:center; }
  /* TODAYバッジは出さない。1マスに「数字・バッジ・ドット」の3段が入ると
     その週だけ行が高くなり、カレンダーの升目が不揃いに見えるため。
     今日であることは金の内枠と金の数字で足りる。 */
  .schedule-cell__today{ display:none; }
}

@media (max-width:768px){
  .schedule-filters{ flex-direction:column; align-items:flex-start; gap:14px; }
  /* 矢印の「7月／9月」ラベルを落とすぶん、月送りが1行に収まって低くなる */
  .schedule-archive{ --sch-monthnav-h:76px; }
  /* 左右は全幅バーの padding-inline を保つため上下だけ詰める */
  .schedule-monthnav{ padding-block:calc(14px + var(--sch-monthnav-clearance, 0px)) 14px; }
  .schedule-monthnav__arrow-label{ display:none; }
  .schedule-monthnav__arrow{ padding:9px 11px; }

  .schedule-day{ grid-template-columns:1fr; gap:12px; padding:18px 0; }
  .schedule-day__date{
    flex-direction:row; align-items:baseline; gap:10px; padding-top:0;
  }
  .schedule-day__num{ font-size:1.7rem; }
  .schedule-day__today{ margin-top:0; }
}

@media (max-width:560px){
  .schedule-calendar__dow{ padding:8px 2px; font-size:.7rem; }
  .schedule-cell{ min-height:56px; }
  .schedule-cell__dot{ width:6px; height:6px; }
  .schedule-list__heading{ flex-direction:column; gap:6px; align-items:flex-start; }
  .schedule-item{ padding:14px 14px 14px 18px; }
  .schedule-item__title{ font-size:.96rem; }
}

@media (prefers-reduced-motion:reduce){
  .schedule-monthnav__arrow,
  .schedule-monthnav__arrow:hover,
  .schedule-cell,
  .schedule-item{ transition:none; transform:none; }
}


/* ---- 43-8 設定前の案内とiframe ----
   Googleカレンダーの設定が済んでいないときだけ出る案内（管理者にのみ表示される）。
   親テーマ page-schedule.css の配色は白地想定なので、暗地に合わせて上書きする。

   .gcal-iframe-wrap はチームトップ（page-team-category.php）の「今後の予定」。
   スケジュールページでも、APIキーが未設定のあいだは同じ埋め込みを暫定で出す。 */
.schedule-archive .cal-setup-notice{
  margin-top:clamp(24px, 3.5vw, 40px);
  padding:20px 22px;
  border:1px solid var(--lp-line-soft);
  background:rgba(255,255,255,.045);
  color:var(--lp-muted);
}
.schedule-archive .cal-setup-notice strong{ color:var(--vio-gold-hi); }
.schedule-archive .cal-setup-notice p{ margin:0 0 8px; font-size:.86rem; line-height:1.8; }
.schedule-archive .cal-setup-notice p:last-child{ margin-bottom:0; }

.schedule-archive .gcal-iframe-wrap,
body.page-template-page-team-category .gcal-iframe-wrap{
  border:1px solid var(--lp-line);
  border-radius:0;
}


/* ============================================================
   44) トップページ共通のCTAリンク（.fixtures-link）

   親テーマの .btn はカスタマイザーの「斜めカット（slanted）」で
   clip-path の平行四辺形＋白地の疑似要素が乗り、暗色セクションの中で
   面積・明度ともに主役級になってしまう。各セクションはカード（試合・
   お知らせ・選手など）が主役なので、CTAは「細い白アウトライン＋矢印」の
   控えめな導線に統一する。
   .btn を使っていないので、カスタマイザー側のインラインCSSとは競合しない。
   試合セクションで先に導入したスタイルを、トップ全セクション共通に昇格。
   下層ページのCTA（50章）もこの意匠に揃えているので、名前は "トップページ
   共通" のままだがサイト全体のCTAリンクだと思ってよい。
   ============================================================ */
.fixtures-link{
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding:11px 22px;
  border:1px solid rgba(255,255,255,.32);
  background:transparent;
  color:#fff;
  text-decoration:none;
  font-family:var(--font-display);
  font-size:.86rem;
  font-weight:600;
  letter-spacing:.12em;
  line-height:1;
  text-indent:.12em;                 /* letter-spacing 分の右寄りを相殺 */
  transition:border-color .25s ease, background-color .25s ease, color .25s ease;
}
/* 矢印：CSSで描くシェブロン（>）。ゴールドでクラブカラーの気配だけ残す */
.fixtures-link__arrow{
  width:6px;
  height:6px;
  border-top:1.5px solid var(--vio-gold);
  border-right:1.5px solid var(--vio-gold);
  transform:rotate(45deg);
  transition:transform .25s ease, border-color .25s ease;
}
.fixtures-link:hover,
.fixtures-link:focus-visible{
  border-color:rgba(255,255,255,.9);
  background:rgba(255,255,255,.08);
  color:#fff;
}
.fixtures-link:hover .fixtures-link__arrow,
.fixtures-link:focus-visible .fixtures-link__arrow{
  transform:rotate(45deg) translate(2px, -2px);   /* 45度回転済みなので右移動は x+/y− */
  border-color:var(--vio-gold-hi);
}

/* 各セクション下部の CTA 枠（親テーマの .section__cta）に置いた場合。
   .section__cta は text-align:center なので inline-flex はそのまま中央に乗る */
.section .section__cta .fixtures-link{ text-decoration:none; }

/* 下層ページでは 32章の「body:not(.home) main a:not(.btn) → 金」に捕まって
   文字だけ金になる（.btn を持たないため）。この意匠は白文字＋金の矢印が対なので、
   同じ詳細度（クラス2＋要素3）を積んで白に戻す。セレクタを短くすると金に戻る。 */
body:not(.home) main a.fixtures-link,
body:not(.home) main a.fixtures-link:hover{ color:#fff; }

@media (max-width:560px){
  /* 幅いっぱいには広げず、2つ並んだまま小さく収める */
  .section-fixtures .front-fixtures__cta{ gap:10px; }
  .fixtures-link{
    padding:10px 16px;
    font-size:.8rem;
    letter-spacing:.08em;
    gap:9px;
  }
}

@media (prefers-reduced-motion:reduce){
  .fixtures-link,
  .fixtures-link__arrow{ transition:none; }
  .fixtures-link:hover .fixtures-link__arrow{ transform:rotate(45deg); }
}

/* ============================================================
   45) 下層ページ：チームトップ（page-team-category.php）

   トップチーム（/team-top/）とU-15（/team-u15/）で同じテンプレートを使うため、
   CSSもカテゴリーで分けず body.page-template-page-team-category に一本化する。

   土台は32章（下層ページ共通の暗色化）に乗っている。
     ・main > section の「紺 → 黒」の交互背景
     ・見出しの英字（[class*="__en"]）を金に戻す
   カードは各セクションで既存の部品をそのまま借りているので、ここには持たない：
     試合カード … 12章 .fx-card（テンプレート側で section-fixtures を付けて10章の
                  2カラムレイアウトも借りる）
     選手カード … 15章 .fcv-pl（同じく section-players を付ける）
     選手リスト … 40章 .pl-table（U-15。選手紹介ページと同じ表）
     お知らせ   … 10章 .news-item
     CTAリンク  … 44章 .fixtures-link
   ここで足すのは、このページ固有の部品（ヒーローのクイックファクト／シーズン目標／
   活動データ／概要テーブル／直近の戦績／スケジュール行／募集CTA）だけ。

   クラス名を .tc-* にしているのは、親テーマ版テンプレートの .tcc-*
   （assets/css/page-team-category.css）と衝突させないため。
   親のCSSは読み込まれるが、こちらのマークアップには当たらない。
   ============================================================ */
body.page-template-page-team-category{
  --tc-line:rgba(205,164,81,.30);        /* 金のヘアライン */
  --tc-line-soft:rgba(255,255,255,.10);
  --tc-panel:rgba(255,255,255,.035);
}

/* ── セクションの余白（他の下層ページと同じリズム）── */
body.page-template-page-team-category .tc-section{
  padding:clamp(56px, 7vw, 96px) 0;
}

/* 試合情報だけは、SP（768px以下）で見出しと上下の余白を落とす（2026-08）。
   ページ内ナビの「試合情報」タブで飛ぶと、狭い画面では見出し（Match / 試合情報）が
   タブと同じ言葉の繰り返しになり、上余白まで残るとナビの下に何もない帯だけが
   見えてしまう。見出しごと 0 にしてタブの直後にカードを出す。
   直前のチーム紹介との間隔は、あちらの padding-bottom（56〜96px）が受け持つ。

   下も 0 にする。一覧リンク（.front-fixtures__cta / __col-cta）の下に
   セクションの下余白まで乗ると、次の Players（スタッフ）との間が
   最大 96+96px 空いて「セクションが途中で切れている」ように見えていた。
   次のセクションとの間隔は、あちらの padding-top（56〜96px）が受け持つ。

   PC（769px以上）は他のセクションと同じく見出しあり・上下余白ありに戻す
   （2026-08）。横幅に余裕があるぶんナビと見出しが同時に目に入っても
   重複には見えず、見出しが無いと試合情報だけリズムが崩れて見えるため。 */
@media (max-width:768px){
  body.page-template-page-team-category .tc-section#match .section-heading{ display:none; }
  body.page-template-page-team-category .tc-section#match{
    padding-top:0;
    padding-bottom:0;
  }
}

/* 選手募集（Join Us）も上下の余白を落とす（2026-08）。
   中の .tc-cta は50章の .fcv-cta ＝ 画面端まで届く全幅バナーなので、
   セクションの上下余白（56〜96px）は帯の外側に紫地の帯として残るだけになる。
   直前のスケジュールとの間隔はあちらの padding-bottom（56〜96px）が受け持ち、
   バナー内側の余白は .fcv-cta 自身の padding（48〜84px）が持っているので、
   ここを 0 にしても文字が詰まることはない。

   下も 0。バナーの下に続く「別のチームを見る」(.tc-other) はフッターと
   地続きに見えてよいので、あいだは .tc-other 自身の margin-top（32〜48px）
   ＋ padding-top（24px）だけにする。フッターとの間隔は .tc-other の
   padding-bottom（56〜96px）が受け持つ。 */
body.page-template-page-team-category .tc-section#join{
  padding-top:0;
  padding-bottom:0;
}

/* ============================================================
   45-1-2) チーム紹介の上の写真
   ページ内ナビとチーム紹介のあいだに、そのチームの写真を1枚だけ敷く。
   トップチームは横断幕を掲げた集合写真、U-15 は試合前の円陣（PHP 側で振り分け）。
   角丸・覆い・キャプションは付けない（2026-08 クライアント指定）。
   写真をそのまま見せる帯として置く。

   元写真は 3:2（1567×1045 / 1423×949）。以前は帯の高さを決めて
   object-fit:cover で切っていたが、集合写真の下（横断幕や足元）まで落ちて
   しまうため、写真は必ず全体を出す（2026-08 クライアント指定）。
   フル幅のまま素の比で出すと PC では画面の高さを超えるので、
   object-fit:contain ＋ max-height で「切らずに縮める」。縮んだぶんは
   左右に地の色（--vio-ink）が出るだけで、写真は上下とも欠けない。
   ============================================================ */
body.page-template-page-team-category .tc-photo{
  margin:0;
  width:100%;
  line-height:0;   /* img が inline 扱いのときに下へ出る行間のすき間を消す */
  background-color:var(--vio-ink);
}
body.page-template-page-team-category .tc-photo__img{
  display:block;
  width:100%;
  height:auto;
  /* 画面いっぱいの幅で 3:2 を素の比で出すと縦が伸びすぎるので、
     ここで頭打ちにする。超えた場合だけ contain が働いて写真が縮む。 */
  max-height:min(74vh, 660px);
  object-fit:contain;
}

/* SP は幅が狭く、素の比で出しても縦に伸びすぎない。
   横向きなど画面が低いときのために上限だけ持たせる。 */
@media (max-width:768px){
  body.page-template-page-team-category .tc-photo__img{
    max-height:min(74vh, 420px);
  }
}

/* ============================================================
   45-2) チーム紹介
   ============================================================ */
body.page-template-page-team-category .tc-lead{
  max-width:820px;
  margin:0 auto clamp(36px, 5vw, 56px);
  padding:clamp(24px, 4vw, 40px);
  background:var(--tc-panel);
  border:1px solid var(--tc-line);
  border-left:4px solid var(--vio-gold);
  font-size:clamp(.95rem, 1.4vw, 1.02rem);
  line-height:2.1;
  color:#fff;
}

/* シーズン目標：年を大きく置いた横長のバナー */
body.page-template-page-team-category .tc-goal{
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:clamp(20px, 4vw, 40px);
  max-width:820px;
  margin:0 auto clamp(36px, 5vw, 56px);
  padding:clamp(24px, 4vw, 36px) clamp(24px, 4vw, 40px);
  border:1px solid var(--tc-line);
  /* 募集CTA（39-4章）と同じ斜めの光沢。面としての格を揃える。 */
  background-image:
    linear-gradient(115deg, transparent 44%, rgba(205,164,81,.07) 50%, transparent 56%),
    linear-gradient(160deg, rgba(60,35,120,.85) 0%, rgba(13,9,24,.85) 100%);
}
body.page-template-page-team-category .tc-goal__year{
  font-family:var(--font-num);
  font-weight:400;                       /* Bebas Neue はウェイト400のみ */
  font-size:clamp(2.6rem, 7vw, 4rem);
  line-height:.9;
  letter-spacing:.02em;
  color:var(--vio-gold);
}
body.page-template-page-team-category .tc-goal__label{
  display:block;
  margin-bottom:8px;
  font-family:var(--font-crest);
  font-size:.75rem;
  font-weight:800;
  letter-spacing:.18em;
  text-indent:.18em;
  color:rgba(255,255,255,.55);
}
body.page-template-page-team-category .tc-goal__text{
  margin:0;
  font-size:clamp(1.1rem, 2.6vw, 1.5rem);
  font-weight:700;
  line-height:1.4;
  letter-spacing:.03em;
  color:#fff;
}
body.page-template-page-team-category .tc-goal__note{
  margin:10px 0 0;
  font-size:.84rem;
  line-height:1.7;
  color:var(--lp-muted);
}

/* 活動データ3枚 */
body.page-template-page-team-category .tc-facts{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:16px;
  max-width:820px;
  margin:0 auto clamp(36px, 5vw, 56px);
  padding:0;
  list-style:none;
}
body.page-template-page-team-category .tc-facts__item{
  position:relative;
  padding:24px 22px;
  background:var(--tc-panel);
  border:1px solid var(--tc-line-soft);
  border-top:2px solid var(--vio-gold);
}
body.page-template-page-team-category .tc-facts__en{
  display:block;
  font-family:var(--font-crest);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.18em;
  text-indent:.18em;
  color:var(--vio-gold);
}
body.page-template-page-team-category .tc-facts__label{
  display:block;
  margin-top:2px;
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.08em;
  color:rgba(255,255,255,.62);
}
body.page-template-page-team-category .tc-facts__value{
  margin:12px 0 0;
  font-size:.92rem;
  font-weight:600;
  line-height:1.75;
  color:#fff;
}

/* チーム概要テーブル（募集ページの .rec-table と同じ言語）*/
body.page-template-page-team-category .tc-table-wrap{
  max-width:820px;
  margin-inline:auto;
  background:var(--tc-panel);
  border:1px solid var(--tc-line);
  overflow:hidden;
}
body.page-template-page-team-category .tc-table{
  width:100%;
  border-collapse:collapse;
}
body.page-template-page-team-category .tc-table__row{
  border-bottom:1px solid var(--tc-line-soft);
}
body.page-template-page-team-category .tc-table__row:last-child{ border-bottom:0; }
body.page-template-page-team-category .tc-table__row:hover{ background:rgba(205,164,81,.06); }
body.page-template-page-team-category .tc-table__label{
  width:34%;
  padding:16px 20px;
  text-align:left;
  vertical-align:top;
  background:rgba(13,9,24,.45);
  border-right:1px solid var(--tc-line-soft);
  font-size:.88rem;
  font-weight:700;
  letter-spacing:.04em;
  color:var(--vio-gold);
  white-space:nowrap;
}
body.page-template-page-team-category .tc-table__value{
  padding:16px 20px;
  font-size:.92rem;
  line-height:1.9;
  color:var(--lp-text);
}

/* 管理画面で本文が書かれていた場合 */
body.page-template-page-team-category .tc-content{
  max-width:820px;
  margin:clamp(36px, 5vw, 56px) auto 0;
  font-size:.94rem;
  line-height:2;
}

/* ============================================================
   45-3) 試合情報
   マークアップも見た目もトップページの試合情報セクションと同一にした
   （2026-08）。カードとカラムは 10章／12章をそのまま使うので、
   このページ専用のスタイルは無い。
   ・以前あった戦績バー（.tc-form／直近5試合のW/D/L）は廃止した。
     トップページに無いUIで、縦を伸ばすだけだったため。
   ・SPで2カラムのまま詰めるレイアウトも 12章でトップと共用する。
   ============================================================ */

/* ============================================================
   45-4) 選手一覧
   ============================================================ */
/* ポジション別の内訳。選手紹介ページの .player-summary と同じ役割だが、
   ここは絞り込みではなく表示だけなので軽い帯にする。 */
body.page-template-page-team-category .tc-squad{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
  margin:0 0 clamp(28px, 4vw, 40px);
  padding:0;
  list-style:none;
}
body.page-template-page-team-category .tc-squad__item{
  display:flex;
  align-items:baseline;
  gap:8px;
  min-width:92px;
  padding:12px 18px;
  background:var(--tc-panel);
  border:1px solid var(--tc-line-soft);
}
body.page-template-page-team-category .tc-squad__item--total{
  border-color:var(--tc-line);
  background:rgba(205,164,81,.08);
}
body.page-template-page-team-category .tc-squad__num{
  font-family:var(--font-num);
  font-weight:400;                       /* Bebas Neue はウェイト400のみ */
  font-size:1.6rem;
  line-height:1;
  color:var(--vio-gold);
}
body.page-template-page-team-category .tc-squad__label{
  font-family:var(--font-display);
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.12em;
  color:rgba(255,255,255,.7);
}

/* カードのグリッド。15章の .section-players .players-grid（auto-fill 220px）だと
   このページでは1行が詰まりすぎるので、最小幅を上げて写真を大きく見せる。 */
body.page-template-page-team-category .tc-players__grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(232px, 1fr));
  gap:20px;
}

/* U-15の表（40章）は選手紹介ページのセレクタに閉じているので、ここで同じ値を当てる。
   40章側は body.post-type-archive-player 起点のため、このページには届かない。 */
body.page-template-page-team-category .pl-list__scroll{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  background:var(--tc-panel);
  border:1px solid var(--tc-line-soft);
}
body.page-template-page-team-category .pl-table{
  width:100%;
  min-width:620px;
  table-layout:fixed;
  border-collapse:collapse;
  margin:0;
}
body.page-template-page-team-category .pl-table__th{
  padding:11px 14px;
  text-align:left;
  vertical-align:middle;
  background:rgba(13,9,24,.45);
  border-bottom:1px solid var(--tc-line);
  font-family:var(--font-display);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.14em;
  color:var(--vio-gold);
  white-space:nowrap;
}
body.page-template-page-team-category .pl-table__th--no{ width:72px; text-align:center; }
body.page-template-page-team-category .pl-table__th--pos{ width:104px; }
/* ふりがなの列は 2026-08 に廃止（クライアント指定）。空いた分は経歴に回す。 */
body.page-template-page-team-category .pl-table__th--prev{ width:44%; }
body.page-template-page-team-category .pl-table__row{
  border-bottom:1px solid rgba(255,255,255,.10);
  transition:background-color .15s ease;
}
body.page-template-page-team-category .pl-table__row:last-child{ border-bottom:0; }
body.page-template-page-team-category .pl-table__row:nth-child(even){ background:rgba(255,255,255,.022); }
body.page-template-page-team-category .pl-table__row:hover{ background:rgba(122,79,216,.16); }
body.page-template-page-team-category .pl-table td{
  padding:12px 14px;
  vertical-align:middle;
  color:var(--lp-text);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.page-template-page-team-category .pl-table__no{
  text-align:center;
  font-family:var(--font-num);
  font-variant-numeric:tabular-nums;
  font-weight:400;
  font-size:1.4rem;
  line-height:1.1;
  color:var(--vio-gold);
}
body.page-template-page-team-category main .pl-table__link,
body.page-template-page-team-category .pl-table__player{
  display:block;
  font-weight:600;
  font-size:1rem;
  line-height:1.4;
  color:#fff;
  text-decoration:none;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.page-template-page-team-category main .pl-table__link:hover{ color:var(--vio-gold-hi); }
body.page-template-page-team-category .pl-table__prev{
  font-size:.85rem;
  color:var(--lp-muted);
}
body.page-template-page-team-category .pl-table__empty{ color:rgba(255,255,255,.28); }

/* ポジションバッジ。選手紹介ページ（36章系）と同じ配色に揃える。 */
body.page-template-page-team-category .pl-pos{
  display:inline-block;
  min-width:38px;
  padding:3px 8px;
  text-align:center;
  border-radius:3px;
  font-family:var(--font-display);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--vio-ink);
}
body.page-template-page-team-category .pl-pos--gk{ background:#e8c880; }
body.page-template-page-team-category .pl-pos--df{ background:#7fc7d9; }
body.page-template-page-team-category .pl-pos--mf{ background:#8fd6a4; }
body.page-template-page-team-category .pl-pos--fw{ background:#f0a3a3; }

/* ============================================================
   45-4b) スタッフ紹介（U-15）

   U-15 は選手情報を公開しないため、選手一覧の代わりにスタッフを並べる
   （page-team-category.php の #staff）。カードは選手カード（15章 .fcv-pl）
   をそのまま使い、違いは次の2点だけ：
     ・背番号／ポジションの代わりに役職バッジ（.fcv-pl__role）を写真の左上へ
     ・名前の下に肩書き（.fcv-pl__note）を1行足す
   グリッドは選手一覧と同じ .tc-players__grid。
   ============================================================ */

/* 役職バッジ。位置と地の色はポジションバッジ（15章 .fcv-pl__pos）と同じにして、
   カードが混在しても高さ・余白が揃うようにする。ポジション色は持たないので
   文字色は金（クラブのアクセント）。 */
body.page-template-page-team-category .fcv-pl__role{
  position:absolute; top:12px; left:12px; z-index:2;
  display:inline-flex; align-items:center;
  max-width:calc(100% - 24px);
  padding:4px 10px;
  font-family:var(--font-display);
  font-size:.7rem; font-weight:700; line-height:1.4;
  letter-spacing:.08em;
  color:var(--vio-gold-hi);
  background:rgba(13,9,24,.62);
  border:1px solid rgba(205,164,81,.45);
  border-radius:4px;
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
  box-shadow:0 2px 12px rgba(0,0,0,.35);
  transition:border-color .3s ease, box-shadow .3s ease;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
body.page-template-page-team-category .fcv-pl--staff:hover .fcv-pl__role{
  border-color:rgba(205,164,81,.8);
  box-shadow:0 2px 16px rgba(0,0,0,.45);
}

/* 肩書き（保有ライセンス・担当）。英字名より弱く見せて、
   「名前 → 英字 → 肩書き」の順に情報の強さが落ちるようにする。 */
body.page-template-page-team-category .fcv-pl__note{
  margin:8px 0 0;
  padding-top:8px;
  border-top:1px solid rgba(205,164,81,.16);
  font-size:.76rem;
  line-height:1.5;
  color:rgba(255,255,255,.62);
}

@media (max-width:560px){
  body.page-template-page-team-category .fcv-pl__role{
    top:8px; left:8px;
    padding:3px 8px;
    font-size:.62rem;
  }
  body.page-template-page-team-category .fcv-pl__note{ font-size:.7rem; }
}

/* ============================================================
   45-5) お知らせ
   そのチームのタグが付いた記事だけを5件、画像なしのリストで出す（2026-08）。
   写真付きカードは1件あたりの背が高く、チームトップの終盤で3枚並べると
   募集CTAまでが遠かった。行の構成は日付＋カテゴリー＋タイトルの3つだけ。
   意匠（金の日付・タグ・ホバーの縦線）はお知らせ一覧の行（42-5章 .news-line）と
   同じ言語に揃えてある。サムネイルが無いぶんだけ列が1つ少ない。
   ============================================================ */
body.page-template-page-team-category .tc-newslist{
  list-style:none;
  margin:0;
  padding:0;
}
body.page-template-page-team-category .tc-newsline{
  border-top:1px solid rgba(255,255,255,.09);
}
body.page-template-page-team-category .tc-newsline:last-child{
  border-bottom:1px solid rgba(255,255,255,.09);
}
body.page-template-page-team-category .tc-newsline__link{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:0 20px;
  padding:16px 14px;
  color:inherit;
  text-decoration:none;
  transition:background .2s ease;
}
/* ホバー時に立つ左端の金の縦線（お知らせ一覧の行と同じ） */
body.page-template-page-team-category .tc-newsline__link::before{
  content:"";
  position:absolute; left:0; top:0; bottom:0; width:2px;
  background:linear-gradient(180deg,var(--vio-gold),var(--vio-gold-hi));
  transform:scaleY(0); transform-origin:center;
  transition:transform .22s ease;
}
body.page-template-page-team-category .tc-newsline__link:hover,
body.page-template-page-team-category .tc-newsline__link:focus-visible{
  background:rgba(255,255,255,.045);
}
body.page-template-page-team-category .tc-newsline__link:hover::before,
body.page-template-page-team-category .tc-newsline__link:focus-visible::before{
  transform:scaleY(1);
}
/* 日付＋カテゴリーの列は幅を固定する。中身なりに伸ばすと、カテゴリー名の
   長さ（「試合結果」と「募集・お知らせ」で約40px違う）ぶんだけ行ごとに
   タイトルの開始位置がずれ、リストが階段状に見えてしまう。 */
body.page-template-page-team-category .tc-newsline__meta{
  display:flex; align-items:center; gap:12px;
  width:200px;
  white-space:nowrap;
}
body.page-template-page-team-category .tc-newsline__date{
  font-family:var(--font-crest);
  font-size:.9rem; letter-spacing:.06em;
  color:var(--vio-gold-hi);
}
/* 固定幅の列に収める。長いカテゴリー名は省略記号で切る（行を折り返さない）。 */
body.page-template-page-team-category .tc-newsline__cat{
  display:inline-block;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:.75rem; font-weight:700; letter-spacing:.04em; line-height:1.4;
  color:#fff;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.22);
  padding:4px 10px; border-radius:4px;
}
body.page-template-page-team-category .tc-newsline__title{
  min-width:0;
  color:#fff; font-size:1rem; font-weight:700; line-height:1.55;
  display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden;
  transition:color .2s ease;
}
body.page-template-page-team-category .tc-newsline__link:hover .tc-newsline__title,
body.page-template-page-team-category .tc-newsline__link:focus-visible .tc-newsline__title{
  color:var(--vio-gold-hi);
}
body.page-template-page-team-category .tc-newsline__arrow{
  display:inline-flex; color:rgba(255,255,255,.35);
  transition:color .2s ease, transform .2s ease;
}
body.page-template-page-team-category .tc-newsline__link:hover .tc-newsline__arrow,
body.page-template-page-team-category .tc-newsline__link:focus-visible .tc-newsline__arrow{
  color:var(--vio-gold-hi); transform:translateX(3px);
}

/* 該当する記事が1件も無いとき。空の枠を出すより一行で言い切る。 */
body.page-template-page-team-category .tc-newslist__empty{
  margin:0;
  padding:36px 14px;
  text-align:center;
  font-size:.92rem;
  color:var(--lp-muted);
  border-top:1px solid rgba(255,255,255,.09);
  border-bottom:1px solid rgba(255,255,255,.09);
}

/* SP：日付・タグとタイトルを2段に。幅を食う矢印は落とす
   （行全体がリンクなので情報は減らない）。 */
@media (max-width:640px){
  body.page-template-page-team-category .tc-newsline__link{
    grid-template-columns:1fr;
    gap:8px;
    padding:14px 10px;
  }
  body.page-template-page-team-category .tc-newsline__meta{ gap:10px; width:auto; }
  body.page-template-page-team-category .tc-newsline__date{ font-size:.82rem; }
  body.page-template-page-team-category .tc-newsline__cat{ font-size:.68rem; padding:3px 8px; }
  body.page-template-page-team-category .tc-newsline__title{
    font-size:.92rem;
    -webkit-line-clamp:2;
  }
  body.page-template-page-team-category .tc-newsline__arrow{ display:none; }
}

@media (prefers-reduced-motion:reduce){
  body.page-template-page-team-category .tc-newsline__link,
  body.page-template-page-team-category .tc-newsline__link::before,
  body.page-template-page-team-category .tc-newsline__title,
  body.page-template-page-team-category .tc-newsline__arrow{ transition:none; }
}

/* ============================================================
   45-7) 選手募集CTA
   募集ページの .rec-cta（39-4章）と同じ意匠。
   面（背景写真・黒の覆い・余白・枠線）はすべて50章の .fcv-cta が持つ。
   ここは文字組みだけ。

   ※ 以前はこのページだけ円陣写真（cta-joinus.jpg）と覆いを上書きしていたが、
     その写真を全CTAの共通背景に格上げしたので上書きは撤去した。
     背景を触りたいときは50章を直すこと。
   ============================================================ */
body.page-template-page-team-category .tc-cta__en{
  margin:0 0 6px;
  font-family:var(--font-crest);
  font-weight:800;
  font-size:clamp(1.6rem, 4vw, 2.4rem);
  line-height:1.05;
  color:var(--vio-gold);
}
body.page-template-page-team-category .tc-cta__title{
  margin:0 0 16px;
  font-size:clamp(1.05rem, 2.2vw, 1.4rem);
  font-weight:700;
  line-height:1.6;
  letter-spacing:.04em;
  color:#fff;
}
body.page-template-page-team-category .tc-cta__text{
  margin:0 0 30px;
  font-size:.92rem;
  line-height:2;
  color:var(--lp-text);
}
/* ボタンは44章の .fixtures-link。大きさは50章が面ごと決めている。
   ラベルはカテゴリー名を含んで長くなるので、狭い画面では帯にして折り返させる。 */
@media (max-width:520px){
  body.page-template-page-team-category .tc-cta__btn{
    display:flex;
    width:100%;
    justify-content:center;
    padding:14px 16px;
    font-size:.8rem;
    letter-spacing:.04em;
    text-indent:.04em;
  }
}
body.page-template-page-team-category .tc-cta__alt{
  margin:24px 0 0;
  font-size:.82rem;
  color:var(--lp-muted);
}

/* もう一方のチームへの導線。
   #join が padding-bottom:0 でページ最後のブロックになるため、
   フッターとの間隔は他セクションと同じリズム（56〜96px）をここで持たせる。 */
body.page-template-page-team-category .tc-other{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:14px 20px;
  max-width:820px;
  margin:clamp(32px, 4vw, 48px) auto 0;
  padding:24px 0 clamp(56px, 7vw, 96px);
  border-top:1px solid var(--tc-line-soft);
}
body.page-template-page-team-category .tc-other__label{
  font-family:var(--font-display);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.14em;
  text-indent:.14em;
  color:var(--lp-muted);
}

/* ============================================================
   45-8) レスポンシブ
   ============================================================ */
@media (max-width:900px){
  body.page-template-page-team-category .tc-facts{ grid-template-columns:1fr; }
}

@media (max-width:768px){
  body.page-template-page-team-category .tc-goal{
    grid-template-columns:1fr;
    gap:12px;
    text-align:center;
  }
  body.page-template-page-team-category .tc-goal__year{ line-height:1; }
  /* 概要テーブルは縦積み（ラベル幅34%だと値が2文字で折り返すため）*/
  body.page-template-page-team-category .tc-table__row{ display:block; }
  body.page-template-page-team-category .tc-table__label{
    display:block;
    width:auto;
    padding:12px 16px 8px;
    border-right:0;
    white-space:normal;
  }
  body.page-template-page-team-category .tc-table__value{
    display:block;
    padding:0 16px 14px;
  }
  body.page-template-page-team-category .tc-players__grid{
    grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));
    gap:14px;
  }
}

@media (max-width:560px){
  body.page-template-page-team-category .tc-squad__item{
    min-width:0;
    flex:1 1 82px;
    padding:10px 12px;
    justify-content:center;
  }
  body.page-template-page-team-category .tc-squad__num{ font-size:1.35rem; }
}

@media (prefers-reduced-motion:reduce){
  body.page-template-page-team-category .pl-table__row{ transition:none; }
}

/* ============================================================
   46) ポジション表記の共通トークン

   GK/DF/MF/FW の色が、これまで5か所でそれぞれ別々に書かれていた。
     ・トップの選手カード（15章）  ベタ塗り #f59e0b ほか
     ・選手一覧のカード（親テーマ archive-player.css）  同じベタ塗り
     ・選手一覧の見出しバッジ  ベタ塗りの丸
     ・選手一覧の表（40章）  淡い地＋輪郭線
     ・チームトップの表（45-4）  パステルのベタ塗り
   同じ「ポジション」なのに見た目が4通りあり、しかもベタ塗りの3つは
   彩度が高すぎて紫×黒の画面から浮いていた。

   ここで色をトークン（--pos-gk 等）に一本化し、地は暗いガラス、
   ポジション色は「ドットと文字色」だけに使う形に揃える。
   タグの枠そのもの（暗い半透明＋白の細線＋角丸4px）は、お知らせの
   カテゴリータグ（42-3 .news-item__cat）と同じ値にしてある。
   ＝「タグはサイト共通の形、中身の色だけがポジション」という決め方。
   金はクラブのアクセントとして他（背番号・CTA）に残したいので、
   ポジションには使わない（該当なしの other だけ金の系統）。

   色はいずれも暗地（#0d0918〜#1e1338）に対して 4.5:1 以上を確保している。
   ============================================================ */
:root{
  --pos-gk:94,222,168;     /* グリーン：GK */
  --pos-df:109,193,255;    /* スカイ：サイトの紫と混同しない寒色に振る */
  --pos-mf:255,169,77;     /* オレンジ：MF */
  --pos-fw:255,124,124;    /* レッド（コーラル）：FW */
  --pos-other:205,164,81;  /* 該当なし：クラブの金 */

  /* タグの枠。お知らせのカテゴリータグ（42-3）と同じ値。 */
  --pos-tag-bg:rgba(13,9,24,.72);
  --pos-tag-line:rgba(255,255,255,.22);
  --pos-tag-line-hi:rgba(255,255,255,.42);
  --pos-tag-radius:4px;
}

/* 既定値。ポジションが GK/DF/MF/FW 以外（未入力・「SW」など）でも
   --pos-c が未定義にならないようにする。未定義だと rgba(var(--pos-c),…) が
   丸ごと無効になり、枠線も文字色も落ちてバッジが読めなくなる。 */
.fcv-pl__pos,
.fcv-pd__pos,
.player-card__pos-tag,
.player-pos-group,
.player-pos-group__badge,
.player-summary__item,
.pl-pos{ --pos-c:var(--pos-other); }

.fcv-pl__pos--gk,
.fcv-pd__pos--gk,
.player-card__pos-tag--gk,
.player-pos-group--gk,
.player-pos-group__badge--gk,
.player-summary__item--gk,
.pl-pos--gk{ --pos-c:var(--pos-gk); }

.fcv-pl__pos--df,
.fcv-pd__pos--df,
.player-card__pos-tag--df,
.player-pos-group--df,
.player-pos-group__badge--df,
.player-summary__item--df,
.pl-pos--df{ --pos-c:var(--pos-df); }

.fcv-pl__pos--mf,
.fcv-pd__pos--mf,
.player-card__pos-tag--mf,
.player-pos-group--mf,
.player-pos-group__badge--mf,
.player-summary__item--mf,
.pl-pos--mf{ --pos-c:var(--pos-mf); }

.fcv-pl__pos--fw,
.fcv-pd__pos--fw,
.player-card__pos-tag--fw,
.player-pos-group--fw,
.player-pos-group__badge--fw,
.player-summary__item--fw,
.pl-pos--fw{ --pos-c:var(--pos-fw); }

.fcv-pl__pos--other,
.fcv-pd__pos--other,
.player-pos-group--other,
.player-pos-group__badge--other,
.pl-pos--other{ --pos-c:var(--pos-other); }

/* スタッフ（監督・コーチ）はポジションではないので、ポジション色ではなく
   サイト共通の金にする。選手のグループと並べても混同しない。 */
.player-pos-group--staff,
.player-pos-group__badge--staff{ --pos-c:205,164,81; }

/* ------------------------------------------------------------
   46-1) 選手一覧ページのカード（.player-card__pos-tag）
   マークアップは親テーマ archive-player.css のものを使うので、
   ベタ塗りをここで上書きする。枠はお知らせのカテゴリータグと同じ
   （暗い半透明＋白の細線＋角丸4px）で、ポジション色は文字色だけに載せる。
   15章の .fcv-pl__pos も同じ値。
   ------------------------------------------------------------ */
body.post-type-archive-player .player-card__pos-tag{
  display:inline-flex; align-items:center; gap:6px;
  top:10px; right:10px; z-index:2;
  padding:4px 10px;
  font-family:var(--font-display);
  font-size:.7rem; font-weight:700; line-height:1.4;
  letter-spacing:.1em;
  color:rgb(var(--pos-c));
  background:var(--pos-tag-bg);
  border:1px solid var(--pos-tag-line);
  border-radius:var(--pos-tag-radius);
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
  box-shadow:0 2px 12px rgba(0,0,0,.35);
  transition:border-color .3s ease, box-shadow .3s ease;
}
/* 先頭の色ドットは出さない（15章のカードと同じ扱い）。色は文字色だけに残す。 */
body.post-type-archive-player .player-card__pos-tag::before{ content:none; }
body.post-type-archive-player .player-card:hover .player-card__pos-tag{
  border-color:var(--pos-tag-line-hi);
  box-shadow:0 2px 16px rgba(0,0,0,.45), 0 0 14px rgba(var(--pos-c), .18);
}

/* 英字名（ローマ字）。15章の .fcv-pl__name-en と同じ扱い。 */
body.post-type-archive-player .player-card__name-en{
  margin:6px 0 0;
  font-family:var(--font-display);
  font-size:.64rem; font-weight:600; line-height:1.45;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(203,190,232,.72);
  overflow-wrap:anywhere;
}
/* リスト表示（U-15など）は「番号 / 名前 / ポジション」の3列に絞る約束なので出さない */
.players-grid--mode-list .player-card__name-en,
.players-grid--mode-list .player-card__more{ display:none; }

/* 行全体をクリッカブルにする。
   リスト表示は親テーマが .player-card__link を display:contents にしていて
   リンク自身の箱が消える（セルが直接グリッドに乗る）ため、
   セルの文字を外した余白・セル間を押しても遷移しなかった。
   リンクの擬似要素で行全体を覆い、どこを押しても詳細ページへ行くようにする。
   詳細ページが無い（div の）ときは a を選んでいるので覆わない。 */
.players-grid--mode-list a.player-card__link::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:4;
}
/* 行のホバー：親テーマの明色（rgba(0,0,0,.025)）は暗背景だと見えないので、
   金の枠と薄い持ち上げ色に差し替える。リストなのでリフトアップはしない。 */
body.post-type-archive-player .players-grid--mode-list .player-card:not(.player-card--no-link):hover{
  background:rgba(205,164,81,.09);
  border-color:rgba(205,164,81,.55);
  filter:none;
}

/* リスト表示のポジション文字色もトークンに合わせる（親テーマの値を上書き）*/
.players-grid--mode-list .player-card[data-pos="GK"]{ --pos-color:rgb(var(--pos-gk)); }
.players-grid--mode-list .player-card[data-pos="DF"]{ --pos-color:rgb(var(--pos-df)); }
.players-grid--mode-list .player-card[data-pos="MF"]{ --pos-color:rgb(var(--pos-mf)); }
.players-grid--mode-list .player-card[data-pos="FW"]{ --pos-color:rgb(var(--pos-fw)); }

/* ------------------------------------------------------------
   46-2) ポジション別の見出しバッジ（.player-pos-group__badge）
   ベタ塗りの丸をやめ、暗い地＋色の輪郭にする。
   32章の `body:not(.home) … { color:var(--vio-ink) }` を打ち消すため、
   同じ詳細度で後ろに置いている。
   ------------------------------------------------------------ */
body.post-type-archive-player .player-pos-group__badge{
  background:radial-gradient(circle at 50% 28%, rgba(var(--pos-c), .18), rgba(13,9,24,.72));
  border:1px solid rgba(var(--pos-c), .55);
  color:rgb(var(--pos-c));
  letter-spacing:.12em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 0 0 4px rgba(var(--pos-c), .07);
}

/* ------------------------------------------------------------
   46-3) 表のポジション（.pl-pos）
   選手一覧（40章）とチームトップ（45-4）で別々だったものを揃える。
   枠はカードのタグと同じ（暗い半透明＋白の細線＋角丸4px）。
   表は行数が多いので、ドットは 5px と一回り小さくする。
   ------------------------------------------------------------ */
body.post-type-archive-player .pl-pos,
body.page-template-page-team-category .pl-pos{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-width:52px;
  padding:3px 9px;
  border-radius:var(--pos-tag-radius);
  border:1px solid var(--pos-tag-line);
  background:var(--pos-tag-bg);
  color:rgb(var(--pos-c));
  font-family:var(--font-display);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.1em;
}
body.post-type-archive-player .pl-pos::before,
body.page-template-page-team-category .pl-pos::before{
  content:"";
  flex:0 0 auto;
  width:5px; height:5px;
  border-radius:50%;
  background:rgb(var(--pos-c));
  box-shadow:0 0 6px rgba(var(--pos-c), .8);
}

@media (max-width:600px){
  body.post-type-archive-player .pl-pos,
  body.page-template-page-team-category .pl-pos{
    gap:5px;
    min-width:44px;
    padding:2px 7px;
    font-size:.66rem;
    letter-spacing:.06em;
  }
  body.post-type-archive-player .pl-pos::before,
  body.page-template-page-team-category .pl-pos::before{ width:4px; height:4px; }
}

@media (max-width:480px){
  body.post-type-archive-player .player-card__pos-tag{
    top:6px; right:6px;
    gap:5px;
    padding:4px 8px 4px 7px;
    font-size:.6rem; letter-spacing:.12em;
  }
  body.post-type-archive-player .player-card__name-en{ font-size:.58rem; letter-spacing:.12em; }
}

@media (prefers-reduced-motion:reduce){
  body.post-type-archive-player .player-card__pos-tag{ transition:none; }
}

/* ============================================================
   47) 選手詳細ページ（single-player.php／子テーマで新設）

   一覧（40章）から PROFILE で入ってくるページ。土台は同じ紫×黒で、
   金は「背番号・小見出しの英字・罫線」だけに絞る（36章／40章と同じ配分）。

   親テーマの assets/css/single-player.css は白地の .player-profile 系に
   閉じているため、こちらは .fcv-pd を新設して当たらないようにしてある。
   ポジション色は46章の --pos-* をそのまま使う。

   構成:
     47-1 ページ用トークン・ヒーロー・土台
     47-2 プロフィール（写真＋名前まわり）
     47-3 基本情報（定義リスト）
     47-4 本文
     47-5 前後の選手ナビ
     47-6 レスポンシブ
   ============================================================ */

/* ---- 47-1 トークンと土台 ---- */
body.fcv-pd-page{
  --pd-panel:rgba(255,255,255,.045);      /* 白いカードの代わりになる面 */
  --pd-panel-hi:rgba(255,255,255,.08);
  --pd-line:rgba(255,255,255,.14);        /* 面の輪郭は金でなく白の細線 */
  --pd-line-strong:rgba(255,255,255,.26);
  --pd-card:                              /* 写真フレームの地（15章の選手カードと共通）*/
    radial-gradient(120% 80% at 50% -10%, rgba(122,79,216,.28), transparent 62%),
    linear-gradient(165deg, #4a2c8f 0%, #1e1338 52%, #0d0918 100%);

  /* 32章の共通トークンをこのページだけ読み替える（40章と同じ） */
  --lp-line:rgba(255,255,255,.14);
}

/* ヒーローは一覧（40-1）と同じ紫→黒。下端の帯だけ金で締める。 */
body.fcv-pd-page .archive-hero{
  background:linear-gradient(135deg,#3c2378 0%,#1e1338 58%,#0d0918 100%);
}
body.fcv-pd-page .archive-hero__stripe{
  height:3px;
  background:linear-gradient(90deg,var(--vio-royal) 0%,var(--vio-violet) 58%,var(--vio-gold) 100%);
}
/* 透かし文字は英字名（ローマ字）。長い名前でも画面を圧迫しないよう一覧より小さく。 */
body.fcv-pd-page .archive-hero::before{
  font-size:clamp(3.4rem, 13vw, 11rem);
  text-transform:uppercase;
}

body.fcv-pd-page .fcv-pd-main{
  padding:clamp(34px, 5vw, 60px) 0 clamp(56px, 8vw, 96px);
  background:var(--lp-ink);
}

/* 32章は main 直下のセクションに紫／黒の交互の面を敷く。
   このページは面を持つのがカード側なので、セクション自体は透明に戻す。 */
body.fcv-pd-page main > div > section{ background:transparent; }

/* 32章の「main のリンクは一律で金」を解除。カテゴリーチップ・選手ナビは
   カード全体がリンクなので、金のままだと文字色でホバーを表せない。 */
body.fcv-pd-page main a:not(.btn){ color:inherit; }
body.fcv-pd-page .breadcrumb__link{ color:rgba(230,233,242,.78); }
body.fcv-pd-page .breadcrumb__link:hover{ color:#fff; }

/* ---- 47-2 プロフィール（写真＋名前まわり）---- */
body.fcv-pd-page .fcv-pd{
  display:grid;
  grid-template-columns:minmax(0, 360px) minmax(0, 1fr);
  gap:clamp(26px, 4vw, 56px);
  align-items:start;
  padding-bottom:clamp(16px, 2.4vw, 26px);
}
/* 区切り線は各ブロックの見出し（47-3）とナビ上端（47-5）が持つ。
   ここにも罫線を引くと、本文なし・前後の選手なしの選手（U-15に多い）で
   「線 → 空白 → 線」だけの帯ができてしまう。 */

/* 写真：トップの選手カード（15章）と同じ 3:4・同じ地色。
   詳細ページなので枠を一回り大きく取り、上端の金ラインで格を合わせる。 */
body.fcv-pd-page .fcv-pd__photo{ margin:0; }
body.fcv-pd-page .fcv-pd__photo-frame{
  position:relative;
  aspect-ratio:3/4;
  overflow:hidden;
  background:var(--pd-card);
  border:1px solid rgba(205,164,81,.34);
  box-shadow:0 18px 44px rgba(0,0,0,.5);
}
body.fcv-pd-page .fcv-pd__photo-frame::before{
  content:"";
  position:absolute; left:0; right:0; top:0; height:3px; z-index:2;
  background:linear-gradient(90deg, transparent, var(--vio-gold), transparent);
}
body.fcv-pd-page .fcv-pd__img{
  width:100%; height:100%;
  object-fit:cover;
  object-position:center top;    /* 顔が切れないよう上寄せ（カードと同じ） */
  display:block;
}
/* 写真未設定は35章の共通プレースホルダー（.player-card__placeholder と同じ絵柄）*/
body.fcv-pd-page .fcv-pd__placeholder{
  width:100%; height:100%;
  background-image:url(../images/no-avatar.svg);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  background-color:#c8ccd3;
}
/* 写真の下端を暗く落として、重ねた背番号を読めるようにする */
body.fcv-pd-page .fcv-pd__photo-frame::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0; height:42%;
  background:linear-gradient(transparent, rgba(13,9,24,.92));
  pointer-events:none;
}

/* 背番号：写真の左下に重ねる。数字は FV と同じコンデンス体（33章）。 */
body.fcv-pd-page .fcv-pd__no{
  position:absolute; left:16px; bottom:12px; z-index:2;
  display:flex; align-items:baseline; gap:4px;
  line-height:1;
  text-shadow:0 3px 18px rgba(0,0,0,.65);
}
body.fcv-pd-page .fcv-pd__no-label{
  font-family:var(--font-display);
  font-size:.7rem; font-weight:600;
  letter-spacing:.14em;
  color:rgba(232,200,128,.85);
}
body.fcv-pd-page .fcv-pd__no-value{
  font-family:var(--font-num);
  font-size:clamp(2.6rem, 6vw, 3.6rem);
  font-weight:400;                 /* Bebas Neue は400のみ（33章）*/
  font-variant-numeric:tabular-nums;
  color:var(--vio-gold);
}

/* 右カラム。上から カテゴリー → ポジション → 漢字名 → 英字名 → コメント → 基本情報。
   基本情報を写真の横に入れているのは、名前まわりだけだと写真（3:4）に対して
   右が空きすぎて、下の余白がページの穴に見えるため。 */
body.fcv-pd-page .fcv-pd__detail{ min-width:0; }
body.fcv-pd-page .fcv-pd__identity{ padding-top:4px; }

body.fcv-pd-page .fcv-pd__cats{
  display:flex; flex-wrap:wrap; gap:8px;
  list-style:none; margin:0 0 14px; padding:0;
}
/* カテゴリーチップ。形はフィルタータブ（42章のピル）に合わせる。 */
body.fcv-pd-page .fcv-pd__cat{
  display:inline-block;
  padding:5px 14px;
  border:1px solid var(--pd-line-strong);
  border-radius:999px;
  background:var(--pd-panel);
  font-family:var(--font-display);
  font-size:.74rem; font-weight:600;
  letter-spacing:.08em;
  color:#fff;
  text-decoration:none;
  transition:background-color .3s ease, border-color .3s ease, color .3s ease;
}
body.fcv-pd-page .fcv-pd__cat:hover{
  background:linear-gradient(135deg, var(--vio-gold), var(--vio-gold-hi));
  border-color:var(--vio-gold);
  color:var(--vio-ink);
}

body.fcv-pd-page .fcv-pd__badges{ margin-bottom:12px; }
/* ポジション。詳細ページでは一覧（46章）のようなタグにはせず、
   面・枠線・色ドットを外して「MF ミッドフィルダー」の文字だけを置く。
   色はポジション略号の文字色（--pos-c）だけに残す。 */
/* 役職（スタッフ詳細）。スタッフに背番号・ポジションは無いので、
   ここだけ一覧の役職バッジ（.player-card__role-tag）と同じ器で金に振る。 */
body.fcv-pd-page .fcv-pd__role{
  display:inline-flex; align-items:center;
  padding:4px 12px;
  font-family:var(--font-display);
  font-size:.76rem; font-weight:700; line-height:1.4;
  letter-spacing:.08em;
  color:var(--vio-gold-hi);
  background:var(--pos-tag-bg);
  border:1px solid rgba(205,164,81,.55);
  border-radius:var(--pos-tag-radius);
}
body.fcv-pd-page .fcv-pd__pos{
  display:inline-flex; align-items:center; gap:9px;
  padding:0;
  background:none;
  border:0;
  border-radius:0;
}
body.fcv-pd-page .fcv-pd__pos::before{ content:none; }
body.fcv-pd-page .fcv-pd__pos-abbr{
  font-family:var(--font-display);
  font-size:.86rem; font-weight:700;
  letter-spacing:.12em;
  color:rgb(var(--pos-c));
}
body.fcv-pd-page .fcv-pd__pos-ja{
  font-size:.74rem; font-weight:500;
  letter-spacing:.04em;
  color:rgba(230,233,242,.78);
}

body.fcv-pd-page .fcv-pd__name{
  margin:0;
  font-size:clamp(1.7rem, 4vw, 2.5rem);
  font-weight:700;
  line-height:1.24;
  letter-spacing:.04em;
  color:#fff;
}
/* 英字名は一覧のカード（46章 .player-card__name-en）と同じ扱い */
body.fcv-pd-page .fcv-pd__name-en{
  margin:8px 0 0;
  font-family:var(--font-display);
  font-size:.78rem; font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(203,190,232,.72);
  overflow-wrap:anywhere;
}

/* コメント：金の縦罫だけで引き、面は敷かない（金は細線に絞る方針）*/
body.fcv-pd-page .fcv-pd__comment{
  margin:clamp(18px, 2.6vw, 26px) 0 0;
  padding:2px 0 2px 18px;
  border-left:2px solid rgba(205,164,81,.55);
}
body.fcv-pd-page .fcv-pd__comment-label{
  display:block;
  margin-bottom:6px;
  /* 英字名（.fcv-pd__name-en）やポジション略称と同じ英字フォントで揃える */
  font-family:var(--font-display);
  font-size:.7rem; font-weight:600;
  letter-spacing:.24em;
  color:var(--vio-gold);
}
body.fcv-pd-page .fcv-pd__comment p{
  margin:0;
  font-size:.95rem;
  line-height:1.9;
  color:var(--lp-text);
}

/* ---- 47-3 ブロック見出し（選手紹介）----
   基本情報のブロックは見出しを出さない（single-player.php 側で出力していない）。 */
body.fcv-pd-page .fcv-pd-block{
  margin-top:clamp(34px, 5vw, 56px);
}
/* 写真の横に入れる基本情報は、コメントとの間隔を詰める */
body.fcv-pd-page .fcv-pd-block--inline{ margin-top:clamp(22px, 3vw, 32px); }
body.fcv-pd-page .fcv-pd-block__title{
  display:flex; align-items:baseline; gap:14px;
  margin:0 0 clamp(14px, 2vw, 20px);
  padding-bottom:12px;
  border-bottom:1px solid var(--pd-line);
  font-size:clamp(1.05rem, 2.2vw, 1.3rem);
  font-weight:700;
  letter-spacing:.06em;
  color:#fff;
}
/* 32章の [class*="__en"] が金を当てるので、ここでは字送りだけ足す */
body.fcv-pd-page .fcv-pd-block__en{
  font-family:var(--font-crest);
  font-size:.72rem; font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
}

/* 基本情報：ラベルと値の2列を、広い画面では2組ずつ並べる。
   罫線は各セルの outline で引く。gap を1px空けて下地を透かす手も試したが、
   項目数が奇数のときに最後の1マスが空いたまま「線の色のベタ面」として
   残ってしまうため、レイアウトに影響しない outline に切り替えた。 */
body.fcv-pd-page .fcv-pd-data{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:0;
  margin:0;
}
body.fcv-pd-page .fcv-pd-data__row{
  display:grid;
  grid-template-columns:minmax(88px, 30%) minmax(0, 1fr);
  align-items:baseline;
  gap:12px;
  padding:13px 16px;
  outline:1px solid var(--pd-line);   /* 隣のセルと重なって1本の罫線に見える */
}
body.fcv-pd-page .fcv-pd-data__label{
  margin:0;
  font-family:var(--font-display);
  font-size:.76rem; font-weight:600;
  letter-spacing:.08em;
  color:rgba(203,190,232,.78);
}
body.fcv-pd-page .fcv-pd-data__value{
  margin:0;
  font-size:.95rem;
  line-height:1.7;
  color:#fff;
  overflow-wrap:anywhere;
}

/* ---- 47-4 本文 ---- */
body.fcv-pd-page .fcv-pd-body{
  font-size:.97rem;
  line-height:2;
  color:var(--lp-text);
}
body.fcv-pd-page .fcv-pd-body > *:first-child{ margin-top:0; }
body.fcv-pd-page .fcv-pd-body > *:last-child{ margin-bottom:0; }
body.fcv-pd-page .fcv-pd-body img{ max-width:100%; height:auto; }
body.fcv-pd-page .fcv-pd-body a{ color:var(--vio-gold-hi); }
body.fcv-pd-page .fcv-pd-body a:hover{ color:#fff; }

/* ---- 47-5 前後の選手ナビ ---- */
body.fcv-pd-page .fcv-pd-nav{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:stretch;
  gap:12px;
  margin-top:clamp(40px, 6vw, 64px);
  padding-top:clamp(20px, 3vw, 28px);
  border-top:1px solid var(--pd-line);
}
body.fcv-pd-page .fcv-pd-nav__link{
  display:flex; align-items:center; gap:10px;
  padding:14px 16px;
  background:var(--pd-panel);
  border:1px solid var(--pd-line);
  color:#fff;
  text-decoration:none;
  transition:background-color .3s ease, border-color .3s ease, transform .3s ease;
}
body.fcv-pd-page .fcv-pd-nav__link--next{ justify-content:flex-end; text-align:right; }
body.fcv-pd-page .fcv-pd-nav__link:hover{
  background:var(--pd-panel-hi);
  border-color:var(--pd-line-strong);
}
body.fcv-pd-page .fcv-pd-nav__link--prev:hover{ transform:translateX(-3px); }
body.fcv-pd-page .fcv-pd-nav__link--next:hover{ transform:translateX(3px); }
/* 端の選手では枠ごと消す（空の箱が並ぶと押せそうに見えるため） */
body.fcv-pd-page .fcv-pd-nav__link--empty{
  background:transparent;
  border-color:transparent;
  pointer-events:none;
}
body.fcv-pd-page .fcv-pd-nav__text{ display:flex; flex-direction:column; gap:3px; min-width:0; }
body.fcv-pd-page .fcv-pd-nav__label{
  font-family:var(--font-display);
  font-size:.66rem; font-weight:600;
  letter-spacing:.14em;
  color:rgba(203,190,232,.72);
}
body.fcv-pd-page .fcv-pd-nav__name{
  font-size:.9rem; font-weight:600;
  line-height:1.4;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
/* 一覧へ戻る：金の枠線ボタン（39章・44章の CTA と同じ言語） */
body.fcv-pd-page .fcv-pd-nav__list{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:14px 22px;
  background:transparent;
  border:1px solid rgba(205,164,81,.55);
  font-family:var(--font-display);
  font-size:.82rem; font-weight:600;
  letter-spacing:.1em;
  color:var(--vio-gold-hi);
  text-decoration:none;
  white-space:nowrap;
  transition:background-color .3s ease, color .3s ease, border-color .3s ease;
}
body.fcv-pd-page .fcv-pd-nav__list:hover{
  background:linear-gradient(135deg, var(--vio-gold), var(--vio-gold-hi));
  border-color:var(--vio-gold);
  color:var(--vio-ink);
}

/* ---- 47-6 レスポンシブ ---- */
/* 写真の横に入る基本情報は、列が狭くなると「ふりがな｜おがわ れん」の値が
   折り返して行が波打つので、早めに1列へ落とす。 */
@media (max-width:1100px){
  body.fcv-pd-page .fcv-pd-block--inline .fcv-pd-data{
    grid-template-columns:minmax(0, 1fr);
  }
}

@media (max-width:900px){
  body.fcv-pd-page .fcv-pd{
    grid-template-columns:minmax(0, 280px) minmax(0, 1fr);
    gap:26px;
  }
}

@media (max-width:720px){
  /* 写真は1カラムに戻す。全幅だと縦に伸びすぎるので中央で幅を絞る。 */
  body.fcv-pd-page .fcv-pd{
    grid-template-columns:minmax(0, 1fr);
    gap:22px;
  }
  body.fcv-pd-page .fcv-pd__photo{
    max-width:300px;
    margin-inline:auto;
    width:100%;
  }
  body.fcv-pd-page .fcv-pd__identity{ text-align:center; }
  body.fcv-pd-page .fcv-pd__cats{ justify-content:center; }
  body.fcv-pd-page .fcv-pd__comment{
    text-align:left;
    margin-inline:auto;
    max-width:38em;
  }

  body.fcv-pd-page .fcv-pd-data{ grid-template-columns:minmax(0, 1fr); }

  /* ナビは「前 / 次」を上段、一覧ボタンを下段の全幅に。 */
  body.fcv-pd-page .fcv-pd-nav{ grid-template-columns:1fr 1fr; }
  body.fcv-pd-page .fcv-pd-nav__list{ grid-column:1 / -1; order:1; }
  body.fcv-pd-page .fcv-pd-nav__link--empty{ display:none; }
}

@media (max-width:480px){
  body.fcv-pd-page .fcv-pd-data__row{
    grid-template-columns:minmax(0, 1fr);
    gap:4px;
    padding:12px 14px;
  }
  body.fcv-pd-page .fcv-pd-nav__link{ padding:12px; }
  body.fcv-pd-page .fcv-pd-nav__name{ font-size:.82rem; }
}

@media (prefers-reduced-motion:reduce){
  body.fcv-pd-page .fcv-pd-nav__link,
  body.fcv-pd-page .fcv-pd__cat,
  body.fcv-pd-page .fcv-pd-nav__list{ transition:none; }
  body.fcv-pd-page .fcv-pd-nav__link--prev:hover,
  body.fcv-pd-page .fcv-pd-nav__link--next:hover{ transform:none; }
}

/* ============================================================
   48) クラブ概要ページ：ミッション / ビジョン / バリュー
       （page-about.php の #philosophy 内、理念テキストの後ろ）

   旧Wixサイトのピラミッド図を画像を使わずに再現する。
     Mission（頂点・最も狭い）→ Vision → Value（土台・最も広い）
   段の広がりは .about-mvv__tier--* の max-width だけで作り、段と段は
   金の縦線＋▼でつなぐ。背景は37章の紺セクション（--lp-violet）の上。

   Value の4項目だけは幅が要るので、土台の段の中でグリッドに展開する。
   ============================================================ */
body.page-template-page-about .about-mvv{
  --mvv-line:rgba(205,164,81,.34);        /* 金のヘアライン */
  --mvv-line-soft:rgba(255,255,255,.10);
  --mvv-panel:rgba(255,255,255,.045);
  margin-top:clamp(48px, 6vw, 76px);
}

/* ---- 48-1 導入文 ---- */
body.page-template-page-about .about-mvv__intro{
  max-width:760px;
  margin:0 auto clamp(32px, 4vw, 48px);
  text-align:center;
  font-size:clamp(.88rem, 1.5vw, .95rem);
  line-height:2;
  color:var(--lp-text);
}

/* ---- 48-2 ピラミッド本体 ---- */
body.page-template-page-about .about-mvv__pyramid{
  max-width:960px;
  margin:0 auto;
  padding:0;
  list-style:none;
  display:flex;
  flex-direction:column;
  align-items:center;
}
body.page-template-page-about .about-mvv__tier{
  position:relative;
  width:100%;
  padding:clamp(24px, 3vw, 34px) clamp(20px, 3vw, 36px);
  background:var(--mvv-panel);
  border:1px solid var(--mvv-line-soft);
  border-top:3px solid var(--vio-gold);
  text-align:center;
}
/* 段が下へいくほど広がる＝ピラミッド。中央寄せなので左右が同じだけ張り出す。 */
body.page-template-page-about .about-mvv__tier--mission{ max-width:600px; }
body.page-template-page-about .about-mvv__tier--vision { max-width:780px; }
body.page-template-page-about .about-mvv__tier--value  { max-width:960px; }

/* 段のあいだの導線（縦線＋▼）。最下段の下には出さない。 */
body.page-template-page-about .about-mvv__tier:not(:last-child){
  margin-bottom:clamp(38px, 4.4vw, 54px);
}
body.page-template-page-about .about-mvv__tier:not(:last-child)::before{
  content:"";
  position:absolute;
  left:50%;
  top:100%;
  width:1px;
  height:clamp(38px, 4.4vw, 54px);
  background:linear-gradient(180deg, var(--vio-gold), rgba(205,164,81,.15));
  transform:translateX(-50%);
}
body.page-template-page-about .about-mvv__tier:not(:last-child)::after{
  content:"";
  position:absolute;
  left:50%;
  top:calc(100% + clamp(38px, 4.4vw, 54px) - 7px);
  width:0; height:0;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
  border-top:7px solid var(--vio-gold);
  transform:translateX(-50%);
}

/* ---- 48-3 段の見出し（英字＋日本語）---- */
body.page-template-page-about .about-mvv__label{
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:12px;
  margin:0 0 clamp(14px, 1.8vw, 18px);
}
body.page-template-page-about .about-mvv__en{
  font-family:var(--font-display);
  font-size:clamp(1.05rem, 2.2vw, 1.35rem);
  font-weight:700;
  line-height:1;
  letter-spacing:.18em;
  text-indent:.18em;
  color:var(--vio-gold);
}
body.page-template-page-about .about-mvv__ja{
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.1em;
  color:var(--lp-muted);
}

/* ---- 48-4 使命 / ありたい姿の本文 ---- */
body.page-template-page-about .about-mvv__statement{
  margin:0;
  font-size:clamp(1rem, 2.1vw, 1.25rem);
  font-weight:700;
  line-height:1.85;
  letter-spacing:.03em;
  color:#fff;
}

/* ---- 48-5 行動指針（土台の4項目）---- */
body.page-template-page-about .about-mvv__note{
  margin:0 0 clamp(20px, 2.4vw, 26px);
  padding-bottom:clamp(16px, 2vw, 20px);
  border-bottom:1px solid var(--mvv-line);
  font-size:.84rem;
  letter-spacing:.04em;
  color:var(--lp-muted);
}
body.page-template-page-about .about-mvv__values{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:clamp(14px, 1.8vw, 20px);
  margin:0;
  padding:0;
  list-style:none;
  text-align:left;
}
body.page-template-page-about .mvv-value{
  display:grid;
  grid-template-columns:30px minmax(0, 1fr);
  column-gap:12px;
  align-items:center;
  padding:clamp(16px, 2vw, 20px) clamp(14px, 1.8vw, 18px);
  background:rgba(13,9,24,.35);
  border:1px solid var(--mvv-line-soft);
  border-left:2px solid var(--vio-gold);
}
/* アイコンは見出しの左。パートナーページの契約フロー（41章 .pt-flow__icon）と
   同じ「丸枠なし＋線画を大きく」で、ページをまたいでも同じ見え方にそろえる。
   金はカード左端のラインと見出しに残すので、アイコンは薄紫にして
   カード全体が金に寄らないようにする。
   PC ではアイコンと見出しを 1 行目に横並びにし、説明文はその下に
   カード幅いっぱいで流す（アイコンの分だけ字下げしない）。 */
body.page-template-page-about .mvv-value__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  grid-column:1;
  grid-row:1;
  width:30px;
  height:30px;
  margin-bottom:0;
  color:#cbbcee;
}
body.page-template-page-about .mvv-value__icon svg{
  width:30px;
  height:30px;
  display:block;
}
body.page-template-page-about .mvv-value__name{
  display:block;
  grid-column:2;
  grid-row:1;
  margin-bottom:0;
  font-size:1rem;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--vio-gold-hi);
}
body.page-template-page-about .mvv-value__text{
  display:block;
  grid-column:1 / -1;
  grid-row:2;
  align-self:start;
  margin-top:10px;
  font-size:.83rem;
  line-height:1.85;
  color:var(--lp-text);
}

/* ---- 48-6 レスポンシブ ----
   狭い画面では段の幅差（＝ピラミッド）が出せないので、幅は揃えて
   縦の導線だけでつながりを見せる。 */
@media (max-width:900px){
  body.page-template-page-about .about-mvv__values{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width:640px){
  body.page-template-page-about .about-mvv__tier--mission,
  body.page-template-page-about .about-mvv__tier--vision,
  body.page-template-page-about .about-mvv__tier--value{ max-width:100%; }
  body.page-template-page-about .about-mvv__label{
    flex-direction:column;
    align-items:center;
    gap:6px;
  }
  body.page-template-page-about .about-mvv__values{
    grid-template-columns:minmax(0, 1fr);
  }
  /* 1カラムだとカード幅が広いので、アイコンを見出しと説明文の左に通しで置き、
     テキストは 2 列目に寄せる（PC の「アイコン＋見出しを 1 行目」とは別組み）。 */
  body.page-template-page-about .mvv-value{
    column-gap:14px;
    align-items:start;
  }
  body.page-template-page-about .mvv-value__icon{ grid-row:1 / span 2; }
  body.page-template-page-about .mvv-value__name{ margin-bottom:8px; }
  body.page-template-page-about .mvv-value__text{ grid-column:2; margin-top:0; }
  body.page-template-page-about .about-mvv__intro{ text-align:left; }
}

/* ============================================================
   49) トップページ：パートナーセクション（.section-partners）

   親テーマの .partner-item__logo は width:100% なので、ロゴを
   カラム幅いっぱいに引き伸ばす。実データは横長〜正方形まで縦横比が
   バラバラ（例: 千曲乃湯=6.4:1、GPR=1.4:1）なので、そのままだと
   同じ行のロゴが 20px と 226px のように極端に不揃いになる。
   ここで「高さの揃った白いカード＋中で contain」に作り替える。

   白カードにする理由はパートナーページ（41-1章）と同じ。
   預かったロゴは全社が透過PNG＋黒／濃色の文字で、この紫の背景では
   ほとんど読めない。ヘッダーのスポンサー帯も同じ理由で白地。
   ============================================================ */
.section-partners .partners-grid{
  gap:clamp(14px, 1.6vw, 24px);
  align-items:stretch;
  justify-items:stretch;
}
.section-partners .partner-item{
  /* 枠高は 2026-08 にクライアント指定で 104px → 90px に下げた
     （白い面が縦に間延びして見えるため。パートナーページ 41-1章と同じ調整）。
     ロゴ画像は下の 17cqw が上限なので、詰まるのは主に上下の余白。
     SP（768px以下）は別の値を持っているのでここの変更は効かない。 */
  min-height:var(--fp-logo-h, 90px);
  padding:var(--fp-logo-pad-y, 14px) var(--fp-logo-pad-x, 14px);
  /* ロゴ画像の上限を「カード幅の何%」で決めるため、カード自体を
     コンテナクエリの基準にする（下の 17cqw が効くのはこれがあるから）。 */
  container-type:inline-size;
  background:#fff;
  border:1px solid rgba(255,255,255,.14);
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
/* ロゴの「見た目の大きさ」を揃えるための高さ上限（41-1章＝パートナーページと同ロジック）
   預かったロゴはほぼ全社が横組みのワードマークで、画像の高さ＝文字の高さ。
   max-width:100% だけで組むと、文字数が少ない＝正方形寄りのロゴほど
   同じ幅に伸びた結果 文字だけが大きく見える（千曲乃湯=6.4:1 と GPR=1.4:1）。
   そこで高さの上限を「カード幅の17%」に置く（≒ 6:1 のロゴの文字の高さ）。
     ・横長（およそ 6:1 より長い）＝ これまで通り幅で決まる → 見た目は不変
     ・正方形寄り（GPR 等）＝ 頭打ちになって縮む
   PCは4列でカード幅272px前後なので上限は46px。

   34px の下限を噛ませている理由
     SPは2列でカードが160px前後まで細くなり、17%だと上限が27pxまで落ちて
     正方形寄りのロゴが判読できない大きさになる。絶対値の下限を置いて、
     SPでは「揃えきらないが読める」側に倒している。
   カード枠の高さ（--fp-logo-h）からの上限も min() で残す。 */
.section-partners .partner-item__logo{
  width:auto;
  max-width:100%;
  /* 1行目はコンテナクエリ単位が使えない環境向けの従来値（枠の高さだけで抑える）。
     cqw が解釈できる環境では2行目が上書きする。 */
  max-height:calc(var(--fp-logo-h, 104px) - var(--fp-logo-pad-y, 14px) * 2);
  max-height:min(
    calc(var(--fp-logo-h, 104px) - var(--fp-logo-pad-y, 14px) * 2),
    max(var(--fp-logo-cap, 17cqw), var(--fp-logo-cap-min, 34px))
  );
  height:auto;
  object-fit:contain;
}
/* 親テーマの hover（ロゴを薄くする）はカード上だと沈んで見えるので、
   カード自体を持ち上げる表現に置き換える */
.section-partners .partner-item:hover .partner-item__logo{ opacity:1; }
.section-partners .partner-item:has(a):hover{
  border-color:var(--vio-gold);
  box-shadow:0 8px 22px rgba(0,0,0,.35);
  transform:translateY(-2px);
}
/* ロゴ未設定のパートナーは企業名テキスト。白カード上なので暗色にする */
.section-partners .partner-item__name{
  font-weight:700;
  letter-spacing:.04em;
  line-height:1.5;
  color:var(--vio-ink, #12101c);
}

/* SPは白カードの縦をさらに詰める（パートナーページのSP指定と同じ考え方）。
   ロゴ画像は上の高さ上限（カード幅の17%／下限34px）で頭打ちになり、
   2列のSPではどのロゴも 34px 前後までしか使わない。
   PCと同じ枠高・上下パディングのままだと余白だけが縦に伸びて白い面が
   目立つので、上下パディングと枠の下限高さを一段落とす。
   枠高54px／カード幅168px前後で およそ 3.1:1 の横長。PC（2.6:1）より
   はっきりワイドにしているのは、SPは2列で1枚のカードが小さく、
   縦の余白が残ると白い面ばかりが目立って見えるため。
   34pxのロゴに対して上下は各10px残る計算。
   左右パディングは据え置き（横幅の見え方は変えない）。 */
@media (max-width:768px){
  .section-partners .partner-item{
    --fp-logo-h:54px;
    --fp-logo-pad-y:8px;
    --fp-logo-pad-x:10px;
  }
}

/* ============================================================
   50) CTAセクション共通：背景写真の全幅バナー

   下層ページに散らばっていたCTA（選手募集・チームトップ・パートナー）は
   それぞれ別々のグラデーション面だった。サイト内のどこにいても
   「ここが行動導線」と一目で分かるよう、同じ写真を敷いた
   ひとつの意匠に統一する。

     ・背景     : assets/images/cta-joinus.jpg（webp を優先／image-set）
                  クライアント提供の円陣写真。以前は cta-bg.jpg（歓喜の写真）で
                  チームトップだけがこの円陣写真だったが、全ページで
                  円陣写真に揃えた（45-7章の上書きは撤去済み）。
     ・覆い     : ::before で黒を 55% 重ねる。円陣写真は日中の順光で芝も空も
                  明るく、そのままだと白文字が完全に沈むため。text-shadow
                  だけでは足りない。面は isolation:isolate、中身の包みは
                  z-index:1 なので、覆いを z-index:0 に置けば文字とボタンより
                  下だけを覆える。
     ・幅       : .container の中に置かれていても画面の左右端まで届かせる。
                  margin-inline の負値（50% − 50vw）で container の
                  内寄せと左右パディングをまとめて打ち消す。
                  ＝ CTAだけが帯（バナー）として抜ける。
     ・文字     : .fcv-cta__inner の中に置く。帯が広がっても
                  最大幅820pxで中央に留め、文字組みは崩さない。
     ・ボタン   : 44章の .fixtures-link（細い白アウトライン＋白文字＋
                  金のシェブロン）。親テーマの .btn（カスタマイザーの
                  斜めカット＝平行四辺形）はもう使わない。

   使い方：CTAの外枠に .fcv-cta、中身の包みに .fcv-cta__inner を付ける。
   ページ側（39-4 / 41-2 / 45-7章）は文字組みだけを持ち、
   面の意匠はこの章に集約している。

   パートナー募集ページ（親テーマ page-partner-recruit.php）だけは
   テンプレートを子テーマで持っていないのでクラスを足せない。
   幸い .recruit-cta / .recruit-cta__inner が同じ入れ子なので、
   セレクタに並べて同じ意匠を当てている。
   ただしあちらの .recruit-cta は section なので、32章の交互背景
   「body:not(.home) main > div > section:nth-of-type(even)」に捕まる。
   background ショートハンドは background-image を none に戻してしまうので、
   同じ詳細度（:nth-of-type はクラス1つ分＝クラス2＋要素4）まで積んで、
   後勝ちで上書きしている。セレクタを短くすると写真が消えるので縮めないこと。
   読み込み順も命綱：functions.php の enqueue で starter-partner-recruit を
   custom.css の依存に加えてある。外さないこと。
   ボタンも .btn のまま（クラスを差し替えられない）なので、CSSだけで
   .fixtures-link と同じ見た目に寄せている（この章の末尾）。

   ※ image-set() を解さないブラウザ向けに、直前の行で jpg を単独指定して
     いる。順番を入れ替えたり片方を消したりしないこと。
   ============================================================ */
.fcv-cta,
body:not(.home) main > section.recruit-cta,
body:not(.home) main > div > section.recruit-cta{
  position:relative;
  isolation:isolate;                 /* z-index をこの面の中だけで完結させる */
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;

  /* 全幅バナー。親が .container（max-width＋左右20px）でも画面端まで届く。
     50% は .container の内容幅に対する値なので、その中心＝画面中心から
     左右に 50vw ずつ広げると、ちょうどビューポート幅いっぱいになる。 */
  width:auto;
  max-width:none;
  margin-inline:calc(50% - 50vw);

  min-height:clamp(300px, 28vw, 400px);
  padding:clamp(48px, 6vw, 84px) clamp(20px, 4vw, 48px);
  text-align:center;
  /* 左右の枠線は画面端に張り付いて意味を成さないので上下だけ残す */
  border:0;
  border-top:1px solid var(--lp-line, rgba(205,164,81,.30));
  border-bottom:1px solid var(--lp-line, rgba(205,164,81,.30));
  background-color:var(--vio-ink);
  background-repeat:no-repeat;
  background-position:center center;  /* 円陣が中央に写っているので寄せない */
  background-size:cover;
  background-image:url("../images/cta-joinus.jpg");
  background-image:image-set(
    url("../images/cta-joinus.webp") type("image/webp"),
    url("../images/cta-joinus.jpg")  type("image/jpeg"));
}

/* 黒の覆い（見出しコメント参照）。写真が明るいので全CTAに一律で敷く。 */
.fcv-cta::before,
body:not(.home) main > section.recruit-cta::before,
body:not(.home) main > div > section.recruit-cta::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:rgba(0,0,0,.55);
  pointer-events:none;
}

/* 100vw はスクロールバーの幅を含むため、環境によっては帯が数pxはみ出す。
   横スクロールバーが出ないよう、CTAを置くページの main で切り落とす。
   clip はスクロールコンテナを作らないので、ページ内ナビの
   position:sticky（38章／main の外）にも影響しない。 */
.pt-main,
.recruit-main,
.team-main,
main.partner-recruit{ overflow-x:clip; }

.fcv-cta__inner,
.recruit-cta__inner{
  position:relative;
  z-index:1;
  width:100%;
  max-width:820px;
  margin-inline:auto;
}

/* 覆いに加えて、文字の影でさらに写真から浮かせる（ボタンは除く） */
.fcv-cta__inner p,
.fcv-cta__inner h2,
.fcv-cta__inner h3,
.fcv-cta__inner li,
.recruit-cta__inner p,
.recruit-cta__inner h2{ text-shadow:0 2px 14px rgba(0,0,0,.72), 0 1px 3px rgba(0,0,0,.55); }

/* ボタン（44章 .fixtures-link）は写真の上に置く。
   枠線は暗い写真に埋もれないよう既定より少し強め、文字の影は消す。 */
.fcv-cta__inner .fixtures-link{
  padding:15px 34px;
  font-size:.92rem;
  border-color:rgba(255,255,255,.5);
  text-shadow:none;
  box-shadow:0 10px 28px rgba(0,0,0,.34);
}

/* ── パートナー募集ページ（親テーマ page-partner-recruit.php）の調整 ──
   親CSSは角丸＋紺ベタ＋白ボタンの前提。写真の面に載せ替えたので角を落とす。 */
body:not(.home) main > section.recruit-cta,
body:not(.home) main > div > section.recruit-cta{
  margin-top:clamp(32px, 4vw, 48px);
  border-radius:0;
}

/* ボタンはクラスを差し替えられないので、.btn のまま .fixtures-link に寄せる。
   ・詳細度: 32章の「body:not(.home) .recruit-cta__btn.btn」（クラス3＋要素1）に
     勝つ必要があるのでクラス4つ積む。短くすると金文字に戻る。
   ・border の !important: カスタマイザーの斜めカット（inc/customizer.php）が
     .btn に border:none !important を吐く。あれは wp_head:20 で
     custom.css より後に出るうえ !important なので、こちらも !important で返す。
   ・clip-path:none: 同じく斜めカットの平行四辺形を戻す。 */
.recruit-cta .recruit-cta__btn.btn.btn--primary,
.recruit-cta .recruit-cta__btn.btn.btn--primary:hover{
  clip-path:none;
  border:1px solid rgba(255,255,255,.5) !important;
  border-radius:0;
  background:transparent;
  color:#fff;
  padding:15px 34px;
  font-family:var(--font-display);
  font-size:.92rem;
  font-weight:600;
  letter-spacing:.12em;
  text-indent:.12em;                 /* letter-spacing 分の右寄りを相殺 */
  opacity:1;
  text-shadow:none;
  box-shadow:0 10px 28px rgba(0,0,0,.34);
  transition:border-color .25s ease, background-color .25s ease;
}
.recruit-cta .recruit-cta__btn.btn.btn--primary:hover{
  border-color:rgba(255,255,255,.9) !important;
  background:rgba(255,255,255,.08);
}
/* 矢印のSVGは stroke="currentColor"。色だけ金に差し替える（他のCTAの
   シェブロンに合わせる。図形自体は親テーマのマークアップなので触れない）*/
.recruit-cta .recruit-cta__btn.btn svg{ color:var(--vio-gold); }
.recruit-cta__title{ color:#fff; }
.recruit-cta__text{ color:var(--lp-text, #e6e9f2); }

/* ── トップページのCTAセクション（親テーマの体験募集／パートナー募集）──
   カスタマイザーで有効化されたときに下層ページと同じ面になるようにする。
   2b章の .section:nth-child(even) が background ショートハンドで画像を
   消してしまうため、クラス2つ分の詳細度で指定する。
   体験募集CTAはカスタマイザーで背景画像を指定するとインラインstyleが
   優先される（＝クライアントが選んだ画像を尊重する）。 */
.section.section-trial-cta-front,
.section.section-partners-cta-front{
  position:relative;
  isolation:isolate;
  background-color:var(--vio-ink);
  background-repeat:no-repeat;
  background-position:center center;
  background-size:cover;
  background-image:url("../images/cta-joinus.jpg");
  background-image:image-set(
    url("../images/cta-joinus.webp") type("image/webp"),
    url("../images/cta-joinus.jpg")  type("image/jpeg"));
}
/* 覆いも下層のCTAと揃える。カスタマイザーで別の写真を指定された場合も
   白文字が読めるよう、背景がどれであっても一律で敷く。
   .section は元から全幅なので、幅の調整は要らない。 */
.section.section-trial-cta-front::before,
.section.section-partners-cta-front::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:rgba(0,0,0,.55);
  pointer-events:none;
}
.section.section-trial-cta-front > .container,
.section.section-partners-cta-front > .container{
  position:relative;
  z-index:1;
}
.section.section-trial-cta-front .cta-block__title,
.section.section-partners-cta-front .cta-block__title{
  font-family:var(--font-crest);
  color:#fff;
  text-shadow:0 2px 14px rgba(0,0,0,.72), 0 1px 3px rgba(0,0,0,.55);
}
.section.section-trial-cta-front .cta-block__text,
.section.section-partners-cta-front .cta-block__text{
  color:var(--lp-text);
  text-shadow:0 2px 14px rgba(0,0,0,.72), 0 1px 3px rgba(0,0,0,.55);
}
/* ボタンは親テーマの .btn のまま（テンプレートは親テーマ側）。
   下層CTAと揃えて .fixtures-link の見た目に寄せる。
   border の !important と clip-path:none の理由はこの章の .recruit-cta__btn と同じ。 */
.section.section-trial-cta-front .cta-block__btn.btn,
.section.section-partners-cta-front .cta-block__btn.btn,
.section.section-trial-cta-front .cta-block__btn.btn:hover,
.section.section-partners-cta-front .cta-block__btn.btn:hover{
  clip-path:none;
  border:1px solid rgba(255,255,255,.5) !important;
  border-radius:0;
  background:transparent;
  color:#fff;
  padding:15px 34px;
  font-family:var(--font-display);
  font-size:.92rem;
  font-weight:600;
  letter-spacing:.12em;
  text-indent:.12em;
  opacity:1;
  text-shadow:none;
  box-shadow:0 10px 28px rgba(0,0,0,.34);
  transition:border-color .25s ease, background-color .25s ease;
}
.section.section-trial-cta-front .cta-block__btn.btn:hover,
.section.section-partners-cta-front .cta-block__btn.btn:hover{
  border-color:rgba(255,255,255,.9) !important;
  background:rgba(255,255,255,.08);
}

/* ── レスポンシブ ──
   SPでは面が縦長になり、横長の写真から縦の細い帯だけが切り出される。
   円陣は原寸のほぼ中央に写っているので、横位置は center のまま動かさない
   （以前の cta-bg.jpg は被写体が右寄りだったので 55% へずらしていた）。 */
@media (max-width:768px){
  .fcv-cta,
  body:not(.home) main > section.recruit-cta,
  body:not(.home) main > div > section.recruit-cta{
    min-height:0;
    padding:clamp(36px, 9vw, 52px) 20px;
    background-position:center center;
  }
  .fcv-cta__inner .fixtures-link,
  .recruit-cta .recruit-cta__btn.btn.btn--primary{
    padding:14px 24px;
    font-size:.85rem;
    box-shadow:0 8px 20px rgba(0,0,0,.30);
  }

  .section.section-trial-cta-front,
  .section.section-partners-cta-front{ background-position:center center; }
}

/* ============================================================
   51) トップページ：バナーセクション（.fcv-banners）

   試合情報セクションの直後に挟まる募集バナーの帯。PCは4カラム、
   SP（768px以下）は2カラム（2×2）。以前は前後のセクションと詰めて見せる
   ため上下の余白を gap と同じくらいまで削っていたが、独立した帯として
   見せる方針に変えたので 40〜50px 確保している。

   ● 背景（バナー帯だけ明るい紫にする）
     以前は黒（--vio-ink）→紫（--vio-violet）の縦グラデーションを敷き、
     上下端を前後のセクションの色ぴったりに合わせて境目を消していた。
     ただ、それだと帯が前後に溶けてバナーが「ページの一部」に見えてしまう。
     クライアント要望でバナーを目立たせたいので、前後より一段明るい紫
     （#2a1a4e 〜 --vio-violet #3c2378）に振り、上下端を中央より暗く
     落として意図的に境目を作る。直前の黒セクションとも直後の紫セクションとも
     色が変わるので、独立した帯として認識できる。

   ● nth-child のずれ対策（重要）
     2b章の交互背景は .section:nth-child(even) で組んでいる。body直下に
     セクションを1つ足すと以降の偶奇が全部入れ替わってしまうため、
     このセクションより後ろの .section だけ偶奇を反転して元の色に戻す。
     （.fcv-banners 自身に .section を付けていないのも同じ理由）

   ● カラム数を4にしている理由
     クライアント要望でPCは4枚を横一列に並べる。支給画像は 1121x375（約3:1）で
     キャッチコピーが焼き込まれており、1160pxのコンテナに gap 20px で4枚だと
     1枚あたり約275px（原寸の約1/4）まで縮む。文字は小さくなるが、
     4枚を一望できる並びを優先する。
     ※ 以前は文字の可読性を理由に2カラムにしていた経緯がある。

   ● トリミングしない
     文字が画像の端まで使われているので、object-fit:cover で切ると
     文言が欠ける。aspect-ratio で枠を固定せず、画像の縦横比そのままで
     置く（width:100%/height:auto）。width/height 属性を入れてあるので
     読み込み前でも高さが確保され、レイアウトシフトは起きない。
   ============================================================ */
.fcv-banners{
  background:linear-gradient(180deg, #2a1a4e 0%, var(--vio-violet) 50%, #2a1a4e 100%);
  padding:clamp(40px, 3.4vw, 50px) 0;
}
/* 交互背景の偶奇を元に戻す（上のコメント参照） */
.fcv-banners ~ .section:nth-child(even){ background:var(--vio-violet); }
.fcv-banners ~ .section:nth-child(odd){ background:var(--vio-ink); }

.fcv-banners__grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:clamp(12px, 1.6vw, 20px);
  margin:0;
  padding:0;
  list-style:none;
}
.fcv-banners__item{ margin:0; }

/* 枠は金の半透明。明るくした紫の地に対して白のうっすい線だと沈むので、
   ブランドの金（#cda451）を薄く乗せて1枚ずつの輪郭を出す。
   ホバーで不透明の金に上げる。 */
.fcv-banner{
  display:block;
  position:relative;
  overflow:hidden;
  text-decoration:none;
  border:2px solid rgba(205,164,81,.45);
  background:var(--vio-ink);
  transition:border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
/* 拡大した分だけ隣のバナーにわずかに被るので、ホバー中だけ手前に出す。
   伸びしろは1枚あたり左右 約4px で gap（12〜20px）に収まる。 */
.fcv-banner:hover,
.fcv-banner:focus-visible{
  border-color:var(--vio-gold);
  transform:scale(1.03);
  box-shadow:0 12px 26px rgba(0,0,0,.38);
  z-index:1;
}

/* 画像は原寸比のまま。inline 要素由来の下の隙間を消すため block にする。
   ※ 以前は画像側も scale していたが、枠ごと拡大するようにしたので
     二重にかかって焼き込みの文字がぼやけないよう画像の拡大はやめた。 */
.fcv-banner__img{
  display:block;
  width:100%;
  height:auto;
}

/* ── SP（768px以下）：2カラム ──
   縦積みだと4枚で画面がかなり長くなり、下の枠が埋もれてしまう。
   2×2に並べて、スクロールせずに4枚を見渡せるようにする。 */
@media (max-width:768px){
  .fcv-banners{ padding:32px 0; }
  .fcv-banners__grid{
    grid-template-columns:repeat(2, 1fr);
    gap:10px;
  }
  /* SPはタップなので拡大や影は出さない（指を離すまで拡大が残るのを避ける） */
  .fcv-banner:hover{ transform:none; box-shadow:none; }
}

/* ============================================================
   52) お知らせ詳細ページ（single.php／親テーマのテンプレートをCSSだけで暗色化）

   親テーマの single-post.css は明るいテーマ前提で、記事本体
   （article.single-post）に白い面を敷き、本文の色は --color-text に
   任せている。ところが 32章で --color-text を明色（--lp-text）へ
   差し替えているため、本番では「白い面＋薄いグレーの文字」になり
   ほとんど読めなかった。ここでその面と本文要素を暗色側へ寄せる。

   ● テンプレートは親テーマのまま（子テーマに single.php は置かない）
     直すのは色と余白だけなので、CSS の上書きで足りる。

   ● 詳細度メモ（重要）
     32章の一括指定に勝てるように、クラス数を数えて書くこと。
       body:not(.home) main h2 / p / li / td …… クラス1＋要素3
         → .single-post-main .single-post__content h2（クラス2）で勝てる
       body:not(.home) main a:not(.btn) …………… クラス2＋要素3
         → .single-post-main .single-post .single-post__content a（クラス3）
       body:not(.home) main a:not(.btn):hover … クラス3＋要素3
         → 上に :hover を足してクラス4にする
     この「1段深く書く」ルールを本章では機械的に守っている。

   ● 見た目の言語は 42章（お知らせ一覧）と揃える
     金＝--vio-gold / --vio-gold-hi、面＝白4%前後、罫線＝白9〜14%、
     角丸は 4px。見出しの下に敷く金のラインは1章のFVワードマークと同じ。
   ============================================================ */

/* ---- 52-1 記事本体の面 ----
   親テーマの article.single-post は白背景＋影。暗地に置き換え、
   上端にだけ金のヘアラインを入れて「記事の紙面」であることを示す。
   （セレクタは article を含めてクラス1＋要素2。親の article.single-post に勝つ） */
.single-post-main{ padding:clamp(28px, 4vw, 48px) 0 clamp(56px, 7vw, 88px); }

.single-post-main article.single-post{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.09);
  border-top:2px solid var(--vio-gold);
  border-radius:4px;
  box-shadow:0 18px 44px rgba(0,0,0,.35);
  padding:clamp(24px, 4vw, 48px) clamp(18px, 4vw, 52px);
}

/* ---- 52-2 メタ（日付・カテゴリー）----
   42章のカード（.news-item__date / __cat）と同じ値にする。 */
.single-post-main .single-post__date{
  font-family:var(--font-crest);
  color:var(--vio-gold-hi);
  letter-spacing:.06em;
  font-size:.9rem;
}
.single-post-main .single-post__date svg{ color:var(--vio-gold); }

/* カテゴリーは a なので、32章の a:not(.btn)（クラス2＋要素3）に
   文字色を持っていかれる。クラス3にして白へ戻す（ホバーだけ金）。 */
.single-post-main .single-post__meta .single-post__cat{
  font-size:.75rem; font-weight:700; letter-spacing:.04em; line-height:1.4;
  color:#fff;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.22);
  padding:4px 10px;
  border-radius:4px;
}
.single-post-main .single-post__meta .single-post__cat:hover{
  border-color:var(--vio-gold);
  color:var(--vio-gold-hi);
  opacity:1;
}

/* ---- 52-3 アイキャッチ ---- */
.single-post-main .single-post__thumbnail{
  border-radius:4px;
  border:1px solid rgba(255,255,255,.09);
  background:linear-gradient(135deg, var(--vio-violet), var(--vio-ink));
}

/* ---- 52-4 本文の地の文 ----
   純白は暗地だとにじむので、白82%を基準にする（32章の --lp-text と同系）。 */
.single-post-main .single-post__content{
  color:rgba(255,255,255,.82);
  font-size:clamp(.95rem, 1.4vw, 1.02rem);
  line-height:1.95;
}
.single-post-main .single-post__content p{
  color:rgba(255,255,255,.82);
  margin:0 0 1.6em;
}
.single-post-main .single-post__content > *:first-child{ margin-top:0; }
.single-post-main .single-post__content > *:last-child{ margin-bottom:0; }

/* 太字は金のハイライトで拾う（白のままだと地の文と差が出ないため）*/
.single-post-main .single-post__content strong,
.single-post-main .single-post__content b{
  color:var(--vio-gold-hi);
  font-weight:700;
}

/* ---- 52-5 見出し ----
   h2 … 白文字＋下罫線、その左端に金のライン（1章のFVワードマークと同じ形）
   h3 … 金文字＋左の金の縦線
   h4 … 白文字＋行頭に短い金のダッシュ */
.single-post-main .single-post__content h2{
  position:relative;
  color:#fff;
  font-family:inherit;
  font-size:clamp(1.22rem, 2.1vw, 1.5rem);
  font-weight:700;
  line-height:1.5;
  letter-spacing:.02em;
  margin:2.6em 0 1em;
  padding:0 0 12px;
  border-bottom:1px solid rgba(255,255,255,.14);
}
.single-post-main .single-post__content h2::after{
  content:"";
  position:absolute; left:0; bottom:-1px;
  width:64px; height:2px;
  background:linear-gradient(90deg, var(--vio-gold), var(--vio-gold-hi));
}

.single-post-main .single-post__content h3{
  color:var(--vio-gold-hi);
  font-size:clamp(1.06rem, 1.7vw, 1.2rem);
  font-weight:700;
  line-height:1.6;
  margin:2.2em 0 .8em;
  padding-left:14px;
  border-left:3px solid var(--vio-gold);
}

.single-post-main .single-post__content h4{
  position:relative;
  color:#fff;
  font-size:clamp(1rem, 1.5vw, 1.06rem);
  font-weight:700;
  line-height:1.6;
  margin:1.9em 0 .6em;
  padding-left:18px;
}
.single-post-main .single-post__content h4::before{
  content:"";
  position:absolute; left:0; top:.72em;
  width:10px; height:2px;
  background:var(--vio-gold);
}

/* ---- 52-6 リンク ----
   32章の a:not(.btn)（クラス2＋要素3）に勝つため、クラス3で書く。
   ホバーは同 :hover（クラス3＋要素3）が相手なのでクラス4にする。 */
.single-post-main .single-post .single-post__content a{
  color:var(--vio-gold-hi);
  text-decoration:underline;
  text-decoration-color:rgba(205,164,81,.55);
  text-underline-offset:4px;
  text-decoration-thickness:1px;
  transition:color .2s ease, text-decoration-color .2s ease;
}
.single-post-main .single-post .single-post__content a:hover,
.single-post-main .single-post .single-post__content a:focus-visible{
  color:#fff;
  text-decoration-color:var(--vio-gold);
}

/* ---- 52-7 リスト ----
   親テーマの style.css がリセットで ul,ol { list-style:none } を当てており、
   本文中の箇条書きから点も番号も消えていた。本文の中だけ戻す。
   マーカーだけ金にして、文字は地の文と同じ明るさに保つ。 */
.single-post-main .single-post__content ul,
.single-post-main .single-post__content ol{
  margin:1.4em 0;
  padding-left:1.6em;
}
.single-post-main .single-post__content ul{ list-style:disc outside; }
.single-post-main .single-post__content ol{ list-style:decimal outside; }
.single-post-main .single-post__content ul ul{ list-style:circle outside; }
.single-post-main .single-post__content li{
  color:rgba(255,255,255,.82);
  margin-bottom:.55em;
}
.single-post-main .single-post__content li::marker{
  color:var(--vio-gold);
  font-weight:700;
}
.single-post-main .single-post__content li:last-child{ margin-bottom:0; }
/* 入れ子は詰める（親のマージンが二重に効くのを防ぐ）*/
.single-post-main .single-post__content li > ul,
.single-post-main .single-post__content li > ol{ margin:.5em 0; }

/* ---- 52-8 引用 ----
   左に金の縦線、地は白5%。親テーマのクリーム色の面を置き換える。 */
.single-post-main .single-post__content blockquote{
  margin:1.8em 0;
  padding:20px 24px;
  border-left:3px solid var(--vio-gold);
  border-radius:0 4px 4px 0;
  background:rgba(255,255,255,.05);
  color:rgba(255,255,255,.78);
  font-style:normal;
}
.single-post-main .single-post__content blockquote p{
  color:rgba(255,255,255,.78);
}
.single-post-main .single-post__content blockquote cite{
  display:block;
  margin-top:12px;
  font-family:var(--font-crest);
  font-size:.85rem;
  font-style:normal;
  letter-spacing:.04em;
  color:var(--vio-gold-hi);
}
.single-post-main .single-post__content blockquote cite::before{ content:"— "; }

/* ---- 52-9 画像・figure ---- */
.single-post-main .single-post__content figure{
  margin:2em 0;
}
.single-post-main .single-post__content img{
  display:block;
  width:100%;
  height:auto;
  border-radius:4px;
  border:1px solid rgba(255,255,255,.09);
}
/* 幅指定を持つ小さい画像まで引き伸ばさない（幅は原寸まで）*/
.single-post-main .single-post__content img[width]{
  width:auto;
  max-width:100%;
}
.single-post-main .single-post__content figcaption,
.single-post-main .single-post__content .wp-element-caption{
  margin-top:10px;
  font-size:.82rem;
  line-height:1.7;
  color:rgba(255,255,255,.52);
}

/* ---- 52-10 テーブル ----
   ヘッダー行は紫地＋金文字。行の区切りは白9%のヘアラインだけにして、
   一覧のリスト（42-5）と同じ「線で並べる」見せ方に揃える。 */
.single-post-main .single-post__content figure.wp-block-table{
  overflow-x:auto;                 /* SPで横に溢れる表はここだけスクロールさせる */
  -webkit-overflow-scrolling:touch;
}
.single-post-main .single-post__content table{
  width:100%;
  min-width:min(100%, 420px);
  border-collapse:collapse;
  margin:1.8em 0;
  background:transparent;
}
.single-post-main .single-post__content figure.wp-block-table table{ margin:0; }

.single-post-main .single-post__content th,
.single-post-main .single-post__content td{
  padding:12px 16px;
  border:1px solid rgba(255,255,255,.12);
  font-size:.92rem;
  line-height:1.7;
  text-align:left;
  vertical-align:top;
  color:rgba(255,255,255,.82);
}
.single-post-main .single-post__content th{
  background:var(--vio-violet);
  color:var(--vio-gold-hi);
  font-weight:700;
  letter-spacing:.04em;
  white-space:nowrap;
}
.single-post-main .single-post__content tbody tr:nth-child(even) td{
  background:rgba(255,255,255,.03);
}

/* ---- 52-11 その他のブロック（コード・区切り線）---- */
.single-post-main .single-post__content code{
  padding:2px 6px;
  border-radius:3px;
  background:rgba(255,255,255,.09);
  color:var(--vio-gold-hi);
  font-size:.9em;
}
.single-post-main .single-post__content pre{
  margin:1.8em 0;
  padding:18px 20px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:4px;
  background:rgba(0,0,0,.35);
  color:rgba(255,255,255,.82);
  overflow-x:auto;
}
.single-post-main .single-post__content pre code{
  padding:0; background:none; color:inherit;
}
.single-post-main .single-post__content hr{
  margin:2.4em 0;
  border:0;
  border-top:1px solid rgba(255,255,255,.12);
}

/* ---- 52-12 タグ・シェア（記事下のフッター）---- */
.single-post-main .single-post__tags,
.single-post-main .single-post__share{
  border-top:1px solid rgba(255,255,255,.09);
}
/* タグも a。カテゴリーと同じ理由でクラス3で書く。 */
.single-post-main .single-post__tags .single-post__tag{
  font-size:.75rem; font-weight:700; letter-spacing:.04em;
  color:rgba(255,255,255,.72);
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.22);
  border-radius:4px;
  padding:4px 10px;
}
.single-post-main .single-post__tags .single-post__tag:hover{
  background:rgba(255,255,255,.12);
  border-color:var(--vio-gold);
  color:var(--vio-gold-hi);
}
.single-post-main .single-post__share-label{
  font-family:var(--font-crest);
  letter-spacing:.08em;
  color:rgba(255,255,255,.55);
}

/* SNSボタンのアイコンは currentColor。32章の a:not(.btn) に金を入れられて
   X（黒地）・Facebook（青地）・LINE（緑地）のロゴまで金になっていたので、
   クラス3にして白へ戻す。ここは各SNSの地色が決まっているので白が正。 */
.single-post-main .single-post__share .single-post__share-btn,
.single-post-main .single-post__share .single-post__share-btn:hover{
  color:#fff;
}

/* ---- 52-13 前後の記事ナビ ----
   親テーマは白い面＋紫文字。暗地では紫が沈んで読めないので、
   タイトルは白、ホバーで金＋白4.5%の淡い地（42-5のリストと同じ手触り）。 */
.post-nav{ border-top-color:rgba(255,255,255,.12); }

.post-nav .post-nav__link{
  border:1px solid transparent;
  border-radius:4px;
  transition:background .2s ease, border-color .2s ease;
}
.post-nav .post-nav__link:hover{
  background:rgba(255,255,255,.045);
  border-color:rgba(255,255,255,.12);
  box-shadow:none;
}
.post-nav .post-nav__link svg{ color:var(--vio-gold); }
.post-nav .post-nav__label{
  font-family:var(--font-crest);
  letter-spacing:.08em;
  color:rgba(255,255,255,.5);
}
.post-nav .post-nav__title{ color:#fff; transition:color .2s ease; }
.post-nav .post-nav__link:hover .post-nav__title{ color:var(--vio-gold-hi); }

/* 親テーマの前後ナビ中央にある「一覧へ戻る」ボタンは出さない。
   記事下のフッター導線（footer.php の「お知らせ一覧へ戻る」）と役割が
   重複していて、金のボタンが2つ並ぶと視線の行き先が割れるため。
   親テーマ single.php を子にコピーせず、CSSだけで落とす。 */
.post-nav .post-nav__list-btn{ display:none; }

/* ---- 52-14 SP ---- */
@media (max-width:767px){
  .single-post-main .single-post__content h2{ margin:2.2em 0 .9em; }
  .single-post-main .single-post__content h3{ margin:1.9em 0 .7em; }
  .single-post-main .single-post__content blockquote{ padding:16px 18px; }
  .single-post-main .single-post__content th,
  .single-post-main .single-post__content td{ padding:10px 12px; font-size:.86rem; }
  .single-post-main .single-post__content figure{ margin:1.6em 0; }
}

/* ============================================================
   53) 試合詳細ページ（single-match.php／子テーマで上書き）

   36-B章で暗色化そのものは済んでいる。ここで足すのは、子テーマ版
   テンプレートで新しく入れた3つだけ。

     ① 前後の試合ナビ（.fcv-mnav）
        親テーマの .single-match-nav は投稿日順・タイトルだけの
        小さなリンクで、片側しか無いと右端にぽつんと残って
        「導線」に見えなかった。カード2枚の対で置き直す。
     ② 試合レポート本文（.match-report-content）の組版
   （スコアボードと試合情報は 57章に移した）

   ● 詳細度メモ（32章・36-2章に勝つための最低ライン）
       body:not(.home) main p / li / h2 …… クラス1＋要素3
         → body.single-match .match-report-content p（クラス2）で勝てる
       body.single-match main a:not(.btn) … クラス2＋要素3
         → .single-match-meta-card を1段挟んでクラス3にする
       body.single-match main a:not(.btn):hover … クラス3＋要素3
         → 上に :hover を足してクラス4にする
     52章（お知らせ詳細）と同じ数え方をそのまま持ってきている。

   ● 本文の見た目は 52章（お知らせ詳細）と同じ値にしてある。
     「レポートも投稿詳細と同じ組版で読める」ことが要件なので、
     どちらか片方だけ数値を変えないこと。
   ============================================================ */

/* ---- 53-1 ヒーロー上段のタグ列は廃止 ----
   大会名はスコアボード（＝12章の試合カード）の .fx-card__comp が持ち、
   カテゴリー／種別は「試合情報」テーブル（57-B）の行として出す。 */

/* ---- 53-2 前後の試合ナビ ----
   ・カード2枚を等幅で対に置く（片側が無くても左右のバランスが崩れない。
     テンプレート側は空セルに .fcv-mnav__empty を出している）
   ・「前の試合／次の試合」＋相手名＋日付の3行。タイトルだけだと
     どちらが過去か分からなかった。 */
body.single-match .fcv-mnav{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin:26px 0 0;
}
body.single-match .fcv-mnav__empty{ display:block; }

body.single-match .fcv-mnav .fcv-mnav__link{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
  padding:16px 20px;
  color:#fff;
  text-decoration:none;
  background:var(--mt-panel);
  border:1px solid var(--mt-line);
  border-radius:0;                       /* カードは角丸なし（4章）*/
  transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
/* 次の試合は矢印を右端に置き、中身も右寄せにして左右で鏡像にする */
body.single-match .fcv-mnav .fcv-mnav__link--next{
  flex-direction:row-reverse;
  text-align:right;
}

body.single-match .fcv-mnav .fcv-mnav__link:hover,
body.single-match .fcv-mnav .fcv-mnav__link:focus-visible{
  background:var(--mt-panel-hi);
  border-color:var(--mt-violet-line);
}
body.single-match .fcv-mnav .fcv-mnav__link--prev:hover{ transform:translateX(-2px); }
body.single-match .fcv-mnav .fcv-mnav__link--next:hover{ transform:translateX(2px); }

body.single-match .fcv-mnav__arrow{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:32px;
  height:32px;
  border-radius:999px;
  color:var(--mt-lilac);
  background:rgba(0,0,0,.3);
  box-shadow:inset 0 0 0 1px var(--mt-violet-line);
  transition:color .2s ease, background .2s ease;
}
body.single-match .fcv-mnav .fcv-mnav__link:hover .fcv-mnav__arrow{
  color:#fff;
  background:var(--mt-violet-fill);
}

/* 相手エンブレム。スコアボードと同じ NO EMBLEM フォールバックが入るので、
   ロゴ未設定のクラブでも枠が空かず、左右のカードの高さが揃う。 */
body.single-match .fcv-mnav__crest{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:44px;
  height:44px;
}
body.single-match .fcv-mnav__crest picture{ width:100%; height:100%; display:flex; }
body.single-match .fcv-mnav__crest img{ width:100%; height:100%; object-fit:contain; }

body.single-match .fcv-mnav__body{
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
  flex:1 1 auto;
}
body.single-match .fcv-mnav__label{
  font-family:var(--font-crest);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.14em;
  color:var(--vio-gold-hi);
}
body.single-match .fcv-mnav__title{
  font-size:.95rem;
  font-weight:700;
  line-height:1.45;
  color:#fff;
  /* 相手名が長いクラブでも1行に収める */
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.single-match .fcv-mnav__date{
  font-family:var(--font-num);
  font-variant-numeric:tabular-nums;
  font-weight:400;                       /* Bebas Neue は400のみ（36-20と同じ理由）*/
  font-size:.82rem;
  letter-spacing:.06em;
  color:rgba(255,255,255,.6);
}

/* 日付と結果チップ（スコア or 予定）を1行に。次の試合カードは鏡像なので右寄せ */
body.single-match .fcv-mnav__meta{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:2px;
  min-width:0;
}
body.single-match .fcv-mnav__link--next .fcv-mnav__meta{ justify-content:flex-end; }
/* 結果チップ。色の意味づけはスコアボードのバッジ（57-5）と揃える */
body.single-match .fcv-mnav__chip{
  padding:1px 9px;
  border-radius:var(--mt-tag-radius);
  font-family:var(--font-num);
  font-variant-numeric:tabular-nums;
  font-weight:400;
  font-size:.8rem;
  letter-spacing:.06em;
  line-height:1.6;
  white-space:nowrap;
  color:#fff;
}
body.single-match .fcv-mnav__chip--win{
  background:linear-gradient(135deg,#6b41c4 0%,#3c2378 100%);
  box-shadow:inset 0 0 0 1px rgba(205,164,81,.55);
}
body.single-match .fcv-mnav__chip--draw{
  background:rgba(255,255,255,.10);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.3);
}
body.single-match .fcv-mnav__chip--lose{
  background:rgba(176,52,42,.85);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
}
body.single-match .fcv-mnav__chip--upcoming{
  font-family:inherit;
  font-size:.7rem;
  font-weight:700;
  color:rgba(255,255,255,.8);
  background:rgba(255,255,255,.07);
  box-shadow:inset 0 0 0 1px var(--mt-line);
}

/* 一覧へ戻るボタンは前後ナビの下。両者が近すぎると1つの塊に見えるので離す */
body.single-match .single-match-back{ margin-top:22px; }

@media (max-width:600px){
  body.single-match .fcv-mnav{ grid-template-columns:1fr; gap:10px; }
  /* 1列になったら空セルは場所を取らない */
  body.single-match .fcv-mnav__empty{ display:none; }
  /* 縦積みでは鏡像にせず、どちらも左から読ませる */
  body.single-match .fcv-mnav .fcv-mnav__link--next{
    flex-direction:row;
    text-align:left;
  }
  body.single-match .fcv-mnav .fcv-mnav__link{ padding:14px 16px; }
  body.single-match .fcv-mnav__crest{ width:38px; height:38px; }
}

/* ============================================================
   53-3 試合レポート本文（.match-report-content）

   値はすべて 52章（お知らせ詳細）と同じ。片方だけ触らないこと。
   ============================================================ */

/* 地の文：純白は暗地でにじむので白82% */
body.single-match .match-report-content{
  color:rgba(255,255,255,.82);
  font-size:clamp(.95rem, 1.4vw, 1.02rem);
  line-height:1.95;
}
body.single-match .match-report-content p{
  color:rgba(255,255,255,.82);
  margin:0 0 1.6em;
}
body.single-match .match-report-content > *:first-child{ margin-top:0; }
body.single-match .match-report-content > *:last-child{ margin-bottom:0; }

/* 太字は金で拾う（白のままだと地の文と差が出ない）*/
body.single-match .match-report-content strong,
body.single-match .match-report-content b{
  color:var(--vio-gold-hi);
  font-weight:700;
}

/* ---- 見出し ----
   h2 … 白文字＋下罫線、左端に金のライン
   h3 … 金文字＋左の金の縦線
   h4 … 白文字＋行頭に短い金のダッシュ
   ※ .single-match-meta-card__heading（カードの見出し）とは別物。
     あちらは h3 なので、本文側は必ず .match-report-content で囲って書く。 */
body.single-match .match-report-content h2{
  position:relative;
  color:#fff;
  font-size:clamp(1.22rem, 2.1vw, 1.5rem);
  font-weight:700;
  line-height:1.5;
  letter-spacing:.02em;
  margin:2.6em 0 1em;
  padding:0 0 12px;
  border-bottom:1px solid rgba(255,255,255,.14);
}
body.single-match .match-report-content h2::after{
  content:"";
  position:absolute; left:0; bottom:-1px;
  width:64px; height:2px;
  background:linear-gradient(90deg, var(--vio-gold), var(--vio-gold-hi));
}

body.single-match .match-report-content h3{
  color:var(--vio-gold-hi);
  font-size:clamp(1.06rem, 1.7vw, 1.2rem);
  font-weight:700;
  line-height:1.6;
  margin:2.2em 0 .8em;
  padding:0 0 0 14px;
  border-left:3px solid var(--vio-gold);
  border-bottom:0;                      /* 親の h3 下罫線を消す */
}
body.single-match .match-report-content h3::after{ content:none; }

body.single-match .match-report-content h4{
  position:relative;
  color:#fff;
  font-size:clamp(1rem, 1.5vw, 1.06rem);
  font-weight:700;
  line-height:1.6;
  margin:1.9em 0 .6em;
  padding-left:18px;
}
body.single-match .match-report-content h4::before{
  content:"";
  position:absolute; left:0; top:.72em;
  width:10px; height:2px;
  background:var(--vio-gold);
}

/* ---- リンク ----
   36-2章がこのページのリンクを白一色にしているため、本文中では
   リンクだと分からなくなる。ここだけ金＋下線に戻す。
   （クラス3／ホバーはクラス4。冒頭の詳細度メモを参照）*/
body.single-match .single-match-meta-card .match-report-content a{
  color:var(--vio-gold-hi);
  text-decoration:underline;
  text-decoration-color:rgba(205,164,81,.55);
  text-underline-offset:4px;
  text-decoration-thickness:1px;
  transition:color .2s ease, text-decoration-color .2s ease;
}
body.single-match .single-match-meta-card .match-report-content a:hover,
body.single-match .single-match-meta-card .match-report-content a:focus-visible{
  color:#fff;
  text-decoration-color:var(--vio-gold);
}

/* ---- リスト ----
   親テーマ style.css のリセットが ul,ol { list-style:none } を当てていて、
   本文の箇条書きから点も番号も消えていた。本文の中だけ戻す。 */
body.single-match .match-report-content ul,
body.single-match .match-report-content ol{
  margin:1.4em 0;
  padding-left:1.6em;
}
body.single-match .match-report-content ul{ list-style:disc outside; }
body.single-match .match-report-content ol{ list-style:decimal outside; }
body.single-match .match-report-content ul ul{ list-style:circle outside; }
body.single-match .match-report-content li{
  color:rgba(255,255,255,.82);
  margin-bottom:.55em;
}
body.single-match .match-report-content li::marker{
  color:var(--vio-gold);
  font-weight:700;
}
body.single-match .match-report-content li:last-child{ margin-bottom:0; }
body.single-match .match-report-content li > ul,
body.single-match .match-report-content li > ol{ margin:.5em 0; }

/* ---- 引用 ---- */
body.single-match .match-report-content blockquote{
  margin:1.8em 0;
  padding:20px 24px;
  border-left:3px solid var(--vio-gold);
  border-radius:0 4px 4px 0;
  background:rgba(255,255,255,.05);
  color:rgba(255,255,255,.78);
  font-style:normal;
}
body.single-match .match-report-content blockquote p{
  color:rgba(255,255,255,.78);
  margin-bottom:0;
}
body.single-match .match-report-content blockquote cite{
  display:block;
  margin-top:12px;
  font-family:var(--font-crest);
  font-size:.85rem;
  font-style:normal;
  letter-spacing:.04em;
  color:var(--vio-gold-hi);
}
body.single-match .match-report-content blockquote cite::before{ content:"— "; }

/* ---- 画像・図版 ---- */
body.single-match .match-report-content img{
  max-width:100%;
  height:auto;
  border-radius:4px;
}
body.single-match .match-report-content figure{ margin:2em 0; }
body.single-match .match-report-content figcaption{
  margin-top:10px;
  font-size:.82rem;
  line-height:1.7;
  color:rgba(255,255,255,.55);
  text-align:center;
}

/* ---- 表 ---- */
body.single-match .match-report-content table{
  width:100%;
  border-collapse:collapse;
  margin:1.8em 0;
  font-size:.9rem;
}
body.single-match .match-report-content th,
body.single-match .match-report-content td{
  padding:12px 14px;
  border:1px solid var(--mt-line);
  text-align:left;
  color:rgba(255,255,255,.82);
}
body.single-match .match-report-content th{
  background:rgba(255,255,255,.06);
  color:#fff;
  font-weight:700;
}

/* ---- 区切り線 ---- */
body.single-match .match-report-content hr{
  margin:2.4em 0;
  border:0;
  border-top:1px solid var(--mt-line);
}

@media (max-width:600px){
  body.single-match .match-report-content blockquote{ padding:16px 18px; }
  body.single-match .match-report-content th,
  body.single-match .match-report-content td{ padding:10px 12px; font-size:.86rem; }
  body.single-match .match-report-content figure{ margin:1.6em 0; }
}

/* ============================================================
   54) クラブ概要ページ：チーム沿革のタイムライン（.fcv-history）

   親テーマの沿革は「年｜出来事」の2列テーブル（.about-history__body table、
   37-4章で暗色化済み）だが、実データは1年に4〜5件の戦績が並ぶ年があり、
   セルの中で改行が潰れて読めなくなる。そこで既定表示だけ
   「年（左）｜出来事の箇条書き（右）」の縦タイムラインに組み替える。
   ※管理画面の「沿革」に入力があるときは、従来どおりそのHTMLを出す
     （page-about.php の分岐）。テーブル用のCSSは37-4章に残してある。

   節目の年（2016 / 2021）だけ、箇条書きの下に集合写真を1枚置く。
   ============================================================ */
body.page-template-page-about .fcv-history{
  max-width:900px;
  margin:0 auto;
  padding:0;
  list-style:none;
}

/* 年の列幅は4桁＋「年」が折り返さない値。右寄せにして縦線と等間隔にそろえる。 */
body.page-template-page-about .fcv-history__item{
  display:grid;
  grid-template-columns:96px minmax(0, 1fr);
}

/* ---- 54-1 年（FV画像・沿革テーブルと同じコンデンス体＋金）---- */
body.page-template-page-about .fcv-history__year{
  margin:0;
  /* 右の余白は縦線のドット（直径9px＋光輪4px）を避けるぶん。詰めると「年」に重なる。 */
  padding-right:18px;
  text-align:right;
  line-height:1.15;
  color:var(--vio-gold);
  white-space:nowrap;
}
body.page-template-page-about .fcv-history__num{
  font-family:var(--font-num);
  font-variant-numeric:tabular-nums;
  font-weight:400;                       /* Bebas Neue はウェイト400のみ */
  font-size:clamp(1.4rem, 3vw, 1.75rem);
  letter-spacing:.04em;
}
body.page-template-page-about .fcv-history__unit{
  margin-left:3px;
  font-size:.78rem;
  font-weight:700;
  color:var(--lp-muted);
}

/* ---- 54-2 縦線とドット ----
   縦線は本文側の左境界線そのもの。最後の年だけ線を透明にして、
   グリッドの桁位置は保ったまま線だけ止める（padding も落とす）。 */
body.page-template-page-about .fcv-history__body{
  position:relative;
  padding:0 0 clamp(30px, 3.6vw, 44px) clamp(22px, 2.6vw, 30px);
  border-left:1px solid rgba(205,164,81,.28);
}
body.page-template-page-about .fcv-history__item:last-child .fcv-history__body{
  border-left-color:transparent;
  padding-bottom:0;
}
body.page-template-page-about .fcv-history__body::before{
  content:"";
  position:absolute;
  left:-5px;
  top:.5em;
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--vio-gold);
  box-shadow:0 0 0 4px rgba(205,164,81,.14);
}

/* ---- 54-3 出来事の箇条書き ----
   1年に複数件ある年（2022〜2026）は行ごとに分けて読ませる。
   行頭は金の短い罫線。中黒だと年の金ドットと粒が競合するため。 */
body.page-template-page-about .fcv-history__list{
  margin:0;
  padding:0;
  list-style:none;
}
/* li.〜 と要素名を足しているのは、30/31章の「本文のリスト」指定
   （body.page-template-page-about .about-section li / body:not(.home) main li、
   ともに詳細度 0-2-2）に負けて --lp-text に戻されるため。 */
body.page-template-page-about li.fcv-history__entry{
  position:relative;
  padding-left:16px;
  font-size:clamp(.86rem, 1.6vw, .93rem);
  line-height:1.9;
  color:#fff;                            /* 出来事の本文。年（金）と役割を分ける */
}
body.page-template-page-about .fcv-history__entry::before{
  content:"";
  position:absolute;
  left:0;
  top:.92em;
  width:8px;
  height:1px;
  background:rgba(205,164,81,.65);
}
body.page-template-page-about .fcv-history__entry + .fcv-history__entry{
  margin-top:4px;
}

/* ---- 54-4 節目の年の集合写真 ----
   本文の右にはみ出させず、箇条書きの下に置く。原寸は4:3。 */
body.page-template-page-about .fcv-history__figure{
  margin:clamp(14px, 1.8vw, 18px) 0 0;
  max-width:440px;
}
body.page-template-page-about .fcv-history__img{
  display:block;
  width:100%;
  height:auto;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 14px 34px rgba(0,0,0,.42);
}
body.page-template-page-about .fcv-history__caption{
  margin-top:10px;
  font-size:.76rem;
  line-height:1.75;
  color:var(--lp-muted);
}

/* ---- 54-5 レスポンシブ ----
   年の列は詰めるだけで、縦線とドットの構造はそのまま使う。 */
@media (max-width:640px){
  body.page-template-page-about .fcv-history__item{
    grid-template-columns:74px minmax(0, 1fr);
  }
  body.page-template-page-about .fcv-history__year{ padding-right:14px; }
  body.page-template-page-about .fcv-history__num{ font-size:1.2rem; }
  body.page-template-page-about .fcv-history__body{ padding-left:18px; }
  body.page-template-page-about .fcv-history__figure{ max-width:100%; }
}

/* ============================================================
   55) トップに戻るボタン（.fcv-backtotop）
       全ページ共通。footer.php が </footer> の直後に出し、
       表示・非表示の切替は assets/js/back-to-top.js。

       ・意匠はサイト共通の「暗い面＋金の細枠」に合わせ、ホバーで金の面を
         出す（3章のボタン／44章のCTAリンクと同じ考え方）。
       ・z-index:800 … ヘッダー(1000)とSPドロワー(1001)より下。メニューを
         開いている間はドロワーの背後に隠れる。フッターの中身は
         .site-footer > * が z-index:1（170行目付近）だが、フッター自体が
         重なり文脈を作らないため、この 800 が常に前面に来る。
   ============================================================ */
.fcv-backtotop{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:800;

  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:52px;
  height:52px;
  padding:0;
  border:1px solid rgba(205,164,81,.55);
  border-radius:50%;
  background:linear-gradient(150deg, rgba(60,35,120,.96), rgba(13,9,24,.96));
  color:#fff;
  cursor:pointer;
  box-shadow:0 10px 26px rgba(13,9,24,.45);
  -webkit-appearance:none;
  appearance:none;

  /* 既定は非表示。JSが .is-visible を付けたときだけ出す。
     visibility も切るのは、透明のままだとクリックを吸ってしまうため。 */
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity .3s ease, transform .3s ease, visibility .3s ease,
             border-color .25s ease, background-color .25s ease, color .25s ease;
}
.fcv-backtotop.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.fcv-backtotop:hover,
.fcv-backtotop:focus-visible{
  border-color:var(--vio-gold);
  background:linear-gradient(135deg, var(--vio-gold), var(--vio-gold-hi));
  color:var(--vio-ink);
}
.fcv-backtotop:focus-visible{
  outline:2px solid var(--vio-gold-hi);
  outline-offset:3px;
}
.fcv-backtotop:active{ transform:translateY(1px); }

/* 矢印は currentColor。ホバーで面が金になると自動で黒字になる。 */
.fcv-backtotop__icon{
  display:block;
  width:20px;
  height:20px;
  fill:currentColor;
}

/* ---- SP（〜768px）：親指の届く位置に少しだけ寄せ、サイズを詰める ---- */
@media (max-width:768px){
  .fcv-backtotop{
    right:14px;
    bottom:14px;
    width:46px;
    height:46px;
  }
  .fcv-backtotop__icon{ width:18px; height:18px; }
}

/* iOS のホームバー分を避ける（対応外のブラウザでは 0 になるだけ） */
@supports (padding:env(safe-area-inset-bottom)){
  .fcv-backtotop{ bottom:calc(20px + env(safe-area-inset-bottom)); }
  @media (max-width:768px){
    .fcv-backtotop{ bottom:calc(14px + env(safe-area-inset-bottom)); }
  }
}

@media (prefers-reduced-motion:reduce){
  .fcv-backtotop{ transition:opacity .01s linear, visibility .01s linear; transform:none; }
  .fcv-backtotop.is-visible{ transform:none; }
  .fcv-backtotop:active{ transform:none; }
}


/* ============================================================
   56) フッター直前の「戻る」導線（.fcv-hometop）

   footer.php が <footer> の直前に出す（トップページ以外の全ページ）。
   55章の .fcv-backtotop がページ最上部へのスクロールなのに対して、
   こちらは「別のページへ移動する」導線。行き先はページ種別で切り替わり、
   詳細ページ（お知らせ／選手／試合）はそれぞれの一覧へ、それ以外は
   トップページへ戻す。見た目はどちらも同じ（ラベルだけ変わる）。

   ・意匠   : 44章の .fixtures-link をそのまま使い、下層ページの一覧ボタン
              （試合結果一覧・試合予定一覧など）と揃える。
   ・ホバー : 44章は白の面がうっすら乗るだけだが、ここはページの最終導線
              なので金の面に反転させる（選手募集フォームの送信ボタンと
              同じ考え方）。矢印もインクに落として面の上で読ませる。
   ・地     : main の外なので交互背景（32章）には乗らない。黒（--lp-ink）を
              敷いて、直上のセクションとフッター上端の金ラインの間の
              余白として成立させる。
   ============================================================ */
.fcv-hometop{
  background:var(--lp-ink);
  padding:44px 0 52px;
}
.fcv-hometop__inner{
  display:flex;
  justify-content:center;
}

/* 44章の .fixtures-link:hover（白の面）と同じ詳細度。後に書いて上書きする。 */
.fixtures-link--home:hover,
.fixtures-link--home:focus-visible{
  border-color:var(--vio-gold);
  background:linear-gradient(135deg, var(--vio-gold), var(--vio-gold-hi));
  color:var(--vio-ink);
  box-shadow:0 10px 26px rgba(205,164,81,.28);
}
.fixtures-link--home:hover .fixtures-link__arrow,
.fixtures-link--home:focus-visible .fixtures-link__arrow{
  border-color:var(--vio-ink);
}

@media (max-width:768px){
  .fcv-hometop{ padding:34px 0 40px; }
}

@media (prefers-reduced-motion:reduce){
  .fixtures-link--home:hover,
  .fixtures-link--home:focus-visible{ box-shadow:none; }
}

/* ============================================================
   57) 試合詳細ページ：スコアボード（.single-match-scoreboard）

   親テーマ由来の .single-match-hero も、その後に置いた独自の .fcv-sb も、
   トップの試合カード（.fx-card / 12章）とは別マークアップ・別配色だった。
   .fcv-sb は会場が金の帯、大会名がタグ列（カテゴリー・種別つき）、
   日付に年が付く…と、同じ試合を指す面なのに情報の並びまで違っていた。

   そこで詳細ページも .fx-card そのものを描画するようテンプレートを変え
   （single-match.php → fcviolets_render_fixture_card()）、この章は
   「そのカードを詳細ページ用に大きくする」だけを持つ。配色・書体・
   並び順の指定は一切書かない ＝ 12章を直せば3面が同時に動く。

   拡大するもの（1カラムのとき／1024px以下）：
     エンブレム 82px → 132px ／ 日付 2.9rem → 4.2rem ／
     スコア 3.5rem → 4.8rem ／ チーム名 .9rem → 1.2rem
   1025px以上は 57-B の2カラム（左カード／右レポート）になり、列幅を
   トップのカードと同じ466pxに固定するのでここでの拡大はしない
   （＝12章の素のカードがそのまま出る）。
   ============================================================ */
/* カード自体は12章のまま。詳細ページでは主役なので影だけ少し強める。
   ここは幅に関係なく効かせる（2カラムでも1カラムでも主役は主役）。 */
body.single-match .single-match-scoreboard .fx-card{
  box-shadow:0 22px 54px rgba(0,0,0,.55);
}

/* ---- 57-1 1カラムのときの拡大 ----
   1025px以上ではカードとレポートが左右2カラムに並び（57-B）、
   カードの列幅はトップのカードと同じ466pxになる。そこでは
   12章の素のサイズがそのまま正解なので、拡大は1カラムのときだけ効かせる。 */
@media (max-width:1024px){
  /* コンテナ幅いっぱいに広げると、両サイドのエンブレムが遠く離れて
     スコアと噛み合わなくなる。縦横比をトップに近づけるため上限幅を持たせる。 */
  body.single-match .single-match-scoreboard{
    max-width:820px;
    margin:0 auto 28px;
  }

  /* 会場・大会名・本文の余白を一段ずつ広げる（比率は12章のまま） */
  body.single-match .single-match-scoreboard .fx-card__venue{
    padding-top:19px;
    font-size:1.02rem;
  }
  body.single-match .single-match-scoreboard .fx-card__body{
    gap:24px;
    padding:30px 32px 34px;
  }
  body.single-match .single-match-scoreboard .fx-card__comp{
    font-size:1rem;
    padding-bottom:14px;
  }

  /* 日付＋曜日＋KICK OFF */
  body.single-match .single-match-scoreboard .fx-card__date{ font-size:clamp(3rem, 7vw, 4.2rem); }
  body.single-match .single-match-scoreboard .fx-card__dow{ font-size:1.35rem; }
  body.single-match .single-match-scoreboard .fx-card__time{ font-size:1.7rem; }
  body.single-match .single-match-scoreboard .fx-card__ko{ font-size:.78rem; }

  /* エンブレム｜スコア｜エンブレム */
  body.single-match .single-match-scoreboard .fx-card__teams--result .fx-card__crest,
  body.single-match .single-match-scoreboard .fx-card__teams--next   .fx-card__crest{ --fx-crest:132px; }
  body.single-match .single-match-scoreboard .fx-card__teams--result .fx-card__team-name{ font-size:1.2rem; }
  body.single-match .single-match-scoreboard .fx-card__teams--next   .fx-card__team-name{ font-size:1.35rem; }
  body.single-match .single-match-scoreboard .fx-card__badge{ font-size:.95rem; }
  body.single-match .single-match-scoreboard .fx-card__scorenum{ font-size:clamp(3.6rem, 9vw, 4.8rem); }
  body.single-match .single-match-scoreboard .fx-card__pk{ font-size:.86rem; }
}

/* レポート本文が無い試合は 57-B の2カラムにならない（--split が付かない）。
   このとき 1025px以上ではカードの幅を止めるものが無く、コンテナ幅1160pxまで
   寝そべってしまう。2カラム時の左列と同じ 466px（＝トップのカードと同寸）で
   止め、本文の有無でカードの大きさが変わらないようにする。 */
@media (min-width:1025px){
  body.single-match .single-match-top:not(.single-match-top--split) .single-match-scoreboard{
    max-width:466px;
    margin:0 auto 28px;
  }
}

/* 自チームのエンブレムだけ小さく見える問題の補正（12-c章と同じ理由・同じ倍率）。
   logo-square.png は 288×288 だが盾の絵柄は 166×212 しかなく、周囲に余白が入る
   （絵柄の高さ＝画像の 212/288 ＝ 0.736）。相手側の no-emblem 画像や、外部から
   もらう正方形ロゴは枠いっぱいに描かれているので、同じ枠に contain で収めると
   自チームだけ約26%小さく見える。1 / 0.736 ≒ 1.36 倍で見た目の大きさを揃える。
   ※ logo-square.png を余白なしで描き直したらこの補正は外すこと。 */
body.single-match .single-match-scoreboard .fx-card__team--own .fx-card__crest img{ transform:scale(1.36); }

/* ---- 57-2 SP ----
   375px 幅では エンブレム｜スコア｜エンブレム の3列に 132px は入らない。
   12章のSP指定（560px以下）より一段だけ大きい値で止める。 */
@media (max-width:560px){
  body.single-match .single-match-scoreboard .fx-card__venue{ padding-top:14px; font-size:.9rem; }
  body.single-match .single-match-scoreboard .fx-card__body{ gap:18px; padding:22px 16px 26px; }
  body.single-match .single-match-scoreboard .fx-card__comp{ font-size:.86rem; padding-bottom:12px; }
  body.single-match .single-match-scoreboard .fx-card__dow{ font-size:1.1rem; }
  body.single-match .single-match-scoreboard .fx-card__time{ font-size:1.4rem; }
  body.single-match .single-match-scoreboard .fx-card__teams--result .fx-card__crest{ --fx-crest:78px; }
  body.single-match .single-match-scoreboard .fx-card__teams--next   .fx-card__crest{ --fx-crest:100px; }
  body.single-match .single-match-scoreboard .fx-card__teams--result .fx-card__team-name{ font-size:.86rem; }
  body.single-match .single-match-scoreboard .fx-card__teams--next   .fx-card__team-name{ font-size:1.05rem; }
  body.single-match .single-match-scoreboard .fx-card__badge{ font-size:.72rem; }
  body.single-match .single-match-scoreboard .fx-card__scorenum{ font-size:3rem; }
  body.single-match .single-match-scoreboard .fx-card__pk{ font-size:.74rem; }
}
/* auto-phrase は和文を文節で折るので、収まらない長さでも欧字や単語の途中では
   割れない（相手名「長野アンビシャスFC」が「…F／C」と割れた対策）。
   12章のSP指定は overflow-wrap:anywhere なので、対応ブラウザだけ上書きする。 */
@supports (word-break:auto-phrase){
  @media (max-width:560px){
    body.single-match .single-match-scoreboard .fx-card__team-name{
      word-break:auto-phrase;
      overflow-wrap:break-word;
    }
  }
}
/* 320〜359px。中央のスコアが広いぶん両サイドの列が痩せるので、
   スコアとエンブレムをもう一段だけ詰めてチーム名の列幅を稼ぐ。 */
@media (max-width:359px){
  body.single-match .single-match-scoreboard .fx-card__teams--result .fx-card__crest{ --fx-crest:60px; }
  body.single-match .single-match-scoreboard .fx-card__teams--next   .fx-card__crest{ --fx-crest:86px; }
  /* 320px 実測：チーム名の列幅は 88px。12px（.74rem）だと
     「長野アンビシャスFC」が「長野アンビシャ／スFC」と語の途中で折れる。
     11px（.68rem）まで詰めると「長野アンビシャス／FC」で折れる。 */
  body.single-match .single-match-scoreboard .fx-card__teams--result .fx-card__team-name{ font-size:.68rem; }
  body.single-match .single-match-scoreboard .fx-card__scorenum{ font-size:2.2rem; }
  body.single-match .single-match-scoreboard .fx-card__badge{ font-size:.6rem; letter-spacing:.06em; }
}

/* ============================================================
   57-B 上段2カラム（.single-match-top）

   以前ここは「スコアボード＋試合情報（.fcv-minfo）」の対だった。
   試合情報は日時・対戦相手・スコア・会場・大会名を並べていたが、
   それは全部 12章のカードが持っている情報で、同じ内容を2枚並べて
   いただけだった。試合情報ごと外し、右の列にはレポート本文を上げる。
   ＝ 左カード／右レポート。

   列幅：左は 466px 固定。
     トップページの試合カード（10章 .front-fixtures：幅960pxの2列＋gap28px
     ＝ (960-28)/2 = 466px）と同じ幅にする。トップのカードは 1025px 以上なら
     ビューポートによらず 466px で固定なので、こちらも fr ではなく px で置く。
     同じ試合カードが2つの面に出るので、幅まで同じなら「トップのカードが
     そのまま置いてある」と読める。12章の素のサイズはこの466pxを前提に
     組んであるので、この章にカードの拡大・縮小指定は要らない
     （以前あったクレスト・スコア・日付の上書きは、列幅を fr で伸縮させて
     いたころの帳尻合わせだったので消した）。

   右のレポートは残り全部（minmax(0,1fr)）。
     1200px（コンテナ上限＝内側1160px）で 666px、
     1025px（内側985px）で 491px。カードが固定なので、画面が広いぶんは
     すべて本文側に乗る。カードは「会場・大会名・日付・スコア」を出すだけの
     固定量の面で幅を与えても情報が増えないが、レポートは本文＋見出し＋画像が
     入る可変の面なので、余りを渡す先はこちらが正しい。

   なぜ 1025px から
     1025px でも 466 + 28 + 491 = 985 に収まり、カードの3分割
     （エンブレム｜スコア｜エンブレム）も 466px なのでトップと同じに保たれる。
     これより狭いと右の本文が読み幅として苦しくなるので縦積みに戻す。
     ＝ 57章の拡大指定も 1024px 以下だけに効かせている。

   --split が付くのはレポート本文があるときだけ（single-match.php の
   $has_report）。本文の無い試合で2カラムにすると、カードだけが
   半分の幅で取り残されるため。

   高さは揃えない。カードは中身ぶんの高さで置き、レポートが長ければ
   右だけが下に伸びる（align-items:start）。
   ============================================================ */
@media (min-width:1025px){
  body.single-match .single-match-top--split{
    display:grid;
    grid-template-columns:466px minmax(0,1fr);   /* 左＝トップのカードと同寸 */
    align-items:start;                  /* 高さ揃えはしない */
    gap:28px;
    margin-bottom:28px;
  }
  /* 縦積み時の中央寄せ（57-1）と下マージンは、行側が持つので解除する */
  body.single-match .single-match-top--split .single-match-scoreboard{
    max-width:none;
    margin:0;
  }
  body.single-match .single-match-top--split .single-match-meta-card{ margin:0; }
}


/* ============================================================
   58) お問い合わせフォームの送信ボタン（親テーマ page-contact.php）

   親テーマのテンプレートは .btn.btn--primary のままなので、CSSだけで
   入団申込フォーム（39-5 の .rec-form__submit-btn）と同じ意匠に揃える。
   ・border の !important: カスタマイザーの斜めカット（inc/customizer.php）が
     .btn に border:none !important を吐く。あれは wp_head:20 で custom.css
     より後に出るうえ !important なので、こちらも !important で返す。
   ・clip-path:none: 同じく斜めカットの平行四辺形を戻す。
   ・詳細度: .contact-entry-form .contact-form__submit-btn.btn（クラス3）で
     3章の .btn.btn--accent（クラス2）や親テーマの .form-group--submit .btn
     （クラス2）を上回るようにしている。
   ============================================================ */
.contact-entry-form .contact-form__submit-btn.btn{
  clip-path:none;
  border:1px solid rgba(255,255,255,.5) !important;
  border-radius:0;
  background:transparent;
  color:#fff;
  padding:16px 52px;
  min-width:0;
  font-family:var(--font-display);
  font-size:.95rem;
  font-weight:600;
  letter-spacing:.12em;
  text-indent:.12em;                 /* letter-spacing 分の右寄りを相殺 */
  opacity:1;
  text-shadow:none;
  box-shadow:none;
  cursor:pointer;
  transition:border-color .25s ease, background-color .25s ease, color .25s ease;
}
.contact-entry-form .contact-form__submit-btn.btn:hover,
.contact-entry-form .contact-form__submit-btn.btn:focus-visible{
  border-color:var(--vio-gold) !important;
  background:linear-gradient(135deg, var(--vio-gold), var(--vio-gold-hi));
  color:var(--vio-ink);
  transform:none;
  box-shadow:0 10px 26px rgba(205,164,81,.32);
}
.contact-entry-form .contact-form__submit-btn.btn:disabled{
  opacity:.6;
  cursor:not-allowed;
}

/* 送信ボタンの上に区切り線を入れて、入団申込フォームと同じ間の取り方にする */
.contact-entry-form .form-group--submit{
  margin-top:32px;
  padding-top:26px;
  border-top:1px solid var(--lp-line-soft);
}

@media (max-width:600px){
  .contact-entry-form .contact-form__submit-btn.btn{ width:100%; padding-inline:24px; }
}


/* ============================================================
   59) 選手詳細ページの読み込みアニメーション（single-player.php）

   47章で組んだ面はそのままに、「上から順に立ち上がる」動きだけを足す。
   レイアウトに触る値（margin / height / width）は一切動かさず、
   opacity と transform だけで演出する（＝リフローが起きないので、
   既存の組みが動きで崩れることがない）。

   JS は使わない。要素はパースされた時点で animation が走り出すので、
   IntersectionObserver も「読み込み完了クラス」も要らない。
   （前後の選手ナビのようなファーストビュー外の要素も、スクロールで
   たどり着くころには出終わっている＝見えないまま終わることはない。）

   時間の設計:
     ヒーロー（パンくず → 英字名 → 選手名 → 下端の帯）で目線を作り、
     写真が立ち上がり、その中で背番号と金のラインが決まる。
     右列は カテゴリ → ポジション → 名前 → 英字名 → コメント の順。
     基本情報の各行は 55ms ずつずらして下へ流す（stagger）。
     全体で約 1.4 秒。これ以上長いと「待たされている」に変わる。

   stagger の添字:
     基本情報の行数は選手ごとに違う（管理画面のカスタム項目ぶん増える）。
     nth-child を並べると項目数の上限を CSS 側に持つことになるので、
     single-player.php のループから --pd-i を出力して掛け算している。

   transform の衝突について:
     47-5 の前後ナビは :hover で translateX する。アニメーションを個々の
     リンクに当てると、終了後も animation の transform（fill-mode:both）が
     hover の指定に勝って動かなくなるため、ナビは親（.fcv-pd-nav）ごと
     1枚で動かしている。
   ============================================================ */

body.fcv-pd-page{
  --pd-ease:cubic-bezier(.22,.75,.3,1);   /* 終わりぎわで静かに止まるカーブ */
}

/* ---- 59-1 キーフレーム ---- */
@keyframes fcvPdRise{
  from{ opacity:0; transform:translate3d(0,18px,0); }
  to  { opacity:1; transform:none; }
}
/* 行送りの細かい要素用。距離を詰めて、連続して出ても騒がしくしない。 */
@keyframes fcvPdRiseSm{
  from{ opacity:0; transform:translate3d(0,10px,0); }
  to  { opacity:1; transform:none; }
}
/* 写真は面が大きいので、わずかに引き（scale）を付けて奥から出す */
@keyframes fcvPdPhoto{
  from{ opacity:0; transform:translate3d(0,26px,0) scale(.965); }
  to  { opacity:1; transform:none; }
}
/* 背番号は写真の左下から差し込む */
@keyframes fcvPdNo{
  from{ opacity:0; transform:translate3d(-16px,0,0); }
  to  { opacity:1; transform:none; }
}
/* 罫線・帯は左から引く（transform:scaleX なので幅は動かない） */
@keyframes fcvPdLine{
  from{ transform:scaleX(0); }
  to  { transform:scaleX(1); }
}
/* ヒーロー背後の透かし文字。translateY(-50%) は親テーマの縦センタリング
   （starter/assets/css/archive.css）なので、キーフレーム側でも保持する。 */
@keyframes fcvPdWatermark{
  from{ opacity:0; transform:translate(34px,-50%); }
  to  { opacity:1; transform:translate(0,-50%); }
}
/* 写真を一度だけ光がなでる */
@keyframes fcvPdShine{
  from{ opacity:0; transform:translate3d(-160%,0,0) skewX(-18deg); }
  25% { opacity:1; }
  to  { opacity:0; transform:translate3d(320%,0,0) skewX(-18deg); }
}

/* ---- 59-2 フェードイン＋スライドアップ（共通指定）----
   個々の待ち時間は 59-3 で --pd-delay として渡す。 */
body.fcv-pd-page .breadcrumb,
body.fcv-pd-page .archive-hero__en,
body.fcv-pd-page .archive-hero__title,
body.fcv-pd-page .fcv-pd__cats,
body.fcv-pd-page .fcv-pd__badges,
body.fcv-pd-page .fcv-pd__name,
body.fcv-pd-page .fcv-pd__name-en,
body.fcv-pd-page .fcv-pd__comment,
body.fcv-pd-page .fcv-pd-block:not(.fcv-pd-block--inline),
body.fcv-pd-page .fcv-pd-nav{
  animation:fcvPdRise .72s var(--pd-ease) both;
  animation-delay:var(--pd-delay, 0s);
}
/* span は inline のままだと transform が効かない（英字名だけの行なので
   inline-block にしても改行位置は変わらない） */
body.fcv-pd-page .archive-hero__en{ display:inline-block; }

/* ---- 59-3 待ち時間 ---- */
body.fcv-pd-page .breadcrumb{ --pd-delay:.06s; }
body.fcv-pd-page .archive-hero__en{ --pd-delay:.14s; }
body.fcv-pd-page .archive-hero__title{ --pd-delay:.20s; }
body.fcv-pd-page .fcv-pd__cats{ --pd-delay:.38s; }
body.fcv-pd-page .fcv-pd__badges{ --pd-delay:.44s; }
body.fcv-pd-page .fcv-pd__name{ --pd-delay:.50s; }
body.fcv-pd-page .fcv-pd__name-en{ --pd-delay:.56s; }
body.fcv-pd-page .fcv-pd__comment{ --pd-delay:.64s; }
body.fcv-pd-page .fcv-pd-block:not(.fcv-pd-block--inline){ --pd-delay:.80s; }
body.fcv-pd-page .fcv-pd-nav{ --pd-delay:.88s; }

/* ヒーロー透かし文字と下端の帯 */
body.fcv-pd-page .archive-hero::before{
  animation:fcvPdWatermark 1.1s var(--pd-ease) both;
}
body.fcv-pd-page .archive-hero__stripe{
  transform-origin:left center;
  animation:fcvPdLine .8s var(--pd-ease) .30s both;
}

/* ---- 59-4 写真まわり ---- */
body.fcv-pd-page .fcv-pd__photo-frame{
  animation:fcvPdPhoto .8s var(--pd-ease) .26s both;
}
/* 枠上端の金ライン（47-2 の ::before）は写真が出てから引く */
body.fcv-pd-page .fcv-pd__photo-frame::before{
  transform-origin:left center;
  animation:fcvPdLine .7s var(--pd-ease) .58s both;
}
body.fcv-pd-page .fcv-pd__no{
  animation:fcvPdNo .7s var(--pd-ease) .66s both;
}
/* 光の帯。single-player.php の .fcv-pd__shine（枠内に絶対配置）。
   最終フレームが opacity:0 なので、走り終われば無いのと同じ。 */
body.fcv-pd-page .fcv-pd__shine{
  position:absolute;
  top:-20%; bottom:-20%; left:-45%;
  width:42%;
  z-index:3;
  pointer-events:none;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.20), transparent);
  opacity:0;
  animation:fcvPdShine 1.15s ease-in-out .78s both;
}

/* ---- 59-5 基本情報の行送り（stagger）----
   --pd-i は single-player.php が 0,1,2… で出力する行の添字。 */
body.fcv-pd-page .fcv-pd-data__row{
  animation:fcvPdRiseSm .6s var(--pd-ease) both;
  animation-delay:calc(.70s + var(--pd-i, 0) * 55ms);
}

/* ---- 59-6 動きを減らす設定 ----
   47-6 の :hover 側と同じ扱いで、こちらは全部止めて最終状態で置く。 */
@media (prefers-reduced-motion:reduce){
  body.fcv-pd-page .breadcrumb,
  body.fcv-pd-page .archive-hero::before,
  body.fcv-pd-page .archive-hero__en,
  body.fcv-pd-page .archive-hero__title,
  body.fcv-pd-page .archive-hero__stripe,
  body.fcv-pd-page .fcv-pd__photo-frame,
  body.fcv-pd-page .fcv-pd__photo-frame::before,
  body.fcv-pd-page .fcv-pd__no,
  body.fcv-pd-page .fcv-pd__cats,
  body.fcv-pd-page .fcv-pd__badges,
  body.fcv-pd-page .fcv-pd__name,
  body.fcv-pd-page .fcv-pd__name-en,
  body.fcv-pd-page .fcv-pd__comment,
  body.fcv-pd-page .fcv-pd-data__row,
  body.fcv-pd-page .fcv-pd-block:not(.fcv-pd-block--inline),
  body.fcv-pd-page .fcv-pd-nav{
    animation:none;
  }
  /* 光の帯は演出そのものなので、出さずに畳む */
  body.fcv-pd-page .fcv-pd__shine{ display:none; }
}


/* ============================================================
   60) 404ページ（親テーマ 404.php／CSSだけで暗色化）

   親テーマの 404.php は <style> をテンプレート内（＝<body>の中）に持つ。
   custom.css は <head> なので、同じ詳細度だと必ず親のインラインが勝つ。
   そのため、この章のセレクタはすべて body.error404 を先頭に付けて
   クラス1つ＋要素1つぶん上を取る（短くすると白地に戻る）。

   意匠の出どころ:
     ・ヒーロー … 36-3（試合情報）と同じ紫→黒。帯は3pxの金グラデーション。
     ・カード   … 32章の --lp-panel（白カードの代わりになる面）＋金のヘアライン。
     ・ボタン   … 58章の送信ボタン（白アウトライン → 金グラデーションのホバー）。
     ・フォーム … 32章の .form-input（暗い面＋金のフォーカスリング）。
   ============================================================ */

/* ---- 60-1 ヒーロー ----
   親は --color-primary のベタ塗り。他の下層ページと同じ紫→黒に差し替える。 */
body.error404 .archive-hero--404{
  background:linear-gradient(135deg,#3c2378 0%,#1e1338 58%,#0d0918 100%);
  padding-bottom:44px;
}
body.error404 .archive-hero__stripe{
  height:3px;
  background:linear-gradient(90deg,var(--vio-royal) 0%,var(--vio-violet) 58%,var(--vio-gold) 100%);
}
/* 背景の巨大な「404」。親は right:-20px で右端が切れて“見切れ”に見えるので
   内側へ寄せ、数字なので他ページと同じ数字書体（--font-num）に揃える。 */
body.error404 .archive-hero--404::before{
  font-family:var(--font-num);
  font-weight:400;                       /* Bebas Neue はウェイト400のみ */
  right:clamp(8px, 4vw, 56px);
  color:rgba(255,255,255,.03);
}
/* 見出しの「404」も数字フォントへ。金の Page Not Found と対にする。 */
body.error404 .archive-hero__title{
  font-family:var(--font-num);
  font-size:clamp(2.6rem, 6vw, 4.2rem);
  font-weight:400;                       /* Bebas Neue はウェイト400のみ */
  line-height:1;
  letter-spacing:.04em;
}

/* ---- 60-2 本文の地 ----
   親の .error404-main{background:var(--color-white)} を黒に戻す。
   下の .fcv-hometop（56章）を隠すぶん、下余白は少し詰める。 */
body.error404 .error404-main{
  background:var(--lp-ink);
  padding:72px 0 88px;
}

/* ---- 60-3 メッセージ ----
   アイコンの丸は親が primary の6%塗り。暗地ではほぼ消えるので金の細枠にする。 */
body.error404 .error404-icon{
  background:rgba(205,164,81,.08);
  border:1px solid var(--lp-line);
  color:var(--vio-gold);
}
body.error404 .error404-message__lead{
  color:#fff;
  font-size:clamp(1.15rem, 2.4vw, 1.45rem);
}
body.error404 .error404-message__sub{ color:var(--lp-muted); }

/* ---- 60-4 カード（検索／トップページ）----
   32章の白カード置き換えと同じ面。角は落として下層ページの他の面に揃える。 */
body.error404 .error404-card{
  background:var(--lp-panel);
  border:1px solid var(--lp-line);
  border-radius:0;
}
/* ラベルは英字見出しと同じ扱い（金＋字間広め）。日本語なので大文字化はしない。 */
body.error404 .error404-card__label{
  color:var(--vio-gold);
  font-family:var(--font-display);
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:none;
}

/* ---- 60-5 検索フォーム ----
   入力欄は32章の .form-input と同じ作り（暗い面・白文字・金のフォーカス）。
   親は白地なのでここで上書きする。 */
body.error404 .error404-card--search .search-field{
  background:rgba(255,255,255,.06);
  border:1px solid var(--lp-line-soft);
  border-radius:0;
  color:#fff;
}
body.error404 .error404-card--search .search-field::placeholder{ color:var(--lp-muted); }
body.error404 .error404-card--search .search-field:focus{
  border-color:var(--vio-gold);
  box-shadow:none;
  outline:2px solid rgba(205,164,81,.45);
  outline-offset:1px;
}
/* 送信ボタンは58章の送信ボタンと同じ意匠（白アウトライン→金グラデーション）。 */
body.error404 .error404-card--search .search-submit{
  background:transparent;
  border:1px solid rgba(255,255,255,.5);
  border-radius:0;
  color:#fff;
  padding:11px 24px;
  font-family:var(--font-display);
  font-size:.85rem;
  font-weight:600;
  letter-spacing:.12em;
  text-indent:.12em;                 /* letter-spacing 分の右寄りを相殺 */
  opacity:1;
  transition:border-color .25s ease, background-color .25s ease, color .25s ease;
}
body.error404 .error404-card--search .search-submit:hover,
body.error404 .error404-card--search .search-submit:focus-visible{
  opacity:1;
  border-color:var(--vio-gold);
  background:linear-gradient(135deg, var(--vio-gold), var(--vio-gold-hi));
  color:var(--vio-ink);
}

/* ---- 60-6 トップページへ戻るボタン ----
   ・border の !important: カスタマイザーの斜めカット（inc/customizer.php）が
     .btn に border:none !important を吐く。あれは wp_head:20 で custom.css
     より後に出るうえ !important なので、こちらも !important で返す。
   ・clip-path:none: 同じく斜めカットの平行四辺形を戻す。
   ・詳細度: クラス3＋要素1。親の .error404-home-btn（クラス1）と
     3章の .btn--primary（クラス2）の両方を上回る。 */
body.error404 .error404-card--home .error404-home-btn.btn{
  clip-path:none;
  border:1px solid rgba(255,255,255,.5) !important;
  border-radius:0;
  background:transparent;
  color:#fff;
  padding:14px 20px;
  font-family:var(--font-display);
  font-size:.88rem;
  font-weight:600;
  line-height:1;                     /* 高さを検索欄（46px）と揃える */
  letter-spacing:.12em;
  text-indent:.12em;
  opacity:1;
  text-shadow:none;
  box-shadow:none;
  transition:border-color .25s ease, background-color .25s ease, color .25s ease;
}
body.error404 .error404-card--home .error404-home-btn.btn:hover,
body.error404 .error404-card--home .error404-home-btn.btn:focus-visible{
  border-color:var(--vio-gold) !important;
  background:linear-gradient(135deg, var(--vio-gold), var(--vio-gold-hi));
  color:var(--vio-ink);
  transform:none;
  box-shadow:0 10px 26px rgba(205,164,81,.28);
}
/* 家アイコンは stroke="currentColor"。通常時だけ金にして、ホバーの金地では
   文字と一緒にインクへ落とす（金地×金線で消えるのを避ける）。 */
body.error404 .error404-card--home .error404-home-btn.btn svg{ color:var(--vio-gold); }
body.error404 .error404-card--home .error404-home-btn.btn:hover svg,
body.error404 .error404-card--home .error404-home-btn.btn:focus-visible svg{ color:var(--vio-ink); }

/* ---- 60-7 よく見られているページ ----
   親は白地＋紫文字。32章の「main のリンクは一律で金」も重なって
   白地に金文字（1.9:1）になっていたので、面ごと暗地に置き換える。 */
body.error404 .error404-links{ border-top:1px solid var(--lp-line); }
body.error404 .error404-links__title{
  color:var(--vio-gold);
  font-family:var(--font-display);
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:none;
}
body.error404 main .error404-links__list a{
  background:var(--lp-panel);
  border:1px solid var(--lp-line-soft);
  border-radius:0;
  color:#fff;
  transition:border-color .25s ease, background-color .25s ease, color .25s ease, transform .25s ease;
}
body.error404 main .error404-links__list a:hover,
body.error404 main .error404-links__list a:focus-visible{
  border-color:var(--vio-gold);
  background:rgba(205,164,81,.10);
  color:var(--vio-gold-hi);
  transform:translateX(2px);
}
/* 矢印は常に金。stroke="currentColor" なので color で渡す。 */
body.error404 .error404-links__list a svg{ color:var(--vio-gold); opacity:1; }
body.error404 .error404-links__list a:hover svg{ transform:translateX(2px); }

/* ---- 60-8 フッター直前の「戻る」導線を畳む ----
   56章の .fcv-hometop は全下層ページに出るが、このページは 60-6 の
   「トップページへ戻る」が主導線なので、同じラベルのボタンが2つ並ぶ。
   404だけ隠して導線を1本に絞る。 */
body.error404 .fcv-hometop{ display:none; }

@media (max-width:768px){
  body.error404 .error404-main{ padding:56px 0 64px; }
  /* 縦積みになる検索フォーム側に合わせて、ボタンも幅いっぱいに */
  body.error404 .error404-card--search .search-submit{ padding:13px 24px; }
}

@media (prefers-reduced-motion:reduce){
  body.error404 main .error404-links__list a:hover{ transform:none; }
  body.error404 .error404-links__list a:hover svg{ transform:none; }
  body.error404 .error404-card--home .error404-home-btn.btn:hover{ box-shadow:none; }
}

/* ============================================================
   61) プライバシーポリシーページ（親テーマ page-privacy.php／CSSだけで暗色化）

   親テーマのテンプレートは白地の想定で書かれており、しかも配色を
   テンプレート末尾の <style> で直書きしている。あれは body 内＝custom.css
   より後に出るので、同じ詳細度では勝てない。この章はすべて
   body.page-template-page-privacy を前置して（クラス2以上）上書きする。
   セレクタを短くすると親のインライン <style> に戻るので縮めないこと。

   ● 直っていなかった実害（暗色化で色が反転して起きていたもの）
     - .privacy-list li::before が --color-secondary（＝#0d0918 の黒）。
       地も黒なので箇条書きの点が完全に消えていた。
     - .privacy-intro / .privacy-contact-box の地が --color-bg。32章で
       --color-bg を --lp-ink に差し替えているため、地と同色＝面が消える。
     - 番号バッジが --color-primary（紺）。黒地の上で 2.1:1 しか出ず沈む。
     - お問い合わせボタンが .btn--secondary のまま。カスタマイザーの斜め
       カット（border:none !important）も乗って、ただの太字テキストに見えていた。

   ● 意匠の方針
     見出し・番号・罫線・箇条書きの点をすべて金に寄せ、面は --lp-panel の
     暗パネル＋金のヘアラインで作る（32章のカードと同じ扱い）。
     ボタンは44章 .fixtures-link の白アウトライン＋金の矢印に合わせ、
     ホバーは56章／60章のページ最終導線と同じ金の面へ反転させる。

   ● 可読性
     法務文なので本文は 0.95rem→1rem、行間 1.9→2.05 に上げ、
     条間の余白も広げる。見出しは font-display（Oswald）で他ページと揃える。
   ============================================================ */

/* ---- 61-1 全体の幅とリズム ---- */
body.page-template-page-privacy .privacy-main{
  padding:72px 0 96px !important;   /* テンプレートの style="padding:80px 0" を上書き */
}
body.page-template-page-privacy .privacy-inner{
  max-width:860px;
}

/* アンカー（目次からの飛び先）がスティッキーヘッダーの下に潜らないように。
   値は38章の --header-total-h（PC 93px / SP 53px）をそのまま使う。 */
body.page-template-page-privacy .privacy-section{
  scroll-margin-top:calc(var(--header-total-h, 80px) + 20px);
}

/* ---- 61-2 リード文 ---- */
body.page-template-page-privacy .privacy-intro{
  background:var(--lp-panel);
  border:1px solid var(--lp-line-soft);
  border-left:3px solid var(--vio-gold);
  border-radius:0;
  padding:26px 30px;
  margin-bottom:44px;
  font-size:.98rem;
  line-height:2.05;
}
body.page-template-page-privacy .privacy-intro p{
  color:var(--lp-text);
  margin:0;
}

/* ---- 61-3 目次 ----
   32章に body:not(.home) .privacy-toc（クラス2）の暫定対応があるが、
   あちらは「白い面を暗くする」だけの応急処置。ここで意匠ごと置き換える。 */
body.page-template-page-privacy .privacy-toc{
  background:var(--lp-panel);
  border:1px solid var(--lp-line);      /* 金のヘアライン */
  border-radius:0;
  padding:30px 34px 26px;
  margin-bottom:56px;
}
body.page-template-page-privacy .privacy-toc__title{
  font-family:var(--font-display);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.18em;
  text-indent:.18em;                    /* letter-spacing の右余りを相殺 */
  text-transform:none;
  color:var(--vio-gold);
  margin-bottom:18px;
  padding-bottom:14px;
  border-bottom:1px solid var(--lp-line-soft);
}
body.page-template-page-privacy .privacy-toc__list{
  columns:2;
  column-gap:40px;
  padding-left:22px;
  margin:0;
}
body.page-template-page-privacy .privacy-toc__list li{
  margin-bottom:10px;
  break-inside:avoid;
  color:var(--lp-muted);
}
/* 番号は33章と同じコンデンス体。Bebas Neue はウェイト400のみ（太字合成を避ける）。 */
body.page-template-page-privacy .privacy-toc__list li::marker{
  font-family:var(--font-num);
  font-weight:400;
  color:var(--vio-gold);
}
/* 32章の body:not(.home) main a:not(.btn)（クラス2＋要素2）に勝つ詳細度で。 */
body.page-template-page-privacy main .privacy-toc__list a{
  display:inline-block;
  margin-left:.35em;                    /* Bebas は詰まって出るので番号との間を空ける */
  font-size:.92rem;
  line-height:1.7;
  color:var(--lp-text);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .2s ease, border-color .2s ease;
}
body.page-template-page-privacy main .privacy-toc__list a:hover,
body.page-template-page-privacy main .privacy-toc__list a:focus-visible{
  color:var(--vio-gold-hi);
  border-bottom-color:var(--vio-gold);
}

/* ---- 61-4 各条（見出し・番号バッジ・区切り） ---- */
body.page-template-page-privacy .privacy-section{
  margin-bottom:44px;
  padding-bottom:44px;
  border-bottom:none;                   /* 下の ::after のグラデ罫線に置き換える */
  position:relative;
}
/* 区切りは左から金→透明へ抜けるヘアライン。ベタの1本線より暗地で軽い。 */
body.page-template-page-privacy .privacy-section::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:1px;
  background:linear-gradient(90deg,
    rgba(205,164,81,.42) 0%,
    rgba(255,255,255,.10) 42%,
    rgba(255,255,255,0) 100%);
}
body.page-template-page-privacy .privacy-section:last-of-type{
  border-bottom:none;
  padding-bottom:0;
}
body.page-template-page-privacy .privacy-section:last-of-type::after{ display:none; }

body.page-template-page-privacy main .privacy-section__title{
  align-items:center;
  gap:16px;
  font-family:var(--font-display);
  font-size:1.22rem;
  font-weight:700;
  line-height:1.5;
  letter-spacing:.04em;
  color:#fff;
  margin-bottom:22px;
}
/* 番号バッジ：丸→角のない金のプレート。サイト全体が border-radius:0 基調なので
   円をやめる。32章の [class*="__num"] → 金（文字色）より後に書いて面ごと置換する。 */
body.page-template-page-privacy main .privacy-section__num{
  width:34px;
  height:34px;
  border-radius:0;
  background:linear-gradient(135deg, var(--vio-gold), var(--vio-gold-hi));
  color:var(--vio-ink);
  font-family:var(--font-num);
  font-size:1.05rem;
  font-weight:400;                      /* Bebas Neue はウェイト400のみ */
  line-height:1;
  padding-top:2px;                      /* Bebas はベースラインが高いので光学調整 */
  box-sizing:border-box;
  box-shadow:0 4px 14px rgba(205,164,81,.22);
}

/* ---- 61-5 本文 ---- */
body.page-template-page-privacy .privacy-section__body p{
  font-size:1rem;
  line-height:2.05;
  letter-spacing:.02em;
  color:var(--lp-text);
  margin-bottom:18px;
}
body.page-template-page-privacy .privacy-section__body strong{
  color:var(--vio-gold-hi);
  font-weight:700;
}

/* ---- 61-6 箇条書き ----
   親は --color-secondary（#0d0918）の丸。地も黒なので点が見えていなかった。
   フッターのメニューに合わせて短い金のダッシュにする。 */
body.page-template-page-privacy .privacy-list{
  margin:18px 0 20px;
  padding-left:2px;
}
body.page-template-page-privacy .privacy-list li{
  padding-left:26px;
  font-size:1rem;
  line-height:2.05;
  letter-spacing:.02em;
  margin-bottom:10px;
  color:var(--lp-text);
}
body.page-template-page-privacy .privacy-list li::before{
  top:.95em;                            /* line-height 2.05 の視覚的中央 */
  width:12px;
  height:1px;
  border-radius:0;
  background:var(--vio-gold);
}

/* ---- 61-7 お問い合わせ窓口ボックス ---- */
body.page-template-page-privacy .privacy-contact-box{
  background:var(--lp-panel);
  border:1px solid var(--lp-line);
  border-radius:0;
  padding:26px 30px 28px;
  margin-top:22px;
}
body.page-template-page-privacy main .privacy-contact-box__name{
  font-family:var(--font-display);
  font-size:1rem;
  font-weight:700;
  letter-spacing:.06em;
  color:var(--vio-gold);
  margin-bottom:10px;
  padding-bottom:12px;
  border-bottom:1px solid var(--lp-line-soft);
}
body.page-template-page-privacy .privacy-contact-box p{
  font-size:.96rem;
  line-height:1.9;
  color:var(--lp-text);
  margin-bottom:4px;
}

/* ---- 61-8 「お問い合わせフォームはこちら」ボタン ----
   意匠は44章 .fixtures-link（細い白アウトライン＋金の矢印）、ホバーは
   56章／60章のページ最終導線と同じ金の面への反転に揃える。

   ・border の !important : カスタマイザーの斜めカットが .btn へ
     border:none !important を吐く（wp_head:20 ＝ custom.css より後）。
     同じ !important で返すしかない。
   ・display の !important : テンプレートが a に style="display:inline-block"
     をインラインで持つ。矢印を ::after で並べるため inline-flex に上書きする。
     作者スタイルの !important はインラインの通常宣言より強い。
   ・clip-path:none : 斜めカットの平行四辺形を戻す。
   ・詳細度 : クラス3＋要素1。カスタマイザーの .btn（クラス1）と
     3章の .btn--accent 等（クラス2）の両方を上回る。 */
body.page-template-page-privacy .privacy-contact-box a.btn{
  display:inline-flex !important;
  align-items:center;
  gap:12px;
  clip-path:none;
  border:1px solid rgba(255,255,255,.32) !important;
  border-radius:0;
  background:transparent;
  color:#fff;
  padding:13px 24px;
  margin-top:18px !important;
  font-family:var(--font-display);
  font-size:.86rem;
  font-weight:600;
  line-height:1;
  letter-spacing:.12em;
  text-indent:.12em;
  text-decoration:none;
  text-shadow:none;
  box-shadow:none;
  opacity:1;
  transition:border-color .25s ease, background-color .25s ease, color .25s ease;
}
/* 矢印は44章と同じCSSシェブロン。テンプレートを触らずに足せるよう ::after で描く。 */
body.page-template-page-privacy .privacy-contact-box a.btn::after{
  content:"";
  flex:0 0 auto;
  width:6px;
  height:6px;
  border-top:1.5px solid var(--vio-gold);
  border-right:1.5px solid var(--vio-gold);
  transform:rotate(45deg);
  transition:transform .25s ease, border-color .25s ease;
}
body.page-template-page-privacy .privacy-contact-box a.btn:hover,
body.page-template-page-privacy .privacy-contact-box a.btn:focus-visible{
  border-color:var(--vio-gold) !important;
  background:linear-gradient(135deg, var(--vio-gold), var(--vio-gold-hi));
  color:var(--vio-ink);
  transform:none;
  box-shadow:0 10px 26px rgba(205,164,81,.28);
}
/* 金地の上では矢印も一緒にインクへ落とす（金地×金線だと消える）。 */
body.page-template-page-privacy .privacy-contact-box a.btn:hover::after,
body.page-template-page-privacy .privacy-contact-box a.btn:focus-visible::after{
  border-color:var(--vio-ink);
  transform:rotate(45deg) translate(2px, -2px);   /* 45度回転済みなので右移動は x+/y− */
}

/* ---- 61-9 制定日 ---- */
body.page-template-page-privacy .privacy-revised{
  margin-top:44px;
  padding-top:22px;
  border-top:1px solid var(--lp-line-soft);
  font-family:var(--font-num);          /* 33章と同じ。和文は Noto Sans JP に落ちる */
  font-weight:400;
  font-size:.9rem;
  letter-spacing:.06em;
  color:var(--lp-muted);
}

/* ---- 61-10 レスポンシブ ---- */
@media (max-width:768px){
  body.page-template-page-privacy .privacy-main{ padding:48px 0 64px !important; }
  body.page-template-page-privacy .privacy-toc__list{ columns:1; }
  body.page-template-page-privacy .privacy-toc{ padding:24px 22px 20px; margin-bottom:40px; }
  body.page-template-page-privacy .privacy-intro{ padding:22px 20px; margin-bottom:36px; }
  body.page-template-page-privacy main .privacy-section__title{
    font-size:1.08rem;
    gap:12px;
  }
  body.page-template-page-privacy main .privacy-section__num{ width:30px; height:30px; font-size:.98rem; }
  body.page-template-page-privacy .privacy-section__body p,
  body.page-template-page-privacy .privacy-list li{ font-size:.96rem; line-height:1.95; }
  body.page-template-page-privacy .privacy-contact-box{ padding:22px 20px 24px; }
  /* SPは押しやすいよう幅いっぱいに */
  body.page-template-page-privacy .privacy-contact-box a.btn{
    display:flex !important;
    justify-content:center;
    width:100%;
    box-sizing:border-box;
  }
}

@media (prefers-reduced-motion:reduce){
  body.page-template-page-privacy .privacy-contact-box a.btn,
  body.page-template-page-privacy .privacy-contact-box a.btn::after{ transition:none; }
  body.page-template-page-privacy .privacy-contact-box a.btn:hover{ box-shadow:none; }
  body.page-template-page-privacy .privacy-contact-box a.btn:hover::after{ transform:rotate(45deg); }
}
