/* 特設LPと公式サイトをつなぐ（core/lp_bridge.py が差し込む） */
.jsbr-bar { position: relative; z-index: 9999; background: #0A0A0A; border-bottom: 3px solid #1A6BFF; font-family: "Noto Sans JP", system-ui, sans-serif; }
.jsbr-in { max-width: 1360px; margin: 0 auto; padding: 0 24px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 16px; }
.jsbr-bar a { display: inline-block; padding: 8px 0; color: #FFF !important; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-decoration: none; }
.jsbr-ev { display: inline-flex; align-items: center; gap: 6px; }
.jsbr-ev em { font-style: normal; font-size: 11px; color: #9A9A9A; margin-right: 4px; }
.jsbr-ev a { padding: 3px 10px !important; border: 1px solid #1A6BFF; font-size: 12px; }
.jsbr-ev a:hover { background: #1A6BFF; }
.jsbr-bar a:hover { color: #8FB4FF !important; }
.jsbr-bar span { margin-right: 6px; }

/* JUN SPORTS 名義のLPだけ：ロゴと主要ボタン */
[data-jsbr="brand"] .jsbr-mark { display: inline-flex; flex-direction: column; align-items: stretch; gap: 3px; font-family: "Big Shoulders Display", "Noto Sans JP", sans-serif; font-size: 24px; line-height: 1; }
[data-jsbr="brand"] .jsbr-mark b { font-weight: 900; line-height: .9; white-space: nowrap; letter-spacing: .01em; }
[data-jsbr="brand"] .jsbr-mark small { display: block; background: #1A6BFF; color: #FFF; text-align: center; font-weight: 800; font-size: 9.5px; letter-spacing: .6em; padding: 3px 0 3px .6em; line-height: 1; clip-path: polygon(.5em 0, 100% 0, calc(100% - .5em) 100%, 0 100%); }
[data-jsbr="brand"] .btn.dark { background: #1A6BFF !important; border-color: #1A6BFF !important; color: #FFF !important; }
[data-jsbr="brand"] .btn.dark:hover { background: #0047C9 !important; border-color: #0047C9 !important; }
[data-jsbr="brand"] .eyebrow { color: #0047C9; }

/* =========================================================
   JUN SPORTS 名義のLPを公式サイトのデザインにそろえる
   （黒×白×JUN SPORTSブルー／角は直角／見出しは Big Shoulders・本文は Noto Sans JP）
   ========================================================= */
[data-jsbr="brand"] {
  --bg: #FFFFFF; --ink: #0A0A0A; --muted: #4A4A4A; --line: #D0D0D0; --card: #FFFFFF; --soft: #F2F2F2; --r: 0px;
  background: #FFFFFF !important; color: #0A0A0A;
  font-family: "Noto Sans JP", system-ui, sans-serif !important;
}
/* 角はすべて直角（疑似要素の円＝飾りの輪はそのまま） */
[data-jsbr="brand"] * { border-radius: 0 !important; }
[data-jsbr="brand"] .hero-art::before, [data-jsbr="brand"] .hero-art::after { border-radius: 50% !important; border-color: rgba(26,107,255,.35) !important; }

/* ヘッダー：公式サイトと同じ黒帯 */
[data-jsbr="brand"] .header { background: rgba(10,10,10,.96) !important; border-bottom: 1px solid #2E2E2E !important; color: #FFF; }
[data-jsbr="brand"] .header .brand, [data-jsbr="brand"] .nav a { color: #FFF; }
[data-jsbr="brand"] .nav { font-family: "Big Shoulders Display", "Noto Sans JP", sans-serif; font-size: 15px !important; letter-spacing: .1em !important; }
[data-jsbr="brand"] .nav a:hover { color: #8FB4FF; }
[data-jsbr="brand"] .nav a:last-child { background: #1A6BFF !important; color: #FFF !important; padding: 12px 20px !important; }
[data-jsbr="brand"] .nav-toggle { background: transparent !important; border-color: #FFF !important; }
[data-jsbr="brand"] .nav-toggle span { background: #FFF !important; }
@media (max-width: 960px) {
  [data-jsbr="brand"] .nav { background: #0A0A0A !important; border-color: #2E2E2E !important; }
}

/* 見出し */
[data-jsbr="brand"] .hero h1 {
  font-family: "Big Shoulders Display", "Noto Sans JP", sans-serif; font-weight: 900; letter-spacing: 0 !important;
  line-height: .86 !important; text-transform: uppercase;
}
[data-jsbr="brand"] h2, [data-jsbr="brand"] .hero-message, [data-jsbr="brand"] .athlete-section-head h3 { font-weight: 900; letter-spacing: -.01em !important; line-height: 1.12 !important; }
[data-jsbr="brand"] h2 { position: relative; padding-top: 18px; }
[data-jsbr="brand"] h2::before { content: ""; position: absolute; left: 0; top: 0; width: 64px; height: 4px; background: #1A6BFF; }
[data-jsbr="brand"] .challenge h2::before, [data-jsbr="brand"] .footer h2::before { background: #1A6BFF; }
[data-jsbr="brand"] .eyebrow { font-family: "Big Shoulders Display", "Noto Sans JP", sans-serif; font-weight: 800; font-size: 15px !important; letter-spacing: .16em !important; color: #0047C9 !important; }
[data-jsbr="brand"] .challenge .eyebrow, [data-jsbr="brand"] .hero-art .eyebrow, [data-jsbr="brand"] .dark .eyebrow, [data-jsbr="brand"] .result-card .eyebrow { color: #8FB4FF !important; }
[data-jsbr="brand"] .event-guide-card .big, [data-jsbr="brand"] .result-apparatus,
[data-jsbr="brand"] .line-team, [data-jsbr="brand"] .line-hokkaido, [data-jsbr="brand"] .line-gymnastics {
  font-family: "Big Shoulders Display", "Noto Sans JP", sans-serif; font-weight: 900; letter-spacing: 0 !important; text-transform: uppercase;
}

/* 黒いブロック（チャレンジ・結果カード・ダーク系カード）＝公式サイトの黒＋青い線 */
[data-jsbr="brand"] .challenge, [data-jsbr="brand"] .footer { background: #0A0A0A !important; }
[data-jsbr="brand"] .hero-art, [data-jsbr="brand"] .result-card,
[data-jsbr="brand"] .event-guide-card.dark, [data-jsbr="brand"] .support-choice-card.dark { background: #0A0A0A !important; border-color: #0A0A0A !important; border-top: 6px solid #1A6BFF !important; }
[data-jsbr="brand"] .period-badge, [data-jsbr="brand"] .athlete-status.confirmed { background: #1A6BFF !important; color: #FFF !important; }

/* セクションの区切り：白とうすいグレーを交互に */
[data-jsbr="brand"] main > section:nth-of-type(even):not(.challenge) { background: #F5F5F5; }

/* ボタン：直角・青 */
[data-jsbr="brand"] .btn { border-radius: 0 !important; min-height: 52px; font-weight: 900; letter-spacing: .02em; border-color: #0A0A0A !important; }
[data-jsbr="brand"] .btn:not(.dark):hover { background: #0A0A0A; color: #FFF; }
[data-jsbr="brand"] .challenge .btn:not(.dark), [data-jsbr="brand"] .dark .btn:not(.dark) { border-color: #FFF !important; color: #FFF; }

/* パートナー・カード類：角を立てて線をはっきり */
[data-jsbr="brand"] .sponsor-card, [data-jsbr="brand"] .event-guide-card, [data-jsbr="brand"] .support-choice-card,
[data-jsbr="brand"] .live-card, [data-jsbr="brand"] .athlete-card { border-color: #D0D0D0 !important; box-shadow: none !important; }
[data-jsbr="brand"] a.sponsor-card.recruit { border: 2px dashed #1A6BFF !important; }
[data-jsbr="brand"] a.sponsor-card.recruit:hover { background: #1A6BFF !important; }

/* ===== 年間パートナーの壁（公式サイトと同じ。管理画面のスポンサーから自動） ===== */
.pwall.partner-wall { gap: 24px; }
.pwall__tier { display: flex; flex-direction: column; gap: 10px; }
.pwall__label { margin: 0; display: flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 700; letter-spacing: .08em; }
.pwall__label::before { content: ""; width: 22px; height: 3px; background: #1A6BFF; flex: none; }
.pwall .partner-logo { text-decoration: none; color: #0A0A0A; font-weight: 700; text-align: center; }
.pwall .row-top .partner-logo { min-height: 128px; }
.pwall .row-top .partner-logo img { max-height: 84px; }
.pwall .row-official .partner-logo { min-height: 100px; }
.pwall .row-official .partner-logo img { max-height: 60px; }
.pwall .row-support .partner-logo { min-height: 78px; }
.pwall .row-support .partner-logo img { max-height: 40px; }
[data-jsbr="brand"] .pwall .partner-logo:hover { border-color: #1A6BFF; }
.pwall .partner-row.row-official { grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); }
.pwall .partner-row.row-group { grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); }
.pwall__tier--group { padding-top: 24px; border-top: 1px solid #DADADA; }
.pwall .row-group .partner-logo { min-height: 96px; }
.pwall .row-group .partner-logo img { max-height: 56px; }
@media (max-width: 900px) { .pwall .partner-row.row-official, .pwall .partner-row.row-group { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { .pwall .partner-row.row-official, .pwall .partner-row.row-group { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
