/*
Theme Name: Kawagoe Wild Geese
Theme URI: https://www.instagram.com/kawagoe_wildgeese/
Author: KAWAGOE WILD GEESE
Description: 川越ワイルドギース公式サイト用オリジナルテーマ。管理画面の「チーム設定」から文言・写真・スポンサーを編集できます。
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: kwg
*/

/* =========================================================
   KAWAGOE WILD GEESE — Single-file LP
   Black × Gold emblem theme. Vanilla HTML/CSS/JS.
   ========================================================= */

:root{
  --black:        #0a0a0a;
  --black-2:      #111111;
  --black-3:      #181613;
  --panel:        #15130f;
  --gold:         #c9a227;
  --gold-bright:  #e8c860;
  --gold-deep:    #8c6f1e;
  --cream:        #f3ecd8;
  --white:        #f7f5ef;
  --red:          #c0202f;
  --text:         #e7e2d6;
  --text-mute:    #9c958456;
  --muted:        #8f897a;
  --line:         rgba(201,162,39,.22);
  --line-soft:    rgba(243,236,216,.10);
  --shadow:       0 24px 60px rgba(0,0,0,.55);
  --maxw:         1200px;
  --header-h:     76px;
  --ease:         cubic-bezier(.2,.6,.2,1);

  --ff-display:   "Oswald", "Noto Sans JP", sans-serif;
  --ff-body:      "Noto Sans JP", sans-serif;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; scroll-padding-top:var(--header-h); }
body{
  font-family:var(--ff-body);
  background:var(--black);
  color:var(--text);
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }

/* ---------- Reusable ---------- */
.container{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 24px; }

.section{ padding:108px 0; position:relative; }
.section--dark{ background:var(--black); }
.section--panel{ background:linear-gradient(180deg,#0d0c0a,#121009); }

.section-head{ text-align:center; margin-bottom:60px; }
.section-head__en{
  font-family:var(--ff-display); font-weight:700; font-size:clamp(46px,8vw,96px);
  line-height:.92; letter-spacing:.02em; text-transform:uppercase;
  color:transparent; -webkit-text-stroke:1px var(--gold-deep);
  opacity:.45;
}
.section-head__ja{
  font-family:var(--ff-display); font-weight:700;
  font-size:clamp(24px,4vw,38px); letter-spacing:.14em;
  color:var(--white); margin-top:-.5em; position:relative;
}
.section-head__ja::after{
  content:""; display:block; width:54px; height:3px; margin:18px auto 0;
  background:linear-gradient(90deg,var(--gold),var(--gold-bright));
}
.section-head--left{ text-align:left; }
.section-head--left .section-head__ja::after{ margin-left:0; }

.lead{ font-size:17px; color:var(--text); max-width:760px; }

.btn{
  display:inline-flex; align-items:center; gap:12px;
  font-family:var(--ff-display); font-weight:600; font-size:17px;
  letter-spacing:.08em; text-transform:uppercase;
  padding:18px 38px; border:0; cursor:pointer; position:relative;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.btn__arrow{ font-size:18px; transition:transform .25s var(--ease); }
.btn:hover .btn__arrow{ transform:translateX(5px); }
.btn--gold{
  background:linear-gradient(135deg,var(--gold-bright),var(--gold) 55%,var(--gold-deep));
  color:#1a1305; box-shadow:0 12px 30px rgba(201,162,39,.32);
}
.btn--gold:hover{ transform:translateY(-3px); box-shadow:0 18px 40px rgba(201,162,39,.45); }
.btn--ghost{
  background:transparent; color:var(--cream); border:1.5px solid var(--gold);
}
.btn--ghost:hover{ background:var(--gold); color:#1a1305; transform:translateY(-3px); }

/* Split button: 和文｜英語 横並び（元グラデのまま・距離をしっかり離す） */
.btn--split{ padding:0; gap:0; align-items:stretch; text-transform:none; overflow:hidden; white-space:nowrap; }
.btn--split .btn__ja{ display:inline-flex; align-items:center;
  font-family:var(--ff-display); font-weight:600; font-size:17px; letter-spacing:.06em;
  padding:18px 28px; }
.btn--split .btn__en{ display:inline-flex; align-items:center; gap:11px;
  font-family:var(--ff-display); font-weight:600; font-size:12px; letter-spacing:.26em;
  padding:18px 24px; }
/* gold variant — EN sits on a faintly inset panel, bevel divider */
.btn--gold.btn--split .btn__en{ color:#5a4710;
  border-left:1px solid rgba(26,19,5,.32); box-shadow:inset 1px 0 0 rgba(255,248,214,.45); }
/* ghost variant — EN in gold, thin gold divider */
.btn--ghost.btn--split .btn__en{ color:var(--gold); border-left:1px solid var(--line); }
.btn--ghost.btn--split:hover .btn__en{ color:#5a4710; border-color:rgba(26,19,5,.25); }

.eyebrow{
  font-family:var(--ff-display); font-weight:600; font-size:13px;
  letter-spacing:.32em; text-transform:uppercase; color:var(--gold);
  display:inline-flex; align-items:center; gap:12px;
}
.eyebrow::before{ content:""; width:30px; height:2px; background:var(--gold); }

/* =========================================================
   HEADER / NAV
   ========================================================= */
.header{
  position:fixed; top:0; left:0; right:0; height:var(--header-h); z-index:100;
  display:flex; align-items:center;
  background:rgba(8,8,8,.55); backdrop-filter:blur(2px);
  transition:background .3s var(--ease), box-shadow .3s var(--ease), backdrop-filter .3s var(--ease);
}
.header.is-scrolled{
  background:rgba(8,8,8,.92); backdrop-filter:blur(14px);
  box-shadow:0 1px 0 var(--line), 0 10px 30px rgba(0,0,0,.4);
}
.header__inner{
  width:100%; max-width:var(--maxw); margin:0 auto; padding:0 24px;
  display:flex; align-items:center; justify-content:space-between;
}
.header__brand{ display:flex; align-items:center; gap:13px; flex-shrink:0; white-space:nowrap; }
.header__logo{ width:48px; height:48px; flex:0 0 auto; min-width:48px; object-fit:contain;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.6)); }
.header__brand-text{ display:flex; flex-direction:column; line-height:1.05; }
.header__brand-en{
  font-family:var(--ff-display); font-weight:700; font-size:17px;
  letter-spacing:.06em; color:var(--white); text-transform:uppercase;
}
.header__brand-ja{ font-size:10.5px; letter-spacing:.22em; color:var(--gold);
  text-align:center; }
@media (max-width:900px){.header__logo{width:56px;height:56px;min-width:56px}.header__brand{gap:11px}.header__brand-en{font-size:16px;letter-spacing:.05em;-webkit-text-stroke:.4px currentColor}.header__brand-ja{font-size:10px;font-weight:500}}


.nav{ display:flex; align-items:center; gap:6px; }
.nav__link{
  font-weight:700; font-size:14px; letter-spacing:.04em; white-space:nowrap;
  padding:10px 15px; color:var(--text); position:relative;
  transition:color .2s var(--ease);
}
.nav__link::after{
  content:""; position:absolute; left:15px; right:15px; bottom:4px; height:2px;
  background:var(--gold); transform:scaleX(0); transform-origin:left;
  transition:transform .25s var(--ease);
}
.nav__link:hover{ color:var(--gold-bright); }
.nav__link:hover::after{ transform:scaleX(1); }

.nav__actions{ display:flex; align-items:center; gap:14px; margin-left:8px; }
.nav__ig{
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; border:1px solid var(--line);
  color:var(--cream); transition:all .25s var(--ease);
}
.nav__ig:hover{ color:var(--gold-bright); border-color:var(--gold); transform:translateY(-2px); }
.nav__ig svg{ width:19px; height:19px; }
.nav__cta{
  font-family:var(--ff-display); font-weight:600; font-size:14px;
  letter-spacing:.06em; text-transform:uppercase; white-space:nowrap;
  padding:11px 20px; color:#1a1305;
  background:linear-gradient(135deg,var(--gold-bright),var(--gold-deep));
  transition:transform .2s var(--ease);
}
.nav__cta:hover{ transform:translateY(-2px); }

.burger{
  display:none; width:46px; height:46px; border:1px solid var(--line);
  background:transparent; cursor:pointer; position:relative; z-index:120;
}
.burger span{
  position:absolute; left:50%; top:50%; width:22px; height:2px; background:var(--cream);
  transform:translate(-50%,-50%); transition:all .3s var(--ease);
}
.burger span:nth-child(1){ transform:translate(-50%,-7px); }
.burger span:nth-child(3){ transform:translate(-50%,5px); }
.burger.is-open span:nth-child(1){ transform:translate(-50%,-50%) rotate(45deg); }
.burger.is-open span:nth-child(2){ opacity:0; }
.burger.is-open span:nth-child(3){ transform:translate(-50%,-50%) rotate(-45deg); }

/* Mobile drawer */
.drawer{
  position:fixed; inset:0; z-index:110; background:rgba(6,6,6,.97);
  backdrop-filter:blur(8px); display:flex; flex-direction:column;
  justify-content:center; padding:0 32px;
  opacity:0; pointer-events:none; transition:opacity .3s var(--ease);
}
.drawer.is-open{ opacity:1; pointer-events:auto; }
.drawer__link{
  font-family:var(--ff-display); font-weight:600; font-size:30px;
  letter-spacing:.05em; padding:18px 0; color:var(--cream);
  border-bottom:1px solid var(--line-soft); display:flex;
  align-items:baseline; gap:16px; transform:translateY(16px); opacity:0;
}
.drawer.is-open .drawer__link{ transform:translateY(0); opacity:1;
  transition:transform .4s var(--ease), opacity .4s var(--ease); }
.drawer.is-open .drawer__link:nth-child(1){ transition-delay:.05s; }
.drawer.is-open .drawer__link:nth-child(2){ transition-delay:.10s; }
.drawer.is-open .drawer__link:nth-child(3){ transition-delay:.15s; }
.drawer.is-open .drawer__link:nth-child(4){ transition-delay:.20s; }
.drawer.is-open .drawer__link:nth-child(5){ transition-delay:.25s; }
.drawer.is-open .drawer__link:nth-child(6){ transition-delay:.30s; }
.drawer.is-open .drawer__link:nth-child(7){ transition-delay:.35s; }
.drawer.is-open .drawer__link:nth-child(8){ transition-delay:.40s; }
.drawer__num{ font-size:14px; color:var(--gold); letter-spacing:.1em; }
.drawer__cta{ margin-top:34px; align-self:flex-start; }

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:center;
  padding:var(--header-h) 0 60px; overflow:hidden;
}
.hero__bg{ position:absolute; inset:0; z-index:0; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; object-position:center 42%;
  filter:grayscale(.3) contrast(1.05) brightness(.62); }
.hero__bg::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(8,8,8,.55) 0%, rgba(8,8,8,.25) 35%, rgba(8,8,8,.78) 78%, var(--black) 100%),
    radial-gradient(120% 80% at 20% 30%, rgba(201,162,39,.14), transparent 55%);
}
.hero__bg::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:repeating-linear-gradient(135deg, rgba(0,0,0,.18) 0 2px, transparent 2px 7px);
  opacity:.35;
}
.hero__inner{ position:relative; z-index:2; width:100%; max-width:var(--maxw);
  margin:0 auto; padding:0 24px; display:flex; align-items:center; gap:48px; }
.hero__text{ flex:1 1 auto; min-width:0; }
.hero__emblem{ flex:0 0 auto; width:clamp(190px,22vw,300px); align-self:center;
  filter:drop-shadow(0 8px 28px rgba(0,0,0,.7));
  animation:floaty 5s ease-in-out infinite; }
@media (max-width:900px){
  .hero__emblem{ display:none; }
}
@keyframes floaty{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-9px); } }
.hero__eyebrow{ margin-bottom:20px; }
.hero__title{
  font-family:var(--ff-display); font-weight:700; text-transform:uppercase;
  font-size:clamp(54px,12vw,150px); line-height:.86; letter-spacing:.01em;
  color:var(--white);
  -webkit-text-stroke:2px rgba(0,0,0,.9); paint-order:stroke fill;
  filter:drop-shadow(0 6px 16px rgba(0,0,0,.6));
}
.hero__title .gold{
  background:linear-gradient(180deg,var(--gold-bright) 10%,var(--gold) 50%,var(--gold-deep));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero__ja{ font-size:clamp(13px,1.7vw,16px); font-weight:500; letter-spacing:.3em;
  color:var(--muted); margin-top:14px; }
.hero__catch{ font-size:clamp(16px,2.2vw,20px); color:var(--text); margin-top:26px;
  max-width:620px; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:16px; margin-top:40px; }
.hero__scroll{
  position:absolute; bottom:28px; left:50%; transform:translateX(-50%);
  z-index:2; font-family:var(--ff-display); font-size:11px; letter-spacing:.3em;
  text-transform:uppercase; color:var(--muted); display:flex; flex-direction:column;
  align-items:center; gap:10px;
}
.hero__scroll::after{ content:""; width:1px; height:42px;
  background:linear-gradient(var(--gold),transparent); animation:scrolldn 1.8s infinite; }
@keyframes scrolldn{ 0%{ transform:scaleY(0); transform-origin:top; }
  45%{ transform:scaleY(1); transform-origin:top; }
  55%{ transform:scaleY(1); transform-origin:bottom; }
  100%{ transform:scaleY(0); transform-origin:bottom; } }

/* Stats strip under hero */
.stats{ background:linear-gradient(90deg,#13100a,#1a160d,#13100a);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.stats__grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.stats__item{ padding:34px 16px; text-align:center; border-right:1px solid var(--line-soft); }
.stats__item:last-child{ border-right:0; }
.stats__num{ font-family:var(--ff-display); font-weight:700; font-size:clamp(34px,5vw,52px);
  line-height:1; color:var(--gold-bright); }
.stats__label{ font-size:12.5px; letter-spacing:.14em; color:var(--muted); margin-top:8px; }

/* =========================================================
   ABOUT
   ========================================================= */
.about__grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; }
.about__philosophy{
  font-family:var(--ff-display); font-weight:600; font-size:clamp(26px,4vw,40px);
  line-height:1.45; color:var(--white); letter-spacing:.02em; margin-bottom:26px;
}
.about__philosophy .gold{ color:var(--gold-bright); }
.about__text{ font-size:16px; color:var(--text); margin-bottom:18px; }
.about__note{
  margin-top:30px; padding:22px 26px; background:var(--panel);
  border-left:3px solid var(--gold); font-size:15px; color:var(--cream);
}
.about__visual{ position:relative; }
.about__photo{ width:100%; height:auto; display:block;
  border:1px solid var(--line); box-shadow:var(--shadow); }
.about__badge{
  position:absolute; right:-18px; bottom:-22px; background:var(--black);
  border:1px solid var(--gold); padding:18px 24px; text-align:center;
  box-shadow:var(--shadow);
}
.about__badge-num{ font-family:var(--ff-display); font-weight:700; font-size:42px;
  line-height:1; color:var(--gold-bright); }
.about__badge-label{ font-size:11px; letter-spacing:.16em; color:var(--muted); margin-top:4px; }
.about__facts{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line); margin-top:34px; }
.about__fact{ background:var(--black); padding:20px 22px; }
.about__fact-k{ font-family:var(--ff-display); font-size:12px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--gold); }
.about__fact-v{ font-size:15px; color:var(--cream); margin-top:5px; }

/* =========================================================
   TEAMS
   ========================================================= */
.teams__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.team-card{
  position:relative; background:var(--panel); border:1px solid var(--line-soft);
  padding:34px 26px 30px; overflow:hidden;
  transition:transform .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.team-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg,var(--gold-deep),var(--gold-bright),var(--gold-deep));
  transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease);
}
.team-card:hover{ transform:translateY(-8px); border-color:var(--line);
  box-shadow:var(--shadow); }
.team-card:hover::before{ transform:scaleX(1); }
.team-card__rank{ font-family:var(--ff-display); font-weight:700; font-size:13px;
  letter-spacing:.18em; color:var(--gold); text-transform:uppercase; }
.team-card__name{
  font-family:var(--ff-display); font-weight:700; font-size:30px; line-height:1.1;
  color:var(--white); margin:10px 0 4px; letter-spacing:.04em;
}
.team-card__area{ display:inline-block; font-size:12px; letter-spacing:.1em;
  color:#1a1305; background:var(--gold); padding:3px 11px; margin-bottom:16px;
  font-weight:700; }
.team-card__area--ghost{ background:transparent; color:var(--gold);
  border:1px solid var(--gold); }
.team-card__desc{ font-size:14px; color:var(--text); line-height:1.85; }
.team-card__goal{ margin-top:18px; padding-top:16px; border-top:1px dashed var(--line);
  font-size:13px; color:var(--muted); }
.team-card__goal b{ color:var(--gold-bright); font-weight:700; display:block;
  font-size:11px; letter-spacing:.16em; margin-bottom:4px; }

/* =========================================================
   OB / 実績
   ========================================================= */
.ob__grid{ display:grid; grid-template-columns:1fr 1.15fr; gap:48px; align-items:stretch; }
.ob-feature{
  background:linear-gradient(160deg,#1b1305,#0c0a06); border:1px solid var(--gold);
  padding:40px; position:relative; overflow:hidden;
}
.ob-feature::after{
  content:"OB"; position:absolute; right:-10px; bottom:-30px;
  font-family:var(--ff-display); font-weight:700; font-size:170px; line-height:1;
  color:rgba(201,162,39,.07);
}
.ob-feature__tag{ font-family:var(--ff-display); letter-spacing:.18em; font-size:13px;
  color:var(--gold); text-transform:uppercase; }
.ob-feature__head{ display:flex; align-items:center; gap:22px; margin:22px 0 20px;
  position:relative; z-index:1; }
.ob-avatar{
  width:96px; height:96px; flex:0 0 96px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#2a2110,#0c0a05);
  border:2px solid var(--gold); display:flex; align-items:center; justify-content:center;
  font-family:var(--ff-display); font-weight:700; font-size:32px; color:var(--gold-bright);
  letter-spacing:.04em;
}
.ob-feature__name{ font-family:var(--ff-display); font-weight:700; font-size:34px;
  color:var(--white); line-height:1.1; }
.ob-feature__team{ font-size:14px; color:var(--gold-bright); margin-top:4px;
  letter-spacing:.06em; }
.ob-feature__bio{ font-size:15px; color:var(--text); position:relative; z-index:1; }
.ob-feature__pro{ display:inline-block; margin-top:18px; font-family:var(--ff-display);
  font-size:12px; letter-spacing:.16em; color:#1a1305; background:var(--gold-bright);
  padding:5px 14px; text-transform:uppercase; position:relative; z-index:1; }

.records{ display:flex; flex-direction:column; }
.records__title{ font-family:var(--ff-display); font-weight:600; font-size:20px;
  letter-spacing:.08em; color:var(--white); margin-bottom:18px; }
.record-list{ border-top:1px solid var(--line); flex:1; }
.record-item{
  display:grid; grid-template-columns:84px 1fr auto; gap:18px; align-items:center;
  padding:18px 4px; border-bottom:1px solid var(--line-soft);
}
.record-item__year{ font-family:var(--ff-display); font-weight:700; font-size:16px;
  color:var(--gold); }
.record-item__title{ font-size:14.5px; color:var(--cream); }
.record-item__rank{ font-family:var(--ff-display); font-size:13px; letter-spacing:.08em;
  color:#1a1305; background:var(--gold); padding:3px 10px; font-weight:700; white-space:nowrap; }
.record-item__rank--ghost{ background:transparent; color:var(--muted);
  border:1px solid var(--line); }
.ob__note{ grid-column:1/-1; margin-top:30px; font-size:12.5px; color:var(--muted);
  display:flex; align-items:center; gap:8px; }
.ob__note::before{ content:"※"; color:var(--gold); }

/* =========================================================
   JOIN
   ========================================================= */
.join{ position:relative; }
.join__grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.join-card{ background:var(--panel); border:1px solid var(--line-soft); padding:34px 32px; }
.join-card__title{ font-family:var(--ff-display); font-weight:600; font-size:21px;
  letter-spacing:.06em; color:var(--gold-bright); margin-bottom:22px;
  display:flex; align-items:center; gap:12px; }
.join-card__title span{ font-size:13px; color:var(--muted); letter-spacing:.1em; }
.fee-row{ display:flex; justify-content:space-between; align-items:baseline; gap:16px;
  padding:14px 0; border-bottom:1px dashed var(--line); }
.fee-row__label{ font-size:15px; color:var(--cream); }
.fee-row__val{ font-family:var(--ff-display); font-weight:600; font-size:19px;
  color:var(--gold-bright); white-space:nowrap; }
.fee-row__val small{ font-family:var(--ff-body); font-size:12px; color:var(--muted);
  font-weight:400; }
.note-list li{ position:relative; padding:9px 0 9px 24px; font-size:14px; color:var(--text);
  border-bottom:1px solid var(--line-soft); }
.note-list li::before{ content:""; position:absolute; left:2px; top:18px;
  width:7px; height:7px; background:var(--gold); transform:rotate(45deg); }
.note-list li:last-child{ border-bottom:0; }
.join__cta{ margin-top:42px; text-align:center; padding:44px 24px;
  background:linear-gradient(135deg,#1c1407,#0c0a06); border:1px solid var(--gold);
  position:relative; overflow:hidden; }
.join__cta-title{ font-family:var(--ff-display); font-weight:700;
  font-size:clamp(26px,4vw,40px); color:var(--white); letter-spacing:.04em; }
.join__cta-text{ font-size:15px; color:var(--cream); margin:12px auto 28px; max-width:560px; }

/* =========================================================
   NEWS
   ========================================================= */
.news__head{ display:flex; align-items:flex-end; justify-content:space-between;
  flex-wrap:wrap; gap:20px; margin-bottom:42px; }
.news__sns{ display:flex; gap:12px; flex-wrap:wrap; }
.news-list{ border-top:1px solid var(--line); }
.news-item{
  display:grid; grid-template-columns:140px 116px 1fr auto; gap:24px; align-items:center;
  padding:24px 8px; border-bottom:1px solid var(--line-soft);
  transition:background .25s var(--ease), padding-left .25s var(--ease);
}
.news-item:hover{ background:rgba(201,162,39,.05); padding-left:18px; }
.news-item__date{ font-family:var(--ff-display); font-weight:500; font-size:15px;
  color:var(--gold); letter-spacing:.04em; }
.news-item__cat{ font-size:11px; letter-spacing:.12em; text-align:center;
  padding:4px 0; border:1px solid var(--line); color:var(--cream); }
.news-item__cat--event{ color:var(--gold-bright); border-color:var(--gold); }
.news-item__cat--game{ color:#fff; background:var(--red); border-color:var(--red); }
.news-item__title{ font-size:15.5px; color:var(--text); }
.news-item__arrow{ color:var(--muted); transition:transform .25s var(--ease), color .25s; }
.news-item:hover .news-item__arrow{ color:var(--gold-bright); transform:translateX(6px); }

/* =========================================================
   FOOTER
   ========================================================= */
.footer{ background:#060606; border-top:1px solid var(--line); padding:64px 0 28px; }
.footer__top{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px;
  padding-bottom:44px; border-bottom:1px solid var(--line-soft); }
.footer__brand{ display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.footer__brand img{ width:64px; }
.footer__brand-en{ font-family:var(--ff-display); font-weight:700; font-size:20px;
  color:var(--white); letter-spacing:.05em; }
.footer__brand-ja{ font-size:12px; color:var(--gold); letter-spacing:.16em; }
.footer__desc{ font-size:13.5px; color:var(--muted); max-width:340px; }
.footer__col-title{ font-family:var(--ff-display); font-size:13px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--gold); margin-bottom:16px; }
.footer__col a{ display:block; font-size:14px; color:var(--text); padding:6px 0;
  transition:color .2s var(--ease); }
.footer__col a:hover{ color:var(--gold-bright); }
.footer__ig{ display:inline-flex; align-items:center; gap:10px; margin-top:6px;
  font-size:14px; color:var(--cream); }
.footer__ig svg{ width:22px; height:22px; }
.footer__ig:hover{ color:var(--gold-bright); }
.footer__bottom{ display:flex; justify-content:center; flex-wrap:wrap; gap:14px;
  padding-top:26px; font-size:12px; color:var(--muted); letter-spacing:.04em; text-align:center; }

/* =========================================================
   Reveal animation
   ========================================================= */
.reveal{ opacity:0; transform:translateY(30px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible{ opacity:1; transform:none; }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1024px){
  .about__grid{ grid-template-columns:1fr; gap:46px; }
  .teams__grid{ grid-template-columns:repeat(2,1fr); }
  .ob__grid{ grid-template-columns:1fr; }
}
@media (max-width:1100px){
  .nav, .nav__actions{ display:none; }
  .burger{ display:block; }
}
@media (max-width:860px){
  .nav, .nav__actions{ display:none; }
  .burger{ display:block; }
  .section{ padding:72px 0; }
  .join__grid{ grid-template-columns:1fr; }
  .footer__top{ grid-template-columns:1fr; gap:30px; }
}
@media (max-width:600px){
  .stats__grid{ grid-template-columns:repeat(2,1fr); }
  .stats__item:nth-child(2){ border-right:0; }
  .teams__grid{ grid-template-columns:1fr; }
  .about__facts{ grid-template-columns:1fr; }
  .news-item{ grid-template-columns:1fr auto; gap:6px 14px; padding:18px 4px; }
  .news-item__cat{ grid-row:1; grid-column:2; justify-self:end; padding:3px 10px; }
  .news-item__date{ grid-row:1; grid-column:1; }
  .news-item__title{ grid-row:2; grid-column:1/-1; }
  .news-item__arrow{ display:none; }
  .news-item:hover{ padding-left:8px; }
  .about__badge{ right:12px; bottom:-18px; }
  .record-item{ grid-template-columns:64px 1fr; gap:10px; }
  .record-item__rank{ grid-column:2; justify-self:start; margin-top:2px; }
}/* ========== LOADER ========== */
#loader{
  position:fixed; inset:0; z-index:9999; background:var(--black);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:30px; transition:opacity .6s var(--ease), visibility .6s var(--ease);
}
#loader.is-done{ opacity:0; visibility:hidden; }
.loader__logo{
  width:clamp(150px,28vw,230px); height:auto;
  filter:drop-shadow(0 8px 30px rgba(201,162,39,.35));
  animation:loaderPop .9s var(--ease) both;
}
@keyframes loaderPop{
  0%{ opacity:0; transform:scale(.82) translateY(10px); }
  60%{ opacity:1; }
  100%{ opacity:1; transform:scale(1) translateY(0); }
}
.loader__bar{ width:clamp(140px,30vw,200px); height:2px; background:var(--line-soft);
  position:relative; overflow:hidden; border-radius:2px; }
.loader__bar::after{ content:""; position:absolute; left:0; top:0; height:100%; width:40%;
  background:linear-gradient(90deg,transparent,var(--gold-bright),transparent);
  animation:loaderSlide 1.1s var(--ease) infinite; }
@keyframes loaderSlide{ 0%{ transform:translateX(-120%);} 100%{ transform:translateX(360%);} }
.loader__text{ font-family:var(--ff-display); font-size:12px; letter-spacing:.4em;
  color:var(--gold); text-transform:uppercase; }
@media (prefers-reduced-motion:reduce){
  .loader__logo, .loader__bar::after{ animation:none; }
}

/* ========== GALLERY (horizontal auto-scroll + lightbox) ========== */
.gallery{ overflow:hidden; }
.gallery__marquee{
  position:relative; width:100%;
  -webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.gallery__track{
  display:flex; gap:18px; width:max-content;
  animation:galleryScroll 60s linear infinite;
}
.gallery__marquee:hover .gallery__track{ animation-play-state:paused; }
@keyframes galleryScroll{ 0%{ transform:translateX(0);} 100%{ transform:translateX(-50%);} }
.gallery__item{
  position:relative; flex:0 0 auto; width:360px; height:240px; overflow:hidden;
  background:var(--panel,#15130f); border:1px solid var(--line-soft); cursor:pointer;
}
.gallery__item img{ width:100%; height:100%; object-fit:cover;
  transition:transform .7s var(--ease); filter:grayscale(.12) contrast(1.03); }
.gallery__item:hover img{ transform:scale(1.06); }
.gallery__item::after{
  content:""; position:absolute; right:12px; bottom:12px; width:30px; height:30px;
  background:rgba(10,10,10,.7); border:1px solid var(--line);
  background-image:linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor);
  background-size:11px 1.5px,1.5px 11px; background-position:center; background-repeat:no-repeat;
  color:var(--gold-bright); opacity:0; transition:opacity .25s var(--ease);
}
.gallery__item:hover::after{ opacity:1; }
.gallery__ph{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:10px; color:var(--muted);
  background:
    repeating-linear-gradient(45deg,rgba(201,162,39,.04) 0 14px,transparent 14px 28px),
    linear-gradient(180deg,#16140f,#0f0d09);
}
.gallery__ph svg{ width:30px; height:30px; stroke:var(--gold-deep); opacity:.7; }
.gallery__ph span{ font-family:var(--ff-display); font-size:11px; letter-spacing:.22em;
  text-transform:uppercase; }
.gallery__note{ text-align:center; margin-top:26px; font-size:13px; color:var(--muted);
  letter-spacing:.04em; }
@media (max-width:780px){
  .gallery__item{ width:260px; height:175px; }
}
@media (prefers-reduced-motion:reduce){ .gallery__track{ animation:none; } }

/* lightbox */
.lightbox{ position:fixed; inset:0; z-index:9998; display:flex; align-items:center;
  justify-content:center; padding:5vw; background:rgba(6,6,6,.92);
  opacity:0; visibility:hidden; transition:opacity .3s var(--ease), visibility .3s var(--ease); }
.lightbox.is-open{ opacity:1; visibility:visible; }
.lightbox__img{ max-width:100%; max-height:100%; object-fit:contain;
  border:1px solid var(--line); box-shadow:0 30px 80px rgba(0,0,0,.6);
  transform:scale(.96); transition:transform .3s var(--ease); }
.lightbox.is-open .lightbox__img{ transform:scale(1); }
.lightbox__ph{ width:min(80vw,820px); height:min(70vh,540px); display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:14px; color:var(--muted);
  background:repeating-linear-gradient(45deg,rgba(201,162,39,.05) 0 16px,transparent 16px 32px),
    linear-gradient(180deg,#16140f,#0f0d09); border:1px solid var(--line);
  transform:scale(.96); transition:transform .3s var(--ease); }
.lightbox.is-open .lightbox__ph{ transform:scale(1); }
.lightbox__ph svg{ width:46px; height:46px; stroke:var(--gold-deep); }
.lightbox__ph span{ font-family:var(--ff-display); letter-spacing:.24em; font-size:13px; }
.lightbox__close{ position:absolute; top:22px; right:26px; width:46px; height:46px;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  background:transparent; border:1px solid var(--line); color:var(--cream); font-size:22px;
  transition:border-color .2s var(--ease), color .2s var(--ease); }
.lightbox__close:hover{ border-color:var(--gold); color:var(--gold-bright); }

/* ========== ALUMNI / 卒団生の進路先 ========== */
.alumni__groups{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.alumni-group{padding:28px 30px;background:linear-gradient(180deg,#15130f,#100e0a);border:1px solid var(--line);position:relative}
.alumni-group::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--gold-bright),var(--gold-deep))}
.alumni-group__head{display:flex;align-items:baseline;gap:14px;padding-bottom:16px;margin-bottom:18px;border-bottom:1px solid var(--line-soft)}
.alumni-group__en{font-family:var(--ff-display);font-weight:700;font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.alumni-group__ja{font-weight:700;font-size:22px;color:var(--white)}
.alumni-group__n{margin-left:auto;font-size:13px;color:var(--muted)}
.alumni-group__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.alumni-group__list li{padding:8px 16px;border:1px solid var(--line);color:var(--white);font-weight:700;font-size:15px;line-height:1.4;white-space:nowrap}
.alumni-group__list li.alumni-etc{border:0;padding:8px 4px;color:var(--gold);font-family:var(--ff-display);letter-spacing:.12em;font-weight:500}
@media (max-width:900px){.alumni__groups{grid-template-columns:1fr}}
.alumni{ margin-top:18px; }
.alumni__intro{ text-align:center; max-width:680px; margin:0 auto 40px; color:var(--text);
  font-size:15.5px; }
.alumni__grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:14px;
}
.alumni-card{
  display:flex; align-items:center; gap:16px; padding:20px 22px;
  background:linear-gradient(180deg,#15130f,#100e0a); border:1px solid var(--line);
  position:relative; overflow:hidden;
}
.alumni-card::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:linear-gradient(180deg,var(--gold-bright),var(--gold-deep)); }
.alumni-card__no{ font-family:var(--ff-display); font-weight:700; font-size:22px;
  color:var(--gold); min-width:34px; }
.alumni-card__school{ font-family:var(--ff-body); font-weight:700; font-size:16px;
  color:var(--white); line-height:1.4; }
.alumni-card__tag{ font-size:11.5px; color:var(--muted); letter-spacing:.06em; margin-top:2px; }
.alumni__count{ text-align:center; margin-top:34px; font-size:13px; color:var(--muted); }
@media (max-width:780px){ .alumni__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .alumni__grid{ grid-template-columns:1fr; } }

/* ========== SPONSORS ========== */
.sponsors__intro{ text-align:center; max-width:680px; margin:0 auto 44px; color:var(--text);
  font-size:15.5px; }
/* static grid — looks balanced at 3, grows naturally to 4, 5+ */
.sponsor-grid{ display:flex; flex-wrap:wrap; justify-content:center; gap:22px; }
.sponsor-card{
  flex:0 1 260px; max-width:300px; height:140px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(180deg,#171510,#0f0d09); border:1px solid var(--line);
  transition:border-color .25s var(--ease), transform .25s var(--ease); position:relative;
}
.sponsor-card:hover{ border-color:var(--gold); transform:translateY(-4px); }
.sponsor-card:has(img){ background:#fff; }
.sponsor-card img{ max-width:74%; max-height:58%; object-fit:contain; }
.sponsor-card__ph{ display:flex; flex-direction:column; align-items:center; gap:6px; color:var(--muted); }
.sponsor-card__ph b{ font-family:var(--ff-display); font-size:15px; letter-spacing:.12em;
  color:var(--cream); font-weight:600; }
.sponsor-card__ph span{ font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; }
.sponsors__recruit{
  margin-top:50px; text-align:center; padding:46px 28px;
  background:linear-gradient(135deg,rgba(201,162,39,.07),transparent);
  border:1px solid var(--line);
}
.sponsors__recruit-title{ font-family:var(--ff-display); font-weight:700;
  font-size:clamp(22px,3vw,30px); letter-spacing:.1em; color:var(--white); }
.sponsors__recruit-text{ max-width:600px; margin:14px auto 26px; color:var(--text); font-size:15px; }
.sponsors__recruit-quiet{ text-align:center; margin-top:46px; font-size:13px; color:var(--muted);
  letter-spacing:.02em; }
.sponsors__recruit-quiet a{ color:var(--gold); border-bottom:1px solid var(--line);
  padding-bottom:1px; transition:color .2s var(--ease), border-color .2s var(--ease); }
.sponsors__recruit-quiet a:hover{ color:var(--gold-bright); border-color:var(--gold); }

/* ========== CONTACT ========== */
.contact__simple{ max-width:760px; margin:0 auto; text-align:center; }
.contact__lead{ font-size:15.5px; color:var(--text); margin-bottom:34px; }
.contact__info{ display:flex; flex-direction:column; gap:18px; }
.contact__info--row{ flex-direction:row; flex-wrap:wrap; justify-content:center; gap:14px 38px;
  margin-bottom:38px; }
.contact__info-item{ display:flex; gap:14px; align-items:flex-start; text-align:left; }
.contact__info-item svg{ width:20px; height:20px; stroke:var(--gold); flex:0 0 20px; margin-top:3px; }
.contact__info-label{ font-family:var(--ff-display); font-size:11px; letter-spacing:.2em;
  color:var(--gold); text-transform:uppercase; }
.contact__info-val{ color:var(--white); font-size:15px; }
.contact__note{ font-size:12.5px; color:var(--muted); margin-top:18px; }
@media (max-width:560px){
  .contact__info--row{ flex-direction:column; align-items:center; }
}

/* ========== WordPress additions ========== */
.admin-bar .header{ top:32px; }
@media (max-width:782px){ .admin-bar .header{ top:46px; } }
.news-item{ position:relative; }
.news-item__title a{ color:inherit; text-decoration:none; }
.news-item__title a::after{ content:""; position:absolute; inset:0; }
.news__more{ margin-top:26px; text-align:center; }
.sponsor-card__name{ position:absolute; left:-9999px; }
.wp-page{ padding-top:calc(var(--header-h) + 70px); min-height:70vh; }
.post-article{ max-width:820px; margin:0 auto; }
.post-article__meta{ display:flex; gap:14px; align-items:center; margin-bottom:18px; color:var(--muted); font-size:14px; }
.post-article__title{ font-size:clamp(24px,4vw,36px); line-height:1.4; color:var(--white); margin-bottom:30px; }
.post-article__body{ color:var(--text); line-height:2; font-size:16px; }
.post-article__body p{ margin:0 0 1.4em; }
.post-article__body img{ max-width:100%; height:auto; }
.post-article__body a{ color:var(--gold-bright); text-decoration:underline; }
.post-article__back{ margin-top:48px; }
.pagination{ margin-top:36px; display:flex; justify-content:center; gap:10px; }
.pagination .page-numbers{ padding:8px 14px; border:1px solid var(--line); color:var(--text); }
.pagination .current{ background:var(--gold); color:#1a1305; border-color:var(--gold); }

.skip-link{position:absolute;left:-9999px;top:0;z-index:10000;background:var(--gold);color:#1a1305;padding:10px 16px;font-weight:700}
.skip-link:focus{left:10px;top:10px}
:focus-visible{outline:2px solid var(--gold-bright);outline-offset:3px}

@media (max-width:420px){
  .btn--split .btn__ja{ font-size:15px; padding:16px 16px; }
  .btn--split .btn__en{ font-size:11px; letter-spacing:.18em; padding:16px 14px; gap:8px; }
}

.post-article__body h2{font-size:20px;color:var(--white);margin:2em 0 .7em;padding-bottom:.4em;border-bottom:1px solid var(--line)}
.post-article__body ul,.post-article__body ol{margin:0 0 1.4em;padding-left:1.4em}
.post-article__body li{margin-bottom:.4em}
