/* チーム紹介（/boys/）専用
 * 前半：チーム紹介の共通表示（目次・試合結果・グラウンド・設備など）
 * 後半：選手カード・越谷中央ボーイズとは・Instagram導線・歴代主要実績など
 * 通常の指定 → 条件別の調整の順序を保っています。
 */

/* お知らせ */

.boys-page-layout {
  grid-template-columns: minmax(176px, 206px) minmax(0, 1fr);
  align-items: start;
  gap: clamp(22px, 3vw, 42px);
  padding-block: clamp(28px, 4vw, 56px) clamp(58px, 7vw, 92px);
  --boys-gold: #d6bd8f;
}

.boys-side {
  position: sticky;
  top: 118px;
  z-index: 12;
}

.boys-side-box {
  overflow: hidden;
  background: #171413;
  color: #fff;
  box-shadow: 0 20px 46px rgba(25, 14, 10, 0.18);
}

.boys-side nav a {
  position: relative;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) 13px;
  align-items: center;
  gap: 7px;
  min-height: 60px;
  padding: 9px 8px;
  transition: background 0.3s,
    color 0.3s,
    padding 0.3s;
}

.boys-side nav a > span {
  font: italic 700 10px/1 Georgia,
    serif;
  color: #887f79;
}

.boys-side nav a strong {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 4px;
  font-size: 10px;
  letter-spacing: 0.1em;
}

.boys-side nav a small {
  letter-spacing: 0.02em;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.4;
  color: #d3cbc4;
}

.boys-side nav a > b {
  font-size: 12px;
  color: #c6bdb7;
  transition: transform 0.3s;
}

.boys-side nav a:before {
  content: "";
  position: absolute;
  left: 0;
  top: 12px;
  bottom: 12px;
  width: 3px;
  background: var(--red);
  transform: scaleY(0);
  transition: transform 0.3s;
}

.boys-side nav a:hover,
.boys-side nav a:focus-visible,
.boys-side nav a.is-current {
  background: #292321;
  padding-left: 12px;
}

.boys-side nav a.is-current:before {
  transform: scaleY(1);
}

.boys-side nav a.is-current > span,
.boys-side nav a:hover > span {
  color: #efaeb0;
}

.boys-side nav a:hover > b,
.boys-side nav a.is-current > b {
  transform: translateX(3px);
  color: #fff;
}

.boys-content-column {
  min-width: 0;
  display: grid;
  gap: clamp(18px, 2.2vw, 28px);
}

.boys-content-section {
  scroll-margin-top: 118px;
  min-width: 0;
  padding: clamp(34px, 4.2vw, 58px);
  background: #fff;
  border: 1px solid #e6dfd7;
  box-shadow: 0 16px 42px rgba(26, 17, 12, 0.06);
}

.boys-content-section .section-head {
  margin-bottom: clamp(25px, 3vw, 38px);
}

.boys-content-section .section-head h2 {
  font-size: clamp(38px, 5vw, 66px);
  letter-spacing: -0.045em;
}

.boys-content-section .section-head h2 span {
  font-size: 12px;
  letter-spacing: 0.03em;
}

.players-section {
  background: #f6f3ee;
}

.players-intro {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  align-items: center;
  gap: clamp(25px, 4vw, 55px);
  margin-bottom: 26px;
  padding: 25px 28px;
  background: #8e0000;
  color: #fff;
}

.players-intro > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.players-intro > div > span {
  letter-spacing: 0.18em;
}

.players-intro strong {
  display: flex;
  align-items: flex-end;
  gap: 12px;
  font: italic 900 clamp(52px, 7vw, 82px)/0.9 Georgia,
    serif;
}

.players-intro strong small {
  padding-bottom: 7px;
  font: 900 8px/1 sans-serif;
  letter-spacing: 0.16em;
}

.players-intro p {
  margin: 0;
  padding-left: 28px;
  border-left: 1px solid rgba(255, 255, 255, 0.35);
  line-height: 2;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
}

.roster-list {
  display: grid;
  gap: 10px;
}

.roster-grade {
  background: #fff;
  border: 1px solid #ded6ce;
}

.roster-grade summary {
  list-style: none;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) auto 34px;
  align-items: center;
  gap: 14px;
  min-height: 92px;
  padding: 18px 21px;
  cursor: pointer;
  transition: background 0.3s,
    color 0.3s;
}

.roster-grade summary::-webkit-details-marker {
  display: none;
}

.roster-grade summary:hover {
  background: #201b19;
  color: #fff;
}

.roster-grade-no {
  font: italic 700 16px/1 Georgia,
    serif;
  color: var(--red);
}

.roster-grade summary > span:nth-child(2) {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.roster-grade summary small {
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.15em;
  color: #918981;
}

.roster-grade summary strong {
  font-size: 18px;
}

.roster-grade summary em {
  font-style: normal;
  font-size: 30px;
  font-weight: 900;
  color: var(--red);
}

.roster-grade summary em small {
  margin-left: 4px;
}

.roster-grade summary > b {
  width: 30px;
  height: 30px;
  border: 1px solid #ccc3ba;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--red);
  font-weight: 400;
  transition: transform 0.3s,
    background 0.3s,
    color 0.3s;
}

.roster-grade[open] summary > b {
  transform: rotate(45deg);
  background: var(--red);
  border-color: var(--red);
  color: #fff;
}

/* スケジュール */

.schedule-ground-section {
  background: #fff;
}

.schedule-lead {
  display: grid;
  grid-template-columns: minmax(230px, 0.8fr) 1fr;
  gap: 34px;
  align-items: end;
  margin-bottom: 28px;
}

.schedule-lead strong {
  font-size: clamp(24px, 3.3vw, 38px);
  line-height: 1.45;
}

.schedule-lead p {
  margin: 0;
  padding-left: 24px;
  border-left: 3px solid var(--red);
  font-size: 12px;
  line-height: 1.9;
  color: #635c56;
}

.schedule-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: clamp(45px, 6vw, 72px);
}

.schedule-grid article {
  position: relative;
  min-width: 0;
  padding: 20px 20px 18px;
  background: #f6f3ee;
  border-top: 3px solid #d8d0c8;
  transition: transform 0.35s,
    background 0.35s,
    box-shadow 0.35s;
}

.schedule-grid article:is(:hover, .is-hover) {
  transform: translateY(-5px);
  background: #fff;
  border-color: var(--red);
  box-shadow: 0 18px 35px rgba(25, 15, 10, 0.1);
}

.schedule-grid article > span {
  position: absolute;
  right: 16px;
  top: 14px;
  font: italic 700 28px/1 Georgia,
    serif;
  color: #ddd3ca;
}

.schedule-grid h3 {
  margin: 0 0 16px;
  font-size: 20px;
  color: var(--red);
}

.schedule-grid dl {
  margin: 0;
  display: grid;
  gap: 9px;
}

.schedule-grid dl > div {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 9px;
}

.schedule-grid dt {
  font-weight: 900;
  letter-spacing: 0.09em;
  font-size: 10px;
  color: #665f59;
}

.schedule-grid dd {
  margin: 0;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.75;
  color: #302b27;
}

/* 練習環境・設備写真 */

.facility-block {
  color: #fff;
  position: relative;
  overflow: hidden;
}

.facility-copy {
  display: grid;
}

.facility-copy > p {
  grid-column: 1/-1;
  margin: 0;
  letter-spacing: 0.18em;
  display: flex;
  align-items: center;
  gap: 12px;
}

.facility-copy h3 {
  margin: 0;
  line-height: 1.35;
  grid-column: 1;
  word-break: keep-all;
}

.facility-copy > span {
  max-width: none;
  align-self: end;
  margin: 0;
  padding-left: clamp(16px, 2vw, 24px);
  border-left: 2px solid var(--boys-gold);
}

/* 活動風景 */

.facility-gallery-grid figure {
  position: relative;
  margin: 0;
  overflow: hidden;
  outline: 0;
  grid-column: auto;
  min-width: 0;
  cursor: zoom-in;
  aspect-ratio: 4/3;
}

.facility-gallery-grid figure:hover img {
  filter: saturate(1.08);
  transform: scale(1.06);
}

.facility-gallery-grid figcaption {
  position: absolute;
  left: 13px;
  bottom: 11px;
  padding: 6px 8px;
  background: rgba(12, 8, 6, 0.72);
  font-weight: 900;
  letter-spacing: 0.13em;
  font-size: 8px;
  color: #fff;
}

.facility-gallery-grid {
  grid-auto-rows: auto;
}

.facility-gallery-grid figure:not(.wide) img {
  object-position: center 48%;
}

.results-section {
  background: #f6f3ee;
}

.result-cohorts {
  display: grid;
}

.result-cohort-head {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 5px 20px;
  padding-bottom: 13px;
  border-bottom: 3px solid #171413;
}

.result-cohort-head span {
  grid-column: 1/-1;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.16em;
  color: var(--red);
}

.result-cohort-head h3 {
  margin: 0;
  font-size: 25px;
}

.result-cohort-head b {
  font-size: 8px;
  letter-spacing: 0.12em;
  color: #8b837b;
}

.result-event-list {
  display: grid;
  gap: 7px;
  margin-top: 9px;
}

.result-event {
  background: #fff;
  border: 1px solid #ddd6cf;
}

.result-event summary {
  list-style: none;
  display: grid;
  align-items: center;
  padding: 13px 15px;
  cursor: pointer;
  transition: background 0.3s,
    color 0.3s;
  min-height: 74px;
  grid-template-columns: 76px minmax(0, 1fr) 96px 34px;
  gap: 10px;
}

.result-event summary::-webkit-details-marker {
  display: none;
}

.result-event summary:hover {
  background: #211c1a;
  color: #fff;
}

.result-event time {
  font-weight: 900;
  color: var(--red);
}

.result-event summary > em {
  background: #8e0000;
  color: #fff;
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
  grid-column: 3;
  width: 96px;
  min-height: 34px;
  padding: 6px 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #a3191d;
  font-size: 11px;
  letter-spacing: 0.04em;
  text-align: center;
}

.result-event summary > b {
  border: 1px solid #ccc4bd;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--red);
  font-weight: 400;
  transition: transform 0.3s;
  grid-column: 4;
  justify-self: end;
  width: 32px;
  height: 32px;
  font-size: 18px;
}

.result-event[open] summary > b {
  transform: rotate(45deg);
}

.match-list {
  border-top: 1px solid #e5ded7;
}

.match-row {
  display: grid;
  align-items: center;
  border-bottom: 1px solid #eee8e1;
  grid-template-columns: minmax(86px, 120px) minmax(0, 18em) 100px;
  min-height: 56px;
}

.match-row:last-child {
  border-bottom: 0;
}

.match-row > span {
  display: flex;
  flex-direction: column;
  gap: 3px;
  color: #3d3732;
}

.match-row > span small {
  font-weight: 900;
  letter-spacing: 0.08em;
  color: var(--red);
  font-size: 10px;
}

.match-row > em {
  display: flex;
  align-items: center;
  gap: 8px;
  font-style: normal;
  justify-content: center;
  padding-inline: 3px;
}

.match-row > em b {
  text-align: center;
  width: 28px;
  font-size: 18px;
}

.match-row > em.is-win b:first-child {
  color: var(--red);
}

.match-row > em.is-loss b:last-child {
  color: #304a72;
}

.result-cohort.is-archive {
  opacity: 0.92;
}

.activity-section {
  background: #fff;
}

.instagram-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 16px;
  padding: 18px 20px;
  background: #171413;
  color: #fff;
}

.instagram-head > div {
  display: flex;
  align-items: center;
  gap: 13px;
}

.instagram-head p {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.instagram-head small {
  letter-spacing: 0.15em;
  color: #fff !important;
  opacity: 1;
  font-size: 10px;
  font-weight: 900;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.7);
}

.instagram-head strong {
  letter-spacing: 0.08em;
  font-size: 12px;
}

.instagram-head > a {
  min-width: 170px;
  height: 44px;
  padding: 0 15px;
  background: var(--red);
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 9px;
  font-weight: 900;
  transition: background 0.3s,
    transform 0.3s;
}

.instagram-head > a:is(:hover, .is-hover) {
  background: #fff;
  color: var(--red);
  transform: translateY(-3px);
}

/* お問い合わせ */

@media (max-width: 1180px) {
  .boys-side {
    top: 92px;
  }

  .boys-content-section {
    scroll-margin-top: 92px;
  }

  .players-intro {
    grid-template-columns: 180px minmax(0, 1fr);
  }
}

@media (max-width: 900px) {
  .boys-page-layout {
    width: 100%;
    padding-top: 0;
  }

  .boys-side {
    top: 68px;
    background: #171413;
    scrollbar-width: none;
  }

  .boys-side::-webkit-scrollbar {
    display: none;
  }

  .boys-side-box {
    box-shadow: 0 9px 24px rgba(20, 10, 8, 0.18);
  }

  .boys-side nav a {
    border: 0;
    max-width: none;
  }

  .boys-side nav a:before {
    top: auto;
    bottom: 0;
    height: 3px;
    width: auto;
    transform: scaleX(0);
    left: 8px;
    right: 8px;
  }

  .boys-side nav a.is-current:before {
    transform: scaleX(1);
  }

  .boys-content-column {
    margin-inline: auto;
  }
}

@media (max-width: 650px) {
  .boys-side {
    top: 60px;
  }

  .boys-side nav a {
    padding-inline: 7px;
  }

  .boys-content-section {
    padding: 28px 18px;
  }

  .boys-content-section .section-head h2 {
    font-size: 39px;
  }

  .players-intro {
    grid-template-columns: 1fr;
    gap: 17px;
    padding: 22px;
  }

  .players-intro p {
    padding: 16px 0 0;
    border-left: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.35);
    font-size: 14px;
    line-height: 1.9;
    color: #fff;
  }

  .roster-grade summary {
    grid-template-columns: 27px minmax(0, 1fr) auto 28px;
    gap: 8px;
    padding: 14px 12px;
    min-height: 78px;
  }

  .roster-grade summary > b {
    width: 27px;
    height: 27px;
  }

  .schedule-lead {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .schedule-lead p {
    padding-left: 16px;
    font-size: 13px;
    color: #443e39;
  }

  .schedule-grid {
    grid-template-columns: 1fr;
  }

  .facility-block {
    margin-inline: -18px;
  }

  .result-cohort-head {
    grid-template-columns: 1fr;
  }

  .result-cohort-head b {
    margin-top: 3px;
    font-size: 10px;
    color: #625b55;
  }

  .match-row > span {
    grid-column: 1;
    color: #342f2b;
  }

  .match-row > strong {
    grid-column: 1;
  }

  .match-row > em {
    grid-column: 2;
    grid-row: 1/3;
  }

  .instagram-head {
    align-items: stretch;
    flex-direction: column;
  }

  .instagram-head > a {
    width: 100%;
  }
}

@media (max-width: 370px) {
  .boys-side {
    top: 58px;
  }

}

.players-intro > div > span,
.facility-copy > p {
  color: var(--boys-gold);
  font-size: 10px;
  font-weight: 900;
}

.facility-copy > span {
  color: #fff;
  font-weight: 700;
}

.facility-gallery-grid figure:after {
  content: "＋";
  position: absolute;
  z-index: 2;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  font-weight: 300;
  opacity: 0;
  transform: scale(0.86);
  transition: opacity 0.3s,
    transform 0.3s,
    background 0.3s;
  right: 10px;
  top: auto;
  bottom: 10px;
  border: 0;
  background: var(--red);
}

.facility-gallery-grid figure:hover:after,
.facility-gallery-grid figure:focus-visible:after {
  opacity: 1;
  transform: scale(1);
}

.facility-gallery-grid figure:focus-visible {
  box-shadow: 0 0 0 3px var(--boys-gold);
}

.facility-gallery-grid figure:focus-visible:after {
  background: var(--boys-gold);
  color: #211d18;
  border-color: var(--boys-gold);
}

.result-event summary > strong {
  font-size: 13px;
  line-height: 1.65;
}

.result-event summary:hover time {
  color: var(--boys-gold);
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.28);
}

.match-row > em small {
  min-width: 18px;
  color: #625b55;
  font-weight: 900;
  text-transform: uppercase;
  text-align: center;
}

.match-row > em.is-win small,
.match-row > em.is-loss small {
  color: #514943;
}

.image-lightbox {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  padding: clamp(18px, 4vw, 58px);
  background: rgba(8, 6, 5, 0.92);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.32s,
    visibility 0.32s;
}

.image-lightbox.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.image-lightbox-dialog {
  position: relative;
  width: min(1080px, 100%);
  max-height: calc(100dvh - 36px);
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  background: #171413;
  box-shadow: 0 32px 90px rgba(0, 0, 0, 0.55);
  transform: translateY(12px) scale(0.985);
  transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1);
}

.image-lightbox.is-open .image-lightbox-dialog {
  transform: none;
}

.image-lightbox-media {
  min-height: 0;
  display: grid;
  place-items: center;
  background: #0c0a09;
  position: relative;
}

.image-lightbox img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: calc(100dvh - 132px);
  object-fit: contain;
}

.image-lightbox-caption {
  margin: 0;
  padding: 15px 62px 16px 18px;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.image-lightbox-close {
  position: absolute;
  right: 12px;
  top: 12px;
  z-index: 2;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(15, 11, 9, 0.7);
  color: #fff;
  font-size: 25px;
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
  transition: background 0.3s,
    color 0.3s,
    transform 0.3s;
}

.image-lightbox-close:hover,
.image-lightbox-close:focus-visible {
  background: var(--boys-gold, #d6bd8f);
  color: #211d18;
  transform: rotate(90deg);
}

body.lightbox-open {
  overflow: hidden;
}

@media (max-width: 900px) {
  .facility-gallery-grid {
    grid-auto-rows: auto;
  }
}

@media (max-width: 650px) {
  .facility-gallery-grid {
    grid-auto-rows: auto;
  }

  .image-lightbox {
    padding: 12px;
  }

  .image-lightbox-caption {
    padding-left: 14px;
    font-size: 9px;
  }
}

.result-event summary > em.is-champion {
  position: relative;
  font-size: 12px;
  font-weight: 900;
  box-shadow: 0 7px 20px rgba(129, 87, 9, 0.35),
    inset 0 1px rgba(255, 255, 255, 0.75);
  animation: championGold 4.8s ease-in-out infinite;
  overflow: hidden;
  background: linear-gradient(115deg, #9a6500 0%, #d6a827 20%, #fff4a8 44%, #e4b83f 63%, #a66d00 82%, #f2d36b 100%);
  background-size: 220% 100%;
  border-color: #ffe89a;
  color: #271c07;
  text-shadow: 0 1px rgba(255, 255, 255, 0.5);
}

.result-event summary > em.is-champion:before {
  content: "★";
  margin-right: 5px;
  color: #8e5b00;
  font-size: 11px;
}

@media (max-width: 900px) {

  .boys-side nav a:nth-child(n/**/+4) {
    grid-column: span 3;
  }

  .boys-side nav a:nth-child(3) {
    border-right: 0;
    grid-column: 5/7;
  }

  .boys-content-section {
    scroll-margin-top: 204px;
  }
}

@media (max-width: 650px) {

  .boys-content-section {
    scroll-margin-top: 184px;
  }

  .players-intro > div > span,
  .facility-copy > p {
    font-size: 11px;
    letter-spacing: 0.13em;
  }

  .roster-grade summary small {
    font-size: 10px;
  }

  .roster-grade summary strong {
    font-size: 17px;
  }

  .roster-grade summary em {
    font-size: 26px;
  }

  .schedule-grid dt {
    font-size: 11px;
    color: #514943;
  }

  .schedule-grid dd {
    font-size: 13px;
    line-height: 1.8;
  }

  .facility-copy > span {
    color: #fff;
  }

  .result-cohort-head span {
    font-size: 10px;
  }

  .result-cohort-head h3 {
    font-size: 27px;
  }

  .result-event summary {
    grid-template-columns: 54px minmax(0, 1fr) 30px;
    gap: 7px 8px;
    min-height: 82px;
    padding: 13px 10px;
  }

  .result-event time {
    grid-column: 1;
    grid-row: 1;
  }

  .result-event summary > strong {
    grid-column: 2;
    grid-row: 1;
    font-size: 13px;
    line-height: 1.6;
  }

  .result-event summary > em {
    grid-column: 2;
    grid-row: 2;
    width: 92px;
    min-height: 31px;
    font-size: 10px;
  }

  .result-event summary > em.is-champion {
    font-size: 11px;
  }

  .result-event summary > b {
    grid-column: 3;
    grid-row: 1/3;
    width: 30px;
    height: 30px;
    font-size: 17px;
  }

  .instagram-head small {
    font-size: 11px;
  }

  .instagram-head strong {
    font-size: 13px;
  }
}

.roster-grade summary:hover .roster-grade-no,
.roster-grade summary:focus-visible .roster-grade-no,
.roster-grade summary:hover > em,
.roster-grade summary:focus-visible > em {
  color: #e2c56f;
}

.roster-grade summary:hover small,
.roster-grade summary:focus-visible small {
  color: #f7f3ec;
}

.result-event summary:hover > b,
.result-event summary:focus-visible > b {
  color: #fff;
  border-color: #fff;
  background: rgba(255, 255, 255, 0.1);
}

.result-event summary > em.is-champion:after {
  content: "";
  position: absolute;
  inset: -60% auto -60% -35%;
  width: 25%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.85), transparent);
  transform: skewX(-18deg);
  animation: championGlint 4.8s ease-in-out infinite;
}

.result-event summary:hover > em.is-champion,
.result-event summary:focus-visible > em.is-champion {
  background: linear-gradient(115deg, #b77a00 0%, #efc84d 23%, #fff8bc 47%, #e9bd3b 68%, #b87900 100%);
  background-size: 220% 100%;
  color: #211704;
}

.result-event summary > em.is-best {
  position: relative;
  overflow: hidden;
}

.result-event summary > em.is-best:after {
  content: "";
  position: absolute;
  inset: -60% auto -60% -35%;
  width: 25%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.85), transparent);
  transform: skewX(-18deg);
  animation: championGlint 4.8s ease-in-out infinite;
}

@keyframes championGold {
  0%,
  100% {
    background-position: 0 50%;
  }

  50% {
    background-position: 100% 50%;
  }
}

@keyframes championGlint {
  0%,
  58% {
    transform: skewX(-18deg) translateX(-180%);
  }

  82%,
  100% {
    transform: skewX(-18deg) translateX(620%);
  }
}

details.result-cohort {
  display: block;
  background: #fff;
  border: 1px solid #d9d1c8;
  box-shadow: 0 8px 24px rgba(39, 27, 18, 0.045);
}

details.result-cohort > .result-cohort-head {
  position: relative;
  grid-template-columns: minmax(0, 1fr);
  min-height: 88px;
  /* 右端は開閉ボタン（i）のみ。大会数の表示は廃止 */
  padding: 17px 70px 17px 18px;
  border-bottom: 0;
  cursor: pointer;
  list-style: none;
  transition: background 0.3s,
    color 0.3s,
    border-color 0.3s;
}

details.result-cohort > .result-cohort-head::-webkit-details-marker {
  display: none;
}

details.result-cohort > .result-cohort-head span {
  grid-column: 1;
}

details.result-cohort > .result-cohort-head h3 {
  grid-column: 1;
  align-self: center;
}

details.result-cohort > .result-cohort-head b {
  position: absolute;
  right: 70px;
  top: 50%;
  transform: translateY(-50%);
  margin: 0;
  align-self: auto;
}

details.result-cohort > .result-cohort-head i {
  position: absolute;
  right: 18px;
  top: 50%;
  width: 36px;
  height: 36px;
  border: 1px solid #cfc6bd;
  border-radius: 50%;
  transform: translateY(-50%);
  color: var(--red);
  font-size: 0;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  display: flex;
  transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1),
    background 0.3s,
    color 0.3s,
    border-color 0.3s;
  align-items: center;
  justify-content: center;
}

details.result-cohort > .result-cohort-head i:before {
  left: 50%;
  top: 50%;
  font-family: Arial, sans-serif;
  font-weight: 400;
  content: "";
  position: static;
  width: 12px;
  height: 12px;
  transform: none;
  background: linear-gradient(currentColor, currentColor) center/12px 2px no-repeat,
    linear-gradient(currentColor, currentColor) center/2px 12px no-repeat;
  font-size: 0;
  line-height: 0;
}

details.result-cohort > .result-cohort-head:hover,
details.result-cohort > .result-cohort-head:focus-visible {
  background: #211c1a;
  color: #fff;
  outline: 0;
}

details.result-cohort > .result-cohort-head:hover span,
details.result-cohort > .result-cohort-head:focus-visible span {
  color: #e2c56f;
}

details.result-cohort > .result-cohort-head:hover b,
details.result-cohort > .result-cohort-head:focus-visible b {
  color: #fff;
}

details.result-cohort > .result-cohort-head:hover i,
details.result-cohort > .result-cohort-head:focus-visible i {
  background: rgba(255, 255, 255, 0.1);
  border-color: #fff;
  color: #fff;
}

details.result-cohort[open] > .result-cohort-head {
  border-bottom: 3px solid #171413;
}

details.result-cohort[open] > .result-cohort-head i {
  transform: translateY(-50%) rotate(45deg);
}

details.result-cohort > .result-event-list {
  margin: 0;
  padding: 9px;
  background: #f7f4f1;
}

@media (max-width: 650px) {
  details.result-cohort > .result-cohort-head {
    grid-template-columns: minmax(0, 1fr);
    min-height: 86px;
    gap: 5px;
    padding: 15px 56px 15px 13px;
  }

  details.result-cohort > .result-cohort-head span {
    grid-column: 1;
  }

  details.result-cohort > .result-cohort-head h3 {
    grid-column: 1;
  }

  details.result-cohort > .result-cohort-head b {
    right: 57px;
    top: 50%;
    margin: 0;
  }

  details.result-cohort > .result-cohort-head i {
    right: 13px;
    top: 50%;
    width: 32px;
    height: 32px;
    font-size: 0;
  }

  details.result-cohort > .result-event-list {
    padding: 7px;
  }
}

.result-cohorts {
  gap: 14px;
}

@media (max-width: 650px) {
  .result-cohorts {
    gap: 10px;
  }
}

.match-row {
  padding: 10px 24px 10px 16px;
}

.match-row > span {
  font-weight: 700;
}

.match-note {
  margin: 0;
  padding: 11px 16px;
  border-bottom: 1px solid #e7dfd6;
  background: linear-gradient(90deg, #f5ead0, #fffaf0);
  color: #5e4718;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.06em;
}

@media (max-width: 650px) {
  .match-row {
    padding: 12px 16px 12px 12px;
    grid-template-columns: minmax(0, 1fr) 88px;
  }

  .match-note {
    padding: 12px;
    font-size: 12px;
  }
}

.roster-grade:not([open]) summary:hover > b,
.roster-grade:not([open]) summary:focus-visible > b {
  border-color: #fff;
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
}

details.result-cohort.is-closing > .result-cohort-head i {
  transform: translateY(-50%) rotate(0);
}

@media (max-width: 650px) {
  details.result-cohort > .result-cohort-head i:before {
    width: 11px;
    height: 11px;
    background-size: 11px 2px,
      2px 11px;
  }
}

@media (max-width: 900px) {
  .boys-side-box,
  .boys-side nav {
    min-width: 0;
  }

  .boys-side nav a:nth-child(1) {
    grid-column: 1/3;
  }

  .boys-side nav a:nth-child(2) {
    grid-column: 3/5;
  }

  .boys-side nav a:nth-child(4) {
    grid-column: 1/4;
  }

  .boys-side nav a:nth-child(5) {
    grid-column: 4/7;
  }
}

.ground-access {
  margin-bottom: clamp(44px, 5vw, 68px);
}

.ground-access-heading {
  margin-bottom: 26px;
}

.ground-access-heading > p {
  margin: 0 0 12px;
  color: var(--red);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.ground-access-heading h3 {
  margin: 0;
  font-size: clamp(28px, 3.4vw, 42px);
  line-height: 1.35;
  letter-spacing: -0.035em;
}

.ground-access-card {
  --ground-media-height: 330px;
  border: 1px solid #dfd7ce;
  background: #fff;
}

.ground-access-card + .ground-access-card {
  margin-top: 28px;
}

.ground-card-heading {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 24px 28px;
  background: #f6f3ee;
  border-top: 3px solid var(--red);
}

.ground-card-number {
  flex-shrink: 0;
  color: var(--red);
  font: italic 700 36px/1 Georgia,
    serif;
}

.ground-card-label {
  margin: 0 0 8px;
  color: #775f4c;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.1em;
  line-height: 1.6;
}

.ground-card-heading h4 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin: 0;
  font-size: clamp(20px, 2.1vw, 25px);
  line-height: 1.5;
  letter-spacing: -0.025em;
}

.ground-year {
  display: inline-block;
  padding: 4px 10px;
  background: var(--red);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.ground-access-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: 28px;
  padding: 28px;
}

.ground-access-info {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.ground-access-info address {
  margin: 0 0 20px;
  color: #211d1a;
  font-style: normal;
  font-size: 17px;
  font-weight: 800;
  line-height: 1.8;
  overflow-wrap: anywhere;
}

.ground-access-info address > span {
  display: block;
  margin-bottom: 5px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #625a52;
}

.ground-access-info > p {
  margin: 0 0 14px;
  color: #443d36;
  font-size: 15px;
  line-height: 1.9;
}

.ground-access-info > .ground-stadium-name {
  margin-bottom: 14px;
  color: var(--red);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.6;
}

.ground-access-map {
  min-width: 0;
  height: var(--ground-media-height);
  background: #eee9e3;
}

.ground-access-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.ground-map-link {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: auto;
  padding: 15px 18px;
  border: 1px solid #bdb5ad;
  color: var(--ink);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.6;
  transition: background 0.3s,
    color 0.3s,
    border-color 0.3s;
}

.ground-map-link b {
  color: var(--red);
  font-size: 20px;
  font-weight: 400;
  transition: transform 0.3s,
    color 0.3s;
}

.ground-map-link:hover,
.ground-map-link:focus-visible {
  background: #171413;
  border-color: #171413;
  color: #fff;
}

.ground-map-link:hover b,
.ground-map-link:focus-visible b {
  color: #fff;
  transform: translate(2px, -2px);
}

.ground-map-link:focus-visible {
  outline: 3px solid var(--boys-gold);
  outline-offset: 3px;
}

.ground-route {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: 28px;
  align-items: start;
  margin: 0 28px 28px;
  padding-top: 28px;
  border-top: 1px solid #dfd7ce;
}

.ground-route-copy h5 {
  margin: 0 0 14px;
  color: #211d1a;
  font-size: 21px;
  line-height: 1.5;
}

.ground-route-copy > p:not(.ground-card-label) {
  margin: 0 0 16px;
  font-size: 15px;
  line-height: 1.9;
  color: #443d36;
}

.ground-route-copy > p.ground-route-notice {
  font-size: 14px;
  padding: 16px;
  border-left: 3px solid var(--red);
  background: #f6ebea;
  color: #740000 !important;
  font-weight: 700;
}

.ground-route-figure {
  min-width: 0;
  margin: 0;
  border: 1px solid #d7cfc5;
  background: #fff;
  cursor: zoom-in;
  transition: border-color 0.3s,
    box-shadow 0.3s;
}

.ground-route-figure img {
  display: block;
  width: 100%;
  height: var(--ground-media-height);
  object-fit: contain;
  background: #fff;
}

.ground-route-figure figcaption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 14px;
  padding: 12px 14px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.6;
  color: #4b423a;
}

.ground-route-figure figcaption b {
  color: var(--red);
  white-space: nowrap;
}

.ground-route-figure:hover,
.ground-route-figure:focus-visible {
  border-color: var(--red);
  box-shadow: 0 10px 24px rgba(45, 19, 11, 0.1);
}

.ground-route-figure:focus-visible {
  outline: 3px solid var(--boys-gold);
  outline-offset: 3px;
}

.ground-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 1180px) {
  .ground-access-grid {
    grid-template-columns: 1fr;
  }

  .ground-map-link {
    max-width: 320px;
    margin-top: 8px;
  }

  .ground-access-card {
    --ground-media-height: 340px;
  }

  .ground-route {
    grid-template-columns: 1fr;
  }

  .ground-route-figure {
    width: 100%;
    margin-inline: 0;
  }
}

@media (max-width: 650px) {
  .ground-access-heading {
    margin-bottom: 20px;
  }

  .ground-card-heading {
    align-items: flex-start;
    gap: 12px;
    padding: 20px 16px;
  }

  .ground-card-number {
    font-size: 28px;
    padding-top: 3px;
  }

  .ground-card-heading h4 {
    font-size: 20px;
  }

  .ground-card-label {
    font-size: 11px;
    letter-spacing: 0.07em;
  }

  .ground-access-grid {
    gap: 22px;
    padding: 22px 16px;
  }

  .ground-access-info address {
    font-size: 16px;
  }

  .ground-access-card {
    --ground-media-height: 300px;
  }

  .ground-map-link {
    max-width: none;
  }

  .ground-route {
    gap: 18px;
    margin: 0 16px 22px;
    padding-top: 22px;
  }

  .ground-route-copy h5 {
    font-size: 20px;
  }

  .ground-route-figure figcaption {
    padding: 10px;
  }

  .ground-access-card + .ground-access-card {
    margin-top: 22px;
  }
}

/* グラウンド案内：写真ギャラリー（4列・クリックで拡大） */

.ground-photo-block {
  margin: 0 28px 28px;
  padding-top: 28px;
  border-top: 1px solid #dfd7ce;
}

.ground-photo-head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 16px;
  margin-bottom: 16px;
}

.ground-photo-head .ground-card-label {
  margin: 0;
}

.ground-photo-head h5 {
  margin: 0;
  color: #211d1a;
  font-size: 21px;
  line-height: 1.5;
}

.ground-photo-grid,
.facility-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.ground-photo-grid figure {
  position: relative;
  margin: 0;
  aspect-ratio: 4/3;
  min-width: 0;
  overflow: hidden;
  background: #ece6df;
  cursor: zoom-in;
  outline: 0;
}

.ground-photo-grid img,
.facility-gallery-grid img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 45%;
  transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.5s;
}

.ground-photo-grid figure:hover img,
.ground-photo-grid figure:focus-visible img {
  transform: scale(1.06);
  filter: saturate(1.08);
}

/* 拡大アイコン（ホバー時） */
.ground-photo-grid figure:after {
  content: "＋";
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 2;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--red);
  color: #fff;
  font-size: 16px;
  font-weight: 300;
  opacity: 0;
  transform: scale(0.8);
  transition: opacity 0.3s,
    transform 0.3s;
}

.ground-photo-grid figure:before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border: 0 solid var(--red);
  transition: border-width 0.25s;
  pointer-events: none;
}

.ground-photo-grid figure:hover:after,
.ground-photo-grid figure:focus-visible:after {
  opacity: 1;
  transform: scale(1);
}

.ground-photo-grid figure:hover:before {
  border-width: 3px;
}

.ground-photo-grid figure:focus-visible:before {
  border-width: 3px;
  border-color: var(--boys-gold);
}

/* 練習環境（TRAINING ENVIRONMENT） */

.facility-block {
  padding: clamp(28px, 4vw, 52px);
  background: #171413;
}

.facility-block:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: clamp(80px, 12vw, 160px);
  height: 4px;
  background: var(--red);
}

.facility-copy {
  gap: 12px clamp(24px, 4vw, 56px);
  align-items: end;
  margin-bottom: clamp(22px, 2.6vw, 32px);
}

.facility-copy > p {
  font-size: 11px;
}

.facility-copy > p:after {
  content: "";
  width: 40px;
  height: 1px;
  background: currentColor;
  opacity: 0.6;
}

.facility-copy {
  grid-template-columns: minmax(0, 1fr);
}

.facility-copy h3 {
  font-size: clamp(25px, 3.2vw, 40px);
  overflow-wrap: anywhere;
}

.facility-copy > span {
  grid-column: 2;
  grid-row: 2;
  white-space: normal;
  font-size: clamp(13px, 1.15vw, 15px);
  letter-spacing: 0.02em;
  line-height: 1.95;
}

.facility-gallery-grid {
  margin-top: 0;
  gap: 6px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.facility-gallery-grid figure {
  background: #2a2522;
}

.facility-gallery-grid figure:after {
  width: 32px;
  height: 32px;
  font-size: 16px;
}

.facility-gallery-grid figure:before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, transparent 55%, rgba(10, 8, 7, 0.45));
  opacity: 0;
  transition: opacity 0.35s;
  pointer-events: none;
}

.facility-gallery-grid figure:hover:before,
.facility-gallery-grid figure:focus-visible:before {
  opacity: 1;
}

/* 拡大表示：前後送り・枚数表示 */

.image-lightbox-nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  margin-top: -40px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.6);
  border-radius: 50%;
  background: rgba(15, 11, 9, 0.7);
  color: #fff;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  transition: background 0.3s,
    color 0.3s,
    border-color 0.3s;
}

.image-lightbox-nav[hidden] {
  display: none;
}

.image-lightbox-prev {
  left: 12px;
}

.image-lightbox-next {
  right: 12px;
}

.image-lightbox-nav:hover,
.image-lightbox-nav:focus-visible {
  border-color: var(--boys-gold, #d6bd8f);
  background: var(--boys-gold, #d6bd8f);
  color: #211d18;
}

.image-lightbox-count {
  margin-left: 12px;
  color: var(--boys-gold, #d6bd8f);
  font: italic 700 12px/1 Georgia,
    serif;
  letter-spacing: 0.08em;
}

@media (max-width: 900px) {
  .facility-copy {
    grid-template-columns: 1fr;
  }

  .facility-copy > span {
    grid-column: 1;
    grid-row: auto;
  }

  .facility-gallery-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 650px) {
  .ground-photo-block {
    margin: 0 16px 18px;
    padding-top: 20px;
  }

  .ground-photo-head h5 {
    font-size: 18px;
  }

  .ground-photo-grid,
  .facility-gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
  }

  .ground-photo-grid figure:after,
  .facility-gallery-grid figure:after {
    opacity: 1;
    transform: none;
    width: 26px;
    height: 26px;
    font-size: 13px;
    right: 7px;
    bottom: 7px;
  }

  .facility-copy > span {
    font-size: 14px;
  }

  .image-lightbox-nav {
    width: 38px;
    height: 38px;
    font-size: 16px;
  }

  .image-lightbox-prev {
    left: 6px;
  }

  .image-lightbox-next {
    right: 6px;
  }
}

/* グラウンド案内：動画サムネイル（クリックで動画をポップアップ再生） */

.ground-photo-grid figure.is-video {
  cursor: pointer;
}

.ground-photo-grid figure.is-video img {
  filter: brightness(0.82);
}

.ground-photo-grid figure.is-video:hover img {
  filter: brightness(0.95);
}

/* 再生ボタン（常時表示） */
.ground-photo-grid figure.is-video:after {
  content: "";
  left: 50%;
  top: 50%;
  right: auto;
  bottom: auto;
  width: 54px;
  height: 54px;
  margin: -27px 0 0 -27px;
  background: rgba(142, 0, 0, 0.92)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3C/svg%3E") 56% 50%/24px
    no-repeat;
  box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.25);
  opacity: 1;
  transform: none;
  transition: transform 0.3s,
    box-shadow 0.3s;
}

.ground-photo-grid figure.is-video:hover:after,
.ground-photo-grid figure.is-video:focus-visible:after {
  transform: scale(1.08);
  box-shadow: 0 0 0 9px rgba(255, 255, 255, 0.3);
}

.ground-video-badge {
  position: absolute;
  left: 8px;
  bottom: 8px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 8px;
  background: rgba(12, 8, 6, 0.78);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1;
}

.ground-video-badge i {
  width: 0;
  height: 0;
  border-left: 6px solid #fff;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
}

.image-lightbox-video {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: calc(100dvh - 132px);
  background: #000;
}

.image-lightbox-video[hidden],
.image-lightbox img[hidden] {
  display: none;
}

@media (max-width: 650px) {
  .ground-photo-grid figure.is-video:after {
    left: 50%;
    top: 50%;
    right: auto;
    bottom: auto;
    width: 44px;
    height: 44px;
    margin: -22px 0 0 -22px;
    background-size: 20px;
  }
}

.image-lightbox-video-error {
  position: absolute;
  left: 50%;
  bottom: 24px;
  z-index: 3;
  margin: 0;
  padding: 12px 16px;
  transform: translateX(-50%);
  background: rgba(15, 11, 9, 0.9);
  border-left: 3px solid var(--red);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.7;
  white-space: nowrap;
}

.image-lightbox-video-error[hidden] {
  display: none;
}

.image-lightbox-video-error a {
  margin-left: 10px;
  color: var(--boys-gold, #d6bd8f);
  text-decoration: underline;
}

@media (max-width: 650px) {
  .image-lightbox-video-error {
    width: calc(100% - 24px);
    white-space: normal;
    font-size: 12px;
  }
}

/* 準優勝＝銀／ベスト3＝銅（優勝の金バッジと同じ演出でオリンピック風に） */

.result-event summary > em.is-silver,
.result-event summary > em.is-bronze {
  position: relative;
  overflow: hidden;
  font-size: 12px;
  font-weight: 900;
  background-size: 220% 100%;
  animation: championGold 4.8s ease-in-out infinite;
}

.result-event summary > em.is-silver {
  background-image: linear-gradient(115deg, #7d848b 0%, #b9c0c6 20%, #f8fafc 44%, #c9cfd4 63%, #80878e 82%, #e3e7ea 100%);
  border-color: #f1f4f6;
  color: #1c2126;
  text-shadow: 0 1px rgba(255, 255, 255, 0.6);
  box-shadow: 0 7px 20px rgba(70, 80, 90, 0.3),
    inset 0 1px rgba(255, 255, 255, 0.8);
}

.result-event summary > em.is-bronze {
  background-image: linear-gradient(115deg, #7a3f17 0%, #b5703a 20%, #f6cfa4 44%, #c98450 63%, #82441a 82%, #e2a46f 100%);
  border-color: #f4c99d;
  color: #2a1406;
  text-shadow: 0 1px rgba(255, 236, 214, 0.55);
  box-shadow: 0 7px 20px rgba(122, 63, 23, 0.32),
    inset 0 1px rgba(255, 240, 222, 0.75);
}

.result-event summary > em.is-silver:before,
.result-event summary > em.is-bronze:before {
  content: "★";
  margin-right: 5px;
  font-size: 11px;
}

.result-event summary > em.is-silver:before {
  color: #59616a;
}

.result-event summary > em.is-bronze:before {
  color: #6e3410;
}

.result-event summary > em.is-silver:after,
.result-event summary > em.is-bronze:after {
  content: "";
  position: absolute;
  inset: -60% auto -60% -35%;
  width: 25%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.85), transparent);
  transform: skewX(-18deg);
  animation: championGlint 4.8s ease-in-out infinite;
}

.result-event summary:hover > em.is-silver,
.result-event summary:focus-visible > em.is-silver {
  background-image: linear-gradient(115deg, #959ca3 0%, #d3d8dc 23%, #ffffff 47%, #d6dbdf 68%, #959ca3 100%);
}

.result-event summary:hover > em.is-bronze,
.result-event summary:focus-visible > em.is-bronze {
  background-image: linear-gradient(115deg, #94501f 0%, #d08a4f 23%, #ffdcb5 47%, #d58f57 68%, #94501f 100%);
}

@media (max-width: 650px) {
  .result-event summary > em.is-silver,
  .result-event summary > em.is-bronze {
    font-size: 11px;
  }
}

/* =========================================================
   RESULTS：チーム名アイコン・試合行
   - .result-team：大会名の前に付けるチーム名アイコン
     種類：is-koshigaya（越谷ボーイズ）／is-chuo（越谷中央ボーイズ）／
           is-team-a（TEAM A）／is-team-b（TEAM B）／is-team-c（TEAM C）
     使い方：<time>…</time><span class="result-team is-koshigaya">越谷ボーイズ</span><strong>…</strong>
     ※背景は全チーム黒・幅は共通。チームの違いは先頭の丸の色で表します
   - .match-row：文字サイズ、VS表記、負け試合の自チーム点を赤、相手名と点数の間隔
   ========================================================= */

/* チーム名アイコンがある行だけ、日付と大会名の間に列を1つ追加 */
.result-event summary:has(> .result-team) {
  grid-template-columns: 76px auto minmax(0, 1fr) 96px 34px;
}

.result-event summary:has(> .result-team) > em {
  grid-column: 4;
}

.result-event summary:has(> .result-team) > b {
  grid-column: 5;
}

.result-team {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  justify-self: start;
  /* アイコンの長さは全チーム共通（最長の「越谷中央ボーイズ」に合わせた幅） */
  width: 124px;
  padding: 5px 8px;
  border: 1px solid var(--ink);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.04em;
  white-space: nowrap;
  color: #fff;
  background: var(--ink);
}

/* 先頭の小さな丸（チームごとのマーク色） */
.result-team:before {
  content: "";
  flex: none;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #fff;
}

.result-team.is-koshigaya:before {
  background: var(--boys-gold);
}

.result-team.is-chuo:before {
  background: #9fc0e8;
}

.result-team.is-team-b:before {
  background: #b9b0a8;
}

.result-team.is-team-c:before {
  background: #7d746d;
}

/* summary ホバー時（背景が黒）でも見えるよう、アイコンの枠を白に */
.result-event summary:hover .result-team,
.result-event summary:focus-visible .result-team {
  border-color: #fff;
}

/* 大会の日付：少し大きく */
.result-event time {
  font-size: 13px;
  letter-spacing: 0.02em;
}

/* 試合行：文字を少し大きく */
.match-row {
  justify-content: start;
  gap: 8px 16px;
}

.match-row > span {
  font-size: 13px;
}

.match-row > strong {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: 14px;
  line-height: 1.5;
}

/* 相手チーム名の前に「VS」 */
.match-row > strong:before {
  content: "VS";
  flex: none;
  color: var(--red);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.match-row > em small {
  font-size: 11px;
}

/* 自チーム（左側）の点数は勝敗に関わらず赤で統一 */
.match-row > em.is-loss b:first-child {
  color: var(--red);
}

@media (max-width: 650px) {
  .result-event time {
    font-size: 12px;
    letter-spacing: 0;
  }

  /* スマホ：1行目に「日付・チーム名アイコン・結果バッジ（ベスト4など）」、2行目に大会名 */
  .result-event summary:has(> .result-team) {
    grid-template-columns: auto auto minmax(0, 1fr) 30px;
    gap: 9px 8px;
  }

  .result-event summary:has(> .result-team) > time {
    grid-column: 1;
    grid-row: 1;
  }

  .result-event summary:has(> .result-team) > .result-team {
    grid-column: 2;
    grid-row: 1;
    width: 110px;
    padding: 4px 6px;
    font-size: 10px;
  }

  .result-event summary:has(> .result-team) > em {
    grid-column: 3;
    grid-row: 1;
    justify-self: start;
    width: 84px;
    min-height: 26px;
    padding: 4px 6px;
  }

  .result-event summary:has(> .result-team) > strong {
    grid-column: 1/4;
    grid-row: 2;
  }

  .result-event summary:has(> .result-team) > b {
    grid-column: 4;
    grid-row: 1/3;
  }

  .match-row {
    gap: 4px 12px;
  }

  .match-row > span {
    font-size: 12px;
  }

  .match-row > span small {
    font-size: 11px;
  }

  .match-row > strong {
    font-size: 13px;
    line-height: 1.55;
  }

  .match-row > em b {
    width: 26px;
    font-size: 18px;
  }
}

@media (max-width: 370px) {
  /* 幅の狭いスマホ：日付を上に出し、2行目に「チーム名アイコン・結果バッジ」、3行目に大会名 */
  .result-event summary:has(> .result-team) > time {
    grid-column: 1/4;
  }

  .result-event summary:has(> .result-team) > .result-team,
  .result-event summary:has(> .result-team) > em {
    grid-row: 2;
  }

  .result-event summary:has(> .result-team) > .result-team {
    grid-column: 1;
  }

  .result-event summary:has(> .result-team) > em {
    grid-column: 2;
  }

  .result-event summary:has(> .result-team) > strong {
    grid-row: 3;
  }

  .result-event summary:has(> .result-team) > b {
    grid-row: 1/4;
  }
}

/* =========================================================
   RESULTS：シード（その回戦は試合なし）
   使い方：<div class="match-row is-seed"><span>第一回戦</span><strong>シード</strong></div>
   ※試合結果プラグインで勝敗「シード」を選んだ行がこの形で出力されます
   ========================================================= */
.match-row.is-seed > strong {
  align-items: center;
  color: #8b837b;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.match-row.is-seed > strong:before {
  content: "";
  width: 18px;
  height: 1px;
  background: #cfc6bd;
}

.match-row.is-seed > span {
  color: #8b837b;
}

/* ===== 選手カード・越谷中央ボーイズ・Instagram 他 ===== */

/* 目次エリアのレイアウト調整：左右2カラムをやめ、目次をMV下に全幅で配置。
 * 右カラムは1カラム化。目次ボックスはスクロールに追従（sticky）させる。
 * このファイル前半の同名セレクターより後に置くことで上書きする。
 */

.boys-page-layout {
  display: block;
}

.boys-side {
  width: 100%;
  margin-bottom: clamp(18px, 2.6vw, 30px);
  overflow: visible;
}

/* ヘッダー（スクロール後の高さ）にぴったり付くように上書き。
 * 900px以下は前半の指定で既にヘッダーと隙間なく揃っているため対象外。
 */

@media (min-width: 1181px) {
  .boys-side {
    top: 94px;
  }
}

.boys-side-box {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  width: 100%;
  min-width: 0;
}

.boys-side nav {
  flex: 1 1 auto;
  flex-wrap: wrap;
  width: 100%;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.boys-side nav a:last-child {
  border-bottom: 0;
}

.boys-content-column {
  width: 100%;
}

/* 目次に追従したページ内リンク先が、目次バーの下に隠れないよう確保する量。
 * ＝スクロール後のヘッダー高さ＋目次バーの高さ＋少しの余白。
 * 900px以下（スマホ・タブレット）は対象外（PC版のみの調整）。
 */

@media (min-width: 1181px) {
  .boys-content-section {
    scroll-margin-top: 170px;
  }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .boys-side {
    top: 68px;
  }

  .boys-content-section {
    scroll-margin-top: 144px;
  }
}

@media (max-width: 900px) {
  /* 追従ボックスの高さを、現状の6/7程度に圧縮 */

  .boys-side nav a {
    padding-block: 6px;
  }
}

/* PLAYERS：3年生カード（選手カードデザイン・4名仮作成のプレビュー用）
 * カード画像＋その下に氏名。将来的に29名分の画像・氏名に差し替え予定。
 */

.roster-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(12px, 1.6vw, 20px);
  padding: clamp(16px, 2.4vw, 26px);
  border-top: 1px solid #ded6ce;
}

.roster-card {
  margin: 0;
  background: #fff;
  overflow: hidden;
  transition: transform 0.3s,
    box-shadow 0.3s;
  cursor: pointer;
}

.roster-card img {
  display: block;
  width: 100%;
  aspect-ratio: 465/677;
  object-fit: cover;
  background: #201b19;
}

.roster-card figcaption {
  padding: 10px 8px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-align: center;
  color: #201b19;
}

.roster-card:is(:hover, .is-hover) {
  transform: translateY(-3px);
}

/* トレーディングカード風デザインの4枚（roster-card-feature）は、画像自体が
 * カード全体を表現するデザインのため、白背景を敷かず画像＋氏名のみにする。
 */

.roster-card.roster-card-feature {
  background: none;
}

.roster-card-feature figcaption {
  background: none;
}

/* PLAYERS：選手カードの画像上に重ねるテキスト情報（トレーディングカード風デザイン）
 * .roster-card-media を基準コンテナ（container-type）にし、cqw単位でテキストを
 * カード幅に比例させることで、グリッド列数が変わるレスポンシブ時も崩れないようにする。
 */

.roster-card-media {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  container-type: inline-size;
}

.roster-card-media img {
  position: relative;
  z-index: 0;
}

.roster-card-overlay {
  position: absolute;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  pointer-events: none;
  color: #fff;
  font-family: "Oswald", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  line-height: 1;
  text-align: right;
  text-transform: uppercase;
  white-space: nowrap;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.75),
    0 0 2px rgba(0, 0, 0, 0.5);
}

/* 右上：枠の赤いコーナー部分にクラブ名を右寄せで配置 */
.roster-card-overlay-top {
  top: 2.8cqw;
  right: 5.2cqw;
  gap: 0.16em;
}

.roster-card-overlay-top strong {
  font-size: 4.5cqw;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.roster-card-overlay-top span {
  font-size: 4.5cqw;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #eec583;
}

/* 右下：枠の赤い帯の上に背番号・チーム名・選手名を右寄せで配置 */
.roster-card-overlay-bottom {
  right: 5.6cqw;
  bottom: 3.2cqw;
  gap: 0;
}

.roster-card-overlay-bottom .roster-card-number {
  font-size: 17cqw;
  font-weight: 700;
  font-style: normal;
  line-height: 1;
  letter-spacing: 0.01em;
}

.roster-card-overlay-bottom strong {
  margin-top: 0.3em;
  font-size: 5.3cqw;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #eec583;
}

.roster-card-overlay-bottom span {
  margin-top: 0.1em;
  font-size: 8.6cqw;
  font-weight: 700;
  letter-spacing: 0.01em;
}

/* ローマ字表記が長く枠からはみ出す選手名用（span に class="roster-card-name-long" を付与） */
.roster-card-overlay-bottom span.roster-card-name-long {
  font-size: 7.6cqw;
  letter-spacing: 0;
}

@media (max-width: 900px) {
  .roster-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 650px) {
  .roster-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 16px;
  }

  .roster-card figcaption {
    font-size: 12px;
  }
}

/* PLAYERS：選手カードをクリックした際のポップアップ（画像左・選手情報右）。
 * .image-lightbox（このファイル前半）と同じ開閉パターンを流用。
 */

.roster-modal {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  padding: clamp(18px, 4vw, 58px);
  background: rgba(8, 6, 5, 0.92);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.32s,
    visibility 0.32s;
}

.roster-modal.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.roster-modal-dialog {
  position: relative;
  width: min(720px, 100%);
  max-height: calc(100dvh - 36px);
  display: grid;
  grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
  overflow: hidden auto;
  background: #fff;
  box-shadow: 0 32px 90px rgba(0, 0, 0, 0.55);
  transform: translateY(12px) scale(0.985);
  transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1);
}

.roster-modal.is-open .roster-modal-dialog {
  transform: none;
}

.roster-modal-media {
  position: relative;
  min-height: 0;
  overflow: hidden;
  container-type: inline-size;
  padding: 14px;
  box-sizing: border-box;
}

.roster-modal-media img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 465/677;
  object-fit: cover;
  border-radius: 8px;
}

/* モーダル内では画像コンテナの実寸が一定（720px上限）のため、cqw基準の文字サイズを
 * clamp()で頭打ちにし、カードクリック後の表示が大きくなりすぎない／はみ出さないようにする。
 */

.roster-modal-media .roster-card-overlay-top {
  top: clamp(7px, 2.8cqw, 12px);
  right: clamp(12px, 5.6cqw, 24px);
}

.roster-modal-media .roster-card-overlay-top strong,
.roster-modal-media .roster-card-overlay-top span {
  font-size: clamp(12px, 4.5cqw, 18px);
}

.roster-modal-media .roster-card-overlay-bottom {
  right: clamp(12px, 5.6cqw, 24px);
  bottom: clamp(8px, 3.2cqw, 14px);
}

.roster-modal-media .roster-card-overlay-bottom .roster-card-number {
  font-size: clamp(36px, 17cqw, 66px);
}

.roster-modal-media .roster-card-overlay-bottom strong {
  font-size: clamp(13px, 5.3cqw, 21px);
}

.roster-modal-media .roster-card-overlay-bottom span {
  font-size: clamp(18px, 8.6cqw, 34px);
}

.roster-modal-media .roster-card-overlay-bottom span.roster-card-name-long {
  font-size: clamp(16px, 7.6cqw, 30px);
}

.roster-modal-info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
  padding: clamp(22px, 3.2vw, 36px) calc(clamp(22px, 3.2vw, 36px) - 10px);
}

.roster-modal-team {
  margin: 0;
  color: var(--red, #9d080d);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.1em;
}

.roster-modal-name {
  margin: 0;
  font-size: clamp(22px, 2.6vw, 28px);
  letter-spacing: 0.02em;
  color: #201b19;
}

/* 入団理由・コメント：見出し＋本文のブロックを縦に並べる */
.roster-modal-texts {
  display: grid;
  gap: 18px;
  margin-top: 6px;
  padding-top: 16px;
  border-top: 1px solid #ece6df;
}

.roster-modal-block {
  margin: 0;
}

.roster-modal-block[hidden],
.roster-modal-bio[hidden],
.roster-modal-texts[hidden],
.roster-modal-team[hidden] {
  display: none;
}

.roster-modal-heading {
  display: inline-block;
  margin: 0 0 8px;
  padding: 4px 10px 4px 11px;
  background: var(--red, #9d080d);
  border-radius: 2px;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
}

.roster-modal-text {
  margin: 0;
  color: #3b3632;
  font-size: 13px;
  line-height: 1.9;
}

.roster-modal-bio {
  margin: 0;
  color: #3b3632;
  font-size: 13px;
  line-height: 1.9;
}

.roster-modal-close {
  position: absolute;
  right: 12px;
  top: 12px;
  z-index: 2;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(15, 11, 9, 0.7);
  color: #fff;
  font-size: 25px;
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
  transition: background 0.3s,
    color 0.3s,
    transform 0.3s;
}

.roster-modal-close:hover,
.roster-modal-close:focus-visible {
  background: #d6bd8f;
  color: #211d18;
  transform: rotate(90deg);
}

/* PLAYERS：選手カードのポップアップ（レスポンシブ時）
 * スマホ表示は、画像に選手情報レイヤーを半透明で重ねる構成から、
 * 「カード画像（原寸比率のまま）→ その下に選手情報」を縦に積む、
 * 通常のドキュメントフローのレイアウトに刷新。
 * ダイアログ全体を1つのスクロール領域にすることで、内容がビューポートより
 * 長くなっても要素が画面の途中で見切れることなく、最後まで確認できるようにする。
 */

@media (max-width: 650px) {
  .roster-modal {
    display: block;
    padding: 20px 16px 40px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }

  .roster-modal-dialog {
    display: block;
    grid-template-columns: none;
    width: 100%;
    max-width: 440px;
    height: auto;
    max-height: none;
    margin: 0 auto;
    overflow: visible;
    border-radius: 14px;
  }

  .roster-modal-media {
    position: relative;
    padding: 0;
    aspect-ratio: 465/677;
    border-radius: 14px 14px 0 0;
  }

  .roster-modal-media img {
    width: 100%;
    height: 100%;
    aspect-ratio: 465/677;
    object-fit: cover;
    object-position: top center;
    border-radius: 14px 14px 0 0;
  }

  /* カード画像本来の比率のまま表示するため、テキストの位置・サイズは
   * カード一覧（.roster-card-media）と同じ基準（cqw）に揃える。
   */

  .roster-modal-media .roster-card-overlay-top {
    top: clamp(8px, 2.8cqw, 13px);
    right: clamp(14px, 5.6cqw, 24px);
    left: auto;
  }

  .roster-modal-media .roster-card-overlay-top strong,
  .roster-modal-media .roster-card-overlay-top span {
    font-size: clamp(13px, 4.5cqw, 19px);
  }

  .roster-modal-media .roster-card-overlay-bottom {
    right: clamp(14px, 5.6cqw, 24px);
    left: auto;
    bottom: clamp(10px, 3.2cqw, 16px);
    max-width: calc(100% - 28px);
    align-items: flex-end;
    text-align: right;
  }

  .roster-modal-media .roster-card-overlay-bottom .roster-card-number {
    font-size: clamp(42px, 17cqw, 72px);
  }

  .roster-modal-media .roster-card-overlay-bottom strong {
    font-size: clamp(14px, 5.3cqw, 22px);
  }

  .roster-modal-media .roster-card-overlay-bottom span {
    font-size: clamp(20px, 8.6cqw, 36px);
  }

  .roster-modal-media .roster-card-overlay-bottom span.roster-card-name-long {
    font-size: clamp(18px, 7.6cqw, 32px);
  }

  /* カード右上のクラブ名と重ならないよう、スマホでは閉じるボタンを左上に配置 */
  .roster-modal-close {
    top: 10px;
    right: auto;
    left: 10px;
  }

  /* 選手情報は画像の下に続く、透過なしの通常セクションとして表示する */

  .roster-modal-info {
    position: static;
    max-height: none;
    overflow: visible;
    background: #fff;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    border-top: 1px solid #ece6df;
    box-shadow: none;
    border-radius: 0 0 14px 14px;
    padding: 22px 10px calc(22px + env(safe-area-inset-bottom, 0px));
  }

  /* スマホ表示：選手情報シート内の文字を全体的に読みやすいサイズへ拡大 */

  .roster-modal-team {
    font-size: 13px;
  }

  .roster-modal-name {
    font-size: 24px;
  }

  .roster-modal-heading {
    font-size: 12px;
    padding: 4px 11px 4px 12px;
  }

  .roster-modal-text {
    font-size: 15px;
    line-height: 1.85;
  }

  .roster-modal-bio {
    font-size: 15px;
    line-height: 1.85;
  }
}

/* RESULTS：戦績数字エリア（直近5年の実績をカウントアップで見せる） */

.results-lead {
  margin: 0 0 clamp(20px, 2.4vw, 28px);
  padding-left: 20px;
  border-left: 3px solid var(--red);
  font-size: clamp(15px, 1.6vw, 17px);
  font-weight: 800;
  line-height: 1.85;
  color: var(--red);
  max-width: none;
}

.result-stats {
  position: relative;
  overflow: hidden;
  margin-bottom: clamp(28px, 3.4vw, 42px);
  padding: clamp(26px, 3vw, 34px) clamp(20px, 2.8vw, 32px) clamp(22px, 2.4vw, 28px);
  background: linear-gradient(135deg, #1a1512 0%, #2b211a 100%);
  box-shadow: 0 20px 46px rgba(0, 0, 0, 0.28);
}

.result-stats:before {
  content: "";
  position: absolute;
  inset: -45% -15%;
  background: linear-gradient(100deg, transparent 35%, rgba(255, 255, 255, 0.08) 48%, rgba(214, 189, 143, 0.18) 52%, transparent 65%);
  animation: resultStatsSweep 6s ease-in-out infinite;
  pointer-events: none;
}

.result-stats-grid {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  gap: clamp(4px, 1.6vw, 22px);
}

.result-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1 1 0;
  min-width: 0;
  text-align: center;
  padding-block: 4px;
  padding-inline: clamp(2px, 0.8vw, 10px);
}

.result-stat + .result-stat {
  border-left: 1px solid rgba(255, 255, 255, 0.18);
}

.result-stat-number {
  display: block;
  font: italic 900 clamp(28px, 3.8vw, 50px)/1 Georgia,
    serif;
  color: var(--boys-gold);
}

.result-stat-number.is-ready {
  opacity: 0;
  transform: translateY(10px) scale(0.82);
}

.result-stat-number.is-revealed {
  animation: resultStatPop 0.55s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.result-stat-number.is-landed {
  animation: resultStatFlash 0.6s ease-out;
}

.result-stat small {
  display: block;
  margin-top: 10px;
  font-size: clamp(12px, 1.3vw, 15px);
  font-weight: 900;
  letter-spacing: 0.02em;
  color: #fff;
  white-space: nowrap;
}

.result-stats-period {
  position: relative;
  z-index: 1;
  margin: clamp(20px, 2.4vw, 26px) 0 0;
  text-align: right;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #cfc6bb;
}

/* 優勝：特別感のある黄金グラデーション（RESULTSアコーディオンの優勝バッジと同じ演出） */

.result-stat-champion {
  position: relative;
  overflow: hidden;
  border-left: none !important;
  padding-block: 8px;
  border-radius: 4px;
  background: linear-gradient(115deg, #9a6500 0%, #d6a827 20%, #fff4a8 44%, #e4b83f 63%, #a66d00 82%, #f2d36b 100%);
  background-size: 220% 100%;
  box-shadow: 0 10px 26px rgba(129, 87, 9, 0.4),
    inset 0 1px rgba(255, 255, 255, 0.6);
  animation: championGold 4.8s ease-in-out infinite;
}

.result-stat-champion:after {
  content: "";
  position: absolute;
  inset: -60% auto -60% -35%;
  width: 25%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.85), transparent);
  transform: skewX(-18deg);
  animation: championGlint 4.8s ease-in-out infinite;
}

.result-stat-champion .result-stat-number {
  color: #271c07;
  text-shadow: 0 1px rgba(255, 255, 255, 0.5);
}

.result-stat-champion small {
  color: #271c07;
}

.result-stat-champion + .result-stat {
  border-left: none;
}

@keyframes resultStatsSweep {
  0%,
  100% {
    transform: translateX(-12%);
  }

  50% {
    transform: translateX(12%);
  }
}

@keyframes resultStatPop {
  0% {
    opacity: 0;
    transform: translateY(10px) scale(0.8);
  }

  60% {
    opacity: 1;
    transform: translateY(-2px) scale(1.08);
  }

  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes resultStatFlash {
  0% {
    text-shadow: 0 0 0 rgba(255, 238, 190, 0);
  }

  35% {
    text-shadow: 0 0 18px rgba(255, 238, 190, 0.9);
  }

  100% {
    text-shadow: 0 0 0 rgba(255, 238, 190, 0);
  }
}

@media (max-width: 650px) {
  .results-lead {
    font-size: 14px;
    padding-left: 14px;
  }

  .result-stats {
    padding: 18px 12px 16px;
  }

  .result-stats-grid {
    gap: 3px;
  }

  .result-stat {
    padding-inline: 1px;
  }

  .result-stat-number {
    font-size: 19px;
  }

  .result-stat small {
    font-size: 8.5px;
    letter-spacing: 0;
  }

  .result-stats-period {
    margin-top: 16px;
    font-size: 11px;
  }
}

/* RESULTS：歴代主要実績　トップページの team-history と同じテキストサイズ・見た目
 * ●期生アコーディオンとは別エリアであることが分かるよう、背景色と余白でメリハリを付ける
 */

.team-history.boys-results-history {
  margin: clamp(56px, 6vw, 80px) calc(-1 * clamp(34px, 4.2vw, 58px)) calc(-1 * clamp(34px, 4.2vw, 58px));
  padding: clamp(32px, 3.6vw, 44px) clamp(34px, 4.2vw, 58px) clamp(34px, 4.2vw, 58px);
  background: #f4f0ea;
  border: 0;
  border-top: 4px solid var(--red);
  box-shadow: none;
}

.boys-results-history .team-history-head {
  padding-inline: 0;
  border-bottom-color: #e2d9cc;
}

.boys-results-history .team-history-scroll {
  padding-inline: 0;
}

.boys-results-history .team-history-term {
  background: #f4f0ea;
}

@media (max-width: 650px) {
  .team-history.boys-results-history {
    margin: 40px -18px -28px;
    padding: 26px 18px 28px;
  }
}

.team-history-head {
  padding: clamp(14px, 1.8vw, 20px) clamp(18px, 2.2vw, 24px) clamp(10px, 1.3vw, 13px);
  border-bottom: 1px solid #e6dfd7;
}

.team-history-head .eyebrow {
  margin: 0 0 6px;
  font-size: 10px;
  color: var(--red);
}

.team-history-head h3 {
  margin: 0;
  font-size: clamp(18px, 1.9vw, 22px);
  font-weight: 800;
  color: var(--ink);
}

.team-history-scroll {
  padding: 0 clamp(16px, 2vw, 26px) clamp(14px, 1.8vw, 20px);
}

.team-history-group + .team-history-group {
  margin-top: 10px;
}

.team-history-term {
  margin: 0;
  padding: 12px 0 7px;
  background: #fff;
  font-size: 15px;
  font-weight: 900;
  letter-spacing: 0.04em;
  color: var(--red);
  border-bottom: 2px solid var(--ink);
}

.team-history-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 2px;
}

.team-history-list li {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 11px 2px;
  border-bottom: 1px solid #eee8e1;
}

.team-history-list li:last-child {
  border-bottom: 0;
}

.team-history-list time {
  font-size: 13px;
  font-weight: 900;
  color: var(--red);
}

.team-history-name {
  font-size: 13px;
  line-height: 1.55;
  color: var(--ink);
}

.team-history-name small {
  display: inline-block;
  margin: 0 6px 2px 0;
  padding: 3px 8px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.06em;
  color: #fff;
  background: var(--ink);
  vertical-align: middle;
}

/* テキスト部分はタグより少し大きめに（PC表示） */

.team-history-text {
  font-size: 14px;
}

/* リストの区切り線がエリア背景（#f4f0ea）に馴染んで見えにくくなるため、
   トップページ同様にはっきり見える濃さへ補正する */

.boys-results-history .team-history-list li {
  border-bottom-color: rgba(23, 20, 19, 0.14);
}

.team-history-list em {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 7px 10px;
  border: 1px solid #a3191d;
  background: #8e0000;
  color: #fff;
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: 0.02em;
  text-align: center;
  white-space: nowrap;
  width: 84px;
  min-width: 84px;
  padding-inline: 6px;
}

.team-history-list em.is-champion {
  position: relative;
  overflow: hidden;
  background: linear-gradient(115deg, #9a6500 0%, #d6a827 20%, #fff4a8 44%, #e4b83f 63%, #a66d00 82%, #f2d36b 100%);
  background-size: 220% 100%;
  border-color: #ffe89a;
  color: #271c07;
  font-size: 13px;
  font-weight: 900;
  box-shadow: 0 7px 20px rgba(129, 87, 9, 0.35),
    inset 0 1px rgba(255, 255, 255, 0.75);
  text-shadow: 0 1px rgba(255, 255, 255, 0.5);
  animation: championGold 4.8s ease-in-out infinite;
}

.team-history-list em.is-champion:before {
  content: "★";
  margin-right: 4px;
  color: #8e5b00;
  font-size: 12px;
}

.team-history-list em.is-champion:after {
  content: "";
  position: absolute;
  inset: -60% auto -60% -35%;
  width: 25%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.85), transparent);
  transform: skewX(-18deg);
  animation: championGlint 4.8s ease-in-out infinite;
}

@media (max-width: 650px) {
  /* レスポンシブ時：1行目に「年月　期生　TEAM」、2行目にテキストを配置する。
     優勝/ベスト等のバッジ（em）の位置は変更しない */

  .team-history-list li {
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas: "time tags badge" "text text badge";
    row-gap: 4px;
  }

  .team-history-list time {
    grid-area: time;
  }

  .team-history-name {
    display: contents;
  }

  .team-history-tags {
    grid-area: tags;
  }

  .team-history-text {
    grid-area: text;
    font-size: 12px;
  }

  .team-history-list em {
    grid-area: badge;
  }
}

/* 目次：6項目（PLAYERS／RESULTS／SCHEDULE／CHUO BOYS／GALLERY／ALUMNI）
 * PC：6列1段／651〜900px：3列2段／650px以下：2列3段
 */

.boys-side nav a,
.boys-side nav a:nth-child(n) {
  grid-column: auto;
  width: auto;
  min-width: 0;
  flex: none;
  border-right: 1px solid rgba(255, 255, 255, 0.09);
  border-bottom: 0;
}

.boys-side nav a:last-child {
  border-right: 0;
}

@media (max-width: 900px) {
  .boys-side nav a,
  .boys-side nav a:nth-child(n) {
    grid-column: auto;
    width: auto;
    min-width: 0;
    min-height: 44px;
    padding: 5px;
    grid-template-columns: 20px minmax(0, 1fr) 11px;
    gap: 7px;
  }

  .boys-side nav a:nth-child(n/**/+4) {
    border-bottom: 0;
  }
}

@media (max-width: 650px) {

  .boys-side nav a:nth-child(2n) {
    border-right: 0;
  }

  .boys-side nav a:nth-child(n/**/+5) {
    border-bottom: 0;
  }
}

/* ALUMNI：卒団生の進路・実績
 * 導入（TO THE NEXT STAGE）→ 進学先ボード（都道府県＋学校名）
 */

.boys-alumni-intro {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: clamp(22px, 3.6vw, 52px);
  padding: clamp(26px, 3vw, 38px) clamp(24px, 3.4vw, 44px);
  overflow: hidden;
  background: linear-gradient(135deg, #221d1a 0%, #100d0c 100%);
  color: #fff;
}

.boys-alumni-intro:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 5px;
  background: var(--red);
}

.boys-alumni-intro:after {
  content: "";
  position: absolute;
  right: -60px;
  top: 50%;
  width: 240px;
  height: 240px;
  border: 1px solid rgba(214, 189, 143, 0.16);
  border-radius: 50%;
  transform: translateY(-50%);
  box-shadow: 0 0 0 28px rgba(214, 189, 143, 0.035);
  pointer-events: none;
}

.boys-alumni-intro-label {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0;
  padding-right: clamp(22px, 3.6vw, 52px);
  border-right: 1px solid rgba(255, 255, 255, 0.18);
  white-space: nowrap;
}

.boys-alumni-intro-label span {
  font: italic 700 clamp(24px, 2.4vw, 32px)/1.05 Georgia,
    serif;
  letter-spacing: 0.01em;
}

.boys-alumni-intro-label span:first-child {
  color: #d6bd8f;
  font-size: clamp(14px, 1.3vw, 17px);
  letter-spacing: 0.14em;
}

.boys-alumni-intro-text {
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: 14.5px;
  font-weight: 700;
  line-height: 2;
}

@media (max-width: 650px) {
  .boys-alumni-intro {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 24px 20px 24px 24px;
  }

  .boys-alumni-intro-label {
    flex-direction: row;
    align-items: baseline;
    gap: 8px;
    padding: 0 0 14px;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
  }

  .boys-alumni-intro-label span {
    font-size: 22px;
  }

  .boys-alumni-intro-label span:first-child {
    font-size: 13px;
  }

  .boys-alumni-intro-text {
    font-size: 13.5px;
    line-height: 1.95;
  }
}

/* CHUO BOYS：越谷中央ボーイズとは
 * 1.問いかけ → 2.試合でしか得られない成長 → 3.覚悟 → 4.2チーム体制 → 5.失敗できる環境 → 6.監督メッセージ
 */

.chuo-about-section {
  --chuo-gap: clamp(40px, 4.6vw, 64px);
}

.chuo-about-text {
  margin: 0;
  color: #2f2926;
  font-size: 15px;
  line-height: 2.05;
}

/* 1. 問いかけ */

.chuo-about-hero {
  position: relative;
  overflow: hidden;
  min-height: clamp(260px, 26vw, 340px);
  display: flex;
  align-items: flex-end;
  background: #171413;
  color: #fff;
}

.chuo-about-hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  opacity: 0.42;
  filter: grayscale(0.35);
}

.chuo-about-hero:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(23, 20, 19, 0.94) 0%, rgba(23, 20, 19, 0.72) 55%, rgba(142, 0, 0, 0.55) 100%);
}

.chuo-about-hero-inner {
  position: relative;
  z-index: 1;
  padding: clamp(28px, 3.6vw, 52px);
  width: 100%;
  container-type: inline-size;
}

.chuo-about-question {
  margin: 0 0 18px;
  padding-left: 16px;
  border-left: 3px solid #c51118;
  color: #e9dcd2;
  font-size: clamp(14px, 1.2vw, 17px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.03em;
}

.chuo-about-answer {
  margin: 0;
  font-size: clamp(24px, 2.9vw, 40px);
  font-weight: 900;
  line-height: 1.45;
  letter-spacing: 0.01em;
}

.chuo-about-answer > span {
  display: inline-block;
}

.chuo-about-answer em {
  display: inline-block;
  font-style: normal;
  background: linear-gradient(transparent 68%, rgba(197, 17, 24, 0.85) 68% 92%, transparent 92%);
}

/* 共通：章ブロックと見出し */

.chuo-about-block {
  margin-top: var(--chuo-gap);
}

.chuo-about-kicker {
  margin: 0 0 22px;
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--ink);
  font-size: clamp(17px, 1.6vw, 21px);
  font-weight: 900;
  letter-spacing: 0.03em;
}

.chuo-about-kicker span {
  color: var(--red);
  font: italic 700 clamp(24px, 2.2vw, 30px)/1 Georgia,
    serif;
}

.chuo-about-kicker:after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: #e2dad1;
}

/* 2. 試合でしか得られない成長 */

.chuo-about-lead {
  margin: 0 0 20px;
  font-size: 15px;
  font-weight: 700;
  line-height: 2;
}

.chuo-about-moments {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.chuo-about-moments li {
  position: relative;
  padding: 24px 22px 26px;
  background: #fff;
  border: 1px solid #e6dfd7;
  border-top: 3px solid var(--red);
}

.chuo-about-moments small {
  display: block;
  margin-bottom: 12px;
  color: var(--red);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.2em;
}

.chuo-about-moments p {
  margin: 0;
  font-size: clamp(15px, 1.3vw, 17px);
  font-weight: 800;
  line-height: 1.75;
}

.chuo-about-emphasis {
  margin: 20px 0 0;
  padding: 18px 22px;
  background: #171413;
  color: #fff;
  font-size: clamp(15px, 1.4vw, 18px);
  font-weight: 800;
  line-height: 1.7;
  text-align: center;
}

/* 3. 覚悟 */

.chuo-about-resolve-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  gap: clamp(24px, 3.4vw, 48px);
  align-items: start;
}

.chuo-about-promises {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;
}

.chuo-about-promises li {
  grid-template-columns: auto minmax(0, 1fr);
  container-type: inline-size;
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 24px 26px 24px 30px;
  background: #fff;
  border: 1px solid #e6dfd7;
  border-left: 1px solid #e6dfd7;
  overflow: hidden;
}

.chuo-about-promises strong {
  letter-spacing: 0.02em;
  white-space: nowrap;
  position: relative;
  line-height: 1.45;
  margin-left: -0.5em;
  font-size: min(23px, calc(100cqw / 16.6));
}

/* 4. 2チーム体制 */

.chuo-about-diagram {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) 44px minmax(0, 1.2fr);
  align-items: stretch;
  gap: 14px;
  margin-bottom: 22px;
}

.chuo-about-team {
  min-height: 100px;
  display: grid;
  place-items: center;
  padding: 16px 14px;
  background: #f6f3ee;
  border: 1px solid #e6dfd7;
}

.chuo-about-team img {
  display: block;
  width: 100%;
  max-width: 220px;
  height: auto;
}

.chuo-about-plus {
  align-self: center;
  color: var(--red);
  font-size: 26px;
  font-weight: 900;
  line-height: 1;
}

.chuo-about-arrow {
  position: relative;
  align-self: center;
  height: 2px;
  background: var(--red);
}

.chuo-about-arrow:after {
  content: "";
  position: absolute;
  right: -1px;
  top: 50%;
  width: 11px;
  height: 11px;
  border-top: 2px solid var(--red);
  border-right: 2px solid var(--red);
  transform: translateY(-50%) rotate(45deg);
}

.chuo-about-result {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  padding: 16px 20px;
  background: linear-gradient(135deg, #9d080d, #6a0003);
  color: #fff;
}

.chuo-about-result small {
  color: #f2c2c4;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.2em;
}

.chuo-about-result strong {
  font-size: clamp(15px, 1.3vw, 18px);
  line-height: 1.55;
}

.chuo-about-compare {
  margin-top: 26px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  border: 1px solid #e6dfd7;
}

.chuo-about-compare > div {
  padding: clamp(22px, 2.6vw, 32px);
}

.chuo-about-compare-not {
  background: #f6f3ee;
}

.chuo-about-compare-not p {
  margin: 0 0 14px;
  color: #5a524c;
  font-size: clamp(15px, 1.35vw, 18px);
  font-weight: 800;
  line-height: 1.7;
}

.chuo-about-compare-not small {
  display: block;
  color: #6f6861;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.8;
}

.chuo-about-compare-is {
  position: relative;
  display: flex;
  align-items: center;
  background: #fff;
  border-left: 1px solid #e6dfd7;
}

.chuo-about-compare-is:before {
  content: "";
  position: absolute;
  left: -9px;
  top: 50%;
  width: 16px;
  height: 16px;
  background: #fff;
  border-top: 1px solid #e6dfd7;
  border-right: 1px solid #e6dfd7;
  transform: translateY(-50%) rotate(45deg);
}

.chuo-about-compare-is p {
  margin: 0;
  font-size: clamp(18px, 1.8vw, 24px);
  font-weight: 900;
  line-height: 1.6;
}

.chuo-about-compare span,
.chuo-about-statement-words span {
  display: inline-block;
}

.chuo-about-compare-is strong {
  display: inline-block;
  color: var(--red);
  background: linear-gradient(transparent 70%, rgba(197, 17, 24, 0.16) 70%);
}

/* 5. 失敗できる環境 */

.chuo-about-statement {
  position: relative;
  overflow: hidden;
  margin-top: 26px;
  padding: clamp(32px, 4vw, 56px) clamp(24px, 4vw, 56px);
  background: linear-gradient(118deg, #9d080d 0%, #790006 48%, #430002 100%);
  color: #fff;
}

.chuo-about-statement:after {
  content: "CHALLENGE";
  position: absolute;
  right: -0.06em;
  bottom: -0.2em;
  color: rgba(255, 255, 255, 0.06);
  font-size: clamp(64px, 9vw, 128px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.05em;
  pointer-events: none;
}

.chuo-about-statement-words {
  position: relative;
  z-index: 1;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 18px;
  font-size: clamp(22px, 2.6vw, 36px);
  font-weight: 900;
  line-height: 1.5;
  letter-spacing: 0.02em;
}

.chuo-about-statement-words .is-accent > span {
  display: inline-block;
}

.chuo-about-statement-words .is-accent {
  flex-basis: 100%;
  color: #ffd9da;
}

.chuo-about-statement-note {
  position: relative;
  z-index: 1;
  margin: 20px 0 0;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  color: rgba(255, 255, 255, 0.9);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.8;
}

@media (max-width: 1180px) {
  .chuo-about-diagram {
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  }

  .chuo-about-arrow {
    grid-column: 1/-1;
    justify-self: center;
    width: 2px;
    height: 30px;
  }

  .chuo-about-arrow:after {
    right: auto;
    left: 50%;
    top: auto;
    bottom: -1px;
    transform: translateX(-50%) rotate(135deg);
  }

  .chuo-about-result {
    grid-column: 1/-1;
    align-items: center;
    text-align: center;
  }
}

@media (max-width: 900px) {
  .chuo-about-moments {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .chuo-about-moments li {
    padding: 18px 20px;
    border-top-width: 1px;
    border-left: 4px solid var(--red);
  }

  .chuo-about-resolve-inner,
  .chuo-about-compare {
    grid-template-columns: 1fr;
  }

  .chuo-about-compare-is {
    border-left: 0;
    border-top: 1px solid #e6dfd7;
  }

  .chuo-about-compare-is:before {
    left: 50%;
    top: -9px;
    transform: translateX(-50%) rotate(135deg);
  }
}

@media (max-width: 650px) {
  .chuo-about-section {
    --chuo-gap: 40px;
  }

  .chuo-about-text,
  .chuo-about-lead {
    font-size: 14px;
    line-height: 1.95;
  }

  .chuo-about-text br,
  .chuo-about-lead br {
    display: none;
  }

  .chuo-about-hero {
    min-height: 260px;
  }

  .chuo-about-hero-inner {
    padding: 24px 20px;
  }

  .chuo-about-question {
    padding-left: 12px;
    font-size: 13px;
  }

  .chuo-about-kicker {
    gap: 10px;
    font-size: 16px;
  }

  .chuo-about-moments p {
    font-size: 15px;
  }

  .chuo-about-emphasis {
    padding: 16px 18px;
    font-size: 15px;
    text-align: left;
  }

  .chuo-about-promises li {
    padding: 20px 18px 20px 22px;
  }

  .chuo-about-diagram {
    gap: 10px;
  }

  .chuo-about-team {
    min-height: 70px;
    padding: 12px 8px;
  }

  .chuo-about-plus {
    font-size: 20px;
  }

  .chuo-about-compare > div {
    padding: 22px 18px;
  }

  .chuo-about-compare-is p {
    font-size: 18px;
  }

  .chuo-about-statement {
    padding: 28px 20px;
  }

  .chuo-about-statement-words {
    flex-direction: column;
    gap: 2px;
    font-size: 22px;
  }

  .chuo-about-statement-note {
    font-size: 14px;
  }
}

@media (max-width: 370px) {
  .chuo-about-statement-words {
    font-size: 20px;
  }
}

/* ---- 監督メッセージとしての再構成（hero署名／覚悟カード／結び） ---- */

/* hero：監督メッセージのラベルと署名 */

.chuo-about-hero-label {
  margin: 0 0 16px;
  color: #d6bd8f;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.24em;
}

.chuo-about-sign {
  margin: clamp(22px, 2.6vw, 32px) 0 0;
  padding-top: clamp(16px, 1.8vw, 22px);
  border-top: 1px solid rgba(255, 255, 255, 0.22);
  display: flex;
  justify-content: flex-end;
  align-items: baseline;
  gap: 14px;
  color: #fff;
}

.chuo-about-sign small {
  color: rgba(255, 255, 255, 0.78);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.chuo-about-sign strong {
  font-size: clamp(20px, 1.9vw, 26px);
  font-weight: 900;
  letter-spacing: 0.16em;
}

/* 覚悟：数字を使わず、誓いの言葉として見せる */

.chuo-about-promises li {
  gap: 8px;
}

.chuo-about-promises li:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, #c51118, #6a0003);
}

.chuo-about-promises li:after {
  position: absolute;
  right: -18px;
  bottom: -18px;
  width: 92px;
  height: 92px;
  border-radius: 50%;
  border: 2px dashed rgba(197, 17, 24, 0.16);
  content: none;
}

.chuo-about-promises small {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--red);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.24em;
}

.chuo-about-promises small:before {
  content: "";
  width: 18px;
  height: 1px;
  background: var(--red);
}

.chuo-about-promises strong:before {
  content: "「";
  color: var(--red);
}

.chuo-about-promises strong:after {
  content: "」";
  color: var(--red);
}

/* 結び：エリア全体の締めくくり */

.chuo-about-closing {
  position: relative;
  margin-top: var(--chuo-gap);
  padding: clamp(40px, 5vw, 72px) clamp(20px, 4vw, 56px) 0;
  text-align: center;
}

.chuo-about-closing:before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  width: 1px;
  height: clamp(24px, 3vw, 40px);
  background: var(--red);
}

.chuo-about-closing-head {
  margin: 0 0 clamp(20px, 2.4vw, 30px);
  font-size: clamp(24px, 2.8vw, 38px);
  font-weight: 900;
  line-height: 1.45;
  letter-spacing: 0.03em;
}

.chuo-about-closing-head > span,
.chuo-about-closing-conclusion > span {
  display: inline-block;
}

.chuo-about-closing-text {
  margin: 0;
  color: #2f2926;
  font-size: 16px;
  line-height: 2.1;
}

.chuo-about-closing-text em {
  display: inline-block;
  margin: 6px 0;
  color: var(--red);
  font-size: 1.15em;
  font-style: normal;
  font-weight: 900;
}

.chuo-about-closing-conclusion {
  margin: clamp(28px, 3.2vw, 40px) auto 0;
  padding: clamp(22px, 2.6vw, 30px) clamp(20px, 3vw, 40px);
  max-width: 760px;
  background: #171413;
  color: #fff;
  font-size: clamp(17px, 1.7vw, 22px);
  font-weight: 900;
  line-height: 1.7;
  letter-spacing: 0.02em;
}

@media (max-width: 650px) {
  .chuo-about-hero-label {
    margin-bottom: 12px;
    font-size: 9px;
  }

  .chuo-about-sign {
    justify-content: flex-start;
    gap: 10px;
  }

  .chuo-about-sign small {
    font-size: 11px;
  }

  .chuo-about-sign strong {
    font-size: 19px;
  }

  .chuo-about-closing {
    padding-inline: 0;
  }

  .chuo-about-closing-head {
    font-size: 22px;
  }

  .chuo-about-closing-text {
    font-size: 14px;
    line-height: 2;
    text-align: left;
  }

  .chuo-about-closing-text br {
    display: none;
  }

  .chuo-about-closing-text em {
    display: block;
    margin: 8px 0;
    text-align: center;
  }

  .chuo-about-closing-conclusion {
    font-size: 16px;
  }
}

@media (max-width: 370px) {
  .chuo-about-closing-head {
    font-size: 19px;
  }

  .chuo-about-closing-text em {
    font-size: 1.05em;
  }
}

/* 覚悟：本文を上揃え・装飾の整理 */

.chuo-about-resolve .chuo-about-text {
  padding-top: 6px;
  font-size: 16px;
  line-height: 2.1;
}

@media (max-width: 650px) {
  .chuo-about-resolve .chuo-about-text {
    padding-top: 0;
    font-size: 14px;
    line-height: 1.95;
  }
}

.chuo-about-closing-text em > span {
  display: inline-block;
}

@media (max-width: 650px) {
  .chuo-about-closing-text br:first-of-type {
    display: inline;
  }
}

/* 覚悟：言葉は常に1行表示。カード幅（コンテナ幅）に合わせて文字サイズを可変
 * 「全員をグラウンドの主役にする」＋かぎ括弧＝約16文字分で幅を割る */

/* 冒頭見出し：全幅で常に2行 */

.chuo-about-answer > em {
  display: table;
}

/* 冒頭見出し：900px以下は常に2行（「ベンチで終わる3年間には、／絶対にさせない」ために。）
 * 1行目（約14.5文字分）がボックス幅に収まるよう文字サイズを可変 */

@media (max-width: 900px) {
  .chuo-about-answer {
    font-size: min(30px, calc(100cqw / 14.6));
    letter-spacing: 0;
  }

  .chuo-about-answer > em,
  .chuo-about-answer > span {
    white-space: nowrap;
  }
}

/* 全選手共通の応援スポンサー：選手情報の下部に表示 */
.roster-modal-sponsor {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: auto;
  padding-top: 24px;
}
.roster-modal-sponsor p {
  flex: 1 1 auto;
  margin: 0;
  color: #3b3632;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.8;
}
.roster-modal-sponsor a {
  display: block;
  flex: 0 0 auto;
}
.roster-modal-sponsor a:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 4px;
}
.roster-modal-sponsor img {
  width: 120px;
  height: auto;
  object-fit: contain;
}
@media (max-width: 650px) {
  .roster-modal-sponsor {
    flex-wrap: wrap;
    gap: 10px;
    padding-top: 20px;
  }
  .roster-modal-sponsor p {
    flex-basis: 100%;
  }
  .roster-modal-sponsor a {
    margin-left: auto;
  }
  .roster-modal-sponsor img {
    width: 130px;
  }
}

/* =========================================================
   目次（900px以下）共通仕様：boys / guide / about で統一
   3列表示・/boys/準拠の余白、高さはboysより少し短く（48px → 44px）
   ※ boys.css / guide.css / about.css の末尾に同じ内容を記載しています
   ========================================================= */
@media (max-width: 900px) {
  .boys-side nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: 4px;
  }
  .boys-side nav a,
  .boys-side nav a:nth-child(n) {
    border-right: 1px solid rgba(255, 255, 255, 0.09);
    border-bottom: 1px solid rgba(255, 255, 255, 0.09);
  }
  .boys-side nav a:nth-child(3n) {
    border-right: 0;
  }
  .boys-side nav a:nth-last-child(-n + 3) {
    border-bottom: 0;
  }
  .boys-side nav a strong {
    gap: 3px;
    font-size: 10px;
  }
  .boys-side nav a > span {
    font-size: 10px;
  }
  .boys-side nav a small {
    font-size: 10px;
  }
}
@media (max-width: 650px) {
  .boys-side nav a,
  .boys-side nav a:nth-child(n) {
    padding: 5px;
    grid-template-columns: 17px minmax(0, 1fr);
    gap: 4px;
  }
  .boys-side nav a > b {
    display: none;
  }
  .boys-side nav a strong {
    font-size: 9px;
    letter-spacing: 0.03em;
  }
  .boys-side nav a > span {
    font-size: 9px;
  }
  .boys-side nav a small {
    font-size: 9.5px;
  }
}
@media (max-width: 370px) {
  .boys-side nav a strong {
    font-size: 8px;
  }
  .boys-side nav a small {
    font-size: 9px;
  }
}

/* 結び：メインキャッチ・サブコピー（chuo-about-closing-head の直下） */

.chuo-future {
  margin: clamp(8px, 1.4vw, 16px) 0 clamp(36px, 4.2vw, 56px);
  padding-bottom: clamp(32px, 3.8vw, 48px);
  border-bottom: 1px solid #e2dad1;
}

.chuo-future-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
  color: #8f8780;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.2em;
}

.chuo-future-label:before,
.chuo-future-label:after {
  content: "";
  width: 26px;
  height: 1px;
  background: #cfc5bb;
}

.chuo-future-label span {
  color: var(--red);
  font: italic 700 15px/1 Georgia,
    serif;
  letter-spacing: 0.1em;
}

.chuo-future-catch {
  margin: 0;
  color: var(--ink);
  font-size: clamp(25px, 3.2vw, 44px);
  font-weight: 900;
  line-height: 1.45;
  letter-spacing: 0.02em;
}

.chuo-future-catch-line {
  display: block;
}

.chuo-future-catch-line > span {
  display: inline-block;
}

.chuo-future-catch em {
  color: var(--red);
  font-style: normal;
  background: linear-gradient(transparent 70%, rgba(214, 189, 143, 0.55) 70% 92%, transparent 92%);
}

.chuo-future-sub {
  max-width: 720px;
  margin: clamp(16px, 2vw, 24px) auto 0;
  color: #2f2926;
  font-size: clamp(14px, 1.3vw, 17px);
  font-weight: 700;
  line-height: 2;
}

.chuo-future-sub > span {
  display: inline-block;
}

.chuo-future-sub strong {
  color: var(--red);
  font-weight: 900;
}

@media (max-width: 650px) {
  .chuo-future-label {
    font-size: 10px;
  }
  .chuo-future-catch {
    font-size: clamp(21px, 6.4vw, 26px);
  }
  .chuo-future-sub {
    font-size: 14px;
  }
}

@media (max-width: 370px) {
  .chuo-future-catch {
    font-size: 19px;
  }
}

/* ALUMNI：私立・公立の主な進学先 */

.boys-alumni-groups {
  display: grid;
  gap: 1px;
  margin-top: 14px;
  background: #e6dfd7;
  border: 1px solid #e6dfd7;
}

.boys-alumni-group {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  align-items: start;
  gap: 20px;
  padding: 20px;
  background: #fff;
}

.boys-alumni-group h3 {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin: 0;
  padding: 6px 0 6px 12px;
  border-left: 3px solid var(--red);
  color: var(--ink);
  font-size: 17px;
  font-weight: 900;
  line-height: 1.2;
}

.boys-alumni-group.is-public h3 {
  border-left-color: #d6bd8f;
}

.boys-alumni-group h3 span {
  color: #8f8780;
  font: italic 700 11px/1 Georgia,
    serif;
  letter-spacing: 0.14em;
}

.boys-alumni-group ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.boys-alumni-group li {
  padding: 8px 13px;
  border: 1px solid #e6dfd7;
  background: #faf8f5;
  color: var(--ink);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: 0.03em;
  transition: border-color 0.25s,
    background 0.25s,
    color 0.25s;
}

.boys-alumni-group li:hover {
  border-color: var(--red);
  background: var(--red);
  color: #fff;
}

.boys-alumni-group.is-public li:hover {
  border-color: #d6bd8f;
  background: #d6bd8f;
  color: var(--ink);
}

.boys-alumni-note {
  margin: 12px 0 0;
  color: #8f8780;
  font-size: 12px;
  font-weight: 600;
}

@media (max-width: 650px) {
  .boys-alumni-group {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 18px 16px;
  }

  .boys-alumni-group h3 {
    flex-direction: row;
    align-items: baseline;
    gap: 10px;
    padding: 4px 0 4px 10px;
  }

  .boys-alumni-group ul {
    gap: 6px;
  }

  .boys-alumni-group li {
    padding: 7px 10px;
    font-size: 13px;
  }
}

/* PLAYERS：選手カードの3層構成
 * 1. 選手写真（.roster-card-photo）… 枠の窓部分に配置。選手ごとに差し替え
 * 2. 枠画像（.roster-card-frame）… 全選手共通の透過画像（image/boys/roster-frame-08.webp）
 * 3. テキスト（.roster-card-overlay）… 背番号・氏名など
 * 写真の配置（left/top/width/height）は枠画像の窓位置に合わせた値です。
 */

.roster-card-media:has(.roster-card-frame) {
  aspect-ratio: 880/1282;
  background: #120d0c;
}

.roster-card-media .roster-card-photo {
  position: absolute;
  left: 2%;
  top: 2%;
  z-index: 0;
  width: 96%;
  height: 94%;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center 30%;
  border-radius: 0;
  background: #201b19;
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.roster-card-media .roster-card-frame {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: fill;
  border-radius: 0;
  background: none;
  pointer-events: none;
}

.roster-card-media:has(.roster-card-frame) .roster-card-overlay {
  z-index: 2;
}

/* ホバー時は写真だけを少し拡大（枠は固定） */
.roster-card:is(:hover, .is-hover) .roster-card-photo {
  transform: scale(1.04);
}

/* ポップアップ：カードの3層をそのまま複製して表示 */
.roster-modal-media > img[hidden] {
  display: none;
}

.roster-modal-media .roster-modal-stack {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 8px;
}

@media (max-width: 650px) {
  .roster-modal-media .roster-modal-stack {
    border-radius: 14px 14px 0 0;
  }
}

/* ローマ字表記が未確定の選手：カード上の氏名を日本語で表示（読みが確定したらローマ字に差し替え） */
.roster-card-name-ja .roster-card-overlay-bottom span {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, sans-serif;
  font-size: 7.4cqw;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.roster-modal-media.is-name-ja .roster-card-overlay-bottom span {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, sans-serif;
  font-size: clamp(16px, 7.4cqw, 30px);
  font-weight: 800;
  letter-spacing: 0.08em;
}

/* ==========================================================================
   GALLERY 活動風景（#gallery）：Instagram導線エリア
   - 背景：縦長タイル3列（4枚・5枚・5枚）が上下交互に流れ続けます
   - タイル画像：image/boys/instagram/ig-story-XX.jpg（9:16）
   - 流れる速さ：.ig-showcase の --ig-speed（1枚あたりの秒数）
   ========================================================================== */

.activity-section {
  --ig-bleed-x: clamp(34px, 4.2vw, 58px);
  --ig-bleed-y: clamp(34px, 4.2vw, 58px);
  overflow: hidden;
}

.ig-showcase {
  --ig-speed: 7.5s;
  --ig-gap: 14px;
  --ig-gradient: linear-gradient(45deg, #feda75 0%, #fa7e1e 22%, #d62976 50%, #962fbf 76%, #4f5bd5 100%);
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: clamp(440px, 40vw, 540px);
  margin: 0 calc(var(--ig-bleed-x) * -1) calc(var(--ig-bleed-y) * -1);
  overflow: hidden;
  background: #140d0c;
  color: #fff;
}

/* --- 背景タイル --- */
.ig-showcase-bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
}

.ig-showcase-field {
  position: absolute;
  top: 50%;
  left: 68%;
  width: min(780px, 82%);
  height: 190%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ig-gap);
  transform: translate(-50%, -50%) rotate(-9deg);
}

.ig-showcase-col {
  min-width: 0;
  overflow: hidden;
}

.ig-showcase-track {
  display: flex;
  flex-direction: column;
  animation: ig-tiles-up calc(var(--tiles) * var(--ig-speed)) linear infinite;
  will-change: transform;
}

.ig-showcase-col:nth-child(2) .ig-showcase-track {
  animation-name: ig-tiles-down;
}

.ig-showcase-col:nth-child(3) .ig-showcase-track {
  animation-delay: calc(var(--ig-speed) * -2.4);
}

.ig-tile {
  display: block;
  aspect-ratio: 9 / 16;
  margin-bottom: var(--ig-gap);
  overflow: hidden;
  border-radius: 14px;
  background: #2a1d1b;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
}

.ig-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@keyframes ig-tiles-up {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(0, -50%, 0);
  }
}

@keyframes ig-tiles-down {
  from {
    transform: translate3d(0, -50%, 0);
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}

/* 文字を読ませるための暗幕と赤い光 */
.ig-showcase-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(120% 90% at 0% 100%, rgba(142, 0, 0, 0.55), transparent 55%),
    linear-gradient(180deg, rgba(20, 13, 12, 0.55) 0%, transparent 22%, transparent 74%, rgba(20, 13, 12, 0.7) 100%),
    linear-gradient(90deg, rgba(20, 13, 12, 0.97) 0%, rgba(20, 13, 12, 0.9) 34%, rgba(20, 13, 12, 0.42) 60%, rgba(20, 13, 12, 0.12) 100%);
}

/* --- テキスト・導線 --- */
.ig-showcase-body {
  position: relative;
  width: min(100%, 620px);
  padding: clamp(34px, 3.6vw, 52px) clamp(26px, 4.4vw, 64px) calc(clamp(34px, 3.6vw, 52px) + 46px);
}

.ig-profile {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: clamp(20px, 2.2vw, 28px);
}

.ig-profile-ring {
  flex: none;
  width: 58px;
  height: 58px;
  padding: 2.5px;
  border-radius: 50%;
  background: var(--ig-gradient);
}

.ig-profile-icon {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border: 3px solid #140d0c;
  border-radius: 50%;
  background: #231816;
  color: #fff;
}

.ig-profile-icon svg {
  width: 24px;
  height: 24px;
}

.ig-profile p {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.ig-profile strong {
  font-size: 15px;
  letter-spacing: 0.02em;
}

.ig-profile small {
  font-family: "Oswald", sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: rgba(255, 255, 255, 0.6);
}

.ig-live {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-left: 4px;
  padding: 6px 11px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  font-family: "Oswald", sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.16em;
  background: rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(6px);
}

.ig-live i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #ff4b55;
  box-shadow: 0 0 0 0 rgba(255, 75, 85, 0.7);
  animation: ig-pulse 1.8s ease-out infinite;
}

@keyframes ig-pulse {
  70% {
    box-shadow: 0 0 0 8px rgba(255, 75, 85, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(255, 75, 85, 0);
  }
}

.ig-showcase-eyebrow {
  margin: 0 0 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: "Oswald", sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.3em;
  color: #f0a9ab;
}

.ig-showcase-eyebrow::before {
  content: "";
  width: 28px;
  height: 1px;
  background: currentColor;
}

.ig-showcase-title {
  margin: 0;
  font-size: clamp(28px, 2.9vw, 42px);
  font-weight: 900;
  line-height: 1.34;
  word-break: keep-all;
  overflow-wrap: anywhere;
  letter-spacing: 0.02em;
}

.ig-showcase-title span {
  display: block;
}

.ig-showcase-text {
  margin: 20px 0 0;
  font-size: 14px;
  line-height: 2;
  color: rgba(255, 255, 255, 0.8);
}

/* CTAボタン */
.ig-cta {
  position: relative;
  margin-top: clamp(26px, 2.6vw, 34px);
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  gap: 16px;
  min-height: 70px;
  padding: 10px 26px 10px 10px;
  overflow: hidden;
  border-radius: 999px;
  background: #fff;
  color: #171413;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.35);
  transition: color 0.4s,
    transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.4s;
}

.ig-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--ig-gradient);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.ig-cta-icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: var(--ig-gradient);
  color: #fff;
  transition: background 0.4s;
}

.ig-cta-icon svg {
  width: 24px;
  height: 24px;
}

.ig-cta-label {
  display: flex;
  flex-direction: column;
  gap: 3px;
  font-size: 15px;
  font-weight: 900;
  letter-spacing: 0.04em;
}

.ig-cta-label small {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--red);
  transition: color 0.4s;
}

.ig-cta b {
  margin-left: 10px;
  font-size: 18px;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.ig-cta:is(:hover, .is-hover),
.ig-cta:focus-visible {
  color: #fff;
  transform: translateY(-3px);
  box-shadow: 0 22px 54px rgba(214, 41, 118, 0.4);
}

.ig-cta:is(:hover, .is-hover)::before,
.ig-cta:focus-visible::before {
  transform: scaleX(1);
}

.ig-cta:is(:hover, .is-hover) .ig-cta-icon,
.ig-cta:focus-visible .ig-cta-icon {
  background: rgba(255, 255, 255, 0.2);
}

.ig-cta:is(:hover, .is-hover) .ig-cta-label small,
.ig-cta:focus-visible .ig-cta-label small {
  color: rgba(255, 255, 255, 0.85);
}

.ig-cta:is(:hover, .is-hover) b,
.ig-cta:focus-visible b {
  transform: translate(3px, -3px);
}

.ig-cta:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
}

.ig-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* 下部の流れる帯 */
.ig-showcase-band {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 46px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--red);
}

.ig-showcase-band > div {
  display: flex;
  flex: none;
  width: max-content;
  animation: ig-band 48s linear infinite;
  will-change: transform;
}

/* 同じ内容のグループ×2。-50%（＝1グループ分）動かすと継ぎ目なくループします */
.ig-showcase-band-group {
  display: flex;
  flex: none;
}

.ig-showcase-band span {
  display: inline-flex;
  align-items: center;
  gap: 28px;
  padding-right: 28px;
  font-family: "Oswald", sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.18em;
  white-space: nowrap;
}

.ig-showcase-band span::after {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.55);
}

@keyframes ig-band {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-50%, 0, 0);
  }
}

/* 画面外では動きを止める（js/main.js） */
.ig-showcase.is-paused .ig-showcase-track,
.ig-showcase.is-paused .ig-showcase-band > div,
.ig-showcase.is-paused .ig-live i {
  animation-play-state: paused;
}

@media (max-width: 900px) {
  .ig-showcase-field {
    left: 72%;
    width: 92%;
  }
}

@media (max-width: 650px) {
  .activity-section {
    --ig-bleed-x: 18px;
    --ig-bleed-y: 28px;
  }

  .ig-showcase {
    --ig-gap: 10px;
    align-items: flex-end;
    min-height: 0;
  }

  .ig-showcase-field {
    top: 30%;
    left: 50%;
    width: 128%;
    height: 120%;
    transform: translate(-50%, -50%) rotate(-8deg);
  }

  .ig-tile {
    border-radius: 10px;
  }

  .ig-showcase-bg::after {
    background: radial-gradient(120% 60% at 0% 100%, rgba(142, 0, 0, 0.5), transparent 60%),
      linear-gradient(180deg, rgba(20, 13, 12, 0.25) 0%, rgba(20, 13, 12, 0.35) 22%, rgba(20, 13, 12, 0.92) 46%, rgba(20, 13, 12, 0.98) 100%);
  }

  .ig-showcase-body {
    width: 100%;
    padding: 210px 22px 72px;
  }

  .ig-profile {
    margin-bottom: 24px;
  }

  .ig-showcase-title {
    font-size: 27px;
  }

  .ig-showcase-text {
    font-size: 13px;
  }

  .ig-showcase-text br {
    display: none;
  }

  .ig-cta {
    display: flex;
    width: 100%;
    min-height: 64px;
    margin-top: 24px;
  }

  .ig-cta b {
    margin-left: auto;
  }

  .ig-showcase-band {
    height: 40px;
  }

  .ig-showcase-band span {
    font-size: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ig-showcase-track,
  .ig-showcase-band > div,
  .ig-live i {
    animation: none;
  }
}

/* 歴代主要実績：準優勝＝銀／ベスト3＝銅 */

.team-history-list em.is-silver,
.team-history-list em.is-bronze {
  position: relative;
  overflow: hidden;
  background-size: 220% 100%;
  font-size: 13px;
  font-weight: 900;
  animation: championGold 4.8s ease-in-out infinite;
}

.team-history-list em.is-silver {
  background-image: linear-gradient(115deg, #7d848b 0%, #b9c0c6 20%, #f8fafc 44%, #c9cfd4 63%, #80878e 82%, #e3e7ea 100%);
  border-color: #f1f4f6;
  color: #1c2126;
  text-shadow: 0 1px rgba(255, 255, 255, 0.6);
  box-shadow: 0 7px 20px rgba(70, 80, 90, 0.3),
    inset 0 1px rgba(255, 255, 255, 0.8);
}

.team-history-list em.is-bronze {
  background-image: linear-gradient(115deg, #7a3f17 0%, #b5703a 20%, #f6cfa4 44%, #c98450 63%, #82441a 82%, #e2a46f 100%);
  border-color: #f4c99d;
  color: #2a1406;
  text-shadow: 0 1px rgba(255, 236, 214, 0.55);
  box-shadow: 0 7px 20px rgba(122, 63, 23, 0.32),
    inset 0 1px rgba(255, 240, 222, 0.75);
}

.team-history-list em.is-silver:before,
.team-history-list em.is-bronze:before {
  content: "★";
  margin-right: 4px;
  font-size: 12px;
}

.team-history-list em.is-silver:before {
  color: #59616a;
}

.team-history-list em.is-bronze:before {
  color: #6e3410;
}

.team-history-list em.is-silver:after,
.team-history-list em.is-bronze:after {
  content: "";
  position: absolute;
  inset: -60% auto -60% -35%;
  width: 25%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.85), transparent);
  transform: skewX(-18deg);
  animation: championGlint 4.8s ease-in-out infinite;
}

/* 実績サマリー：準優勝＝銀／ベスト3＝銅のタイル（優勝タイルと同じ演出） */

.result-stat-silver,
.result-stat-bronze {
  position: relative;
  overflow: hidden;
  border-left: none !important;
  padding-block: 8px;
  border-radius: 4px;
  background-size: 220% 100%;
  animation: championGold 4.8s ease-in-out infinite;
}

.result-stat-silver {
  background-image: linear-gradient(115deg, #7d848b 0%, #b9c0c6 20%, #f8fafc 44%, #c9cfd4 63%, #80878e 82%, #e3e7ea 100%);
  box-shadow: 0 10px 26px rgba(70, 80, 90, 0.38),
    inset 0 1px rgba(255, 255, 255, 0.7);
}

.result-stat-bronze {
  background-image: linear-gradient(115deg, #7a3f17 0%, #b5703a 20%, #f6cfa4 44%, #c98450 63%, #82441a 82%, #e2a46f 100%);
  box-shadow: 0 10px 26px rgba(122, 63, 23, 0.4),
    inset 0 1px rgba(255, 240, 222, 0.6);
}

.result-stat-silver:after,
.result-stat-bronze:after {
  content: "";
  position: absolute;
  inset: -60% auto -60% -35%;
  width: 25%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.85), transparent);
  transform: skewX(-18deg);
  animation: championGlint 4.8s ease-in-out infinite;
}

.result-stat-silver .result-stat-number,
.result-stat-silver small {
  color: #1c2126;
  text-shadow: 0 1px rgba(255, 255, 255, 0.6);
}

.result-stat-bronze .result-stat-number,
.result-stat-bronze small {
  color: #2a1406;
  text-shadow: 0 1px rgba(255, 236, 214, 0.5);
}

.result-stat-bronze + .result-stat {
  border-left: none;
}

/* WordPress：歴代主要実績全体の開閉。閉じた状態で長い一覧の描画を省く。 */
.team-history.boys-results-history.kc-results-history { height: auto; display: block; }
.kc-results-history > summary.team-history-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; list-style: none; }
.kc-results-history > summary::-webkit-details-marker { display: none; }
.kc-results-history > summary:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }
.kc-history-toggle { display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0; color: var(--red); font-size: 12px; font-weight: 800; }
.kc-history-toggle b { font-size: 24px; transition: transform .2s; }
.kc-history-close { display: none; }
.kc-results-history[open] .kc-history-open { display: none; }
.kc-results-history[open] .kc-history-close { display: inline; }
.kc-results-history[open] .kc-history-toggle b { transform: rotate(45deg); }
/* 枠内に収まる場合とスクロール端では、ページのスクロールを妨げない。 */
.kc-results-history > .team-history-scroll { max-height: 560px; overflow-y: auto; overscroll-behavior: auto; scrollbar-gutter: stable; }
.kc-team-empty { padding: 18px; color: #635b53; font-size: 14px; }
