/**
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/

/* ========================================
   選手紹介ページのスタイル
   ======================================== */

/* 選手詳細コンテナ */
/* メインプロフィールグループ（上の塊） */
.player-main-profile-group {
    background: rgba(30, 41, 59, 0.4); /* わずかに背景色をつけて塊を意識 */
    padding: 40px;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.05);
    margin-bottom: 60px; /* 試合情報との間隔を広く */
}
/* 全体コンテナ */
.player-detail-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 40px 20px;
    color: #FFFFFF;
    font-family: 'Helvetica Neue', Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

/* 2カラムレイアウト：写真と基本情報 */
.player-basic-info {
    display: flex;
    gap: 40px;
    margin-bottom: 60px;
    align-items: stretch;
}

/* 左側：写真カラム */
.player-photo-column {
    flex: 0 0 350px;
    position: relative;
}

.player-photo {
    width: 100%;
    height: 400px;
    border-radius: 4px;
    /* チームカラーの2色で二重枠線 */
    box-shadow: 
        10px -10px 0 -2px #223A70,
        10px -10px 0 0px #65BBE9;
    object-fit: cover;
    object-position: center 20%;
    aspect-ratio: 3 / 4;
}

/* 右側：基本情報カラム */
.player-info-column {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-left: 1px solid rgba(255,255,255,0.1);
    padding-left: 40px;
}

/* ポジションバッジ：大学カラーの赤をアクセントに */
.player-role-position {
    display: inline-flex;
    align-items: center;
    background: linear-gradient(90deg, #223A70, #65BBE9);
    color: #FFFFFF !important;
    padding: 6px 40px;
    font-size: 20px;
    font-weight: 900;
    letter-spacing: 0.1em;
    clip-path: polygon(10% 0, 100% 0, 90% 100%, 0 100%); /* 斜めのカッティング */
    margin: 0 0 25px 0 !important;
    text-transform: uppercase;
}

/* 氏名・学年 */
.player-grade-name {
    margin: 0 0 20px 0 !important;
    line-height: 1;
}

.player-grade-name strong {
    font-size: 48px;
    font-weight: 900;
    color: #FFFFFF;
    margin-right: 15px;
    text-shadow: 2px 2px 0px #223A70;
}

.player-grade-name {
    font-size: 20px;
    color: #65BBE9; /* ライトブルーで学年を表示 */
    font-weight: 700;
}

/* スペック情報（身長・体重・学部） */
.player-height-weight {
    font-size: 24px;
    font-weight: 800;
    margin: 0 0 15px 0 !important;
    color: #FFFFFF;
}

.player-faculty {
    font-size: 16px;
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 20px !important;
}

/* 出身校：大学カラーの「赤」をここに配置 */
.info-item.labeled {
    display: flex;
    align-items: center;
    margin-top: 10px;
}

.info-item.labeled .label {
    border-left: 4px solid #e11d48; /* 大学カラーの赤 */
    padding-left: 12px;
    color: #e11d48;
    font-weight: 900;
    font-size: 14px;
    margin-right: 15px;
}

.info-item.labeled .value {
    font-size: 18px;
    font-weight: 600;
}

/* きっかけ・強み・目標の1カラムエリア */
.player-personal-details {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    gap: 30px;
    border-top: 1px solid rgba(101, 187, 233, 0.2); /* チームカラーで区切り線 */
    padding-top: 30px;
}

/* 各質問ボックス */
.personal-box h3 {
    font-size: 16px;
    color: #65BBE9; /* チームカラー（水色） */
    margin-bottom: 10px;
    font-weight: 800;
    display: flex;
    align-items: center;
}

.personal-box h3::before {
    content: "";
    width: 4px;
    height: 16px;
    background: #e11d48; /* 大学カラー（赤）をアクセントに */
    margin-right: 12px;
}

.personal-box p {
    font-size: 16px;
    line-height: 1.8;
    color: #FFFFFF;
    padding-left: 16px; /* 見出しの線と揃える */
}

/* 試合記録セクション（独立） */
.player-match-section {
    padding: 0 20px;
}

/* シーズン毎のボックス（複数並ぶため下マージンを追加） */
.detail-box.match-history {
    background: #1e293b;
    border-left: 4px solid #223A70; /* チームカラー（濃紺） */
    border-radius: 8px;
    padding: 30px;
    margin-bottom: 40px; /* ボックス同士の間隔 */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* ホバー時の効果 */
.detail-box.match-history:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.4);
}

/* 最後のボックスはマージンなし */
.detail-box.match-history:last-child {
    margin-bottom: 0;
}

/* 試合情報の見出し */
.match-history h3,
.match-history h3.season-title {
    font-size: 22px;
    letter-spacing: 0.05em;
    margin-bottom: 25px;
    color: #FFFFFF;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    border-bottom: 2px solid rgba(101, 187, 233, 0.3);
    padding-bottom: 15px;
    font-weight: 800;
}

/* 今シーズンの見出しを強調 */
.match-history h3.season-title::before {
    content: "";
    width: 6px;
    height: 24px;
    background: #e11d48; /* 大学カラーの赤 */
    margin-right: 15px;
    border-radius: 2px;
}

/* 試合一覧テーブル */
.player-matches-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: rgba(15, 23, 42, 0.5);
    border-radius: 6px;
    overflow: hidden;
}

.player-matches-table thead {
    background: linear-gradient(135deg, #223A70, #1a2e5a);
}

.player-matches-table th {
    color: #65BBE9;
    font-weight: 700;
    text-align: left;
    padding: 15px 20px;
    font-size: 14px;
    letter-spacing: 0.05em;
    border-bottom: 2px solid #65BBE9;
}

.player-matches-table tbody tr {
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    transition: background-color 0.2s ease;
}

.player-matches-table tbody tr:last-child {
    border-bottom: none;
}

.player-matches-table tbody tr:hover {
    background-color: rgba(101, 187, 233, 0.1);
}

.player-matches-table td {
    padding: 15px 20px;
    color: #FFFFFF;
}

.player-matches-table td.match-date {
    font-weight: 600;
    color: #65BBE9;
    white-space: nowrap;
    width: 180px;
}

.player-matches-table td.match-name {
    font-size: 16px;
}

.player-matches-table a.match-link {
    color: #FFFFFF;
    text-decoration: none;
    transition: color 0.2s ease, padding-left 0.2s ease;
    display: inline-block;
}

.player-matches-table a.match-link:hover {
    color: #65BBE9;
    padding-left: 5px;
}

/* 試合データがない場合のメッセージ */
.detail-box.no-matches {
    background: rgba(30, 41, 59, 0.5);
    border-left: 4px solid #64748b;
    border-radius: 8px;
    padding: 30px;
    text-align: center;
}

.detail-box.no-matches p {
    color: #94a3b8;
    font-size: 16px;
    margin: 0;
}
@media (max-width: 992px) {
    .player-grade-name strong {
        font-size: 38px;
    }
}

/* スマホ対応 */
@media (max-width: 768px) {
    .player-detail-container {
        padding: 0;
    }
    .player-main-profile-group {
        padding: 20px;
    }
    .player-personal-details {
        margin-top: 25px;
        padding-top: 20px;
    }
    .player-basic-info {
        display: block;
    }
    .player-grade-name strong {
        font-size: 28px;
    }
    .player-photo {
        height: 350px;
    }
    /* 試合記録セクションのモバイル対応 */
    .player-match-section {
        padding: 0 10px;
    }
    
    .detail-box.match-history {
        padding: 20px 15px;
        margin-bottom: 30px;
    }
    
    .match-history h3.season-title {
        font-size: 18px;
        padding-bottom: 10px;
    }
    
    .match-history h3.season-title::before {
        width: 4px;
        height: 18px;
        margin-right: 10px;
    }
    
    /* テーブルを横スクロール可能に */
    .player-matches-table {
        font-size: 14px;
    }
    
    .player-matches-table th,
    .player-matches-table td {
        padding: 12px 15px;
        font-size: 14px;
    }
    
    .player-matches-table td.match-date {
        width: 120px;
        font-size: 13px;
    }
    
    .player-matches-table td.match-name {
        font-size: 14px;
    }
}

/* ========================================
   共通テーブルスタイル（戦績・試合日程・結果）
   ======================================== */
/* 1. 表の親要素（背景色の設定と余白） */
.entry-content {
    margin: 2em 0;             /* 前後のコンテンツとの間隔 */
}

/* 2. テーブルコンテナ */
.match-table-container {
    margin: 20px 0;
    overflow-x: auto;
}

/* 3. テーブル本体 */
.match-table {
    width: 100%;
    border-collapse: collapse;
    background-color: #fff;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    border-radius: 8px;
    overflow: hidden;
}

/* 4. テーブルヘッダー */
.match-table thead {
    background-color: #65BBE9;
}

.match-table thead th {
    padding: 15px 10px;
    text-align: center;
    font-weight: bold;
    color: #223A70;
    border-bottom: 2px solid #4A9FD1;
    font-size: 14px;
}

/* 5. テーブルボディ */
.match-table tbody tr {
    border-bottom: 1px solid #e0e0e0;
}

.match-table tbody tr:hover {
    background-color: #f8f9fa;
    transition: background-color 0.3s ease;
}

.match-table tbody tr:last-child {
    border-bottom: none;
}

.match-table tbody td {
    padding: 12px 10px;
    text-align: center;
    color: #333;
    font-size: 13px;
    vertical-align: middle;
}

/* 6. 最初の列（日付/シーズン）を強調 */
.match-table tbody td:first-child {
    font-weight: 500;
    color: #223A70;
}

/* 7. 試合結果列を強調 */
.match-table tbody td:nth-child(5) {
    font-weight: bold;
    color: #223A70;
}

/* 8. リンクスタイル */
.match-table a,
.match-detail-link {
    color: #223A70;
    text-decoration: none;
    font-weight: 500;
    transition: all 0.3s ease;
    border-bottom: 1px solid transparent;
}

.match-table a:hover,
.match-detail-link:hover {
    color: #65BBE9;
    border-bottom: 1px solid #65BBE9;
}

/* ========================================
   試合日程・結果ページ固有のスタイル
   ======================================== */
/* フィルターセクションのスタイル */
.match-filter-section {
    margin: 30px 0;
    padding: 20px;
    background-color: #f8f9fa;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.year-select-wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
}

.year-select-wrapper label {
    font-weight: 500;
    color: #223A70;
    margin: 0;
}

.year-select {
    padding: 8px 15px;
    font-size: 16px;
    border: 2px solid #65BBE9;
    border-radius: 5px;
    background-color: #fff;
    color: #223A70;
    cursor: pointer;
    transition: all 0.3s ease;
}

.year-select:hover,
.year-select:focus {
    border-color: #4A9FD1;
    outline: none;
    box-shadow: 0 0 0 3px rgba(101, 187, 233, 0.2);
}

/* 年度表示セクション（戦績ページからの遷移時） */
.season-display {
    text-align: center;
}

.season-year {
    font-size: 24px;
    font-weight: bold;
    color: #223A70;
    margin: 0;
}

.no-matches-message {
    padding: 20px;
    text-align: center;
    color: #666;
    font-size: 16px;
}

/* レスポンシブ対応（試合日程・結果ページ固有） */
@media (max-width: 768px) {
    .year-select-wrapper {
        width: 100%;
    }

    .match-table-container {
        font-size: 12px;
    }

    .match-table thead th,
    .match-table tbody td {
        padding: 8px 5px;
        font-size: 11px;
    }

    .match-table thead th {
        font-size: 12px;
    }
}

@media (max-width: 600px) {
    .match-table {
        font-size: 10px;
    }

    .match-table thead th,
    .match-table tbody td {
        padding: 6px 3px;
        font-size: 10px;
    }

    .match-table thead th {
        font-size: 11px;
    }
}




/* ========================================
   公式戦テンプレートのスタイル
   ========================================*/
/* シンプルなレイアウト用CSS */
.match-container { display: flex; gap: 40px; max-width: 1000px; margin: 0 auto; }
.match-main-content { flex: 2; }
.match-sidebar { flex: 1; background: #f9f9f9; padding: 20px; border-radius: 8px; }

/* スコアボード */
.score-flex { display: flex; align-items: center; justify-content: space-around; text-align: center; background: #333; color: #fff; padding: 20px; border-radius: 8px; }
.total-points { display: block; font-size: 3rem; font-weight: bold; }

/* ラインナップ */
.lineup-list ul { list-style: none; padding: 0; }
.player-row { display: flex; gap: 10px; padding: 8px 0; border-bottom: 1px dashed #ccc; align-items: center; }

/* リザーブの区切り行を独立させる */
.re-divider-row {
    background: #e9e9e9;
    margin: 15px 0 5px 0;
    padding: 5px;
    text-align: center;
    font-size: 0.75rem;
    font-weight: bold;
    color: #555;
    border-radius: 4px;
    display: block; /* Flexを解除して一行丸ごと使う */
}

.score-num {
    font-weight: 500;
    width: 60px; /* 数値列の幅を統一 */
}

/* 全体のベース設定 */
.league-match-detail {
    background-color: #0f172a;
    color: #FFFFFF;
    padding: 40px 20px;
    font-family: 'Helvetica Neue', Arial, sans-serif;
}

/* ヘッダーセクション */
.match-header {
    text-align: center;
    margin-bottom: 40px;
    border-bottom: 3px solid #e60012; /* 大学カラーの赤 */
    padding-bottom: 20px;
}

.match-header h1 {
    color: #FFFFFF;
    font-size: 2.2rem;
    font-weight: 800;
    text-transform: uppercase;
}

.match-meta {
    color: #65BBE9; /* チームカラーのライトブルー */
    font-weight: bold;
}

/* スコアボード */
.score-board {
    margin-bottom: 30px;
}

.score-flex {
    display: flex;
    align-items: center;
    justify-content: space-around;
    background: linear-gradient(135deg, #223A70 0%, #0f172a 100%); /* チームカラーのディープブルー */
    border: 1px solid #65BBE9;
    padding: 30px;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.5);
}

.team-name {
    display: block;
    font-size: 1.2rem;
    margin-bottom: 10px;
    color: #65BBE9;
}

.total-points {
    display: block;
    font-size: 4rem;
    font-weight: 900;
    color: #FFFFFF;
    line-height: 1;
}

.half-scores {
    font-size: 1rem;
    color: #a0aec0;
}

.vs-divider {
    font-size: 1.5rem;
    font-weight: 900;
    color: #e60012; /* 赤をアクセントに */
}

/* スタッツテーブル */
.stats-table h2, .lineup-list h2 {
    font-size: 1.2rem;
    border-left: 4px solid #e60012;
    padding-left: 15px;
    margin-bottom: 20px;
    color: #FFFFFF;
}

.stats-table table {
    width: 100%;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 8px;
    overflow: hidden;
}

.stats-table th {
    background: #223A70;
    color: #FFFFFF;
    padding: 12px;
    font-size: 0.8rem;
    border: 1px solid #ddd;
}

.stats-table td {
    padding: 15px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.stat-label {
    color: #65BBE9;
    font-weight: bold;
    background: rgba(101, 187, 233, 0.1);
    text-align: center;
}

.score-num {
    font-size: 1.2rem;
    font-weight: 600;
}

/* ラインナップ（サイドバー） */
.match-sidebar {
    background: #1a202c;
    border: 1px solid #2d3748;
    padding: 25px;
    border-radius: 12px;
}

.player-row {
    border-bottom: 1px solid #2d3748;
    padding: 10px 0;
}

.number {
    color: #e60012; /* 背番号は大学カラーの赤 */
    font-family: 'Arial Black', sans-serif;
}

.name {
    color: #FFFFFF;
    font-weight: 500;
}

.grade {
    color: #718096;
    font-size: 0.8rem;
}

.re-divider-row {
    background: #223A70;
    color: #FFFFFF;
    margin: 20px 0 10px 0;
    padding: 8px;
    border-radius: 4px;
    font-size: 0.7rem;
    letter-spacing: 2px;
}
/* 画面幅が921px以下（Astraの標準的なブレイクポイント）の場合 */
@media (max-width: 921px) {
    /* 親コンテナを縦並びに */
    .match-container {
        flex-direction: column;
        gap: 30px;
    }

    /* メインコンテンツとサイドバーを全幅に */
    .match-main-content,
    .match-sidebar {
        width: 100%;
        flex: none;
    }

    /* スコア表示の文字サイズをスマホ向けに最適化 */
    .total-points {
        font-size: 2.5rem;
    }
    .team-name {
        font-size: 1rem;
    }

    /* スタッツ表の横揺れ防止（スマホで表がはみ出さないようにする） */
    .stats-table {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .stats-table table {
        min-width: 450px; /* 項目が潰れない最低限の幅 */
    }

    .score-num {
        font-size: 0.9rem;
        padding: 10px 5px;
    }
    
    .stat-label {
        font-size: 0.75rem;
    }

    /* ラインナップの調整 */
    .match-sidebar {
        padding: 15px;
    }
    
    .player-row {
        padding: 10px 0; /* タップしやすいように少し広げる */
    }
}

/* 非常に小さい画面（iPhone SEなど）向けの追加微調整 */
@media (max-width: 480px) {
    .match-header h1 {
        font-size: 1.5rem;
    }
    .total-points {
        font-size: 1.8rem;
    }
}
/* ========================================
選手一覧アーカイブのスタイル
======================================== */ 
/* グリッドから下の背景色を指定 */
.player-section-dark-bg {
    background-color: #0f172a;
    width: 100vw;               /* 画面の横幅いっぱい */
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;        /* Astraのコンテナを突き破って背景を広げる手法 */
    padding: 60px 0;            /* 上下の余白 */
    min-height: 500px;
}

/* その中の中身は中央に寄せる */
.player-section-dark-bg .ast-container {
    max-width: 1240px;          /* Astraの通常幅に合わせる */
    margin: 0 auto;
    padding: 0 20px;
}
/* 4カラムグリッドの設定 */
.player-archive-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 20px; /* カード間の隙間 */
    margin-bottom: 50px;
}

/* 1枚のカード：PCでは4カラム（100% / 4 - 隙間） */
/* 選手カードの基本デザイン */
.player-card {
    width: calc(25% - 15px);
    background: #1e293b;
    border: 1px solid #334155;
    border-radius: 4px;
    /* overflow: hidden; ← これを削除、または visible に上書き */
    overflow: visible !important; 
    position: relative;
    margin-bottom: 30px; /* はみ出し分を考慮して下の余白を少し広げる */
}
.player-card-physique { 
    color: #94a3b8; 
    border-top: 1px solid #334155;
}

.no-player-msg {
    color: #ffffff;
    text-align: center;
}

.player-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}

.player-card-photo img {
    width: 100%;
    height: 320px; /* 高さを統一すると綺麗に見えます */
    object-fit: cover;
    aspect-ratio: 3 / 4;
    /* ここを追加：上から5%〜10%の位置を基準にする */
    object-position: center 20%;
    display: block;
}

.player-card-info {
    padding: 15px;
    text-align: center;
}

.player-card-name {
    font-size: 1.1rem;
    margin: 5px 0;
    color: #f8fafc;
}
/* 写真とバッジを包む親要素 */
.player-card-photo-wrapper {
    position: relative;
    /* カードからはみ出させるために overflow: hidden を解除 */
    overflow: visible; 
}
/* 写真エリアを相対位置に設定 */
.player-card-photo {
    position: relative;
    overflow: hidden; /* 写真自体の余分な角はここでカット */
    border-radius: 4px 4px 0 0; /* カードの上部角丸に合わせる */
}
/* 3. バッジの設定（はみ出しを許容する） */
.player-role-badge-stack {
    position: absolute;
    top: -10px;   /* カードの枠より上に飛び出す */
    left: -10px;  /* カードの枠より左に飛び出す */
    z-index: 99;  /* 他の要素より確実に前に出す */
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    pointer-events: none; /* バッジがリンククリックの邪魔をしないようにする */
}

/* 役職バッジのスタイル */
.player-role-badge {
    background-color: #d11212;
    color: #fff;
    padding: 4px 10px;
    font-size: 0.7rem;
    font-weight: bold;
    border-radius: 2px;
    box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.5); /* 影を強くして浮遊感を出す */
    white-space: nowrap;
    border: 1px solid rgba(255, 255, 255, 0.3);
}


/* 役職・ポジション・学年の表示調整 */
.player-card-meta {
    font-size: 0.8rem;
    color: #d11212; /* 役職・ポジションを目立たせる */
    font-weight: 600;
    margin-bottom: 5px;
    line-height: 1.4;
}

.player-card-grade {
    color: #f8fafc;
    font-weight: normal;
}

/* スマホ・タブレット対応 */
@media (max-width: 992px) {
    .player-card { width: calc(50% - 10px); } /* 2カラム */
    .player-card-photo img {
        height: 400px;
    }
}
@media (max-width: 600px) {
    .player-card { width: 100%; } /* 1カラム */
    .player-card-photo img {
        height: 380px;
    }
}

/* ========================================
   コーチ専用カードデザイン
   ======================================== */
/* コーチセクション全体の箱 */
.coach-full-width-section {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    
    /* 背景色を敷く（必要であれば） */
    background-color: transparent; 
    
    /* 上下の余白：マージンではなくパディングで調整（ヘッダーへの影響を防ぐ） */
    padding: 60px 0; 
    margin-top: 0; 
    margin-bottom: 0;

    /* Astraの親要素の「高さ」や「はみ出し」をリセット */
    box-sizing: border-box;
    overflow: hidden; 
}

/* 実際にカードが並ぶエリア（1200px） */
.coach-grid-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    justify-content: flex-start;
}

/* カード自体のスタイル（4カラム） */
.player-card.coach-specific-card {
    width: calc(25% - 18px);/* 4カラム */
}

/* ホバーエフェクト：チームカラーの枠線を光らせる */
.player-card.coach-specific-card:hover {
    transform: translateY(-8px);
    border-color: #65bbe9; /* クラブカラーの水色 */
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.4);
}

/* 写真エリア */
.coach-specific-card .player-card-photo img {
    height: 320px; /* 選手より少し高めに設定しても綺麗です */
    border-bottom: 2px solid #223a70; /* 下部にネイビーのライン */
}
/* 写真がない場合のダミーエリア（NO PHOTO） */
.coach-no-photo, 
.no-photo-placeholder {
    height: 300px;
    background-color: #334155;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #94a3b8;
    font-size: 0.9rem;
    font-weight: bold;
    letter-spacing: 0.1em;
    border-radius: 4px 4px 0 0; /* カードの上部角丸に合わせる */
}

/* テキスト情報エリア */
.coach-specific-card .player-card-info {
    padding: 20px 15px;
}

/* 役職テキスト：水色で強調 */
.coach-role-text {
    display: block;
    font-size: 0.85rem;
    color: #65bbe9; /* クラブカラーの水色 */
    font-weight: 700;
    margin-bottom: 6px;
    letter-spacing: 0.1em;
    text-transform: uppercase; /* 英字が含まれる場合にかっこいい */
}

/* 氏名：白で力強く */
.coach-specific-card .player-card-name {
    font-size: 1.2rem;
    margin: 0;
    letter-spacing: 0.05em;
}

/* ========================================
   レスポンシブ対応
   ======================================== */

/* タブレット（2カラム） */
@media (max-width: 992px) {
    .player-card.coach-specific-card { 
        width: calc(50% - 12px); 
    }
    
}

/* スマホ（1カラム） */
@media (max-width: 600px) {
    .player-card.coach-specific-card { 
        width: 100%; 
        max-width: 350px; /* 広がりすぎ防止 */
        margin-left: auto;
        margin-right: auto;
    }
    
}