/* WS大会サイト プラグイン用スタイル（新デザイン: 白×濃紺×金） */

/* ===== 変数 ===== */
:root {
  --bg: #ffffff;
  --paper: #fbf8ef;
  --ink: #2b2438;
  --navy: #241b47;
  --navy-deep: #17122b;
  --purple: #4a3a78;
  --gold: #a8862f;
  --gold-bright: #c8ab5a;
  --gold-dim: #8a7433;
  --border: #ddd3b8;
  --sub: #554c6b;
  --red: #a03a35;
  --nav-mute: #9d92bd;
  /* 種目カラー（ロゴ準拠） */
  --c-neo: #2f4a9e;
  --c-trio: #a83a30;
  --c-title: #1e8a45;
  --c-flight: #b8961c;
  --c-free: #d0641f;
  --font-serif: 'Shippori Mincho', serif;
  --font-sans: 'Zen Kaku Gothic New', sans-serif;
}

/* ===== ベース ===== */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: #ffffff;
  color: var(--ink);
  font-family: var(--font-sans);
  line-height: 1.7;
}
img { max-width: 100%; height: auto; }
a { color: var(--purple); }
a:hover { color: var(--gold); }

.site-wrap {
  max-width: 480px;
  margin: 0 auto;
  min-height: 100vh;
  background: var(--bg);
  box-shadow: 0 0 24px rgba(36, 27, 71, 0.12);
}
@media (min-width: 900px) {
  .site-wrap { max-width: none; box-shadow: none; }
}

/* ===== ヘッダー ===== */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--navy);
  color: #f4efe2;
  border-bottom: 2px solid var(--gold);
}
.site-header--static { position: static; }

.site-header__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px 10px;
}
.site-header__brand {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: #f4efe2;
}
.site-header__title {
  font-family: var(--font-serif);
  font-weight: 800;
  font-size: 26px;
  letter-spacing: 0.06em;
  line-height: 1;
}
.site-header__season {
  font-size: 10px;
  font-weight: 700;
  color: var(--gold-bright);
  letter-spacing: 0.16em;
  border: 1px solid rgba(200, 171, 90, 0.6);
  padding: 3px 8px;
}
.site-header__ws-logo { height: 38px; width: auto; object-fit: contain; }

.site-nav { border-top: 1px solid rgba(200, 171, 90, 0.35); }
.site-nav ul {
  list-style: none;
  margin: 0;
  padding: 10px 12px 12px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
}
.site-nav li { display: block; }
.site-nav a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  height: 100%;
  min-height: 46px;
  text-align: center;
  border: 1px solid rgba(200, 171, 90, 0.45);
  background: rgba(255, 255, 255, 0.05);
  color: #f4efe2;
  padding: 7px 4px;
  text-decoration: none;
}
.site-nav a:hover { border-color: var(--gold); background: rgba(200, 171, 90, 0.16); color: #fff; }
.site-nav__jp { font-size: 12px; font-weight: 900; letter-spacing: 0.02em; line-height: 1.3; }
/* 折り返しが必要なときだけ「タイム」の後で改行させる */
.site-nav__jp .w { display: inline-block; }
.site-nav__en { font-size: 8px; font-weight: 700; letter-spacing: 0.14em; color: var(--gold-bright); }
.site-nav li.current-menu-item > a,
.site-nav li.current_page_item > a {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--navy);
}
.site-nav li.current-menu-item > a .site-nav__en,
.site-nav li.current_page_item > a .site-nav__en { color: rgba(36, 27, 71, 0.7); }
@media (min-width: 900px) {
  .site-nav ul { grid-template-columns: repeat(6, 1fr); }
  .site-nav__jp { font-size: 13px; }
  .site-nav__en { font-size: 9px; }
  .site-header__title { font-size: 30px; }
  .site-header__ws-logo { height: 44px; }
}

/* ===== 見出し ===== */
.page-main { padding: 26px 16px 34px; }
.page-eyebrow {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.24em;
  color: var(--gold);
}
.page-title {
  margin: 4px 0 0;
  font-family: var(--font-serif);
  font-size: 25px;
  font-weight: 800;
  color: var(--navy);
  border-bottom: 2px solid var(--navy);
  padding-bottom: 10px;
  margin-bottom: 20px;
}
.section-title {
  margin: 0 0 12px;
  font-family: var(--font-serif);
  font-size: 17px;
  font-weight: 800;
  color: var(--navy);
  display: flex;
  align-items: center;
  gap: 8px;
}
.section-title .dia { color: var(--gold); font-size: 11px; }

/* ===== TOP ===== */
.hero { position: relative; border-bottom: 2px solid var(--gold); }
.hero__img {
  aspect-ratio: 1352 / 680;
  background-size: contain;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-color: #ffffff;
}
.hero__fade { display: none; }

.top-title {
  text-align: center;
  padding: 26px 20px;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
}
.top-title__en {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.32em;
  color: var(--gold-dim);
  font-family: var(--font-serif);
}
.top-title__en::before,
.top-title__en::after {
  content: '';
  display: block;
  width: 40px;
  height: 1px;
  background: var(--gold);
}
.top-title__main {
  margin: 10px 0 8px;
  font-family: var(--font-serif);
  font-weight: 800;
  font-size: 29px;
  line-height: 1.3;
  color: var(--navy);
}
.top-title__sub {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-serif);
  font-size: 14px;
  font-weight: 700;
  color: var(--purple);
}
.top-title__sub .dia { color: var(--gold); font-size: 10px; }
.top-title__lead {
  margin: 14px 0 0;
  font-size: 13px;
  line-height: 2;
  color: var(--sub);
  font-family: var(--font-serif);
}

.btn-entry {
  display: inline-block;
  background: var(--navy);
  color: #f4efe2;
  text-decoration: none;
  font-weight: 700;
  font-size: 14px;
  padding: 15px 44px;
  border: 1px solid var(--navy);
  outline: 1px solid var(--gold);
  outline-offset: -5px;
  letter-spacing: 0.14em;
}
.btn-entry:hover { color: #fff; background: #2f2359; }
.btn-entry-note {
  margin-top: 10px;
  font-size: 11px;
  color: var(--gold-dim);
  font-weight: 700;
  letter-spacing: 0.08em;
}

/* NEWS */
.news-section { padding: 26px 16px 30px; }
.news-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  border-bottom: 2px solid var(--navy);
  padding-bottom: 8px;
  margin-bottom: 2px;
}
.news-head h2 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 21px;
  font-weight: 800;
  color: var(--navy);
  letter-spacing: 0.08em;
}
.news-head .jp {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--gold-dim);
}
.news-list { display: flex; flex-direction: column; }
.news-card {
  display: grid;
  grid-template-columns: auto auto 1fr;
  align-items: baseline;
  gap: 10px;
  padding: 13px 2px;
  border-bottom: 1px solid var(--border);
  text-decoration: none;
  color: inherit;
}
.news-card__meta { display: contents; }
.news-card__date {
  font-size: 11px;
  color: var(--gold-dim);
  font-weight: 700;
  font-family: var(--font-serif);
}
.news-card__tag {
  font-size: 10px;
  font-weight: 700;
  color: var(--purple);
  border: 1px solid var(--purple);
  background: none;
  padding: 1px 8px;
  letter-spacing: 0.06em;
}
.news-card__tag--guest { color: #a03a68; border-color: #a03a68; }
.news-card__tag--booth { color: #2f5f8a; border-color: #2f5f8a; }
.news-card__title {
  font-size: 13px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--ink);
}

/* 開催地 */
.venue-section {
  padding: 26px 16px 30px;
  background: var(--navy);
  color: #f4efe2;
}
.venue-section .news-head { border-bottom-color: var(--gold); margin-bottom: 12px; }
.venue-section .news-head h2 { color: #f4efe2; }
.venue-section .news-head .jp { color: var(--gold-bright); }
.venue-section__lead { display: none; }
.venue-grid { display: flex; flex-direction: column; }
.venue-card {
  display: grid;
  grid-template-columns: 58px 1fr;
  align-items: center;
  gap: 12px;
  padding: 12px 2px;
  border-bottom: 1px solid rgba(200, 171, 90, 0.3);
  background: none;
  border-radius: 0;
}
.venue-card__row { display: contents; }
.venue-card__city {
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 800;
  color: #f4efe2;
}
.venue-card__region { display: none; }
.venue-card__date {
  font-size: 12px;
  font-weight: 700;
  color: var(--gold-bright);
  font-family: var(--font-serif);
}
.venue-card__hall { margin-top: 1px; font-size: 11px; color: #bfb6d6; }
.venue-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 18px;
}
.venue-actions .btn-block { margin-top: 0; padding: 14px 6px; letter-spacing: 0.08em; }
.btn-block {
  display: block;
  width: 100%;
  margin-top: 18px;
  background: none;
  color: #f4efe2;
  border: 1px solid var(--gold);
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 700;
  padding: 14px;
  text-align: center;
  text-decoration: none;
  letter-spacing: 0.12em;
}
.btn-block:hover { color: #fff; background: rgba(200, 171, 90, 0.12); }

/* TOPリンク */
.top-links {
  padding: 26px 16px 34px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: none;
}
.top-links { border: 1px solid var(--border); background: var(--border); }
.top-link-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 5px;
  background: var(--paper);
  border: none;
  border-radius: 0;
  padding: 16px 14px;
  text-decoration: none;
}
.top-link-card__en {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--gold);
}
.top-link-card__label {
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 800;
  color: var(--navy);
}
.top-link-card__more { display: none; }
/* 項目数が奇数のとき最後のカードを全幅にして空欄を作らない */
.top-links .top-link-card:last-child:nth-child(odd) { grid-column: span 2; }

/* topリンクの余白（gridとborderの両立） */
section.top-links { margin: 26px 16px 34px; padding: 0; }

/* ===== 大会情報 ===== */
.format-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 28px; }
.format-card {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 12px;
  align-items: center;
  background: var(--paper);
  border: 1px solid var(--border);
  border-radius: 0;
  padding: 13px 14px;
  text-decoration: none;
  color: inherit;
}
.format-card--neo { border-left: 4px solid var(--c-neo); }
.format-card--trio { border-left: 4px solid var(--c-trio); }
.format-card--title { border-left: 4px solid var(--c-title); }
.format-card--flight { border-left: 4px solid var(--c-flight); }
.format-card--free { border-left: 4px solid var(--c-free); }
.format-card__logo { width: 72px; height: 56px; object-fit: contain; }
.format-card__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.format-card__name { font-size: 15px; font-weight: 900; }
.format-card__name--neo { color: var(--c-neo); }
.format-card__name--trio { color: var(--c-trio); }
.format-card__name--title { color: var(--c-title); }
.format-card__name--flight { color: var(--c-flight); }
.format-card__name--free { color: var(--c-free); }
.format-card__more { flex: 0 0 auto; font-size: 10px; font-weight: 700; color: var(--gold-dim); }
.format-card__lines {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 4px;
  font-size: 12px;
  line-height: 1.7;
  color: var(--sub);
}

.detail-list { display: flex; flex-direction: column; gap: 10px; }
.detail-card {
  background: var(--paper);
  border: 1px solid var(--border);
  border-radius: 0;
  scroll-margin-top: 110px;
}
.detail-card__head {
  color: var(--paper);
  font-size: 13px;
  font-weight: 700;
  padding: 9px 14px;
  letter-spacing: 0.04em;
}
.detail-card__head--neo { background: var(--c-neo); }
.detail-card__head--trio { background: var(--c-trio); }
.detail-card__head--title { background: var(--c-title); }
.detail-card__head--flight { background: var(--c-flight); }
.detail-card__head--free { background: var(--c-free); }
.detail-card__body { padding: 20px 14px; }
.detail-card__coming {
  display: block;
  text-align: center;
  font-family: var(--font-serif);
  font-size: 14px;
  font-weight: 700;
  color: var(--gold-dim);
  letter-spacing: 0.08em;
}

/* ===== タイムスケジュール ===== */
.tt-list { display: flex; flex-direction: column; border-top: 1px solid var(--border); }
.tt-card {
  background: none;
  border: none;
  border-bottom: 1px solid var(--border);
  border-radius: 0;
  padding: 13px 2px;
  margin-bottom: 0;
}
.tt-card__row { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.tt-time {
  flex: 0 0 auto;
  font-family: var(--font-serif);
  font-size: 13px;
  font-weight: 800;
  color: var(--navy);
  background: none;
  border-radius: 0;
  padding: 0;
}
.tt-name { font-size: 13px; font-weight: 900; line-height: 1.5; }
.tt-name--neo { color: var(--c-neo); }
.tt-name--trio { color: var(--c-trio); }
.tt-name--title { color: var(--c-title); }
.tt-name--flight { color: var(--c-flight); }
.tt-name--free { color: var(--c-free); }
.tt-titles { display: flex; flex-direction: column; gap: 3px; margin-top: 7px; }
.tt-titles span { font-size: 11px; font-weight: 500; color: #2b6b46; line-height: 1.6; }
.tt-caution { margin-top: 6px; font-size: 11px; line-height: 1.6; color: var(--red); font-weight: 500; }
.note-red { margin: 12px 0 0; font-size: 11px; color: var(--red); font-weight: 500; line-height: 1.7; }

/* ===== ゲスト&ステージ ===== */
.coming-card {
  border: 1px solid var(--border);
  background: var(--paper);
  border-radius: 0;
  padding: 34px 16px;
  text-align: center;
  margin-bottom: 26px;
}
.coming-card span {
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 700;
  color: var(--gold-dim);
  letter-spacing: 0.08em;
}
.stage-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px; }
.stage-card {
  background: var(--paper);
  border: 1px solid var(--border);
  border-radius: 0;
  padding: 0;
}
.stage-card__row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--border);
  background: rgba(168, 134, 47, 0.07);
}
.stage-card .tt-time { font-size: 13px; }
.stage-card__name { font-size: 13px; font-weight: 900; color: var(--navy); }
.stage-card__lines {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 11px 14px;
  font-size: 12px;
  line-height: 1.8;
  color: var(--sub);
}
.stage-card__cautions {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 0 14px 11px;
  font-size: 11px;
  line-height: 1.6;
  color: var(--red);
  font-weight: 500;
}
.stage-card__lines:last-child, .stage-card__cautions:first-of-type { padding-top: 11px; }

/* ===== 注意事項 ===== */
.notice-list { display: flex; flex-direction: column; gap: 14px; }
.notice-card {
  background: var(--paper);
  border: 1px solid var(--border);
  border-radius: 0;
  padding: 0;
}
.notice-card__title {
  font-family: var(--font-serif);
  font-size: 14px;
  font-weight: 800;
  color: var(--navy);
  margin: 0;
  padding: 10px 14px;
  border-bottom: 1px solid var(--border);
  background: rgba(168, 134, 47, 0.07);
  display: flex;
  align-items: center;
  gap: 8px;
}
.notice-card__title .dia { color: var(--gold); font-size: 10px; }
.notice-card ul {
  margin: 0;
  padding: 12px 14px;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.notice-card li {
  display: grid;
  grid-template-columns: 14px 1fr;
  gap: 4px;
  font-size: 12px;
  line-height: 1.8;
  color: var(--sub);
}
.notice-card li::before { content: '・'; color: var(--gold); font-weight: 700; }

/* ===== 記事（NEWS詳細） ===== */
.entry-content { font-size: 13px; color: var(--sub); }
.entry-content h2 { font-family: var(--font-serif); color: var(--navy); font-size: 17px; }

/* ===== フッター ===== */
.site-footer {
  background: var(--navy-deep);
  color: #bfb6d6;
  padding: 26px 16px 30px;
  text-align: center;
  border-top: 2px solid var(--gold);
}
.site-footer__title {
  font-family: var(--font-serif);
  font-size: 17px;
  font-weight: 800;
  color: #f4efe2;
  letter-spacing: 0.06em;
}
.site-footer__ws-link { display: inline-block; margin-top: 12px; }
.site-footer__ws-logo { height: 40px; width: auto; object-fit: contain; }
.site-footer nav ul {
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 18px;
}
.site-footer nav a {
  color: var(--gold-bright);
  font-size: 11px;
  font-weight: 700;
  text-decoration: none;
  letter-spacing: 0.04em;
}
.site-footer__copy { margin-top: 18px; font-size: 10px; color: #6b5f8e; letter-spacing: 0.06em; }

/* ===== PCレイアウト（900px以上） ===== */
@media (min-width: 900px) {
  body { font-size: 18px; }

  /* ヘッダー: ブランドとナビを1行に */
  .site-header__bar { padding: 20px 5vw 14px; }
  .site-nav ul { padding: 0 5vw 18px; gap: 10px; }
  .site-nav a { min-height: 60px; }
  .site-nav__jp { font-size: 15px; }
  .site-nav__en { font-size: 10px; }

  /* 見出し・余白を拡大 */
  .page-main { padding: 48px 5vw 64px; }
  .page-title { font-size: 34px; }
  .page-eyebrow { font-size: 12px; }
  .section-title { font-size: 22px; }

  /* TOP */
  /* KV: 高さを制限しつつ、画像全体が収まるように表示（見切れ防止） */
  .hero__img {
    aspect-ratio: auto;
    height: min(56vw, 620px);
    background-size: contain !important;
    background-position: 50% 50% !important;
    background-color: #ffffff;
  }
  .top-title { padding: 48px 5vw; }
  .top-title__en { font-size: 13px; }
  .top-title__main { font-size: 44px; }
  .top-title__sub { font-size: 18px; }
  .top-title__lead { font-size: 18px; }
  .btn-entry { font-size: 16px; padding: 17px 56px; }
  .btn-entry-note { font-size: 12px; }
  .news-section { padding: 44px 5vw 52px; }
  .news-head h2 { font-size: 26px; }
  .news-head .jp { font-size: 12px; }
  .news-card { padding: 16px 2px; }
  .news-card__date { font-size: 14px; }
  .news-card__tag { font-size: 12px; }
  .news-card__title { font-size: 18px; }
  .venue-section { padding: 44px 5vw 52px; }

  /* 開催地: 2カラム */
  .venue-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 56px;
  }
  .venue-card { padding: 15px 2px; grid-template-columns: 76px 1fr; }
  .venue-card__city { font-size: 22px; }
  .venue-card__date { font-size: 16px; }
  .venue-card__hall { font-size: 15px; }
  .venue-actions { grid-template-columns: 1fr 1fr; gap: 14px; max-width: 720px; margin-left: auto; margin-right: auto; }
  .btn-block { font-size: 15px; }

  /* コンテンツリンク: 3カラム・全幅化解除 */
  section.top-links { margin: 44px 5vw 64px; grid-template-columns: repeat(3, 1fr); }
  .top-links .top-link-card:last-child:nth-child(odd) { grid-column: auto; }
  .top-link-card { padding: 26px 14px; }
  .top-link-card__en { font-size: 11px; }
  .top-link-card__label { font-size: 20px; }

  /* 大会情報: フォーマットカードを2カラム */
  .format-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
  }
  .format-card { padding: 16px 18px; grid-template-columns: 88px 1fr; }
  .format-card:last-child:nth-child(odd) { grid-column: span 2; }
  .format-card__logo { width: 88px; height: 68px; }
  .format-card__name { font-size: 17px; }
  .format-card__more { font-size: 11px; }
  .format-card__lines { font-size: 16px; }
  .detail-list { gap: 14px; }
  .detail-card__head { font-size: 15px; padding: 11px 18px; }
  .detail-card__coming { font-size: 16px; }

  /* タイムスケジュール: 時間幅を固定し2列風に */
  .tt-card { padding: 17px 6px; }
  .tt-card__row { flex-wrap: nowrap; }
  .tt-time { min-width: 180px; font-size: 18px; }
  .tt-name { font-size: 18px; }
  .tt-titles { margin-left: 192px; }
  .tt-titles span { font-size: 15px; }
  .tt-caution { margin-left: 192px; font-size: 14px; }
  .note-red { font-size: 14px; }

  /* 注意事項・ステージ */
  .stage-card__row { padding: 13px 20px; }
  .stage-card .tt-time { font-size: 17px; min-width: 0; }
  .stage-card__name { font-size: 17px; }
  .stage-card__lines { font-size: 16px; padding-left: 20px; padding-right: 20px; }
  .stage-card__cautions { font-size: 13px; padding-left: 20px; padding-right: 20px; }
  .coming-card span { font-size: 17px; }
  .notice-card__title { padding: 13px 20px; font-size: 16px; }
  .notice-card ul { padding: 16px 20px; }
  .notice-card li { font-size: 16px; }

  /* 記事 */
  .entry-content { font-size: 18px; }

  /* フッター */
  .site-footer { padding: 38px 5vw 44px; }
  .site-footer__title { font-size: 20px; }
  .site-footer nav a { font-size: 13px; }
  .site-footer__copy { font-size: 11px; }
}
