/* ═══════════════════════════════════════════════════════════════
   天才ボートくん 新UI (design_handoff_boatkun_redesign 準拠)
   明るいブルー基調 / Noto Sans JP / 760px ブレークポイント
   トップページ・会場別ページ (body.page-light) にのみ適用
   ═══════════════════════════════════════════════════════════════ */

body.page-light {
  margin: 0; padding: 0; background: #ffffff;
  font-family: 'Noto Sans JP', sans-serif;
  -webkit-font-smoothing: antialiased;
  color: #4b5f7d;
}
body.page-light * { box-sizing: border-box; }
body.page-light a { text-decoration: none; }
body.page-light .site-main { padding: 0; }
body.page-light .container { max-width: none; padding: 0; margin: 0; }

/* ── ヘッダー ── */
.nw-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,.92); backdrop-filter: blur(8px);
  border-bottom: 1px solid #e3edfa;
}
.nw-header-inner {
  max-width: 1120px; margin: 0 auto; padding: 0 24px; height: 60px;
  display: flex; align-items: center; justify-content: space-between;
}
.nw-logo { display: flex; align-items: center; gap: 8px; }
.nw-logo-text { font-size: 18px; font-weight: 900; color: #1d4ed8; letter-spacing: .02em; }
.nw-nav { display: flex; align-items: center; gap: 28px; }
.nw-nav a {
  font-size: 14px; font-weight: 500; color: #4b5f7d;
  padding: 19px 0 17px; border-bottom: 2px solid transparent;
}
.nw-nav a:hover { color: #1d4ed8; }
.nw-nav a.nw-nav-active { font-weight: 700; color: #1d4ed8; border-bottom-color: #1d4ed8; }

/* ── 実測バナー (ライトページ用の上書き) ── */
body.page-light .live-stats-bar {
  background: linear-gradient(90deg, #eef4fd, #f5f9ff);
  color: #14315f; border-bottom: 1px solid #dbe7f7;
  text-align: center; padding: 8px 12px; font-size: 12.5px; font-weight: 700;
}
body.page-light .live-stats-bar strong { color: #1d4ed8; font-size: 15px; }
body.page-light .live-stats-bar .live-stats-note { color: #8296b3; font-weight: 500; font-size: 11px; }

/* ── レイアウト ── */
.nw-main { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.nw-section-title { margin: 0; font-size: 19px; font-weight: 900; color: #14315f; }
.nw-note { font-size: 12px; color: #8296b3; }
.nw-pill-link {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 700; color: #1d4ed8;
  border: 1px solid #c9dcf6; background: #fff; border-radius: 999px; padding: 8px 18px;
}
.nw-pill-link:hover { background: #f0f6ff; }

/* ── ヒーロー (トップ) ── */
.nw-hero {
  position: relative; overflow: hidden;
  background: linear-gradient(135deg, #eaf3ff 0%, #ffffff 45%, #dcecff 100%);
}
.nw-hero-img {
  position: absolute; right: 0; top: 24px; width: 52%; max-width: 620px;
  opacity: .95; pointer-events: none; mix-blend-mode: multiply;
}
.nw-hero-inner { max-width: 1120px; margin: 0 auto; padding: 64px 24px 72px; position: relative; }
.nw-hero h1 {
  margin: 0 0 20px; font-size: 42px; line-height: 1.35; font-weight: 900;
  color: #14315f; letter-spacing: .01em;
}
.nw-hero p { margin: 0 0 28px; font-size: 15px; line-height: 2; color: #4b5f7d; max-width: 440px; }
.nw-date-btn {
  position: relative; display: flex; align-items: center; gap: 10px;
  background: #ffffff; border: 1px solid #c9dcf6; border-radius: 999px;
  padding: 12px 22px; font-family: inherit; font-size: 15px; font-weight: 700;
  color: #14315f; cursor: pointer; box-shadow: 0 2px 8px rgba(29,78,216,.08);
}
.nw-date-btn input[type=date] {
  position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%;
}

/* ── 予想2タイプカード ── */
.nw-two-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 40px; }
.nw-type-card {
  position: relative; overflow: hidden; border-radius: 18px;
  padding: 28px 30px; min-height: 180px;
}
.nw-type-card.nw-blue { background: linear-gradient(135deg, #f4f9ff, #e9f2ff); border: 1px solid #d4e5fb; }
.nw-type-card.nw-pink { background: linear-gradient(135deg, #fff6f9, #ffeaf1); border: 1px solid #fbd8e5; }
.nw-type-card img { position: absolute; right: 18px; top: 24px; width: 128px; mix-blend-mode: multiply; }
.nw-type-badge {
  display: inline-block; color: #fff; font-size: 12px; font-weight: 700;
  padding: 4px 12px; border-radius: 999px;
}
.nw-blue .nw-type-badge { background: #1d4ed8; }
.nw-pink .nw-type-badge { background: #e5407d; }
.nw-type-card h2 { margin: 14px 0 10px; font-size: 26px; font-weight: 900; color: #14315f; }
.nw-pink h2 { color: #7c2246; }
.nw-type-card p { margin: 0 0 20px; font-size: 13px; line-height: 1.9; color: #4b5f7d; max-width: 250px; }
.nw-type-cta {
  display: inline-flex; align-items: center; gap: 8px; color: #fff;
  font-size: 13px; font-weight: 700; padding: 10px 20px; border-radius: 999px;
}
.nw-blue .nw-type-cta { background: #1d4ed8; }
.nw-blue .nw-type-cta:hover { background: #1e40af; }
.nw-pink .nw-type-cta { background: #e5407d; }
.nw-pink .nw-type-cta:hover { background: #c72e67; }

/* ── 実績サマリー ── */
.nw-stats-card {
  margin-top: 40px; background: #ffffff; border: 1px solid #dbe7f7;
  border-radius: 18px; padding: 26px 28px; box-shadow: 0 2px 10px rgba(29,78,216,.05);
}
.nw-stats-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.nw-stats-head-left { display: flex; align-items: baseline; gap: 12px; }
.nw-stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.nw-stat-tile {
  border: 1px solid #e3edfa; border-radius: 14px; padding: 18px 20px;
  background: linear-gradient(180deg, #fbfdff, #f5f9ff);
  display: flex; gap: 14px; align-items: center;
}
.nw-stat-icon {
  width: 44px; height: 44px; border-radius: 12px; color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; font-weight: 900; flex-shrink: 0;
}
.nw-stat-icon.i1 { background: linear-gradient(135deg,#2563eb,#1d4ed8); }
.nw-stat-icon.i2 { background: linear-gradient(135deg,#10b981,#059669); }
.nw-stat-icon.i3 { background: linear-gradient(135deg,#e5407d,#c72e67); }
.nw-stat-icon.i4 { background: linear-gradient(135deg,#8b5cf6,#7c3aed); }
.nw-stat-label { font-size: 12px; font-weight: 700; color: #62789a; }
.nw-stat-value { display: flex; align-items: baseline; gap: 4px; }
.nw-stat-value b { font-size: 26px; font-weight: 900; }
.nw-stat-value .v1 { color: #1d4ed8; } .nw-stat-value .v2 { color: #059669; }
.nw-stat-value .v3 { color: #c72e67; } .nw-stat-value .v4 { color: #7c3aed; }
.nw-stat-unit { font-size: 12px; font-weight: 700; color: #8296b3; }
.nw-stat-sub { font-size: 11px; color: #8296b3; }

/* ── レース場グリッド ── */
.nw-venues { margin-top: 44px; }
.nw-venues-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.nw-legend { display: flex; align-items: center; gap: 10px; }
.nw-legend span { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 700; color: #4b5f7d; }
.nw-legend i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
.nw-venue-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
.nw-venue-chip {
  display: flex; flex-direction: column; justify-content: center; gap: 6px;
  border-radius: 12px; padding: 8px 11px; height: 66px; overflow: hidden;
  transition: transform .15s, box-shadow .15s;
}
a.nw-venue-chip:hover { box-shadow: 0 3px 10px rgba(29,78,216,.14); transform: translateY(-1px); }
.nw-venue-chip .row { display: flex; align-items: center; gap: 6px; min-width: 0; }
.nw-venue-chip .vname { font-size: 13px; font-weight: 800; color: #14315f; white-space: nowrap; }
.nw-venue-chip .vgrade {
  flex-shrink: 0; font-size: 10px; font-weight: 800; color: #fff;
  border-radius: 4px; padding: 1px 5px; background: #0891b2;
}
.nw-venue-chip .vgrade.g1 { background: #dc2626; }
.nw-venue-chip .vpill {
  flex-shrink: 0; font-size: 10px; font-weight: 800; padding: 2px 7px;
  border-radius: 999px; color: #ffffff; white-space: nowrap;
}
.nw-venue-chip .vstatus {
  font-size: 10.5px; font-weight: 700; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis;
}
.nw-venue-chip.st-live { background: #effaf4; border: 1px solid #c0e8d1; }
.nw-venue-chip.st-live .vpill { background: #16a34a; }
.nw-venue-chip.st-live .vstatus { color: #0f8a4d; }
.nw-venue-chip.st-closing { background: #fff8ed; border: 1px solid #fcd9a0; }
.nw-venue-chip.st-closing .vpill { background: #f59e0b; }
.nw-venue-chip.st-closing .vstatus { color: #b45309; }
.nw-venue-chip.st-soon { background: #f0f6ff; border: 1px solid #c9dcf6; }
.nw-venue-chip.st-soon .vpill { background: #1d4ed8; }
.nw-venue-chip.st-soon .vstatus { color: #1d4ed8; }
.nw-venue-chip.st-done { background: #f7fafd; border: 1px solid #e8eff8; }
.nw-venue-chip.st-done .vstatus { color: #62789a; }
.nw-venue-chip.st-idle { background: #f7fafd; border: 1px solid #e8eff8; }
.nw-venue-chip.st-idle .vname { color: #8296b3; }
.nw-venue-chip.st-idle .vstatus { color: #b0bfd3; }

/* ── 枠番バッジ ── */
.nw-waku {
  width: 20px; height: 20px; border-radius: 5px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 900;
}
.nw-waku.md { width: 22px; height: 22px; border-radius: 6px; font-size: 12px; }
.nw-waku.lg { width: 24px; height: 24px; border-radius: 6px; font-size: 12.5px; }
.nw-waku.w1 { background: #f0f0f0; color: #333; border: 1px solid #ccc; }
.nw-waku.w2 { background: #1a1a1a; color: #fff; border: 1px solid #1a1a1a; }
.nw-waku.w3 { background: #dc2626; color: #fff; border: 1px solid #dc2626; }
.nw-waku.w4 { background: #1d4ed8; color: #fff; border: 1px solid #1d4ed8; }
.nw-waku.w5 { background: #eab308; color: #333; border: 1px solid #eab308; }
.nw-waku.w6 { background: #16a34a; color: #fff; border: 1px solid #16a34a; }
.nw-combo { display: inline-flex; align-items: center; gap: 3px; }
.nw-combo .sep { color: #b6c6dd; font-size: 10px; }

/* ── 本日のレース・結果一覧 ── */
.nw-races { margin-top: 44px; }
.nw-races-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.nw-filters { display: flex; gap: 8px; }
.nw-filter-btn {
  font-family: inherit; font-size: 12px; font-weight: 700; padding: 7px 16px;
  border-radius: 999px; border: 1px solid #dbe7f7; background: #fff; color: #4b5f7d; cursor: pointer;
}
.nw-filter-btn.active { background: #1d4ed8; color: #fff; border-color: #1d4ed8; }
.nw-table-wrap {
  background: #fff; border: 1px solid #dbe7f7; border-radius: 16px;
  overflow: hidden; box-shadow: 0 2px 10px rgba(29,78,216,.05);
}
.nw-trow {
  display: grid; grid-template-columns: 1.2fr .8fr .7fr .9fr 1.3fr 1.3fr 1fr .9fr;
  gap: 8px; padding: 15px 22px; align-items: center;
  border-top: 1px solid #edf3fb; font-size: 13px; color: #14315f;
}
a.nw-trow:hover { background: #f7faff; }
.nw-trow.nw-thead {
  padding: 12px 22px; background: #eef4fd; border-top: none;
  font-size: 12px; font-weight: 700; color: #62789a;
}
.nw-trow .c-venue { font-weight: 800; }
.nw-trow .c-grade { font-size: 12px; font-weight: 700; color: #62789a; }
.nw-trow .c-grade.g1 { color: #dc2626; }
.nw-trow .c-rno { font-weight: 700; }
.nw-trow .c-time { color: #4b5f7d; }
.nw-trow .c-payout { font-weight: 800; }
.nw-trow .c-payout.none { color: #b0bfd3; }
.nw-status-pill {
  display: inline-block; font-size: 11px; font-weight: 800;
  padding: 4px 12px; border-radius: 999px;
}
.nw-status-pill.hit { background: #dcf5e7; color: #0f8a4d; }
.nw-status-pill.miss { background: #eef2f7; color: #62789a; }
.nw-status-pill.pre { background: #e0edff; color: #1d4ed8; }
.nw-more-wrap { display: flex; justify-content: center; margin-top: 18px; }
.nw-table-collapsed .nw-trow:nth-child(n+9) { display: none; }

/* ── 的中実績カード ── */
.nw-hits { margin-top: 44px; }
.nw-hits-head { display: flex; align-items: baseline; gap: 10px; margin-bottom: 16px; }
.nw-hits-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.nw-hit-card {
  background: #ffffff; border: 1px solid #dbe7f7; border-radius: 16px;
  padding: 18px 20px; display: flex; flex-direction: column; gap: 8px;
}
.nw-hit-card.manshuu { background: #fffaf0; border-color: #f5dfb8; }
.nw-hit-top { display: flex; align-items: center; justify-content: space-between; }
.nw-hit-race { font-size: 12px; font-weight: 800; color: #62789a; }
.nw-hit-tag {
  font-size: 10px; font-weight: 800; color: #fff;
  padding: 2px 8px; border-radius: 999px; background: #1d4ed8;
}
.nw-hit-tag.manshuu { background: #d97706; }
.nw-hit-payout { font-size: 24px; font-weight: 900; color: #14315f; }
.nw-hit-card.manshuu .nw-hit-payout { color: #b45309; }
.nw-hit-pop { margin-left: 8px; font-size: 12px; color: #8296b3; }

/* ── 選ばれる理由 ── */
.nw-reasons { margin-top: 52px; }
.nw-reasons-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
  border-top: 1px solid #e3edfa; border-bottom: 1px solid #e3edfa;
}
.nw-reason { padding: 28px 22px; border-left: 1px solid #e3edfa; display: flex; flex-direction: column; gap: 10px; }
.nw-reason-icon {
  width: 46px; height: 46px; border-radius: 12px; background: #eaf3ff;
  display: flex; align-items: center; justify-content: center;
  font-size: 15px; font-weight: 900; color: #1d4ed8;
}
.nw-reason h3 { margin: 0; font-size: 15px; font-weight: 800; color: #14315f; }
.nw-reason p { margin: 0; font-size: 12.5px; line-height: 1.9; color: #4b5f7d; }

/* ── CTA バナー ── */
.nw-cta {
  margin: 52px 0 0; position: relative; overflow: hidden;
  background: linear-gradient(90deg, #1d4ed8, #4f46e5 60%, #7c3aed);
  border-radius: 18px; padding: 30px 36px;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
.nw-cta-left { display: flex; align-items: center; gap: 22px; }
.nw-cta-left img { width: 74px; border-radius: 10px; }
.nw-cta-title { font-size: 21px; font-weight: 900; color: #fff; }
.nw-cta-sub { font-size: 13px; color: rgba(255,255,255,.85); margin-top: 6px; }
.nw-cta-btn {
  flex-shrink: 0; background: #fbbf24; color: #14315f; font-size: 14px;
  font-weight: 900; padding: 14px 30px; border-radius: 999px;
  box-shadow: 0 4px 14px rgba(0,0,0,.18);
}
.nw-cta-btn:hover { background: #f59e0b; }

/* ── フッター ── */
.nw-footer { margin-top: 56px; border-top: 1px solid #e3edfa; padding: 40px 0 28px; }
.nw-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 32px; }
.nw-footer-logo { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.nw-footer-logo span { font-size: 16px; font-weight: 900; color: #1d4ed8; }
.nw-footer p { margin: 0; font-size: 12px; line-height: 1.9; color: #62789a; }
.nw-footer-coltitle { font-size: 12px; font-weight: 800; color: #8296b3; margin-bottom: 12px; }
.nw-footer-links { display: flex; flex-direction: column; gap: 9px; }
.nw-footer-links a { font-size: 13px; color: #14315f; }
.nw-footer-links a:hover { color: #1d4ed8; }
.nw-footer-notice {
  background: #f5f9ff; border: 1px solid #e3edfa; border-radius: 12px;
  padding: 12px 16px; font-size: 11.5px; line-height: 1.8; color: #62789a;
}
.nw-footer-bottom {
  margin-top: 32px; padding-top: 18px; border-top: 1px solid #edf3fb;
  display: flex; justify-content: space-between; font-size: 11.5px; color: #8296b3;
}

/* ═══ 会場別ページ ═══ */
.nw-vhero {
  position: relative; overflow: hidden;
  background: linear-gradient(160deg, #f2f8ff 0%, #ffffff 60%);
}
.nw-vhero-img {
  position: absolute; right: 0; top: 0; height: 100%; width: 62%;
  object-fit: cover; object-position: right top; pointer-events: none;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.55) 30%, #000 60%);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.55) 30%, #000 60%);
}
.nw-vhero-inner { max-width: 1120px; margin: 0 auto; padding: 20px 24px 30px; position: relative; }
.nw-breadcrumb { display: flex; gap: 8px; font-size: 12px; color: #8296b3; margin-bottom: 22px; }
.nw-breadcrumb a { color: #1d4ed8; }
.nw-vhero h1 { margin: 0 0 10px; font-size: 34px; font-weight: 900; color: #14315f; }
.nw-vhero-sub { margin: 0 0 26px; font-size: 13px; color: #4b5f7d; }
.nw-venue-card {
  display: inline-flex; flex-direction: column; gap: 14px;
  background: rgba(255,255,255,.8); backdrop-filter: blur(4px);
  border: 1px solid #dbe7f7; border-radius: 16px; padding: 18px 22px;
  box-shadow: 0 2px 12px rgba(29,78,216,.07);
}
.nw-venue-chips { display: flex; align-items: center; gap: 12px; }
.nw-pref-badge { font-size: 11px; font-weight: 800; color: #fff; background: #14315f; padding: 3px 10px; border-radius: 999px; }
.nw-venue-title { font-size: 20px; font-weight: 900; color: #14315f; }
.nw-chip-blue { font-size: 11.5px; font-weight: 800; color: #1d4ed8; background: #e0edff; padding: 4px 12px; border-radius: 999px; }
.nw-chip-green { font-size: 11.5px; font-weight: 800; color: #0f8a4d; background: #dcf5e7; padding: 4px 12px; border-radius: 999px; }
.nw-chip-plain { font-size: 11.5px; font-weight: 700; color: #4b5f7d; border: 1px solid #dbe7f7; padding: 4px 12px; border-radius: 999px; }
.nw-weather { display: flex; gap: 26px; }
.nw-weather-item { display: flex; align-items: center; gap: 9px; }
.nw-weather-item .wicon { font-size: 17px; color: #2563eb; }
.nw-weather-item .wlabel { display: block; font-size: 10.5px; color: #8296b3; }
.nw-weather-item .wvalue { display: block; font-size: 14px; font-weight: 800; color: #14315f; }

/* 会場: 予想2タイプ縮小版 */
.nw-two-cards.compact { margin-top: 28px; }
.nw-two-cards.compact .nw-type-card { padding: 24px 28px; min-height: 130px; }
.nw-two-cards.compact .nw-type-card img { top: 14px; width: 104px; }
.nw-two-cards.compact h2 { margin: 0 0 8px; font-size: 21px; }
.nw-two-cards.compact .nw-blue h2 { color: #1d4ed8; }
.nw-two-cards.compact .nw-pink h2 { color: #e5407d; }
.nw-two-cards.compact h2 small { font-size: 13px; color: #14315f; margin-left: 10px; font-weight: 900; }
.nw-two-cards.compact .nw-pink h2 small { color: #7c2246; }
.nw-two-cards.compact p { margin: 0 0 14px; font-size: 12.5px; max-width: 260px; }
.nw-text-cta { font-size: 13px; font-weight: 800; }
.nw-blue .nw-text-cta { color: #1d4ed8; }
.nw-pink .nw-text-cta { color: #e5407d; }

/* 会場: フィルタバー */
.nw-filterbar {
  margin-top: 24px; background: #fff; border: 1px solid #dbe7f7;
  border-radius: 999px; padding: 8px 10px;
  display: flex; align-items: center; justify-content: space-between;
  box-shadow: 0 2px 10px rgba(29,78,216,.05);
}
.nw-filterbar-tabs { display: flex; gap: 6px; }
.nw-ftab {
  font-family: inherit; font-size: 12.5px; font-weight: 700;
  padding: 9px 20px; border-radius: 999px; border: none;
  background: transparent; color: #4b5f7d; cursor: pointer;
}
.nw-ftab.active { background: #1d4ed8; color: #fff; }
.nw-toggle-wrap { display: flex; align-items: center; gap: 16px; padding-right: 12px; }
.nw-toggle-label { display: flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 700; color: #4b5f7d; cursor: pointer; }
.nw-toggle { width: 38px; height: 22px; border-radius: 999px; background: #1d4ed8; position: relative; display: inline-block; transition: background .2s; }
.nw-toggle.off { background: #c4d2e4; }
.nw-toggle i {
  position: absolute; top: 2px; left: 18px; width: 18px; height: 18px;
  border-radius: 999px; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: left .2s;
}
.nw-toggle.off i { left: 2px; }

/* 会場: レース行 */
.nw-race-list { display: flex; flex-direction: column; gap: 14px; margin-top: 20px; }
.nw-race-row {
  display: grid; grid-template-columns: 64px 130px 1.15fr 1.15fr .9fr 150px 26px;
  align-items: center; gap: 14px; background: #fff; border: 1px solid #dbe7f7;
  border-radius: 16px; padding: 14px 18px 14px 14px;
  box-shadow: 0 2px 8px rgba(29,78,216,.04);
  transition: transform .15s, box-shadow .15s;
}
a.nw-race-row:hover { box-shadow: 0 5px 18px rgba(29,78,216,.13); transform: translateY(-1px); }
.nw-rr-rno {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  background: #1d4ed8; border-radius: 12px; padding: 10px 0;
}
.nw-rr-rno b { font-size: 17px; font-weight: 900; color: #fff; }
.nw-rr-rno small { font-size: 9px; font-weight: 800; color: #cfe0ff; }
.nw-rr-time b { display: block; font-size: 16px; font-weight: 900; color: #14315f; }
.nw-rr-state {
  display: inline-block; margin-top: 4px; font-size: 10px; font-weight: 800;
  padding: 2px 8px; border-radius: 5px;
}
.nw-rr-state.pre { color: #1d4ed8; background: #e0edff; }
.nw-rr-state.done { color: #0f8a4d; background: #dcf5e7; }
.nw-rr-coltitle { display: block; font-size: 10.5px; font-weight: 700; color: #8296b3; margin-bottom: 5px; }
.nw-rr-coltitle .sub { margin-left: 8px; color: #b0bfd3; }
.nw-rr-result { border-left: 1px dashed #dbe7f7; padding-left: 14px; }
.nw-rr-muted { font-size: 12px; color: #b0bfd3; }
.nw-rr-payout b { font-size: 16px; font-weight: 900; color: #14315f; }
.nw-rr-payout b.manshuu { color: #b45309; }
.nw-rr-hit {
  display: flex; flex-direction: column; align-items: center; gap: 5px;
  border-radius: 12px; padding: 10px 8px; background: #eef4fd;
}
.nw-rr-hit .hitline { display: flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 900; color: #1d4ed8; }
.nw-rr-hit .hitline .icon { font-size: 15px; }
.nw-rr-hit.hit { background: #fdecf1; }
.nw-rr-hit.hit .hitline { color: #d61f5c; }
.nw-rr-hit.miss { background: #eef2f7; }
.nw-rr-hit.miss .hitline { color: #62789a; }
.nw-rr-hit.hidden-state .hitline { color: #8296b3; }
.nw-rr-chev { font-size: 18px; color: #b6c6dd; text-align: center; }

/* 会場: 攻略ポイント */
.nw-points {
  margin-top: 36px; background: linear-gradient(135deg, #f2f8ff, #e9f2ff);
  border: 1px solid #d4e5fb; border-radius: 18px; padding: 26px 30px;
}
.nw-points-grid { display: grid; grid-template-columns: 1.1fr 1fr 1fr 1fr; gap: 18px; align-items: stretch; }
.nw-points h2 { margin: 0 0 12px; font-size: 17px; font-weight: 900; color: #14315f; }
.nw-points-lead { margin: 0 0 16px; font-size: 12.5px; line-height: 2; color: #4b5f7d; }
.nw-point-card { background: #fff; border: 1px solid #dbe7f7; border-radius: 14px; padding: 18px; }
.nw-point-head { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.nw-point-head .icon { font-size: 16px; }
.nw-point-head .ttl { font-size: 13.5px; font-weight: 900; color: #14315f; }
.nw-point-card p { margin: 0; font-size: 12px; line-height: 1.9; color: #4b5f7d; }
.nw-cta.compact { margin-top: 40px; padding: 24px 32px; }
.nw-cta.compact .nw-cta-left img { width: 60px; }
.nw-cta.compact .nw-cta-title { font-size: 18px; }
.nw-cta.compact .nw-cta-sub { font-size: 12.5px; margin-top: 4px; }

/* 広告スロット (ライトページ) */
body.page-light .ad-slot { margin: 32px 0 0; }

/* ═══ レスポンシブ (760px) ═══ */
@media (max-width: 760px) {
  .nw-main { padding: 0 16px; }
  .nw-hero-inner { padding: 32px 20px 28px; }
  .nw-hero h1 { font-size: 28px; }
  .nw-hero-img {
    position: static; display: block; width: 100%; max-width: 420px;
    margin: 16px auto -10px;
  }
  .nw-two-cards { grid-template-columns: 1fr; }
  .nw-stats-grid { grid-template-columns: 1fr 1fr; }
  .nw-stats-head { flex-wrap: wrap; gap: 10px; }
  .nw-venue-grid { grid-template-columns: repeat(3, 1fr); }
  .nw-venues-head { flex-wrap: wrap; gap: 10px; }
  .nw-races-head { flex-wrap: wrap; gap: 10px; }
  .nw-table-scroll { overflow-x: auto; }
  .nw-trow { min-width: 820px; }
  .nw-hits-grid { grid-template-columns: 1fr 1fr; }
  .nw-reasons-grid { grid-template-columns: 1fr; }
  .nw-cta { flex-direction: column; align-items: flex-start; padding: 24px; }
  .nw-footer-grid { grid-template-columns: 1fr; gap: 24px; }
  /* 会場ページ */
  .nw-vhero-inner { padding: 16px 20px 24px; }
  .nw-vhero h1 { font-size: 26px; }
  .nw-vhero-img { width: 100%; opacity: .28; }
  .nw-venue-card { display: flex; flex-direction: column; }
  .nw-venue-chips { flex-wrap: wrap; row-gap: 8px; }
  .nw-weather { flex-wrap: wrap; gap: 12px 22px; }
  .nw-filterbar { flex-direction: column; align-items: stretch; border-radius: 18px; gap: 10px; padding: 10px 12px; }
  .nw-filterbar-tabs { overflow-x: auto; padding-bottom: 2px; }
  .nw-race-row {
    grid-template-columns: 56px 1fr 104px;
    grid-template-areas: "rno time hit" "pred pred pred" "result result payout";
    row-gap: 12px; padding: 14px;
  }
  .nw-rr-rno { grid-area: rno; }
  .nw-rr-time { grid-area: time; }
  .nw-rr-pred { grid-area: pred; }
  .nw-rr-result { grid-area: result; border-left: none; padding-left: 0; }
  .nw-rr-payout { grid-area: payout; }
  .nw-rr-hit { grid-area: hit; align-self: start; }
  .nw-rr-chev { display: none; }
  .nw-points-grid { grid-template-columns: 1fr; }
}
