/* =========================================================
   BEYOND STADIUM 2026 - 参加アスリート一覧
   PPTデザイン準拠 / 下層ページ専用CSS
========================================================= */

#event.beyond-stadium-athletes {
  --athlete-blue: #0077bd;
  --athlete-red: #f11f26;
  --athlete-gold: #d3a100;
  --athlete-gold-dark: #9a7410;
  --athlete-text: #1d1d1d;
  --athlete-muted: #5a5a5a;
  width: 100%;
  margin: 0;
  padding: 0 0 72px;
  color: var(--athlete-text);
  background: #fff;
  font-family: "BIZ UDPGothic", "Yu Gothic", YuGothic, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  box-sizing: border-box;
}

#event.beyond-stadium-athletes *,
#event.beyond-stadium-athletes *::before,
#event.beyond-stadium-athletes *::after {
  box-sizing: border-box;
}

#event.beyond-stadium-athletes h1,
#event.beyond-stadium-athletes h2,
#event.beyond-stadium-athletes h3,
#event.beyond-stadium-athletes h4,
#event.beyond-stadium-athletes p,
#event.beyond-stadium-athletes figure {
  margin: 0;
}

#event.beyond-stadium-athletes img {
  display: block;
  max-width: 100%;
}

#event.beyond-stadium-athletes a {
  color: inherit;
  text-decoration: none;
}

#event.beyond-stadium-athletes .athletes-container {
  width: min(1080px, calc(100% - 48px));
  margin: 0 auto;
}

/* 既存で置いた紙吹雪レイヤーは使わない */
#event.beyond-stadium-athletes .athletes-confettis {
  display: none;
}

/* =========================================================
   タイトル
========================================================= */
#event.beyond-stadium-athletes .athletes-hero {
  padding: 34px 0 8px;
  text-align: center;
  background: #fff;
}

#event.beyond-stadium-athletes .athletes-hero .athletes-container {
  position: relative;
  width: fit-content;
  max-width: calc(100% - 80px);
  padding: 0 105px;
}

#event.beyond-stadium-athletes .athletes-hero__event {
  color: #a96e00;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .02em;
}

#event.beyond-stadium-athletes .athletes-hero__title {
  margin-top: 2px;
  color: #b27600;
  font-size: 34px;
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: .015em;
}

/* PPTのタイトル左右にある紙吹雪をCSSで再現 */
#event.beyond-stadium-athletes .athletes-hero__title {
  position: relative;
  display: inline-block;
}

/* 紙吹雪 */
#event.beyond-stadium-athletes .athletes-hero__title::before,
#event.beyond-stadium-athletes .athletes-hero__title::after {
  position: absolute;
  top: 50%;
  display: block;
  width: 72px;
  height: 34px;
  content: "";
  background-color: transparent;
  background-repeat: no-repeat;
  pointer-events: none;
  transform-origin: center;
}

/* 左 */
#event.beyond-stadium-athletes .athletes-hero__title::before {
  right: calc(100% + 16px);
  transform: translateY(-50%) rotate(25deg);

  background-image:
    linear-gradient(#e83828, #e83828),
    linear-gradient(#0068b7, #0068b7),
    linear-gradient(#ffe600, #ffe600),
    linear-gradient(#34b56a, #34b56a),
    radial-gradient(circle, #e83828 0 3px, transparent 3.5px),
    radial-gradient(circle, #0068b7 0 3px, transparent 3.5px),
    radial-gradient(circle, #ffe600 0 3px, transparent 3.5px);

  background-position:
    4px 24px,
    18px 15px,
    33px 7px,
    48px 1px,
    22px 28px,
    43px 17px,
    63px 7px;

  background-size:
    16px 4px,
    14px 4px,
    13px 4px,
    12px 4px,
    6px 6px,
    6px 6px,
    6px 6px;
}

/* 右 */
#event.beyond-stadium-athletes .athletes-hero__title::after {
  left: calc(100% + 16px);
  transform: translateY(-50%) rotate(-25deg);

  background-image:
    linear-gradient(#e83828, #e83828),
    linear-gradient(#0068b7, #0068b7),
    linear-gradient(#ffe600, #ffe600),
    linear-gradient(#34b56a, #34b56a),
    radial-gradient(circle, #e83828 0 3px, transparent 3.5px),
    radial-gradient(circle, #0068b7 0 3px, transparent 3.5px),
    radial-gradient(circle, #ffe600 0 3px, transparent 3.5px);

  background-position:
    52px 24px,
    38px 15px,
    24px 7px,
    10px 1px,
    45px 28px,
    25px 17px,
    5px 7px;

  background-size:
    16px 4px,
    14px 4px,
    13px 4px,
    12px 4px,
    6px 6px,
    6px 6px,
    6px 6px;
}

/* =========================================================
   外枠
========================================================= */
#event.beyond-stadium-athletes .athletes-section {
  padding: 0;
}

#event.beyond-stadium-athletes .athletes-section > .athletes-container {
  padding: 22px 26px 42px;
  border: 2px solid var(--athlete-gold-dark);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 6px 14px rgba(0, 0, 0, .16);
}

/* =========================================================
   日付ラベル
========================================================= */
#event.beyond-stadium-athletes .athletes-day + .athletes-day {
  margin-top: 30px;
}

#event.beyond-stadium-athletes .athletes-day__title {
  margin: 0 0 14px;
  line-height: 1;
  text-align: left;
}

#event.beyond-stadium-athletes .athletes-day__title span {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 6px 16px 5px;
  color: #fff;
  border-radius: 2px;
  background: var(--athlete-blue);
  font-size: 17px;
  font-weight: 900;
  line-height: 1.2;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .18);
}

#event.beyond-stadium-athletes .athletes-day--sun .athletes-day__title span {
  background: var(--athlete-red);
}

/* =========================================================
   競技名
========================================================= */
#event.beyond-stadium-athletes .athletes-sport + .athletes-sport {
  margin-top: 22px;
}

#event.beyond-stadium-athletes .athletes-sport__title {
  display: inline-flex;
  align-items: center;
  min-height: 33px;
  margin: 0 0 14px;
  padding: 5px 15px 4px;
  color: #fff;
  border: 0;
  border-radius: 2px;
  background: var(--athlete-gold);
  font-size: 16px;
  font-weight: 900;
  line-height: 1.2;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .18);
}

/* =========================================================
   選手一覧：PPTの2列・横組み
========================================================= */
#event.beyond-stadium-athletes .athletes-grid,
#event.beyond-stadium-athletes .athletes-grid--one,
#event.beyond-stadium-athletes .athletes-grid--two,
#event.beyond-stadium-athletes .athletes-grid--three,
#event.beyond-stadium-athletes .athletes-grid--six {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 34px;
  row-gap: 14px;
  max-width: none;
}

#event.beyond-stadium-athletes .athlete-card {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

#event.beyond-stadium-athletes .athlete-card__photo {
  position: relative;
  width: 88px;
  height: 114px;
  min-height: 0;
  overflow: hidden;
  background: #eee;
  box-shadow: 3px 3px 8px rgba(0, 0, 0, .18);
}

#event.beyond-stadium-athletes .athlete-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

#event.beyond-stadium-athletes .athlete-card__photo--credit figcaption {
  position: absolute;
  right: 2px;
  bottom: 2px;
  padding: 1px 3px;
  color: #fff;
  background: rgba(0, 0, 0, .5);
  font-size: 7px;
  line-height: 1.1;
}

#event.beyond-stadium-athletes .athlete-card__body {
  display: block;
  min-width: 0;
  padding: 0;
}

#event.beyond-stadium-athletes .athlete-card__name {
  margin: 0 0 5px;
  padding: 0;
  color: #111;
  font-size: 19px;
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: 0;
}

#event.beyond-stadium-athletes .athlete-card__name::after {
  display: none;
}

#event.beyond-stadium-athletes .athlete-card__achievement,
#event.beyond-stadium-athletes .athlete-card__meta {
  margin: 0;
  padding: 0;
  color: #222;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
}

#event.beyond-stadium-athletes .athlete-card__meta {
  margin-top: 2px;
}

/* =========================================================
   注記・戻る
========================================================= */
#event.beyond-stadium-athletes .athletes-note {
  margin-top: 28px;
  color: #444;
  font-size: 12px;
  text-align: right;
}

#event.beyond-stadium-athletes .athletes-back {
  margin-top: 30px;
  text-align: center;
}

#event.beyond-stadium-athletes .athletes-back__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 297px;
  min-height: 53px;
  padding: 10px 26px;
  color: #fff;
  border: 2px solid var(--athlete-blue);
  border-radius: 999px;
  background: var(--athlete-blue);
  font-size: 16px;
  font-weight: 900;
}

#event.beyond-stadium-athletes .athletes-back__button:hover {
  color: var(--athlete-blue);
  background: #fff;
}

/* =========================================================
   SP
========================================================= */
@media screen and (max-width: 767px) {
  #event.beyond-stadium-athletes {
    padding-bottom: 46px;
  }

  #event.beyond-stadium-athletes .athletes-container {
    width: calc(100% - 28px);
  }

  #event.beyond-stadium-athletes .athletes-hero {
    padding: 24px 0 7px;
  }

  #event.beyond-stadium-athletes .athletes-hero .athletes-container {
    width: fit-content;
    max-width: calc(100% - 28px);
    padding: 0 54px;
  }

  #event.beyond-stadium-athletes .athletes-hero__event {
    font-size: 14px;
  }

  #event.beyond-stadium-athletes .athletes-hero__title {
    font-size: 22px;
  }

  #event.beyond-stadium-athletes .athletes-hero .athletes-container::before,
  #event.beyond-stadium-athletes .athletes-hero .athletes-container::after {
    top: 9px;
    width: 45px;
    height: 24px;
    background-size: 10px 3px, 9px 3px, 8px 3px, 9px 3px, 5px 5px, 5px 5px;
    background-position: 2px 3px, 13px 8px, 25px 2px, 34px 10px, 10px 17px, 30px 19px;
  }

  #event.beyond-stadium-athletes .athletes-hero .athletes-container::before {
    left: 2px;
  }

  #event.beyond-stadium-athletes .athletes-hero .athletes-container::after {
    right: 2px;
  }

  #event.beyond-stadium-athletes .athletes-section > .athletes-container {
    padding: 16px 12px 28px;
    border-width: 1px;
    border-radius: 12px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .14);
  }

  #event.beyond-stadium-athletes .athletes-day + .athletes-day {
    margin-top: 26px;
  }

  #event.beyond-stadium-athletes .athletes-day__title span {
    min-height: 31px;
    padding: 5px 12px;
    font-size: 14px;
    box-shadow: 2px 2px 0 rgba(0, 0, 0, .16);
  }

  #event.beyond-stadium-athletes .athletes-sport + .athletes-sport {
    margin-top: 20px;
  }

  #event.beyond-stadium-athletes .athletes-sport__title {
    min-height: 29px;
    margin-bottom: 12px;
    padding: 4px 12px;
    font-size: 13px;
    box-shadow: 2px 2px 0 rgba(0, 0, 0, .16);
  }

  #event.beyond-stadium-athletes .athletes-grid,
  #event.beyond-stadium-athletes .athletes-grid--one,
  #event.beyond-stadium-athletes .athletes-grid--two,
  #event.beyond-stadium-athletes .athletes-grid--three,
  #event.beyond-stadium-athletes .athletes-grid--six {
    grid-template-columns: 1fr;
    row-gap: 12px;
  }

  #event.beyond-stadium-athletes .athlete-card {
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 10px;
  }

  #event.beyond-stadium-athletes .athlete-card__photo {
    width: 78px;
    height: 100px;
    box-shadow: 2px 2px 6px rgba(0, 0, 0, .16);
  }

  #event.beyond-stadium-athletes .athlete-card__name {
    margin-bottom: 4px;
    font-size: 17px;
  }

  #event.beyond-stadium-athletes .athlete-card__achievement,
  #event.beyond-stadium-athletes .athlete-card__meta {
    font-size: 12px;
    line-height: 1.45;
  }

  #event.beyond-stadium-athletes .athletes-note {
    margin-top: 24px;
    font-size: 10px;
  }

  #event.beyond-stadium-athletes .athletes-back__button {
    width: 100%;
    min-width: 0;
  }
}

/* =========================================================
   2026-09-18 サイズ・影・下段2列調整
========================================================= */
#event.beyond-stadium-athletes .athletes-day__title span,
#event.beyond-stadium-athletes .athletes-sport__title {
  font-size: 21px;
  box-shadow: 3px 3px 7px rgba(0, 0, 0, .24);
}

#event.beyond-stadium-athletes .athletes-day__title span {
  min-height: 44px;
  padding: 8px 18px 7px;
}

#event.beyond-stadium-athletes .athletes-sport__title {
  min-height: 42px;
  padding: 7px 18px 6px;
  margin-bottom: 18px;
}

#event.beyond-stadium-athletes .athlete-card {
  grid-template-columns: 104px minmax(0, 1fr);
  gap: 14px;
}

#event.beyond-stadium-athletes .athlete-card__photo {
  width: 104px;
  height: 134px;
  box-shadow: 4px 4px 10px rgba(0, 0, 0, .24);
}

#event.beyond-stadium-athletes .athlete-card__name {
  margin-bottom: 6px;
  font-size: 21px;
  line-height: 1.3;
}

#event.beyond-stadium-athletes .athlete-card__achievement {
  font-size: 18px;
  line-height: 1.5;
}

#event.beyond-stadium-athletes .athlete-card__meta {
  margin-top: 3px;
  font-size: 15px;
  line-height: 1.45;
}

#event.beyond-stadium-athletes .athletes-grid,
#event.beyond-stadium-athletes .athletes-grid--one,
#event.beyond-stadium-athletes .athletes-grid--two,
#event.beyond-stadium-athletes .athletes-grid--three,
#event.beyond-stadium-athletes .athletes-grid--six {
  column-gap: 42px;
  row-gap: 20px;
}

#event.beyond-stadium-athletes .athletes-sports-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 42px;
  row-gap: 28px;
  margin-top: 24px;
}

#event.beyond-stadium-athletes .athletes-sports-grid .athletes-sport,
#event.beyond-stadium-athletes .athletes-sports-grid .athletes-sport + .athletes-sport {
  margin-top: 0;
}

#event.beyond-stadium-athletes .athletes-sports-grid .athletes-grid,
#event.beyond-stadium-athletes .athletes-sports-grid .athletes-grid--one {
  grid-template-columns: 1fr;
}

@media screen and (max-width: 767px) {
  #event.beyond-stadium-athletes .athletes-day__title span,
  #event.beyond-stadium-athletes .athletes-sport__title {
    font-size: 18px;
    box-shadow: 2px 2px 6px rgba(0, 0, 0, .22);
  }

  #event.beyond-stadium-athletes .athletes-day__title span {
    min-height: 38px;
    padding: 7px 14px 6px;
  }

  #event.beyond-stadium-athletes .athletes-sport__title {
    min-height: 36px;
    padding: 6px 14px 5px;
    margin-bottom: 14px;
  }

  #event.beyond-stadium-athletes .athlete-card {
    grid-template-columns: 90px minmax(0, 1fr);
    gap: 12px;
  }

  #event.beyond-stadium-athletes .athlete-card__photo {
    width: 90px;
    height: 116px;
    box-shadow: 3px 3px 8px rgba(0, 0, 0, .22);
  }

  #event.beyond-stadium-athletes .athlete-card__name {
    font-size: 19px;
  }

  #event.beyond-stadium-athletes .athlete-card__achievement {
    font-size: 16px;
  }

  #event.beyond-stadium-athletes .athlete-card__meta {
    font-size: 12px;
  }

  #event.beyond-stadium-athletes .athletes-sports-grid {
    grid-template-columns: 1fr;
    row-gap: 22px;
    margin-top: 20px;
  }
}


@media screen and (max-width: 767px) {
  #event.beyond-stadium-athletes .athletes-back__button {
    width: 85%;
    min-width: 0;
  }
}