/* =========================================================
   style.css  —  Tokai NEXUS Original Theme
========================================================= */

/* =========================
   Variables
========================= */
:root {
  --blue:   #05225b;
  --blue2:  #0b2f7a;
  --gold:   #d6b25a;
  --black:  #000;
  --white:  #fff;

  --text:   #0b0f1a;
  --muted:  #6a7285;
  --bg:     #ffffff;
  --bg2:    #f7f8fb;
  --card:   #ffffff;
  --line:   rgba(11,15,26,.10);

  --radius:    18px;
  --radius-sm: 12px;
  --shadow:    0 18px 60px rgba(0,0,0,.12);
  --ease:      cubic-bezier(.2,.8,.2,1);

  --font-heading: "Zen Maru Gothic","Noto Sans JP",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --font-body:    "Noto Sans JP",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --font-number:  "Inter","Noto Sans JP",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
}

/* =========================
   Reset / Base
========================= */
* { box-sizing: border-box }
html { scroll-behavior: smooth }

body {
  margin: 0;
  padding-top: 0 !important;
  font-family: var(--font-body);
  color: var(--text);
  background: var(--bg);
  line-height: 1.7;
  letter-spacing: .02em;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block }
a   { color: inherit }
.container { width: min(1180px,92%); margin-inline: auto }

.site-main,
.site-content,
main {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

h1,h2,h3,h4,
.section-title,
.team-name,
.menu-nav a {
  font-family: var(--font-heading);
}

.score-num,
.games-date,
.news-date,
.page-title,
.tn-games__asof,
.tn-games__num,
.tn-games__recentDate,
.tn-yt__date {
  font-family: var(--font-number);
}

.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  border: 0;
}

.skip-link {
  position: absolute;
  left: 12px; top: 12px;
  padding: 10px 12px;
  background: #fff;
  color: #000;
  border-radius: 10px;
  transform: translateY(-160%);
  transition: transform .2s var(--ease);
  z-index: 9999;
}
.skip-link:focus { transform: translateY(0) }

/* =========================
   Utility
========================= */
.view_pc,
.biew_pc { display: block !important }
.view_sp,
.biew_sp { display: none  !important }

/* =========================
   Header (FV)
========================= */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(255,255,255,.08);
}

.site-header__inner {
  width: min(1180px,92%);
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 0;
}

.site-header__brand img { width: 54px; height: 54px }

.menu {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  gap: 16px;
  align-items: center;
}

.menu a {
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  letter-spacing: .04em;
  opacity: .92;
  transition: opacity .2s var(--ease), transform .2s var(--ease);
}
.menu a:hover { opacity: .7; transform: translateY(-1px) }

.site-main { min-height: 60vh }

/* =========================
   Common Section
========================= */
.section {
  position: relative;
  padding: 84px 0;
  background: var(--bg);
}
.section::before { display: none }

.section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 22px;
}
.section-head--center { justify-content: center }

.section-title {
  margin: 0;
  font-size: 30px;
  letter-spacing: .06em;
}

.section-sub {
  font-size: 14px;
  margin-left: 10px;
  color: var(--muted);
}

.section-cta {
  margin-top: 22px;
  display: flex;
  justify-content: flex-end;
}

.empty { margin: 0; color: var(--muted) }

/* =========================
   Buttons
========================= */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 18px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: .04em;
  transition: transform .2s var(--ease), filter .2s var(--ease),
              background .2s var(--ease), border-color .2s var(--ease);
  border: 1px solid transparent;
  user-select: none;
}
.btn:active { transform: translateY(1px) }

.btn-primary {
  background: var(--blue);
  color: #fff;
  box-shadow: 0 14px 30px rgba(5,34,91,.18);
}
.btn-primary:hover { filter: brightness(1.06); transform: translateY(-1px) }

.btn-ghost {
  background: transparent;
  border-color: rgba(5,34,91,.35);
  color: var(--blue);
}
.btn-ghost:hover { border-color: rgba(5,34,91,.6); transform: translateY(-1px) }

/* =========================
   FV
========================= */
.fv {
  height: 100vh;
  display: flex;
  overflow: hidden;
  background: #000;
}

.fv-visual {
  position: relative;
  width: 75%; height: 100%;
  background: #000;
  overflow: hidden;
  isolation: isolate;
}

.fv-bg {
  position: absolute;
  inset: 0;
  background: url("../img/kvbg.png") center/cover no-repeat;
  z-index: -999;
  filter: saturate(1.05) contrast(1.05);
  transform: scale(1.02);
}

.fv-main-logo_pc {
  position: absolute;
  left: 50%; top: 50%;
  z-index: 0;
  filter: drop-shadow(0 12px 28px rgba(0,0,0,.55));
  opacity: 0;
  transform-origin: center;
  width: min(62%,720px);
  transform: translate(-50%,-50%);
}

.fv-main-logo_sp {
  position: absolute;
  left: 50%; top: 40%;
  z-index: 0;
  filter: drop-shadow(0 12px 28px rgba(0,0,0,.55));
  opacity: 0;
  transform-origin: center;
  width: 120%; max-width: none;
  transform: translate(-50%,-50%);
}

.players { position: absolute; inset: 0; pointer-events: none }

.player {
  position: absolute;
  opacity: 0;
  transform: translateY(10px) scale(.985);
  filter: drop-shadow(0 14px 28px rgba(0,0,0,.45));
  will-change: opacity, transform;
}
.player img { width: 100%; height: auto }

.p01 { left: 30%; bottom: 0;    width: 20%; z-index: 18 }
.p02 { left: 20%; bottom: 10%;  width: 20%; z-index: 17 }
.p03 { left: 10%; bottom: 15%;  width: 20%; z-index: 15 }
.p04 { left: 5%;  bottom: 20%;  width: 25%; z-index: 14 }
.p05 { left: 5%;  bottom: 30%;  width: 25%; z-index: -1 }
.p06 { left: 11%; top: 28%;     width: 20%; z-index: -2 }
.p07 { left: 21%; top: 16%;     width: 23%; z-index: -3 }
.p08 { left: 18%; top: 12%;     width: 28%; z-index: -4 }
.p09 { right: 37%; top: -10%;   width: 28%; z-index: -9 }
.p10 { right: 22%; top: 4%;     width: 23%; z-index: -9 }
.p11 { right: 13%; top: 15%;    width: 28%; z-index: -9 }
.p12 { right: 8%;  top: 25%;    width: 24%; z-index: -8 }
.p13 { right: 5%;  top: 35%;    width: 24%; z-index: -7 }
.p14 { right: 10%; bottom: 28%; width: 22%; z-index: -6 }
.p15 { right: 13%; bottom: 15%; width: 26% }
.p16 { right: 18%; bottom: 8%;  width: 22% }
.p17 { left: 45%;  bottom: 0;   width: 28% }

/* FV Right Menu */
.fv-menu {
  width: 25%; height: 100%;
  background: var(--blue);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  opacity: 0;
  transform: translateX(24px);
}

.menu-inner  { width: 82%; text-align: center }

.menu-logo {
  width: min(170px,70%);
  margin: 0 auto 22px;
  filter: drop-shadow(0 10px 20px rgba(0,0,0,.25));
}

.team-name { margin: 0 0 42px; font-size: 16px; line-height: 1.7; letter-spacing: .03em; opacity: .95 }

.menu-nav { display: flex; flex-direction: column; gap: 18px; align-items: center }

.menu-nav a {
  color: #fff;
  text-decoration: none;
  font-size: 18px;
  letter-spacing: .04em;
  opacity: .95;
  transition: opacity .25s var(--ease), transform .25s var(--ease);
}
.menu-nav a:hover { opacity: .7; transform: translateX(2px) }

.menu-social { margin-top: 26px; display: flex; gap: 16px; justify-content: center; opacity: .95 }

.icon-btn {
  width: 44px; height: 44px;
  border-radius: 999px;
  display: grid; place-items: center;
  background: rgba(255,255,255,.08);
  transition: transform .25s var(--ease), background .25s var(--ease), opacity .25s var(--ease);
  text-decoration: none;
  color: #fff;
}
.icon-btn:hover { transform: translateY(-2px); background: rgba(255,255,255,.14) }

.icon { width: 22px; height: 22px; fill: currentColor }

/* FV Animations */
.is-ready .fv-menu {
  animation: menuIn 900ms var(--ease) 220ms forwards;
}
@keyframes menuIn {
  from { opacity: 0; transform: translateX(24px) }
  to   { opacity: 1; transform: translateX(0) }
}

.is-ready .fv-main-logo_pc,
.is-ready .fv-main-logo_sp {
  animation: logoIn 900ms var(--ease) 120ms forwards;
}
@keyframes logoIn {
  from { opacity: 0; transform: translate(-50%,-50%) scale(.92) }
  to   { opacity: 1; transform: translate(-50%,-50%) scale(1) }
}

.player.is-show { animation: playerIn 420ms var(--ease) forwards }
@keyframes playerIn {
  from { opacity: 0; transform: translateY(12px) scale(.985) }
  to   { opacity: 1; transform: translateY(0) scale(1) }
}

.ouentai_bunner { padding-top: 20px }

/* =========================
   FV Hamburger / SP Drawer
========================= */
.fv-hamburger { display: none }

/* =========================
   FV Team Copy Band (SP only)
========================= */
.fv-team-copy { display: none }

/* =========================
   Sub Header (サブページ共通)
========================= */
.sub-header {
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  z-index: 1000;
  background: linear-gradient(135deg, #0b2f7a 0%, #05225b 60%, #041848 100%);
  backdrop-filter: blur(12px);
  box-shadow: 0 4px 24px rgba(0,0,0,.18);
  transition: .3s;
}
.sub-header::after {
  content: "";
  position: absolute;
  bottom: 0; left: 0;
  width: 100%; height: 3px;
  background: linear-gradient(90deg, #ffffff00, #ffffff, #ffffff00);
  opacity: .6;
}

.sub-header__inner {
  min-height: 84px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.sub-header__brand img { width: 120px; height: auto; display: block; transition: .3s }

.sub-header.is-small               { padding: 6px 0 }
.sub-header.is-small .sub-header__brand img { width: 100px }

.sub-header__toggle {
  width: 52px; height: 52px;
  border: none; border-radius: 999px;
  background: #fff;
  display: flex; flex-direction: column; justify-content: center; gap: 6px;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(0,0,0,.15);
  flex-shrink: 0;
  z-index: 9999;
}
.sub-header__toggle span { width: 22px; height: 2px; margin: 0 auto; background: #05225b; transition: .25s }
.sub-header__toggle.is-open span:nth-child(1) { transform: translateY(8px) rotate(45deg) }
.sub-header__toggle.is-open span:nth-child(2) { opacity: 0 }
.sub-header__toggle.is-open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg) }

.sub-drawer {
  position: fixed;
  top: 0; right: 0;
  width: min(84vw,340px); height: 100vh;
  background: linear-gradient(180deg, #0b2f7a 0%, #041848 100%);
  transform: translateX(100%);
  transition: transform .3s ease;
  z-index: 1001;
}
.sub-drawer.is-open { transform: translateX(0) }

.sub-drawer__inner {
  display: flex; flex-direction: column; gap: 20px;
  padding: 120px 32px 32px;
}
.sub-drawer__inner a { color: #fff; text-decoration: none; font-size: 18px; font-weight: 700 }

.sub-drawer__inner a::before {
  content: '';
  display: inline-block;
  width: 20px; height: 20px;
  background-image: url('/wp-content/themes/Tokai NEXUS Original Theme/assets/img/ball.webp');
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 8px;
  vertical-align: middle;
}

.sub-drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.28);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: .3s ease;
  z-index: 999;
}
.sub-drawer-overlay.is-open { opacity: 1; visibility: visible; pointer-events: auto }

body.admin-bar .sub-header { top: 32px }
body.is-menu-open           { overflow: hidden; touch-action: none }

/* =========================
   Full-bleed Slider
========================= */
.section-slider { padding: 0 }
.section-slider::before { display: none }

.slider-wrap--full { width: 100%; margin: 0 }

.tn-slider__viewport {
  width: 100vw;
  margin-left: 50%; transform: translateX(-50%);
  overflow: hidden;
  background: #fff;
}

.tn-slider__track {
  display: flex;
  will-change: transform;
  transform: translate3d(0,0,0);
  gap: 16px;
  padding: 24px 8px;
}

.tn-slide {
  flex: 0 0 400px; width: 400px; height: 260px;
  border-radius: 16px; overflow: hidden;
  box-shadow: 0 4px 20px rgba(5,34,91,.12);
  border: 3px solid var(--gold);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.tn-slide:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(5,34,91,.18) }
.tn-slide img   { width: 100%; height: 100%; object-fit: cover; display: block }

/* =========================
   NEXUS+ banner
========================= */
.section-banner--nexusplus { background: #fff !important; padding: 44px 0 }
.nexusplus-banner { display: flex; justify-content: center; align-items: center; text-decoration: none }

.ouentai_bunner { padding-top: 20px }

/* =========================
   NEWS Section
========================= */
.section-news {
  position: relative;
  padding: 84px 0 96px;
  background: url("../img/news-bg.png") center bottom/cover no-repeat, #fff;
  overflow: hidden;
}
.section-news .container { position: relative; z-index: 1 }

.news-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 22px }
.news-head__title { display: flex; align-items: baseline; gap: 18px }

.news-title-en {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 30px; letter-spacing: .06em; color: var(--blue);
}
.news-title-ja {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 16px; letter-spacing: .06em; color: var(--blue);
}

.news-refresh {
  width: 34px; height: 34px;
  border-radius: 999px;
  border: 1px solid rgba(11,15,26,.12);
  display: grid; place-items: center;
  text-decoration: none; color: var(--blue);
  background: #fff; box-shadow: 0 10px 24px rgba(0,0,0,.06);
}
.news-refresh:hover { transform: translateY(-1px) }

.news-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px }

.news-card {
  border-radius: 12px; overflow: hidden;
  background: #fff;
  border: 1px solid rgba(11,15,26,.10);
  box-shadow: 0 14px 30px rgba(0,0,0,.08);
}

.news-link { text-decoration: none; display: block; color: inherit }

.news-thumb { position: relative }
.news-thumb img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block }

.news-badge {
  position: absolute; left: 10px; top: 10px;
  padding: 6px 10px; border-radius: 999px;
  background: #0396bf; color: #fff;
  font-family: var(--font-number); font-weight: 800; font-size: 12px; letter-spacing: .06em;
  box-shadow: 0 10px 18px rgba(0,0,0,.18);
}

.news-body { padding: 12px 14px 14px }
.news-date  { display: block; font-size: 12px; color: var(--muted) }
.news-title { margin: 8px 0 0; font-family: var(--font-heading); font-size: 15px; line-height: 1.55; color: var(--text) }

.news-cta  { margin-top: 18px; display: flex; justify-content: flex-end }
.news-btn  {
  display: inline-flex; align-items: center; gap: 12px;
  padding: 12px 18px; border-radius: 999px;
  background: var(--blue); color: #fff;
  text-decoration: none;
  font-family: var(--font-heading); font-weight: 700;
  box-shadow: 0 16px 34px rgba(5,34,91,.22);
}
.news-btn__icon {
  width: 28px; height: 28px; border-radius: 999px;
  background: rgba(255,255,255,.14); display: grid; place-items: center;
}
.news-btn:hover { filter: brightness(1.06); transform: translateY(-1px) }

/* =========================
   ACTIVITY SCHEDULE
========================= */
.section-schedule {
  position: relative; overflow: hidden;
  background: url("../img/schedule-bg.png") center/cover no-repeat;
  z-index: 0;
}
.section-schedule .container { position: relative; z-index: 1 }

.section-schedule .schedule-layout {
  display: grid;
  grid-template-columns: 1.35fr .65fr;
  gap: 26px; align-items: stretch;
}

.section-schedule .schedule-embed {
  background: #fff;
  border: 1px solid rgba(11,15,26,.10);
  border-radius: 18px; overflow: hidden;
  box-shadow: 0 18px 50px rgba(0,0,0,.10);
}
.section-schedule .schedule-embed iframe { width: 100%; height: 460px; border: 0; display: block }

.schedule-right     { background: transparent; border: 0; padding: 0; position: relative }
.schedule-right-img { width: 100%; height: auto; display: block }

.schedule-right-wrap    { position: relative; width: 100%; height: 100% }
.schedule-right-balloon { width: 75%; height: auto; display: block; position: absolute; bottom: 52%; right: 0; z-index: 2 }
.schedule-right-player  { width: 200px; height: auto; display: block; position: absolute; bottom: 0; right: 0; z-index: 1 }

/* =========================
   GAMES
========================= */
.section-games {
  position: relative;
  padding: 84px 0 0;
  overflow: hidden;
  background: #fff url("../img/game-bg.png") center top/contain no-repeat;
}

.tn-games { position: relative }
.tn-games__head { display: flex; align-items: flex-end; gap: 18px; margin: 0 0 26px }
.tn-games__title {
  margin: 0;
  font-family: var(--font-heading); font-size: 40px; letter-spacing: .06em;
  color: #0b3383; line-height: 1;
  text-decoration: underline; text-underline-offset: 10px; text-decoration-thickness: 2px;
}
.tn-games__sub { font-family: var(--font-body); font-size: 18px; color: #0b3383; opacity: .9; padding-bottom: 2px }

.tn-games__layout { display: grid; grid-template-columns: 1.35fr .65fr; gap: 28px; align-items: stretch }

.tn-games__board { position: relative; border-radius: 22px; overflow: hidden; min-height: 420px }
.tn-games__boardInner { position: relative; z-index: 1; padding: 26px 26px 0 }
.tn-games__asof { margin: 0 0 14px; color: #0b3383; font-size: 22px; letter-spacing: .04em }

.tn-games__score   { display: flex; gap: 46px; align-items: flex-end; padding-top: 10px }
.tn-games__scoreCol{ display: flex; align-items: flex-end; gap: 10px }
.tn-games__num     { margin: 0; font-size: 96px; font-weight: 800; color: #0b3383; letter-spacing: .02em; line-height: 1 }
.tn-games__label   { margin: 0 0 10px; font-family: var(--font-heading); font-size: 34px; font-weight: 700; color: #0b3383; line-height: 1 }

.tn-games__photo { position: absolute; left: 0; right: 0; bottom: 0; height: 230px; overflow: hidden }
.tn-games__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center bottom; display: block }

.tn-games__right { position: relative; padding: 8px 10px }
.tn-games__pill  {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 10px 18px; border-radius: 999px;
  background: #0b3383; color: #fff;
  font-family: var(--font-heading); font-weight: 700; letter-spacing: .04em;
  margin: 0 0 16px;
}

.tn-games__recent     { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column }
.tn-games__recentItem { display: flex; flex-direction: column; gap: 6px; padding: 12px 0 0 }
.tn-games__recentDate { font-size: 14px; letter-spacing: .08em; margin-bottom: 4px; color: #0b3383 }
.tn-games__recentLink { text-decoration: none; display: block; color: #0b3383; font-size: 16px; line-height: 1.6 }
.tn-games__recentLink:hover { text-decoration: underline; text-underline-offset: 4px }
.tn-games__recentResult { font-size: 16px; font-weight: 600 }
.tn-games__divider { height: 1px; background: #0b3383; margin-top: 14px }
.tn-games__cta { margin-top: 26px }

.tn-btn {
  display: inline-flex; align-items: center; justify-content: space-between;
  gap: 14px; padding: 14px 20px; border-radius: 999px;
  text-decoration: none; font-weight: 700; letter-spacing: .04em; border: 0; min-width: 260px;
}
.tn-btn--primary { background: #0b3383; color: #fff }
.tn-btn__icon {
  width: 34px; height: 34px; border-radius: 999px;
  background: #fff; color: #0b3383; display: grid; place-items: center; font-weight: 900;
}

/* =========================
   YouTube / Instagram（共通背景）
========================= */
.section-youtube,
.section-instagram {
  background: #fff url("../img/contents-bg.png") center top/cover no-repeat;
}

/* =========================
   YouTube
========================= */
.section-youtube { position: relative; padding: 84px 0; overflow: hidden }
.btn-box { text-align: center }

.section-youtube .section-head.section-head--center {
  display: flex; flex-direction: column; align-items: center; gap: 10px; margin: 0 0 26px;
}
.tn-yt__icon { color: #e60012; line-height: 0 }
.section-youtube .section-title {
  margin: 0; font-family: var(--font-heading); font-size: 34px; letter-spacing: .04em;
  color: #0b3383; line-height: 1;
  text-decoration: underline; text-underline-offset: 10px; text-decoration-thickness: 2px;
}

.tn-yt { display: grid; grid-template-columns: repeat(4,1fr); gap: 26px; align-items: start; margin-top: 22px }
.tn-yt__card { margin: 0 }
.tn-yt__link { display: block; text-decoration: none !important; color: inherit }
.tn-yt__link * { text-decoration: none }

.tn-yt__thumb { width: 100%; aspect-ratio: 16/9; overflow: hidden; background: #eee }
.tn-yt__thumb img { width: 100%; height: 100%; object-fit: cover; display: block }
.tn-yt__thumbFallback { width: 100%; height: 100%; background: #eee }

.tn-yt__meta  { margin-top: 10px }
.tn-yt__date  { display: block; font-size: 14px; color: #111; letter-spacing: .02em }
.tn-yt__title { margin-top: 4px; font-family: var(--font-body); font-size: 14px; color: #111; line-height: 1.6 }

@media (hover:hover) {
  .tn-yt__link:hover .tn-yt__title { text-decoration: underline; text-underline-offset: 3px }
}

/* =========================
   Instagram
========================= */
.section-instagram { position: relative; padding: 84px 0 96px; overflow: hidden; text-align: center }
.section-instagram .section-head { display: flex; flex-direction: column; align-items: center; gap: 10px; margin: 0 0 26px }
.section-instagram .section-title {
  margin: 0; font-family: var(--font-heading); font-size: 34px; letter-spacing: .04em;
  color: #0b3383; line-height: 1;
  text-decoration: underline; text-underline-offset: 10px; text-decoration-thickness: 2px;
}

.tn-ig__card { margin: 0 }
.tn-ig__link { display: block; text-decoration: none; color: inherit }
.tn-ig__thumb { width: 100%; aspect-ratio: 1/1; overflow: hidden; background: #eee; border-radius: 0; box-shadow: 0 6px 16px rgba(0,0,0,.18) }
.tn-ig__thumb img { width: 100%; height: 100%; object-fit: cover; display: block }

/* =========================
   ONLINE SHOP
========================= */
.section-shop {
  position: relative; padding: 80px 0 120px; overflow: hidden;
  background: #eaf4fb url("../img/contents-bg.png") center top/cover no-repeat;
}

.shop { position: relative; display: flex; justify-content: center; align-items: center }
.shop-items { display: flex; gap: 30px }
.shop-items img { width: 140px; height: auto }
.shop-items-left  { margin-right: 60px }
.shop-items-right { margin-left:  60px }
.shop-center { text-align: center }

.shop-title { font-size: 36px; color: #0b3383; font-weight: 700; letter-spacing: .08em; border-bottom: 3px solid #0b3383; display: inline-block; padding-bottom: 8px }
.shop-text  { margin-top: 24px; font-size: 16px; color: #0b3383; line-height: 1.8 }

.shop-btn,
.sns-btn {
  margin-top: 30px;
  display: inline-flex; align-items: center; gap: 10px;
  background: #0b3383; color: #fff; padding: 14px 32px; border-radius: 40px; text-decoration: none; font-weight: 600;
}
.sns-btn { text-align: center }
.shop-btn-icon { background: #fff; color: #0b3383; width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center }
.shop-player { position: absolute; right: 0; bottom: -20px }
.shop-player img { width: 260px }

/* =========================
   TOP SPONSOR
========================= */
.section-sponsor { position: relative; padding: 84px 0 96px; background: #fff; overflow: hidden }

.tn-sponsor { text-align: center }
.tn-sponsor__head { margin: 0 0 34px }
.tn-sponsor__title {
  margin: 0; display: inline-block;
  font-family: var(--font-heading); font-size: 42px; line-height: 1.1; letter-spacing: .06em;
  color: #0b3383; text-decoration: underline; text-underline-offset: 18px; text-decoration-thickness: 2px;
}

.tn-sponsor__logos { margin: 0 auto; max-width: 980px }
.tn-sponsor__logos img { display: block; width: 100%; height: auto; margin: 0 auto 80px }
.tn-sponsor__cta { margin-top: 28px; display: flex; justify-content: center }

/* =========================
   CONTACT
========================= */
.section-contact { padding: 0 !important; background: #fff }

.tn-contact {
  position: relative; padding: 72px 0 86px;
  background: url("../img/contact-bg.png") center center/cover no-repeat;
  overflow: hidden;
}
.tn-contact::before {
  content: ""; position: absolute; inset: 0;
  background: rgba(120,180,255,.25); pointer-events: none;
}
.tn-contact .container { position: relative; z-index: 1 }

.tn-contact__panel {
  width: min(100%,980px); margin: 0 auto;
  padding: 28px 40px 34px;
  background: rgba(255,255,255,.72);
  backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px);
  text-align: center;
}

.tn-contact__head { margin: 0 0 22px }
.tn-contact__title {
  margin: 0; display: inline-block;
  font-family: var(--font-heading); font-size: 44px; line-height: 1.05; letter-spacing: .06em;
  color: #0b3383; text-decoration: underline; text-underline-offset: 12px; text-decoration-thickness: 2px;
}
.tn-contact__lead  { margin: 0 auto 18px; max-width: 820px; font-family: var(--font-body); font-size: 17px; line-height: 1.9; font-weight: 600; color: #0b3383; letter-spacing: .03em }
.tn-contact__list  { margin: 0 0 22px; padding: 0; list-style-position: inside; text-align: center }
.tn-contact__list li { font-family: var(--font-body); font-size: 18px; line-height: 1.9; font-weight: 700; color: #0b3383; letter-spacing: .04em }
.tn-contact__cta   { display: flex; justify-content: center; margin-top: 8px }

/* =========================
   Page Hero / Single
========================= */
.page-hero { background: linear-gradient(180deg,rgba(0,0,0,.88),rgba(6,18,47,.96)); color: #e9eeff; padding: 56px 0 28px; border-bottom: 1px solid rgba(255,255,255,.08) }
.page-title { margin: 0; font-size: 34px; letter-spacing: .06em }
.page-sub   { margin: 6px 0 0; color: rgba(233,238,255,.75) }

.breadcrumb { margin: 0 0 10px; color: rgba(233,238,255,.75); font-size: 12px }
.breadcrumb a { color: rgba(233,238,255,.92); text-decoration: none }
.breadcrumb a:hover { text-decoration: underline }

.section-single .single-layout { display: grid; gap: 18px }
.single-thumb   { margin: 0; border-radius: var(--radius); overflow: hidden; border: 1px solid rgba(255,255,255,.10) }
.single-content { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; color: var(--text); box-shadow: 0 10px 30px rgba(0,0,0,.06) }
.single-actions { margin-top: 16px; display: flex; justify-content: flex-start }

/* =========================
   Banner Common
========================= */
.section-banner .banner {
  display: block; border-radius: var(--radius); overflow: hidden;
  border: 1px solid rgba(11,15,26,.10); box-shadow: 0 18px 50px rgba(0,0,0,.10);
}

/* =========================
   Footer
========================= */
.site-footer { background: #05225b; color: rgba(255,255,255,.85) }
.site-footer__inner { width: min(1180px,92%); margin-inline: auto; padding: 30px 0; display: grid; gap: 14px; justify-items: center }
.site-footer__copy { opacity: .75 }

/* =========================
   Player pages (共通)
========================= */
.player-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px }

.player-card {
  border-radius: var(--radius); overflow: hidden;
  background: var(--card);
  border: 1px solid var(--line);
  box-shadow: 0 10px 30px rgba(0,0,0,.06);
  transition: transform .2s var(--ease), border-color .2s var(--ease);
}
.player-card:hover { transform: translateY(-2px); border-color: rgba(214,178,90,.35) }

.player-card__link { text-decoration: none; display: block }
.player-card__thumb img { width: 100%; aspect-ratio: 4/5; object-fit: cover }
.player-card__body { padding: 12px 14px 16px }
.player-card__meta { margin: 0 0 6px; display: flex; gap: 10px; flex-wrap: wrap; color: var(--muted); font-size: 12px }
.player-card__name { margin: 0; font-size: 16px }

.player-single-layout { display: grid; grid-template-columns: 1fr 1.1fr; gap: 22px; align-items: start }
.player-single__media img  { border-radius: var(--radius); border: 1px solid rgba(255,255,255,.10); width: 100% }
.player-single__content    { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; color: var(--text); box-shadow: 0 10px 30px rgba(0,0,0,.06) }
.player-hero-meta { display: flex; gap: 10px; flex-wrap: wrap; color: var(--muted) }

/* =========================
   Pagination
========================= */
.pagination { margin-top: 20px }
.nav-links  { display: flex; gap: 10px; flex-wrap: wrap }
.page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; height: 40px; padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.04);
  color: #e9eeff; text-decoration: none;
}
.page-numbers.current { border-color: rgba(214,178,90,.45); background: rgba(214,178,90,.18); color: #f6e6b7 }

/* ==================================================
   Team Page
================================================== */
.team-page { background: #fff }

/* KV */
.team-kv {
  background: linear-gradient(175deg, #0a1f12 0%, #0d2a18 35%, #0b2240 70%, #05225b 100%);
  padding: 140px 0 80px; position: relative; overflow: hidden;
}
.team-kv__inner { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); gap: 48px; align-items: center }
.team-kv__content { min-width: 0 }
.team-kv__eyebrow { margin: 0 0 18px; color: #d6b25a; letter-spacing: .18em; font-size: 14px; font-weight: 700; line-height: 1.8 }
.team-kv__title   { margin: 0; color: #fff; font-weight: 800; font-size: clamp(52px,8vw,110px); line-height: 1; letter-spacing: .04em; font-family: var(--font-number) }
.team-kv__lead    { margin-top: 18px; color: rgba(255,255,255,.7); line-height: 1.9; max-width: 540px; font-size: 16px }

.team-kv__photo { position: relative; min-width: 0 }
.team-kv__photo::before { content: ""; position: absolute; inset: auto -18px -18px 18px; border: 1px solid rgba(255,255,255,.15); border-radius: 28px; z-index: 0 }
.team-kv__photo img { position: relative; z-index: 1; width: 100%; display: block; object-fit: cover; border-radius: 20px; box-shadow: 0 10px 30px rgba(0,0,0,.1); aspect-ratio: 16/10 }

/* Section 共通ヘッド */
.team-section-head  { margin-bottom: 40px }
.team-section-title { margin: 0; color: #05225b; font-size: 36px; font-weight: 700; line-height: 1.2; font-family: var(--font-number) }
.team-section-sub   { margin-top: 6px; color: var(--muted); font-size: 14px }

/* Overview */
.team-overview-section { background: #f6fbff; padding: 80px 0 100px }
.team-overview-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 48px; align-items: start }
.team-overview-text p { font-size: 15px; line-height: 2; color: #444; margin-bottom: 18px }

.team-info-table { background: #fff; border-radius: 20px; box-shadow: 0 10px 40px rgba(0,0,0,.06); overflow: hidden }
.team-info-dl    { margin: 0; display: flex; flex-direction: column }
.team-info-row   { display: grid; grid-template-columns: 110px 1fr; border-bottom: 1px solid rgba(5,34,91,.07) }
.team-info-row:last-child { border-bottom: none }
.team-info-row dt { padding: 14px 16px; background: #05225b; font-size: 12px; font-weight: 700; letter-spacing: .06em; color: #fff; display: flex; align-items: center; border-right: 1px solid rgba(5,34,91,.07) }
.team-info-row dd { padding: 14px 18px; margin: 0; font-size: 14px; line-height: 1.75; color: #333; display: flex; align-items: center }

/* Vision */
.team-vision-section { background: #fff; padding: 80px 0 100px }
.team-vision-quote { margin-bottom: 56px; padding: 36px 40px; background: linear-gradient(135deg,#05225b 0%,#0b2f7a 100%); border-radius: 20px; text-align: center }
.team-vision-quote__text  { margin: 0; color: #d6b25a; font-family: var(--font-heading); font-size: clamp(16px,2.4vw,22px); font-weight: 700; line-height: 1.8; letter-spacing: .04em }
.team-vision-quote__label { margin: 12px 0 0; color: rgba(255,255,255,.5); font-family: var(--font-number); font-size: 11px; letter-spacing: .4em }

.team-pillars { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px }
.team-pillar  { background: #f6fbff; border-radius: 18px; padding: 32px 28px 36px; border: 1px solid rgba(5,34,91,.08); position: relative; overflow: hidden; transition: box-shadow .3s var(--ease), transform .3s var(--ease) }
.team-pillar:hover { box-shadow: 0 16px 48px rgba(5,34,91,.12); transform: translateY(-4px) }
.team-pillar__num   { display: block; font-family: var(--font-number); font-size: 52px; font-weight: 700; color: rgba(5,34,91,.07); line-height: 1; margin-bottom: 14px }
.team-pillar__title { margin: 0 0 12px; font-size: 15px; font-weight: 700; color: #05225b; line-height: 1.6 }
.team-pillar__text  { margin: 0; font-size: 13px; line-height: 1.9; color: var(--muted) }

/* History */
.team-history-section { background: #f6fbff; padding: 80px 0 100px }
.team-timeline { list-style: none; margin: 0; padding: 0 0 0 28px; position: relative }
.team-timeline::before { content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 2px; background: linear-gradient(to bottom,#05225b,rgba(5,34,91,.1)); border-radius: 2px }

.team-tl-item { position: relative; padding: 0 0 44px 36px }
.team-tl-item::before { content: ""; position: absolute; left: -5px; top: 7px; width: 10px; height: 10px; border-radius: 50%; background: #05225b; border: 2px solid #fff; box-shadow: 0 0 0 2px #05225b }
.team-tl-item--highlight::before { background: #d6b25a; box-shadow: 0 0 0 2px #d6b25a, 0 0 12px rgba(214,178,90,.5); width: 14px; height: 14px; left: -7px; top: 5px }

.team-tl-year { display: inline-block; font-family: var(--font-number); font-size: 12px; font-weight: 600; letter-spacing: .12em; color: #05225b; background: rgba(5,34,91,.06); padding: 3px 10px; border-radius: 20px; margin-bottom: 8px }
.team-tl-item--highlight .team-tl-year { background: rgba(214,178,90,.15); color: #9a7422 }
.team-tl-event { margin: 0 0 8px; font-size: 16px; font-weight: 700; color: #0b0f1a; line-height: 1.5 }
.team-tl-desc  { margin: 0; font-size: 13px; line-height: 1.9; color: var(--muted); max-width: 600px }

/* Links */
.team-links-section { background: #fff; padding: 60px 0 80px }
.team-links { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center }

/* ==================================================
   Player Archive Page
================================================== */
.player-archive-page { background: #f0f4f8 }

/* KV */
.player-kv {
  position: relative; padding: 140px 0 88px; overflow: hidden;
  background: linear-gradient(175deg, #0a1f12 0%, #0d2a18 35%, #0b2240 70%, #05225b 100%);
}
.player-kv__grass {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, rgba(255,255,255,0) 0px, rgba(255,255,255,0) 60px, rgba(255,255,255,.025) 60px, rgba(255,255,255,.025) 120px);
  pointer-events: none;
}
.player-kv__field { position: absolute; inset: 0; pointer-events: none }
.player-kv__diamond {
  position: absolute; bottom: -120px; right: 6%; width: 420px; height: 420px;
  border: 1px solid rgba(255,255,255,.09); transform: rotate(45deg); transform-origin: center center;
}
.player-kv__diamond::before { content: ''; position: absolute; inset: 30px; border: 1px solid rgba(255,255,255,.05) }

.player-kv__baseline { position: absolute; height: 1px; background: rgba(255,255,255,.12); transform-origin: right bottom }
.player-kv__baseline--1 { width: 340px; bottom: 40px; right: 6%;             transform: rotate(-45deg) }
.player-kv__baseline--2 { width: 340px; bottom: 40px; right: 6%;             transform: rotate(0deg) }
.player-kv__baseline--3 { width: 1px; height: 340px; bottom: 40px; right: calc(6% + 240px); background: rgba(255,255,255,.08) }

.player-kv::before { content: ''; position: absolute; top: -60%; left: 30%; width: 800px; height: 800px; background: radial-gradient(ellipse,rgba(214,178,90,.07) 0%,transparent 65%); pointer-events: none }
.player-kv::after  { content: 'PLAYER'; position: absolute; right: -1%; bottom: -8%; font-family: var(--font-number); font-size: clamp(80px,16vw,180px); font-weight: 700; color: rgba(255,255,255,.03); letter-spacing: .04em; pointer-events: none; line-height: 1 }

.player-kv__inner  { position: relative; z-index: 1 }
.player-kv__content { max-width: 640px }
.player-kv__eyebrow { margin: 0 0 18px; color: #d6b25a; letter-spacing: .18em; font-size: 14px; font-weight: 700; line-height: 1.8 }
.player-kv__title   { margin: 0; color: #fff; font-weight: 800; font-size: clamp(52px,8vw,110px); line-height: 1; letter-spacing: .04em; font-family: var(--font-number) }
.player-kv__lead    { margin-top: 18px; color: rgba(255,255,255,.65); line-height: 1.9; font-size: 15px }

/* Section 共通ヘッド */
.player-section-head  { margin-bottom: 36px }
.player-section-title { margin: 0; color: #05225b; font-size: 32px; font-weight: 700; line-height: 1.2; font-family: var(--font-number) }
.player-section-sub   { margin-top: 6px; color: var(--muted); font-size: 14px }

/* Staff Section */
.staff-section { background: #ddeaf7; padding: 72px 0 80px; position: relative }
.staff-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg,transparent,#a8c8e8,transparent) }

.staff-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 20px }

.staff-card {
  background: #fff; border: 1px solid rgba(5,34,91,.08); border-radius: 16px; overflow: hidden;
  box-shadow: 0 6px 20px rgba(0,0,0,.06);
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.staff-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(5,34,91,.12); border-color: rgba(214,178,90,.4) }

.staff-card__thumb { overflow: hidden; position: relative }
.staff-card__thumb img { width: 100%; aspect-ratio: 3/4; object-fit: cover; display: block; transition: transform .4s var(--ease) }
.staff-card:hover .staff-card__thumb img { transform: scale(1.04) }

.staff-card__body  { padding: 12px 14px 16px; display: flex; flex-direction: column; gap: 6px }
.staff-card__title { display: inline-flex; align-self: flex-start; font-size: 10px; font-weight: 700; letter-spacing: .1em; color: #fff; background: #05225b; padding: 3px 10px; border-radius: 20px; white-space: nowrap }
.staff-card__name  { font-size: 15px; font-weight: 700; color: var(--text); font-family: var(--font-heading); line-height: 1.4 }
.staff-card__company { margin: 0; display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--muted); line-height: 1.5 }
.staff-card__company svg { flex-shrink: 0; color: #d6b25a }

/* Player List Section */
.player-list-section { background: #eaf3fb; padding: 72px 0 100px; position: relative }
.player-list-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg,transparent,#a8c8e8,transparent) }

.player-list-section .player-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px }

.player-list-section .player-card {
  border-radius: 16px; overflow: hidden;
  background: #fff; border: 1px solid rgba(5,34,91,.08); box-shadow: 0 8px 24px rgba(0,0,0,.07);
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.player-list-section .player-card:hover { transform: translateY(-6px); box-shadow: 0 20px 48px rgba(5,34,91,.14); border-color: rgba(214,178,90,.4) }
.player-list-section .player-card__link { text-decoration: none; display: block; color: inherit }

.player-list-section .player-card__thumb { position: relative; overflow: hidden }
.player-list-section .player-card__thumb img { width: 100%; aspect-ratio: 3/4; object-fit: cover; display: block; transition: transform .4s var(--ease) }
.player-list-section .player-card:hover .player-card__thumb img { transform: scale(1.04) }

.player-list-section .player-card__body { padding: 14px 16px 18px }

/* バッジ類 */
.player-card__badges { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; min-height: 22px }
.player-badge { display: inline-flex; align-items: center; font-size: 10px; font-weight: 700; letter-spacing: .06em; padding: 3px 9px; border-radius: 20px; line-height: 1 }
.player-badge--pos { background: rgba(5,34,91,.07); color: #05225b }

.player-list-section .player-card__name { margin: 0 0 8px; font-size: 15px; font-weight: 700; color: var(--text); line-height: 1.4 }

.player-card__company { margin: 0; display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--muted); line-height: 1.5 }
.player-card__company svg { flex-shrink: 0; color: #d6b25a }

/* NEW バッジ */
.player-card__thumb,
.staff-card__thumb { position: relative }

.player-badge--new {
  position: absolute; top: 10px; right: 10px; z-index: 2;
  display: inline-flex; align-items: center;
  font-size: 10px; font-weight: 900; letter-spacing: .14em; padding: 4px 10px; border-radius: 4px; line-height: 1;
  color: #fff; background: #e03535; box-shadow: 0 2px 10px rgba(224,53,53,.55);
}
.player-list-section--raise .player-badge--new { background: #1a9e5f; box-shadow: 0 2px 10px rgba(26,158,95,.55) }

/* 生年月日 */
.player-card__dob { display: flex; align-items: center; gap: 5px; margin: 4px 0 6px; font-size: 11px; color: var(--muted); font-family: var(--font-number) }
.player-card__dob-icon { width: 12px; height: 12px; flex-shrink: 0; color: #d6b25a }

/* SNS */
.player-card__sns { display: flex; align-items: center; gap: 6px; padding: 0 16px 14px }
.player-card__sns-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: 50%;
  background: rgba(5,34,91,.06); color: #05225b;
  text-decoration: none;
  transition: background .2s var(--ease), color .2s var(--ease), transform .2s var(--ease);
}
.player-card__sns-btn svg { width: 14px; height: 14px; display: block; fill: currentColor }
.player-card__sns-btn--instagram:hover {
  background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
  color: #fff; transform: translateY(-2px);
}

/* RAISE セクション */
.player-list-section--raise { background: #e8f0f8 }
.player-list-section--raise .player-section-title { color: #1a4a8a }
.player-list-section--raise .player-section-title::after { content: ''; display: block; width: 40px; height: 3px; background: #d6b25a; margin-top: 8px; border-radius: 2px }

/* ==================================================
   Sponsor Archive Page
================================================== */
.sponsor-archive-page { background: #fff }

.sponsor-kv {
  background: linear-gradient(175deg, #0a1f12 0%, #0d2a18 35%, #0b2240 70%, #05225b 100%);
  padding: 140px 0 80px; position: relative; overflow: hidden;
}
.sponsor-kv::before { content: 'SPONSOR'; position: absolute; right: -2%; bottom: -10%; font-family: var(--font-number); font-size: clamp(60px,12vw,140px); font-weight: 700; color: rgba(255,255,255,.04); letter-spacing: .04em; pointer-events: none; line-height: 1 }
.sponsor-kv::after  { content: ''; position: absolute; top: -80px; right: -80px; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle,rgba(214,178,90,.1) 0%,transparent 70%); pointer-events: none }

.sponsor-kv__inner   { position: relative; z-index: 1 }
.sponsor-kv__content { max-width: 640px }
.sponsor-kv__eyebrow { margin: 0 0 18px; color: #d6b25a; letter-spacing: .18em; font-size: 14px; font-weight: 700; line-height: 1.8 }
.sponsor-kv__title   { margin: 0; color: #fff; font-weight: 800; font-size: clamp(48px,7vw,100px); line-height: 1; letter-spacing: .04em; font-family: var(--font-number) }
.sponsor-kv__lead    { margin-top: 18px; color: rgba(255,255,255,.7); line-height: 1.9; font-size: 15px }

.sponsor-list-section { background: #eaf3fb; padding: 72px 0 100px; position: relative }
.sponsor-list-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg,transparent,#a8c8e8,transparent) }
.sponsor-list-section + .sponsor-list-section { padding-top: 0 }
.sponsor-list-section + .sponsor-list-section::before { display: none }
.sponsor-list-section--top  { background: #ddeef8 }
.sponsor-list-section--ouen { background: #f0f6fb }

.sponsor-rank-heading        { margin-bottom: 36px; padding-top: 30px; text-align: center; position: relative }
.sponsor-rank-heading__title { display: inline-block; font-size: 13px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #05225b; padding: 8px 28px; border: 2px solid #05225b; border-radius: 999px; background: transparent; line-height: 1 }
.sponsor-list-section--top .sponsor-rank-heading__title { border-color: #d6b25a; color: #b8922a; background: rgba(214,178,90,.08) }

.sponsor-grid      { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px }
.sponsor-grid--top { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px }
.sponsor-grid--top .sponsor-card { min-height: 180px; padding: 40px 32px }
.sponsor-grid--top .sponsor-card__logo img { max-height: 110px }
.sponsor-grid--ouen { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 16px }
.sponsor-grid--ouen .sponsor-card { min-height: 100px; padding: 20px 16px; border-radius: 12px }
.sponsor-grid--ouen .sponsor-card__logo img { max-height: 56px }

.sponsor-item { display: contents }
.sponsor-card {
  display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative;
  background: #fff; border: 1px solid rgba(5,34,91,.08); border-radius: 16px; padding: 32px 24px; min-height: 140px;
  text-decoration: none; color: inherit;
  box-shadow: 0 6px 20px rgba(0,0,0,.05);
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
a.sponsor-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(5,34,91,.12); border-color: rgba(214,178,90,.45) }
.sponsor-card__logo { display: flex; align-items: center; justify-content: center; width: 100% }
.sponsor-card__logo img { max-width: 100%; max-height: 80px; width: auto; height: auto; object-fit: contain; display: block; margin: 0 auto; filter: grayscale(30%) opacity(.85); transition: filter .3s var(--ease) }
a.sponsor-card:hover .sponsor-card__logo img { filter: grayscale(0%) opacity(1) }
.sponsor-card__name-fallback { font-size: 14px; font-weight: 700; color: var(--text); text-align: center; line-height: 1.5 }
.sponsor-card__arrow { position: absolute; top: 10px; right: 12px; color: rgba(5,34,91,.2); transition: color .2s var(--ease); display: flex }
a.sponsor-card:hover .sponsor-card__arrow { color: #d6b25a }

.sponsor-cta-section { background: #fff; padding: 60px 0 80px; position: relative }
.sponsor-cta-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg,transparent,#a8c8e8,transparent) }
.sponsor-cta-box { display: flex; align-items: center; justify-content: space-between; gap: 32px; background: #eaf3fb; border: 1px solid rgba(5,34,91,.08); border-radius: 20px; padding: 36px 48px; flex-wrap: wrap }
.sponsor-cta-box__text { margin: 0; font-size: 15px; line-height: 1.8; color: var(--text); flex: 1; min-width: 200px }

/* ==================================================
   News Archive Page
================================================== */
.news-archive-page { background: #fff }

.news-kv {
  background: linear-gradient(175deg, #0a1f12 0%, #0d2a18 35%, #0b2240 70%, #05225b 100%);
  padding: 140px 0 80px; position: relative; overflow: hidden;
}
.news-kv::before { content: 'NEWS'; position: absolute; right: -1%; bottom: -8%; font-family: var(--font-number); font-size: clamp(60px,12vw,150px); font-weight: 700; color: rgba(255,255,255,.04); letter-spacing: .04em; pointer-events: none; line-height: 1 }
.news-kv__inner   { position: relative; z-index: 1 }
.news-kv__content { max-width: 640px }
.news-kv__eyebrow { margin: 0 0 18px; color: #d6b25a; letter-spacing: .18em; font-size: 14px; font-weight: 700; line-height: 1.8 }
.news-kv__title   { margin: 0; color: #fff; font-weight: 800; font-size: clamp(44px,7vw,100px); line-height: 1; letter-spacing: .04em; font-family: var(--font-number) }
.news-kv__lead    { margin-top: 16px; color: rgba(255,255,255,.7); font-size: 15px; line-height: 1.8 }

.news-list-section { background: #eaf3fb; padding: 64px 0 100px; position: relative }
.news-list-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg,transparent,#a8c8e8,transparent) }

.news-list { list-style: none; margin: 0 0 48px; padding: 0; background: #fff; border-radius: 16px; box-shadow: 0 8px 32px rgba(0,0,0,.07); overflow: hidden }
.news-list__item { border-bottom: 1px solid rgba(5,34,91,.06) }
.news-list__item:last-child { border-bottom: none }

.news-list__link { display: flex; align-items: center; gap: 24px; padding: 20px 28px; text-decoration: none; color: inherit; transition: background .15s }
.news-list__link:hover { background: #f0f6ff }

.news-list__date   { font-family: var(--font-number); font-size: 13px; color: var(--muted); white-space: nowrap; flex-shrink: 0; letter-spacing: .04em }
.news-list__title  { flex: 1; font-size: 15px; font-weight: 600; color: var(--text); line-height: 1.6 }
.news-list__link:hover .news-list__title { color: #05225b }
.news-list__arrow  { font-size: 20px; color: rgba(5,34,91,.2); flex-shrink: 0; transition: color .15s, transform .15s }
.news-list__link:hover .news-list__arrow { color: #d6b25a; transform: translateX(3px) }

/* ==================================================
   News Single Page
================================================== */
.news-single-page { background: #fff }

.news-single-kv {
  background: linear-gradient(175deg, #0a1f12 0%, #0d2a18 35%, #0b2240 70%, #05225b 100%);
  padding: 140px 0 64px; position: relative; overflow: hidden;
}
.news-single-kv::before { content: 'NEWS'; position: absolute; right: -1%; bottom: -8%; font-family: var(--font-number); font-size: clamp(60px,12vw,150px); font-weight: 700; color: rgba(255,255,255,.04); letter-spacing: .04em; pointer-events: none; line-height: 1 }

.news-single-kv__inner   { position: relative; z-index: 1; max-width: 860px }
.news-single-kv__eyebrow { margin: 0 0 20px; color: rgba(255,255,255,.5); font-size: 12px; letter-spacing: .1em }
.news-single-kv__eyebrow a { color: #d6b25a; text-decoration: none }
.news-single-kv__eyebrow a:hover { text-decoration: underline }
.news-single-kv__title { margin: 0; color: #fff; font-size: clamp(22px,3.5vw,36px); font-weight: 800; line-height: 1.5; font-family: var(--font-heading) }
.news-single-kv__meta { margin-top: 20px; display: flex; align-items: center; gap: 16px }
.news-single-kv__date { font-family: var(--font-number); font-size: 13px; color: #d6b25a; letter-spacing: .08em }

.news-single-section { background: #eaf3fb; padding: 64px 0 100px; position: relative }
.news-single-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg,transparent,#a8c8e8,transparent) }
.news-single-layout { max-width: 860px }

.news-single-body { background: #fff; border-radius: 20px; box-shadow: 0 12px 40px rgba(0,0,0,.07); overflow: hidden; margin-bottom: 40px }
.news-single-thumb { margin: 0; width: 100%; max-height: 480px; overflow: hidden }
.news-single-thumb img { width: 100%; height: 100%; object-fit: cover; display: block }

.news-single-content { padding: 48px 52px; line-height: 2; font-size: 15px; color: var(--text) }
.news-single-content h2 { font-size: 20px; font-weight: 700; margin: 2em 0 .8em; color: #05225b; padding-bottom: .4em; border-bottom: 2px solid rgba(5,34,91,.1) }
.news-single-content h3 { font-size: 17px; font-weight: 700; margin: 1.6em 0 .6em; color: #05225b }
.news-single-content p  { margin-bottom: 1.4em }
.news-single-content a  { color: #05225b; text-decoration: underline; text-underline-offset: 3px }
.news-single-content img { max-width: 100%; height: auto; border-radius: 8px; margin: 1em 0 }
.news-single-content ul,
.news-single-content ol { padding-left: 1.5em; margin-bottom: 1.4em }
.news-single-content li { margin-bottom: .4em }

.news-single-nav { background: #fff; border-radius: 16px; box-shadow: 0 6px 24px rgba(0,0,0,.06); overflow: hidden }
.news-single-nav__inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: stretch }
.news-single-nav__item  { display: flex; flex-direction: column; gap: 8px; padding: 24px 28px; text-decoration: none; color: inherit; transition: background .15s; border-top: 3px solid transparent }
.news-single-nav__item:hover { background: #f0f6ff; border-top-color: #05225b }
.news-single-nav__item--prev  { border-right: 1px solid rgba(5,34,91,.06) }
.news-single-nav__item--next  { border-left: 1px solid rgba(5,34,91,.06); align-items: flex-end; text-align: right }
.news-single-nav__item--empty { background: transparent }
.news-single-nav__dir { display: flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 700; letter-spacing: .1em; color: var(--muted) }
.news-single-nav__item--next .news-single-nav__dir { justify-content: flex-end }
.news-single-nav__label { font-size: 13px; font-weight: 600; color: var(--text); line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden }
.news-single-nav__item:hover .news-single-nav__label { color: #05225b }
.news-single-nav__archive { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 20px 24px; text-decoration: none; font-size: 11px; font-weight: 700; letter-spacing: .1em; color: var(--muted); border-left: 1px solid rgba(5,34,91,.06); border-right: 1px solid rgba(5,34,91,.06); transition: background .15s, color .15s; white-space: nowrap }
.news-single-nav__archive:hover { background: #05225b; color: #fff }

/* ==================================================
   Game Archive & Single
================================================== */
.game-archive-page { background: #fff }

.game-kv {
  background: linear-gradient(175deg, #0a1f12 0%, #0d2a18 35%, #0b2240 70%, #05225b 100%);
  padding: 140px 0 80px; position: relative; overflow: hidden;
}
.game-kv::before { content: 'GAMES'; position: absolute; right: -1%; bottom: -8%; font-family: var(--font-number); font-size: clamp(60px,12vw,150px); font-weight: 700; color: rgba(255,255,255,.04); letter-spacing: .04em; pointer-events: none; line-height: 1 }
.game-kv--win::after  { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg,transparent,#4caf7d,transparent) }
.game-kv--lose::after { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg,transparent,#e85c3a,transparent) }
.game-kv--draw::after { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg,transparent,#a8c8e8,transparent) }

.game-kv__inner   { position: relative; z-index: 1 }
.game-kv__content { max-width: 640px }
.game-kv__eyebrow { margin: 0 0 18px; color: #d6b25a; letter-spacing: .18em; font-size: 14px; font-weight: 700; line-height: 1.8 }
.game-kv__eyebrow a { color: inherit; text-decoration: none }
.game-kv__eyebrow a:hover { text-decoration: underline }
.game-kv__title   { margin: 0; color: #fff; font-weight: 800; font-size: clamp(44px,7vw,100px); line-height: 1; letter-spacing: .04em; font-family: var(--font-number) }
.game-kv__lead    { margin-top: 16px; color: rgba(255,255,255,.7); font-size: 15px; line-height: 1.8 }

.game-list-section { background: #eaf3fb; padding: 64px 0 100px; position: relative }
.game-list-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg,transparent,#a8c8e8,transparent) }

.game-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px }
.game-tab  { padding: 10px 24px; border: 2px solid rgba(5,34,91,.15); border-radius: 999px; background: #fff; color: var(--muted); font-size: 14px; font-weight: 700; font-family: var(--font-number); cursor: pointer; transition: all .2s var(--ease); letter-spacing: .04em }
.game-tab:hover    { border-color: #05225b; color: #05225b }
.game-tab.is-active { background: #05225b; border-color: #05225b; color: #fff }

.game-panel          { display: none }
.game-panel.is-active { display: block }

.game-summary { display: flex; align-items: center; gap: 16px; margin-bottom: 24px; padding: 20px 28px; background: #05225b; border-radius: 14px; width: fit-content }
.game-summary__item { display: flex; align-items: baseline; gap: 6px }
.game-summary__num  { font-family: var(--font-number); font-size: 36px; font-weight: 800; line-height: 1 }
.game-summary__item--win  .game-summary__num { color: #6ee09a }
.game-summary__item--lose .game-summary__num { color: #ff8a7a }
.game-summary__item--draw .game-summary__num { color: #a8c8e8 }
.game-summary__label { font-size: 13px; font-weight: 700; color: rgba(255,255,255,.7) }
.game-summary__sep   { font-size: 20px; color: rgba(255,255,255,.3); font-weight: 300 }
.game-summary__total { font-size: 12px; color: rgba(255,255,255,.5); margin-left: 8px; font-family: var(--font-number) }

.game-table-wrap { overflow: hidden; border-radius: 16px; box-shadow: 0 8px 32px rgba(0,0,0,.07) }
.game-table      { width: 100%; border-collapse: collapse; background: #fff; font-size: 14px }
.game-table__th  { padding: 14px 16px; text-align: left; font-size: 11px; font-weight: 700; letter-spacing: .1em; color: rgba(255,255,255,.85); background: #05225b; white-space: nowrap }
.game-table__row { border-bottom: 1px solid rgba(5,34,91,.06); transition: background .15s }
.game-table__row:last-child { border-bottom: none }
.game-table__row:hover      { background: #f0f6ff }
.game-table__row--win  { border-left: 3px solid #4caf7d }
.game-table__row--lose { border-left: 3px solid #e85c3a }
.game-table__row--draw { border-left: 3px solid #a8c8e8 }
.game-table__td { padding: 14px 16px; color: var(--text); white-space: nowrap }
.game-table__td--tour,
.game-table__td--venue { color: var(--muted); font-size: 13px }

.game-score       { display: inline-flex; align-items: center; gap: 4px; font-family: var(--font-number) }
.game-score__our  { font-size: 20px; font-weight: 800; color: #05225b }
.game-score__their{ font-size: 20px; font-weight: 800; color: var(--muted) }
.game-score__sep  { font-size: 14px; color: var(--muted) }

.game-badge     { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; font-size: 12px; font-weight: 800; line-height: 1 }
.game-badge--win  { background: #e8f8ee; color: #2e8b57 }
.game-badge--lose { background: #fdf0ee; color: #c0392b }
.game-badge--draw { background: #eaf3fb; color: #4a7fa5 }
.game-badge--lg   { width: auto; height: auto; padding: 10px 28px; border-radius: 999px; font-size: 16px }

.game-table__detail { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: rgba(5,34,91,.07); color: #05225b; text-decoration: none; font-size: 16px; transition: background .2s, color .2s }
.game-table__detail:hover { background: #05225b; color: #fff }

.game-single-page { background: #fff }
.game-scoreboard-section { background: #eaf3fb; padding: 64px 0 100px; position: relative }
.game-scoreboard-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg,transparent,#a8c8e8,transparent) }

.game-scoreboard { background: #fff; border-radius: 20px; box-shadow: 0 12px 40px rgba(0,0,0,.08); padding: 40px 48px; margin-bottom: 40px; border-top: 4px solid #05225b }
.game-scoreboard--win  { border-top-color: #4caf7d }
.game-scoreboard--lose { border-top-color: #e85c3a }
.game-scoreboard--draw { border-top-color: #a8c8e8 }

.game-scoreboard__result { text-align: center; margin-bottom: 32px }
.game-scoreboard__score  { display: flex; align-items: center; justify-content: center; gap: 24px; margin-bottom: 36px }
.game-scoreboard__team   { display: flex; flex-direction: column; align-items: center; gap: 10px; min-width: 160px }
.game-scoreboard__team-name { font-size: 14px; font-weight: 700; color: var(--muted); letter-spacing: .06em }
.game-scoreboard__num    { font-family: var(--font-number); font-size: clamp(56px,8vw,96px); font-weight: 800; line-height: 1 }
.game-scoreboard__num--us   { color: #05225b }
.game-scoreboard__num--them { color: var(--muted) }
.game-scoreboard__vs { font-family: var(--font-number); font-size: 20px; font-weight: 700; color: rgba(5,34,91,.2); letter-spacing: .1em }

.game-scoreboard__info { display: flex; flex-wrap: wrap; gap: 8px 32px; border-top: 1px solid rgba(5,34,91,.07); padding-top: 24px; margin: 0 }
.game-scoreboard__info-row { display: flex; align-items: center; gap: 8px }
.game-scoreboard__info-row dt { display: flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 700; letter-spacing: .1em; color: var(--muted); white-space: nowrap }
.game-scoreboard__info-row dd { margin: 0; font-size: 14px; color: var(--text) }

.game-report { background: #fff; border-radius: 16px; padding: 32px 36px; box-shadow: 0 6px 24px rgba(0,0,0,.05); margin-bottom: 32px; line-height: 2; color: var(--text); font-size: 15px }

.game-single-nav { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px }
.game-single-nav__pager { display: flex; gap: 10px }

/* ==================================================
   Contact Page
================================================== */
.contact-page { background: #fff }

.contact-kv { background: linear-gradient(180deg,#ffffff,#eaf5ff); padding: 140px 0 80px }
.contact-kv__inner { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); gap: 48px; align-items: center }
.contact-kv__content { min-width: 0 }
.contact-kv__eyebrow { margin: 0 0 18px; color: #4fc3f7; letter-spacing: .18em; font-size: 14px; font-weight: 700; line-height: 1.8 }
.contact-kv__title   { margin: 0; color: #1e88e5; font-weight: 800; font-size: clamp(52px,8vw,110px); line-height: 1; letter-spacing: .04em }
.contact-kv__lead    { margin-top: 18px; color: #555; line-height: 1.9; max-width: 540px; font-size: 16px }

.contact-kv__photo { position: relative; min-width: 0 }
.contact-kv__photo::before { content: ""; position: absolute; inset: auto -18px -18px 18px; border: 1px solid rgba(79,195,247,.5); border-radius: 28px; z-index: 0 }
.contact-kv__photo img { position: relative; z-index: 1; width: 100%; display: block; object-fit: cover; border-radius: 20px; box-shadow: 0 10px 30px rgba(0,0,0,.1); aspect-ratio: 16/10 }

.contact-form-section { padding: 60px 0 100px; background: #f6fbff }
.contact-form-wrap    { background: #ffffff; border-radius: 24px; padding: 40px; box-shadow: 0 10px 40px rgba(0,0,0,.06) }
.contact-form-head    { margin-bottom: 24px }
.contact-section-title { margin: 0; color: #1e88e5; font-size: 36px; font-weight: 700; line-height: 1.2 }
.contact-form-head__sub { margin-top: 8px; color: #6b7c93; font-size: 14px; line-height: 1.7 }

.contact-form__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin-top: 30px }
.contact-form-section .form-group { display: flex; flex-direction: column; min-width: 0 }
.contact-form-section .form-group--full { grid-column: 1 / -1 }
.contact-form-section .form-group label { margin-bottom: 8px; font-weight: 600; color: #333; font-size: 14px; line-height: 1.6 }
.contact-form-section .required { display: inline-flex; align-items: center; justify-content: center; background: #4fc3f7; color: #fff; font-size: 11px; padding: 3px 8px; border-radius: 20px; margin-left: 6px; line-height: 1 }

.contact-form-box input,
.contact-form-box textarea,
.contact-form-box select { width: 100%; box-sizing: border-box; border: 1px solid #dfeaf5; background: #f9fcff; border-radius: 10px; padding: 14px 16px; font-size: 15px; color: #333; transition: .2s; appearance: none }
.contact-form-box textarea { min-height: 180px; resize: vertical }
.contact-form-box input:focus,
.contact-form-box textarea:focus,
.contact-form-box select:focus { border-color: #1e88e5; background: #fff; outline: none; box-shadow: 0 0 0 3px rgba(30,136,229,.1) }
.contact-form-box select { background-image: linear-gradient(45deg,transparent 50%,#1e88e5 50%),linear-gradient(135deg,#1e88e5 50%,transparent 50%); background-position: calc(100% - 22px) calc(50% - 2px),calc(100% - 16px) calc(50% - 2px); background-size: 6px 6px,6px 6px; background-repeat: no-repeat; padding-right: 46px }

.contact-submit-btn { display: block !important; width: auto !important; margin: 30px auto 0 !important; background: linear-gradient(135deg,#1a5bbf 0%,#0b2f7a 50%,#05225b 100%) !important; color: #fff !important; border: 2px solid transparent !important; border-radius: 40px !important; padding: 16px 34px !important; font-size: 16px !important; font-weight: 700 !important; cursor: pointer !important; transition: .3s !important; min-width: 220px }
.contact-submit-btn:hover { background: #fff !important; color: #1e88e5 !important; border: 2px solid #3fb7ff !important; transform: translateY(-2px) !important; box-shadow: 0 8px 24px rgba(30,136,229,.25) !important }

.contact-note { padding: 0 0 100px; background: #f6fbff }
.contact-note__box { padding: 24px 28px; border-radius: 20px; background: #fff; border: 1px solid rgba(30,136,229,.10); color: #4d5b75; line-height: 1.8; box-shadow: 0 10px 30px rgba(0,0,0,.04) }

/* =========================
   Scroll Animation
========================= */
[data-anim]          { opacity: 0; transform: translateY(28px);   transition: opacity .6s cubic-bezier(.2,.8,.2,1), transform .6s cubic-bezier(.2,.8,.2,1) }
[data-anim="scale"]  { opacity: 0; transform: scale(.88);         transition: opacity .6s cubic-bezier(.2,.8,.2,1), transform .6s cubic-bezier(.2,.8,.2,1) }
[data-anim="left"]   { opacity: 0; transform: translateX(-40px);  transition: opacity .6s cubic-bezier(.2,.8,.2,1), transform .6s cubic-bezier(.2,.8,.2,1) }
[data-anim="right"]  { opacity: 0; transform: translateX(40px);   transition: opacity .6s cubic-bezier(.2,.8,.2,1), transform .6s cubic-bezier(.2,.8,.2,1) }

[data-anim].is-visible,
[data-anim="scale"].is-visible,
[data-anim="left"].is-visible,
[data-anim="right"].is-visible { opacity: 1; transform: none }

[data-anim-delay="1"] { transition-delay: .1s }
[data-anim-delay="2"] { transition-delay: .2s }
[data-anim-delay="3"] { transition-delay: .3s }
[data-anim-delay="4"] { transition-delay: .4s }

/* ==================================================
   Responsive
================================================== */

/* 1100px */
@media (max-width: 1100px) {
  .news-grid                         { grid-template-columns: repeat(2,1fr) }
  .section-schedule .schedule-layout { grid-template-columns: 1fr; gap: 18px }
  .section-schedule .schedule-embed iframe { height: 420px }
  .schedule-right                    { max-width: 520px; margin-inline: auto }
  .player-grid                       { grid-template-columns: repeat(2,1fr) }
  .player-single-layout              { grid-template-columns: 1fr }
}

/* 1024px */
@media (max-width: 1024px) {
  /* FV Hamburger */
  .fv { position: relative; flex-direction: column; overflow: hidden }
  .fv-visual { width: 100% !important; height: 100vh; position: relative }
  .players, .biew_pc { display: none !important }
  .biew_sp { display: block !important }
  .fv-main-logo_sp { display: block !important; opacity: 1 !important; animation: none !important; transform: translate(-50%,-50%) scale(1) !important }
  .is-ready .fv-menu,
  .fv-menu { animation: none !important }

  .fv-hamburger {
    display: flex; flex-direction: column; justify-content: center; gap: 6px;
    position: fixed; top: 18px; right: 18px; z-index: 1001;
    width: 52px; height: 52px; padding: 0; border: none; border-radius: 999px;
    background: rgba(5,34,91,.92); cursor: pointer;
  }
  .fv-hamburger .line { display: block; width: 24px; height: 2px; margin: 0 auto; background: #fff; transition: transform .25s ease, opacity .25s ease }

  .fv-menu {
    position: fixed !important;
    top: 0 !important; right: 0 !important; left: auto !important; bottom: auto !important;
    width: min(84vw,340px) !important; height: 100vh !important;
    background: var(--blue) !important; color: #fff;
    z-index: 1000;
    display: flex !important; align-items: center; justify-content: center;
    overflow: auto;
    animation: none !important;
    opacity: 1 !important;
    transform: translateX(100%) !important; transition: transform .3s ease !important;
  }
  .fv-menu.is-open { transform: translateX(0) !important }

  .fv-menu-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 999; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .3s ease, visibility .3s ease }
  .fv-menu-overlay.is-open { opacity: 1; visibility: visible; pointer-events: auto }

  .fv-hamburger.is-open .line1 { transform: translateY(8px) rotate(45deg) }
  .fv-hamburger.is-open .line2 { opacity: 0 }
  .fv-hamburger.is-open .line3 { transform: translateY(-8px) rotate(-45deg) }

  .menu-inner { width: 84%; text-align: center }
  .menu-nav   { display: flex; flex-direction: column; gap: 18px; align-items: center }
  .menu-nav a { font-size: 18px }

  /* Contact */
  .contact-kv { padding: 124px 0 72px }
  .contact-kv__inner { grid-template-columns: 1fr 1fr; gap: 32px }
  .contact-kv__title { font-size: clamp(42px,7vw,76px) }
  .contact-form-wrap { padding: 32px }

  /* Team */
  .team-kv { padding: 124px 0 72px }
  .team-kv__inner { grid-template-columns: 1fr 1fr; gap: 32px }
  .team-overview-grid { grid-template-columns: 1fr; gap: 36px }
  .team-pillars { grid-template-columns: repeat(2,1fr) }

  /* Player Archive */
  .player-kv { padding: 124px 0 64px }
  .player-list-section .player-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px }
  .staff-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px }
  .staff-card__title { font-size: 8px }

  /* Sponsor */
  .sponsor-kv { padding: 124px 0 64px }
  .sponsor-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px }
  .sponsor-grid--top  { grid-template-columns: repeat(2,minmax(0,1fr)) }
  .sponsor-grid--ouen { grid-template-columns: repeat(4,minmax(0,1fr)) }
  .sponsor-cta-box { padding: 28px 32px }

  /* Game */
  .game-kv { padding: 124px 0 64px }
  .game-scoreboard { padding: 32px }
  .game-scoreboard__team { min-width: 120px }
}

/* 980px */
@media (max-width: 980px) {
  .tn-games__layout { grid-template-columns: 1fr }
  .tn-games__board  { min-height: 380px }
  .tn-games__num    { font-size: 82px }
  .tn-yt            { grid-template-columns: repeat(2,1fr); gap: 20px }
  .tn-contact       { padding: 64px 0 74px }
  .tn-contact__panel { padding: 24px 26px 30px }
  .tn-contact__title { font-size: 36px }
  .tn-contact__lead  { font-size: 16px }
  .tn-contact__list li { font-size: 17px }
}

/* 782px (wp admin bar) */
@media (max-width: 782px) {
  body.admin-bar .sub-header { top: 46px }
}

/* 768px */
@media (max-width: 768px) {
  .view_pc, .biew_pc { display: none  !important }
  .view_sp, .biew_sp { display: block !important }

  /* FV Team Copy Band */
  .fv-team-copy {
    display: block; position: absolute; left: 50%; bottom: 14%;
    transform: translateX(-50%) rotate(-12deg); width: 78%; text-align: center;
    pointer-events: none; z-index: 6; padding: 18px 0 16px;
  }
  .fv-team-copy::before {
    content: ""; position: absolute; top: 0; bottom: 0; left: 50%; transform: translateX(-50%);
    width: 140vw; background: #c8aa43; z-index: -1;
    clip-path: inset(0 100% 0 0); -webkit-clip-path: inset(0 100% 0 0);
  }
  .fv-team-small,
  .fv-team-name { display: block; opacity: 1; clip-path: inset(0 100% 0 0); -webkit-clip-path: inset(0 100% 0 0) }
  .fv-team-small { font-size: 14px; line-height: 1; letter-spacing: .18em; margin: 0 0 4px; color: #fff }
  .fv-team-name  { font-size: 50px; line-height: .95; font-weight: 900; letter-spacing: .02em; color: #fff }

  .is-ready .fv-team-copy::before { animation: fvBandWipeFromRight .7s cubic-bezier(.22,.8,.22,1) .55s forwards }
  .is-ready .fv-team-small        { animation: fvTextWipeFromRight .55s cubic-bezier(.22,.8,.22,1) .95s forwards }
  .is-ready .fv-team-name         { animation: fvTextWipeFromRight .75s cubic-bezier(.22,.8,.22,1) 1.08s forwards }

  /* Shop */
  .shop        { flex-direction: column }
  .shop-items  { margin: 20px 0 }
  .shop-player { position: static; margin-top: 30px }

  /* Slider */
  .section-slider { overflow: hidden }
  .slider-wrap,
  .slider-wrap--full,
  .tn-slider,
  .tn-slider__viewport { width: 100%; overflow: visible }
  .tn-slider__track { display: flex; align-items: center; gap: 0; padding: 16px 0 }
  .tn-slide { flex: 0 0 84%; width: 84%; height: auto; display: flex; justify-content: center; align-items: center; box-sizing: border-box; padding: 0 6px; border: none; box-shadow: none; border-radius: 0; background: transparent }
  .tn-slide img { display: block; width: 100%; height: 200px; margin: 0 auto; border-radius: 14px; object-fit: cover; border: 3px solid var(--gold); box-shadow: 0 4px 20px rgba(5,34,91,.12) }

  /* Schedule */
  .section-schedule .section-head  { justify-content: center }
  .section-schedule .section-title { display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: 20px }
  .section-schedule .schedule-embed iframe { height: 380px }

  .tn-games__head    { padding-top: 32px }
  .tn-games__boardInner { padding: 0 }
  .tn-games__boardInner p { margin-bottom: 0 }
  .tn-games__board   { min-height: auto }
  .tn-games__right   { background: rgba(255,255,255,.8); padding: 20px }
  .section-instagram { background: #acd8ff }

  /* Sub Header */
  .sub-header__inner    { min-height: 74px }
  .sub-header__brand img{ width: 54px }
  .sub-header__toggle   { width: 46px; height: 46px }
  .sub-header__toggle span { width: 20px }
  .sub-drawer           { width: min(88vw,320px) }
  .sub-drawer__inner    { padding: 96px 24px 24px; gap: 16px }
  .sub-drawer__inner a  { font-size: 16px }

  /* Contact */
  .contact-kv { padding: 108px 0 56px }
  .contact-kv__inner    { grid-template-columns: 1fr; gap: 24px }
  .contact-kv__content  { text-align: center }
  .contact-kv__eyebrow  { font-size: 12px; letter-spacing: .14em; margin-bottom: 12px }
  .contact-kv__title    { font-size: 48px }
  .contact-kv__lead     { max-width: none; font-size: 14px; line-height: 1.8; margin-top: 14px }
  .contact-kv__photo::before { inset: auto -10px -10px 10px; border-radius: 20px }
  .contact-kv__photo img     { border-radius: 16px }
  .contact-form-section { padding: 40px 0 72px }
  .contact-form-wrap    { padding: 24px 18px; border-radius: 18px }
  .contact-section-title{ font-size: 30px }
  .contact-form-head__sub { font-size: 13px }
  .contact-form__grid   { grid-template-columns: 1fr; gap: 18px; margin-top: 22px }
  .contact-form-section .form-group--full { grid-column: auto }
  .contact-form-box input,
  .contact-form-box textarea,
  .contact-form-box select { font-size: 16px; padding: 14px }
  .contact-form-box textarea { min-height: 160px }
  .contact-submit-btn { width: 100%; min-width: 0; padding: 15px 20px !important }
  .contact-note       { padding: 0 0 72px }
  .contact-note__box  { padding: 18px 16px; border-radius: 16px; font-size: 14px }

  /* Team */
  .team-kv { padding: 108px 0 56px }
  .team-kv__inner   { grid-template-columns: 1fr; gap: 24px }
  .team-kv__content { text-align: center }
  .team-kv__eyebrow { font-size: 12px; letter-spacing: .14em; margin-bottom: 12px }
  .team-kv__title   { font-size: 56px }
  .team-kv__lead    { max-width: none; font-size: 14px; line-height: 1.8; margin-top: 14px }
  .team-kv__photo::before { inset: auto -10px -10px 10px; border-radius: 20px }
  .team-kv__photo img     { border-radius: 16px }
  .team-section-title { font-size: 30px }
  .team-pillars       { grid-template-columns: 1fr }
  .team-vision-quote  { padding: 28px 24px }
  .team-vision-quote__text { font-size: 15px }
  .team-info-row      { grid-template-columns: 90px 1fr }
  .team-timeline      { padding-left: 20px }
  .team-tl-item       { padding-left: 28px }
  .team-tl-event      { font-size: 15px }

  /* Player Archive */
  .player-kv { padding: 108px 0 52px }
  .player-kv__eyebrow { font-size: 12px; letter-spacing: .14em; margin-bottom: 12px }
  .player-kv__title   { font-size: 56px }
  .player-kv__lead    { font-size: 13px; margin-top: 12px }
  .player-kv__diamond { width: 260px; height: 260px; bottom: -80px; right: -5% }
  .staff-section,
  .player-list-section { padding: 52px 0 64px }
  .staff-grid  { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px }
  .player-section-title { font-size: 26px }
  .player-list-section .player-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px }
  .player-list-section .player-card__name { font-size: 13px }
  .player-card__company { font-size: 10px }
  .player-card__dob     { font-size: 10px }
  .player-card__sns-btn { width: 28px; height: 28px }
  .player-card__sns-btn svg { width: 13px; height: 13px }

  /* Sponsor */
  .sponsor-kv { padding: 108px 0 52px }
  .sponsor-kv__eyebrow { font-size: 12px; letter-spacing: .14em; margin-bottom: 12px }
  .sponsor-kv__title   { font-size: 52px }
  .sponsor-kv__lead    { font-size: 13px; margin-top: 12px }
  .sponsor-list-section { padding: 48px 0 64px }
  .sponsor-grid       { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px }
  .sponsor-grid--top  { grid-template-columns: repeat(1,minmax(0,1fr)); gap: 16px }
  .sponsor-grid--ouen { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px }
  .sponsor-rank-heading { margin-bottom: 24px }
  .sponsor-rank-heading__title { font-size: 11px; padding: 6px 20px }
  .sponsor-card { padding: 24px 16px; min-height: 110px }
  .sponsor-card__logo img { max-height: 60px }
  .sponsor-cta-box { flex-direction: column; text-align: center; padding: 28px 24px; gap: 20px }
  .sponsor-cta-box__text { font-size: 14px }

  /* News Archive */
  .news-kv { padding: 108px 0 52px }
  .news-kv__title { font-size: 48px }
  .news-list-section { padding: 48px 0 64px }
  .news-list__link { gap: 12px; padding: 16px 20px; flex-wrap: wrap }
  .news-list__date  { font-size: 12px; width: 100% }
  .news-list__title { font-size: 14px }

  /* News Single */
  .news-single-kv { padding: 108px 0 48px }
  .news-single-kv__title { font-size: 20px }
  .news-single-section { padding: 40px 0 64px }
  .news-single-content  { padding: 28px 24px; font-size: 14px }
  .news-single-nav__inner { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto }
  .news-single-nav__archive { grid-column: 1/3; flex-direction: row; border-top: 1px solid rgba(5,34,91,.06); border-left: none; border-right: none; padding: 16px }
  .news-single-nav__item--next { border-left: 1px solid rgba(5,34,91,.06) }
  .news-single-nav__item  { padding: 16px 18px }
  .news-single-nav__label { font-size: 12px }

  /* Game */
  .game-kv { padding: 108px 0 52px }
  .game-kv__title { font-size: 48px }
  .game-kv__lead  { font-size: 13px }
  .game-list-section,
  .game-scoreboard-section { padding: 48px 0 64px }
  .game-tabs { gap: 6px }
  .game-tab  { font-size: 13px; padding: 8px 16px }
  .game-summary { gap: 10px; padding: 16px 20px }
  .game-summary__num { font-size: 28px }
  .game-table { font-size: 13px }
  .game-table__td { padding: 12px 10px }
  .game-table__th { padding: 12px 10px }
  .game-table__td--venue { display: none }
  .game-table__th--venue { display: none }
  .game-scoreboard { padding: 24px 20px; border-radius: 16px }
  .game-scoreboard__score { gap: 12px }
  .game-scoreboard__team  { min-width: 90px }
  .game-scoreboard__team-name { font-size: 12px }
  .game-scoreboard__info  { flex-direction: column; gap: 10px }
  .game-single-nav        { flex-direction: column; align-items: flex-start }
  .game-single-nav__pager { flex-wrap: wrap }
}

/* 767px */
@media (max-width: 767px) {
  .section-sponsor   { padding: 68px 0 80px }
  .tn-sponsor__title { font-size: 30px; text-underline-offset: 14px }
  .tn-sponsor__logos { max-width: 100% }
  .tn-sponsor__cta   { margin-top: 22px }
  .tn-sponsor__cta .tn-btn { min-width: min(92vw,320px) }
}

/* 600px */
@media (max-width: 600px) {
  .section-banner--nexusplus { padding: 26px 0 }
  .nexusplus-banner img { width: 94% }
  .news-head__title { gap: 12px }
  .news-title-en    { font-size: 26px }
  .section-schedule .schedule-embed iframe { height: 380px }
}

/* 560px */
@media (max-width: 560px) {
  .news-grid { grid-template-columns: 1fr }
  .tn-yt     { display: flex; gap: 14px; overflow-x: auto; padding-bottom: 10px; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch }
  .tn-yt__card { flex: 0 0 78%; scroll-snap-align: start }
  .tn-yt::-webkit-scrollbar { height: 6px }
  .tn-yt::-webkit-scrollbar-thumb { background: rgba(0,0,0,.2); border-radius: 99px }
  .tn-yt::-webkit-scrollbar-track { background: transparent }

  .tn-contact { padding: 52px 0 60px; background-position: center center }
  .tn-contact__panel { padding: 22px 18px 26px }
  .tn-contact__title { font-size: 30px; text-underline-offset: 10px }
  .tn-contact__lead  { font-size: 15px; line-height: 1.8 }
  .tn-contact__list  { margin-bottom: 18px }
  .tn-contact__list li { font-size: 16px; line-height: 1.8 }
  .tn-contact__cta .tn-btn { min-width: min(92vw,320px) }
}

/* 520px */
@media (max-width: 520px) {
  .fv-bg { background: #fff url("../img/kvbg_sp.png") center 20%/cover no-repeat }
  .news-thumb img { aspect-ratio: 16/9 }
  .section      { padding: 21px 0 }
  .section-title{ font-size: 24px }
  .news-cta     { justify-content: center }
  .menu         { gap: 12px }
  .section-games    { background: #fff url("../img/game-bg.png") center 20%/cover no-repeat }
  .section-youtube,
  .section-instagram { background: #fff url("../img/contents-bg.png") center 20%/cover no-repeat }
  .section-shop { background: #eaf4fb }
  .tn-games__title  { font-size: 30px }
  .tn-games__sub    { font-size: 16px }
  .tn-games__asof   { font-size: 18px }
  .tn-games__num    { font-size: 72px }
  .tn-games__label  { font-size: 28px }
  .tn-btn           { min-width: 100% }
}

/* 480px */
@media (max-width: 480px) {
  .contact-kv { padding: 96px 0 48px }
  .contact-kv__title    { font-size: 40px }
  .contact-kv__eyebrow  { font-size: 11px; letter-spacing: .12em }
  .contact-kv__lead     { font-size: 13px }
  .contact-form-wrap    { padding: 20px 14px }
  .contact-section-title{ font-size: 26px }
  .contact-note__box    { padding: 16px 14px }
  .sub-header__inner    { min-height: 68px }
  .sub-header__brand img{ width: 48px }
  .sub-header__toggle   { width: 42px; height: 42px }
  .sub-header__toggle span { width: 18px }
}

/* =========================
   Keyframes (wipe)
========================= */
@keyframes fvBandWipeFromRight {
  from { clip-path: inset(0 100% 0 0); -webkit-clip-path: inset(0 100% 0 0) }
  to   { clip-path: inset(0 0 0 0);    -webkit-clip-path: inset(0 0 0 0) }
}
@keyframes fvTextWipeFromRight {
  from { clip-path: inset(0 100% 0 0); -webkit-clip-path: inset(0 100% 0 0) }
  to   { clip-path: inset(0 0 0 0);    -webkit-clip-path: inset(0 0 0 0) }
}

/* =========================
   Reduced motion
========================= */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto }
  .fv-menu { animation: none !important }
  .fv-main-logo_pc,
  .fv-main-logo_sp,
  .player { animation: none !important; opacity: 1 !important; transform: none !important }
  .btn, .news-card, .player-card, .menu a, .icon-btn { transition: none !important }
  .fv-team-copy::before,
  .fv-team-small,
  .fv-team-name { animation: none !important; clip-path: inset(0 0 0 0) !important; -webkit-clip-path: inset(0 0 0 0) !important }
}

/* ==================================================
   Player Single Page
================================================== */
.player-single-page { background: #f0f4f8 }

.player-detail-section { background: #eaf3fb; padding: 72px 0 100px }

.player-single__name {
  margin: 0 0 16px;
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 800;
  color: var(--text);
  line-height: 1.3;
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
}

.player-single__number {
  font-family: var(--font-number);
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 900;
  color: var(--blue);
  line-height: 1;
}

.player-single__bio {
  margin-top: 20px;
  font-size: 15px;
  line-height: 2;
  color: var(--text);
  border-top: 1px solid var(--line);
  padding-top: 20px;
}

@media (max-width: 768px) {
  .player-detail-section { padding: 48px 0 64px }
  .player-single__bio { font-size: 14px }
}
