html, body { overflow-x: hidden; }

.custom-toggler{
    position:absolute;           /* 下段navの右端基準 */
    right:20px;
    top:50%;
    transform:translateY(-50%);
    width:44px; height:44px;
    border:0; background:transparent;
    z-index:1060;
  }
  
  /* 三本線 */
  .custom-toggler .bar{
    display:block; width:26px; height:2px;
    margin:6px auto;
    background:#000;
    transition:transform .25s ease, opacity .2s ease;
  }
  
  /* 開いたら✕に変形 */
  .custom-toggler[aria-expanded="true"] .bar:nth-child(1){ transform:translateY(8px) rotate(45deg); }
  .custom-toggler[aria-expanded="true"] .bar:nth-child(2){ opacity:0; }
  .custom-toggler[aria-expanded="true"] .bar:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }
  
  /* オーバーレイ*/
  .overlay-menu{
    position:fixed; inset:0;
    background:#fff;
    z-index:1050;
    overflow-y:auto;
    opacity:0; transform:translateY(-10px);
    transition:opacity .25s ease, transform .25s ease;
  }
  .overlay-menu.show{ opacity:1; transform:translateY(0); }

  /* オーバーレイ内のメニューを少し下に */
.overlay-menu .navbar-nav {
    margin-top: 3rem; /* 例: 2rem ≒ 32px 下げる */
  }
  

  /* ===== Footer ===== */
.footer-dark{ background:#000; color:#fff; }

/* 薄い境界線用 */
.border-white-10{ border-color: rgba(255,255,255,.1) !important; }

/* SNSアイコン大きめ＆ホバー */
.footer-dark .social{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:50%;
  color:#fff; text-decoration:none; opacity:.9;
  transition:opacity .2s ease, transform .15s ease;
}
.footer-dark .social i{ font-size:1.25rem; }
.footer-dark .social:hover{ opacity:1; transform:translateY(-1px); }

/* フッターのリンク */
.footer-dark .footer-link{
  color:rgba(255,255,255,.7); text-decoration:none;
}
.footer-dark .footer-link:hover{ color:#fff; text-decoration:underline; }


/* セクション見出し（左寄せ＋影付き＋全幅下線） */
.section-title { position: relative; overflow: hidden; }
.section-title::before {
  max-width: 100%;
  right: 0;           /* 左0だけだと右へ伸びるので右端も縛る */
  white-space: nowrap; /* そのままでもOKだが overflow:hidden とセットで安全 */
  pointer-events: none;
}
  
  .section-title::after {
    /* 全幅の下線 */
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%; 
    height: 2px;
    background-color: #000;
  }
  
  
  /* サムネイルの共通スタイル */
.thumb-cover {
    width: 100%;
    height: 200px;           
    object-fit: cover;       /* はみ出しをトリミング */
    display: block;
    border-radius: .5rem;    /* 角丸 */
  }
  
  @media (min-width: 576px) {
    .thumb-cover { height: 240px; } /* 画面広い時は少し大きく */
  }
  
/* 3:4の比率ボックス（padding-topで固定） */
.player-thumbbox{
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: .5rem;
  }
  .player-thumbbox::before{
    content: "";
    display: block;
    padding-top: 133.333%; /* 4 / 3 * 100 */
  }
  
  /* 画像をボックスにフィット */
  .player-thumb{
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    object-position: center;
    display: block;
  }
  
  /* オーバーレイは今のままでOK */
  .player-logo{ position:absolute; top:.5rem; right:.5rem; width:32px; background:rgba(255,255,255,.9); padding:3px; border-radius:.25rem; }
  .player-number{ position:absolute; top:.5rem; left:.5rem; min-width:32px; height:32px; padding:0 .45rem; background:rgba(0,0,0,.75); color:#fff; border-radius:9999px; font-weight:700; display:flex; align-items:center; justify-content:center; line-height:1; }
  .player-namebar{ position:absolute; left:0; right:0; bottom:0; padding:.45rem .6rem; color:#fff; font-weight:700; background:linear-gradient(to top, rgba(0,0,0,.75), rgba(0,0,0,0)); border-bottom-left-radius:.5rem; border-bottom-right-radius:.5rem; }
  

  .news-card { transform-origin: center; }
  .news-card, .news-card * { will-change: transform; } /* ちらつき防止程度 */
  .news-card-wrap, .news-list .card, .news-list .col, .news-list { overflow: hidden; }
