@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@600&display=swap');

:root{
  --blue:#1B2C7A;
  --blue2:#2d4fa8;
  --blue-pale:#eef1fa;
  --blue-light:#dde2f5;
  --yellow:#ffcc00;
  --yellow2:#ffdd44;
  --navy:#1F2937;
  --champions-navy:#1B2C7A;
  --gray:#64748b;
  --gray-light:#f1f5f9;
  --white:#ffffff;
  --border:#e2e8f0;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Noto Sans JP',sans-serif;background:#f8fafc;color:var(--navy);}

/* ─── ページヒーロータイトル：Noto Serif JP（style.css h1ルール）を上書き ─── */
.pg-hero-title,
.about-page__title,
.about-section__title{font-family:'Noto Sans JP',sans-serif !important;}

/* ─── aboutページ：ラベルアンダーラインをテキスト幅に ─── */
.about-page__label{display:inline-block !important;}
.about-page__label::after{width:100% !important;}

/* ─── Astra組み込みの「上へ戻る」ボタンを非表示（cc-footer.php の sk-ft__top を使用） ─── */
#ast-scroll-top{display:none !important;}

/* ─── FULL WIDTH: Astraの幅制限を解除 ─── */
.ast-container,
.ast-grid-right-container,
.site-content,
.site-content .ast-container,
#content,
#content .ast-container,
.content-area,
#primary,
#primary .ast-container,
.entry-content,
.post-content,
.page-content,
.ast-article-single,
.ast-article-post,
.ast-separate-container .ast-article-post,
.ast-page-builder-template,
.ast-page-builder-template .ast-container,
.wp-block-group,
.wp-block-group__inner-container,
.alignfull,
.wp-block-html,
.wp-block-html .wp-block{
  max-width:100% !important;
  width:100% !important;
  padding-left:0 !important;
  padding-right:0 !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
/* Astraのページレイアウト余白を削除 */
.ast-separate-container #primary,
.ast-plain-container #primary{
  padding:0 !important;
}
.ast-separate-container .ast-article-post .entry-content,
.entry-content .wp-block-html{
  padding:0 !important;
}

/* ─── ASTRA HEADER: 完全非表示（カスタムHTMLヘッダーを使用） ─── */
#masthead,
.site-header,
.main-header-bar,
.ast-above-header-bar,
.ast-below-header-bar,
.ast-primary-header-bar,
.ast-main-header-wrap{display:none !important;}

/* メインヘッダー */
.site-header,.main-header-bar,.ast-primary-header-bar{
  background:var(--white) !important;
  border-bottom:4px solid transparent !important;
  border-image:linear-gradient(90deg,#0d1840,#1B2C7A,#4169d4,#1B2C7A,#0d1840) 1 !important;
  box-shadow:0 2px 8px rgba(0,119,204,0.08) !important;
  padding:0 40px !important;
  min-height:68px !important;
}
.ast-container,.main-header-bar-navigation{max-width:100% !important;}

/* ロゴ */
.site-logo img,.custom-logo{height:42px !important;width:auto !important;}
.site-title a,.ast-site-title{
  font-size:15px !important;font-weight:700 !important;
  color:var(--navy) !important;text-decoration:none !important;
}

/* ナビゲーション */
.main-navigation .menu-item a,
#site-navigation .menu-item a,
.ast-nav-menu > li > a{
  font-size:13px !important;font-weight:500 !important;
  color:var(--gray) !important;
  text-decoration:none !important;
}
.main-navigation .menu-item a:hover,
#site-navigation .menu-item a:hover,
.ast-nav-menu > li > a:hover{color:var(--blue) !important;}

/* ─── HEADER (standalone / cc-header.php) ─── */
header{
  background:#fff !important;
  border:none !important;
  padding:0 40px !important;
  height:90px !important;min-height:90px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  box-shadow:0 2px 8px rgba(0,0,0,.08) !important;
  position:sticky !important;top:0;z-index:100;
  box-sizing:border-box !important;
  border-bottom:4px solid transparent !important;
  border-image:linear-gradient(90deg,#e53935,#ffcc00,#43a047,#1565c0) 1 !important;
}
.logo{display:flex !important;align-items:center !important;gap:14px;text-decoration:none;flex-shrink:0;}
.logo img,.logo-img{height:62px !important;width:auto !important;display:block !important;}
.logo-mark{
  width:42px;height:42px;
  background:var(--blue);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:900;color:var(--white);letter-spacing:-.5px;
  flex-shrink:0;
}
.logo-text{line-height:1.2;}
.logo-sub{font-size:9px;color:var(--blue);letter-spacing:.15em;font-weight:500;}
.logo-main{font-size:15px;font-weight:700;color:var(--navy);}
nav{display:flex !important;align-items:center !important;gap:4px;align-self:stretch;}
nav a{
  display:flex !important;align-items:center !important;
  padding:0 14px;
  font-size:13px;font-weight:600;color:var(--navy);
  text-decoration:none;
  letter-spacing:.04em;height:100%;
  transition:color .22s,transform .2s,letter-spacing .2s;
}
nav a:hover{color:var(--blue);transform:scale(1.08);letter-spacing:.06em;}
#globalNav{margin-left:auto !important;}

/* ─── HERO ─── */
.hero{
  background-color:#fff;
  background-image:url('http://shigakusoccer.jp/wp1/wp-content/uploads/2026/06/hiro2.png');
  background-position:center top;
  background-size:100% auto;
  background-repeat:no-repeat;
  display:flex;
  flex-direction:column;
  overflow:hidden;position:relative;
}
.hero::before{
  content:'';position:absolute;inset:0;
  background-image:none;
}
.hero::after{content:'';display:none;}
/* 画像エリア：50vwの高さ確保、テキストは上部に */
.hero-left{
  position:relative;z-index:2;
  min-height:50vw;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding:5vw 40px 0;
}
.hero-tag{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.35);
  border-radius:100px;padding:6px 16px;margin-bottom:22px;
}
.hero-tag-dot{width:6px;height:6px;border-radius:50%;background:var(--yellow);animation:pulse 1.8s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.2;}}
.hero-tag span{font-size:11px;font-weight:600;color:rgba(255,255,255,.9);letter-spacing:.12em;}
.hero-h1{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(28px,4vw,56px);
  font-weight:800;
  color:var(--blue);
  text-shadow:0 1px 8px rgba(255,255,255,0.98),0 0 32px rgba(255,255,255,0.8);
  line-height:1.3;letter-spacing:.04em;
  margin-bottom:16px;
}
.hero-h1-en{
  display:block;
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(11px,1.1vw,15px);
  font-weight:500;
  color:#e86500;
  text-shadow:0 1px 6px rgba(255,255,255,0.95);
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-top:12px;
  line-height:1.8;
}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px;}
/* 過去大会実績バナーボタン */
.btn-banner{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--blue);
  color:#fff;
  font-family:'Noto Sans JP',sans-serif;
  font-size:15px;font-weight:700;
  padding:14px 32px;
  border-radius:4px;
  text-decoration:none;
  border-left:5px solid #e86500;
  box-shadow:0 4px 16px rgba(0,0,0,0.25);
  transition:background .2s,transform .15s;
  letter-spacing:.05em;
}
.btn-banner:hover{background:#0f1f5c;transform:translateY(-2px);}
.btn-primary{
  background:var(--blue);color:#fff;
  padding:14px 32px;border-radius:4px;
  font-size:14px;font-weight:700;text-decoration:none;
  display:inline-flex;align-items:center;gap:8px;
  transition:background .2s,transform .15s;
}
.btn-primary:hover{background:#005faa;transform:translateY(-2px);}
.btn-ghost{
  border:2px solid rgba(255,255,255,.5);color:var(--white);
  padding:13px 28px;border-radius:4px;
  font-size:14px;font-weight:500;text-decoration:none;
  display:inline-flex;align-items:center;gap:8px;
  transition:border-color .2s,background .2s;
}
.btn-ghost:hover{border-color:var(--white);background:rgba(255,255,255,.1);}

/* Hero right: 画像下に配置 */
.hero-right{
  position:relative;z-index:2;
  background:#fff;
  border-top:3px solid var(--blue);
  padding:0 40px;
}
.hero-players{
  width:100%;
  flex:1;
  display:flex;align-items:flex-end;
  overflow:hidden;
}
.hero-players svg{
  width:100%;display:block;
  filter:drop-shadow(0 6px 18px rgba(0,0,80,.25));
}
/* Stats card */
.hero-stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  padding:28px 0;
  background:transparent;
  box-shadow:none;
  border-radius:0;
}
/* .stat は上書き済み（hero-stats内で定義） */
.stat-n{
  font-size:40px;font-weight:900;
  color:var(--blue);
  line-height:1;display:block;letter-spacing:-1px;
}
.stat-u{font-size:16px;color:var(--blue);font-weight:700;}
.stat-l{font-size:10px;color:var(--gray);letter-spacing:.1em;margin-top:4px;display:block;}
.stat-divider{display:none;}
/* 各statの間に縦区切り線 */
.stat{text-align:center;border-right:1px solid var(--border);padding:0 16px;}
.stat:last-child{border-right:none;}

/* ─── COMMON ─── */
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:28px;flex-wrap:wrap;gap:12px;}
.sec-label{font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--blue);text-transform:uppercase;margin-bottom:6px;display:flex;align-items:center;gap:8px;}
.sec-label::before{content:'';width:18px;height:2px;background:linear-gradient(90deg,#142060,#4169d4);border-radius:2px;}
.sec-title{
  font-size:22px;font-weight:700;
  background:linear-gradient(135deg,#0d1840 0%,#1B2C7A 60%,#2d4fa8 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.sec-more{font-size:12px;color:var(--blue);text-decoration:none;font-weight:600;letter-spacing:.06em;border-bottom:1px solid rgba(0,119,204,.3);padding-bottom:1px;}
/* ─── NEWS フィルターリンク ─── */
.news-filter-links{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.nfl-all{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:#fff;background:#475569;text-decoration:none;letter-spacing:.04em;padding:4px 11px;border-radius:20px;transition:opacity .18s;}
.nfl-all:hover{opacity:1;color:#fff !important;}
.nfl-cat{display:inline-flex;align-items:center;font-size:11px;font-weight:700;text-decoration:none;padding:4px 11px;border-radius:20px;letter-spacing:.04em;transition:all .18s;}
.nfl-cat:hover{opacity:1;color:#fff !important;}
.nfl-final  {background:#1F2937;color:#fff;}
.nfl-tokyo  {background:#22a855;color:#fff;}
.nfl-kanagawa{background:#0c7fe0;color:#fff;}
.nfl-chiba  {background:#d97706;color:#fff;}
.nfl-saitama{background:#dc2626;color:#fff;}
@media(max-width:700px){
  .news-filter-links{gap:6px;}
  .nfl-cat{font-size:10px;padding:3px 9px;}
  .nfl-all{font-size:11px;padding:4px 10px;}
}

/* ─── BANNERS ─── */
.banners-section{background:var(--white);padding:56px 40px;}
.banners-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.banner{
  border-radius:8px;overflow:hidden;
  border:1px solid var(--border);
  cursor:pointer;transition:transform .2s,box-shadow .2s;
  background:var(--white);
}
.banner:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,119,204,.15);}
.banner-img{
  height:180px;display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
}
.bn-new{
  position:absolute;top:12px;left:12px;
  background:var(--yellow);color:var(--navy);
  font-size:10px;font-weight:800;letter-spacing:.1em;
  padding:3px 10px;border-radius:100px;
  z-index:2;
}
.banner-icon{
  width:72px;height:72px;
  border:2px solid rgba(255,255,255,.4);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto;
  backdrop-filter:blur(4px);
  background:rgba(255,255,255,.12);
  position:relative;z-index:2;
}
.banner-icon i{font-size:30px;color:#fff;}
.banner-img::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to top, rgba(10,30,60,0.82) 0%, rgba(10,30,60,0.45) 50%, rgba(10,30,60,0.2) 100%);
}
.banner-body{padding:16px 18px 20px;}
.banner-body h3{font-size:15px;font-weight:700;color:var(--navy);line-height:1.4;margin-bottom:6px;}
.banner-body p{font-size:12px;color:var(--gray);line-height:1.7;}
.banner-link{margin-top:12px;font-size:12px;font-weight:600;color:var(--blue);display:flex;align-items:center;gap:4px;}

/* ─── NEWS ─── */
.news-section{background:var(--gray-light);padding:56px 40px;}
.news-inner{max-width:1280px;margin:0 auto;}
.news-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;}
.news-featured{
  background:var(--white);border-radius:8px;
  border:1px solid var(--border);overflow:hidden;
  cursor:pointer;transition:box-shadow .2s;
}
.news-featured:hover{box-shadow:0 6px 20px rgba(0,119,204,.12);}
.nf-img{
  height:200px;
  background:linear-gradient(150deg,#001a77 0%,#0055cc 30%,#0099ee 65%,#33bbff 85%,#88ddff 100%);
  display:flex;align-items:center;justify-content:center;
  position:relative;
}
.nf-img::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to top, rgba(10,30,60,0.85) 0%, rgba(10,30,60,0.4) 60%, transparent 100%);
}
.nf-img-icon{font-size:56px;opacity:.8;position:relative;z-index:1;}
.nf-tag{
  position:absolute;bottom:14px;left:14px;z-index:1;
  background:var(--yellow);color:var(--navy);
  font-size:10px;font-weight:800;letter-spacing:.1em;
  padding:3px 10px;border-radius:100px;
}
.nf-body{padding:20px 22px;}
.nf-date{font-size:11px;color:var(--gray);margin-bottom:8px;letter-spacing:.05em;}
.nf-title{font-size:17px;font-weight:700;color:var(--navy);line-height:1.5;margin-bottom:8px;}
.nf-body p{font-size:13px;color:var(--gray);line-height:1.8;}
.news-list-wrap{display:flex;flex-direction:column;gap:3px;}
.news-item{
  background:var(--white);border-radius:6px;
  border:1px solid var(--border);
  padding:16px 18px;
  display:flex;align-items:flex-start;gap:14px;
  cursor:pointer;transition:border-color .2s,box-shadow .2s;
  text-decoration:none;color:inherit;
}
.news-item:hover{border-color:var(--blue2);box-shadow:0 2px 10px rgba(0,119,204,.1);}
.news-cat{
  flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.08em;
  padding:3px 9px;border-radius:100px;margin-top:2px;white-space:nowrap;
}
/* 汎用 */
.cat-new{background:#fef9e0;color:#996600;}
.cat-result{background:#e6f7ee;color:#15803d;}
.cat-event{background:#ffe8e8;color:#dc2626;}
.cat-info{background:#FFEDD5;color:#C2410C;}
/* 決勝大会 — Champions Navy */
.cat-final{background:#1B2C7A;color:#fff;letter-spacing:.1em;}
/* 地域大会 */
.cat-tokyo{background:#2AA84A;color:#fff;}         /* 東京: Tokyo Green */
.cat-kanagawa{background:#1E6BD6;color:#fff;}      /* 神奈川: Kanagawa Blue */
.cat-saitama{background:#E53935;color:#fff;}       /* 埼玉: Saitama Red */
.cat-chiba{background:#F2C200;color:#1F2937;}      /* 千葉: Chiba Yellow */
.ni-date{font-size:11px;color:var(--gray);margin-bottom:4px;}
.ni-title{font-size:13px;font-weight:500;color:var(--navy);line-height:1.55;}

/* ─── DECORATIVE ILLUSTRATIONS ─── */
.illust{position:absolute;pointer-events:none;z-index:1;}
.illust-ball-section{
  position:absolute;right:-50px;bottom:-50px;
  width:280px;height:280px;
  opacity:.04;color:var(--blue);
  pointer-events:none;z-index:0;
}
.illust-ball-sm{
  position:absolute;left:-40px;top:50%;transform:translateY(-50%);
  width:200px;height:200px;
  opacity:.04;color:var(--blue);
  pointer-events:none;z-index:0;
}

/* ─── ARCHIVE ─── */
.archive-section{background:var(--gray-light);padding:56px 40px;}
.archive-inner{max-width:1280px;margin:0 auto;}
/* awards row */
.awards-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:20px;}
.award-card{
  background:var(--white);border:1px solid var(--border);border-radius:6px;
  padding:10px 12px;display:flex;align-items:center;gap:10px;
}
.award-card.first{border-color:#d4af37;background:#fffdf0;}
.award-num{
  font-size:20px;font-weight:900;min-width:26px;
  color:var(--gray);line-height:1;
}
.award-card.first .award-num{color:#c8960c;}
.award-info{}
.award-lbl{font-size:10px;color:var(--gray);margin-bottom:1px;}
.award-school{font-size:12px;font-weight:700;color:var(--navy);line-height:1.35;}
/* match results — 4-col grid */
.matches-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-top:16px;
}
.results-stage{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:8px;
  overflow:hidden;
}
.results-stage.final{
  border:2px solid #1B2C7A;
  box-shadow:0 6px 24px rgba(0,119,204,.22);
}
.results-stage.semi{
  border:2px solid #1a4d8f;
  box-shadow:0 4px 14px rgba(26,77,143,.14);
}
.results-stage.qf{
  border:1.5px solid #5b8db8;
  box-shadow:0 2px 8px rgba(91,141,184,.1);
}
.stage-title{
  font-size:10px;font-weight:700;letter-spacing:.14em;
  color:var(--white);
  padding:7px 14px;
}
.results-stage.final .stage-title{
  background:#1B2C7A;
  letter-spacing:.12em;
}
.results-stage.semi .stage-title{
  background:#1a4d8f;
}
.results-stage.qf .stage-title{
  background:#5b8db8;
}
.results-stage.final .match-row{
  border-top-color:rgba(0,119,204,.14);
  padding:9px 14px;
}
.results-stage.final .match-score{
  font-size:14px;
}
.results-stage.final .match-home,
.results-stage.final .match-away{
  font-size:13px;
  text-align:center;
  padding:0;
}
.results-stage.semi .match-home,
.results-stage.semi .match-away{
  text-align:center;
  padding:0;
}
.results-stage.final,
.results-stage.semi{
  display:flex;flex-direction:column;
}
.results-stage.final .match-list,
.results-stage.semi .match-list{
  flex:1;display:flex;flex-direction:column;justify-content:center;
}
.match-list{display:flex;flex-direction:column;}
.match-row{
  padding:7px 12px;
  display:grid;
  grid-template-columns:1fr 76px 1fr;
  align-items:center;
  font-size:12px;
  border-top:1px solid var(--border);
  gap:0;
}
.match-row:first-child{border-top:none;}
.match-home{text-align:right;color:var(--navy);padding-right:8px;}
.match-score{
  text-align:center;font-weight:700;color:var(--navy);
  line-height:1.2;white-space:nowrap;
}
.match-score .pk{font-size:9px;color:var(--blue);display:block;font-weight:400;}
.match-away{color:var(--navy);padding-left:8px;}
.match-winner{font-weight:700;color:var(--blue);}
.archive-links{
  margin-top:20px;
  display:flex;gap:12px;align-items:stretch;
  justify-content:center;
}
.archive-link{
  text-decoration:none;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:13px 28px;
  border-radius:6px;
  font-size:13px;font-weight:700;
  cursor:pointer;
  transition:all .2s;
  white-space:nowrap;
  flex:1;max-width:280px;
}
.archive-link.link-primary{
  background:linear-gradient(135deg,#142060,#1B2C7A);
  color:#fff;
  box-shadow:0 3px 14px rgba(27,44,122,.28);
}
.archive-link.link-primary:hover{
  box-shadow:0 6px 22px rgba(27,44,122,.38);
  transform:translateY(-1px);
}
.archive-link.link-ghost{
  background:#fff;
  color:var(--blue);
  border:1.5px solid rgba(0,119,204,.35);
}
.archive-link.link-ghost:hover{
  background:var(--blue-pale);
  border-color:var(--blue);
  transform:translateY(-1px);
}
.archive-link i{font-size:11px;}

/* ─── SPONSORS ─── */
.sponsors-section{background:var(--white);padding:56px 40px;}
.sponsors-inner{max-width:1280px;margin:0 auto;}
.sponsor-block{margin-bottom:48px;}
.sponsor-block:last-child{margin-bottom:0;}
/* tier header */
.sponsor-tier-head{text-align:center;margin-bottom:16px;}
.sponsor-tier-en{
  font-size:10px;font-weight:700;letter-spacing:.22em;color:var(--blue);
  text-transform:uppercase;
  display:flex;align-items:center;justify-content:center;gap:14px;
  margin-bottom:5px;
}
.sponsor-tier-en::before,.sponsor-tier-en::after{
  content:'';flex:1;height:1px;
  background:linear-gradient(90deg,transparent,rgba(0,119,204,.35));
}
.sponsor-tier-en::after{
  background:linear-gradient(90deg,rgba(0,119,204,.35),transparent);
}
.sponsor-tier-ja{
  font-size:17px;font-weight:700;
  background:linear-gradient(135deg,#0d1840 0%,#1B2C7A 60%,#2d4fa8 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  letter-spacing:.06em;
}
/* logo grids */
.sponsor-logos{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;}
.sponsor-logo{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:6px;
  display:flex;align-items:center;justify-content:center;
  transition:border-color .2s,box-shadow .2s;
  cursor:pointer;overflow:hidden;
}
.sponsor-logo:hover{border-color:var(--blue);box-shadow:0 4px 16px rgba(0,119,204,.1);}
/* 協賛校: 2列 wide */
.logo-school{width:calc(50% - 6px);max-width:460px;height:90px;}
/* 協賛企業: 4列 */
.logo-company{width:calc(25% - 9px);min-width:180px;height:72px;}
/* 協賛広告: 3列 portrait banner */
.logo-banner{width:calc(33.333% - 8px);min-width:220px;}
.logo-banner-inner{width:100%;aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;background:var(--gray-light);border-radius:4px;}
.sponsor-placeholder{
  font-size:12px;color:#aaa;font-weight:400;
  text-align:center;line-height:1.8;
  padding:0 16px;
}
.sponsor-placeholder strong{display:block;font-size:13px;color:var(--gray);font-weight:500;margin-bottom:2px;}
/* recruit CTA */
.sponsor-cta{
  margin-top:56px;
  padding:40px 48px;
  background:linear-gradient(135deg,rgba(0,60,160,.78) 0%,rgba(27,44,122,.72) 50%,rgba(0,130,220,.68) 100%);
  border-radius:14px;
  display:grid;grid-template-columns:1fr auto;
  align-items:center;gap:48px;
  position:relative;overflow:hidden;
  box-shadow:0 10px 40px rgba(0,60,180,.18);
}
.sponsor-cta-text{position:relative;z-index:1;}
.cta-illust{
  position:absolute;inset:0;
  width:100%;height:100%;
  pointer-events:none;overflow:visible;
}
.cta-eyebrow{
  font-size:9px;font-weight:700;letter-spacing:.28em;
  color:rgba(200,235,255,.85);text-transform:uppercase;
  margin-bottom:10px;
  display:flex;align-items:center;gap:10px;
}
.cta-eyebrow::before{
  content:'';width:24px;height:2px;
  background:linear-gradient(90deg,#99ddff,#cceeff);border-radius:2px;
}
.sponsor-cta-text h4{
  font-size:22px;font-weight:900;color:#fff;
  margin-bottom:8px;line-height:1.3;letter-spacing:.02em;
}
.sponsor-cta-text h4 em{
  font-style:normal;
  background:linear-gradient(90deg,#99ddff,#cceeff);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.sponsor-cta-text p{
  font-size:12px;color:rgba(255,255,255,.72);
  line-height:1.8;margin-bottom:20px;
}
.sponsor-cta-stats{display:flex;gap:0;align-items:center;}
.cta-stat{
  padding:0 24px 0 0;margin-right:24px;
  border-right:1px solid rgba(255,255,255,.18);
}
.cta-stat:last-child{border-right:none;margin-right:0;padding-right:0;}
.cta-stat .num{
  font-size:26px;font-weight:900;color:#fff;line-height:1;
}
.cta-stat .num span{font-size:14px;font-weight:700;color:#aaddff;}
.cta-stat .lbl{font-size:10px;color:rgba(255,255,255,.55);margin-top:4px;letter-spacing:.06em;}
.sponsor-cta-action{
  position:relative;z-index:1;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:12px;flex-shrink:0;
}
.sponsor-cta-btn{
  display:inline-block;
  background:linear-gradient(135deg,#fff 0%,#e8f4ff 100%);
  color:#142060;
  padding:14px 32px;border-radius:8px;
  font-size:14px;font-weight:800;text-decoration:none;
  white-space:nowrap;
  box-shadow:0 4px 20px rgba(0,0,0,.18);
  transition:all .2s;letter-spacing:.02em;text-align:center;
}
.sponsor-cta-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 28px rgba(0,0,0,.25);
}
.sponsor-cta-sub{
  font-size:10px;color:rgba(255,255,255,.5);
  letter-spacing:.06em;text-align:center;line-height:1.8;
}

/* ─── FOOTER ─── */
/* Astraデフォルトフッター非表示 */
#colophon,.site-footer,.ast-site-footer,.footer-widget-area,.ast-footer-copyright{display:none !important;}

footer{background:var(--navy);padding:48px 40px 24px;}
.footer-inner{max-width:1280px;margin:0 auto;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:24px;}
.footer-desc{font-size:12px;color:rgba(255,255,255,.35);margin-top:12px;line-height:1.9;font-weight:300;}
.footer-col h4{font-size:11px;font-weight:700;letter-spacing:.15em;color:var(--blue2);text-transform:uppercase;margin-bottom:12px;}
.footer-col a{display:block;font-size:12px;color:rgba(255,255,255,.4);text-decoration:none;margin-bottom:8px;transition:color .2s;}
.footer-col a:hover{color:var(--white);}
.footer-btm{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;}
.footer-btm p{font-size:11px;color:rgba(255,255,255,.2);}

/* ═══════════════════════════════════════════════════════
   SUBPAGE COMMON STYLES
   ═══════════════════════════════════════════════════════ */

/* Active nav link */
.nav-active{color:var(--blue) !important;font-weight:700 !important;}

/* Page Hero (サブページ用ヒーロー) */
.page-hero{
  background:linear-gradient(135deg,#0a1230 0%,#142060 50%,#142060 100%);
  padding:56px 40px 48px;
  position:relative;overflow:hidden;
}
.page-hero::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 70% 50%,rgba(0,170,238,.15) 0%,transparent 65%);
  pointer-events:none;
}
.page-hero-inner{max-width:1280px;margin:0 auto;position:relative;}
.page-breadcrumb{
  display:flex;align-items:center;gap:8px;
  font-size:12px;color:rgba(255,255,255,.5);margin-bottom:16px;
}
.page-breadcrumb a{color:rgba(255,255,255,.5);text-decoration:none;}
.page-breadcrumb a:hover{color:#fff;}
.page-hero .sec-label{color:rgba(255,255,255,.55);}
.page-hero .sec-label::before,.page-hero .sec-label::after{background:rgba(255,255,255,.25);}
.page-hero-title{
  font-size:36px;font-weight:900;color:#fff;
  letter-spacing:.04em;margin:8px 0 12px;
}
.page-hero-sub{font-size:14px;color:rgba(255,255,255,.65);}
/* 校章 ヒーロー左側白枠ボックス */
.hero-title-row{display:flex;align-items:center;gap:20px;margin-top:8px;}
.hero-crest-box{
  width:88px;height:88px;flex-shrink:0;
  border:2px solid rgba(255,255,255,0.55);
  border-radius:14px;
  background:rgba(255,255,255,0.92);
  display:flex;align-items:center;justify-content:center;
  padding:10px;
}
.hero-crest-box-img{width:100%;height:100%;object-fit:contain;display:block;}
.hero-title-text{display:flex;flex-direction:column;}
.hero-title-text .page-hero-title{margin:0 0 8px;}
.hero-title-text .page-hero-sub{margin:0;}
@media(max-width:480px){
  .hero-crest-box{width:64px;height:64px;border-radius:10px;padding:8px;}
  .hero-title-row{gap:14px;}
}

/* Page Main */
.page-main{background:#f8fafc;}

/* Page Section */
.page-section{padding:64px 40px;}
.page-section-alt{background:#fff;}
.page-section-inner{max-width:1280px;margin:0 auto;}
.section-lead{font-size:16px;color:var(--gray);margin-bottom:32px;}

/* sec-label in subpages */
.page-section .sec-label,.page-section-alt .sec-label{margin-bottom:8px;}
.page-section .sec-title,.page-section-alt .sec-title{margin-bottom:32px;}

/* ── 大会概要: Purpose ── */
.purpose-list{display:flex;flex-direction:column;gap:20px;}
.purpose-item{
  display:flex;gap:24px;align-items:flex-start;
  background:#fff;border:1px solid var(--border);
  border-radius:12px;padding:24px 28px;
  border-left:4px solid var(--blue);
}
.page-section-alt .purpose-item{background:var(--gray-light);}
.purpose-num{
  font-size:22px;font-weight:900;
  color:var(--blue);opacity:.3;line-height:1;
  flex-shrink:0;width:36px;
}
.purpose-item p{font-size:15px;line-height:1.8;color:var(--navy);}

/* ── 大会概要: Overview Table ── */
.overview-table-wrap{border-radius:12px;overflow:hidden;border:1px solid var(--border);}
.overview-table{width:100%;border-collapse:collapse;font-size:14px;}
.overview-table th{
  background:#f0f7ff;color:var(--navy);
  font-weight:700;padding:16px 20px;
  width:160px;vertical-align:top;
  border-bottom:1px solid var(--border);
  border-right:1px solid var(--border);
}
.overview-table td{
  padding:16px 20px;color:#334155;
  border-bottom:1px solid var(--border);
  line-height:1.7;
}
.overview-table tr:last-child th,
.overview-table tr:last-child td{border-bottom:none;}

/* ── 大会概要: Prefecture cards ── */
.pref-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:16px;margin-bottom:24px;
}
.pref-card{
  background:#fff;border:1px solid var(--border);
  border-radius:12px;padding:24px;text-align:center;
  border-top:4px solid var(--blue);
}
.page-section-alt .pref-card{background:var(--gray-light);}
.pref-name{font-size:13px;font-weight:600;color:var(--gray);margin-bottom:8px;}
.pref-name i{color:var(--blue);margin-right:4px;}
.pref-count{font-size:36px;font-weight:900;color:var(--blue);line-height:1;}
.pref-note{font-size:11px;color:var(--gray);margin-top:6px;}
.allocation-note{
  background:#f0f7ff;border:1px solid rgba(0,119,204,.15);
  border-radius:8px;padding:16px 20px;font-size:13px;
  color:var(--navy);line-height:1.7;
}
.allocation-note i{color:var(--blue);margin-right:6px;}

/* ── 大会概要: Format flow ── */
.format-flow{
  display:grid;grid-template-columns:1fr auto 1fr auto 1fr;
  gap:0;align-items:center;
}
.format-step{
  background:#fff;border:1px solid var(--border);
  border-radius:12px;padding:24px;
  border-top:4px solid var(--blue);
}
.page-section-alt .format-step{background:var(--gray-light);}
.format-step-num{
  font-size:10px;font-weight:700;letter-spacing:.15em;
  color:var(--blue);text-transform:uppercase;margin-bottom:6px;
}
.format-step-title{font-size:18px;font-weight:800;color:var(--navy);margin-bottom:10px;}
.format-step p{font-size:13px;color:var(--gray);line-height:1.7;}
.format-note{font-size:11px;color:var(--gray);margin-top:8px;}
.format-arrow{
  padding:0 16px;font-size:20px;
  color:rgba(0,119,204,.3);
}

/* ── 大会概要: Schedule ── */
.schedule-list{display:flex;flex-direction:column;gap:0;border-radius:12px;overflow:hidden;border:1px solid var(--border);}
.schedule-item{
  display:grid;grid-template-columns:160px 1fr;
  gap:0;border-bottom:1px solid var(--border);
}
.schedule-item:last-child{border-bottom:none;}
.schedule-label{
  background:#f0f7ff;font-size:13px;font-weight:700;
  color:var(--navy);padding:20px;
  display:flex;align-items:center;
  border-right:1px solid var(--border);
}
.schedule-detail{padding:20px;background:#fff;}
.page-section-alt .schedule-detail{background:var(--gray-light);}
.schedule-detail p{font-size:14px;color:#334155;line-height:1.9;}
.schedule-item-final .schedule-label{background:linear-gradient(135deg,#0a1230,#142060);color:#fff;}
.schedule-item-final .schedule-detail{background:#f0f7ff;}

/* ── 大会概要: Venue cards ── */
.venue-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.venue-card{
  background:#fff;border:1px solid var(--border);
  border-radius:12px;padding:20px;
  border-bottom:4px solid rgba(0,119,204,.2);
}
.page-section-alt .venue-card{background:var(--gray-light);}
.venue-card-main{
  border-bottom-color:var(--blue);
  background:linear-gradient(135deg,#f0f7ff,#e8f4ff);
}
.venue-badge{
  font-size:10px;font-weight:700;letter-spacing:.1em;
  color:var(--blue);text-transform:uppercase;
  margin-bottom:10px;
}
.venue-name{font-size:15px;font-weight:800;color:var(--navy);line-height:1.4;}
.venue-name span{font-size:13px;font-weight:600;color:var(--gray);}
.venue-note{font-size:11px;color:var(--gray);margin-top:8px;}

/* ═══════════════════════════════════════════════════════
   決勝大会情報・結果 STYLES
   ═══════════════════════════════════════════════════════ */

/* Champion banner */
.champion-banner{
  background:linear-gradient(135deg,#0a1230 0%,#142060 60%,#142060 100%);
  border-radius:16px;padding:40px;text-align:center;
  margin-bottom:32px;color:#fff;position:relative;overflow:hidden;
}
.champion-banner::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 50% 50%,rgba(255,204,0,.08) 0%,transparent 70%);
}
.champion-crown{font-size:36px;color:#ffcc00;margin-bottom:8px;}
.champion-label{font-size:11px;letter-spacing:.2em;color:rgba(255,255,255,.6);text-transform:uppercase;margin-bottom:10px;}
.champion-name{font-size:42px;font-weight:900;letter-spacing:.04em;margin-bottom:4px;}
.champion-pref{font-size:14px;color:rgba(255,255,255,.6);margin-bottom:16px;}
.champion-score{font-size:13px;color:rgba(255,255,255,.5);background:rgba(255,255,255,.06);display:inline-block;padding:6px 16px;border-radius:20px;}

/* Podium */
.podium-grid{
  display:grid;grid-template-columns:1fr 1.15fr 1fr;
  gap:16px;align-items:end;
}
.podium-card{
  border-radius:12px;padding:20px;text-align:center;
  border:1px solid var(--border);background:#fff;
}
.page-section-alt .podium-card{background:var(--gray-light);}
.podium-1{
  background:linear-gradient(135deg,#fffbeb,#fef3c7);
  border-color:rgba(234,179,8,.3);
  padding:28px 20px;
}
.podium-rank{font-size:12px;font-weight:700;color:var(--gray);margin-bottom:8px;}
.podium-1 .podium-rank{color:#b45309;}
.podium-1 .podium-rank i{color:#eab308;margin-right:4px;}
.podium-school{font-size:16px;font-weight:800;color:var(--navy);}
.podium-1 .podium-school{font-size:18px;color:#1a1a1a;}
.podium-pref{font-size:11px;color:var(--gray);margin-top:4px;}

/* Round blocks */
.round-block{margin-bottom:40px;}
.round-block:last-child{margin-bottom:0;}
.round-header{
  display:flex;align-items:center;gap:16px;
  margin-bottom:16px;flex-wrap:wrap;
}
.round-name{
  font-size:16px;font-weight:800;color:var(--navy);
  padding:6px 16px;background:var(--blue);color:#fff;
  border-radius:4px;
}
.round-date{font-size:12px;color:var(--gray);}
.round-date i{margin-right:4px;}
.round-note{
  font-size:12px;color:#b45309;background:#fef3c7;
  border-radius:6px;padding:8px 14px;margin-bottom:14px;
  display:inline-flex;align-items:center;gap:6px;
}

/* Match cards */
.matches-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.matches-grid-2{grid-template-columns:repeat(2,1fr);}
.match-card{
  background:#fff;border:1px solid var(--border);
  border-radius:10px;padding:16px;
  position:relative;
}
.page-section-alt .match-card{background:var(--gray-light);}
.match-final{
  border-color:rgba(234,179,8,.4);
  background:linear-gradient(135deg,#fffbeb,#fef9ec) !important;
}
.match-done{border-top:3px solid var(--blue);}
.match-final.match-done{border-top-color:#eab308;}
.match-time{
  font-size:10px;font-weight:700;letter-spacing:.1em;
  color:var(--blue);margin-bottom:10px;
  display:flex;align-items:center;gap:6px;
}
.match-label-3rd{
  font-size:9px;background:rgba(100,116,139,.1);
  color:var(--gray);padding:2px 6px;border-radius:3px;font-weight:600;
}
.match-label-final{
  font-size:9px;background:rgba(234,179,8,.15);
  color:#b45309;padding:2px 6px;border-radius:3px;font-weight:700;
}
.match-teams{display:flex;flex-direction:column;gap:8px;}
.match-team{
  display:flex;justify-content:space-between;align-items:center;
  font-size:13px;color:var(--navy);
}
.match-winner{font-weight:700;color:var(--blue);}
.match-vs{
  text-align:center;font-size:10px;font-weight:700;
  color:rgba(100,116,139,.5);letter-spacing:.1em;
}
.team-score{
  font-size:20px;font-weight:900;color:var(--navy);
  line-height:1;
}
.match-winner .team-score{color:var(--blue);}
.team-score small{
  display:block;font-size:9px;font-weight:600;
  color:var(--blue);opacity:.8;
}

/* Award table */
.award-table-wrap{border-radius:12px;overflow:hidden;border:1px solid var(--border);margin-bottom:24px;}
.award-table{width:100%;border-collapse:collapse;font-size:14px;}
.award-table td{padding:16px 20px;border-bottom:1px solid var(--border);}
.award-table tr:last-child td{border-bottom:none;}
.award-rank{font-weight:700;color:var(--gray);width:120px;}
.award-row-1 td{background:linear-gradient(90deg,#fffbeb,#fffef7);}
.award-row-1 .award-rank{color:#b45309;}
.award-row-1 .award-rank i{color:#eab308;margin-right:4px;}
.award-row-2 .award-rank{color:#475569;}
.award-row-3 .award-rank{color:#92400e;}
.award-school{font-weight:700;color:var(--navy);}
.award-pref{color:var(--gray);}
.results-nav{text-align:center;margin-top:8px;}

/* ═══════════════════════════════════════════════════════
   過去大会情報 STYLES
   ═══════════════════════════════════════════════════════ */

.history-table-wrap{border-radius:12px;overflow:hidden;border:1px solid var(--border);}
.history-table{width:100%;border-collapse:collapse;font-size:13px;}
.history-table thead tr{background:linear-gradient(135deg,#0a1230,#142060);}
.history-table thead th{
  color:rgba(255,255,255,.8);padding:14px 16px;
  font-size:11px;font-weight:700;letter-spacing:.1em;text-align:left;
}
.history-table tbody tr{border-bottom:1px solid var(--border);}
.history-table tbody tr:hover{background:#f8fafc;}
.history-table tbody td{padding:14px 16px;vertical-align:middle;}
.history-latest td{background:#f0f7ff !important;}
.history-latest:hover td{background:#e8f4ff !important;}
.col-num{font-size:12px;color:var(--gray);font-weight:600;width:70px;}
.col-year{font-weight:700;color:var(--navy);width:90px;}
.col-winner{font-weight:800;color:var(--navy);}
.col-winner i{color:#eab308;margin-right:4px;}
.pref-tag{
  font-size:10px;color:var(--blue);background:rgba(0,119,204,.08);
  padding:2px 6px;border-radius:3px;margin-left:6px;font-weight:600;
}

/* Record highlight */
.record-highlight{
  display:flex;gap:32px;align-items:center;
  background:linear-gradient(135deg,#0a1230 0%,#142060 100%);
  border-radius:16px;padding:36px 40px;color:#fff;margin-bottom:32px;
}
.record-num{
  font-size:80px;font-weight:900;
  color:#ffcc00;line-height:1;flex-shrink:0;
}
.record-title{font-size:22px;font-weight:800;margin-bottom:12px;}
.record-text p{font-size:13px;color:rgba(255,255,255,.7);line-height:1.8;}

/* Winners ranking bars */
.winners-ranking{display:flex;flex-direction:column;gap:12px;}
.rank-item{display:grid;grid-template-columns:200px 1fr;align-items:center;gap:16px;}
.rank-school{font-size:13px;font-weight:600;color:var(--navy);}
.rank-bar-wrap{background:var(--border);border-radius:4px;height:28px;overflow:hidden;}
.rank-bar{
  height:100%;border-radius:4px;
  background:linear-gradient(90deg,#0d1840,#1B2C7A);
  display:flex;align-items:center;padding-left:12px;
  font-size:12px;font-weight:700;color:#fff;
  transition:width .5s ease;
}
.rank-bar-2{background:linear-gradient(90deg,#0055aa,#0099dd);}
.rank-bar-3{background:linear-gradient(90deg,#1B2C7A,#2d4fa8);}

/* ============================================
   学校・チーム紹介ページ
   ============================================ */
.hero-pref-tag{display:inline-block;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);color:#fff;font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;letter-spacing:.06em;margin-right:8px;vertical-align:middle;}
.school-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;margin-top:8px;}
.school-info-table{width:100%;border-collapse:collapse;}
.school-info-table tr{border-bottom:1px solid var(--border);}
.school-info-table tr:last-child{border-bottom:none;}
.school-info-table th{width:110px;padding:12px 0;font-size:12px;font-weight:700;color:var(--gray);vertical-align:top;white-space:nowrap;}
.school-info-table td{padding:12px 0 12px 8px;font-size:14px;color:#1e293b;line-height:1.6;}
.color-swatch{display:inline-block;width:14px;height:14px;border-radius:3px;vertical-align:middle;margin-right:2px;}
.school-link{color:var(--blue);font-size:13px;text-decoration:none;display:inline-flex;align-items:center;gap:5px;}
.school-link:hover{text-decoration:underline;}
.school-link i{font-size:10px;}
.photo-placeholder{background:var(--gray-light);border:2px dashed var(--border);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:48px 24px;color:#94a3b8;min-height:220px;}
.photo-placeholder i{font-size:32px;opacity:.5;}
.photo-placeholder p{font-size:13px;margin:0;}
.photo-placeholder-wide{min-height:300px;}
.school-feature-text{max-width:760px;margin-bottom:36px;}
.school-feature-text p{font-size:15px;line-height:2;color:#334155;margin-bottom:12px;}
.school-features{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.school-feature-item{background:#fff;border:1px solid var(--border);border-radius:10px;padding:24px;display:flex;gap:16px;align-items:flex-start;box-shadow:0 2px 8px rgba(0,0,0,.04);}
.feature-icon{width:40px;height:40px;border-radius:10px;flex-shrink:0;background:linear-gradient(135deg,var(--blue),var(--blue2));display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;}
.feature-title{font-size:14px;font-weight:700;color:var(--navy);margin-bottom:6px;}
.school-feature-item p{font-size:13px;color:var(--gray);line-height:1.7;margin:0;}
.club-intro{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:start;margin-bottom:40px;}
.club-intro-text p{font-size:15px;line-height:2;color:#334155;margin-bottom:12px;}
.club-stats{display:flex;flex-direction:column;gap:16px;min-width:160px;}
.club-stat-item{background:var(--blue-pale);border-left:3px solid var(--blue);border-radius:0 8px 8px 0;padding:12px 20px;}
.club-stat-num{font-size:22px;font-weight:900;color:var(--navy);line-height:1;}
.club-stat-num span{font-size:13px;font-weight:700;color:var(--blue);margin-left:2px;}
.club-stat-lbl{font-size:11px;color:var(--gray);margin-top:4px;letter-spacing:.04em;}
.team-photo-area{text-align:center;}
.team-photo-wrap{border-radius:12px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.08);}
.team-photo-wrap img{width:100%;display:block;}
.photo-caption{font-size:12px;color:var(--gray);margin-top:10px;letter-spacing:.04em;}
.cc-record-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:32px;}
.cc-record-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:24px;text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.04);}
.cc-record-card-highlight{background:linear-gradient(135deg,#142060,#1B2C7A);border-color:transparent;box-shadow:0 4px 16px rgba(27,44,122,.25);}
.cc-record-card-highlight .cc-record-num,.cc-record-card-highlight .cc-record-lbl{color:#fff !important;}
.cc-record-num{font-size:28px;font-weight:900;color:var(--navy);line-height:1;}
.cc-record-num span{font-size:14px;font-weight:700;color:var(--blue);}
.cc-record-card-highlight .cc-record-num span{color:rgba(255,255,255,.8);}
.cc-record-lbl{font-size:11px;color:var(--gray);margin-top:6px;letter-spacing:.04em;}
.cc-record-table-wrap{overflow-x:auto;}
.cc-record-table{width:100%;border-collapse:collapse;font-size:14px;}
.cc-record-table thead tr{background:var(--navy);color:#fff;}
.cc-record-table th{padding:12px 16px;font-size:12px;font-weight:700;letter-spacing:.04em;text-align:left;}
.cc-record-table td{padding:12px 16px;border-bottom:1px solid var(--border);color:#334155;}
.cc-record-latest td{background:var(--blue-pale);font-weight:600;}
.result-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.04em;}
.result-3rd{background:#e8f0fe;color:#1a56db;}
.result-qf{background:#f1f5f9;color:var(--gray);}
.result-winner{background:#fef3c7;color:#92400e;}
.result-runner{background:#f0fdf4;color:#166534;}
.teams-nav-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:8px;}
.team-nav-card{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid var(--border);border-radius:10px;padding:16px 18px;text-decoration:none;color:var(--navy);transition:all .2s;font-weight:600;}
.team-nav-card:hover{border-color:var(--blue);box-shadow:0 4px 16px rgba(27,44,122,.12);transform:translateY(-2px);}
.team-nav-pref{font-size:10px;font-weight:700;color:var(--blue);background:var(--blue-pale);padding:2px 7px;border-radius:10px;white-space:nowrap;flex-shrink:0;}
.team-nav-name{font-size:13px;flex:1;}
.team-nav-card i{color:var(--blue);font-size:11px;margin-left:auto;flex-shrink:0;}
.team-nav-all{background:linear-gradient(135deg,#142060,#1B2C7A);border-color:transparent;color:#fff;justify-content:center;}
.team-nav-all:hover{color:#fff;}
.team-nav-all i{color:rgba(255,255,255,.8);}
@media(max-width:768px){.school-profile-grid,.school-features,.club-intro{grid-template-columns:1fr;}.club-stats{flex-direction:row;flex-wrap:wrap;}.cc-record-summary,.teams-nav-grid{grid-template-columns:1fr 1fr;}}

/* アクセス */
.access-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:32px;align-items:start;}
.access-item{display:flex;gap:14px;align-items:flex-start;margin-bottom:20px;}
.access-item:last-child{margin-bottom:0;}
.access-icon{width:36px;height:36px;border-radius:8px;flex-shrink:0;background:linear-gradient(135deg,var(--blue),var(--blue2));display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;}
.access-label{font-size:11px;font-weight:700;color:var(--gray);letter-spacing:.06em;margin-bottom:4px;}
.access-info p{font-size:14px;color:#334155;line-height:1.6;margin:0;}

/* 学年別人数 */
.grade-section{margin-top:32px;}
.grade-section-title{font-size:15px;font-weight:700;color:var(--navy);margin-bottom:14px;padding-left:12px;border-left:3px solid var(--blue);}
.grade-table{width:100%;border-collapse:collapse;font-size:14px;max-width:560px;}
.grade-table thead tr{background:var(--navy);color:#fff;}
.grade-table th{padding:10px 16px;font-size:12px;font-weight:700;letter-spacing:.04em;text-align:left;}
.grade-table td{padding:12px 16px;border-bottom:1px solid var(--border);color:#334155;}
.grade-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:700;}
.grade-1{background:#dbeafe;color:#1d4ed8;}
.grade-2{background:#dcfce7;color:#15803d;}
.grade-3{background:#fef9c3;color:#a16207;}
.grade-num{font-weight:700;color:var(--navy);}
.grade-note{font-size:13px;color:var(--gray);}
.grade-total-row{background:var(--gray-light);}

/* ユニフォーム */
.uniform-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.uniform-card{border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.05);}
.uniform-card-header{display:flex;align-items:center;gap:10px;padding:14px 20px;font-size:13px;font-weight:700;color:#fff;letter-spacing:.04em;}
.uniform-fp{background:linear-gradient(135deg,#003087,#142060);}
.uniform-gk{background:linear-gradient(135deg,#92400e,#d97706);}
.uniform-card-header i{font-size:16px;}
.uniform-photo{padding:16px;background:var(--gray-light);}
.uniform-table{width:100%;border-collapse:collapse;}
.uniform-table tr{border-bottom:1px solid var(--border);}
.uniform-table tr:last-child{border-bottom:none;}
.uniform-table th{width:80px;padding:11px 16px;font-size:12px;font-weight:700;color:var(--gray);background:#f8fafc;}
.uniform-table td{padding:11px 16px;font-size:13px;color:#334155;display:flex;align-items:center;gap:6px;}

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

/* ===== School Page v2: Club Data Blocks ===== */
.club-data-block {
  margin-top: 36px;
}
.club-data-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--navy);
  margin: 0 0 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--border);
  display: flex;
  align-items: center;
  gap: 8px;
}
.club-data-title::before {
  content: '';
  display: inline-block;
  width: 4px;
  height: 16px;
  background: var(--blue);
  border-radius: 2px;
}
.club-data-text {
  font-size: 15px;
  color: #374151;
  padding: 8px 0;
}

/* 部員数 horizontal table */
.grade-h-table {
  border-collapse: collapse !important;
  font-size: 14px;
  width: auto;
  min-width: 280px;
}
.grade-h-table th {
  background: var(--navy) !important;
  color: #fff !important;
  padding: 10px 24px !important;
  text-align: center !important;
  font-weight: 700 !important;
  letter-spacing: .03em;
  border: 1px solid var(--navy) !important;
}
.grade-h-table th.grade-h-total {
  background: var(--blue) !important;
  border-color: var(--blue) !important;
}
.grade-h-table td.grade-h-total {
  background: var(--blue) !important;
  color: #fff !important;
  font-weight: 700;
  border-color: var(--blue) !important;
}
.grade-h-table td {
  border: 1px solid var(--border) !important;
  padding: 12px 24px !important;
  text-align: center !important;
  font-size: 16px !important;
  font-weight: 700;
  color: var(--navy) !important;
  background: #fff !important;
}

/* ユニフォーム horizontal table */
.uniform-h-table {
  border-collapse: collapse !important;
  font-size: 14px;
  width: 100%;
  max-width: 560px;
}
.uniform-h-table th {
  background: var(--navy) !important;
  color: #fff !important;
  padding: 10px 16px !important;
  text-align: center !important;
  font-weight: 700 !important;
  border: 1px solid var(--navy) !important;
}
.uniform-h-table th:first-child,
.uniform-h-table th:nth-child(2) {
  background: #334155 !important;
  border-color: #334155 !important;
  min-width: 60px;
}
.uniform-h-table td {
  border: 1px solid var(--border) !important;
  padding: 10px 16px !important;
  text-align: center !important;
  background: #fff !important;
  vertical-align: middle !important;
}
.uniform-pos-label {
  font-weight: 700 !important;
  color: var(--navy) !important;
  background: var(--gray-light) !important;
  white-space: nowrap;
}
.uniform-set-label {
  font-size: 12px !important;
  color: var(--gray) !important;
  background: #f8fafc !important;
  font-weight: 600 !important;
}
.uniform-h-table tbody tr:hover td {
  background: var(--blue-pale) !important;
}

/* 最近の戦績 */
.result-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.result-list li {
  padding: 10px 0 10px 20px;
  border-bottom: 1px solid var(--border);
  font-size: 14px;
  color: #374151;
  position: relative;
}
.result-list li:last-child {
  border-bottom: none;
}
.result-list li::before {
  content: '▶';
  position: absolute;
  left: 0;
  color: var(--blue);
  font-size: 10px;
  top: 12px;
}

/* color swatch */
.color-swatch {
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 3px;
  vertical-align: middle;
  margin-right: 2px;
}

/* photo placeholder wide */
.photo-placeholder-wide {
  min-height: 200px;
}
.team-photo-area {
  text-align: center;
}
.photo-caption {
  font-size: 13px;
  color: var(--gray);
  margin-top: 8px;
}

/* ===== Club intro: text + photo side by side ===== */
.club-intro-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start;
  margin-bottom: 8px;
}
.club-intro-text p {
  margin: 0 0 16px;
  font-size: 15px;
  line-height: 1.85;
  color: #374151;
}
.club-intro-text p:last-child { margin-bottom: 0; }
.club-intro-photo .photo-placeholder {
  min-height: 240px;
}
@media (max-width: 768px) {
  .club-intro-grid {
    grid-template-columns: 1fr;
  }
}

/* ===== School feature: text + photo side by side ===== */
.school-feature-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start;
}
.school-feature-grid .school-feature-text p {
  margin: 0 0 16px;
  font-size: 15px;
  line-height: 1.85;
  color: #374151;
}
.school-feature-grid .school-feature-text p:last-child { margin-bottom: 0; }
.school-feature-photo .photo-placeholder {
  min-height: 220px;
}

/* Photo gallery: 3-column grid */
.club-photo-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.photo-placeholder-sq {
  min-height: 160px !important;
}
.gallery-photo {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 10px;
  display: block;
}

@media (max-width: 768px) {
  .school-feature-grid {
    grid-template-columns: 1fr;
  }
  .club-photo-gallery {
    grid-template-columns: 1fr 1fr;
  }
}

/* ===== 部員数 カードスタイル（案C） ===== */
.member-count-grid {
  display: flex;
  gap: 12px;
}
.member-count-card {
  flex: 1;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 18px 8px 22px;
  text-align: center;
}
.member-count-label {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  padding: 3px 12px;
  border-radius: 20px;
  background: var(--gray-light);
  color: var(--gray);
  margin-bottom: 12px;
  letter-spacing: .05em;
}
.member-count-total .member-count-label {
  background: var(--blue-pale);
  color: var(--blue);
}
.member-count-num {
  font-size: 34px;
  font-weight: 900;
  color: var(--navy);
  line-height: 1;
  letter-spacing: -.01em;
}
.member-count-num span {
  font-size: 13px;
  font-weight: 700;
  color: var(--gray);
  letter-spacing: 0;
}

/* ===== ユニフォーム カードスタイル（案②） ===== */
.uniform-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.uniform-card {
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
}
.uniform-card-header {
  padding: 10px 16px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  color: var(--gray);
  border-bottom: 1px solid var(--border);
  background: #fff;
}
.uniform-set {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--border);
  background: #fff;
}
.uniform-set:last-child { border-bottom: none; }
.uniform-set-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 20px;
  flex-shrink: 0;
  white-space: nowrap;
  background: var(--blue-pale);
  color: var(--blue);
}
.uniform-set-sub {
  background: var(--gray-light);
  color: var(--gray);
}
.uniform-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.uniform-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  min-width: 44px;
}
.uniform-item-label {
  font-size: 10px;
  color: var(--gray);
  font-weight: 500;
  white-space: nowrap;
}
.uniform-item-color {
  font-size: 14px;
  font-weight: 700;
  color: var(--navy);
}

/* ===== バス路線 ===== */
.bus-routes {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 4px;
}
.bus-route-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: #334155;
}
.bus-badge {
  display: inline-flex;
  align-items: center;
  background: var(--blue-pale);
  color: var(--blue);
  font-size: 11px;
  font-weight: 800;
  padding: 2px 8px;
  border-radius: 4px;
  border: 1px solid rgba(0,119,204,.2);
  white-space: nowrap;
}
.bus-stop-label {
  font-size: 12px;
  font-weight: 700;
  color: var(--navy);
  background: var(--gray-light);
  padding: 2px 10px;
  border-radius: 20px;
  white-space: nowrap;
}

/* ============================================
   MOBILE RESPONSIVE（スマホ対応）
   ============================================ */

/* ── ハンバーガーメニュー ── */
.nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 28px;
  height: 20px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
}
.nav-toggle span {
  display: block;
  width: 100%;
  height: 2.5px;
  background: var(--navy);
  border-radius: 2px;
  transition: all .25s ease;
}
.nav-toggle.active span:nth-child(1) { transform: translateY(8.75px) rotate(45deg); }
.nav-toggle.active span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.nav-toggle.active span:nth-child(3) { transform: translateY(-8.75px) rotate(-45deg); }

/* ── 実際の写真用CSS ── */
.school-photo-img,
.club-photo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 12px;
  display: block;
}
.school-photo-block img,
.school-feature-photo img,
.club-intro-photo img {
  width: 100%;
  border-radius: 12px;
  object-fit: cover;
  display: block;
}
.club-photo-gallery img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 10px;
  display: block;
}

/* ── テーブルスクロールラッパー ── */
.table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 768px) {

  /* ヘッダー */
  header {
    padding: 12px 20px !important;
    position: sticky;
    top: 0;
    z-index: 1000;
  }
  .nav-toggle {
    display: flex;
  }
  nav {
    display: none !important;
    position: fixed;
    top: 60px;
    left: 0;
    right: 0;
    background: #fff;
    padding: 8px 0;
    flex-direction: column !important;
    gap: 0 !important;
    border-top: 1px solid var(--border);
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
    z-index: 999;
  }
  nav.open {
    display: flex !important;
  }
  nav a {
    padding: 16px 24px !important;
    font-size: 15px !important;
    border-bottom: 1px solid var(--border);
    color: var(--navy) !important;
  }
  nav a:last-child { border-bottom: none; }

  /* ヒーロー */
  .page-hero { padding: 36px 20px 32px; }
  .page-breadcrumb { font-size: 11px; }
  .page-hero-title { font-size: 26px; margin: 6px 0 10px; }
  .page-hero-sub { font-size: 13px; }

  /* セクション */
  .page-section,
  .page-section-alt { padding: 48px 20px; }

  /* グリッド → 1列 */
  .school-profile-grid,
  .school-feature-grid,
  .club-intro-grid,
  .access-grid { grid-template-columns: 1fr !important; }

  /* 写真の順序：テキスト→写真 */
  .school-photo-block,
  .school-feature-photo,
  .club-intro-photo { order: 2; }
  .school-info-block,
  .school-feature-text,
  .club-intro-text { order: 1; }

  /* 部員数テーブル */
  .grade-h-table { width: 100%; min-width: unset !important; }
  .grade-h-table th,
  .grade-h-table td { padding: 10px 12px !important; font-size: 14px !important; }

  /* ユニフォームテーブル：横スクロール */
  .uniform-h-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .uniform-h-table { min-width: 420px; }

  /* アクセスマップ */
  .access-map iframe { height: 220px; }

  /* 他チームナビ */
  .teams-nav-grid { grid-template-columns: 1fr 1fr !important; }

  /* photo-placeholder */
  .photo-placeholder { min-height: 200px; }
  .club-intro-photo .photo-placeholder { min-height: 180px; }
}

@media (max-width: 480px) {
  .page-hero-title { font-size: 21px; }
  .sec-title { font-size: 20px !important; }
  .club-photo-gallery { grid-template-columns: 1fr !important; }
  .teams-nav-grid { grid-template-columns: 1fr !important; }
  .member-count-grid { gap: 8px; }
  .member-count-num { font-size: 28px; }
  .uniform-cards { grid-template-columns: 1fr !important; }
}

/* ============================================================
   FRONT PAGE RESPONSIVE（トップページ モバイル対応）
   ============================================================ */

/* ── タブレット（〜1024px）── */
@media (max-width: 1024px) {
  /* ヒーロー：右カラムを縮める */
  .hero {
    grid-template-columns: 1fr 340px !important;
    padding: 48px 24px 0 !important;
    gap: 24px !important;
    min-height: 420px !important;
  }

  /* バナー：2列 */
  .banners-section { padding: 40px 24px !important; }
  .banners-grid { grid-template-columns: repeat(2, 1fr) !important; }

  /* 試合結果：2列 */
  .matches-grid { grid-template-columns: repeat(2, 1fr) !important; }

  /* 協賛企業：3列 */
  .logo-company { width: calc(33.333% - 8px) !important; min-width: 140px !important; }
}

/* ── スマートフォン（〜768px）── */
@media (max-width: 768px) {
  /* ── ヒーロー ── */
  .hero {
    display: flex !important;
    flex-direction: column !important;
    padding: 36px 20px 32px !important;
    min-height: auto !important;
    gap: 0 !important;
  }
  .hero-left { padding-bottom: 28px !important; }
  .hero-h1 { font-size: clamp(22px, 6vw, 30px) !important; }
  .hero-btns { gap: 10px !important; flex-wrap: wrap; }
  .hero-btns .btn-primary,
  .hero-btns .btn-ghost {
    width: 100%;
    max-width: 280px;
    justify-content: center;
  }
  .hero-right { width: 100%; }
  .hero-stats {
    grid-template-columns: 1fr 1fr !important;
    padding: 16px 16px 20px !important;
    gap: 12px !important;
    margin-bottom: 0;
  }
  .stat-n { font-size: 30px !important; }

  /* ── バナーセクション ── */
  .banners-section { padding: 40px 20px !important; }
  .banners-grid { grid-template-columns: 1fr !important; gap: 14px !important; }
  .banner-img { height: 160px !important; }

  /* ── ニュース ── */
  .news-section { padding: 40px 20px !important; }
  .news-grid { grid-template-columns: 1fr !important; gap: 16px !important; }
  .nf-img { height: 200px !important; }

  /* ── 大会結果 ── */
  .archive-section { padding: 40px 20px !important; }
  .awards-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; }
  .award-school { font-size: 11px !important; }
  .matches-grid {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  .archive-links { flex-direction: column !important; align-items: center !important; }
  .archive-link { width: 100% !important; max-width: 320px !important; }

  /* ── スポンサー ── */
  .sponsors-section { padding: 40px 20px !important; }
  .logo-school { width: 100% !important; max-width: 100% !important; height: 80px !important; }
  .logo-company { width: calc(50% - 6px) !important; min-width: 120px !important; height: 60px !important; }
  .ad-banners-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }
  /* 協賛広告の縦長レイアウトをリセット */
  .ad-banner-tenzo  { grid-column: 1 !important; grid-row: auto !important; }
  .ad-banner-tenzo img { height: auto !important; object-fit: contain !important; }
  .ad-banner-falcon { grid-column: 2 !important; grid-row: auto !important; }
  .ad-banner-gxa    { grid-column: 1 !important; grid-row: auto !important; }
  .ad-banner-ibuno  { grid-column: 2 !important; grid-row: auto !important; }
  .ad-banner-omish  { grid-column: 1 !important; grid-row: auto !important; }

  /* ── セクション共通 ── */
  .sec-head { margin-bottom: 20px !important; }
  .sec-title { font-size: 19px !important; }

  /* ── フッター（フロントページ独自） ── */
  #cc-footer { padding: 36px 20px 16px !important; }
  #cc-footer .footer-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 24px !important;
  }
}

/* ── 極小画面（〜480px）── */
@media (max-width: 480px) {
  .hero-stats { grid-template-columns: 1fr 1fr !important; }
  .stat-n { font-size: 26px !important; }

  .awards-grid { grid-template-columns: 1fr 1fr !important; }
  .award-card { padding: 8px 10px !important; }
  .award-num { font-size: 16px !important; }
  .award-school { font-size: 10px !important; }

  .match-row {
    grid-template-columns: 1fr 60px 1fr !important;
    font-size: 11px !important;
    padding: 6px 8px !important;
  }

  .logo-company { width: 100% !important; min-width: unset !important; }

  .ad-banners-grid { grid-template-columns: 1fr !important; }
  .ad-banner-tenzo,
  .ad-banner-falcon,
  .ad-banner-gxa,
  .ad-banner-ibuno,
  .ad-banner-omish {
    grid-column: 1 !important;
    grid-row: auto !important;
  }

  #cc-footer .footer-grid { grid-template-columns: 1fr !important; }
}

/* ─── パスワード保護フォーム ─── */
.post-password-form{
  max-width:480px;
  margin:60px auto;
  padding:40px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  text-align:center;
}
.post-password-form p:first-child{
  font-size:14px;color:var(--gray);margin-bottom:24px;line-height:1.7;
}
.post-password-form label{
  display:block;font-size:13px;font-weight:700;color:var(--navy);margin-bottom:8px;
}
.post-password-form input[type="password"]{
  width:100%;max-width:280px;
  padding:10px 16px;
  border:1px solid var(--border);border-radius:8px;
  cursor:pointer;
  transition:background .2s;
}

/* ══════════════════════════════════════════
   SK-* STYLES (front-page.php v2.0)
══════════════════════════════════════════ */

/* ─── LAYOUT CONTAINER ─── */
.sk-ct{max-width:1200px;margin:0 auto;padding:0 40px;}

/* ─── HEADER ─── */
.sk-hd{
  position:sticky !important;top:0;z-index:100;
  background:#fff !important;
  border:none !important;
  border-bottom:4px solid transparent !important;
  border-image:linear-gradient(90deg,#e53935,#ffcc00,#43a047,#1565c0) 1 !important;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
}
.sk-hd__in{
  width:100%;padding:0 40px;
  display:flex !important;align-items:center !important;
  height:90px !important;min-height:90px !important;
  box-sizing:border-box;
}
.sk-hd__logo{flex-shrink:0;display:flex !important;align-items:center !important;}
.sk-hd__logo img{height:62px !important;width:auto !important;display:block !important;}
.sk-nav{margin-left:auto !important;display:flex !important;align-items:center !important;align-self:stretch;}
/* トップレベルのみflexで横並び */
.sk-nav > ul{display:flex !important;gap:4px;list-style:none;align-items:center !important;align-self:stretch;height:100%;margin:0;padding:0;}
.sk-nav > ul > li{display:flex !important;align-items:center !important;height:100%;position:relative;}
.sk-nav a{
  display:flex !important;align-items:center !important;
  position:relative;
  z-index:0;
  padding:0 18px;height:100%;
  font-size:13px;font-weight:600;
  color:var(--navy);text-decoration:none;
  border-radius:0;letter-spacing:.04em;
  transition:color .22s ease;
}
.sk-nav a::before{
  content:'';
  position:absolute;left:6px;right:6px;top:50%;
  height:38px;
  transform:translateY(-50%) scaleX(.82);
  border-radius:999px;
  background:var(--blue-pale);
  opacity:0;
  z-index:-1;
  transition:opacity .25s ease,transform .25s ease;
  pointer-events:none;
}
.sk-nav a:hover{color:var(--blue);letter-spacing:.05em;}
.sk-nav a:hover::before{opacity:1;transform:translateY(-50%) scaleX(1);}
/* アクティブ状態（WPが自動付与するクラス） */
.sk-nav .current-menu-item > a,
.sk-nav .current-menu-ancestor > a{color:#fff !important;font-weight:700;}
.sk-nav .current-menu-item > a::before,
.sk-nav .current-menu-ancestor > a::before{
  opacity:1;
  transform:translateY(-50%) scaleX(1);
  background:linear-gradient(120deg,#1B2C7A,#3B5BDB);
  box-shadow:0 4px 12px rgba(27,44,122,.3);
}
.sk-hbg{display:none;background:none;border:none;border-radius:8px;cursor:pointer;padding:8px;transition:background .2s;}
.sk-hbg:hover{background:var(--blue-pale);}
.sk-nav__sns{display:none;}
.sk-hbg span{display:block;width:24px;height:2px;background:var(--navy);margin:5px 0;transition:all .25s;}
.sk-hbg.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.sk-hbg.is-open span:nth-child(2){opacity:0;}
.sk-hbg.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.sk-nav--open{
  display:block !important;
  position:fixed;top:68px;left:0;right:0;
  background:#fff;z-index:99;
  border-top:1px solid var(--border);
  box-shadow:0 8px 24px rgba(0,0,0,.12);
}
.sk-nav--open > ul{flex-direction:column !important;gap:0;}
.sk-nav--open a{padding:14px 24px !important;font-size:15px;border-bottom:1px solid var(--border);}

/* ─── ドロップダウン（WP標準クラス対応） ─── */
.sk-nav .sub-menu{
  display:block;
  position:absolute;top:100%;left:0;
  background:#fff;
  min-width:190px;
  list-style:none;padding:0;margin:0;
  border-radius:0 0 10px 10px;
  border-top:3px solid var(--blue);
  box-shadow:0 12px 28px rgba(0,0,0,.14);
  z-index:200;
  opacity:0;visibility:hidden;
  transform:translateY(-8px);
  transition:opacity .22s ease,transform .22s ease,visibility .22s;
}
.sk-nav .sub-menu li{display:block !important;height:auto !important;}
.sk-nav .sub-menu a{
  display:block !important;
  padding:11px 18px !important;
  font-size:13px;height:auto !important;
  white-space:nowrap;
  border-bottom:1px solid var(--border);
  color:var(--navy);
  transition:background .15s,color .15s;
}
.sk-nav .sub-menu li:last-child a{border-bottom:none;}
.sk-nav .sub-menu a::before{display:none;}
.sk-nav .sub-menu a:hover{background:var(--blue-pale);color:var(--blue);transform:none !important;letter-spacing:.04em !important;padding-left:24px !important;}
.sk-nav .menu-item-has-children:hover .sub-menu{opacity:1;visibility:visible;transform:translateY(0);}
/* モバイル展開時 */
.sk-nav--open a::before{display:none;}
.sk-nav--open .current-menu-item > a,
.sk-nav--open .current-menu-ancestor > a{
  color:var(--blue) !important;
  background:var(--blue-pale);
  border-left:3px solid var(--blue);
}
.sk-nav--open .sub-menu{
  display:block !important;
  opacity:1;visibility:visible;transform:none;
  position:static;
  box-shadow:none;
  border-top:none;
  border-radius:0;
}
.sk-nav--open .sub-menu a{
  padding-left:40px !important;
  background:#f8fafc;
  font-size:14px;
}

/* ─── HERO ─── */
.sk-hero{
  position:relative;
  min-height:50vw;
  background-color:#fff;
  background-size:100% auto;
  background-position:center top;
  background-repeat:no-repeat;
  display:flex;
  align-items:stretch;
}
.sk-hero__ov{position:absolute;inset:0;pointer-events:none;}
.sk-hero__in{
  position:relative;z-index:1;
  width:44%;margin-left:2vw;padding:3vw 36px;
  margin-top:-6vw;
  display:flex;flex-direction:column;justify-content:center;
  background:rgba(255,255,255,.88);
  border:2.5px solid rgba(26,42,64,.35);
  border-radius:20px;align-self:center;
}
.sk-hero__tag{
  display:block;
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(18px,2vw,24px);font-weight:700;
  color:var(--navy);letter-spacing:.1em;margin-bottom:4px;
}
.sk-hero__ttl{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(30px,4vw,54px);font-weight:900;
  color:var(--navy);letter-spacing:.02em;line-height:1.0;
  white-space:nowrap;margin-bottom:8px;
}
.sk-hero__bar{
  height:5px;
  width:100%;
  border-radius:3px;
  background:linear-gradient(to right,#e53935,#f9a825,#43a047,#1565c0);
  margin-bottom:14px;
}
.sk-hero__sub{
  font-size:clamp(11px,1vw,13px);font-weight:600;
  color:#e86500;letter-spacing:.05em;line-height:1.7;margin-bottom:18px;
}
/* PCでは2行（...Region Private...School / Champions Cup）のまま、
   モバイルのみ3行に分ける追加の改行。2026-07-08追加 */
.sk-hero__sub-brk{display:none;}
.sk-hero__stats{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:0;
  border-top:1px solid rgba(26,42,64,.12);
  padding-top:14px;margin-bottom:0;
}
.sk-hero__stat{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:12px 8px 10px;
  border-right:1px solid rgba(26,42,64,.12);
  border-bottom:1px solid rgba(26,42,64,.12);
}
.sk-hero__stat:nth-child(2n){border-right:none;}
.sk-hero__stat:nth-child(n+3){border-bottom:none;}
.sk-hero__stat-n{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(32px,3.6vw,48px);font-weight:900;line-height:1;
  background:linear-gradient(135deg,#1F2937,#2d4fa8);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.sk-hero__stat-n span{
  font-size:clamp(14px,1.4vw,18px);font-weight:700;margin-left:2px;
  background:linear-gradient(135deg,#1F2937,#2d4fa8);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.sk-hero__stat-l{
  font-size:12px;font-weight:700;
  color:#1F2937;letter-spacing:.05em;margin-top:5px;
}

/* ─── BUTTONS ─── */
.sk-btn{
  display:inline-flex;align-items:center;
  padding:13px 26px;border-radius:4px;
  font-family:'Noto Sans JP',sans-serif;
  font-size:14px;font-weight:700;text-decoration:none;
  letter-spacing:.05em;transition:all .2s;
  box-shadow:0 3px 10px rgba(0,0,0,.15);
}
.sk-btn--nv{background:#1F2937;color:#fff !important;}
.sk-btn--nv:hover{background:#0d1829 !important;color:#fff !important;transform:translateY(-2px);}
.sk-btn--ol{background:transparent !important;border:2px solid #1F2937;color:#1F2937 !important;}
.sk-btn--ol:hover{background:#eef1fa !important;color:#1F2937 !important;border-color:#1F2937;}

/* ─── SECTION HEADERS ─── */
.sk-sh{margin-bottom:28px;}
.sk-sh--row{display:flex;align-items:center;justify-content:space-between;}
.sk-sh__t{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(20px,2.2vw,26px);font-weight:900;
  color:var(--navy);letter-spacing:.06em;
}
.sk-sh__e{font-size:12px;font-weight:600;color:var(--gray);letter-spacing:.18em;display:block;margin-top:4px;}
.sk-more{
  font-size:13px;font-weight:600;color:var(--navy);
  text-decoration:none;border:1.5px solid var(--navy);
  padding:6px 16px;border-radius:100px;transition:background .15s;
}
.sk-more:hover{background:var(--blue-pale);}

/* ─── BANNERS ─── */
.sk-bnrs{padding:60px 0;background:#f0f2f5;}
.sk-bnrs__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:stretch;}
.sk-bc{
  position:relative;border-radius:14px;overflow:hidden;
  display:flex;flex-direction:column;
  min-height:340px;text-decoration:none;color:#fff;
  box-shadow:0 4px 20px rgba(0,0,0,.18);
  transition:transform .2s,box-shadow .2s;
}
.sk-bc:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.28);}
.sk-bc__bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  transition:transform .5s ease;
  opacity:.35;
}
.sk-bc:hover .sk-bc__bg{transform:scale(1.05);}
.sk-bc__ov{position:absolute;inset:0;}
.sk-bc--fn .sk-bc__ov{background:linear-gradient(to bottom,rgba(27,44,122,.78) 0%,rgba(27,44,122,.35) 50%,rgba(27,44,122,.78) 100%);}
.sk-bc--tk .sk-bc__ov{background:linear-gradient(to bottom,rgba(26,100,60,.78) 0%,rgba(26,100,60,.35) 50%,rgba(26,100,60,.78) 100%);}
.sk-bc--hs .sk-bc__ov{background:linear-gradient(to bottom,rgba(40,40,50,.78) 0%,rgba(40,40,50,.35) 50%,rgba(40,40,50,.78) 100%);}
.sk-bc--ev .sk-bc__ov{background:linear-gradient(to bottom,rgba(140,70,0,.78) 0%,rgba(140,70,0,.35) 50%,rgba(140,70,0,.78) 100%);}
.sk-bc__bd{position:relative;z-index:2;padding:60px 0 22px;display:flex;flex-direction:column;flex:1;}
.sk-bc__en{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;display:block;color:rgba(255,255,255,.8);padding:0 18px;margin-bottom:10px;}
.sk-bc__ttl-wrap{padding:10px 18px;}
.sk-bc__ttl{font-size:22px;font-weight:900;font-family:'Noto Sans JP',sans-serif;color:#fff;line-height:1.2;margin:0;letter-spacing:.01em;}
.sk-bc__bd p{font-size:11px;color:rgba(255,255,255,.8);line-height:1.75;padding:12px 18px 0;flex:1;}
.sk-bc__lk{display:inline-flex;align-self:flex-start;align-items:center;gap:8px;margin-top:auto;margin-left:18px;padding:9px 20px;font-size:11px;font-weight:700;letter-spacing:.08em;color:#fff;border:1.5px solid rgba(255,255,255,.9);border-radius:3px;transition:background .2s,filter .2s;}
.sk-bc--fn .sk-bc__lk{background:rgba(27,44,122,.75);}
.sk-bc--tk .sk-bc__lk{background:rgba(26,100,60,.75);}
.sk-bc--hs .sk-bc__lk{background:rgba(40,40,50,.75);}
.sk-bc--ev .sk-bc__lk{background:rgba(140,70,0,.75);}
.sk-bc:hover .sk-bc__lk{filter:brightness(1.25);border-color:#fff;}
/* カテゴリカラー帯 */
.sk-bc--fn .sk-bc__ttl-wrap{background:rgba(27,44,122,.9);border-left:4px solid #7090ff;}
.sk-bc--tk .sk-bc__ttl-wrap{background:rgba(26,100,60,.9);border-left:4px solid #50d080;}
.sk-bc--hs .sk-bc__ttl-wrap{background:rgba(40,40,50,.9);border-left:4px solid #bbb;}
.sk-bc--ev .sk-bc__ttl-wrap{background:rgba(140,70,0,.9);border-left:4px solid #ffaa30;}
.sk-coming{display:inline-block;margin-top:auto;padding-top:16px;font-size:9px;font-weight:800;letter-spacing:.14em;color:#ffc46b;margin-left:18px;}

/* ─── RESULTS ─── */
.sk-res{padding:72px 0;background:#F8FAFC;}

/* セクションヘッダー */
.sk-res__hd{margin-bottom:36px;}
.sk-res__lbl{
  font-family:'Noto Sans JP',sans-serif;
  font-size:10px;font-weight:500;letter-spacing:.28em;
  color:#1B2C7A;text-transform:uppercase;
  display:flex;align-items:center;gap:14px;
  margin-bottom:14px;
}
.sk-res__lbl::after{
  content:'';flex:1;height:1px;
  background:linear-gradient(90deg,#e83030,#f5a623,#f5e623,#27ae60,#1B6FD8,transparent);
}
.sk-res__ttl{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(26px,3vw,38px);font-weight:700;
  background:linear-gradient(135deg,#0a1535 0%,#1B2C7A 40%,#1E6BD6 70%,#3a8fd6 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  letter-spacing:.04em;margin-bottom:10px;
}
.sk-res__desc{
  font-family:'Noto Sans JP',sans-serif;
  font-size:13px;font-weight:400;color:#64748b;line-height:1.8;
}

/* 順位カード */
.sk-rnk{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;}
.sk-rnk__c{
  background:#fff;border-radius:12px;
  padding:20px 14px 18px;text-align:center;
  border:1px solid #e2e8f0;
  position:relative;overflow:hidden;
}
.sk-rnk__c--1{
  border:2px solid #D4AF37;
  background:#fffef8;
}
.sk-rnk__c--1::after{
  content:'';position:absolute;right:0;bottom:0;
  width:56px;height:56px;
  background:linear-gradient(135deg,transparent 50%,rgba(212,175,55,.14) 50%);
}
.sk-rnk__n{
  display:block;
  font-family:'Montserrat',sans-serif;
  font-size:52px;font-weight:600;line-height:1;
  color:#94a3b8;margin-bottom:0;
}
.sk-rnk__c--1 .sk-rnk__n{color:#D4AF37;}
.sk-rnk__c--2 .sk-rnk__n{color:#9fb3c8;}
/* 区切り線 */
.sk-rnk__c::before{
  content:'';display:block;width:18px;height:1px;
  background:#e2e8f0;margin:8px auto 8px;
}
.sk-rnk__c--1::before{background:rgba(212,175,55,.5);}
.sk-rnk__l{
  display:block;
  font-family:'Noto Sans JP',sans-serif;
  font-size:10px;font-weight:500;
  color:#94a3b8;letter-spacing:.14em;margin-bottom:10px;
}
.sk-rnk__c--1 .sk-rnk__l{color:#b8963c;}
.sk-rnk__c p{
  font-family:'Noto Sans JP',sans-serif;
  font-size:13px;font-weight:700;color:#1F2937;
  line-height:1.35;position:relative;z-index:1;
}
.sk-rnk__c--1 p{font-size:14px;}

/* 試合結果カード */
.sk-mch{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:32px;}
.sk-mb{background:#fff;border-radius:10px;overflow:hidden;border:1px solid #e2e8f0;}
.sk-mb__h{
  font-family:'Noto Sans JP',sans-serif;
  font-size:11px;font-weight:700;letter-spacing:.06em;
  color:#fff;background:#1B2C7A;padding:12px 16px;
}
.sk-mb--final .sk-mb__h{background:#0d1840;}
.sk-mb--semi  .sk-mb__h{background:#1B2C7A;}
.sk-mb--qf    .sk-mb__h{background:#1E6BD6;}

/* 試合行 */
.sk-mr{
  display:grid;grid-template-columns:1fr auto 1fr;
  align-items:center;gap:6px;
  padding:14px 16px;
  font-family:'Noto Sans JP',sans-serif;
  font-size:11px;font-weight:500;color:#1F2937;
  border-top:1px solid #e2e8f0;
}
.sk-mr__r{text-align:right;}
.sk-mr b{
  text-align:center;
  font-family:'Montserrat',sans-serif;
  font-size:20px;font-weight:600;color:#1F2937;
  white-space:nowrap;padding:0 6px;line-height:1.2;
}
.sk-mr b small{
  display:block;font-size:9px;font-weight:400;
  color:#64748b;font-family:'Noto Sans JP',sans-serif;
  letter-spacing:.02em;
}

/* ボタン */
.sk-res__btns{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;}

/* ─── NEWS ─── */
.sk-nws{padding:72px 0;background:#F8FAFC;}

/* セクションヘッダー（RESULTS セクションと同スタイル） */
.sk-nws__hd{margin-bottom:36px;}
.sk-nws__lbl{font-family:'Noto Sans JP',sans-serif;font-size:10px;font-weight:500;letter-spacing:.28em;color:#1B2C7A;text-transform:uppercase;display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.sk-nws__lbl::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,#e83030,#f5a623,#f5e623,#27ae60,#1B6FD8,transparent);}
.sk-nws__ttl{font-family:'Noto Sans JP',sans-serif;font-size:clamp(26px,3vw,38px);font-weight:700;background:linear-gradient(135deg,#0a1535 0%,#1B2C7A 40%,#1E6BD6 70%,#3a8fd6 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:.04em;margin-bottom:10px;}
.sk-nws__sub{font-family:'Noto Sans JP',sans-serif;font-size:13px;font-weight:400;color:#64748b;line-height:1.8;}

/* フィルタータブ（ドット付きピル） */
/* お知らせ/決勝大会/東京都大会/神奈川県大会/千葉県大会/埼玉県大会の6個。
   flex-wrapだとテキスト幅がバラバラなため折り返し位置によって列がガタつき、
   画面幅次第で中途半端な3列などになり不揃いに見えていた。
   個数(6)の約数(6/3/2)で列数を固定するgridに変更し、常に整った格子に揃える。2026-07-08追加 */
.sk-nws__flt{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:8px;margin-bottom:28px;
}
@media(min-width:560px){
  .sk-nws__flt{grid-template-columns:repeat(3,1fr);}
}
@media(min-width:900px){
  .sk-nws__flt{grid-template-columns:repeat(6,1fr);}
}
.sk-nws__flt .sk-ft{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  width:100%;box-sizing:border-box;
  padding:6px 16px;border-radius:100px;
  font-family:'Noto Sans JP',sans-serif;font-size:12px;font-weight:500;
  text-decoration:none;color:#1F2937;
  background:#fff;border:1px solid #e2e8f0;
  transition:border-color .15s,background .15s;
}
.sk-nws__flt .sk-ft::before{content:'';width:8px;height:8px;border-radius:50%;flex-shrink:0;background:#94a3b8;}
.sk-nws__flt .sk-ft:hover{border-color:#cbd5e1;background:#f1f5f9;opacity:1;}
.sk-ft--in::before{background:#F97316 !important;}
.sk-ft--fn::before{background:#1B2C7A !important;}
.sk-ft--tk::before{background:#2AA84A !important;}
.sk-ft--kn::before{background:#1E6BD6 !important;}
.sk-ft--cb::before{background:#F2C200 !important;}
.sk-ft--st::before{background:#E53935 !important;}

/* コンテンツグリッド */
.sk-nws__bd{display:grid;grid-template-columns:44fr 56fr;gap:8px;align-items:stretch;}

/* フィーチャー記事（左） */
.sk-nws__main{display:flex;flex-direction:column;height:100%;}
.sk-nm{
  display:flex;flex-direction:column;flex:1;
  text-decoration:none;color:inherit;
  background:#fff;border-radius:10px;overflow:hidden;
  border:1px solid #e2e8f0;
  box-shadow:0 2px 8px rgba(0,0,0,.05);
  transition:box-shadow .2s;
}
.sk-nm:hover{box-shadow:0 6px 20px rgba(0,0,0,.1);}
.sk-nm__img{
  width:100%;flex:1;min-height:220px;
  background:linear-gradient(135deg,#1F2937,#1B2C7A);
  background-size:cover;background-position:center;
  position:relative;
}
.sk-nm__img .sk-badge{position:absolute;bottom:14px;left:14px;}
.sk-nm__bd{padding:18px 22px 20px;}
.sk-nm__bd time{font-family:'Noto Sans JP',sans-serif;font-size:12px;font-weight:500;color:#1B2C7A;display:block;margin-bottom:8px;}
.sk-nm__bd h3{font-family:'Noto Sans JP',sans-serif;font-size:17px;font-weight:700;color:#1F2937;line-height:1.5;margin-bottom:8px;}
.sk-nm__bd p{font-family:'Noto Sans JP',sans-serif;font-size:13px;color:#64748b;line-height:1.7;}

/* ニュースリスト（右） */
.sk-nws__lst{
  list-style:none;
  margin:0;
  display:flex;flex-direction:column;
  height:100%;
  border:1px solid #e2e8f0;
  border-radius:10px;
  overflow:hidden;
}
.sk-ni{
  flex:1;
  background:#fff;
  border-bottom:1px solid #e2e8f0;
  transition:background .15s;
}
.sk-ni:last-child{border-bottom:none;}
.sk-ni:hover{background:#f8fafc;}
.sk-ni a{
  display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;
  gap:0 8px;padding:13px 16px 13px 28px;
  height:100%;
  text-decoration:none;color:inherit;
  box-sizing:border-box;
  align-content:center;
  position:relative;
}
/* 縦線：疑似要素で上下余白あり */
.sk-ni a::before{
  content:'';
  position:absolute;
  left:14px;
  top:10px;bottom:10px;
  width:3px;
  border-radius:2px;
  background:#e2e8f0;
}
/* カテゴリ別縦線カラー */
.sk-ni.cat-info     a::before{background:#F97316;}
.sk-ni.cat-final    a::before{background:#1B2C7A;}
.sk-ni.cat-tokyo    a::before{background:#2AA84A;}
.sk-ni.cat-kanagawa a::before{background:#1E6BD6;}
.sk-ni.cat-chiba    a::before{background:#F2C200;}
.sk-ni.cat-saitama  a::before{background:#E53935;}
.sk-ni.cat-event    a::before{background:#e86500;}
.sk-ni__meta{
  grid-column:1;grid-row:1;
  display:flex;gap:10px;align-items:center;
  margin-bottom:5px;
}
.sk-ni__meta time{font-family:'Noto Sans JP',sans-serif;font-size:11px;color:#94a3b8;}
.sk-ni p{grid-column:1;grid-row:2;font-family:'Noto Sans JP',sans-serif;font-size:13px;font-weight:700;color:#1F2937;line-height:1.5;margin:0;}
.sk-ni i{grid-column:2;grid-row:1/3;display:flex;align-items:center;color:#94a3b8;font-style:normal;font-size:18px;}

/* バッジ共通（.sk-badge に限定してbackgroundを適用） */
.sk-badge{display:inline-block;padding:2px 8px;border-radius:100px;font-size:10px;font-weight:700;background:var(--navy);color:#fff;}
.sk-badge--new{background:#e86500;}
.sk-badge.cat-final   {background:var(--navy);color:#fff;}
.sk-badge.cat-tokyo   {background:#2AA84A;color:#fff;}
.sk-badge.cat-kanagawa{background:#1E6BD6;color:#fff;}
.sk-badge.cat-chiba   {background:#F2C200;color:#1F2937;}
.sk-badge.cat-saitama {background:#E53935;color:#fff;}
.sk-badge.cat-info    {background:#FFEDD5;color:#C2410C;}
.sk-badge.cat-event   {background:#e86500;color:#fff;}
.sk-badge.cat-result  {background:#e8f7ee;color:#15803d;}

/* ニュースリスト内バッジはテキストのみ（背景なし） */
.sk-nws__lst .sk-badge{background:transparent;padding:0;font-size:11px;font-weight:700;}
.sk-nws__lst .sk-badge.cat-info    {color:#C2410C;}
.sk-nws__lst .sk-badge.cat-final   {color:#1B2C7A;}
.sk-nws__lst .sk-badge.cat-tokyo   {color:#1e8a3c;}
.sk-nws__lst .sk-badge.cat-kanagawa{color:#1E6BD6;}
.sk-nws__lst .sk-badge.cat-chiba   {color:#9a7e00;}
.sk-nws__lst .sk-badge.cat-saitama {color:#c0392b;}
.sk-nws__lst .sk-badge.cat-event   {color:#e86500;}

/* 下部ボタン */
.sk-nws__more{text-align:center;margin-top:40px;}
.sk-nws__morebtn{
  display:inline-block;
  font-family:'Noto Sans JP',sans-serif;
  font-size:12px;font-weight:500;letter-spacing:.16em;
  color:#1B2C7A;text-decoration:none;
  padding:13px 52px;
  border-radius:100px;
  border:1.5px solid #1B2C7A;
  background:transparent;
  transition:background .2s,color .2s;
}
.sk-nws__morebtn:hover{background:#1B2C7A;color:#fff !important;}

/* ─── SPONSORS ─── */
.sk-sp{padding:64px 0;background:#f8fafc;}

/* セクションヘッダー（ニュースと同スタイル） */
.sk-sp__head{margin-bottom:36px;}
.sk-sp__label{
  font-family:'Noto Sans JP',sans-serif;
  font-size:10px;font-weight:500;letter-spacing:.28em;
  color:#1B2C7A;text-transform:uppercase;
  display:flex;align-items:center;gap:14px;
  margin-bottom:14px;
}
.sk-sp__label::after{
  content:'';flex:1;height:1px;
  background:linear-gradient(90deg,#e83030,#f5a623,#f5e623,#27ae60,#1B6FD8,transparent);
}
.sk-sp__title{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(26px,3vw,38px);font-weight:700;
  background:linear-gradient(135deg,#0a1535 0%,#1B2C7A 40%,#1E6BD6 70%,#3a8fd6 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  letter-spacing:.04em;margin:0 0 10px;
}
.sk-sp__sub{font-family:'Noto Sans JP',sans-serif;font-size:13px;font-weight:400;color:#64748b;line-height:1.8;}

/* グループ */
.sk-sg{margin-bottom:44px;}
.sk-sg__t{
  font-family:'Noto Sans JP',sans-serif;
  font-size:18px;font-weight:700;
  letter-spacing:.1em;margin-bottom:20px;
  color:#1B2C7A;
  display:flex;align-items:center;gap:16px;
  padding-left:0;border-left:none;
  background:none;-webkit-text-fill-color:unset;
}
.sk-sg__t::before{content:'';flex:1;height:1px;background:linear-gradient(270deg,#001f6e,#1B2C7A,#1E6BD6,transparent);}
.sk-sg__t::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,#001f6e,#1B2C7A,#1E6BD6,transparent);}

/* ロゴ共通 */
.sk-sl{
  display:flex;align-items:center;justify-content:center;
  background:#fff;border:1px solid var(--border);
  border-radius:8px;padding:20px 24px;
  text-decoration:none;transition:box-shadow .2s;
}
.sk-sl:hover{box-shadow:0 4px 16px rgba(0,0,0,.1);}

/* 協賛校: 2列グリッド */
.sk-sls--sch{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.sk-sls--sch .sk-sl img{height:52px;width:auto;object-fit:contain;}

/* 協賛企業: 3列グリッド */
.sk-sls--co{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.sk-sls--co .sk-sl img{height:64px;width:auto;object-fit:contain;}

/* 協賛広告: 3列グリッド・TENZO縦長 */
.sk-ads{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:4px 0;}
.sk-ad{
  background:#fff;border-radius:8px;overflow:hidden;
  border:1px solid var(--border);transition:box-shadow .2s;
}
.sk-ad:hover{box-shadow:0 4px 12px rgba(0,0,0,.1);}
.sk-ad img{width:100%;height:200px;object-fit:contain;display:block;background:#fff;}
.sk-ad--tz{grid-row:1/3;}
.sk-ad--tz img{height:100%;object-fit:cover;}
/* Sponsor ads: keep TENZO tall card twice the height on mobile, avoid left/right crop */
@media(max-width:768px){
	.sk-ad--tz img{object-fit:contain;}
}

/* ─── FOOTER ─── */
footer.sk-ft{
  background:linear-gradient(160deg,#dce8f6 0%,#e8f2fb 45%,#edf5fd 100%);
  position:relative;
  border-top:none !important;
}
footer.sk-ft::before{
  content:'';display:block;height:4px;
  background:linear-gradient(90deg,#e83030,#f5a623,#f5e623,#27ae60,#1B6FD8);
}

/* ページトップボタン */
.sk-ft__top{
  position:fixed;bottom:28px;right:28px;z-index:200;
  width:48px;height:48px;min-width:48px;min-height:48px;
  padding:0;
  background:#1B2C7A !important;
  border:none !important;
  border-radius:50% !important;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  box-shadow:0 4px 20px rgba(27,44,122,.45), 0 0 0 3px rgba(27,44,122,.12) !important;
  transition:opacity .3s,transform .22s,box-shadow .22s,background .22s;
  flex-shrink:0;line-height:1;
  color:#fff !important;
}
.sk-ft__top svg{display:block;flex-shrink:0;stroke:#fff !important;}
.sk-ft__top:hover{transform:translateY(-3px) !important;box-shadow:0 8px 28px rgba(27,44,122,.55), 0 0 0 3px rgba(27,44,122,.2) !important;background:#1535a0 !important;}

/* メイン */
.sk-ft__main{padding:48px 0 44px;}
.sk-ft__grid{display:grid;grid-template-columns:360px 1fr;gap:20px;align-items:stretch;}

.sk-ft__card{
  background:rgba(255,255,255,.85);
  border-radius:14px;
  border:1px solid rgba(27,44,122,.09);
  padding:28px 24px;
}

/* ブランドカード */
.sk-ft__brand{display:block;}
.sk-ft__brand-link{
  display:flex !important;flex-direction:column !important;
  align-items:flex-start !important;gap:14px;
  text-decoration:none;width:100%;text-align:left;
}
.sk-ft__logo{height:64px;width:auto;max-width:100%;display:block !important;margin:0 !important;}
.sk-ft__brand-text{border-top:1px solid rgba(27,44,122,.1);padding-top:14px;width:100%;}
.sk-ft__name-ja{
  font-family:'Noto Sans JP',sans-serif;
  font-size:14px;font-weight:700;color:#1B2C7A;line-height:1.65;margin:0 0 5px;
}
.sk-ft__name-en{
  font-family:'Noto Sans JP',sans-serif;
  font-size:11px;font-weight:400;color:#64748b;line-height:1.8;margin:0;
}

/* メニューカード */
.sk-ft__menu{display:flex;flex-direction:column;}

/* 3カラムナビ：table-cell で確実に横並び */
.sk-ft__nav-grid{
  display:table !important;
  width:100% !important;
  table-layout:fixed !important;
  border-collapse:separate !important;
  border-spacing:16px 0 !important;
  flex:1;
}
.sk-ft__nav-col{
  display:table-cell !important;
  vertical-align:top !important;
  width:33.33% !important;
}
.sk-ft__nl{
  font-family:'Noto Sans JP',sans-serif;
  display:block !important;
  padding:8px 8px 8px 0 !important;
  border-bottom:1px solid rgba(0,60,180,.06) !important;
  font-size:13px !important;font-weight:600 !important;color:#1F2937 !important;
  text-decoration:none !important;
  text-align:left !important;
  transition:color .2s,background .2s;
  position:relative;
  padding-right:20px !important;
  box-sizing:border-box;
}
.sk-ft__nl::after{
  content:'›';color:#1B2C7A;font-size:15px;line-height:1;
  position:absolute;right:4px;top:50%;transform:translateY(-50%);
  transition:transform .2s;
}
.sk-ft__nl:hover{color:#1B2C7A !important;background:rgba(27,44,122,.04);}
.sk-ft__nl:hover::after{transform:translateY(-50%) translateX(3px);}
/* サブ項目 */
.sk-ft__nl--sub{
  font-size:12px !important;font-weight:500 !important;color:#64748b !important;
  padding-left:14px !important;
}
.sk-ft__nl--sub::before{content:'–';position:absolute;left:2px;color:#cbd5e1;}
.sk-ft__nl--sub::after{content:'' !important;}
/* リンクなしラベル項目 */
.sk-ft__nl--label{
  display:block !important;
  cursor:default;color:#64748b !important;font-weight:600 !important;
  pointer-events:none;
  padding:8px 8px 8px 0 !important;
  border-bottom:1px solid rgba(0,60,180,.06) !important;
}
.sk-ft__nl--label::after{content:'' !important;}

/* ボトム行 */
.sk-ft__bottom{
  display:flex;align-items:center;justify-content:space-between;
  padding-top:14px;margin-top:14px;
  border-top:1px solid rgba(0,60,180,.07);
}
.sk-ft__sns{display:flex;gap:10px;margin-left:auto;}
.sk-ft__si{
  display:flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:50%;
  border:1.5px solid #1B2C7A;color:#1B2C7A;
  text-decoration:none;transition:all .2s;
}
.sk-ft__si:hover{background:#1B2C7A;color:#fff;}

/* 制作・運営サポートクレジット */
.sk-ft__credit{
  font-family:'Noto Sans JP',sans-serif;
  font-size:11px !important;line-height:1.6;
  color:#94a3b8;
  text-decoration:none;
  white-space:nowrap;
  margin-left:16px;
  transition:color .2s;
}
.sk-ft__credit:hover{color:#1B2C7A;text-decoration:underline;}

/* コピーライト */
.sk-ft__cp-wrap{
  background:rgba(255,255,255,.55);
  border-top:1px solid rgba(27,44,122,.08);
  padding:13px;text-align:center;
}
.sk-ft__cp{
  font-family:'Noto Sans JP',sans-serif;
  font-size:11px;font-weight:400;color:#64748b;margin:0;
}

/* ─── RESPONSIVE ─── */
@media(max-width:1100px){
  .sk-mch{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:768px){
  .sk-ct{padding:0 20px;}
  .sk-hd__in{padding:0 16px;}
  /* ロゴを小さくして左端に寄せる。2026-07-08追加 */
  .sk-hd__logo img{height:42px !important;}
  .sk-nav{display:none;}
  .sk-hbg{display:block;}
  /* 旧ヘッダーCSS（裸のnav{position:fixed;top:60px;...}指定）が#sk-navにも
     効いてしまい、閉じた状態でも常時position:fixedの「開いた」見た目になる不具合を
     ID指定(#sk-nav)の優先度で確実に上書き。2026-07-08追加 */
  #sk-nav{display:none !important;position:static !important;top:auto !important;left:auto !important;right:auto !important;background:none !important;padding:0 !important;border-top:none !important;box-shadow:none !important;}
  #sk-nav.sk-nav--open{display:block !important;position:fixed !important;top:68px !important;left:0 !important;right:0 !important;background:#fff !important;padding:0 !important;border-top:1px solid var(--border) !important;box-shadow:0 8px 24px rgba(0,0,0,.12) !important;z-index:99 !important;border-radius:0 0 18px 18px !important;max-height:calc(100vh - 68px) !important;overflow-y:auto !important;-webkit-overflow-scrolling:touch !important;}
  /* #sk-navが非表示になると、そのmargin-left:autoによる右寄せが効かなくなり
     ハンバーガーボタンがロゴのすぐ右に来てしまう不具合を修正。2026-07-08追加 */
  .sk-hbg{margin-left:auto !important;}
  /* メニューを開いた状態のデザイン改善。
     ハンバーガーはnav(z-index:99)より下のDOM順・z-index未指定のため、
     開いた状態だとnavの下に隠れてタップで閉じられなかった。
     position+z-indexを与えて常に最前面・タップ可能に修正。
     あわせて項目の余白・タップ時の反応・階層のメリハリを見やすく調整。2026-07-08追加 */
  .sk-hbg{position:relative !important;z-index:101 !important;}
  /* .sk-nav > ulの`align-items:center !important`はPC横並び時の縦中央揃え用だが、
     モバイルでflex-direction:columnに変わった後もそのまま効いてしまい、
     各項目が横方向に中央寄せされてしまっていた（左揃えにならない不具合）。
     stretchに上書きして項目を幅いっぱいにし、テキストを左揃えにする。2026-07-08追加 */
  #sk-nav.sk-nav--open > ul{align-items:stretch !important;}
  #sk-nav.sk-nav--open > ul > li{align-items:stretch !important;flex-direction:column !important;}
  #sk-nav.sk-nav--open > ul > li{border-bottom:1px solid var(--border);}
  #sk-nav.sk-nav--open > ul > li:last-child{border-bottom:none;}
  #sk-nav.sk-nav--open a{
    padding:17px 24px !important;
    font-size:16px !important;
    font-weight:700 !important;
    border-bottom:none !important;
    -webkit-tap-highlight-color:transparent;
  }
  #sk-nav.sk-nav--open a:active{background:var(--blue-pale) !important;}
  #sk-nav.sk-nav--open .sub-menu{background:#f8fafc !important;}
  #sk-nav.sk-nav--open .sub-menu li{border-left:3px solid var(--blue-light);}
  #sk-nav.sk-nav--open .sub-menu a{
    padding:14px 24px 14px 34px !important;
    font-size:14px !important;
    font-weight:500 !important;
    color:#475569 !important;
    border-bottom:1px solid #e9edf2 !important;
  }
  #sk-nav.sk-nav--open .sub-menu li:last-child a{border-bottom:none !important;}
  #sk-nav.sk-nav--open .sub-menu a:active{background:var(--blue-pale) !important;color:var(--blue) !important;}
  /* ハンバーガーメニュー最下部にSNSアイコン(Instagram/X)を追加。2026-07-08追加 */
  #sk-nav.sk-nav--open .sk-nav__sns{
    display:flex !important;align-items:center !important;justify-content:center;gap:16px;
    padding:20px 24px;border-top:1px solid var(--border);
  }
  /* .sk-nav aや#sk-nav.sk-nav--open a(padding:17px 24px !important等)が
     アイコンボタンにも効いてしまい、パディングでボタンが引き伸ばされ、
     border-radiusも0に上書きされ、中のsvgが幅0に潰れて見えなくなる不具合を修正。
     #sk-nav.sk-nav--open .sk-nav__si は(1,2,0)の詳細度で#sk-nav.sk-nav--open a
     (1,1,1)より高くし、確実に上書きする。2026-07-08追加 */
  #sk-nav.sk-nav--open .sk-nav__si{
    display:flex !important;align-items:center !important;justify-content:center !important;
    width:38px !important;height:38px !important;min-width:38px !important;min-height:38px !important;
    flex-shrink:0 !important;
    padding:0 !important;margin:0 !important;font-size:0 !important;font-weight:400 !important;
    border:1.5px solid #1B2C7A !important;border-radius:50% !important;
    color:#1B2C7A !important;background:transparent !important;
    text-decoration:none;transition:background .2s,color .2s;
  }
  #sk-nav.sk-nav--open .sk-nav__si:active{background:#1B2C7A !important;color:#fff !important;}
  #sk-nav.sk-nav--open .sk-nav__si svg{width:18px !important;height:18px !important;flex-shrink:0 !important;display:block !important;}
  /* ヒーロー：モバイルではカード(.sk-hero__in)が幅90%まで広がり、
     背景画像(background-size:100% auto)の高さがカードの実際の高さに
     足りず白い余白が出てしまうため、常にセクション全体を覆うcoverに変更。2026-07-08追加 */
  .sk-hero{background-size:cover !important;background-position:center top !important;}
  .sk-hero__in{width:90%;margin:5vw auto;padding:6vw 24px;}
  /* タグ・タイトルもコンパクト化して数字部分・サブテキストと横幅のバランスを揃える。
     サブテキストはモバイルのみ3行に分割。2026-07-08追加 */
  .sk-hero__tag{font-size:15px !important;}
  .sk-hero__ttl{font-size:26px !important;white-space:nowrap !important;}
  .sk-hero__sub-brk{display:block !important;}
  /* カード幅を縮めてグラデーションのラインも短くし、背景の選手写真が
     右側によく見えるように調整。2026-07-08追加 */
  .sk-hero__in{width:fit-content !important;max-width:82% !important;margin:5vw auto 5vw 6vw !important;}
  /* カードがCHAMPIONS CUPの幅に合わせてfit-contentになったため、
     下線もCUPの真下まで届くよう幅いっぱいに戻す。2026-07-08追加 */
  .sk-hero__bar{width:100% !important;}
  /* 数字部分（大会の歴史・参加校など）がカード幅いっぱいに広がり、
     背景の選手写真をほぼ隠してしまっていたため、コンパクトにして左寄せに変更。
     写真が右側に見えるようにする。2026-07-08追加 */
  /* カードをCHAMPIONS CUPの幅まで詰めた(fit-content)ため、数字部分は
     align-self:flex-startのまま(auto列)だと右側に余白ができてしまう。
     カードの幅いっぱいに2列を均等に広げて余白を埋める。2026-07-08追加 */
  .sk-hero__stats{
    grid-template-columns:repeat(2,1fr) !important;
    align-self:stretch !important;
    gap:0 20px !important;
    padding-top:10px !important;
  }
  .sk-hero__stat{
    align-items:flex-start !important;
    text-align:left !important;
    padding:8px 4px 8px 0 !important;
  }
  .sk-hero__stat-n{font-size:26px !important;}
  .sk-hero__stat-n span{font-size:12px !important;}
  .sk-hero__stat-l{font-size:10px !important;}
  .sk-bnrs__grid{grid-template-columns:repeat(2,1fr);}
  .sk-bc{min-height:240px;}
  .sk-rnk{grid-template-columns:repeat(2,1fr);}
  /* 結果カード（1位〜4位）の縦の余白が大きすぎるため、数字サイズ・
     余白を詰めてコンパクトに。2026-07-08追加 */
  .sk-rnk__c{padding:14px 10px 12px !important;}
  .sk-rnk__n{font-size:34px !important;}
  .sk-rnk__c::before{margin:6px auto !important;}
  .sk-rnk__l{margin-bottom:6px !important;font-size:9px !important;}
  .sk-rnk__c p{font-size:12px !important;}
  .sk-rnk__c--1 p{font-size:13px !important;}
  .sk-mch{grid-template-columns:repeat(2,1fr);}
  .sk-res__btns{flex-direction:column;align-items:center;}
  .sk-res__btns .sk-btn{width:100%;max-width:400px;justify-content:center;}
  .sk-nws__bd{grid-template-columns:1fr;}
  .sk-nm__img{height:240px;}
  /* 旧デザインの裸のfooter{padding:48px 40px 24px}がfooter.sk-ftにも効いて
     しまい、.sk-ct の左右余白(20px)と二重になって余白が大きすぎる不具合を修正。
     2026-07-08追加 */
  .sk-ft{padding-left:0 !important;padding-right:0 !important;}
  .sk-ft__grid{grid-template-columns:1fr;}
  .sk-ft__logo{height:56px;}
  .sk-ft__nav-grid{display:block !important;border-spacing:0 !important;}
  /* 同じ旧ヘッダーCSSの裸のnav{position:fixed;top:60px;...}指定がフッターナビ
     (.sk-ft__nav-grid も<nav>要素)にも効いてしまい、モバイル幅でフッターまで
     スクロールすると画面上部に固定表示されてしまう不具合をクラス指定で上書き。2026-07-08追加 */
  .sk-ft__nav-grid{position:static !important;top:auto !important;left:auto !important;right:auto !important;background:none !important;padding:0 !important;border-top:none !important;box-shadow:none !important;z-index:auto !important;}
  .sk-ft__nav-col{display:block !important;width:100% !important;margin-bottom:8px;}
  .sk-ft__bottom{flex-wrap:wrap;justify-content:flex-start;row-gap:8px;}
  .sk-ft__credit{flex-basis:100%;width:100%;text-align:left;white-space:normal;margin-bottom:2px;}
  .sk-ft__sns{margin-left:0;}
  /* スポンサーページ：モバイルでは協賛校を縦並び、協賛企業を2列（3段）に。2026-07-08追加 */
  .sk-sls--sch{grid-template-columns:1fr;}
  .sk-sls--co{grid-template-columns:repeat(2,1fr);}
  .sk-ads{grid-template-columns:repeat(2,1fr);}
@media(max-width:540px){
  .sk-bnrs__grid{grid-template-columns:1fr;}
  .sk-bc{min-height:200px;}
}
}
@media(max-width:480px){
  .sk-rnk{grid-template-columns:1fr 1fr;}
  .sk-mch{grid-template-columns:1fr;}
  .sk-ads{grid-template-columns:1fr 1fr;}
}

/* =========================================================
   TOP TOURNAMENT CARDS – reference design integration
   既存の SK-* 指定を末尾で上書き
========================================================= */
.sk-bnrs{
  padding:clamp(36px,5vw,72px) 14px;
  background:#fafafa;
}
.sk-bnrs__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  width:100%;
  max-width:1280px;
  margin:0 auto;
}
.sk-bc{
  --sk-card-color:#12386f;
  position:relative;
  isolation:isolate;
  display:flex;
  min-height:460px;
  overflow:hidden;
  border:1px solid #e1e1e1;
  border-radius:10px;
  background:#fff;
  box-shadow:0 1px 6px rgba(0,0,0,.05);
  color:#151515;
  text-decoration:none;
  transition:box-shadow .3s ease,transform .3s ease;
}
.sk-bc--fn{--sk-card-color:#12386f;}
.sk-bc--tk{--sk-card-color:#22853b;}
.sk-bc--hs{--sk-card-color:#484848;}
.sk-bc--ev{--sk-card-color:#ef7200;}
.sk-bc:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 32px rgba(0,0,0,.12);
}
.sk-bc__bg{
  position:absolute;
  z-index:-2;
  inset:0;
  opacity:1;
  background-repeat:no-repeat;
  background-position:center;
  background-size:cover;
  clip-path:polygon(68% 0,100% 0,100% 100%,30% 100%);
  transform:scale(1.012);
  transition:transform .5s ease,filter .5s ease;
}
.sk-bc:hover .sk-bc__bg{
  transform:scale(1.045);
  filter:saturate(1.08);
}
.sk-bc--hs .sk-bc__bg{filter:grayscale(1);}
.sk-bc--hs:hover .sk-bc__bg{filter:grayscale(1) contrast(1.06);}
.sk-bc__ov,
.sk-bc--fn .sk-bc__ov,
.sk-bc--tk .sk-bc__ov,
.sk-bc--hs .sk-bc__ov,
.sk-bc--ev .sk-bc__ov{
  position:absolute;
  z-index:-1;
  inset:0;
  background:linear-gradient(90deg,#fff 0%,#fff 49%,rgba(255,255,255,.95) 57%,rgba(255,255,255,0) 73%);
  pointer-events:none;
}
.sk-bc__bd{
  position:relative;
  z-index:1;
  display:flex;
  flex:1;
  min-height:460px;
  padding:28px 24px 24px;
  flex-direction:column;
  align-items:flex-start;
}
.sk-bc__num{
  display:block;
  color:var(--sk-card-color);
  font-family:'Noto Sans JP',sans-serif;
  font-size:28px;
  font-weight:900;
  line-height:1;
  letter-spacing:-.04em;
}
.sk-bc__en{
  display:block;
  margin-top:9px;
  margin-bottom:0;
  padding:0;
  color:var(--sk-card-color);
  font-size:11px;
  font-weight:900;
  line-height:1.35;
  letter-spacing:.015em;
}
.sk-bc__ttl,
.sk-bc--fn .sk-bc__ttl,
.sk-bc--tk .sk-bc__ttl,
.sk-bc--hs .sk-bc__ttl,
.sk-bc--ev .sk-bc__ttl{
  max-width:78%;
  margin:24px 0 0;
  padding:0;
  background:none;
  color:var(--sk-card-color);
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(24px,2vw,32px);
  font-weight:900;
  line-height:1.2;
  letter-spacing:-.04em;
}
.sk-bc__ttl small{font-size:.5em;white-space:nowrap;}
.sk-bc__rule{
  display:block;
  width:38px;
  height:3px;
  margin-top:27px;
  background:var(--sk-card-color);
}
.sk-bc__bd p{
  flex:none;
  max-width:69%;
  margin:22px 0 0;
  padding:0;
  color:#151515;
  font-size:13px;
  font-weight:700;
  line-height:1.8;
}
.sk-bc__lk,
.sk-bc--fn .sk-bc__lk,
.sk-bc--tk .sk-bc__lk,
.sk-bc--hs .sk-bc__lk,
.sk-bc--ev .sk-bc__lk{
  display:inline-flex;
  gap:12px;
  align-items:center;
  align-self:flex-start;
  margin:auto 0 0;
  padding:11px 16px;
  border:0;
  border-radius:4px;
  background:var(--sk-card-color);
  color:#fff;
  font-size:13px;
  font-weight:900;
  line-height:1;
  letter-spacing:0;
  transition:gap .25s ease;
}
.sk-bc__lk b{font-weight:900;}
.sk-bc:hover .sk-bc__lk{gap:18px;border-color:var(--sk-card-color);filter:brightness(1.1);}
.sk-bc:focus-visible{outline:3px solid var(--sk-card-color);outline-offset:3px;}

@media(max-width:1180px){
  .sk-bnrs__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sk-bc,.sk-bc__bd{min-height:440px;}
  .sk-bc__ttl{font-size:30px;}
}
@media(max-width:640px){
  .sk-bnrs{padding:32px 14px;}
  .sk-bnrs__grid{
    display:flex;
    gap:12px;
    overflow-x:auto;
    padding:3px 1px 16px;
    scroll-snap-type:x mandatory;
    scrollbar-width:thin;
  }
  .sk-bc{
    flex:0 0 min(86vw,360px);
    min-height:440px;
    scroll-snap-align:center;
  }
  .sk-bc__bd{min-height:440px;padding:26px 22px 22px;}
  .sk-bc__bg{clip-path:polygon(69% 0,100% 0,100% 100%,21% 100%);}
  .sk-bc__ov,
  .sk-bc--fn .sk-bc__ov,
  .sk-bc--tk .sk-bc__ov,
  .sk-bc--hs .sk-bc__ov,
  .sk-bc--ev .sk-bc__ov{
    background:linear-gradient(90deg,#fff 0%,#fff 48%,rgba(255,255,255,.92) 60%,rgba(255,255,255,0) 78%);
  }
  .sk-bc__num{font-size:27px;}
  .sk-bc__ttl{margin-top:22px;font-size:29px;}
  .sk-bc__rule{margin-top:24px;}
  .sk-bc__bd p{max-width:72%;margin-top:20px;font-size:13px;}
  .sk-bc__lk{font-size:13px;}
}
@media(prefers-reduced-motion:reduce){
  .sk-bc,.sk-bc__bg,.sk-bc__lk{transition:none;}
}

/* =========================================================
   TOURNAMENT CARDS v3 – featured layout
========================================================= */
.sk-bnrs{
  padding:28px 0 42px;
  background:linear-gradient(135deg,#f8fafc 0%,#fff 55%,#f7f8fa 100%);
}
.sk-bnrs__title{
  width:100%;
  margin:0 auto 24px;
  color:#102b4d;
  font-family:'Noto Sans JP',sans-serif;
  font-size:20px;
  font-weight:900;
  letter-spacing:.02em;
}
.sk-bnrs__grid{
  grid-template-columns:minmax(0,1.9fr) repeat(3,minmax(0,1fr));
  gap:12px;
  max-width:none;
}
.sk-bc,
.sk-bc__bd{
  min-height:520px;
}
.sk-bc{
  border:0;
  border-radius:9px;
  box-shadow:0 1px 3px rgba(15,39,69,.08);
}
.sk-bc__bg{
  clip-path:none;
  background-position:center bottom;
  transform:scale(1.005);
}
.sk-bc__ov,
.sk-bc--fn .sk-bc__ov,
.sk-bc--tk .sk-bc__ov,
.sk-bc--hs .sk-bc__ov,
.sk-bc--ev .sk-bc__ov{
  background:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.92) 36%,rgba(255,255,255,.35) 65%,rgba(255,255,255,0) 100%);
}
.sk-bc--fn .sk-bc__ov{
  background:linear-gradient(90deg,rgba(4,28,58,.72) 0%,rgba(5,36,70,.46) 48%,rgba(5,28,55,.06) 100%);
}
.sk-bc--ev .sk-bc__ov{
  background:linear-gradient(180deg,rgba(255,249,235,.98) 0%,rgba(255,248,231,.9) 45%,rgba(255,180,30,.1) 72%,rgba(239,114,0,.18) 100%);
}
.sk-bc__bd{
  padding:52px 28px 28px;
}
.sk-bc__num{display:none;}
.sk-bc__en{
  display:flex;
  gap:9px;
  align-items:center;
  margin:0;
  font-size:12px;
  letter-spacing:.025em;
}
.sk-bc__en svg{
  width:25px;
  height:25px;
  flex:0 0 25px;
  fill:currentColor;
}
.sk-bc__ttl,
.sk-bc--fn .sk-bc__ttl,
.sk-bc--tk .sk-bc__ttl,
.sk-bc--hs .sk-bc__ttl,
.sk-bc--ev .sk-bc__ttl{
  max-width:100%;
  margin-top:25px;
  font-size:clamp(27px,2.7vw,42px);
  line-height:1.08;
  white-space:nowrap;
}
.sk-bc--fn .sk-bc__ttl{
  color:#fff;
  font-size:clamp(38px,4vw,58px);
  text-shadow:0 2px 12px rgba(0,0,0,.35);
}
.sk-bc__ttl small{
  display:block;
  margin-top:8px;
  font-size:.55em;
}
.sk-bc__rule{
  width:38px;
  height:2px;
  margin-top:25px;
}
.sk-bc__bd p{
  max-width:100%;
  margin-top:24px;
  color:#102b4d;
  font-size:13px;
  line-height:1.8;
}
.sk-bc--fn .sk-bc__en,
.sk-bc--fn .sk-bc__bd p{
  color:#fff;
  text-shadow:0 1px 8px rgba(0,0,0,.45);
}
.sk-bc--fn .sk-bc__rule{background:#fff;}
.sk-bc__lk,
.sk-bc--fn .sk-bc__lk,
.sk-bc--tk .sk-bc__lk,
.sk-bc--hs .sk-bc__lk,
.sk-bc--ev .sk-bc__lk{
  min-width:152px;
  justify-content:space-between;
  margin-top:auto;
  padding:14px 20px;
  border:2px solid var(--sk-card-color);
  border-radius:5px;
  background:rgba(255,255,255,.95);
  color:var(--sk-card-color);
  box-shadow:0 2px 8px rgba(0,0,0,.08);
  font-size:13px;
}
.sk-bc--fn .sk-bc__lk{
  border-color:#fff;
  color:#102b4d;
}
.sk-bc:hover .sk-bc__lk{
  gap:12px;
  border-color:var(--sk-card-color);
  background:#fff;
  filter:none;
}
.sk-bc--fn:hover .sk-bc__lk{border-color:#fff;}

@media(max-width:1100px){
  .sk-bnrs__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sk-bc,.sk-bc__bd{min-height:500px;}
  .sk-bc--fn .sk-bc__ttl{font-size:46px;}
}
@media(max-width:640px){
  .sk-bnrs{padding:24px 0 34px;}
  .sk-bnrs__title{margin-bottom:18px;font-size:18px;}
  .sk-bnrs__grid{display:flex;gap:12px;}
  .sk-bc{flex-basis:min(84vw,340px);}
  .sk-bc,.sk-bc__bd{min-height:470px;}
  .sk-bc__bd{padding:38px 24px 24px;}
  .sk-bc--fn .sk-bc__ttl{font-size:42px;}
  .sk-bc__ttl{font-size:31px;}
}

/* =========================================================
   TOP PAGE – TOURNAMENT BANNERS / proposal 3
   専用クラスのため、上に残る旧SKバナーCSSの影響を受けません。
========================================================= */
.cc-tournament-banners,
.cc-tournament-banners *{box-sizing:border-box;}
.cc-tournament-banners{padding:56px 40px;background:#fff;}
.cc-tournament-banners__inner{width:100%;max-width:1200px;margin:0 auto;}
.cc-tournament-banners__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
.cc-tournament-card{
  --card-color:#1b2c7a;
  --card-rgb:27,44,122;
  --card-bg:#aec2e2;
  position:relative;isolation:isolate;display:block;
  min-height:500px;overflow:hidden;
  border:1px solid rgba(var(--card-rgb),.36);border-radius:12px;
  background:var(--card-bg);color:#202b39;text-decoration:none;
  box-shadow:0 2px 10px rgba(18,36,58,.05);
  transform:translate3d(0,0,0);
  transition:transform .7s cubic-bezier(.22,1,.36,1),box-shadow .7s cubic-bezier(.22,1,.36,1),border-color .4s ease;
  will-change:transform;
  backface-visibility:hidden;
}
.cc-tournament-card--final{--card-color:#123e88;--card-rgb:18,62,136;--card-bg:#aec2e2;}
.cc-tournament-card--tokyo{--card-color:#087f31;--card-rgb:8,127,49;--card-bg:#aee0bd;}
.cc-tournament-card--history{--card-color:#414950;--card-rgb:65,73,80;--card-bg:#c1c7cc;}
.cc-tournament-card--event{--card-color:#e65300;--card-rgb:230,83,0;--card-bg:#ffc889;}
.cc-tournament-card:hover{
  transform:translate3d(0,0,0);
  border-color:rgba(var(--card-rgb),.62);
  box-shadow:0 16px 38px rgba(18,36,58,.16);
}
.cc-tournament-card:focus-visible{outline:3px solid var(--card-color);outline-offset:4px;}
.cc-tournament-card__photo{
  position:absolute;z-index:-3;right:0;bottom:0;
  width:88%;height:72%;
  background-repeat:no-repeat;background-position:center bottom;background-size:cover;
  clip-path:polygon(41% 0,100% 0,100% 100%,0 100%);
  filter:saturate(1.2) contrast(1.06);
  transform:translate3d(0,0,0) scale(1.015);
  transform-origin:100% 100%;
  transition:transform .9s cubic-bezier(.16,1,.3,1);
  will-change:transform;
  backface-visibility:hidden;
}
.cc-tournament-card--final .cc-tournament-card__photo{background-position:55% bottom;}
.cc-tournament-card--tokyo .cc-tournament-card__photo{background-position:62% bottom;}
.cc-tournament-card--history .cc-tournament-card__photo{background-position:center bottom;filter:grayscale(1) contrast(.92);}
.cc-tournament-card--event .cc-tournament-card__photo{background-position:58% bottom;}
.cc-tournament-card:hover .cc-tournament-card__photo{transform:translate3d(0,0,0) scale(1.055);}
.cc-tournament-card__graphic{
  position:absolute;z-index:-2;top:-18%;right:-20%;
  width:100%;height:145%;opacity:.92;
  transform:translate3d(0,0,0) skewX(-25deg);
  background:
    repeating-linear-gradient(135deg,transparent 0 9px,rgba(var(--card-rgb),.35) 9px 11px,transparent 11px 19px),
    linear-gradient(135deg,transparent 0 25%,rgba(var(--card-rgb),.22) 25% 40%,transparent 40% 50%,rgba(var(--card-rgb),.4) 50% 58%,transparent 58%);
  clip-path:polygon(38% 0,100% 0,100% 100%,0 100%);
  transition:transform 1s cubic-bezier(.16,1,.3,1),opacity .65s ease;
  will-change:transform;
  backface-visibility:hidden;
}
.cc-tournament-card:hover .cc-tournament-card__graphic{
  transform:translate3d(0,0,0) skewX(-25deg);
  opacity:.96;
}
.cc-tournament-card::after{
  content:"";position:absolute;z-index:-1;inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.78) 0%,rgba(255,255,255,.7) 40%,rgba(255,255,255,.38) 57%,rgba(255,255,255,.01) 100%);
  pointer-events:none;
}
.cc-tournament-card__content{
  display:flex;min-height:500px;padding:62px 34px 32px;
  flex-direction:column;align-items:flex-start;
}
.cc-tournament-card__title{
  margin:0;color:var(--card-color);
  font-family:'Noto Sans JP',sans-serif;font-size:clamp(30px,2.45vw,42px);
  font-weight:700;line-height:1.2;letter-spacing:.01em;white-space:nowrap;
}
.cc-tournament-card__en{
  margin-top:19px;color:var(--card-color);
  font-family:'Montserrat',sans-serif;font-size:13px;font-weight:600;
  line-height:1.4;letter-spacing:.06em;
}
.cc-tournament-card__rule{width:36px;height:3px;margin-top:25px;background:var(--card-color);}
.cc-tournament-card__text{
  margin-top:27px;color:#283444;
  font-family:'Noto Sans JP',sans-serif;font-size:14px;font-weight:400;line-height:1.9;
}
.cc-tournament-card__button{
  display:inline-flex;gap:24px;align-items:center;justify-content:space-between;
  min-width:156px;margin-top:auto;padding:12px 20px;
  border:1.5px solid var(--card-color);border-radius:999px;
  background:rgba(255,255,255,.94);color:var(--card-color);
  font-family:'Montserrat',sans-serif;font-size:12px;font-weight:600;letter-spacing:.08em;
  position:relative;isolation:isolate;overflow:hidden;
  transform:translate3d(0,0,0);
  transition:color .5s ease,box-shadow .5s ease;
}
.cc-tournament-card__button::before{
  content:"";position:absolute;z-index:-1;inset:-1px;
  border-radius:inherit;background:var(--card-color);
  transform:scaleX(0);transform-origin:left center;
  transition:transform .65s cubic-bezier(.22,1,.36,1);
}
.cc-tournament-card__button b{font-size:22px;font-weight:600;line-height:.7;}
.cc-tournament-card:hover .cc-tournament-card__button{
  background:rgba(255,255,255,.94);color:#fff;
  box-shadow:0 8px 22px rgba(var(--card-rgb),.26);
}
.cc-tournament-card:hover .cc-tournament-card__button::before{transform:scaleX(1);}
.cc-tournament-card__button b{transition:transform .65s cubic-bezier(.22,1,.36,1);}
.cc-tournament-card:hover .cc-tournament-card__button b{transform:translate3d(3px,0,0);}
@media(max-width:1024px){
  .cc-tournament-banners{padding:52px 32px;}
  .cc-tournament-banners__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
}
@media(max-width:640px){
  .cc-tournament-banners{padding:36px 20px;}
  .cc-tournament-banners__grid{grid-template-columns:1fr;}
  .cc-tournament-card,.cc-tournament-card__content{min-height:460px;}
  .cc-tournament-card__content{padding:46px 28px 28px;}
  .cc-tournament-card__title{font-size:34px;}
}
@media(prefers-reduced-motion:reduce){
  .cc-tournament-card,.cc-tournament-card__photo,.cc-tournament-card__graphic,
  .cc-tournament-card__button,.cc-tournament-card__button::before{transition:none;}
  .cc-tournament-card:hover,.cc-tournament-card:hover .cc-tournament-card__photo,
  .cc-tournament-card:hover .cc-tournament-card__graphic,.cc-tournament-card:hover .cc-tournament-card__button{
    transform:none;
  }
}

/* =========================================================
   TOURNAMENT CARDS – completed image layout
========================================================= */
.cc-tournament-banners{padding:48px 40px;background:#fff;}
.cc-tournament-banners__inner{max-width:1200px;}
.cc-tournament-banners__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start;}
.cc-tournament-card{
  min-height:0;overflow:hidden;border:0;border-radius:10px;
  background:#fff;line-height:0;
  transform:translateZ(0);
  box-shadow:0 2px 9px rgba(18,36,58,.08);
  transition:box-shadow .55s ease,border-color .55s ease;
  will-change:auto;
}
.cc-tournament-card:hover{
  transform:translateZ(0);
  border-color:transparent;
  box-shadow:0 12px 30px rgba(18,36,58,.16);
}
.cc-tournament-card__image{
  display:block;width:100%;height:auto;aspect-ratio:2/3;
  object-fit:cover;border-radius:inherit;
}
@media(max-width:1024px){
  .cc-tournament-banners{padding:44px 32px;}
  .cc-tournament-banners__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
}
@media(max-width:640px){
  .cc-tournament-banners{padding:32px 20px;}
  .cc-tournament-banners__grid{grid-template-columns:1fr;gap:18px;}
}

/* =========================================================
   TOURNAMENT CARDS v6 – unified live text + smooth hover
========================================================= */
.cc-tournament-banners{padding:48px 40px;background:#fff;}
.cc-tournament-banners__inner{width:100%;max-width:1200px;margin:0 auto;}
.cc-tournament-banners__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:stretch;}
.cc-tournament-card{
  --card-color:#1b2c7a;--card-rgb:27,44,122;
  position:relative;isolation:isolate;display:block;
  min-height:500px;overflow:hidden;
  border:1px solid rgba(var(--card-rgb),.34);border-radius:11px;
  background:#fff;color:#172638;line-height:normal;text-decoration:none;
  transform:translateZ(0);backface-visibility:hidden;
  box-shadow:0 3px 12px rgba(18,36,58,.08);
  transition:box-shadow .6s cubic-bezier(.22,1,.36,1),border-color .45s ease;
  will-change:auto;
}
.cc-tournament-card--final{--card-color:#1b2c7a;--card-rgb:27,44,122;}
.cc-tournament-card--tokyo{--card-color:#2aa84a;--card-rgb:42,168,74;}
.cc-tournament-card--history{--card-color:#555c62;--card-rgb:85,92,98;}
.cc-tournament-card--event{--card-color:#f36c00;--card-rgb:243,108,0;}
.cc-tournament-card:hover{
  transform:translateZ(0);border-color:rgba(var(--card-rgb),.6);
  box-shadow:0 16px 38px rgba(18,36,58,.16);
}
.cc-tournament-card__photo{
  position:absolute;z-index:-3;right:-1px;bottom:-1px;
  width:90%;height:74%;
  background-repeat:no-repeat;background-position:center bottom;background-size:cover;
  clip-path:polygon(41% 0,100% 0,100% 100%,0 100%);
  transform:translateZ(0) scale(1.01);transform-origin:right bottom;
  backface-visibility:hidden;will-change:transform;
  transition:transform 1.05s cubic-bezier(.16,1,.3,1);
}
.cc-tournament-card--final .cc-tournament-card__photo{background-position:55% bottom;}
.cc-tournament-card--tokyo .cc-tournament-card__photo{background-position:62% bottom;}
.cc-tournament-card--history .cc-tournament-card__photo{background-position:center bottom;filter:grayscale(1) contrast(.96);}
.cc-tournament-card--event .cc-tournament-card__photo{background-position:58% bottom;}
.cc-tournament-card:hover .cc-tournament-card__photo{transform:translateZ(0) scale(1.055);}
.cc-tournament-card__graphic{
  position:absolute;z-index:-2;top:-20%;right:-22%;
  width:98%;height:145%;opacity:1;
  transform:skewX(-25deg);backface-visibility:hidden;
  background:linear-gradient(90deg,
    rgba(var(--card-rgb),.08) 0 28%,transparent 28% 32%,
    rgba(var(--card-rgb),.18) 32% 59%,transparent 59% 63%,
    rgba(var(--card-rgb),.34) 63% 100%);
  clip-path:polygon(35% 0,100% 0,100% 100%,0 100%);
  transition:opacity .6s ease;
}
.cc-tournament-card__graphic::before,
.cc-tournament-card__graphic::after{
  content:"";position:absolute;left:5%;width:36%;height:18%;opacity:.42;
  background:radial-gradient(circle,rgba(var(--card-rgb),.72) 1px,transparent 1.6px);
  background-size:8px 8px;
  mask-image:linear-gradient(90deg,transparent,#000 35%,transparent);
}
.cc-tournament-card__graphic::before{top:10%;}
.cc-tournament-card__graphic::after{bottom:10%;}
.cc-tournament-card::after{
  content:"";position:absolute;z-index:-1;inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.95) 45%,rgba(255,255,255,.7) 59%,rgba(255,255,255,.04) 100%);
  pointer-events:none;
}
.cc-tournament-card__content{
  display:grid;grid-template-rows:52px 38px 3px 1fr 48px;
  row-gap:0;min-height:500px;padding:50px 28px 30px;
  align-items:start;
}
.cc-tournament-card__title{
  align-self:start;margin:0;color:var(--card-color);
  font-family:'Noto Sans JP',sans-serif;font-size:32px;font-weight:700;
  line-height:1.2;letter-spacing:0;white-space:nowrap;
}
.cc-tournament-card__en{
  align-self:start;margin:0;color:var(--card-color);
  font-family:'Montserrat',sans-serif;font-size:12px;font-weight:600;
  line-height:1.4;letter-spacing:.055em;white-space:nowrap;
}
.cc-tournament-card__rule{align-self:start;width:36px;height:3px;margin:0;background:var(--card-color);}
.cc-tournament-card__text{
  align-self:start;margin:26px 0 0;color:#223144;
  font-family:'Noto Sans JP',sans-serif;font-size:13px;font-weight:400;
  line-height:1.9;white-space:nowrap;
}
.cc-tournament-card__button{
  position:relative;isolation:isolate;align-self:end;overflow:hidden;
  display:inline-flex;align-items:center;justify-content:space-between;gap:22px;
  width:158px;height:48px;margin:0;padding:0 19px;
  border:1.5px solid var(--card-color);border-radius:999px;
  background:rgba(255,255,255,.94);color:var(--card-color);
  font-family:'Montserrat',sans-serif;font-size:12px;font-weight:600;letter-spacing:.075em;
  transition:color .5s ease,box-shadow .5s ease;
}
.cc-tournament-card__button::before{
  content:"";position:absolute;z-index:-1;inset:-1px;
  border-radius:inherit;background:var(--card-color);
  transform:scaleX(0);transform-origin:left center;
  transition:transform .68s cubic-bezier(.22,1,.36,1);
}
.cc-tournament-card__button b{
  font-size:21px;font-weight:600;line-height:1;
  transition:transform .68s cubic-bezier(.22,1,.36,1);
}
.cc-tournament-card:hover .cc-tournament-card__button{color:#fff;box-shadow:0 8px 20px rgba(var(--card-rgb),.24);}
.cc-tournament-card:hover .cc-tournament-card__button::before{transform:scaleX(1);}
.cc-tournament-card:hover .cc-tournament-card__button b{transform:translateX(3px);}
@media(max-width:1024px){
  .cc-tournament-banners{padding:44px 32px;}
  .cc-tournament-banners__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
}
@media(max-width:640px){
  .cc-tournament-banners{padding:32px 20px;}
  .cc-tournament-banners__grid{grid-template-columns:1fr;gap:18px;}
  .cc-tournament-card,.cc-tournament-card__content{min-height:470px;}
  .cc-tournament-card__content{grid-template-rows:50px 36px 3px 1fr 48px;padding:42px 26px 26px;}
  .cc-tournament-card__title{font-size:31px;}
}
@media(prefers-reduced-motion:reduce){
  .cc-tournament-card,.cc-tournament-card__photo,
  .cc-tournament-card__button,.cc-tournament-card__button::before,
  .cc-tournament-card__button b{transition:none;}
}

/* =========================================================
   TOURNAMENT CARDS v7 – use uploaded backgrounds as-is
========================================================= */
.cc-tournament-card{
  aspect-ratio:2/3;min-height:0;border:0;background:#fff;
}
.cc-tournament-card__photo{
  z-index:0;inset:0;width:100%;height:100%;
  background-position:center;background-size:100% 100%;
  clip-path:none;filter:none;
  transform:none;transition:none;will-change:auto;
}
.cc-tournament-card:hover .cc-tournament-card__photo{transform:none;}
.cc-tournament-card__graphic{display:none;}
.cc-tournament-card::after{display:none;}
.cc-tournament-card__content{
  position:relative;z-index:1;height:100%;min-height:0;
  grid-template-rows:7% 12.5% 9.5% 1% 1fr 11.5%;
  padding:10.5% 8.5% 7%;
}
.cc-tournament-card__eyebrow{
  align-self:start;margin:0;color:var(--card-color);
  font-family:'Montserrat',sans-serif;font-size:13px;font-weight:700;
  line-height:1.2;letter-spacing:.08em;white-space:nowrap;
}
.cc-tournament-card__title{font-size:clamp(25px,2.45vw,32px);}
.cc-tournament-card__en{font-size:12px;}
.cc-tournament-card__text{margin-top:24px;font-size:13px;}
.cc-tournament-card__button{width:158px;height:46px;}
.cc-tournament-card--coming{cursor:default;}
.cc-tournament-card--coming .cc-tournament-card__button{
  width:176px;justify-content:center;pointer-events:none;
}
.cc-tournament-card--coming .cc-tournament-card__button::before{display:none;}
.cc-tournament-card--coming:hover .cc-tournament-card__button{
  color:var(--card-color);box-shadow:none;
}
@media(max-width:1024px){
  .cc-tournament-card__title{font-size:32px;}
}
@media(max-width:640px){
  .cc-tournament-card{width:100%;max-width:420px;justify-self:center;}
  .cc-tournament-card__content{height:100%;min-height:0;padding:10.5% 8.5% 7%;}
}

/* =========================================================
   TOURNAMENT CARDS – モバイル横長カード化（幅768px以下）
   スマホで各カードが縦長（幅の約1.5倍の高さ）になり見づらいとの
   指摘のため、画像を左・テキストを右に並べる横長リスト形式に変更。
   カード自体・PC表示は変更しない。2026-07-08追加
========================================================= */
@media(max-width:768px){
  .cc-tournament-card{
    aspect-ratio:auto !important;
    display:flex !important;
    flex-direction:row-reverse !important;
    align-items:stretch !important;
    height:auto !important;
    min-height:0 !important;
    width:100% !important;
    max-width:none !important;
  }
  .cc-tournament-card__photo{
    position:relative !important;
    inset:auto !important;
    flex:0 0 96px !important;
    width:96px !important;
    height:auto !important;
    background-size:cover !important;
    border-radius:0 11px 11px 0 !important;
  }
  .cc-tournament-card__content{
    position:relative !important;
    z-index:1 !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    height:auto !important;
    min-height:0 !important;
    grid-template-rows:none !important;
    padding:14px 16px !important;
    flex:1 1 auto !important;
    min-width:0 !important;
    gap:4px !important;
  }
  .cc-tournament-card__eyebrow{font-size:10px !important;margin:0 !important;}
  .cc-tournament-card__title{
    font-size:17px !important;
    white-space:normal !important;
    line-height:1.3 !important;
    margin:0 !important;
  }
  .cc-tournament-card__en,
  .cc-tournament-card__rule{display:none !important;}
  .cc-tournament-card__text{
    display:block !important;
    white-space:normal !important;
    margin:2px 0 0 !important;
    font-size:12px !important;
    line-height:1.5 !important;
    color:#445164 !important;
  }
  .cc-tournament-card__button{
    align-self:flex-start !important;
    width:auto !important;
    height:26px !important;
    margin:6px 0 0 !important;
    padding:0 12px !important;
    gap:6px !important;
    font-size:10px !important;
  }
  .cc-tournament-card__button b{font-size:14px !important;}
  .cc-tournament-card--coming .cc-tournament-card__button{width:auto !important;}
}
