/* NOTE: site-chrome.css は各ページの <head> が <link rel="stylesheet"> で並列ロードする（pageHead）。
   以前ここにあった @import url("./site-chrome.css") は、その <link> と二重 + レンダリングブロッキング +
   シリアル取得だったため削除した。Google Fonts も <head> の preload(as=style)+noscript で非ブロッキングロードする。 */

:root {
  color-scheme: dark;
  /* Brand base — top page と全下層で共有する地色。
     ページごとに --bg をインラインで上書きしない。
     詳細は docs/design_language.md §4.1 / Decision Register 2026-05-30。 */
  --bg: #05070b;
  --bg-soft: #0a0e13;
  --ink: #fbfbff;
  --muted: #c8cfdd;
  --soft: #aeb7c8;
  --line: rgba(255,255,255,.22);
  --panel: rgba(15,18,30,.9);
  --panel-soft: rgba(255,255,255,.08);
  --accent: #d41465;
  --accent-2: #12d6cb;
  --group-accent: var(--accent);
  --group-accent-2: var(--accent-2);
  --group-accent-3: #7c5cff;
  --group-accent-rgb: 212,20,101;
  --group-accent-2-rgb: 18,214,203;
  --group-accent-3-rgb: 124,92,255;
  --group-hero-text-mid: #ffd1e4;
  --group-hero-text-end: #a6f0ea;
  --shadow: 0 24px 60px rgba(0,0,0,.36);
  /* D-2: achromatic 2層 elevation。ネオン(accent)グローではなく中立な影で奥行きを出す。
     --elev-1=静止カード / --elev-2=主役カード・hover で持ち上げる面。アンビエント+キーの2層。 */
  --elev-1: 0 1px 2px rgba(0,0,0,.30), 0 6px 16px rgba(0,0,0,.22);
  --elev-2: 0 2px 6px rgba(0,0,0,.34), 0 18px 44px rgba(0,0,0,.34);
  --radius: 8px;
}

/* `*` は疑似要素にマッチしないため、::before/::after だけ content-box のままになり、
   width＋padding＋border を持つ疑似要素の実寸が箱からはみ出していた
   （2026-07-31: カレンダーの「誕生日」バッジが本文テキストに重なる事象の原因）。 */
*,
*::before,
*::after { box-sizing: border-box; }

/* HTML5 [hidden] 属性のセマンティクスを保証する。
   .starter-library-item / .calendar-view-panel など多数の class に
   display: grid/flex/block が author CSS で当たっており、
   UA default の `[hidden] { display: none }` を specificity 同等で上書きしてしまうため、
   フィルター JS が `el.hidden = true` を立てても視覚上は隠れない問題が発生する。
   全てのフィルター付き一覧（starter-songs / calendar / groups / members / videos 等）の
   表示一貫性のため、ここで強制的に保証する。 */
[hidden] { display: none !important; }

body {
  margin: 0;
  min-height: 100vh;
  /* Brand base body — top page (top-page.css) と同じエディトリアル深部を共有。 */
  background:
    linear-gradient(180deg, var(--bg) 0%, var(--bg-soft) 56%, var(--bg) 100%),
    var(--bg);
  color: var(--ink);
  font-family: "Noto Sans JP", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: 0;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 200px 200px;
  opacity: .08;
  mix-blend-mode: overlay;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 88%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 88%, transparent 100%);
}

/* 全ページ共通の控えめなビネット。四隅をわずかに沈めて"面"に奥行きを与える。 */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(130% 100% at 50% 30%, transparent 58%, rgba(0,0,0,.05) 100%);
}

a { color: inherit; }

.page {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 24px;
  /* overflow-x: hidden だと CSS仕様で overflow-y が auto に強制変換され、.page 全体が
     縦スクロールコンテナ化して数pxの"スクロールできない内部縦スクロールバー"が出る。
     clip は横を同じくクリップしつつ、縦を visible のまま保つ（副作用なし）。 */
  overflow-x: clip;
}

.page[data-group-theme] {
  position: relative;
  isolation: isolate;
}

.page[data-group-theme]::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(60rem 40rem at 78% -6%, rgba(var(--group-accent-rgb), .13), transparent 60%),
    radial-gradient(48rem 36rem at 0% 8%, rgba(var(--group-accent-2-rgb), .07), transparent 64%);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 42%, transparent 78%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 42%, transparent 78%);
}

@supports (content-visibility: auto) {
  .page > section.surface,
  .page > main > section.surface,
  .grid > section.surface,
  .grid > div > section.surface,
  .card-list > .card,
  .song-grid > .card,
  .song-grid > .video-card,
  .member-card,
  .home-section,
  .home-card {
    content-visibility: auto;
    contain-intrinsic-size: 1px 420px;
  }

  .hero,
  .breadcrumb,
  .site-footer,
  .sn-search-overlay {
    content-visibility: visible;
  }
}

.button-link, .card {
  color: inherit;
  text-decoration: none;
}

.button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  border: 1px solid rgba(255,255,255,.24);
  background: rgba(255,255,255,.1);
  border-radius: 7px;
  padding: 10px 13px;
  text-align: center;
  overflow-wrap: anywhere;
  backdrop-filter: blur(16px);
  box-shadow: 0 0 0 rgba(0,0,0,0);
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease, box-shadow 180ms ease, color 180ms ease;
  will-change: transform;
}

.btn-primary,
.btn-ghost,
.btn-text,
.chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  text-decoration: none;
}

.btn-primary {
  gap: 6px;
  min-height: 42px;
  padding: 10px 16px;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 9px;
  color: #fff;
  font-weight: 800;
  /* 2026-07-31: グラデ2色＋発光をやめ、フラットな単色アクセントへ
     （design_language 2026-06-28「ネオンのマゼンタ×シアングラデボタン禁止」/
      2026-06-17「ネオングロー撤廃→achromatic elevation」）。 */
  background: rgba(var(--group-accent-rgb), 1);
  box-shadow: var(--elev-1);
}

.btn-primary:hover,
.btn-primary:focus-visible {
  color: #fff;
  border-color: rgba(255, 255, 255, .38);
  background: rgba(var(--group-accent-rgb), 1);
  filter: brightness(1.06);
  box-shadow: var(--elev-2);
}

.btn-ghost {
  gap: 6px;
  min-height: 40px;
  padding: 9px 15px;
  border: 1px solid rgba(var(--group-accent-rgb), .44);
  border-radius: 9px;
  color: rgba(255, 255, 255, .92);
  font-weight: 750;
  background: rgba(var(--group-accent-rgb), .08);
  box-shadow: none;
}

.btn-ghost:hover,
.btn-ghost:focus-visible {
  border-color: rgba(var(--group-accent-rgb), .68);
  background: rgba(var(--group-accent-rgb), .14);
  color: #fff;
}

.btn-text {
  gap: 4px;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: rgba(var(--group-accent-rgb), 1);
  font-weight: 800;
  background: transparent;
  box-shadow: none;
}

.btn-text::after {
  content: "→";
  font-size: .95em;
  transition: transform 160ms ease;
}

.btn-text:hover::after,
.btn-text:focus-visible::after {
  transform: translateX(3px);
}

.chip {
  gap: 5px;
  min-height: 28px;
  padding: 4px 10px;
  border: 1px solid rgba(var(--group-accent-rgb), .28);
  border-radius: 999px;
  color: rgba(255, 255, 255, .82);
  background: rgba(var(--group-accent-rgb), .08);
  box-shadow: none;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: .01em;
  white-space: nowrap;
}

a.chip:hover,
a.chip:focus-visible {
  color: #fff;
  border-color: rgba(var(--group-accent-rgb), .48);
  background: rgba(var(--group-accent-rgb), .13);
}

/* カード全体がリンクの場合の内部CTA。塗りボタンにせず、矢印付きの軽量テキストリンクにする
   （クリック可能カード内の二重強調＝「リンク内ボタン」を避ける）。外部ストア等の独立CTAは .button-link のまま。 */
.card-go {
  display: inline-flex;
  align-items: center;
  align-self: start;
  gap: 4px;
  margin-top: 2px;
  padding: 0;
  font-size: 14px;
  font-weight: 700;
  color: rgba(var(--group-accent-rgb, 120,140,255), 1);
  background: none;
  border: 0;
  letter-spacing: .01em;
  transition: gap 160ms ease, opacity 160ms ease;
}
.card:hover .card-go,
a.card:hover .card-go {
  gap: 8px;
}
/* card-go を含むカード（次に見る3ページ / 公式情報 / 購入ガイド）は flex 縦積みにし、
   本文(p)の長さが違っても card-go を最下部へ押し下げて、行内のリンク高さを揃える。 */
.next-page-card,
#member-official-entry .card,
.affiliate-section .purchase-guide-card {
  display: flex;
  flex-direction: column;
}
.next-page-card .card-go,
#member-official-entry .card .card-go,
.affiliate-section .purchase-guide-card .card-go {
  margin-top: auto;
  padding-top: 8px;
}

/* 2026-05-30: hover は持ち上げ＋発光（やや古い）をやめ、フラットにアクセント縁＋微背景。 */
.button-link:hover {
  border-color: rgba(var(--group-accent-rgb),.5);
  background: rgba(255,255,255,.14);
  box-shadow: none;
}

.button-link.btn-primary:hover,
.button-link.btn-primary:focus-visible {
  color: #fff;
  border-color: rgba(255, 255, 255, .38);
  background:
    linear-gradient(135deg, rgba(0, 0, 0, .12), rgba(0, 0, 0, .24)),
    linear-gradient(135deg, rgba(var(--group-accent-rgb), 1), rgba(var(--group-accent-2-rgb), .9));
  box-shadow: 0 12px 28px rgba(var(--group-accent-rgb), .34);
}

.button-link.btn-ghost:hover,
.button-link.btn-ghost:focus-visible {
  color: #fff;
  border-color: rgba(var(--group-accent-rgb), .68);
  background: rgba(var(--group-accent-rgb), .14);
}

.hero-actions .button-link[data-group-theme],
.identity-switcher .button-link[data-group-theme] {
  border-color: rgba(var(--group-accent-rgb), 0.5);
  background:
    linear-gradient(135deg, rgba(var(--group-accent-rgb), 0.22), rgba(var(--group-accent-2-rgb), 0.12)),
    rgba(255, 255, 255, 0.07);
  box-shadow: inset 0 0 0 1px rgba(var(--group-accent-rgb), 0.12);
}

.hero-actions .button-link.primary[data-group-theme] {
  background:
    linear-gradient(135deg, rgba(0, 0, 0, 0.36), rgba(0, 0, 0, 0.28)),
    linear-gradient(135deg, rgba(var(--group-accent-rgb), 0.95), rgba(var(--group-accent-2-rgb), 0.82));
  border-color: rgba(var(--group-accent-3-rgb), 0.48);
}

.hero-actions .button-link[data-group-theme]:hover,
.identity-switcher .button-link[data-group-theme]:hover {
  border-color: rgba(var(--group-accent-3-rgb), 0.62);
  background:
    linear-gradient(135deg, rgba(var(--group-accent-rgb), 0.32), rgba(var(--group-accent-2-rgb), 0.2)),
    rgba(255, 255, 255, 0.1);
}

.button-link:active {
  transform: translateY(0);
}

.button-link:focus-visible,
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid rgba(18, 214, 203, 0.72);
  outline-offset: 3px;
}

.primary {
  background:
    linear-gradient(135deg, rgba(0,0,0,.54), rgba(0,0,0,.56)),
    linear-gradient(135deg, rgba(var(--group-accent-rgb), .98), rgba(var(--group-accent-2-rgb), .9));
  border-color: rgba(255,255,255,.32);
  box-shadow: var(--elev-1);
  color: #fff;
  text-shadow: 0 1px 6px rgba(0,0,0,.38);
}

.hero {
  width: 100%;
  max-width: 100%;
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background:
    linear-gradient(120deg, rgba(var(--group-accent-rgb),.14), transparent 40%),
    linear-gradient(290deg, rgba(var(--group-accent-2-rgb),.12), transparent 44%),
    var(--panel);
  box-shadow: var(--shadow);
  backdrop-filter: blur(18px) saturate(150%);
  margin-bottom: 16px;
}

/* 単純な一覧・情報ハブ（debut-years / nationalities / solo / songs / units / glossary / methodology / news など）の
   ページ先頭ヒーローを枠なしに統一し、トップ / カレンダー / メンバー一覧 / グループ一覧と語彙を揃える。
   グループ詳細（.hero.group-hero-with-visual / .group-hero-with-video）とメンバー詳細（.static-hero）、
   横断一覧の hub-hero は除外し、テーマ付き詳細ヒーローには一切影響させない。
   .page スコープによりトップページ（.page なし）も対象外。 */
.page .hero:not(.hub-hero):not(.group-hero-with-visual):not(.group-hero-with-video):not(.static-hero) {
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  backdrop-filter: none;
  padding: 4px 0 12px;
}

/* ダッシュボード型ヒーロー（generations/<世代> / videos/<種別> / companies/<slug> /
   nationalities/<国> / debut-years/<年> などの絞り込み一覧）も枠なしへ統一。
   枠は各ページのインライン <style> の .hero から来るため !important で確実に上書きする。
   グループ/メンバー/作品の詳細ヒーローは static-hero / group-hero-with-visual 系で
   hero-with-summary を使わないため、このルールの影響を受けない。
   レイアウト保護のため padding は据え置き、装飾（枠・影・背景）だけ除去する。 */
.hero.hero-with-summary {
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

h1 {
  margin: 0 0 8px;
  font-size: clamp(32px, 4.5vw, 56px);
  line-height: 1.16;
  font-weight: 950;
  color: #f7f9ff;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  text-wrap: balance;
  line-break: strict;
  overflow-wrap: anywhere;
}

/* グループ系ヒーローのH1（作品一覧/動画一覧は素テキスト）は語中改行させない。日本語ランは keep-all で塊のまま、
   ラテン語（aespa 等）も overflow-wrap:normal で文字単位分割を防ぐ。詳細H1は .hero-title-line が別途 nowrap。 */
.group-hero-with-visual h1,
.group-hero-with-video h1,
.group-hero-with-art h1 {
  overflow-wrap: normal;
  word-break: keep-all;
}

.no-break {
  display: inline-block;
  white-space: nowrap;
}

h2,
h3,
.brand,
.button-link,
.badge,
.video-type-pill {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
}

h2 { margin: 0 0 12px; font-size: 24px; }
h3 { margin: 0 0 8px; font-size: 17px; }
p { color: var(--muted); line-height: 1.8; margin: 0 0 12px; }

.lead {
  color: var(--muted);
  line-height: 1.8;
  font-size: 16px;
  max-width: 820px;
  overflow-wrap: anywhere;
}

.hero-content {
  position: relative;
  z-index: 1;
  max-width: 820px;
  width: 100%;
}

.group-hero-with-visual {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 420px);
  gap: 20px;
  align-items: center;
  overflow: hidden;
  isolation: isolate;
}

.page[data-group-theme] > .hero.group-hero-with-visual:not(.release-detail-hero) {
  border-color: rgba(var(--group-accent-rgb), .26);
  background:
    linear-gradient(120deg, rgba(3, 6, 16, .96), rgba(8, 13, 30, .86) 46%, rgba(4, 7, 18, .96)),
    linear-gradient(115deg, rgba(var(--group-accent-rgb), .18), transparent 38%),
    linear-gradient(286deg, rgba(var(--group-accent-2-rgb), .13), transparent 42%),
    var(--panel);
  box-shadow:
    0 24px 70px rgba(0, 0, 0, .34),
    inset 0 1px 0 rgba(255, 255, 255, .08),
    0 0 34px rgba(var(--group-accent-rgb), .08);
}

.page[data-group-theme] > .hero.group-hero-with-visual:not(.release-detail-hero)::before,
.page[data-group-theme] > .hero.group-hero-with-visual:not(.release-detail-hero)::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.page[data-group-theme] > .hero.group-hero-with-visual:not(.release-detail-hero)::before {
  background:
    conic-gradient(from 220deg at 78% 18%, rgba(var(--group-accent-3-rgb), .12), transparent 22%, rgba(var(--group-accent-rgb), .1) 42%, transparent 65%, rgba(var(--group-accent-2-rgb), .08) 84%, transparent),
    linear-gradient(92deg, rgba(var(--group-accent-rgb), .16), transparent 32%),
    linear-gradient(268deg, rgba(var(--group-accent-2-rgb), .12), transparent 36%);
  opacity: .88;
}

.page[data-group-theme] > .hero.group-hero-with-visual:not(.release-detail-hero)::after {
  background:
    repeating-linear-gradient(90deg, rgba(255, 255, 255, .026) 0 1px, transparent 1px 46px),
    repeating-linear-gradient(0deg, rgba(255, 255, 255, .014) 0 1px, transparent 1px 34px);
  opacity: .36;
  -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, .92), rgba(0, 0, 0, .54) 58%, rgba(0, 0, 0, .18));
  mask-image: linear-gradient(90deg, rgba(0, 0, 0, .92), rgba(0, 0, 0, .54) 58%, rgba(0, 0, 0, .18));
}

.group-hero-with-visual .hero-content {
  max-width: 760px;
  position: relative;
  z-index: 1; /* B4: アクセント/グレインの ::before/::after(z-index:0) より前面に出し本文の可読性を確保 */
}

.group-hero-media {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 8px;
  min-width: 0;
}

.group-hero-visual {
  position: relative;
  width: 100%;
  min-width: 0;
  margin: 0;
  aspect-ratio: 1200 / 630;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 8px;
  overflow: hidden;
  background:
    radial-gradient(circle at 20% 10%, rgba(var(--group-accent-rgb), .18), transparent 42%),
    rgba(255,255,255,.06);
  box-shadow: var(--elev-2);
}

.group-hero-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 62%, rgba(0,0,0,.18));
}

.group-hero-visual img {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
}

.grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
  gap: 16px;
  align-items: start;
}

/* Group detail: long single content column + sticky authority rail (2026-05-30).
   Content column keeps `.detail-wide-flow` so existing #basic / route-steps CSS still matches.
   The rail pins as you scroll, so the old left-of-sidebar void disappears. */
.group-detail-shell {
  grid-template-columns: minmax(0, 1fr) clamp(296px, 27%, 340px);
  gap: 20px;
}
.detail-rail {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}
.detail-rail > .surface { margin-bottom: 0; }
/* rail 内の公式サイト / 関連ページは、SNS アイコン行と同じコンパクトな
   自動幅チップ行に揃える（2列ストレッチの大きな pill をやめる）。 */
.detail-rail .link-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.detail-rail .link-grid .button-link,
.detail-rail .link-panel-block > .button-link {
  width: auto;
  flex: 0 0 auto;
  padding: 7px 12px;
  border-radius: 999px;
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
}
/* 所属会社 CTA は単独でも他の rail チップと同じスケールに揃え、左寄せで置く。 */
.detail-rail .link-panel-block > .button-link {
  margin-top: 2px;
}
.detail-rail-toc { display: none; }

.detail-rail-toc-title {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
  color: #aebbe0;
  text-transform: uppercase;
}
.detail-rail-toc ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.detail-rail-toc a {
  display: block;
  padding: 6px 10px;
  border-radius: 7px;
  border-left: 2px solid transparent;
  font-size: 13px;
  color: #c7d2ee;
  text-decoration: none;
  transition: background .16s ease, color .16s ease, border-color .16s ease;
}
.detail-rail-toc a:hover { background: rgba(255, 255, 255, .07); color: #fff; }
.detail-rail-toc a.is-active {
  background: rgba(var(--group-accent-rgb, 111, 140, 255), .16);
  border-left-color: var(--group-accent, #6f8cff);
  color: #fff;
  font-weight: 700;
}

/* Consolidated 公式・リンク panel */
.link-panel-block + .link-panel-block {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, .1);
}
.link-panel-block h3 {
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .02em;
  color: #aebbe0;
}
.link-panel-block > p.small { margin: 0 0 8px; }

.sns-icon-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
/* 個人SNS = 「最新ビジュアル/近況を見に行く」目的地。埋め込みせず誘導文＋アイコン行で構成。 */
.member-sns-lead {
  margin: 0 0 10px;
  line-height: 1.6;
}

/* 所属グループのミニ・スポットライト（代表MVサムネ＋事務所/人数/世代）。画像ファーストの周辺カードと揃える。 */
.group-spotlight-card {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 12px;
  align-items: center;
  padding: 10px;
  border-color: rgba(var(--group-accent-rgb, 120,140,255), .3);
  background:
    linear-gradient(120deg, rgba(var(--group-accent-rgb, 120,140,255), .12), rgba(var(--group-accent-2-rgb, 150,160,255), .05)),
    rgba(255, 255, 255, .04);
}
.group-spotlight-thumb {
  display: block;
  aspect-ratio: 16 / 11;
  border-radius: 8px;
  overflow: hidden;
}
.group-spotlight-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.group-spotlight-body {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.group-spotlight-body strong {
  font-size: 17px;
  line-height: 1.3;
}
.group-spotlight-meta {
  font-size: 12.5px;
  color: rgba(238, 244, 255, .74);
}
.group-spotlight-card .card-go {
  margin-top: 4px;
}
.sns-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 11px 6px 8px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 999px;
  background: rgba(255, 255, 255, .06);
  font-size: 12.5px;
  font-weight: 700;
  color: #eaf0ff;
  text-decoration: none;
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}
.sns-link:hover {
  background: rgba(255, 255, 255, .12);
  border-color: rgba(255, 255, 255, .34);
  transform: translateY(-1px);
}
.sns-link-icon { width: 16px; height: 16px; fill: currentColor; flex: none; color: #eaf0ff; }
.sns-link-badge {
  width: 16px;
  height: 16px;
  border-radius: 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 800;
  background: var(--group-accent, #6f8cff);
  color: #0a1020;
  flex: none;
}
.sns-link-label { white-space: nowrap; }
.sns-link[data-platform="youtube"] .sns-link-icon { color: #ff0033; }
.sns-link[data-platform="instagram"] .sns-link-icon { color: #e1306c; }
.sns-link[data-platform="facebook"] .sns-link-icon { color: #1877f2; }
.sns-link[data-platform="spotify"] .sns-link-icon { color: #1db954; }

@media (min-width: 861px) {
  /* サイドバーに常設目次があるので、static-primary グループ詳細では
     top の折りたたみ「ページ内メニューを見る」をデスクトップで隠す（モバイルは表示のまま）。 */
  [data-static-primary="group-page"] .page-jump-nav.jump-more-only { display: none; }
  /* rail 自体は内部スクロールさせず、ページと一緒にスクロール。
     列を本文と同じ高さに伸ばし、目次だけを sticky で全ページ追従させる。 */
  .group-detail-shell { align-items: stretch; }
  .detail-rail-toc {
    display: block;
    position: sticky;
    top: 80px;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 14px 16px;
  }
}

.surface {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  backdrop-filter: blur(12px) saturate(118%);
  padding: 18px;
  margin-bottom: 16px;
}

/* 2026-06-17 デザインレビュー: 詳細系3ページ(グループ詳細/作品一覧/動画一覧)で
   全セクションが同一 frosted panel(重shadow + blur12)になり単調だった問題への対応。
   通常セクションは D-2 の中立 elevation(--elev-1)へ落とし、blur を外す
   (panel は alpha .9 でほぼ不透明=blur 寄与は小・全幅パネル多段で重い)。
   これにより主役パネル(.tldr=elev-2)が「持ち上がって」読め、面の階層が生まれる。 */
.page[data-group-theme] .surface {
  box-shadow: var(--elev-1);
  backdrop-filter: none;
}

.surface[id] {
  scroll-margin-top: 92px;
}

.affiliate-section[id] {
  scroll-margin-top: 112px;
}

.group-hero-with-visual h1 {
  /* 2026-06-17 デザインレビュー: 対象名(グループ/作品/動画ハブ)を主役として
     スケールコントラストを上げる。48px頭打ち→66pxへ。display type 化のため
     line-height を詰め、Outfit 900 に合わせて負トラッキング。長名は keep-all で
     語の途中分割を防ぐ(2026-06-04 Decision「K-pop 分断禁止」を踏襲)。 */
  font-size: clamp(40px, 5vw, 66px);
  line-height: 1.05;
  letter-spacing: -0.012em;
  text-wrap: balance;
}

.hero-title-line {
  display: block;
  overflow-wrap: normal;
  white-space: nowrap;
  word-break: keep-all;
}

/* 作品詳細ヒーローは作品名が長くなり得る（例: WDA (Whole Different Animal) (Feat. G-DRAGON)）。
   .hero-title-line の nowrap を解除して折り返し、ジャケットへの被りを防ぐ。フォントも一段下げる。 */
.release-detail-hero h1 {
  font-size: clamp(22px, 2.4vw, 32px);
}
.release-detail-hero .hero-title-line {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: normal;
}

body[data-member-slug] .static-hero .hero-title-line {
  width: fit-content;
  max-width: 100%;
}

.surface,
.card,
.member-card,
.release-card,
.focus-card,
.mini-highlight {
  transition: transform 200ms ease, border-color 200ms ease, background 200ms ease, box-shadow 200ms ease, opacity 420ms ease;
}

.card:hover,
.focus-card:hover,
.mini-highlight:hover,
.release-card:hover {
  transform: translateY(-3px);
  border-color: rgba(var(--group-accent-2-rgb),.35);
  background: rgba(255,255,255,.09);
  box-shadow: var(--elev-2);
}

.reveal-on-scroll {
  opacity: 0;
  transform: translateY(16px);
}

.reveal-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0);
}

#app[data-static-primary="group-page"] .reveal-on-scroll {
  opacity: 1;
  transform: none;
}

body.calendar-page .reveal-on-scroll {
  opacity: 1;
  transform: none;
}

.mobile-only { display: none; }

.section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.section-head h2 {
  margin-bottom: 4px;
}

/* 「作品一覧へ」等の see-all は、重いガラスボタンではなく軽いゴーストピル＋矢印にする。 */
.section-head .button-link {
  flex: 0 0 auto;
  background: transparent;
  border-color: rgba(255, 255, 255, .2);
  border-radius: 999px;
  padding: 6px 13px;
  font-size: 13px;
  font-weight: 700;
  box-shadow: none;
}
.section-head .button-link::after {
  content: "→";
  margin-left: 6px;
  font-weight: 600;
  opacity: .8;
  transition: transform .18s ease;
}
.section-head .button-link:hover {
  background: rgba(var(--group-accent-rgb), .14);
  border-color: rgba(var(--group-accent-rgb), .42);
  box-shadow: none;
}
.section-head .button-link:hover::after {
  transform: translateX(3px);
}

.section-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.card-list, .chip-list {
  display: grid;
  gap: 10px;
}

.card {
  display: block;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: var(--radius);
  padding: 12px;
  background: rgba(255,255,255,.095);
}

.card p:last-child { margin-bottom: 0; }

.card-kicker {
  display: block;
  width: fit-content;
  color: #d9fbff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0;
  margin-bottom: 8px;
}

.related-activity-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 8px;
}

.related-activity-link {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-height: 72px;
  padding: 10px 12px;
  color: inherit;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 8px;
  background:
    linear-gradient(120deg, rgba(var(--group-accent-rgb), .14), rgba(var(--group-accent-2-rgb), .08)),
    rgba(255, 255, 255, .055);
}

.related-activity-link:hover {
  border-color: rgba(var(--group-accent-rgb), .45);
  background:
    linear-gradient(120deg, rgba(var(--group-accent-rgb), .22), rgba(var(--group-accent-2-rgb), .12)),
    rgba(255, 255, 255, .08);
  transform: translateY(-1px);
}

.related-activity-type {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 48px;
  padding: 4px 7px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  color: #f5fdff;
  border: 1px solid rgba(255, 255, 255, .22);
  background: rgba(255, 255, 255, .12);
}

.related-activity-copy {
  min-width: 0;
}

.related-activity-copy strong,
.related-activity-copy span {
  display: block;
}

.related-activity-copy strong {
  font-size: 15px;
  line-height: 1.25;
}

.related-activity-copy span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

/* 2026-06-18 ソロ・ユニット活動を画像先導の content カード(doda「新着」風)へ刷新。
   旧: チップ+テキストの横長箱。新: 上部16:9サムネ(ソロ=顔/ユニット=公式動画、無ければ
   アクセント面＋モノグラム)＋下部にタイプchip・名前・導線。 */
.related-activities-section .related-activity-list {
  grid-template-columns: repeat(auto-fill, minmax(208px, 264px));
  justify-content: start;
  gap: 12px;
}
.related-activity-link.activity-card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 14px;
  background: rgba(255, 255, 255, .025);
  transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.related-activity-link.activity-card:hover {
  transform: translateY(-3px);
  border-color: rgba(var(--group-accent-rgb), .42);
  background: rgba(255, 255, 255, .04);
}
.activity-card-media {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, rgba(var(--group-accent-rgb), .5), rgba(var(--group-accent-2-rgb), .38));
}
.activity-card-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .3s ease;
}
.related-activity-link.activity-card:hover .activity-card-media img { transform: scale(1.05); }
.activity-card-media.has-thumb .activity-card-initial { display: none; }
.activity-card-initial {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 2rem;
  font-weight: 900;
  color: #fff;
  opacity: .92;
}
.activity-card-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 7px;
  padding: 12px 14px 14px;
}
.activity-card .related-activity-type { min-width: 0; }
.activity-card-name {
  font-weight: 800;
  font-size: 1.05rem;
  line-height: 1.2;
  color: #fff;
}
.activity-card-go {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--soft);
  font-size: 12px;
}
.activity-card-arrow {
  color: rgba(var(--group-accent-rgb), 1);
  font-weight: 700;
  transition: transform .2s ease;
}
.related-activity-link.activity-card:hover .activity-card-arrow { transform: translateX(3px); }

.song-grid .card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.song-grid .card p {
  flex: 1;
  line-height: 1.65;
  margin-bottom: 14px;
}

.chip-list {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

table {
  width: 100%;
  border-collapse: collapse;
}

th, td {
  text-align: left;
  border-bottom: 1px solid var(--line);
  padding: 11px 12px;
  vertical-align: top;
  font-size: 14px;
}

td {
  color: #f3f6ff;
}

th {
  color: #e4e9f5;
  font-weight: 800;
  background: rgba(255,255,255,.12);
}

.table-wrap { overflow-x: auto; overflow-y: hidden; }
.table-wrap table { min-width: 980px; }

.member-profile-wrap table,
.member-profile-table {
  min-width: 0;
  table-layout: fixed;
  width: 100%;
}

.member-profile-table th {
  width: clamp(104px, 34%, 132px);
}

.member-profile-table td {
  overflow-wrap: anywhere;
  /* D-6: 身長・誕生日・血液型など数値の桁を揃え、名前DBの数値列を雑誌級の精度で見せる。 */
  font-variant-numeric: tabular-nums;
}

.detail-wide-flow #basic table,
.static-fallback #profile .member-profile-table,
.group-basic-table {
  min-width: 0;
  table-layout: fixed;
  width: 100%;
}

.group-basic-table .group-basic-label-col {
  width: 168px;
}

.detail-wide-flow #basic th,
.static-fallback #profile .member-profile-table th,
.group-basic-table th {
  width: 168px;
  vertical-align: middle;
}

.detail-wide-flow #basic td,
.static-fallback #profile .member-profile-table td,
.group-basic-table td {
  vertical-align: middle;
  overflow-wrap: anywhere;
}

/* 2026-06-18 基本情報の刷新(ユーザー指摘: 上部カードと表の重複/箱で囲っただけで古い/見づらい)。
   ・表は重複指標(メンバー数/世代/活動日数/日本活動度)を renderer 側で除去し、identity/説明系のみに。
   ・表はクリーンな単カラムに戻し、ラベル(th)の塗りピルを廃して静かなラベルへ(可読性優先)。 */
.detail-wide-flow #basic .group-basic-table th {
  background: none;
  color: rgba(234, 240, 255, .64);
  font-size: 12.5px;
  font-weight: 800;
  vertical-align: baseline;
}
.detail-wide-flow #basic .group-basic-table td {
  vertical-align: baseline;
}
/* 2026-06-18 ユーザー指摘: メンバー基本プロフィール表の th 塗りピル(グレー箱)は、
   グループ #basic で撤廃済みの旧UI。整合のためメンバー側も塗りを廃し静かなラベルへ。 */
.static-fallback #profile .member-profile-table th,
body[data-member-slug] #profile .member-profile-table th {
  background: none;
  color: rgba(234, 240, 255, .64);
  font-size: 12.5px;
  font-weight: 800;
}

/* 上部の主要数値を「箱で囲ったカード」→ 罫線区切りのエディトリアル・スタッツ帯へ。
   箱(border/bg/radius)を撤去し、上下のヘアラインで帯化、列間は縦ヘアラインで仕切る。 */
.group-basic-bento {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: 0 0 22px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.group-basic-bento-tile {
  min-width: 0;
  border: 0;
  border-left: 1px solid var(--line);
  border-radius: 0;
  padding: 16px 20px;
  background: none;
}
.group-basic-bento-tile:nth-child(4n+1) {
  border-left: 0;
  padding-left: 2px;
}
@media (max-width: 640px) {
  .group-basic-bento { grid-template-columns: repeat(2, 1fr); }
  .group-basic-bento-tile { border-left: 1px solid var(--line); }
  .group-basic-bento-tile:nth-child(2n+1) { border-left: 0; padding-left: 2px; }
  .group-basic-bento-tile:nth-child(n+3) { border-top: 1px solid var(--line); }
}

.group-basic-bento dt {
  margin: 0 0 6px;
  color: rgba(234, 240, 255, .72);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
}

.group-basic-bento dd {
  margin: 0;
  color: #fff;
  font-weight: 900;
  line-height: 1.18;
}

.group-basic-bento-value {
  display: inline;
  color: #fff;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: clamp(26px, 2.6vw, 34px);
  letter-spacing: -.01em;
  white-space: nowrap;
  overflow-wrap: normal;
}

/* 署名指標「日本活動度」の数値だけをグループ色で強調し、他は白で落ち着かせる（全数値が派手な青になるのを避ける）。 */
.group-basic-bento-score .group-basic-bento-value {
  color: var(--group-accent, #8bd3ff);
}

.group-basic-bento-unit {
  color: rgba(255, 255, 255, .76);
  font-size: 13px;
  font-weight: 800;
}

.group-basic-bento small {
  display: block;
  margin-top: 5px;
  color: rgba(234, 240, 255, .7);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
}

.group-basic-bento-link {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 6px;
  color: inherit;
  text-decoration: none;
}

.group-basic-bento-link:hover {
  text-decoration: underline;
  text-decoration-color: var(--group-accent, currentColor);
}

@media (max-width: 560px) {
  .group-basic-bento {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .group-basic-bento-tile {
    padding: 12px;
  }

  .group-basic-bento-value {
    font-size: 20px;
  }

  .group-basic-table .group-basic-label-col,
  .detail-wide-flow #basic th,
  .static-fallback #profile .member-profile-table th,
  .group-basic-table th {
    width: 136px;
  }
}

.table-link {
  display: inline-flex;
  align-items: center;
  border-radius: 6px;
  padding: 2px 6px;
  margin: -2px -6px;
  color: #f0f6ff;
  font-weight: 800;
  text-decoration: none;
  transition: background .16s ease, color .16s ease, box-shadow .16s ease;
}

.table-link:hover {
  color: #fff;
  background: rgba(var(--group-accent-rgb), .18);
  box-shadow: inset 0 0 0 1px rgba(var(--group-accent-rgb), .34);
  text-decoration: underline;
  text-decoration-color: var(--group-accent-3, var(--group-accent));
  text-underline-offset: 3px;
}

.empty {
  padding: 30px;
  text-align: center;
  color: var(--muted);
}

.badge {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  max-width: 100%;
  min-height: 24px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.13);
  border-radius: 999px;
  padding: 3px 10px;
  margin: 3px 4px 3px 0;
  color: #f1f5ff;
  font-size: 13px;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.small { color: #d1d8e8; font-size: 13px; }
.note-dim { opacity: 0.75; }

.badge-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 14px;
}

.page-jump-nav {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(136px, 1fr));
  gap: 8px;
  margin: 0 0 16px;
}

.page-jump-nav.jump-more-only {
  grid-template-columns: minmax(180px, 1fr);
}

.page-jump-nav.jump-more-only .page-jump-more {
  grid-column: 1 / -1;
}

.page-jump-nav .button-link {
  min-height: 42px;
  font-weight: 800;
}

.intent-cta-nav {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: -4px 0 16px;
}

.intent-cta-card {
  display: grid;
  gap: 5px;
  min-width: 0;
  min-height: 104px;
  border: 1px solid rgba(var(--group-accent-rgb), .34);
  border-radius: 8px;
  padding: 14px;
  background: linear-gradient(135deg, rgba(var(--group-accent-rgb), .22), rgba(255,255,255,.055));
  color: #f7fbff;
  text-decoration: none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
  transition: transform .16s ease, border-color .16s ease, background .16s ease;
}

.intent-cta-card:hover {
  transform: translateY(-1px);
  border-color: rgba(var(--group-accent-rgb), .64);
  background: linear-gradient(135deg, rgba(var(--group-accent-rgb), .3), rgba(255,255,255,.08));
}

.intent-cta-card span {
  color: #d9fbff;
  font-size: 11px;
  font-weight: 900;
}

.intent-cta-card strong {
  font-size: 17px;
  line-height: 1.35;
}

.intent-cta-card small {
  color: #d4dcee;
  line-height: 1.55;
}

.glossary-page .grid {
  grid-template-columns: 1fr;
}

.glossary-page .glossary-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 10px;
  margin: 0;
}

.glossary-page .glossary-list > div {
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--radius);
  background: rgba(255,255,255,.055);
}

.glossary-page .glossary-list dt {
  margin: 0 0 6px;
  font-weight: 900;
  line-height: 1.45;
}

.glossary-page .glossary-list dd {
  margin: 0;
  color: #d8dfef;
  font-size: 14px;
  line-height: 1.75;
}

.glossary-page .glossary-list a {
  color: #f7fbff;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
  overflow-wrap: anywhere;
}

.page-jump-more {
  position: relative;
  min-width: 0;
}

.page-jump-more summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 42px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 7px;
  padding: 10px 13px;
  background: rgba(255,255,255,.1);
  color: inherit;
  font-weight: 800;
  cursor: pointer;
  list-style: none;
}

.page-jump-more summary::-webkit-details-marker {
  display: none;
}

.page-jump-more summary::after {
  content: "+";
  margin-left: 8px;
  font-weight: 900;
}

.page-jump-more[open] summary::after {
  content: "-";
}

.page-jump-more > div {
  position: absolute;
  z-index: 20;
  right: 0;
  top: calc(100% + 8px);
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  width: min(360px, 84vw);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: var(--radius);
  padding: 10px;
  background: rgba(15,18,30,.96);
  box-shadow: var(--shadow);
}

.page-jump-more > div .button-link {
  justify-content: flex-start;
}

.stream-quick-card {
  border-color: rgba(var(--accent-rgb), .48);
  background: linear-gradient(135deg, rgba(var(--accent-rgb), .22), rgba(255,255,255,.06));
}

.stream-quick-card .button-link {
  margin-top: auto;
}

.stream-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: auto;
}

.stream-quick-actions .button-link {
  flex: 1 1 112px;
  min-height: 40px;
  justify-content: center;
}

#streaming-discovery .card-list {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

#streaming-discovery .card,
.stream-quick-card {
  min-width: 0;
  overflow-wrap: anywhere;
}

#streaming-discovery .card {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#streaming-discovery .button-link {
  align-self: flex-start;
  max-width: 100%;
  white-space: normal;
}

.highlight-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 18px;
}

.mini-highlight {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 5px 12px;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.045);
  border-radius: 7px;
  padding: 12px 14px;
}

.mini-highlight span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
}

.mini-highlight strong {
  color: #fff;
  font-size: 16px;
  line-height: 1.35;
}

.mini-highlight p {
  grid-column: 2;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
}

.member-table th {
  width: auto;
  font-size: 12px;
}

.member-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.member-card-grid:not(.member-card-grid-bento) > .member-card:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.member-subsection {
  display: grid;
  gap: 10px;
}

.member-subsection + .member-subsection {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.12);
}

.member-subsection h3 {
  margin: 0;
  color: #f8fbff;
  font-size: 18px;
  letter-spacing: 0;
}

.member-subsection > .small {
  margin: -4px 0 2px;
}

.former-members .member-card {
  opacity: .9;
  background:
    radial-gradient(circle at 0 0, rgba(var(--member-accent-rgb),.12), transparent 38%),
    linear-gradient(135deg, rgba(255,255,255,.05), rgba(var(--group-accent-2-rgb),.055));
}

.memorial-members .member-card {
  background:
    radial-gradient(circle at 0 0, rgba(var(--member-accent-rgb),.1), transparent 40%),
    linear-gradient(135deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
}

.memorial-members .member-tag-status {
  border-color: rgba(255,255,255,.45);
  background: rgba(255,255,255,.1);
}

.member-card {
  --member-accent: var(--group-accent);
  --member-accent-rgb: var(--group-accent-rgb);
  --member-accent-ink: #fff;
  --member-color: var(--group-accent);
  --member-color-rgb: var(--group-accent-rgb);
  --member-color-ink: #fff;
  --avatar-hue: 0deg;
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  min-height: 236px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: var(--radius);
  padding: 14px;
  background:
    radial-gradient(circle at 0 0, rgba(var(--member-accent-rgb),.22), transparent 38%),
    linear-gradient(135deg, rgba(var(--member-accent-rgb),.08), rgba(var(--group-accent-2-rgb),.075) 48%, rgba(255,255,255,.055));
  color: inherit;
  text-decoration: none;
}

.member-card:hover {
  border-color: rgba(var(--member-accent-rgb),.48);
  background:
    radial-gradient(circle at 0 0, rgba(var(--member-accent-rgb),.28), transparent 42%),
    linear-gradient(135deg, rgba(var(--member-accent-rgb),.12), rgba(var(--group-accent-rgb),.085) 50%, rgba(var(--group-accent-2-rgb),.1));
  transform: translateY(-3px);
  box-shadow: var(--elev-2);
}

.member-visual {
  display: grid;
  justify-items: center;
  gap: 8px;
  width: 76px;
}

.member-avatar {
  display: grid;
  place-items: center;
  width: 72px;
  aspect-ratio: 1 / 1;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 18px;
  background:
    radial-gradient(circle at 26% 18%, rgba(255,255,255,.68), transparent 0 18%, transparent 42%),
    radial-gradient(circle at 85% 82%, rgba(var(--group-accent-2-rgb),.55), transparent 0 24%, transparent 46%),
    linear-gradient(135deg, rgba(var(--member-accent-rgb),.98), rgba(var(--group-accent-rgb),.72) 58%, rgba(var(--group-accent-2-rgb),.72));
  color: var(--member-accent-ink);
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 24px;
  font-weight: 800;
  letter-spacing: 0;
  box-shadow:
    inset 0 0 0 2px rgba(255,255,255,.16),
    inset 0 0 22px rgba(255,255,255,.22),
    0 14px 32px rgba(var(--member-accent-rgb),.22);
  position: relative;
  transition: transform 220ms ease, box-shadow 220ms ease;
}

.member-avatar::before,
.member-avatar::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.member-avatar::before {
  inset: 8px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 15px;
}

.member-avatar::after {
  right: 8px;
  bottom: 8px;
  width: 10px;
  height: 10px;
  border: 1px solid rgba(255,255,255,.64);
  border-radius: 999px;
  background: var(--member-accent);
}

.member-avatar span {
  position: relative;
  z-index: 1;
}

.member-avatar.has-thumb {
  overflow: hidden;
  padding: 0;
  isolation: isolate;
}

.member-avatar-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: inherit;
  z-index: 0;
  display: block;
  filter: none;
  mix-blend-mode: normal;
  opacity: 1;
}

.member-avatar.has-thumb .member-avatar-initial {
  display: none;
}

.member-avatar.has-thumb::before,
.member-avatar.has-thumb::after {
  z-index: 2;
}

.member-visual-line {
  width: 46px;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(var(--member-accent-rgb),.28), rgba(var(--member-accent-rgb),.88), rgba(var(--group-accent-2-rgb),.5));
}

.member-card:hover .member-avatar {
  transform: translateY(-2px) scale(1.03);
  box-shadow:
    inset 0 0 0 2px rgba(255,255,255,.26),
    var(--elev-2);
}

/* 2026-06-17 試作: メンバーカードを「上部16:9バナー + 下部情報」に再構成し画像を主役化。
   従来の 76px サイドアバターを上書き。aespa(4人=2列・各≈375px)では hqdefault の
   16:9コンテンツ(480×270)を object-fit cover で黒帯除去しつつ等倍以下表示=鮮明。
   ロールアウト時は builder で maxres srcset(ytThumbSrcset) を付与し広いカードでも高画質に。
   revert はこのブロック削除でOK(元のサイドアバター定義は不変)。 */
.member-card-grid > .member-card {
  grid-template-columns: none;
  display: flex;
  flex-direction: column;
  padding: 0;
  gap: 0;
  overflow: hidden;
}
.member-card-grid > .member-card > .member-visual {
  display: block;
  width: 100%;
}
.member-card-grid > .member-card .member-avatar {
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  font-size: 40px;
}
.member-card-grid > .member-card .member-avatar::before,
.member-card-grid > .member-card .member-avatar::after,
.member-card-grid > .member-card .member-visual-line {
  display: none;
}
.member-card-grid > .member-card .member-card-body {
  padding: 14px;
}
.member-card-grid > .member-card:hover .member-avatar {
  transform: none;
  box-shadow: none;
}
/* 奇数人グループの最終カードを全幅にしない(バナー化でその1人だけ巨大化＋hqdefault
   引き伸ばしで画質劣化するため)。カード幅は1列のまま保ち、空きセルが不自然に
   見えないよう中央寄せにする(2026-06-17 ユーザー指摘)。
   2列が成立する 861px 以上のみ。≤860px は1列なので最終カードも通常の全幅で良い。 */
@media (min-width: 861px) {
  .member-card-grid:not(.member-card-grid-bento) > .member-card:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    max-width: calc(50% - 5px);
    justify-self: center;
  }
}

.member-card-grid > .member-card.member-card-neutral-color:nth-child(7n+1) {
  --member-accent: #57A8FF;
  --member-accent-rgb: 87, 168, 255;
}

.member-card-grid > .member-card.member-card-neutral-color:nth-child(7n+2) {
  --member-accent: #FF6FAE;
  --member-accent-rgb: 255, 111, 174;
}

.member-card-grid > .member-card.member-card-neutral-color:nth-child(7n+3) {
  --member-accent: #9D7CFF;
  --member-accent-rgb: 157, 124, 255;
}

.member-card-grid > .member-card.member-card-neutral-color:nth-child(7n+4) {
  --member-accent: #3ED7B5;
  --member-accent-rgb: 62, 215, 181;
}

.member-card-grid > .member-card.member-card-neutral-color:nth-child(7n+5) {
  --member-accent: #FFC857;
  --member-accent-rgb: 255, 200, 87;
}

.member-card-grid > .member-card.member-card-neutral-color:nth-child(7n+6) {
  --member-accent: #49D3FF;
  --member-accent-rgb: 73, 211, 255;
}

.member-card-grid > .member-card.member-card-neutral-color:nth-child(7n+7) {
  --member-accent: #FF8A5B;
  --member-accent-rgb: 255, 138, 91;
}

.member-card-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.member-card-body h3 {
  margin-bottom: 3px;
  font-size: 18px;
}

.member-color-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 22px;
  border: 1px solid rgba(var(--member-color-rgb),.42);
  border-radius: 999px;
  padding: 3px 8px;
  background:
    linear-gradient(135deg, rgba(var(--member-color-rgb),.18), rgba(var(--group-accent-2-rgb),.1));
  color: #f4f7ff;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.member-color-chip span {
  width: 9px;
  height: 9px;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 999px;
  background: linear-gradient(135deg, var(--member-color), var(--group-accent-2));
}

.member-name-variants {
  color: #d1d8e8;
  font-size: 12px;
  line-height: 1.45;
  margin-bottom: 8px;
}

.member-tag-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 0 10px;
  overflow: hidden;
}

.member-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  max-width: 132px;
  min-height: 27px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 6px;
  padding: 4px 8px;
  background: rgba(255,255,255,.075);
  color: #eef3ff;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.member-tag:first-child {
  border-color: rgba(var(--member-accent-rgb),.34);
  background: rgba(var(--member-accent-rgb),.16);
}

.member-tag-status {
  border-color: rgba(255,255,255,.3);
  background: rgba(255,255,255,.14);
  color: #fff;
}

/* 2026-08-03: 解散・脱退済みグループのメンバーカードに「現在 <移籍先>」を出す。
   IZ*ONE のようなグループでは「あの人は今どこ？」が第一の疑問なのに、
   カードには当時の情報しか無く、移籍先がページのどこにも書かれていなかった。 */
.member-tag-current {
  border-color: rgba(var(--group-accent-rgb), .5);
  background: rgba(var(--group-accent-rgb), .16);
  color: #fff;
  font-weight: 700;
}

/* 2026-06-18 ソロ導線をメンバーカードに統合。ソロ活動ありのメンバーは「ソロ」タグを
   アクセント chip で強調し、カード(=メンバーページ=ソロ拠点)への入口として明示する。 */
.member-tag-solo {
  border-color: rgba(var(--group-accent-rgb), .55);
  background: rgba(var(--group-accent-rgb), .2);
  color: #fff;
}

/* 2026-05-30: サイドバー追加でメイン列が狭くなり、横並び(64pxラベル+値)の dl が
   長い値（出身地など）を潰していた。各 fact を「小ラベル上＋値下」の縦スタット化し、
   値にセル幅を全部使わせる。狭い列でも崩れない世界一水準のスペックシートにする。 */
.member-card-body dl {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin: 2px 0 12px;
}

/* 2026-06-16: 1カラムの整列スペックシートへ。箱で囲わず、ラベル左＋値右をベースライン揃えにし
   細い区切りでスキャンさせる。値の長短（本名/出身地/国籍）がバラつくと2列グリッドは
   国籍だけ孤立・狭い列で改行と崩れるため、1カラムに統一して世界一水準の可読性にする。 */
.member-card-body dl div {
  display: grid;
  grid-template-columns: 5em minmax(0, 1fr);
  gap: 2px 12px;
  align-items: baseline;
  min-width: 0;
  padding: 7px 2px;
  background: none;
  border-radius: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .07);
}

.member-card-body dl div:last-child {
  border-bottom: 0;
}

.member-card-body dl div.member-fact-wide {
  grid-column: 1 / -1;
}

.member-card-body dt {
  color: var(--soft);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .04em;
}

.member-card-body dd {
  margin: 0;
  color: #f3f6ff;
  font-size: 13px;
  font-weight: 600;
  min-width: 0;
  overflow-wrap: anywhere;
  line-height: 1.4;
}

.member-card-body .member-fact-wide dd {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
}

.member-card-body p {
  margin: 0;
  font-size: 13px;
  line-height: 1.7;
}

/* 2026-06-01: 身長/血液型/MBTI は本人特定より副次的なスペック。主要 dl の下に
   コンパクトな横ストリップとして常時表示し（隠さない）、カードの情報密度を整理する。 */
.member-card-body dl.member-card-spec {
  display: flex;
  flex-wrap: wrap;
  grid-template-columns: none;
  gap: 6px;
  margin: -2px 0 12px;
}

.member-card-body dl.member-card-spec div {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  gap: 5px;
  padding: 4px 9px;
  border-radius: 7px;
  background: rgba(255, 255, 255, .025);
  border: 1px solid rgba(255, 255, 255, .06);
}

.member-card-body dl.member-card-spec dt {
  font-size: 9.5px;
  opacity: .82;
}

.member-card-body dl.member-card-spec dd {
  font-size: 12px;
  font-weight: 700;
}

.focus-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.focus-card {
  min-height: 136px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--radius);
  padding: 13px;
  background: rgba(255,255,255,.055);
}

.focus-card strong {
  display: block;
  margin-bottom: 7px;
  color: #fff;
  font-size: 15px;
}

.focus-card p {
  margin: 0;
  font-size: 13px;
  line-height: 1.7;
}

.song-grid,
.link-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.video-tabs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 4px 0 14px;
}

.video-market-tabs {
  margin-top: -6px;
}

.video-sort-toolbar {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 180px;
  margin-left: auto;
}

.video-sort-toolbar label {
  color: #c7d2ee;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.video-sort-toolbar select {
  min-height: 38px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 10px;
  background: rgba(255,255,255,.06);
  color: #f7fbff;
  padding: 7px 32px 7px 12px;
  font: inherit;
  font-size: 13px;
  transition: border-color .18s ease, background .18s ease;
}

.video-sort-toolbar select:hover {
  border-color: rgba(var(--group-accent-rgb),.5);
  background: rgba(255,255,255,.1);
}

/* カテゴリタブ（すべて/MV/Dance/…）はクリーンなピルに統一。
   現在地はセグメンテッドナビと同じアクセント塗りで示す。 */
.video-tab {
  border-radius: 999px;
  padding: 7px 14px;
  font-size: 13px;
  font-weight: 700;
  min-height: 0;
  box-shadow: none;
}

/* アクティブタブはフラットな単色アクセント（2026-06-28「ネオンのマゼンタ×シアン
   グラデボタン禁止」／2026-06-29「操作・状態のアクセントはマゼンタ単色」）。
   グラデ＋発光＋淡色バッジで3色になっていたのを、面1色＋白文字へ戻す。 */
.video-tab.active {
  border-color: transparent;
  background: rgba(var(--group-accent-rgb), 1);
  color: #fff;
  box-shadow: none;
}

.video-filter-guide {
  padding-block: 18px;
}

.video-filter-guide h2 {
  margin: 0 0 12px;
  font-size: 16px;
}

.video-guide-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 8px;
}

.video-guide-item {
  display: grid;
  gap: 3px;
  min-height: 64px;
  padding: 10px 12px 10px 14px;
  border: 1px solid rgba(255,255,255,.14);
  border-left: 2px solid rgba(var(--group-accent-rgb),.55);
  border-radius: 10px;
  background: rgba(255,255,255,.055);
}

.video-guide-item strong {
  color: #fff;
  font-size: 13px;
}

.video-guide-item span {
  color: #c4cfea;
  font-size: 12px;
  line-height: 1.45;
}

.video-card {
  min-height: 330px;
  display: flex;
  flex-direction: column;
}

.video-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 12px;
}

.video-type-pill {
  display: inline-flex;
  min-height: 26px;
  align-items: center;
  border: 1px solid rgba(var(--group-accent-2-rgb),.25);
  border-radius: 999px;
  background: rgba(var(--group-accent-2-rgb),.1);
  color: #dffcff;
  font-size: 12px;
  font-weight: 800;
  padding: 4px 9px;
}

.video-card h3 {
  margin-bottom: 12px;
}

.lite-youtube {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--radius);
  padding: 0;
  margin: 0 0 12px;
  background: rgba(0,0,0,.38);
  cursor: pointer;
  text-decoration: none;
  transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}

.lite-youtube img {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.lite-youtube img {
  object-fit: cover;
  opacity: .86;
  transition: transform .22s ease, opacity .22s ease;
}

.lite-youtube:hover img {
  transform: scale(1.025);
  opacity: 1;
}

.lite-youtube:hover {
  transform: translateY(-2px);
  border-color: rgba(var(--group-accent-2-rgb),.42);
  box-shadow: var(--elev-2);
}

.lite-youtube::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, transparent 42%, rgba(0,0,0,.5)),
    radial-gradient(circle at center, rgba(var(--group-accent-rgb),.22), transparent 42%);
  pointer-events: none;
}

/* 動画一覧カードのプレイボタン（2026-05-31再判断）:
   小さな一覧サムネでは、丸い汎用ボタンより横長のアクセントCTAの方が
   KPOP DISCOVERらしい視線誘導とクリック領域を作れる。大きなヒーロー動画だけは
   下の .group-hero-visual-video override で丸型を維持する。 */
.lite-youtube-play {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 1;
  width: 58px;
  height: 42px;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(255,255,255,.46);
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(var(--group-accent-rgb),.92), rgba(var(--group-accent-2-rgb),.78));
  box-shadow: 0 14px 30px rgba(0,0,0,.34);
  transition: transform .2s cubic-bezier(.2, .8, .2, 1), background .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.lite-youtube-play::before {
  content: "";
  position: absolute;
  left: 23px;
  top: 11px;
  border-left: 16px solid #fff;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  filter: drop-shadow(0 1px 3px rgba(0,0,0,.28));
}

.lite-youtube:hover .lite-youtube-play {
  transform: translate(-50%, -50%) scale(1.04);
  background: linear-gradient(135deg, rgba(var(--group-accent-rgb), .98), rgba(var(--group-accent-2-rgb), .88));
  border-color: rgba(255, 255, 255, .9);
  box-shadow: 0 16px 34px rgba(0, 0, 0, .38), 0 0 0 4px rgba(var(--group-accent-rgb), .16);
}

.static-thumb-wrap {
  position: relative;
}

.route-video-repeat {
  position: relative;
}

.route-video-repeat img {
  filter: saturate(.72) brightness(.74);
}

.static-thumb-wrap > span,
.route-video-repeat::before {
  position: absolute;
  left: 12px;
  top: 12px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  border-radius: 999px;
  padding: 4px 10px;
  border: 1px solid rgba(255,255,255,.26);
  background: rgba(7,10,20,.76);
  color: #fff;
  font-size: 12px;
  font-weight: 850;
  backdrop-filter: blur(8px);
}

.route-video-repeat::before {
  content: "入口曲で紹介済み";
}

.video-card-thumb {
  flex: 0 0 auto;
}

.video-meta {
  display: grid;
  gap: 8px;
  margin: 0 0 14px;
  color: #d7deec;
}

.video-meta div {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 8px;
}

.video-meta dt {
  color: var(--soft);
  font-size: 12px;
}

.video-meta dd {
  margin: 0;
  color: #e8edf7;
  font-size: 13px;
}

.video-card .button-link {
  margin-top: auto;
}

.video-card-actions {
  display: grid;
  gap: 8px;
  margin-top: auto;
}

.video-card-actions .video-kind-links {
  margin-top: 0;
}

.video-card-primary-link {
  width: 100%;
  justify-content: center;
  padding: 8px 12px;
  border-color: rgba(var(--group-accent-rgb), .30);
  background: rgba(var(--group-accent-rgb), .10);
  color: rgba(255,255,255,.95);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .01em;
}

.video-card-primary-link:hover,
.video-card-primary-link:focus-visible {
  border-color: rgba(var(--group-accent-2-rgb), .48);
  background: rgba(var(--group-accent-rgb), .18);
}

.video-watch-link {
  width: 100%;
  justify-content: center;
}

.video-youtube-link {
  border-color: rgba(255,255,255,.12);
  background: rgba(255,255,255,.035);
  color: rgba(255,255,255,.86);
}

.video-youtube-link:hover,
.video-youtube-link:focus-visible {
  border-color: rgba(255,255,255,.24);
  background: rgba(255,255,255,.06);
  color: #fff;
}

.video-kind-links {
  display: grid;
  gap: 8px;
  margin-top: auto;
}

.video-kind-link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  width: 100%;
  min-height: 42px;
  gap: 10px;
  text-align: left;
}

.video-kind-link span {
  font-weight: 750;
  min-width: 0;
  overflow-wrap: anywhere;
  line-height: 1.25;
}

.video-kind-link small {
  color: var(--muted);
  font-size: 12px;
  justify-self: end;
  line-height: 1.2;
  text-align: right;
  white-space: nowrap;
}

.video-kind-overflow {
  display: grid;
  gap: 8px;
}

.video-kind-overflow summary {
  list-style: none;
  cursor: pointer;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 10px;
  background: rgba(255,255,255,.04);
  color: rgba(255,255,255,.86);
  min-height: 40px;
  padding: 9px 12px;
  font-size: 13px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.video-kind-overflow summary::-webkit-details-marker {
  display: none;
}

.video-kind-overflow summary::after {
  content: "+";
  font-size: 1rem;
  line-height: 1;
}

.video-kind-overflow[open] summary::after {
  content: "-";
}

.video-kind-overflow-links {
  display: grid;
  gap: 8px;
}

.empty-video-card {
  min-height: 180px;
}

.route-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  position: relative;
}

.route-steps::before {
  content: "";
  position: absolute;
  left: 23px;
  top: 20px;
  bottom: 20px;
  width: 2px;
  background: linear-gradient(
    to bottom,
    rgba(var(--group-accent-rgb),.58),
    rgba(var(--group-accent-2-rgb),.34) 58%,
    rgba(var(--group-accent-rgb),.1)
  );
}

.route-step {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  position: relative;
}

.route-step-marker {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  z-index: 1;
}

.route-step-body {
  display: grid;
  grid-template-columns: minmax(280px, .92fr) minmax(420px, 1fr);
  column-gap: 20px;
  align-items: start;
  padding: 4px 0 34px;
}

.route-step:last-child .route-step-body {
  padding-bottom: 4px;
}

.route-number {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(var(--group-accent-rgb),.45);
  border-radius: 999px;
  background:
    radial-gradient(circle at 28% 22%, rgba(255,255,255,.32), transparent 34%),
    linear-gradient(135deg, rgba(var(--group-accent-rgb),.72), rgba(var(--group-accent-2-rgb),.42));
  color: #fff;
  font-weight: 900;
  position: relative;
  z-index: 1;
}

.route-step-body h3 {
  grid-column: 1;
  margin-top: 2px;
  margin-bottom: 6px;
}

.route-step-body > p {
  grid-column: 1;
  font-size: .92rem;
  color: var(--soft);
  line-height: 1.55;
  margin-bottom: 12px;
}

.route-meta {
  grid-column: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
  margin-bottom: 8px;
}

.route-meta span {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 12px;
  line-height: 1;
  border: 1px solid rgba(var(--group-accent-rgb),.34);
  background: rgba(var(--group-accent-rgb),.15);
  color: #fff;
  font-weight: 850;
}

.route-meta .chip {
  min-height: 26px;
  color: rgba(255, 255, 255, .78);
  border-color: rgba(var(--group-accent-rgb), .24);
  background: rgba(var(--group-accent-rgb), .07);
  box-shadow: none;
  font-weight: 750;
}

.route-meta .route-intent {
  border-color: rgba(var(--group-accent-2-rgb), .46);
  background:
    linear-gradient(135deg, rgba(var(--group-accent-rgb), .28), rgba(var(--group-accent-2-rgb), .16)),
    rgba(255, 255, 255, .06);
  color: #f8fbff;
}

.route-meta .route-repeat-note {
  border-color: rgba(255,255,255,.18);
  background: rgba(255,255,255,.09);
  color: var(--soft);
}

.route-thumb-wrap {
  grid-column: 2;
  grid-row: 1 / span 4;
  width: 100%;
  max-width: none;
}

.route-thumb-wrap .lite-youtube {
  margin: 0;
}

.conversion-card {
  display: flex;
  flex-direction: column;
  min-height: 210px;
}

.conversion-card .button-link {
  margin-top: auto;
  width: 100%;
}

.buying-card {
  display: flex;
  flex-direction: column;
  min-height: 240px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: var(--radius);
  padding: 16px;
  background:
    linear-gradient(145deg, rgba(var(--group-accent-rgb), .12), rgba(var(--group-accent-2-rgb), .055)),
    rgba(255,255,255,.07);
}

.buying-card h3 {
  margin: 0 0 8px;
  font-size: 18px;
  line-height: 1.35;
}

.buying-card p {
  flex: 1;
  margin-top: 8px;
}

.buying-guide-meta {
  display: block;
  color: #aebde0;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.45;
}

.buying-card .badge-row {
  margin: 0 0 12px;
}

.buying-card .button-link {
  width: 100%;
}

/* 2026-06-01 購入セクション統一（全グループ共通 / .affiliate-section = #goods・#member-goods）:
   ①ボタンを横並びwrap・同寸（flex:1）に揃えてサイズ不統一を解消、
   ②min-height とボタン縦積みによる縦の間延びを解消、
   ③ガイド/外部ストアの .card もアルバムカードと同じ面に揃え、5枚が1つの導線として読めるようにする。 */
.affiliate-section .buying-card {
  min-height: 0;
}
.affiliate-section .release-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: auto;
}
/* 外部ストア(Amazon/楽天/Yahoo)は半幅カードでも 2＋1 折返しで不揃いになっていた。
   等幅の縦積み(1列)に統一し、全て同じ幅・同じ高さで揃える。 */
.affiliate-section .commerce-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin-top: auto;
}
.affiliate-section .release-actions .button-link,
.affiliate-section .buying-card .button-link {
  flex: 1 1 auto;
  width: auto;
  min-width: 128px;
  justify-content: center;
  text-align: center;
}
.affiliate-section .commerce-actions .button-link {
  width: 100%;
  min-width: 0;
  justify-content: center;
  text-align: center;
}
.affiliate-section .song-grid > .card {
  padding: 16px;
  border-radius: var(--radius);
  border-color: rgba(255, 255, 255, .13);
  background:
    linear-gradient(145deg, rgba(var(--group-accent-rgb), .12), rgba(var(--group-accent-2-rgb), .055)),
    rgba(255, 255, 255, .07);
}

.goods-buying-grid {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

/* 2026-06-01 デザイン刷新（全グループ共通）: 「公式情報・入口曲」「似ているグループ」が
   素の灰色テキストカードで古く見えていたのを、アイコン/グループ色アクセント/関係性チップ/
   ホバー/矢印のある“導線カード”に格上げする。 */
.authority-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  position: relative;
  padding-right: 36px;
  transition: transform 200ms ease, background 200ms ease, border-color 200ms ease;
}
.authority-card:hover {
  transform: translateY(-2px);
  background: rgba(var(--group-accent-rgb), .1);
  border-color: rgba(var(--group-accent-rgb), .42);
}
.authority-icon {
  flex: none;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  font-size: 18px;
  background: rgba(var(--group-accent-rgb), .14);
  border: 1px solid rgba(var(--group-accent-rgb), .3);
}
.authority-body strong {
  display: block;
  margin-bottom: 2px;
}
.authority-body p {
  margin: 0;
}
.authority-go,
.related-group-go {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(var(--group-accent-rgb), 1);
  font-weight: 700;
  transition: transform 200ms ease;
}
.authority-card:hover .authority-go {
  transform: translate(3px, -50%);
}

.related-group-card {
  position: relative;
  border-left: 3px solid var(--rg-accent, rgba(var(--group-accent-rgb), .85));
  padding-right: 36px;
  transition: transform 200ms ease, background 200ms ease;
}
.related-group-card:hover {
  transform: translateY(-2px);
  background: rgba(var(--rg-accent-rgb, var(--group-accent-rgb)), .1);
}
.related-group-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}
.related-group-chip {
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 999px;
  /* 比較先グループのアクセントは暗い場合があるため、文字は常に可読な明色にし、色は背景/枠で示す。 */
  color: #eef4ff;
  background: rgba(var(--rg-accent-rgb, var(--group-accent-rgb)), .22);
  border: 1px solid rgba(var(--rg-accent-rgb, var(--group-accent-rgb)), .42);
}
.related-group-card:hover .related-group-go {
  transform: translate(3px, -50%);
}
.related-group-go {
  color: var(--rg-accent, rgba(var(--group-accent-rgb), 1));
}

/* 2026-06-18 ユーティリティ系セクション(公式情報/購入/似ているグループ/FAQ)を最先端化。
   汎用グレー箱の縦積み→軽量カード＋多カラム＋アートワーク先導＋ヘアラインFAQに刷新。
   他セクションの脱・重箱・editorial方針と統一する。 */

/* 公式情報・入口曲: 縦積みグレー箱→3カラムの軽量導線カード */
#official-entry .card-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
#official-entry .authority-card {
  background: rgba(255, 255, 255, .025);
  border-color: rgba(255, 255, 255, .08);
  border-radius: 14px;
  padding: 16px 16px;
}
#official-entry .authority-card:hover {
  background: rgba(var(--group-accent-rgb), .08);
}

/* 似ているグループ: 縦積み→2カラム、箱を軽量化(左アクセント罫＋チップ＋矢印は維持) */
#related-groups .card-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#related-groups .related-group-card {
  background: rgba(255, 255, 255, .025);
  border-color: rgba(255, 255, 255, .08);
  border-radius: 14px;
  padding: 14px 16px 14px 18px;
}

/* 購入: アルバムカードをアートワーク先導(ストア的)に。accentグラデ箱→軽量面へ。 */
.affiliate-section .buying-card,
.affiliate-section .song-grid > .card {
  background: rgba(255, 255, 255, .025);
  border-color: rgba(255, 255, 255, .08);
  border-radius: 14px;
}
.buying-card-art {
  display: block;
  aspect-ratio: 1 / 1;
  border-radius: 10px;
  overflow: hidden;
  margin: 0 0 14px;
  background: rgba(255, 255, 255, .05);
}
.buying-card-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .3s ease;
}
.buying-card-has-art:hover .buying-card-art img { transform: scale(1.04); }

/* FAQ: 箱の連なり→ヘアライン区切りの開いたQ&A(AEO=開いたまま視認可) */
.faq-section .faq-list { gap: 0; }
.faq-section .faq-list div {
  border: 0;
  border-radius: 0;
  background: none;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}
.faq-section .faq-list div:first-child { padding-top: 4px; }
.faq-section .faq-list div:last-child { border-bottom: 0; }

@media (max-width: 760px) {
  #official-entry .card-list,
  #related-groups .card-list { grid-template-columns: 1fr; }
}

.commerce-page .buying-card {
  gap: 10px;
}

.commerce-page .check-list {
  margin: 0 0 12px 18px;
  padding: 0;
}

.commerce-page .check-list li {
  margin: 5px 0;
}

.editorial-commerce-page .page {
  max-width: 1180px;
}

.editorial-commerce-page .commerce-hero {
  padding: 28px 0 26px;
  border-top: 1px solid rgba(255,255,255,.07);
  border-bottom: 1px solid rgba(255,255,255,.06);
  margin: 0 0 28px;
  background: none;
  box-shadow: none;
  backdrop-filter: none;
  border-radius: 0;
}

.editorial-commerce-page .commerce-hero h1 {
  max-width: 30ch;
  word-break: keep-all;
  overflow-wrap: normal;
  line-break: strict;
}

.editorial-commerce-page .commerce-page {
  display: grid;
  gap: 18px;
}

.editorial-commerce-page .surface {
  border-radius: 8px;
  border-color: rgba(255,255,255,.1);
  background:
    linear-gradient(135deg, rgba(255,255,255,.04), rgba(255,255,255,.018)),
    rgba(12, 16, 27, .78);
  box-shadow: none;
}

.editorial-commerce-page .surface > h2,
.editorial-commerce-page .section-head h2 {
  font-size: clamp(21px, 2.3vw, 28px);
  line-height: 1.25;
}

.goods-policy-panel {
  margin: 0 0 2px;
}

.goods-policy-panel ul {
  padding-left: 0;
}

.goods-section {
  display: grid;
  gap: 18px;
  padding: 24px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(18, 214, 203,.045), rgba(212, 20, 101,.025)),
    rgba(12, 16, 27, .76);
}

.goods-section-head {
  display: grid;
  gap: 6px;
}

.goods-section-head .section-eyebrow {
  margin: 0;
}

.goods-section-head h2 {
  margin: 0;
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.2;
}

.goods-section-head p {
  max-width: 68ch;
  margin: 0;
  color: var(--muted);
  line-height: 1.7;
}

.goods-intent-grid,
.goods-guide-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: 12px;
}

.goods-intent-card,
.goods-guide-card {
  display: grid;
  align-content: start;
  gap: 8px;
  min-width: 0;
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 8px;
  padding: 16px;
  color: inherit;
  text-decoration: none;
  background: rgba(255,255,255,.035);
  transition: border-color 180ms ease, background 180ms ease, transform 180ms ease;
}

.goods-intent-card:hover,
.goods-intent-card:focus-visible,
.goods-guide-card:hover,
.goods-guide-card:focus-visible {
  border-color: rgba(18, 214, 203, .32);
  background: rgba(18, 214, 203, .045);
  transform: translateY(-1px);
  /* outline は消さない: グローバルの a:focus-visible 3px を残し、キーボードフォーカスを可視に保つ（WCAG 2.4.7）。 */
}

.goods-intent-card .card-kicker,
.goods-guide-card .card-kicker {
  width: fit-content;
  border: 1px solid rgba(18, 214, 203,.22);
  border-radius: 999px;
  padding: 4px 8px;
  color: var(--accent-2);
  background: rgba(18, 214, 203,.07);
  font-size: 10.5px;
  font-weight: 900;
  letter-spacing: .04em;
}

.goods-intent-card strong,
.goods-guide-card strong {
  color: var(--ink);
  font-size: 17px;
  line-height: 1.35;
}

.goods-intent-card p,
.goods-guide-card p {
  margin: 0;
  color: var(--muted);
  font-size: 13.5px;
  line-height: 1.65;
}

.goods-intent-card .button-link {
  margin-top: 4px;
  justify-self: start;
  border-radius: 999px;
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 850;
}

.goods-decision-table .table-wrap {
  margin: 0;
}

.goods-page .buying-card,
.goods-page .card-list > .card,
.goods-page .chip-list > .card {
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.045), rgba(255,255,255,.018)),
    rgba(12, 16, 27, .78);
  border-color: rgba(255,255,255,.11);
}

.commerce-actions {
  display: grid;
  gap: 8px;
  margin-top: auto;
}

.affiliate-note {
  border-color: rgba(46, 204, 113, .3);
  background: rgba(46, 204, 113, .08);
}

.affiliate-section {
  border-color: rgba(var(--group-accent-rgb), .28);
  overflow: hidden;
}

.affiliate-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  gap: 10px;
  margin-top: 12px;
  width: 100%;
  min-width: 0;
}

.affiliate-card {
  display: grid;
  align-content: start;
  gap: 6px;
  min-height: 118px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: var(--radius);
  padding: 14px;
  min-width: 0;
  color: inherit;
  text-decoration: none;
  background:
    linear-gradient(145deg, rgba(var(--group-accent-rgb), .14), rgba(var(--group-accent-2-rgb), .08)),
    rgba(255,255,255,.08);
  transition: transform 200ms ease, border-color 200ms ease, background 200ms ease, box-shadow 200ms ease, opacity 200ms ease;
}

.affiliate-card strong {
  line-height: 1.45;
}

.affiliate-card:hover {
  transform: translateY(-3px);
  border-color: rgba(var(--group-accent-2-rgb), .38);
  box-shadow: var(--elev-2);
}

.affiliate-card[data-affiliate-id="PLACEHOLDER"] {
  opacity: .42;
  pointer-events: none;
  filter: saturate(.72);
}

.compact-table table {
  min-width: 720px;
}

.fandom-table {
  min-width: 0 !important;
  width: 100%;
  table-layout: fixed;
}

.fandom-table th,
.fandom-table td {
  overflow-wrap: anywhere;
}

.grid > div > section.index-table-surface {
  content-visibility: visible !important;
  contain: none !important;
  contain-intrinsic-size: none !important;
}

.index-table-surface {
  background: rgba(15, 18, 30, .88);
  backdrop-filter: none;
}

.index-table-surface .table-wrap {
  max-height: 68vh;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 8px;
  overflow: auto;
}

.index-table-surface thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #151827;
}

.index-dashboard-page {
  overflow-x: hidden;
}

.index-dashboard-page .app {
  width: min(1200px, 100%);
  margin: 0 auto;
}

.index-dashboard-page main {
  min-width: 0;
  padding: 22px;
}

.index-dashboard-page .hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  min-height: 150px;
  padding: 22px;
  margin-bottom: 18px;
  overflow: hidden;
  position: relative;
  background:
    linear-gradient(120deg, rgba(212, 20, 101, 0.18), transparent 38%),
    linear-gradient(290deg, rgba(18, 214, 203, 0.18), transparent 44%),
    rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(18px) saturate(150%);
}

.index-dashboard-page .hero::before {
  content: "DISCOVER";
  position: absolute;
  right: 18px;
  top: -12px;
  font-size: clamp(64px, 11vw, 150px);
  font-weight: 950;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px rgba(255, 255, 255, 0.12);
  letter-spacing: 0;
  pointer-events: none;
}

.index-dashboard-page .hero > * {
  position: relative;
  z-index: 1;
}

.index-dashboard-page .hero h1 {
  font-size: clamp(32px, 5vw, 58px);
}

.hero.hero-with-summary,
.index-dashboard-page .hero.hero-with-summary {
  display: grid;
  grid-template-columns: minmax(320px, 0.9fr) minmax(300px, 1.1fr);
  align-items: center;
  gap: 18px 32px;
  background: rgba(18, 24, 38, 0.88) !important;
  background-image: none !important;
}

.hero.hero-with-summary::before,
.hero.hero-with-summary::after,
.index-dashboard-page .hero.hero-with-summary::before,
.index-dashboard-page .hero.hero-with-summary::after {
  display: none !important;
}

.hero.hero-with-summary h1,
.index-dashboard-page .hero.hero-with-summary h1 {
  background: none !important;
  color: #f7f9ff !important;
  -webkit-text-fill-color: #f7f9ff !important;
}

.hero-summary-card {
  display: grid !important;
  grid-template-columns: 1fr !important;
  align-content: center;
  gap: 8px;
  width: 100%;
  max-width: 760px;
  justify-self: end;
  /* 枠付きカードを廃止し、左の細いアクセント罫だけ残す「要点」表現に統一（カードに見せない） */
  border: 0;
  border-left: 2px solid rgba(18, 214, 203, 0.55);
  border-radius: 0;
  background: none;
  color: #dfe7f6;
  padding: 2px 0 2px 18px;
  line-height: 1.75;
  box-shadow: none;
}

.hero-summary-card strong {
  display: block !important;
  width: 100%;
  margin: 0;
  color: #fff;
  font-size: 15px;
  line-height: 1.7;
}

.hero-summary-card p {
  display: block !important;
  width: 100%;
  margin: 0;
  color: #dce4f4;
  font-size: 14px;
  line-height: 1.75;
}

.index-dashboard-page .sub {
  max-width: 820px;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.8;
}

/* === 一覧/ハブ トップカード統一: list-hero 正本（2026-06-04） === */
/* 全一覧ページのヒーローは renderListHero() が出すこの構造に統一する。 */
/* standard = 右ビジュアルなし（1カラム）, hub/has-aside = 右ビジュアルあり（2カラム）。 */
/* hero-with-summary には依存しない（index-dashboard の2カラム強制を受けないため）。 */
.hero.list-hero,
.index-dashboard-page .hero.list-hero {
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
  gap: 16px 32px;
  background: rgba(18, 24, 38, 0.88) !important;
  background-image: none !important;
}
.hero.list-hero.has-aside,
.index-dashboard-page .hero.list-hero.has-aside {
  grid-template-columns: minmax(320px, 0.95fr) minmax(280px, 1fr);
}
.hero.list-hero::before,
.hero.list-hero::after,
.index-dashboard-page .hero.list-hero::before,
.index-dashboard-page .hero.list-hero::after {
  display: none !important;
}
.hero.list-hero h1,
.index-dashboard-page .hero.list-hero h1 {
  max-width: none;
  background: none !important;
  color: #f7f9ff !important;
  -webkit-text-fill-color: #f7f9ff !important;
  word-break: keep-all;
  overflow-wrap: normal;
}
.list-hero-main {
  display: grid;
  gap: 12px;
  align-content: center;
  min-width: 0;
}
.list-hero-main > * { margin: 0; }
.list-hero-eyebrow {
  color: var(--accent-2, #12d6cb);
  font-size: 12.5px;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.hero.list-hero .lead.list-hero-lead {
  max-width: 820px;
  color: #cfd8ec;
  font-size: 16px;
  line-height: 1.8;
}
.list-hero-lead strong { color: #fff; font-weight: 800; }
.list-hero-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 0;
  margin-top: 4px;
  padding: 0;
  list-style: none;
}
.list-hero-stats li {
  display: grid;
  gap: 2px;
  padding: 0 18px;
  border-right: 1px solid rgba(255, 255, 255, 0.12);
}
.list-hero-stats li:first-child { padding-left: 0; }
.list-hero-stats li:last-child { border-right: 0; }
.list-hero-stats strong {
  color: #fff;
  font-size: clamp(22px, 3vw, 30px);
  line-height: 1.05;
  font-weight: 800;
}
.list-hero-stats span {
  color: var(--muted, #9aa6c2);
  font-size: 12px;
}
.list-hero .hero-actions { margin-top: 4px; }
@media (max-width: 860px) {
  .hero.list-hero.has-aside { grid-template-columns: 1fr; }
  .list-hero-stats li:first-child { padding-left: 0; }
}

/* 全ヒーローH1で「K-pop」をハイフン分断させず、CJKの単独文字孤立も防ぐ（2026-06-04） */
.guides-index-hero h1,
.calendar-hero h1,
.compare-index-hero h1,
.compare-tool-hero h1,
.starter-hero-title,
.db-hub-page .starter-hero-title,
.db-hub-page .hub-hero h1 {
  word-break: keep-all;
  overflow-wrap: normal;
}

.company-detail-page .hero.hero-with-summary {
  grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
  align-items: center;
  min-height: 0;
  padding: 28px 32px;
  gap: 24px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.045), rgba(255,255,255,.02)),
    rgba(17, 23, 37, .92) !important;
}

.company-detail-page .company-hero-kicker {
  margin: 0 0 12px;
  color: var(--accent-2);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0;
}

.company-detail-page .hero.hero-with-summary h1 {
  max-width: 680px;
  margin-bottom: 10px;
  font-size: clamp(36px, 4.4vw, 56px);
  line-height: 1.04;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}

.company-detail-page .company-hero-topic {
  max-width: 680px;
  margin: 0 0 18px;
  color: #f1f5ff;
  font-size: clamp(20px, 2.1vw, 26px);
  font-weight: 900;
  line-height: 1.35;
}

.company-detail-page .company-hero-topic span {
  display: inline-block;
  margin-right: .45em;
}

.company-detail-page .hero.hero-with-summary .sub {
  max-width: 760px;
  margin-bottom: 14px;
  font-size: 16px;
  line-height: 1.9;
}

.company-detail-page .hero-summary-card {
  align-self: center;
  max-width: none;
  border-color: rgba(255,255,255,.12);
  border-radius: 8px;
  background: rgba(255,255,255,.055);
  padding: 18px 20px;
  box-shadow: none;
}

.index-dashboard-page .home-search {
  margin-top: 18px;
  max-width: 720px;
}

/* ページ本文のフォーム。ヘッダー（.site-header 内の検索）へ届かないよう、
   本文コンテナ .page / .app の内側だけへスコープする（header_rules.md §2）。
   以前は body クラス直下の素の input/select を指しており、共通ヘッダーの
   検索入力に枠・背景・角丸・padding が乗って別デザインになっていた。 */
.index-dashboard-page .page input,
.index-dashboard-page .page select,
.index-dashboard-page .app input,
.index-dashboard-page .app select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: rgba(255,255,255,.08);
  color: var(--ink);
  padding: 10px;
  outline: none;
  backdrop-filter: blur(14px);
}

.index-dashboard-page select option {
  color: #121420;
  background: #fff;
}

/* placeholder も本文コンテナへスコープ（ヘッダー検索の placeholder に届かせない） */
.index-dashboard-page .page input::placeholder,
.index-dashboard-page .app input::placeholder {
  color: rgba(248,247,255,.42);
}

.index-dashboard-page label {
  display: block;
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.index-dashboard-filters {
  display: grid;
  grid-template-columns: minmax(190px, 1.4fr) repeat(4, minmax(130px, 1fr)) auto;
  gap: 10px;
  align-items: end;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(13,16,31,.68);
  padding: 14px;
  margin-bottom: 18px;
  backdrop-filter: blur(22px) saturate(145%);
  box-shadow: var(--shadow);
}

.index-dashboard-filters .filter-advanced {
  grid-column: 1 / -1;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--radius);
  background: rgba(255,255,255,.06);
}

.index-dashboard-filters .filter-advanced summary {
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  color: var(--ink);
  cursor: pointer;
  font-weight: 700;
  list-style: none;
}

.index-dashboard-filters .filter-advanced summary::-webkit-details-marker {
  display: none;
}

.index-dashboard-filters .filter-advanced summary::after {
  content: "+";
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 6px;
  color: var(--accent-2);
}

.index-dashboard-filters .filter-advanced[open] summary::after {
  content: "-";
}

.index-dashboard-filters .filter-advanced-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 10px;
  padding: 0 12px 12px;
}

.filters {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(13,16,31,.68);
  padding: 14px;
  margin-bottom: 18px;
  backdrop-filter: blur(22px) saturate(145%);
  box-shadow: var(--shadow);
}

.filters input,
.filters select {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  color: var(--ink);
  padding: 10px 14px;
  outline: none;
  backdrop-filter: blur(14px);
}

.filters select {
  min-height: 44px;
}

.filters select option {
  color: #121420;
  background: #fff;
}

.filters input::placeholder {
  color: rgba(248,247,255,.54);
}

.filters .filter-search,
.filters .filter-primary,
.filters .filter-advanced {
  grid-column: 1 / -1;
}

.filters .filter-search > input {
  width: 100%;
  min-height: 48px;
}

.filters .filter-primary,
.filters .filter-secondary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  align-items: center;
}

.filters .filter-secondary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding-top: 12px;
}

.filters .filter-advanced {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.04);
  overflow: hidden;
}

.filters .filter-advanced summary {
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  cursor: pointer;
  font-weight: 800;
  color: var(--ink);
  list-style: none;
}

.filters .filter-advanced summary::-webkit-details-marker {
  display: none;
}

.filters .filter-advanced summary::after {
  content: "+";
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  color: var(--accent-2);
}

.filters .filter-advanced[open] summary::after {
  content: "-";
}

.filters .filter-actions {
  display: flex;
  align-items: center;
}

.filters .filter-actions button {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  color: var(--ink);
  font-weight: 800;
  cursor: pointer;
}

.companies-filter-panel .filter-primary {
  grid-template-columns: minmax(0, 1fr) auto;
}

.index-dashboard-page .filter-actions {
  display: flex;
  align-items: end;
}

.index-dashboard-page .home-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}

.index-dashboard-page .home-section {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(13,16,31,.68);
  padding: 16px;
  box-shadow: var(--shadow);
}

.index-dashboard-page .home-section h3 {
  margin: 0 0 10px;
}

.index-dashboard-page .home-section p {
  margin-bottom: 12px;
}

.index-dashboard-page .home-list {
  display: grid;
  gap: 8px;
}

.index-dashboard-page .home-card {
  display: grid;
  gap: 4px;
  width: 100%;
  min-height: 58px;
  justify-items: start;
  text-align: left;
  color: var(--ink);
  text-decoration: none;
}

.index-dashboard-page .home-card span {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.index-dashboard-page .stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 18px;
}

.index-dashboard-page .stat {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background:
    linear-gradient(120deg, rgba(18, 214, 203,.1), transparent),
    rgba(255,255,255,.07);
  padding: 14px;
  box-shadow: var(--shadow);
}

.index-dashboard-page .stat strong {
  display: block;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 28px;
  line-height: 1;
}

.index-dashboard-page .stat span {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.company-detail-page .company-fact-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.company-detail-page .company-fact-grid .mini-highlight {
  min-height: 118px;
}

.company-detail-page .company-history-timeline .timeline-item {
  grid-template-columns: 88px 132px minmax(0, 1fr);
}

.company-detail-page .company-related-list,
.company-detail-page .company-artist-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.company-detail-page .company-related-card,
.company-detail-page .company-artist-card {
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 154px;
}

.company-detail-page .company-artist-card {
  gap: 16px;
  padding: 20px;
}

.company-detail-page .company-artist-head {
  display: grid;
  gap: 8px;
}

.company-detail-page .company-artist-head strong {
  color: #f7fbff;
  font-size: 22px;
  line-height: 1.28;
}

.company-detail-page .company-artist-meta {
  width: fit-content;
  border: 1px solid rgba(96, 210, 224, .24);
  border-radius: 999px;
  padding: 5px 9px;
  background: rgba(96, 210, 224, .08);
  color: #c8f6ff;
  font-size: 12px;
  font-weight: 850;
  line-height: 1.35;
}

.company-detail-page .company-artist-links {
  display: grid;
  gap: 10px;
  border-top: 1px solid rgba(255, 255, 255, .08);
  padding-top: 14px;
}

.company-detail-page .company-artist-links > span {
  color: #9fb0c8;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .04em;
}

.company-detail-page .company-artist-links > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.company-detail-page .company-artist-chip {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 999px;
  padding: 6px 10px;
  background: rgba(255, 255, 255, .055);
  color: #dbe8ff;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.25;
  text-decoration: none;
}

.company-detail-page .company-artist-chip:hover {
  border-color: rgba(96, 210, 224, .42);
  background: rgba(96, 210, 224, .12);
  color: #f7fbff;
}

.company-detail-page .company-related-card {
  padding: 20px;
}

.company-detail-page .company-related-head {
  display: grid;
  gap: 10px;
}

.company-detail-page .company-related-head strong {
  font-size: 22px;
  line-height: 1.25;
}

.company-detail-page .company-label-concept {
  margin: 0;
  color: #e9f1ff;
  font-size: 16px;
  font-weight: 850;
  line-height: 1.75;
}

.company-detail-page .company-label-artists {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  width: fit-content;
  max-width: 100%;
  margin: 0;
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 999px;
  padding: 7px 10px;
  background: rgba(255, 255, 255, .055);
  color: #ccd7e8;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.45;
}

.company-detail-page .company-label-artists span {
  color: #dffcff;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 0;
}

.company-detail-page .company-label-note {
  margin: 2px 0 0;
  border-top: 1px solid rgba(255, 255, 255, .08);
  padding-top: 12px;
  color: #b8c2d3;
  font-size: 14px;
  line-height: 1.8;
}

.stats-dashboard-page .stats-delta {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-top: 10px;
  padding: 3px 8px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  background: rgba(255,255,255,.07);
  color: var(--muted);
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
  line-height: 1.35;
}

.stats-dashboard-page .stats-delta.is-positive {
  border-color: rgba(18, 214, 203,.22);
  color: var(--accent-2);
}

.stats-dashboard-page .stats-delta.is-negative {
  border-color: rgba(212, 20, 101,.24);
  color: var(--accent);
}

.stats-dashboard-page .stats-delta.is-neutral {
  color: #d9e2ef;
}

.stats-dashboard-page .stats-readout-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 14px;
}

.stats-dashboard-page .stats-readout-card {
  display: grid;
  gap: 8px;
  min-height: 150px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(18, 214, 203,.08), rgba(212, 20, 101,.06)),
    rgba(255,255,255,.055);
  box-shadow: var(--shadow);
}

.stats-dashboard-page .stats-readout-card strong {
  color: #fff;
  font-size: 15px;
  line-height: 1.35;
}

.stats-dashboard-page .stats-readout-card p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

.stats-dashboard-page .stats-readout-card small {
  align-self: end;
  color: var(--accent-2);
  font-size: 12px;
  font-weight: 900;
}

.stats-dashboard-page .stats-coverage-panel {
  margin: 0 0 14px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255,255,255,.045);
}

.stats-dashboard-page .stats-coverage-list {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.stats-dashboard-page .stats-coverage-row {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.stats-dashboard-page .stats-insight-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.stats-dashboard-page .stats-insight-panel {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255,255,255,.055);
  padding: 14px;
}

.stats-dashboard-page .stats-insight-panel h3 {
  margin: 0 0 12px;
  font-size: 15px;
}

.stats-dashboard-page .stats-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 12px;
}

.stats-dashboard-page .stats-panel-head h3 {
  margin: 0;
}

.stats-dashboard-page .stats-scope-control {
  display: inline-grid;
  grid-template-columns: repeat(3, minmax(46px, 1fr));
  min-width: 150px;
  padding: 3px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  background: rgba(255,255,255,.06);
}

.stats-dashboard-page .stats-scope-control button {
  min-height: 28px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

.stats-dashboard-page .stats-scope-control button[aria-pressed="true"] {
  background: linear-gradient(135deg, rgba(18, 214, 203,.22), rgba(212, 20, 101,.18));
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.12);
}

.stats-dashboard-page .stat-bar-list {
  display: grid;
  gap: 10px;
}

.stats-dashboard-page .stat-bar-row {
  display: grid;
  gap: 6px;
}

.stats-dashboard-page .stat-bar-top {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: #eef4ff;
  font-size: 12px;
  line-height: 1.35;
}

.stats-dashboard-page .stat-bar-top strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.stats-dashboard-page .stat-bar-top span {
  flex: 0 0 auto;
  color: var(--muted);
  font-weight: 800;
}

.stats-dashboard-page .stat-bar-track {
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
}

.stats-dashboard-page .stat-bar-track span {
  display: block;
  width: var(--bar, 0%);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #12d6cb, #d41465);
}

.calendar-page.index-dashboard-page .hero {
  display: grid;
  grid-template-columns: minmax(320px, 430px) minmax(0, 1fr);
  align-items: center;
  gap: 18px 32px;
  min-height: 0;
  padding: 26px 28px;
  background:
    linear-gradient(120deg, rgba(255,255,255,.08), transparent 34%),
    linear-gradient(290deg, rgba(18, 214, 203,.12), transparent 52%),
    rgba(15,20,33,.94);
  border-color: rgba(255,255,255,.18);
  box-shadow: 0 18px 42px rgba(0,0,0,.3);
}

.calendar-page.index-dashboard-page .hero::before {
  content: none;
}

.calendar-page.index-dashboard-page .hero h1 {
  grid-row: 1 / span 2;
  max-width: 430px;
  margin: 0;
  color: #fff;
  background: none;
  -webkit-background-clip: initial;
  background-clip: initial;
  font-size: clamp(34px, 3vw, 46px);
  line-height: 1.12;
  animation: none;
  text-shadow: 0 12px 34px rgba(0,0,0,.32);
}

.calendar-page.index-dashboard-page .hero .lead {
  max-width: 760px;
  margin: 0;
  color: #eef4ff;
  font-size: 15px;
  line-height: 1.85;
}

.calendar-page.index-dashboard-page .hero .tldr {
  max-width: 760px;
  margin: 0;
  border: 1px solid rgba(18, 214, 203,.22);
  border-radius: var(--radius);
  background: rgba(255,255,255,.075);
  color: #dfe7f6;
  padding: 12px 14px;
  line-height: 1.75;
}

.calendar-page.index-dashboard-page main {
  padding: 18px 0 0;
}

.calendar-jumpbar {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  align-items: center;
  gap: 10px;
  margin: 0 0 12px;
  padding: 10px 12px;
  border: 1px solid rgba(18, 214, 203,.22);
  border-radius: var(--radius);
  background: linear-gradient(90deg, rgba(18, 214, 203,.085), rgba(255,255,255,.055));
  box-shadow: 0 14px 34px rgba(0,0,0,.22);
}

.calendar-jump-copy {
  display: grid;
  gap: 3px;
}

.calendar-jump-copy strong {
  color: #fff;
  font-size: 16px;
}

.calendar-jump-copy span {
  color: #dce4f4;
  font-size: 12px;
  line-height: 1.55;
}

.calendar-jump-controls {
  display: flex;
  align-items: end;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.calendar-jump-controls label {
  width: 100%;
  margin: 0;
}

.calendar-jump-controls select {
  min-width: 180px;
}

.calendar-jump-controls button {
  min-height: 38px;
}

.calendar-page .filter-actions button,
.calendar-jump-controls button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 41px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 7px;
  background: rgba(255,255,255,.1);
  color: #fff;
  padding: 9px 13px;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.calendar-page .filter-actions button:hover,
.calendar-jump-controls button:hover {
  transform: translateY(-1px);
  border-color: rgba(18, 214, 203,.4);
  background: rgba(255,255,255,.13);
  box-shadow: 0 10px 22px rgba(0,0,0,.22);
}

.calendar-jump-controls .button-link {
  min-height: 38px;
  padding-block: 8px;
}

.calendar-page.index-dashboard-page .stats {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.calendar-page.index-dashboard-page .calendar-stats {
  margin-top: -2px;
}

.calendar-page.index-dashboard-page .stat,
.calendar-page.index-dashboard-page .surface,
.calendar-page.index-dashboard-page .home-section,
.calendar-page .index-dashboard-filters {
  background: rgba(15,20,33,.94);
  border-color: rgba(255,255,255,.18);
  box-shadow: 0 14px 34px rgba(0,0,0,.24);
}

.calendar-page.index-dashboard-page .stat {
  padding: 13px 14px;
}

.calendar-page.index-dashboard-page .stat strong {
  color: #fff;
  font-size: 26px;
}

.calendar-page.index-dashboard-page .stat span,
.calendar-page.index-dashboard-page label,
.calendar-page .small,
.calendar-page .fandom-mobile-card small {
  color: #dce4f4;
}

.calendar-page.index-dashboard-page .card-list {
  gap: 8px;
}

.calendar-page.index-dashboard-page .card {
  background: rgba(255,255,255,.085);
  border-color: rgba(255,255,255,.17);
}

.calendar-page.index-dashboard-page .card strong,
.calendar-page .fandom-mobile-card span {
  color: #fff;
}

.calendar-page.index-dashboard-page .card p,
.calendar-page.index-dashboard-page p,
.calendar-page .fandom-mobile-card small {
  color: #dce4f4;
}

.calendar-page .calendar-agenda {
  padding: 18px;
}

.calendar-page .calendar-agenda .section-head {
  align-items: flex-start;
  gap: 16px;
}

.calendar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
  max-width: 520px;
}

.calendar-agenda-list {
  display: grid;
  gap: 10px;
}

.calendar-day-group {
  display: grid;
  grid-template-columns: minmax(110px, 150px) minmax(0, 1fr);
  gap: 12px;
  padding: 10px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: var(--radius);
  background: rgba(255,255,255,.045);
}

.calendar-day-group.is-today {
  border-color: rgba(18, 214, 203,.34);
  background: linear-gradient(90deg, rgba(18, 214, 203,.09), rgba(255,255,255,.045));
}

.calendar-day-label {
  display: grid;
  align-content: start;
  gap: 6px;
  padding: 8px 6px;
}

.calendar-day-label strong {
  color: #fff;
  font-size: 18px;
  line-height: 1.25;
}

.calendar-day-label span {
  color: #b8c4d8;
  font-size: 12px;
  font-weight: 800;
}

.calendar-day-items {
  display: grid;
  gap: 7px;
}

.calendar-agenda-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 9px 11px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 7px;
  background: rgba(255,255,255,.065);
  color: inherit;
  text-decoration: none;
}

.calendar-agenda-item-flat {
  grid-template-columns: minmax(0, 1fr) auto auto;
}

.calendar-agenda-item-main {
  display: grid;
  grid-template-columns: 112px minmax(150px, .72fr) minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-width: 0;
  color: inherit;
  font-weight: 800;
  line-height: 1.45;
  text-decoration: none;
}

.calendar-agenda-item-main:focus-visible {
  outline: 2px solid rgba(18, 214, 203, 0.78);
  outline-offset: 3px;
  border-radius: 6px;
}

.calendar-agenda-item:hover {
  border-color: rgba(255,255,255,.24);
  background: rgba(255,255,255,.09);
}

.calendar-agenda-item strong {
  color: #fff;
  line-height: 1.45;
}

.calendar-agenda-item-act {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  min-width: max-content;
}

.calendar-ics,
.calendar-fav,
.calendar-follow-clear {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.055);
  color: #e8eefc;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
}

.calendar-ics.is-soon {
  border-color: rgba(255, 86, 156, 0.48);
  background: rgba(255, 86, 156, 0.12);
  color: #ff9bc6;
}

.calendar-ics.is-today {
  border-color: transparent;
  background: #e6196b;
  color: #fff;
}

.calendar-ics,
.calendar-fav,
.calendar-follow-clear {
  cursor: pointer;
}

.calendar-ics {
  gap: 5px;
  padding: 0 11px;
  font-size: 0;
  font-variant-numeric: tabular-nums;
}

.calendar-ics::before {
  content: "";
  width: 12px;
  height: 12px;
  flex: none;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' fill='none' stroke='%23000' stroke-width='2.2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18' fill='none' stroke='%23000' stroke-width='2.2'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' fill='none' stroke='%23000' stroke-width='2.2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18' fill='none' stroke='%23000' stroke-width='2.2'/%3E%3C/svg%3E") center / contain no-repeat;
}

.calendar-ics::after {
  content: attr(data-countdown) " · 追加";
  font-size: 12px;
}

.calendar-fav {
  width: 30px;
  padding: 0;
  color: #f0f4ff;
  font-size: 14px;
}

.calendar-ics:hover,
.calendar-fav:hover,
.calendar-follow-clear:hover {
  border-color: rgba(255, 86, 156, 0.52);
  color: #fff;
}

.calendar-fav[aria-pressed="true"] {
  border-color: rgba(255, 86, 156, 0.72);
  background: rgba(255, 86, 156, 0.24);
  color: #fff;
}

.calendar-ics:focus-visible,
.calendar-fav:focus-visible,
.calendar-follow-clear:focus-visible {
  outline: 2px solid rgba(18, 214, 203, 0.78);
  outline-offset: 2px;
}

.calendar-agenda-meta {
  min-width: 0;
  color: #dce4f4;
  font-size: 13px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.calendar-category-chip,
.calendar-agenda-item-main[data-category-label]::before {
  content: attr(data-category-label);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 24px;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 3px 9px;
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.25;
  white-space: nowrap;
}

.calendar-category-chip[data-category="release"],
.calendar-agenda-item-main[data-category="release"]::before {
  background: rgba(133,112,255,.22);
  border-color: rgba(167,151,255,.42);
}

.calendar-category-chip[data-category="birthday"],
.calendar-agenda-item-main[data-category="birthday"]::before {
  background: rgba(255,86,156,.24);
  border-color: rgba(255,139,188,.48);
}

.calendar-category-chip[data-category="anniversary"],
.calendar-agenda-item-main[data-category="anniversary"]::before {
  background: rgba(18, 214, 203,.18);
  border-color: rgba(18, 214, 203,.42);
}

.calendar-category-chip[data-category="live"],
.calendar-agenda-item-main[data-category="live"]::before {
  background: rgba(62,217,132,.2);
  border-color: rgba(95,239,160,.44);
}

.calendar-category-chip[data-category="broadcast"],
.calendar-agenda-item-main[data-category="broadcast"]::before {
  background: rgba(91,141,255,.22);
  border-color: rgba(132,170,255,.46);
}

.calendar-category-chip[data-category="streaming"],
.calendar-agenda-item-main[data-category="streaming"]::before {
  background: rgba(0,205,190,.2);
  border-color: rgba(74,230,219,.42);
}

.calendar-category-chip[data-category="ticket"],
.calendar-agenda-item-main[data-category="ticket"]::before {
  background: rgba(255,145,77,.22);
  border-color: rgba(255,177,118,.46);
}

.calendar-category-chip[data-category="popup"],
.calendar-agenda-item-main[data-category="popup"]::before {
  background: rgba(196,116,255,.22);
  border-color: rgba(213,153,255,.46);
}

.calendar-category-chip[data-category="absence"],
.calendar-agenda-item-main[data-category="absence"]::before {
  background: rgba(255,93,93,.2);
  border-color: rgba(255,132,132,.46);
}

.calendar-category-chip[data-category="debut"],
.calendar-agenda-item-main[data-category="debut"]::before {
  background: rgba(255,202,87,.22);
  border-color: rgba(255,217,120,.48);
  color: #fff8df;
}

.calendar-category-chip[data-category="tba"],
.calendar-agenda-item-main[data-category="tba"]::before {
  background: rgba(180,190,208,.16);
  border-color: rgba(205,215,230,.3);
  color: #edf3ff;
}

.calendar-agenda-item-main > .calendar-category-chip,
.calendar-agenda-item-main[data-category-label]::before {
  width: 100%;
}

.calendar-page .badge.calendar-category-chip {
  margin: 0;
}

.calendar-page .index-table-surface .table-wrap {
  border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--radius);
  background: rgba(7,10,18,.42);
}

.calendar-result-agenda {
  display: grid;
  gap: 10px;
  margin-bottom: 12px;
}

.calendar-result-agenda .calendar-day-group {
  background: rgba(255,255,255,.038);
}

.calendar-view-tabs {
  display: inline-flex;
  gap: 6px;
  padding: 4px;
  margin: 0 0 12px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--radius);
  background: rgba(255,255,255,.055);
}

.calendar-view-tab {
  min-height: 36px;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  color: #dce4f4;
  padding: 7px 12px;
  font: inherit;
  font-weight: 900;
  cursor: pointer;
}

.calendar-view-tab:hover {
  border-color: rgba(255,255,255,.2);
  color: #fff;
}

.calendar-view-tab:focus-visible {
  outline: 2px solid rgba(18, 214, 203,.7);
  outline-offset: 2px;
}

.calendar-view-tab.is-active {
  background: rgba(18, 214, 203,.14);
  border-color: rgba(18, 214, 203,.34);
  color: #fff;
}

.calendar-view-panel[hidden] {
  display: none !important;
}

.calendar-result-item {
  grid-template-columns: 96px minmax(160px, .72fr) minmax(0, 1fr);
}

.calendar-detail-table {
  border: 1px solid rgba(255,255,255,.13);
  border-radius: var(--radius);
  background: rgba(255,255,255,.045);
}

.calendar-detail-table .table-wrap {
  border: 0;
  border-radius: var(--radius);
}

/* ===========================================================
   Calendar Hub — world-class lift (2026-05-29)
   Aligned with top-page design language: border + tint only,
   no heavy panel gradients, eyebrow統一, chevron CTA, density bars.
   See docs/design_language.md Decision Register (2026-05-29 P-X3..X5).
   =========================================================== */

.calendar-hub-page {
  background:
    radial-gradient(1200px 600px at 14% -8%, rgba(212, 20, 101, 0.08), transparent 62%),
    radial-gradient(900px 540px at 100% 0%, rgba(230, 25, 107, 0.05), transparent 64%),
    linear-gradient(180deg, #05070b 0%, #0a0e13 56%, #05070b 100%),
    #05070b;
  overflow-x: clip;
}

.calendar-hub-main {
  box-sizing: border-box;
  width: min(1200px, 100%);
  margin: 0 auto;
  padding: 22px;
  display: grid;
  gap: 40px;
  min-width: 0;
}

@media (max-width: 680px) {
  .calendar-hub-main {
    width: calc(100vw - 28px);
    max-width: calc(100vw - 28px);
    padding: 16px 14px 28px;
    gap: 28px;
  }
}

/* --- HERO (chrome stripped, top-page parity) --- */

.calendar-hero {
  display: grid;
  gap: 16px;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
  max-width: 100%;
}

.calendar-hub-page .calendar-hero::before,
.calendar-hub-page .calendar-hero::after {
  content: none;
}

.calendar-hero-eyebrow {
  margin: 0;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  line-height: 1;
  text-transform: uppercase;
  color: #e6196b;
}

.calendar-hub-page .calendar-hero h1,
.stats-dashboard-page .calendar-hero h1,
.calendar-hero.db-hub-hero h1,
.index-dashboard-page .calendar-hero.db-hub-hero h1,
body.picks-page .calendar-hero.db-hub-hero h1,
body.videos-index-page .calendar-hero.db-hub-hero h1 {
  margin: 0;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: clamp(34px, 4vw, 56px);
  line-height: 1.08;
  letter-spacing: -0.01em;
  font-weight: 900;
  color: #fff;
  background: none;
  -webkit-background-clip: initial;
  background-clip: initial;
  text-shadow: none;
  animation: none;
  max-width: none;
  overflow-wrap: anywhere;
}

.calendar-hero-lede {
  margin: 0;
  max-width: 52ch;
  color: #b7bdc7;
  font-size: 15px;
  line-height: 1.75;
  overflow-wrap: anywhere;
  word-break: auto-phrase;
  line-break: strict;
}

.calendar-hero.db-hub-hero .home-search {
  margin: 2px 0 0;
  max-width: 720px;
}

.calendar-hero.db-hub-hero {
  margin-bottom: 18px;
}

.calendar-hero.db-hub-hero .calendar-hero-rail {
  gap: 16px;
  margin-top: 12px;
}

.calendar-hero.db-hub-hero .calendar-hero-rail-item {
  padding: 16px 18px;
}

.calendar-hero-stats {
  list-style: none;
  margin: 6px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 16px;
}

.calendar-hero-stats li {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.calendar-hero-stats strong {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: clamp(26px, 2.6vw, 34px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.01em;
  color: #fff;
}

.calendar-hero-stats span {
  font-size: 12px;
  line-height: 1.45;
  color: #b7bdc7;
}

.calendar-hub-page .calendar-hero-stats span,
.calendar-hub-page .calendar-hero-rail-item span,
.calendar-hub-page .calendar-today-band-date,
.calendar-hub-page .calendar-section-lede,
.calendar-hub-page .calendar-month-card-total span,
.calendar-hub-page .calendar-month-top-chip,
.calendar-hub-page .calendar-snapshot-stat span,
.calendar-hub-page .calendar-agenda-meta {
  color: #e4ecfb;
}

@media (max-width: 760px) {
  .calendar-hero-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; }
  .calendar-hero-stats strong { font-size: 24px; }
}

/* Stats dashboard reuses the calendar hero; 6 headline numbers sit in a 3-up grid */
.stats-dashboard-page .calendar-hero-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }

@media (max-width: 760px) {
  .stats-dashboard-page .calendar-hero-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.calendar-hero-rail {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 6px;
}

.calendar-hero-rail-item {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.025);
  color: #fff;
  text-decoration: none;
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease;
  min-width: 0;
}

.calendar-hero-rail-item strong {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0;
  color: #fff;
}

.calendar-hero-rail-item span {
  font-size: 12px;
  line-height: 1.5;
  color: #b7bdc7;
}

.calendar-hero-rail-item:hover {
  transform: translateY(-1px);
  border-color: rgba(230, 25, 107, 0.4);
  background: rgba(230, 25, 107, 0.05);
}

.calendar-hero-rail-item.is-primary {
  border-color: rgba(212, 20, 101, 0.55);
  background:
    linear-gradient(135deg, rgba(212, 20, 101, 0.22) 0%, rgba(230, 25, 107, 0.08) 100%),
    rgba(8, 12, 18, 0.9);
  box-shadow: 0 18px 40px rgba(212, 20, 101, 0.22);
}

.calendar-hero-rail-item.is-primary span { color: rgba(255, 255, 255, 0.78); }

.calendar-hero-rail-item.is-primary:hover {
  transform: translateY(-2px);
  border-color: rgba(255, 75, 147, 0.85);
  background:
    linear-gradient(135deg, rgba(255, 75, 147, 0.28) 0%, rgba(230, 25, 107, 0.12) 100%),
    rgba(10, 14, 20, 0.9);
  box-shadow: 0 22px 48px rgba(212, 20, 101, 0.32);
}

@media (max-width: 760px) {
  .calendar-hero-rail { grid-template-columns: 1fr; }
}

/* --- TODAY band (eyebrow + pulsing dot, top-page parity) --- */

.calendar-today-band {
  padding: 22px 0 0;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  background: none;
  box-shadow: none;
  display: grid;
  gap: 16px;
}

.calendar-today-band-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  margin: 0;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.calendar-today-band-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #e6196b;
  line-height: 1;
}

.calendar-today-band-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #e6196b;
  box-shadow: 0 0 10px rgba(230, 25, 107, 0.7), 0 0 0 4px rgba(230, 25, 107, 0.08);
  animation: calendar-today-pulse 2.4s ease-in-out infinite;
}

@keyframes calendar-today-pulse {
  0%, 100% { box-shadow: 0 0 10px rgba(230, 25, 107, 0.7), 0 0 0 4px rgba(230, 25, 107, 0.06); }
  50%      { box-shadow: 0 0 14px rgba(230, 25, 107, 0.95), 0 0 0 6px rgba(230, 25, 107, 0.12); }
}

@media (prefers-reduced-motion: reduce) {
  .calendar-today-band-dot { animation: none; }
}

.calendar-today-band-date {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #b7bdc7;
  line-height: 1;
}

.calendar-today-band-columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}

.calendar-today-col {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}

.calendar-today-col-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.calendar-today-col-head h2 {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px;
  font-size: 20px;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #fff;
}

.calendar-today-col-head h2 .section-eyebrow {
  color: #e6196b;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  line-height: 1;
  text-transform: uppercase;
}

.calendar-today-col-all {
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #b7bdc7;
  text-decoration: none;
  transition: color 180ms ease, border-color 180ms ease, background 180ms ease, transform 180ms ease;
}

.calendar-today-col-all:hover {
  color: #fff;
  border-color: rgba(230, 25, 107, 0.45);
  background: rgba(230, 25, 107, 0.07);
  transform: translateX(2px);
}

.calendar-today-col-all:focus-visible {
  outline: 2px solid #12d6cb;
  outline-offset: 2px;
}

.calendar-today-col-list {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.calendar-today-col-empty {
  margin: 0;
  padding: 14px 14px;
  border: 1px dashed rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  color: #b7bdc7;
  font-size: 13px;
  line-height: 1.6;
}

/* Today / Tomorrow columns are ~half width — the wide 3-column agenda grid
   squeezes the meta line down to one character per row. Stack chip + title on
   row 1 and let the meta line use the full card width on row 2. */
.calendar-today-col .calendar-agenda-item:not(.calendar-birthday-cluster) .calendar-agenda-item-main {
  grid-template-columns: auto minmax(0, 1fr);
  gap: 5px 9px;
}

.calendar-today-col .calendar-agenda-item:not(.calendar-birthday-cluster) .calendar-agenda-item-main > .calendar-category-chip,
.calendar-today-col .calendar-agenda-item:not(.calendar-birthday-cluster) .calendar-agenda-item-main[data-category-label]::before {
  width: fit-content;
  grid-column: 1;
  grid-row: 1;
}

.calendar-today-col .calendar-agenda-item:not(.calendar-birthday-cluster) .calendar-agenda-item-main > strong {
  grid-column: 2;
  grid-row: 1;
  align-self: center;
}

.calendar-today-col .calendar-agenda-item:not(.calendar-birthday-cluster) .calendar-agenda-meta {
  grid-column: 1 / -1;
  grid-row: 2;
}

@media (max-width: 760px) {
  .calendar-today-band-columns { grid-template-columns: 1fr; gap: 16px; }
  .calendar-today-col-head h2 { font-size: 17px; }
  .calendar-today-col-head h2 .section-eyebrow { font-size: 10px; }
}

/* Cinematic feature: full-bleed image with the copy overlaid on a bottom scrim
   (replaces the old image-left / text-in-empty-panel split that read messy). */
.calendar-feature-card {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: clamp(300px, 33vw, 404px);
  overflow: hidden;
  border-radius: 12px;
  background:
    radial-gradient(620px 360px at 18% 8%, rgba(212, 20, 101, 0.24), transparent 64%),
    rgba(255, 255, 255, 0.035);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.30);
}

.calendar-feature-card.calendar-agenda-item {
  align-items: stretch;
  gap: 0;
  padding: 0;
}

.calendar-feature-card > .calendar-feature-main {
  display: contents;
}

.calendar-feature-card > .calendar-agenda-item-act {
  position: absolute;
  right: 16px;
  bottom: 16px;
  z-index: 3;
  flex-wrap: wrap;
  justify-content: flex-end;
  max-width: calc(100% - 32px);
}

.calendar-feature-card::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 2px;
  z-index: 2;
  background: linear-gradient(90deg, rgba(230, 25, 107, 0.9), rgba(212, 20, 101, 0.5), transparent);
  pointer-events: none;
}

.calendar-feature-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  color: inherit;
  text-decoration: none;
  overflow: hidden;
}

.calendar-feature-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  display: block;
  transition: transform 900ms cubic-bezier(0.16, 1, 0.3, 1);
}

.calendar-feature-card:hover .calendar-feature-media img {
  transform: scale(1.04);
}

.calendar-feature-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8, 9, 13, 0.04) 26%, rgba(8, 9, 13, 0.62) 66%, rgba(8, 9, 13, 0.94) 100%);
  pointer-events: none;
}

.calendar-feature-media-empty {
  background:
    radial-gradient(440px 260px at 24% 18%, rgba(212, 20, 101, 0.30), transparent 64%),
    radial-gradient(380px 240px at 82% 30%, rgba(18, 214, 203, 0.18), transparent 66%),
    rgba(255, 255, 255, 0.035);
}

.calendar-feature-copy {
  position: relative;
  z-index: 1;
  display: grid;
  align-content: end;
  gap: 11px;
  padding: clamp(22px, 3vw, 36px);
  max-width: min(680px, 78%);
  min-width: 0;
}

/* No genuine artwork/face for the hero: render the clean gradient and centre the
   copy so the card reads as intentional rather than a cropped placeholder. */
.calendar-feature-card:has(.calendar-feature-media-empty) .calendar-feature-copy {
  align-content: center;
  max-width: min(720px, 88%);
}

.calendar-feature-kicker {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.14em;
  line-height: 1;
  text-transform: uppercase;
  color: #12d6cb;
}

.calendar-feature-title {
  margin: 0;
  color: #fff;
  font-size: clamp(24px, 3.2vw, 42px);
  font-weight: 900;
  line-height: 1.12;
  letter-spacing: 0;
}

.calendar-feature-text {
  margin: 0;
  color: #dce4f4;
  font-size: 14px;
  line-height: 1.75;
  overflow-wrap: anywhere;
}

.calendar-feature-cta {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 13px;
  border-radius: 999px;
  border: 1px solid rgba(18, 214, 203, 0.42);
  background: rgba(18, 214, 203, 0.10);
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  text-decoration: none;
}

@media (max-width: 860px) {
  .calendar-feature-card { min-height: clamp(260px, 56vw, 360px); }
  .calendar-feature-copy { max-width: 100%; }
  .calendar-feature-media::after { background: linear-gradient(180deg, transparent 16%, rgba(8, 9, 13, 0.74) 70%, rgba(8, 9, 13, 0.96) 100%); }
  .calendar-feature-card > .calendar-agenda-item-act { position: static; z-index: 3; padding: 12px 18px 18px; justify-content: flex-start; }
}

@media (max-width: 680px) {
  .calendar-today-band-head {
    align-items: flex-start;
    flex-wrap: wrap;
  }
  .calendar-today-band-date {
    flex: 1 1 100%;
  }
}

/* --- Common section chrome (THIS WEEK / ARCHIVE / SNAPSHOT / FAQ) --- */

.calendar-hub-page .calendar-section {
  padding: 22px 0 0;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  background: none;
  box-shadow: none;
  display: grid;
  gap: 16px;
  min-width: 0;
}

.calendar-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px;
  margin: 0;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  flex-wrap: wrap;
}

.calendar-section-titles {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.calendar-section-eyebrow {
  margin: 0;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  line-height: 1;
  text-transform: uppercase;
  color: #12d6cb;
}

.calendar-hub-page .calendar-section h2 {
  margin: 0;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: clamp(22px, 2.4vw, 30px);
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #fff;
}

.calendar-section-lede {
  margin: 0;
  max-width: 62ch;
  color: #b7bdc7;
  font-size: 13px;
  line-height: 1.65;
  overflow-wrap: anywhere;
  word-break: auto-phrase;
  line-break: strict;
}

.calendar-section-all {
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #b7bdc7;
  text-decoration: none;
  transition: color 180ms ease, border-color 180ms ease, background 180ms ease, transform 180ms ease;
}

.calendar-section-all::before {
  content: "›";
  font-size: 20px;
  line-height: 1;
}

.calendar-section-all:hover {
  color: #fff;
  border-color: rgba(18, 214, 203, 0.45);
  background: rgba(18, 214, 203, 0.07);
  transform: translateX(2px);
}

.calendar-section-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.calendar-section-jump-label {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #b7bdc7;
}

.calendar-section-jump-select {
  min-width: 160px;
  height: 36px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.05);
  color: #fff;
  padding: 0 10px;
}

.calendar-section-jump-button {
  height: 36px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease;
}

.calendar-section-jump-button:hover {
  transform: translateY(-1px);
  border-color: rgba(18, 214, 203, 0.45);
  background: rgba(18, 214, 203, 0.06);
}

/* --- Category filter chips (THIS WEEK) --- */

.calendar-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.calendar-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  padding: 4px 10px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  color: #dce4f4;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease, color 180ms ease;
}

.calendar-filter-chip:hover {
  transform: translateY(-1px);
  border-color: rgba(255, 255, 255, 0.26);
  color: #fff;
}

.calendar-filter-chip:focus-visible {
  outline: 2px solid #12d6cb;
  outline-offset: 2px;
}

.calendar-filter-chip.is-active {
  background: rgba(230, 25, 107, 0.12);
  border-color: rgba(230, 25, 107, 0.5);
  color: #fff;
}

.calendar-filter-chip-label {
  font-weight: 900;
}

.calendar-filter-chip::after {
  content: attr(data-count);
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 18px;
  padding: 0 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
}

.calendar-filter-chip.is-active::after {
  background: rgba(230, 25, 107, 0.24);
}

.calendar-filter-chip .calendar-category-chip {
  min-height: 22px;
  padding: 2px 8px;
  font-size: 11px;
}

.calendar-filter-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 30px;
  padding: 4px 10px;
  border: 1px solid rgba(18, 214, 203, 0.28);
  border-radius: 999px;
  background: rgba(18, 214, 203, 0.07);
  color: #e4ecfb;
  font-size: 12px;
  font-weight: 800;
}

.calendar-filter-status button,
.calendar-empty-state button {
  border: 0;
  background: none;
  color: #12d6cb;
  font: inherit;
  font-weight: 900;
  cursor: pointer;
  padding: 0;
}

.calendar-filter-status button:hover,
.calendar-empty-state button:hover {
  color: #fff;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

.calendar-filter-status button:focus-visible,
.calendar-empty-state button:focus-visible {
  outline: 2px solid #12d6cb;
  outline-offset: 3px;
  border-radius: 4px;
}

/* --- Snapshot grid (year-wide stats) --- */

.calendar-snapshot-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.calendar-snapshot-stat {
  display: grid;
  gap: 4px;
  padding: 14px 16px 14px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  border-left: 1px solid rgba(255, 255, 255, 0.10);
  padding-left: 16px;
  min-width: 0;
}

.calendar-snapshot-stat a {
  display: grid;
  gap: 4px;
  color: inherit;
  text-decoration: none;
}

.calendar-snapshot-stat > a:first-child {
  min-height: 100%;
}

.calendar-snapshot-stat strong {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: clamp(22px, 2.2vw, 28px);
  font-weight: 900;
  letter-spacing: -0.01em;
  line-height: 1;
  color: #fff;
}

.calendar-snapshot-stat span {
  font-size: 12px;
  color: #e4ecfb;
  line-height: 1.4;
}

.calendar-snapshot-stat:has(a[data-calendar-filter-link]):hover,
.calendar-snapshot-stat:has(a[data-calendar-filter-link]):focus-within {
  border-color: rgba(18, 214, 203, 0.34);
  background: rgba(18, 214, 203, 0.045);
}

.calendar-snapshot-stat a[data-calendar-filter-link]:focus-visible {
  outline: 2px solid #12d6cb;
  outline-offset: 4px;
  border-radius: 6px;
}

.calendar-snapshot-stat.is-empty {
  border-style: dashed;
  background: rgba(255, 255, 255, 0.018);
}

.calendar-snapshot-stat.is-empty strong {
  color: #e4ecfb;
}

.calendar-snapshot-action {
  width: fit-content;
  margin-top: 2px;
  color: #12d6cb;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.4;
  text-decoration: none;
}

.calendar-snapshot-action:hover,
.calendar-snapshot-action:focus-visible {
  color: #fff;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

@media (max-width: 980px) { .calendar-snapshot-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .calendar-snapshot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* --- Month archive grid with density bars --- */

.calendar-month-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

@media (max-width: 1100px) { .calendar-month-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 780px)  { .calendar-month-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px)  { .calendar-month-grid { grid-template-columns: 1fr; } }

.calendar-month-card {
  display: grid;
  gap: 8px;
  padding: 12px 14px 14px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  border-top: 1px solid rgba(255, 255, 255, 0.10);
  color: inherit;
  text-decoration: none;
  transition: transform 180ms ease, border-color 180ms ease;
  min-width: 0;
}

.calendar-month-card:hover {
  transform: translateY(-2px);
  border-top-color: rgba(18, 214, 203, 0.5);
}

.calendar-month-card.is-current {
  border-top-color: rgba(18, 214, 203, 0.6);
}

.calendar-month-card-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.calendar-month-card-head strong {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 16px;
  font-weight: 900;
  letter-spacing: -0.005em;
  color: #fff;
}

.calendar-month-current-flag {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #12d6cb;
}

.calendar-month-card-total {
  display: flex;
  align-items: baseline;
  gap: 4px;
}

.calendar-month-card-total strong {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 24px;
  font-weight: 900;
  letter-spacing: -0.01em;
  color: #fff;
  line-height: 1;
}

.calendar-month-card-total span {
  font-size: 11px;
  color: #b7bdc7;
}

.calendar-month-density {
  display: flex;
  width: 100%;
  height: 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  overflow: hidden;
}

.calendar-month-density-seg {
  display: block;
  height: 100%;
  width: var(--seg, 0%);
}

a.calendar-month-density-seg {
  color: inherit;
  text-decoration: none;
}

a.calendar-month-density-seg:hover,
a.calendar-month-density-seg:focus-visible {
  filter: brightness(1.18);
}

a.calendar-month-density-seg:focus-visible {
  outline: 2px solid #12d6cb;
  outline-offset: 2px;
  border-radius: 999px;
  position: relative;
  z-index: 1;
}

.calendar-month-density-seg[data-category="release"]      { background: #a797ff; }
.calendar-month-density-seg[data-category="birthday"]     { background: #ff8bbc; }
.calendar-month-density-seg[data-category="anniversary"]  { background: #12d6cb; }
.calendar-month-density-seg[data-category="live"]         { background: #5fefa0; }
.calendar-month-density-seg[data-category="broadcast"]    { background: #84aaff; }
.calendar-month-density-seg[data-category="streaming"]    { background: #4ae6db; }
.calendar-month-density-seg[data-category="ticket"]       { background: #ffb176; }
.calendar-month-density-seg[data-category="popup"]        { background: #d599ff; }
.calendar-month-density-seg[data-category="absence"]      { background: #ff8484; }
.calendar-month-density-seg[data-category="debut"]        { background: #ffd978; }
.calendar-month-density-seg[data-category="tba"]          { background: #b8c2d4; }

.calendar-month-top {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.calendar-month-top-chip {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 1px 7px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  color: #fff;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.10);
}

.calendar-month-top-chip[data-category="release"]      { background: rgba(133,112,255,.18); border-color: rgba(167,151,255,.34); }
.calendar-month-top-chip[data-category="birthday"]     { background: rgba(255,86,156,.20); border-color: rgba(255,139,188,.38); }
.calendar-month-top-chip[data-category="anniversary"]  { background: rgba(18, 214, 203,.16); border-color: rgba(18, 214, 203,.34); }
.calendar-month-top-chip[data-category="live"]         { background: rgba(62,217,132,.18); border-color: rgba(95,239,160,.36); }
.calendar-month-top-chip[data-category="broadcast"]    { background: rgba(91,141,255,.18); border-color: rgba(132,170,255,.36); }
.calendar-month-top-chip[data-category="streaming"]    { background: rgba(0,205,190,.18); border-color: rgba(74,230,219,.34); }
.calendar-month-top-chip[data-category="ticket"]       { background: rgba(255,145,77,.18); border-color: rgba(255,177,118,.36); }
.calendar-month-top-chip[data-category="popup"]        { background: rgba(196,116,255,.18); border-color: rgba(213,153,255,.36); }
.calendar-month-top-chip[data-category="absence"]      { background: rgba(255,93,93,.18); border-color: rgba(255,132,132,.36); }
.calendar-month-top-chip[data-category="debut"]        { background: rgba(255,202,87,.20); border-color: rgba(255,217,120,.40); color: #fff8df; }
.calendar-month-top-chip[data-category="tba"]          { background: rgba(180,190,208,.14); border-color: rgba(205,215,230,.28); color: #edf3ff; }

/* --- Month highlights and visual agenda cards --- */

.calendar-highlight-rail {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(230px, 280px);
  gap: 10px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  padding-bottom: 4px;
  scrollbar-color: rgba(230, 25, 107, 0.5) rgba(255, 255, 255, 0.06);
}

.calendar-highlight-card,
.calendar-highlight-empty {
  display: grid;
  align-content: start;
  gap: 8px;
  min-height: 100%;
  padding: 0 0 2px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  text-decoration: none;
  min-width: 0;
}

.calendar-highlight-card.calendar-agenda-item {
  grid-template-columns: 1fr;
  align-items: start;
  padding: 0 0 2px;
  border: 0;
  background: transparent;
}

.calendar-highlight-card .calendar-highlight-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  gap: 8px;
  min-width: 0;
}

.calendar-highlight-card .calendar-highlight-main > .calendar-category-chip {
  width: fit-content;
}

.calendar-highlight-card .calendar-agenda-item-act {
  justify-content: flex-start;
  flex-wrap: wrap;
}

.calendar-highlight-card:hover .calendar-highlight-media {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}

.calendar-highlight-card:hover strong {
  color: var(--accent-2, #12d6cb);
}

.calendar-highlight-media {
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.06);
}

.calendar-highlight-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.calendar-highlight-card strong,
.calendar-highlight-empty strong {
  color: #fff;
  font-size: 15px;
  line-height: 1.4;
}

.calendar-highlight-card .calendar-highlight-main > span:not(.calendar-category-chip):not(.calendar-highlight-media),
.calendar-highlight-empty span {
  color: #b7bdc7;
  font-size: 12px;
  line-height: 1.55;
}

/* --- THIS WEEK agenda list inherits existing .calendar-day-group / .calendar-agenda-item
       look but is given a touch lighter background to sit on the new section chrome --- */

.calendar-hub-page .calendar-this-week .calendar-agenda-list {
  display: grid;
  gap: 10px;
}

.calendar-hub-page .calendar-day-group {
  background: rgba(255, 255, 255, 0.025);
  border-color: rgba(255, 255, 255, 0.10);
}

.calendar-hub-page .calendar-day-group.is-today {
  border-color: rgba(18, 214, 203, 0.40);
  background:
    linear-gradient(90deg, rgba(18, 214, 203, 0.07), rgba(255, 255, 255, 0.025));
}

.calendar-hub-page .calendar-day-group[hidden] { display: none; }

.calendar-empty-state {
  display: grid;
  gap: 7px;
  padding: 16px 18px;
  border: 1px dashed rgba(18, 214, 203, 0.28);
  border-radius: 10px;
  background: rgba(18, 214, 203, 0.045);
  color: #e4ecfb;
}

.calendar-empty-state strong {
  color: #fff;
  font-size: 15px;
  line-height: 1.45;
}

.calendar-empty-state span {
  color: #e4ecfb;
  font-size: 13px;
  line-height: 1.6;
}

.calendar-empty-state button {
  width: fit-content;
}

.calendar-hub-page .calendar-hero-stats span,
.calendar-hub-page .calendar-hero-rail-item span,
.calendar-hub-page .calendar-today-band-date,
.calendar-hub-page .calendar-section-lede,
.calendar-hub-page .calendar-month-card-total span,
.calendar-hub-page .calendar-month-top-chip,
.calendar-hub-page .calendar-snapshot-stat span,
.calendar-hub-page .calendar-agenda-meta {
  color: #e4ecfb;
}

/* Category is already conveyed by the colored chip on each row, so the rows
   use a single uniform border instead of a per-category colored left bar
   (the colored-left-edge look reads as a generic template). */

.calendar-birthday-cluster {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 10px 12px;
}

.calendar-birthday-cluster .calendar-agenda-item-main {
  grid-template-columns: auto minmax(0, 1fr);
}

.calendar-birthday-cluster .calendar-category-chip {
  grid-column: 1;
  width: fit-content;
}

.calendar-birthday-cluster-title {
  grid-column: 1;
  color: #fff;
  font-weight: 900;
  line-height: 1.45;
  text-decoration: none;
}

.calendar-birthday-cluster-title:hover {
  text-decoration: underline;
}

.calendar-birthday-person-list {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}

.calendar-birthday-person-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  max-width: 100%;
  min-height: 48px;
  padding: 5px 9px 5px 5px;
  border: 1px solid rgba(255, 139, 188, 0.3);
  border-radius: 999px;
  background: rgba(255, 139, 188, 0.09);
  color: inherit;
  text-decoration: none;
}

.calendar-birthday-person-chip:hover {
  border-color: rgba(255, 139, 188, 0.54);
  background: rgba(255, 139, 188, 0.15);
}

.calendar-birthday-chip-avatar {
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid rgba(255, 255, 255, 0.24);
  background: rgba(255, 255, 255, 0.08);
}

.calendar-birthday-chip-avatar-fallback {
  display: inline-grid;
  place-items: center;
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  background: rgba(255, 139, 188, 0.18);
}

.calendar-birthday-chip-copy {
  min-width: 0;
  color: #dce4f4;
  font-size: 11px;
  line-height: 1.25;
  overflow-wrap: anywhere;
  white-space: pre-line;
}

.calendar-birthday-chip-copy::first-line {
  color: #fff;
  font-size: 13px;
  font-weight: 850;
  line-height: 1.25;
}

/* --- FAQ list --- */

/* FAQ統一: 箱→ヘアライン開示Q&A(.faq-section .faq-list と同形) */
.calendar-faq-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
}

.calendar-faq-item {
  border: 0;
  border-radius: 0;
  background: none;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 6px;
}

.calendar-faq-item:first-child { padding-top: 4px; }
.calendar-faq-item:last-child { border-bottom: 0; }

.calendar-faq-item dt {
  margin: 0;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.005em;
  line-height: 1.45;
}

.calendar-faq-item dd {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
  word-break: auto-phrase;
  line-break: strict;
}

.calendar-comeback-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.calendar-comeback-item {
  display: grid;
  grid-template-columns: 82px minmax(120px, .55fr) minmax(0, 1fr);
  gap: 12px 16px;
  align-items: baseline;
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
}

.calendar-comeback-item:first-child { padding-top: 4px; }
.calendar-comeback-item:last-child { border-bottom: 0; }

.calendar-comeback-item time {
  color: var(--muted);
  font: 800 13px/1 var(--font-display);
  font-variant-numeric: tabular-nums;
}

.calendar-comeback-artist,
.calendar-comeback-title {
  min-width: 0;
}

.calendar-comeback-artist a,
.calendar-comeback-title a {
  color: inherit;
  text-decoration: none;
}

.calendar-comeback-artist a:hover,
.calendar-comeback-title a:hover {
  color: var(--accent);
}

.calendar-comeback-note {
  grid-column: 3;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}

.calendar-comeback-item.is-empty {
  grid-template-columns: 1fr;
  color: var(--muted);
}

/* --- Mobile overrides for chrome-stripped sections --- */

@media (max-width: 680px) {
  .calendar-hub-page .calendar-section {
    padding-top: 16px;
  }
  .calendar-section-head {
    align-items: flex-start;
  }
  .calendar-section-all {
    align-self: flex-end;
  }
  .calendar-comeback-item {
    grid-template-columns: 76px minmax(0, 1fr);
  }
  .calendar-comeback-title,
  .calendar-comeback-note {
    grid-column: 2;
  }
}

/* Override legacy .calendar-page heavy panel chrome ONLY for the hub-class pages.
   Both /ja/calendar/ (calendar-hub-page) and /ja/calendar/YYYY-MM/ (calendar-month-page)
   carry .calendar-hub-page so the same world-class CSS applies. */

.calendar-hub-page .calendar-jumpbar { display: none; }
.calendar-hub-page .stats.calendar-stats { display: none; }
.calendar-hub-page .surface { background: none; border: 0; box-shadow: none; padding: 0; }
.calendar-hub-page.calendar-page .calendar-agenda { padding: 0; background: none; border: 0; box-shadow: none; }
.calendar-hub-page.calendar-page .hero { display: none; }

/* --- Month-page-specific bits: placeholder rail item, large density bar, TBA grid, related grid --- */

.calendar-hero-rail-item.is-placeholder {
  background: rgba(255, 255, 255, 0.015);
  border-style: dashed;
  color: #b7bdc7;
  cursor: default;
}

.calendar-hero-rail-item.is-placeholder strong { color: #dce4f4; }

.calendar-month-density.calendar-month-density-lg {
  height: 12px;
  border-radius: 999px;
}

.calendar-date-grid {
  display: grid;
  gap: 8px;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
}

.calendar-date-grid,
.calendar-date-grid * {
  box-sizing: border-box;
}

.calendar-date-grid-weekdays,
.calendar-date-grid-cells {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.calendar-date-grid-weekday {
  color: #b7bdc7;
  font-size: 11px;
  font-weight: 900;
  text-align: center;
}

.calendar-date-cell {
  position: relative;
  display: grid;
  align-content: start;
  gap: 6px;
  min-height: 76px;
  padding: 8px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.018);
  color: #dce4f4;
  text-decoration: none;
  min-width: 0;
  overflow: hidden;
}

.calendar-date-cell.has-events {
  border-color: rgba(18, 214, 203, 0.24);
  background: rgba(18, 214, 203, 0.045);
}

.calendar-date-cell:hover {
  transform: translateY(-1px);
  border-color: rgba(18, 214, 203, 0.45);
}

.calendar-date-cell.is-outside {
  min-height: 76px;
  border: 0;
  background: transparent;
}

.calendar-date-number {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 15px;
  font-weight: 900;
  line-height: 1;
}

.calendar-date-count {
  width: fit-content;
  min-width: 22px;
  height: 18px;
  display: inline-grid;
  place-items: center;
  padding: 0 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.10);
  color: #fff;
  font-size: 10px;
  font-weight: 900;
}

.calendar-date-dots {
  display: flex;
  gap: 3px;
  flex-wrap: wrap;
}

.calendar-date-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #b8c2d4;
}

.calendar-date-dot[data-category="release"]      { background: #a797ff; }
.calendar-date-dot[data-category="birthday"]     { background: #ff8bbc; }
.calendar-date-dot[data-category="anniversary"]  { background: #12d6cb; }
.calendar-date-dot[data-category="live"]         { background: #5fefa0; }
.calendar-date-dot[data-category="broadcast"]    { background: #84aaff; }
.calendar-date-dot[data-category="streaming"]    { background: #4ae6db; }
.calendar-date-dot[data-category="ticket"]       { background: #ffb176; }
.calendar-date-dot[data-category="popup"]        { background: #d599ff; }
.calendar-date-dot[data-category="absence"]      { background: #ff8484; }
.calendar-date-dot[data-category="debut"]        { background: #ffd978; }
.calendar-date-dot[data-category="tba"]          { background: #b8c2d4; }

@media (max-width: 620px) {
  .calendar-date-grid {
    width: 300px;
    max-width: 100%;
  }
  .calendar-date-grid-weekdays,
  .calendar-date-grid-cells {
    width: 300px;
    max-width: 100%;
    grid-template-columns: repeat(7, minmax(0, 36px));
    justify-content: space-between;
    gap: 4px;
  }
  .calendar-date-cell {
    min-height: 54px;
    padding: 4px;
  }
  .calendar-date-cell.is-outside { min-height: 58px; }
  .calendar-date-number { font-size: 12px; }
  .calendar-date-count {
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    font-size: 9px;
  }
  .calendar-date-dots { gap: 2px; }
  .calendar-date-dot {
    width: 6px;
    height: 6px;
  }
}

.calendar-month-tba-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

@media (max-width: 980px) { .calendar-month-tba-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .calendar-month-tba-grid { grid-template-columns: 1fr; } }

.calendar-month-tba-card {
  display: grid;
  gap: 6px;
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.025);
  color: inherit;
  text-decoration: none;
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease;
  min-width: 0;
}

.calendar-month-tba-card:hover {
  transform: translateY(-1px);
  border-color: rgba(180, 190, 208, 0.34);
  background: rgba(180, 190, 208, 0.04);
}

.calendar-month-tba-card .calendar-category-chip {
  width: fit-content;
}

.calendar-month-tba-card strong {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.005em;
  color: #fff;
  line-height: 1.4;
}

.calendar-month-tba-card > span:not(.calendar-category-chip) {
  font-size: 12px;
  color: #b7bdc7;
  line-height: 1.55;
}

.calendar-related-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 10px;
}

.calendar-related-card {
  display: grid;
  gap: 6px;
  padding: 12px 14px 12px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  border-top: 1px solid rgba(255, 255, 255, 0.10);
  color: inherit;
  text-decoration: none;
  transition: transform 180ms ease, border-color 180ms ease;
  min-width: 0;
}

.calendar-related-card:hover {
  transform: translateY(-2px);
  border-top-color: rgba(18, 214, 203, 0.5);
}

.calendar-related-kicker {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  line-height: 1;
  text-transform: uppercase;
  color: #12d6cb;
}

.calendar-related-card strong {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 15px;
  font-weight: 900;
  letter-spacing: -0.005em;
  color: #fff;
}

.calendar-related-card > span:not(.calendar-related-kicker) {
  font-size: 12px;
  color: #b7bdc7;
  line-height: 1.55;
}

/* Calendar P0 editorial restyle (2026-06-28): flat print-ledger rhythm, static-first. */
.calendar-hub-page {
  --calendar-ink: #0a0a0c;
  --calendar-ink-2: #101014;
  --calendar-fg: #f3f3f5;
  --calendar-muted: #a9aab2;
  --calendar-dim: #6e6f78;
  --calendar-rule: rgba(255, 255, 255, 0.16);
  --calendar-rule-2: rgba(255, 255, 255, 0.08);
  --calendar-mag: #e6196b;
  background: var(--calendar-ink);
}

.calendar-hub-main {
  width: min(1180px, 90%);
  padding: 0;
  gap: 0;
}

.calendar-hero {
  padding: clamp(26px, 4vw, 52px) 0 clamp(24px, 3vw, 40px);
  border-bottom: 1px solid var(--calendar-rule);
  gap: 18px;
}

.calendar-hub-page .calendar-hero h1,
.calendar-month-page .calendar-hero h1 {
  font-size: clamp(40px, 6vw, 76px);
  line-height: 1;
  color: var(--calendar-fg);
}

.calendar-hero-lede {
  max-width: 48ch;
  color: var(--calendar-muted);
  font-size: 14.5px;
  line-height: 1.8;
}

.calendar-hero-stats {
  max-width: 720px;
  margin-top: 8px;
  gap: 0;
  border-top: 1px solid var(--calendar-rule);
  padding-top: 0;
}

.calendar-hero-stats li {
  padding: 16px 16px 0 0;
  border-right: 1px solid var(--calendar-rule-2);
}

.calendar-hero-stats li:last-child {
  border-right: 0;
}

.calendar-hero-stats strong,
.calendar-snapshot-stat strong,
.calendar-month-card-total strong,
.calendar-day-number,
.calendar-date-number {
  font-variant-numeric: tabular-nums;
}

.calendar-hero-stats strong {
  font-size: clamp(26px, 3.2vw, 40px);
  font-weight: 800;
}

.calendar-hero-stats span {
  color: var(--calendar-dim);
  font-size: 11.5px;
}

/* ===== Hub masthead — editorial two columns: ledger left, density chart right ===== */
.calendar-hub-page .calendar-hero {
  grid-template-columns: minmax(0, 1fr) minmax(300px, 416px);
  gap: clamp(28px, 5vw, 72px);
  align-items: end;
}

.calendar-hero-lead {
  display: grid;
  gap: 18px;
  align-content: start;
  min-width: 0;
}

.calendar-hero-eyebrow b {
  color: #fff;
  font-weight: 800;
}

/* keep the latin "K-pop" from breaking at its hyphen; the JP part wraps freely */
.calendar-hero-title-lead {
  white-space: nowrap;
}

.calendar-hub-page .calendar-hero .calendar-year-ribbon {
  width: 100%;
  margin-top: 0;
  align-self: end;
}

@media (max-width: 880px) {
  .calendar-hub-page .calendar-hero {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .calendar-hub-page .calendar-hero .calendar-year-ribbon { width: 100%; }
}

.calendar-year-ribbon {
  width: min(420px, 100%);
  display: grid;
  gap: 7px;
  margin-top: 4px;
}

.calendar-year-ribbon-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--calendar-rule);
}

.calendar-year-ribbon-head strong {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 13px;
  font-weight: 800;
  color: var(--calendar-fg);
}

.calendar-year-ribbon-head span,
.calendar-year-ribbon-labels span {
  color: var(--calendar-dim);
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
}

.calendar-year-ribbon-bars {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: end;
  gap: 5px;
  height: 118px;
}

.calendar-year-ribbon-bar {
  display: flex;
  align-items: end;
  height: 100%;
  min-width: 0;
}

.calendar-year-ribbon-bar span {
  display: block;
  width: 100%;
  height: var(--bar, 0%);
  min-height: 0;
  border-radius: 2px 2px 0 0;
  background: rgba(230, 25, 107, 0.32);
}

.calendar-year-ribbon-bar.is-current span {
  background: var(--calendar-mag);
}

.calendar-year-ribbon-labels {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 5px;
  padding-top: 7px;
  border-top: 1px solid var(--calendar-rule-2);
}

.calendar-year-ribbon-labels span {
  text-align: center;
}

.calendar-year-ribbon-labels span.is-current {
  color: var(--calendar-fg);
}

.calendar-hero-rail-item,
.calendar-hero-rail-item.is-primary,
.calendar-hero-rail-item.is-primary:hover,
.calendar-feature-card,
.calendar-feature-media-empty,
.calendar-hub-page .calendar-day-group,
.calendar-hub-page .calendar-day-group.is-today {
  background: transparent;
  box-shadow: none;
}

.calendar-hero-rail-item,
.calendar-hero-rail-item.is-primary {
  border-color: var(--calendar-rule);
  border-radius: 999px;
}

.calendar-hero-rail-item:hover,
.calendar-hero-rail-item.is-primary:hover {
  border-color: var(--calendar-mag);
}

.calendar-today-band,
.calendar-hub-page .calendar-section {
  padding: clamp(40px, 5vw, 64px) 0;
  border-top: 0;
  border-bottom: 1px solid var(--calendar-rule);
}

.calendar-today-band-head,
.calendar-section-head {
  border-bottom-color: var(--calendar-rule);
}

.calendar-today-band-kicker,
.calendar-section-eyebrow,
.calendar-feature-kicker,
.calendar-month-current-flag,
.calendar-related-kicker {
  color: var(--calendar-mag);
}

.calendar-today-band-dot {
  background: var(--calendar-mag);
  box-shadow: none;
  animation: none;
}

.calendar-feature-card {
  min-height: 330px;
  border-radius: 8px;
}

.calendar-feature-card::after {
  content: none;
}

.calendar-feature-cta,
.calendar-section-jump-button,
.calendar-filter-status button,
.calendar-empty-state button {
  border-color: var(--calendar-rule);
  border-radius: 999px;
  background: transparent;
}

.calendar-feature-cta:hover,
.calendar-section-jump-button:hover,
.calendar-filter-status button:hover,
.calendar-empty-state button:hover {
  border-color: var(--calendar-mag);
  background: rgba(230, 25, 107, 0.10);
}

.calendar-month-switcher {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.calendar-month-switcher-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 42px;
  height: 42px;
  padding: 0 12px;
  border: 1px solid var(--calendar-rule);
  border-radius: 999px;
  color: var(--calendar-fg);
  text-decoration: none;
}

.calendar-month-switcher-arrow > span {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 26px;
  line-height: 1;
}

.calendar-month-switcher-arrow small,
.calendar-month-switcher-home span {
  color: var(--calendar-dim);
  font-size: 11px;
  font-weight: 700;
}

.calendar-month-switcher-arrow:hover,
.calendar-month-switcher-home:hover {
  border-color: var(--calendar-mag);
}

.calendar-month-switcher-arrow.is-disabled {
  color: var(--calendar-dim);
  border-color: var(--calendar-rule-2);
}

.calendar-month-switcher-home {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  min-height: 42px;
  padding: 9px 16px;
  border: 1px solid var(--calendar-rule);
  border-radius: 999px;
  color: var(--calendar-fg);
  text-decoration: none;
}

.calendar-month-switcher-home strong {
  font-size: 13px;
  font-weight: 800;
}

.calendar-date-grid {
  gap: 0;
  border-left: 1px solid var(--calendar-rule-2);
  overflow: visible;
}

.calendar-date-grid-weekdays,
.calendar-date-grid-cells {
  gap: 0;
}

.calendar-date-grid-weekdays {
  border-top: 1px solid var(--calendar-rule);
  border-bottom: 1px solid var(--calendar-rule-2);
}

.calendar-date-grid-weekday {
  padding: 10px 8px;
  color: var(--calendar-dim);
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  text-align: left;
}

.calendar-date-grid-weekday.is-sunday,
.calendar-date-cell.is-sunday .calendar-date-number {
  color: #d98a8a;
}

.calendar-date-grid-weekday.is-saturday,
.calendar-date-cell.is-saturday .calendar-date-number {
  color: #8aa6d9;
}

.calendar-date-cell {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 118px;
  padding: 9px 9px 10px;
  border: 0;
  border-right: 1px solid var(--calendar-rule-2);
  border-bottom: 1px solid var(--calendar-rule-2);
  border-radius: 0;
  background: transparent;
}

.calendar-date-cell:nth-child(7n) {
  border-right: 0;
}

.calendar-date-cell.has-events {
  border-color: var(--calendar-rule-2);
  background: transparent;
}

.calendar-date-cell.has-events:hover {
  background: rgba(255, 255, 255, 0.025);
}

.calendar-date-cell.is-today {
  box-shadow: inset 0 0 0 1.5px var(--calendar-mag);
}

.calendar-date-cell.is-today .calendar-date-number {
  color: var(--calendar-mag);
}

.calendar-date-today {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 3;
  padding: 2px 6px;
  border-bottom-left-radius: 5px;
  background: var(--calendar-mag);
  color: #fff;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 9px;
  font-weight: 800;
}

.calendar-date-number {
  font-size: 14px;
  font-weight: 800;
  color: var(--calendar-muted);
}

.calendar-date-cell.has-events .calendar-date-number {
  color: var(--calendar-fg);
}

.calendar-date-peek {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  border-radius: 5px;
  overflow: hidden;
}

.calendar-date-peek img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 58px;
  object-fit: cover;
}

.calendar-date-peek::after {
  content: "";
  position: absolute;
  inset: 45% 0 0;
  background: linear-gradient(180deg, transparent, rgba(10, 10, 12, 0.76));
}

.calendar-date-peek span {
  position: absolute;
  left: 6px;
  right: 6px;
  bottom: 5px;
  z-index: 1;
  color: #fff;
  font-size: 9.5px;
  font-weight: 700;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.calendar-date-count {
  background: transparent;
  color: var(--calendar-dim);
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
}

.calendar-day-group {
  grid-template-columns: minmax(74px, 96px) minmax(0, 1fr);
  gap: 20px;
  padding: 18px 0;
  border: 0;
  border-top: 1px solid var(--calendar-rule);
  border-radius: 0;
}

.calendar-day-group.is-today .calendar-day-number,
.calendar-day-group.is-today .calendar-day-meta::after {
  color: var(--calendar-mag);
}

.calendar-day-label-editorial {
  align-content: start;
  gap: 5px;
}

.calendar-day-label-editorial .calendar-day-number {
  color: var(--calendar-fg);
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 44px;
  font-weight: 800;
  line-height: 0.9;
  letter-spacing: -0.03em;
}

.calendar-day-meta,
.calendar-day-count {
  display: grid;
  gap: 2px;
  color: var(--calendar-dim);
  font-size: 11.5px;
  font-weight: 700;
  line-height: 1.3;
}

.calendar-day-meta::after {
  content: attr(data-relative);
  display: block;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: #ff7eb0;
}

.calendar-day-group.is-today .calendar-day-meta::after {
  color: var(--calendar-mag);
}

/* 14-day agenda: month section divider (modern calendar pattern) */
.calendar-month-divider {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 10px 0 2px;
  padding-top: 18px;
  border-top: 1px solid var(--calendar-rule);
}
.calendar-month-divider:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
.calendar-month-divider span {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: var(--calendar-fg);
}
.calendar-month-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--calendar-rule-2);
}

/* Sticky in-page section sub-nav (groups-hub parity) */
.calendar-subnav {
  position: sticky;
  top: var(--chrome-header-height, 64px);
  z-index: 12;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  margin: 6px 0 0;
  padding: 11px 0;
  background: linear-gradient(180deg, rgba(10, 10, 12, 0.96), rgba(10, 10, 12, 0.72) 78%, transparent);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.calendar-subnav-link {
  padding: 7px 15px;
  border: 1px solid var(--calendar-rule);
  border-radius: 999px;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--calendar-dim);
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.18s, border-color 0.18s, background 0.18s;
}
.calendar-subnav-link:hover,
.calendar-subnav-link:focus-visible,
.calendar-subnav-link.is-current {
  text-decoration: none;
}
.calendar-subnav-link:hover {
  color: #fff;
  border-color: rgba(230, 25, 107, 0.5);
}
.calendar-subnav-link.is-current {
  color: #fff;
  border-color: transparent;
  background: #e6196b;
}
.calendar-hub-page .calendar-section,
.calendar-hub-page .calendar-today-band {
  scroll-margin-top: calc(var(--chrome-header-height, 64px) + 64px);
}
@media (max-width: 760px) {
  .calendar-subnav {
    top: var(--chrome-header-height-mobile, 56px);
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .calendar-subnav::-webkit-scrollbar { display: none; }
  .calendar-hub-page .calendar-section,
  .calendar-hub-page .calendar-today-band {
    scroll-margin-top: calc(var(--chrome-header-height-mobile, 56px) + 58px);
  }
}

.calendar-day-count {
  margin-top: 2px;
}

.calendar-agenda-item {
  border-radius: 7px;
  background: transparent;
}

@media (max-width: 760px) {
  .calendar-hub-main {
    width: min(100% - 28px, 1180px);
  }
  .calendar-hero-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .calendar-hero-stats li:nth-child(2) {
    border-right: 0;
  }
  .calendar-hero-stats li:nth-child(n+3) {
    border-top: 1px solid var(--calendar-rule-2);
    margin-top: 4px;
    padding-top: 16px;
  }
  .calendar-date-cell {
    min-height: 60px;
    padding: 6px 5px;
    gap: 4px;
  }
  /* Mobile: compact glanceable calendar — number + category dots only (no artwork sliver). */
  .calendar-date-peek {
    display: none;
  }
  .calendar-date-grid-weekday {
    text-align: center;
    padding: 8px 4px;
    font-size: 10px;
  }
  .calendar-date-count {
    display: none;
  }
  .calendar-date-dots {
    margin-top: auto;
  }
  .calendar-day-group {
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 14px;
  }
  .calendar-day-label-editorial .calendar-day-number {
    font-size: 32px;
  }
}

.calendar-page .fandom-table th {
  background: rgba(255,255,255,.12);
  color: #f6f8ff;
}

.calendar-page .fandom-table td {
  color: #f1f5ff;
}

.calendar-page .fandom-table tr.is-date-continuation [data-calendar-date-cell] {
  color: #8f9aae;
  background: rgba(255,255,255,.055);
}

.calendar-page .fandom-table tr.is-date-continuation [data-calendar-date-cell] .table-link {
  visibility: hidden;
}

.calendar-page .fandom-table tr.is-date-continuation [data-calendar-date-cell]::after {
  content: attr(data-repeat-label);
  display: inline-flex;
  min-height: 22px;
  align-items: center;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  padding: 2px 8px;
  color: #aeb8ca;
  font-size: 12px;
  font-weight: 900;
}

.index-dashboard-page .layout {
  display: grid;
  gap: 18px;
}

.index-dashboard-page .toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}

.index-dashboard-page .toolbar strong {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 18px;
}

.index-dashboard-table th,
.index-dashboard-table td {
  padding: 11px 12px;
  font-size: 14px;
  text-align: left;
  vertical-align: top;
}

.index-dashboard-page .index-table-surface thead th {
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(18px);
}

.index-dashboard-page .index-table-surface tbody th {
  color: #e4e9f5;
  font-size: 14px;
  font-weight: 800;
}

.index-dashboard-page .sort-header {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
  justify-content: flex-start;
  backdrop-filter: none;
  font-size: inherit;
  font-weight: inherit;
  cursor: pointer;
  box-shadow: none;
  text-align: left;
}

.index-dashboard-page .sort-header:hover,
.index-dashboard-page .sort-header:focus-visible {
  transform: none;
  border: 0;
  background: transparent;
  color: var(--accent-2);
  box-shadow: none;
}

.index-dashboard-page .sort-header::after {
  content: "↕";
  color: rgba(174,181,201,.72);
  font-size: .85em;
}

.index-dashboard-page .sort-header[aria-sort="ascending"]::after {
  content: "↑";
  color: var(--accent-2);
}

.index-dashboard-page .sort-header[aria-sort="descending"]::after {
  content: "↓";
  color: var(--accent-2);
}

.videos-index-page .sort-header {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
  justify-content: flex-start;
  backdrop-filter: none;
  font-size: inherit;
  font-weight: inherit;
  cursor: pointer;
  box-shadow: none;
  text-align: left;
}

.videos-index-page .sort-header:hover,
.videos-index-page .sort-header:focus-visible {
  transform: none;
  border: 0;
  background: transparent;
  color: var(--accent-2);
  box-shadow: none;
}

.videos-index-page .sort-header::after {
  content: "↕";
  color: rgba(174,181,201,.72);
  font-size: .85em;
}

.videos-index-page .sort-header[aria-sort="ascending"]::after {
  content: "↑";
  color: var(--accent-2);
}

.videos-index-page .sort-header[aria-sort="descending"]::after {
  content: "↓";
  color: var(--accent-2);
}

.videos-index-page .video-table-toolbar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin: 12px 0;
}

.videos-index-page .video-table-toolbar label {
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.videos-index-page .video-table-toolbar select {
  min-width: 190px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 8px;
  background: rgba(255,255,255,.08);
  color: var(--text);
  padding: 10px 12px;
  font: inherit;
}

.videos-index-page .video-table-toolbar select option {
  color: #111827;
}

.index-dashboard-page .mobile-list {
  display: none;
}

.fandom-mobile-card {
  display: grid;
  gap: 4px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 8px;
  padding: 12px;
  background: rgba(255,255,255,.07);
  color: inherit;
  text-decoration: none;
}

.fandom-mobile-card span {
  font-weight: 800;
}

.fandom-mobile-card small {
  color: var(--muted);
  line-height: 1.5;
}

.nationality-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 22px;
}

.nationality-pagination-pages {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
}

.nationality-pagination-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  min-height: 40px;
  padding: 7px 11px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.04);
  color: #f6f8ff;
  font-weight: 800;
  line-height: 1;
  text-decoration: none;
}

.nationality-pagination-link:hover,
.nationality-pagination-link:focus-visible {
  border-color: rgba(230, 25, 107, 0.7);
  background: rgba(230, 25, 107, 0.13);
}

.nationality-pagination-link.is-current {
  border-color: rgba(255, 75, 147, 0.9);
  background: #d41465;
  color: #fff;
}

.nationality-pagination-link.is-disabled {
  opacity: 0.42;
}

@media (max-width: 620px) {
  .nationality-pagination {
    align-items: stretch;
    flex-direction: column;
  }

  .nationality-pagination-pages {
    order: -1;
  }
}

.birthday-month-card {
  display: grid;
  gap: 4px;
  width: 100%;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 8px;
  padding: 14px;
  background: rgba(255,255,255,.07);
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.birthday-month-card:hover,
.birthday-month-card:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(18, 214, 203,.42);
  background: rgba(18, 214, 203,.1);
}

.birthday-month-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Birthday top-page banner */
#todayBirthday { margin: 12px 0 0; padding: 0 var(--page-gutter, 24px); }
.birthday-banner-inner { border-radius: 12px; border: 1px solid rgba(255,255,255,.2); background: linear-gradient(135deg, rgba(255,180,100,.12), rgba(212,20,101,.12)); padding: 16px 20px; display: flex; flex-direction: column; gap: 12px; }
.birthday-banner-heading { display: flex; align-items: center; gap: 8px; font-size: .875rem; font-weight: 600; flex-wrap: wrap; }
.birthday-banner-date { color: var(--accent); font-weight: 700; }
.birthday-banner-all { color: var(--accent); font-size: .8rem; text-decoration: none; margin-left: 8px; }
.birthday-banner-cards { display: flex; gap: 10px; flex-wrap: wrap; }
.birthday-banner-card { display: flex; align-items: center; gap: 8px; text-decoration: none; color: inherit; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: 8px; padding: 8px 12px; transition: background .15s, border-color .15s; }
.birthday-banner-card:hover { background: rgba(255,255,255,.13); border-color: rgba(212,20,101,.5); }
.birthday-banner-visual,
.member-row-visual,
.member-list-card-visual {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.16);
  background: linear-gradient(135deg, rgba(212, 20, 101,.38), rgba(18, 214, 203,.2));
  color: var(--ink);
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-weight: 800;
  letter-spacing: 0;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}
.birthday-banner-visual {
  width: 44px;
  aspect-ratio: 1 / 1;
  border-radius: 10px;
  font-size: 13px;
}
.birthday-banner-visual img,
.member-row-visual img,
.member-list-card-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: none;
  mix-blend-mode: normal;
}
.birthday-banner-visual.has-thumb .birthday-banner-initial,
.member-row-visual.has-thumb .member-row-initial,
.member-list-card-visual.has-thumb .member-list-card-initial {
  display: none;
}

.birthday-banner-card span { font-size: .875rem; font-weight: 600; }
.birthday-banner-card small { font-size: .75rem; color: var(--muted); display: block; }
.birthday-share-btn { display: inline-flex; align-items: center; gap: 6px; font-size: .8125rem; font-weight: 600; color: #fff; background: #000; border: 1px solid rgba(255,255,255,.25); border-radius: 20px; padding: 6px 14px; text-decoration: none; transition: background .15s; align-self: flex-start; }
.birthday-share-btn:hover { background: #1a1a1a; }

/* Birthday month subpages */
.birthday-month-nav { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.member-row-visual {
  width: 38px;
  aspect-ratio: 1 / 1;
  border-radius: 9px;
  margin-right: 8px;
  font-size: 12px;
}
.member-row-avatar { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; vertical-align: middle; flex-shrink: 0; }
.member-row-link { display: flex; align-items: center; }
/* 比較チェックボックス(JS注入)がある名前セルは [チェックボックス][画像][名前] を横一列に揃える
   （グループ一覧の .name-cell と同じ並び）。:has で対象 td だけを flex 化し、他テーブルや
   モバイルカード(.member-list-card は div)には影響しない。inline-flex だと狭い列(126px)で
   リンクが折り返しチェックボックスの下に落ちるため、セル自体を flex コンテナにする。 */
td:has(> .db-hub-row-select),
td:has(> .member-row-link) { display: flex; align-items: center; gap: 8px; }
.member-list-card-visual {
  width: 56px;
  aspect-ratio: 1 / 1;
  border-radius: 12px;
  font-size: 14px;
}
/* specificity を .member-list-card 経由で 1段上げ、既存ページにインライン注入済みの
   旧 critical CSS（.member-list-card-head { display:flex }）に確実に打ち勝つ。
   インジェクタ dbHubEnsureMemberIndexStyles は .member-list-card 既存ページへ再注入しないため、
   外部 site.css 側で上書きして全既存ページを即時修正する。 */
.member-list-card .member-list-card-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}
.member-visual-mobile-card {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: 10px;
}
.member-visual-mobile-card .member-row-visual {
  grid-row: span 3;
  margin-right: 0;
}
.birthday-upcoming-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: 10px;
}
.birthday-upcoming-card .member-row-visual {
  grid-row: span 3;
  margin-right: 0;
}

.index-dashboard-page .member-cta {
  margin-top: 18px;
}

.index-dashboard-page .member-cta-inner {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
}

.table-sort-button {
  width: 100%;
  min-height: 32px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  display: inline-flex;
  justify-content: flex-start;
  gap: 6px;
  box-shadow: none;
  text-align: left;
  backdrop-filter: none;
}

.table-sort-button:hover,
.table-sort-button:focus-visible {
  transform: none;
  border: 0;
  background: transparent;
  color: var(--accent-2);
  box-shadow: none;
  outline: 2px solid rgba(18, 214, 203, 0.45);
  outline-offset: 2px;
}

.table-sort-button span::before {
  content: "↕";
  color: var(--muted);
  font-size: 0.85em;
}

.table-sort-button[data-sort-direction="asc"] span::before {
  content: "↑";
  color: var(--accent-2);
}

.table-sort-button[data-sort-direction="desc"] span::before {
  content: "↓";
  color: var(--accent-2);
}

.wide-index-main {
  display: grid;
  gap: 16px;
}

.wide-index-main > .surface,
.wide-index-summary .surface {
  margin-bottom: 0;
}

.tft-index-page #video-list {
  order: -1;
}

.wide-index-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
  align-items: start;
}

.wide-index-summary .card-list {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.youtube-channels-guide .hero.hero-with-summary {
  grid-template-columns: minmax(0, 1fr) minmax(300px, 460px);
  min-height: 0;
  padding: 30px 34px;
  align-items: center;
}

.youtube-channels-guide .hero.hero-with-summary h1 {
  max-width: 680px;
  font-size: clamp(34px, 3.8vw, 54px);
  line-height: 1.08;
}

.youtube-channels-guide .hero-title-line {
  display: block;
}

.youtube-channels-guide .hero-summary-card {
  max-width: 460px;
  justify-self: stretch;
  padding: 16px 18px;
}

.youtube-channels-guide .wide-index-summary {
  grid-template-columns: 1fr;
  gap: 14px;
}

.youtube-channels-guide .wide-index-summary .card-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.youtube-channels-guide .wide-index-summary .card {
  min-height: 0;
  padding: 14px 16px;
}

.youtube-channels-guide .wide-index-summary .card strong {
  font-size: 16px;
  line-height: 1.45;
}

.youtube-channels-guide .wide-index-summary .card p {
  margin-top: 6px;
  font-size: 14px;
  line-height: 1.7;
}

.youtube-source-note {
  border-color: rgba(18, 214, 203,.22);
  background: rgba(22,30,45,.72);
}

@media (max-width: 860px) {
  .youtube-channels-guide .hero.hero-with-summary {
    grid-template-columns: 1fr;
    padding: 24px 18px;
  }

  .youtube-channels-guide .wide-index-summary .card-list {
    grid-template-columns: 1fr;
  }
}

.section-nav {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

/* セグメンテッドコントロール風タブ（2026-05-30 refresh）: 3つの独立した
   ガラスボタンではなく、1つのコンテナに収めて現在地をアクセントで示す。 */
.page-primary-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  margin-bottom: 16px;
  padding: 4px;
  background: rgba(255, 255, 255, .05);
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 12px;
}
/* ソロ/ユニット活動メンバーの活動別ナビ（§2.1-B v2 / 2026-06-02）:
   活動単位ごとにラベル付きクラスタへ分割する。接頭辞の反復を避け、ボタンは短縮形
   （詳細 / 作品一覧 / 動画一覧）。外枠の単一コンテナchromeは外し、各クラスタを独立パネルにする。
   色は飛び飛びの金色ボタンではなく、クラスタのテーマ色ラベルで示す。 */
.member-activity-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  grid-template-columns: none;
  background: transparent;
  border: 0;
  padding: 0;
  border-radius: 0;
}
.activity-nav-group {
  flex: 1 1 240px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 9px 11px 10px;
  background: rgba(255, 255, 255, .045);
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 12px;
}
/* ラベルは「半透明アクセント地＋白文字」のチップにする。テーマ色が暗くても（例: GD X TAEYANG
   #9f1239）暗パネル上で必ず読めるようにしつつ、グループごとの色の個性は地色で残す。 */
.activity-nav-label {
  align-self: flex-start;
  max-width: 100%;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .03em;
  line-height: 1.3;
  color: #fff;
  background: rgba(var(--group-accent-rgb, 255, 255, 255), .22);
  border: 1px solid rgba(var(--group-accent-rgb, 255, 255, 255), .42);
  padding: 2px 9px;
  border-radius: 999px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.activity-nav-links {
  display: flex;
  flex-wrap: nowrap;
  gap: 4px;
}
.member-activity-nav .activity-nav-links .button-link {
  flex: 1 1 auto;
  white-space: nowrap;
  padding: 0 12px;
}

.release-page-nav {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.page-primary-nav .button-link {
  min-height: 40px;
  font-weight: 700;
  border: 1px solid transparent;
  background: transparent;
  border-radius: 9px;
  box-shadow: none;
}

.page-primary-nav .button-link:hover {
  background: rgba(255, 255, 255, .08);
  border-color: transparent;
  transform: none;
  box-shadow: none;
}

.page-primary-nav .button-link.primary,
.page-primary-nav .button-link.active {
  background: linear-gradient(135deg, rgba(var(--group-accent-rgb), .96), rgba(var(--group-accent-2-rgb), .82));
  border-color: transparent;
  color: #fff;
  box-shadow: 0 4px 14px rgba(var(--group-accent-rgb), .3);
}

.detail-wide-flow .route-steps {
  max-width: none;
}

.release-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 12px;
}

/* 2026-05-30 refresh v3: starter card のボタンは縦スタックではなく、
   横並びに wrap させる。動画系（MV/Dance/Performance/Live/THE FIRST TAKE/音楽番組）は
   グループ色 chip、配信・購入は中立色 chip で視覚分離。短いラベル前提（starterActionLabel）。 */
.song-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,.1);
  align-items: center;
}

.song-actions .button-link {
  width: auto;
  min-height: 32px;
  white-space: nowrap;
  background: rgba(var(--group-accent-rgb), .14);
  border-color: rgba(var(--group-accent-rgb), .32);
  padding: 6px 12px;
  font-size: 12.5px;
  font-weight: 700;
  border-radius: 999px;
  letter-spacing: .01em;
  flex: 0 0 auto;
}

.song-actions .chip {
  flex: 0 0 auto;
}

.song-actions .video-kind-chip {
  color: rgba(255, 255, 255, .78);
  background: rgba(var(--group-accent-rgb), .07);
  border-color: rgba(var(--group-accent-rgb), .24);
}

.song-actions a.video-kind-chip:hover,
.song-actions a.video-kind-chip:focus-visible {
  color: #fff;
  background: rgba(var(--group-accent-rgb), .12);
  border-color: rgba(var(--group-accent-rgb), .42);
}

.song-actions .button-link:hover {
  border-color: rgba(var(--group-accent-rgb), .68);
  background: rgba(var(--group-accent-rgb), .24);
  transform: translateY(-1px);
}

.song-actions .stream-link,
.song-actions .purchase-link {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.18);
  color: var(--soft, rgba(255,255,255,.78));
}

.song-actions .stream-link::before,
.song-actions .purchase-link::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: currentColor;
  margin-right: 6px;
  opacity: .68;
}

.song-actions .stream-link:hover,
.song-actions .purchase-link:hover {
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.36);
  color: #fff;
}

.release-actions .button-link {
  padding: 5px 12px;
  font-size: 12px;
  min-height: 0;
  border-radius: 999px;
  box-shadow: none;
}

@media (max-width: 640px) {
  .song-actions {
    gap: 5px;
  }
  .song-actions .button-link {
    font-size: 12px;
    padding: 5px 10px;
    min-height: 30px;
  }
}

.discography-cover-wall .cover-wall-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
  gap: 14px;
  margin-top: 4px;
}

.cover-wall-item {
  display: flex;
  flex-direction: column;
  gap: 6px;
  text-decoration: none;
  color: inherit;
}

.cover-wall-art {
  position: relative;
  display: block;
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  box-shadow: 0 6px 18px rgba(0,0,0,.32);
  border: 1px solid rgba(var(--group-accent-rgb), 0.18);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.cover-wall-item:hover .cover-wall-art {
  transform: translateY(-3px);
  box-shadow: 0 12px 26px rgba(0,0,0,.42);
  border-color: rgba(var(--group-accent-rgb), 0.55);
}

.cover-wall-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.cover-wall-title {
  font-size: 12px;
  font-weight: 700;
  line-height: 1.3;
  color: #eef4ff;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.cover-wall-year {
  font-size: 11px;
  color: #9fb0d4;
  font-variant-numeric: tabular-nums;
}

.cover-wall-item:hover .cover-wall-title { color: #fff; }

.release-table {
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  overflow: hidden;
}

.release-table th,
.release-table td {
  white-space: nowrap;
  vertical-align: middle;
}

.release-table th {
  font-size: 12px;
  letter-spacing: 0;
  text-transform: none;
}

.release-table tbody tr:nth-child(even) {
  background: rgba(255,255,255,.035);
}

.release-table tbody tr:hover {
  background: rgba(var(--group-accent-2-rgb),.055);
}

.release-table td:nth-child(3),
.release-table td:nth-child(4),
.release-table td:nth-child(5) {
  white-space: normal;
  min-width: 160px;
}

.discography-table td:nth-child(5) {
  min-width: 280px;
}

.discography-table tbody td {
  vertical-align: middle;
}

.discography-table .sort-header {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  width: 100%;
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
  font-size: inherit;
  font-weight: inherit;
  cursor: pointer;
  box-shadow: none;
  text-align: left;
  white-space: nowrap;
}

.discography-table .sort-header:hover,
.discography-table .sort-header:focus-visible {
  color: var(--group-accent, var(--accent));
  background: transparent;
  transform: none;
  border: 0;
  box-shadow: none;
}

.discography-table th[aria-sort="none"] .sort-header::after { content: "↕"; opacity: .5; font-size: .8em; }
.discography-table th[aria-sort="ascending"] .sort-header::after { content: "↑"; color: var(--group-accent, var(--accent)); font-size: .8em; }
.discography-table th[aria-sort="descending"] .sort-header::after { content: "↓"; color: var(--group-accent, var(--accent)); font-size: .8em; }

/* 2026-06-17 デザインレビュー: 作品テーブルが詰まり気味で左の小ジャケが効いて
   いなかった。「ジャケットで選ぶ」アートウォールと連続して読めるよう、テーブル側も
   ジャケを拡大(56→72)し行に余白を持たせる(.discography-table スコープ)。 */
.discography-table .artwork-col,
.discography-table .artwork-cell {
  width: 88px;
  min-width: 88px;
  padding: 10px 6px 10px 4px;
  vertical-align: middle;
  white-space: nowrap;
}

.discography-table .artwork-cell img {
  display: block;
  width: 72px;
  height: 72px;
  border-radius: 8px;
  object-fit: cover;
  background: rgba(255,255,255,.06);
}

.discography-table tbody td {
  padding-top: 15px;
  padding-bottom: 15px;
}

.discography-table .artwork-missing span {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  border: 1px solid rgba(248, 113, 113, .45);
  border-radius: 6px;
  color: #fecaca;
  background: rgba(127, 29, 29, .28);
  font-size: 10px;
  line-height: 1.2;
  text-align: center;
}

.release-type-pill {
  width: fit-content;
  border: 1px solid rgba(var(--group-accent-2-rgb),.34);
  border-radius: 999px;
  padding: 2px 8px;
  background: rgba(var(--group-accent-2-rgb),.12);
  color: #e6fbff;
  font-size: 0.76rem;
  font-weight: 800;
}

.release-table td:last-child {
  width: 1%;
  min-width: 180px;
}

.release-table td:last-child .release-actions {
  align-items: center;
  gap: 6px;
  margin-top: 0;
}

.release-table .button-link {
  min-height: 32px;
  padding: 6px 10px;
  font-size: 13px;
  line-height: 1;
}

.release-track-details {
  min-width: 190px;
}

.release-track-details summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 32px;
  padding: 6px 10px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 7px;
  background: rgba(255,255,255,.08);
  color: var(--ink);
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
  list-style: none;
}

.release-track-details summary::-webkit-details-marker {
  display: none;
}

.release-track-details summary::after {
  content: "開く";
  color: #d1d8e8;
  font-size: 11px;
}

.release-track-details[open] summary {
  border-color: rgba(var(--group-accent-2-rgb),.45);
  background: rgba(var(--group-accent-2-rgb),.1);
}

.release-track-details[open] summary::after {
  content: "閉じる";
}

.release-track-details summary span {
  color: #d1d8e8;
  font-size: 12px;
}

.compact-track-list {
  margin-top: 10px;
  min-width: 260px;
}

.track-list.compact-track-list li {
  grid-template-columns: 28px minmax(0, 1fr);
}

.track-list.compact-track-list em {
  grid-column: 2;
  justify-self: start;
  margin-top: 2px;
}

.release-card {
  border: 1px solid rgba(255,255,255,.13);
  border-radius: var(--radius);
  padding: 13px;
  background: rgba(255,255,255,.07);
}

/* 2026-06-01 最新リリースにジャケット（公式アートワーク or タイトル曲MVサムネ）を追加。
   カード上端いっぱいにブリードさせ、角丸はカード側 overflow:hidden で揃える。 */
.release-card-has-art {
  padding-top: 0;
  overflow: hidden;
}

.release-card-art {
  display: block;
  margin: 0 -13px 12px;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: rgba(0, 0, 0, .35);
}

/* 公式ジャケット（正方形・高解像度）を使う場合は1:1で表示し、実ジャケットを切らずに見せる。 */
.release-card-art-square {
  aspect-ratio: 1 / 1;
}

.release-card-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 320ms cubic-bezier(.2, .8, .2, 1);
}

.release-card-art:hover img,
.release-card-art:focus-visible img {
  transform: scale(1.04);
}

.release-card h3 {
  font-size: 20px;
}

.release-detail-grid {
  display: grid;
  gap: 12px;
}

.release-detail-card {
  border: 1px solid rgba(255,255,255,.13);
  border-radius: var(--radius);
  padding: 14px;
  background: rgba(255,255,255,.07);
}

.release-detail-head {
  display: flex;
  gap: 12px;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 12px;
}

.release-detail-head h3 {
  margin-bottom: 6px;
}

.release-detail-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
}

/* 作品プロフィールは2列のキー/値テーブル。`.table-wrap table { min-width:980px }` が効いて
   横スクロールバー（中身は右に空白）が出ていたので、幅フィット(table-layout:fixed)へ。
   収録曲の `.release-track-credit-table` は対象外＝従来どおり横スクロール可。 */
.release-detail-page .release-detail-main .member-profile-table,
.release-detail-page .release-detail-main .group-basic-table {
  min-width: 0;
  table-layout: fixed;
  width: 100%;
}

.release-detail-page .release-detail-main .surface {
  content-visibility: visible;
  contain-intrinsic-size: unset;
  margin-bottom: 0;
  min-width: 0;
}

.release-detail-page .release-detail-main .surface + .surface {
  margin-top: 20px;
}

.release-detail-page .release-detail-main .card-list {
  gap: 8px;
}

.release-detail-page .release-detail-main .card-list > .card {
  content-visibility: visible;
  contain-intrinsic-size: unset;
}

.release-detail-page .release-detail-main .card {
  gap: 6px;
  padding: 10px;
}

.release-detail-hero .hero-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
  align-items: stretch;
  max-width: 760px;
}

.release-detail-hero .hero-actions .button-link {
  width: 100%;
  min-height: 44px;
  justify-content: center;
  text-align: center;
}

.release-hero-artwork {
  justify-self: end;
  width: min(100%, 360px);
  aspect-ratio: 1;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 8px;
  overflow: hidden;
  background: rgba(255,255,255,.08);
  box-shadow: 0 22px 58px rgba(0,0,0,.32);
}

.release-hero-artwork img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.release-detail-summary {
  display: grid;
  grid-template-columns: minmax(180px, 280px) 1fr;
  gap: 22px;
  align-items: center;
}

.release-artwork-frame {
  aspect-ratio: 1;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 8px;
  overflow: hidden;
  background: rgba(255,255,255,.06);
  box-shadow: 0 18px 42px rgba(0,0,0,.24);
}

.release-artwork-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.release-detail-summary .release-actions {
  margin-top: 16px;
}

.release-aeo-summary {
  position: static;
  width: auto;
  height: auto;
  margin: 0 0 14px;
  padding: 12px 14px;
  overflow: visible;
  clip: auto;
  clip-path: none;
  white-space: normal;
  border: 1px solid rgba(255,255,255,.12);
  border-left: 3px solid rgba(var(--group-accent-rgb), .86);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(var(--group-accent-rgb), .12), rgba(var(--group-accent-2-rgb), .07)),
    rgba(255,255,255,.04);
  color: rgba(255,255,255,.88);
  font-weight: 700;
}

.release-platform-links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr));
  gap: 10px;
  align-items: stretch;
}

.release-platform-link {
  width: 100%;
  min-height: 52px;
  justify-content: flex-start;
  gap: 8px;
  border-color: rgba(255,255,255,.16);
}

.release-platform-link > span {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  background: rgba(255,255,255,.22);
}

.release-platform-link small {
  margin-left: auto;
  color: rgba(255,255,255,.7);
  font-size: 11px;
}

.release-platform-spotify { background: rgba(30, 215, 96, .16); border-color: rgba(30, 215, 96, .42); }
.release-platform-spotify > span { background: #1db954; }
.release-platform-apple-music { background: rgba(250, 36, 91, .16); border-color: rgba(250, 36, 91, .42); }
.release-platform-apple-music > span { background: #fa245b; }
.release-platform-amazon-music { background: rgba(37, 156, 219, .16); border-color: rgba(37, 156, 219, .42); }
.release-platform-amazon-music > span { background: #259cdb; }
.release-platform-youtube-music { background: rgba(255, 0, 0, .14); border-color: rgba(255, 0, 0, .4); }
.release-platform-youtube-music > span { background: #ff0000; }
.release-platform-line-music { background: rgba(0, 185, 0, .15); border-color: rgba(0, 185, 0, .42); }
.release-platform-line-music > span { background: #00b900; }
.release-platform-awa { background: rgba(255, 132, 0, .15); border-color: rgba(255, 132, 0, .4); }
.release-platform-awa > span { background: #ff8400; }
.release-platform-rakuten-music { background: rgba(191, 0, 0, .15); border-color: rgba(191, 0, 0, .42); }
.release-platform-rakuten-music > span { background: #bf0000; }

/* 2026-06-04: 配信リンクは均一トーンへ統一（ボタン面はニュートラル、ブランドはアイコンの円ドットだけで示す）。
   高詳細度(.release-platform-links .release-platform-link)で per-platform の塗り/枠を上書きし、大きさ・色の不揃いを解消。 */
.release-platform-links {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr));
}
.release-platform-links .release-platform-link {
  min-height: 48px;
  font-weight: 700;
  background: rgba(255,255,255,.05);
  border-color: rgba(255,255,255,.12);
  transition: background .16s ease, border-color .16s ease, transform .16s ease;
}
.release-platform-links .release-platform-link:hover {
  background: rgba(255,255,255,.09);
  border-color: rgba(var(--group-accent-rgb), .5);
  transform: translateY(-1px);
}

/* 2026-06-04: 関連作品はジャケット付きカードへ刷新（テキストのみ→画像ファースト） */
.related-release-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: 10px;
}
.related-release-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
}
.related-release-art {
  flex: 0 0 auto;
  width: 60px;
  height: 60px;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,.32);
  border: 1px solid rgba(var(--group-accent-rgb), .2);
}
.related-release-art img { width: 100%; height: 100%; object-fit: cover; display: block; }
.related-release-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.related-release-body strong { line-height: 1.3; }
.related-release-body p { margin: 0; }
.related-release-card-all { justify-content: space-between; }
.related-release-go {
  flex: 0 0 auto;
  color: rgba(var(--group-accent-rgb), 1);
  font-weight: 700;
  font-size: 18px;
}
.related-release-card:hover .related-release-art { border-color: rgba(var(--group-accent-rgb), .55); }

/* 2026-06-12: ユニット一覧ハブのカード（主要MVサムネ付き・グループ/メンバー一覧と同格） */
.unit-card-grid {
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 14px;
}
.unit-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  overflow: hidden;
  height: 100%;
}
.unit-card-thumb {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: rgba(255, 255, 255, .05);
}
.unit-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--duration-normal, 300ms) var(--ease-out, ease);
}
.unit-card:hover .unit-card-thumb img,
.unit-card:focus-visible .unit-card-thumb img { transform: scale(1.04); }
.unit-card-thumb-empty {
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.02));
}
.unit-card-thumb-mark {
  font-family: var(--font-display, inherit);
  font-weight: 800;
  font-size: clamp(28px, 6vw, 44px);
  letter-spacing: .04em;
  color: rgba(255, 255, 255, .82);
}
.unit-card-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 14px 16px 16px;
  flex: 1 1 auto;
}
.unit-card-kicker {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
  color: var(--soft);
}
.unit-card-body strong { line-height: 1.3; }
.unit-card-body p {
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.unit-card-body .card-go {
  margin-top: auto;
  padding-top: 10px;
}

/* 2026-06-04: 見どころカードを刷新（左アクセント＋淡tint＋色付きkicker＋見出し強調） */
.release-insight-card {
  border-left: 3px solid rgba(var(--group-accent-rgb), .5);
  background: rgba(var(--group-accent-rgb), .05);
}
.release-insight-card .card-kicker {
  color: rgba(var(--group-accent-rgb), 1);
  font-weight: 700;
}
.release-insight-card strong {
  display: block;
  font-size: 16px;
  margin: 2px 0 4px;
}

.release-video-group {
  display: grid;
  gap: 12px;
}

.release-video-group + .release-video-group {
  margin-top: 18px;
}

.video-group-label {
  margin: 0;
  color: var(--ink);
  font-size: 1.08rem;
  letter-spacing: 0;
}

.release-editorial-note {
  margin: 0 0 4px;
  padding: 14px 18px;
  border-left: 3px solid rgba(var(--group-accent-rgb), 0.9);
  background: rgba(var(--group-accent-rgb), 0.07);
  border-radius: 0 12px 12px 0;
}

.release-editorial-label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: rgba(var(--group-accent-rgb), 1);
  margin-bottom: 4px;
}

.release-editorial-note p {
  margin: 0;
  font-size: 15px;
  line-height: 1.75;
  color: #eef4ff;
}

.release-decision-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr));
  gap: 8px;
}

/* 2026-06-01: 購入前チェック/買える場所カードの「古さ」を解消。
   フラットな均一ボックスをやめ、左アクセントバー＋持ち上げホバー＋階層で世界一基準へ。 */
.release-decision-item {
  position: relative;
  display: grid;
  gap: 5px;
  padding: 11px 12px 11px 14px;
  border: 1px solid rgba(255,255,255,.12);
  border-left: 3px solid rgba(var(--group-accent-rgb), .55);
  border-radius: 10px;
  background: rgba(255,255,255,.05);
  transition: transform 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.release-decision-item:hover {
  transform: translateY(-2px);
  background: rgba(255,255,255,.08);
  box-shadow: 0 12px 26px rgba(0,0,0,.22);
}

.release-decision-item .card-kicker {
  background: rgba(var(--group-accent-rgb), .16);
  color: #eaf6ff;
  padding: 2px 8px;
  border-radius: 999px;
}

.release-decision-item strong {
  color: var(--ink);
  font-size: 15px;
}

.release-decision-item p {
  margin: 0;
  font-size: 13px;
  line-height: 1.6;
}

.release-decision-item small {
  color: var(--muted);
  font-size: 12px;
}

.release-store-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr));
  gap: 8px;
}

.release-store-link {
  position: relative;
  display: grid;
  gap: 4px;
  min-height: 92px;
  padding: 12px 12px 12px 14px;
  color: var(--ink);
  text-decoration: none;
  border: 1px solid rgba(255,255,255,.14);
  border-left: 3px solid var(--store-accent, rgba(255,255,255,.26));
  border-radius: 10px;
  background: rgba(255,255,255,.05);
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

/* 外部遷移を示す控えめなチェブロン。hoverで店舗ブランド色に。 */
.release-store-link::after {
  content: "↗";
  position: absolute;
  top: 9px;
  right: 11px;
  font-size: 13px;
  color: var(--muted);
  opacity: .55;
  transition: transform .18s ease, opacity .18s ease, color .18s ease;
}

.release-store-link strong {
  font-size: 15px;
  padding-right: 16px;
}

.release-store-link span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.release-store-link:hover {
  transform: translateY(-2px);
  border-color: rgba(255,255,255,.26);
  border-left-color: var(--store-accent, rgba(var(--group-accent-rgb),.6));
  background: rgba(255,255,255,.09);
  box-shadow: 0 14px 30px rgba(0,0,0,.26);
}

.release-store-link:hover::after {
  transform: translate(2px, -2px);
  opacity: 1;
  color: var(--store-accent, inherit);
}

/* 主要ストアのブランド色を左バー＋hoverに反映（HTMLの data-affiliate-retailer を流用）。 */
.release-store-link[data-affiliate-retailer="amazon"]  { --store-accent: #ff9900; }
.release-store-link[data-affiliate-retailer="rakuten"] { --store-accent: #d4002a; }
.release-store-link[data-affiliate-retailer="yahoo"]   { --store-accent: #ff1f3d; }
.release-store-link[data-affiliate-retailer="tower"]   { --store-accent: #ffd400; }
.release-store-link[data-affiliate-retailer="hmv"]     { --store-accent: #f4711f; }
.release-store-link[data-affiliate-retailer="cdjapan"] { --store-accent: #2f8fff; }
.release-store-link[data-affiliate-retailer="qoo10"]   { --store-accent: #ff2d2d; }

.release-store-link-official {
  --store-accent: rgba(var(--group-accent-rgb), .95);
  border-color: rgba(var(--group-accent-rgb), .42);
  background: linear-gradient(135deg, rgba(var(--group-accent-rgb), .18), rgba(255,255,255,.05));
}

/* 公式ストアは一目で分かるよう左上に「公式」バッジ。 */
.release-store-link-official::before {
  content: "公式";
  position: absolute;
  top: 0;
  left: 14px;
  transform: translateY(-52%);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
  padding: 2px 7px;
  border-radius: 999px;
  background: rgba(var(--group-accent-rgb), .95);
  color: #07101f;
}

.affiliate-note-text {
  margin: 10px 0 0;
  color: var(--muted);
}

.release-track-title {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  gap: 10px;
  align-items: center;
}

.release-track-title strong {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* 曲名列を固定幅にして、長い曲名（例: WDA (Whole Different Animal) (Feat. G-DRAGON)）が
   タイトル曲バッジや隣列に被らず必ず折り返すようにする。table-layout:fixed で列幅を厳守し、
   表全体は min-width:980px + .table-wrap の横スクロールで他列を圧迫しない。 */
.release-track-credit-table {
  table-layout: fixed;
  width: 100%;
}
.release-track-credit-table th:nth-child(1),
.release-track-credit-table td:nth-child(1) { width: 44px; }
.release-track-credit-table th:nth-child(2),
.release-track-credit-table td:nth-child(2) { width: 300px; }
/* .release-table td の white-space:nowrap が曲名セルにも効いて折返しを止めていたため、曲名列だけ解除。 */
.release-track-credit-table td:nth-child(2),
.release-track-credit-table td:nth-child(2) .release-track-title,
.release-track-credit-table td:nth-child(2) strong {
  white-space: normal;
}
.release-track-credit-table th:nth-child(3),
.release-track-credit-table td:nth-child(3) { width: 74px; }
.release-track-credit-table th:nth-child(5),
.release-track-credit-table td:nth-child(5) { width: 220px; }

.release-detail-page .member-profile-table .badge,
.release-detail-page .release-table .badge {
  margin-left: 0;
}

.release-track-credit-table {
  min-width: 980px;
}

.release-track-credit-table th,
.release-track-credit-table td {
  vertical-align: middle;
}

.release-track-credits {
  display: grid;
  gap: 4px;
  min-width: 260px;
  font-size: 12px;
  line-height: 1.45;
}

.release-track-credits span {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 8px;
}

.release-track-credits strong {
  color: var(--muted);
  font-size: 11px;
  text-transform: uppercase;
}

.track-list {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.track-list li {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  min-height: 36px;
  border-top: 1px solid rgba(255,255,255,.08);
  padding-top: 6px;
}

.track-list span {
  color: #d1d8e8;
  font-size: 13px;
}

.track-list strong {
  font-size: 14px;
  min-width: 0;
  overflow-wrap: anywhere;
  line-height: 1.35;
}

.track-list em {
  justify-self: end;
  border: 1px solid rgba(var(--group-accent-2-rgb),.25);
  border-radius: 999px;
  background: rgba(var(--group-accent-2-rgb),.1);
  color: #dffcff;
  font-size: 12px;
  font-style: normal;
  padding: 3px 8px;
}

.media-frame {
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--radius);
  background: rgba(0,0,0,.32);
  aspect-ratio: 16 / 9;
}

.media-frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.timeline {
  display: grid;
  gap: 10px;
}

.timeline-item {
  display: grid;
  grid-template-columns: 88px 188px minmax(0, 1fr);
  column-gap: 14px;
  row-gap: 8px;
  align-items: center;
  border: 1px solid rgba(255, 255, 255, .14);
  border-left: 3px solid rgba(var(--group-accent-rgb), .72);
  border-radius: 8px;
  padding: 13px 14px;
  background:
    linear-gradient(135deg, rgba(var(--group-accent-rgb), .14), rgba(var(--group-accent-2-rgb), .08)),
    rgba(255, 255, 255, .055);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
}

.timeline-item strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: center;
  width: 72px;
  min-width: 72px;
  min-height: 32px;
  border: 1px solid rgba(var(--group-accent-rgb), .34);
  border-radius: 999px;
  padding: 4px 10px;
  background: rgba(var(--group-accent-rgb), .14);
  color: #f5fbff;
  font-weight: 950;
  letter-spacing: 0;
  line-height: 1.25;
  text-align: center;
}

.timeline-body {
  display: grid;
  grid-template-columns: 188px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
}

.timeline-phase {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: center;
  width: fit-content;
  min-width: 112px;
  min-height: 32px;
  max-width: 100%;
  border: 1px solid rgba(var(--group-accent-2-rgb), .42);
  border-radius: 999px;
  background: rgba(var(--group-accent-2-rgb), .18);
  color: #e8f3ff;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.25;
  padding: 4px 10px;
  text-align: center;
  white-space: normal;
  overflow-wrap: anywhere;
}

.timeline-item > p,
.timeline-body p {
  margin: 0;
  align-self: center;
  color: #eef4ff;
  line-height: 1.75;
}

.tour-badges {
  grid-column: 3;
  margin-top: -2px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.tour-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  max-width: 100%;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.25;
  padding: 4px 9px;
  border-radius: 999px;
  background: rgba(var(--group-accent-rgb), .18);
  border: 1px solid rgba(var(--group-accent-rgb), .4);
  color: rgba(255, 255, 255, .85);
  letter-spacing: .02em;
  text-align: center;
  white-space: normal;
}

/* グループ詳細「◯◯の流れを30秒で確認」: 旧・枠付きグラデカードの積み重ね＋二重ピル(年ピル＋フェーズピル)を、
   アクセントのスパイン(縦線)とノードを持つ本物の年表に刷新。年でスキャンしつつフェーズは控えめなタグに、
   本文は素のテキストで読みやすく。メンバー経歴(#career)・会社沿革(.company-history-timeline)・
   ユニット/ソロ(.timeline-unified)は別UIとして base のまま据え置き、この刷新は .timeline-history だけにスコープする。 */
.timeline-history {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.timeline-history .timeline-item {
  position: relative;
  grid-template-columns: 84px minmax(0, 1fr);
  column-gap: 26px;
  row-gap: 6px;
  align-items: start;
  border: 0;
  border-radius: 0;
  padding: 0 0 26px;
  background: none;
  box-shadow: none;
}

.timeline-history .timeline-item:last-child {
  padding-bottom: 2px;
}

/* スパイン（縦線）: 中間は全高、先頭はノードから下へ、末尾はノードで止める */
.timeline-history .timeline-item::before {
  content: "";
  position: absolute;
  left: 98px;
  top: 0;
  bottom: 0;
  width: 2px;
  transform: translateX(-50%);
  background: rgba(var(--group-accent-rgb), .26);
}

.timeline-history .timeline-item:first-child::before { top: 14px; }
.timeline-history .timeline-item:last-child::before { bottom: calc(100% - 14px); }

/* ノード（節点） */
.timeline-history .timeline-item::after {
  content: "";
  position: absolute;
  left: 98px;
  top: 8px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  transform: translateX(-50%);
  background: rgba(var(--group-accent-rgb), 1);
  box-shadow: 0 0 0 4px rgba(var(--group-accent-rgb), .13);
  transition: box-shadow .18s ease;
}

.timeline-history .timeline-item:hover::after {
  box-shadow: 0 0 0 5px rgba(var(--group-accent-rgb), .2);
}

/* 年: 左レールのアクセント数字（旧・丸ピルを廃止） */
.timeline-history .timeline-item > strong {
  grid-column: 1;
  grid-row: 1;
  justify-self: end;
  width: auto;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  text-align: right;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: clamp(26px, 2.6vw, 34px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.01em;
  color: rgba(var(--group-accent-rgb), 1);
  font-variant-numeric: tabular-nums;
}

/* フェーズタグ: 控えめなソフトピル（旧・濃い丸ピルを軽量化） */
.timeline-history .timeline-item > .timeline-phase {
  grid-column: 2;
  grid-row: 1;
  justify-self: start;
  width: auto;
  min-width: 0;
  min-height: 0;
  margin: 1px 0;
  padding: 2px 10px;
  border: 0;
  border-radius: 999px;
  background: rgba(var(--group-accent-2-rgb), .16);
  color: #e6f0ff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
}

.timeline-history .timeline-item > p {
  grid-column: 2;
  grid-row: 2;
  display: block;
  margin: 0;
  color: #e7eefc;
  font-size: 14px;
  line-height: 1.7;
}

/* メンバー経歴(#career)の活動単位タグ色を縦スパイン年表でも維持する。ソロ=アクセント系グラデ、
   ユニット=accent-3 で活動の種類を見分けられるようにし、グループ/通常イベントは汎用 accent-2 タグのまま。
   グループ詳細の汎用フェーズタグより高い詳細度で色を再指定する（class token は timeline-tag-{group|member|solo|unit}）。 */
.timeline-history .timeline-item > .timeline-phase.timeline-tag-solo {
  background: linear-gradient(135deg, var(--group-accent), var(--group-accent-3));
  color: #181018;
}

.timeline-history .timeline-item > .timeline-phase.timeline-tag-unit {
  background: rgba(var(--group-accent-3-rgb), .62);
  color: #fff;
}

.timeline-history .tour-badges {
  grid-column: 2;
  grid-row: 3;
  margin-top: 6px;
}

@media (max-width: 600px) {
  .timeline-history .timeline-item {
    grid-template-columns: 60px minmax(0, 1fr);
    column-gap: 18px;
  }
  .timeline-history .timeline-item::before,
  .timeline-history .timeline-item::after { left: 70px; }
  .timeline-history .timeline-item > strong { font-size: 23px; }
}

.achievement-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));
  gap: 10px;
  margin-top: 10px;
  align-items: stretch;
}

.achievement-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 12px 14px;
  border-radius: 10px;
  background: rgba(var(--group-accent-rgb), .1);
  border: 1px solid rgba(var(--group-accent-rgb), .25);
  width: 100%;
}

.achievement-year {
  font-size: 11px;
  font-weight: 700;
  color: rgba(var(--group-accent-rgb), 1);
  letter-spacing: .06em;
}

.achievement-category {
  font-size: 12px;
  color: #c4cfea;
}

.achievement-song {
  font-size: 11px;
  color: #8fa3cc;
  margin-top: 2px;
}

.achievement-award-list {
  display: grid;
  gap: 7px;
  padding: 10px 0 0;
  margin: 8px 0 0;
  border-top: 1px solid rgba(255,255,255,.1);
  list-style: none;
}

.achievement-award-list li {
  display: grid;
  gap: 2px;
  min-width: 0;
}

/* 受賞ledger: 年を左レール（アクセント数字）に固定し、正式名を主役、略称は控えめなインライン補足、
   受賞部門は枠付きチップではなくアクセントドット付きの素の行にして「ごちゃつき」を解消する。
   年でスキャン → 授賞式 → 受賞内容、の順に視線が流れる年表型ledger。
   マイルストーン(.achievement-highlight)のカードは据え置き。 */
.award-ledger {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}

.award-row {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 18px;
  padding: 15px 0;
  border-top: 1px solid rgba(255, 255, 255, .08);
}

.award-row:first-child {
  border-top: 0;
  padding-top: 2px;
}

/* 2026-06-18 受賞ハイライト化: 年を大数字(まず見る/年表と統一)にして視覚リズムを作る。 */
.award-row-year {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: clamp(20px, 2vw, 26px);
  font-weight: 900;
  line-height: 1.05;
  color: rgba(var(--group-accent-rgb), 1);
  letter-spacing: -.01em;
  font-variant-numeric: tabular-nums;
}

.award-row-ceremony {
  margin: 0 0 7px;
  font-size: 14px;
  font-weight: 700;
  color: #eef4ff;
  line-height: 1.35;
}

.award-row-abbr {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #8fa3cc;
  white-space: nowrap;
}

.award-wins {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.award-win {
  position: relative;
  padding-left: 16px;
  font-size: 13px;
  line-height: 1.45;
}

.award-win::before {
  content: "";
  position: absolute;
  left: 1px;
  top: .56em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(var(--group-accent-rgb), .95);
}

.award-win-cat {
  color: #eef4ff;
  font-weight: 600;
}

.award-win-song {
  color: #8fa3cc;
  font-size: 12px;
  margin-left: 6px;
}

/* 大賞(Daesang)ハイライト: 強調マーカー＋アクセント文字＋「大賞」バッジで最上位賞を際立たせる。 */
.award-win.is-daesang {
  padding-top: 1px;
  padding-bottom: 1px;
}
.award-win.is-daesang::before {
  width: 9px;
  height: 9px;
  top: .42em;
  left: 0;
  border-radius: 2px;
  transform: rotate(45deg);
  background: var(--group-accent);
  box-shadow: 0 0 0 3px rgba(var(--group-accent-rgb), .16);
}
.award-win.is-daesang .award-win-cat {
  color: #fff;
  font-weight: 800;
}
.award-daesang-badge {
  display: inline-block;
  margin-left: 8px;
  padding: 1px 7px;
  border-radius: 999px;
  background: var(--group-accent);
  color: #0a1020;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .04em;
  vertical-align: middle;
}

.achievements-charts,
.achievements-won,
.achievements-nom {
  margin-top: 16px;
}

.achievements-charts h3,
.achievements-won h3,
.achievements-nom h3 {
  font-size: 13px;
  font-weight: 700;
  color: #d1d8e8;
  margin: 0 0 8px;
  text-transform: uppercase;
  letter-spacing: .06em;
}

/* チャート実績: 最高順位を主役にした左寄せ数値レール＋チャート名＋補足の整列テーブル。
   順位（大きいアクセント数字）が縦に揃い、曲名・種別・年月は控えめな1行補足にして
   1行ベタ書きの読みづらさを解消する。 */
.chart-peaks-list {
  list-style: none;
  padding: 0;
  margin: 10px 0 0;
  display: flex;
  flex-direction: column;
}

.chart-peak {
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: 14px;
  align-items: center;
  padding: 11px 0;
  border-top: 1px solid rgba(255, 255, 255, .08);
}

.chart-peak:first-child {
  border-top: 0;
  padding-top: 2px;
}

.chart-peak-rank {
  display: inline-flex;
  align-items: baseline;
  gap: 1px;
}

.chart-peak-rank b {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 23px;
  font-weight: 800;
  line-height: 1;
  color: rgba(var(--group-accent-rgb), 1);
  font-variant-numeric: tabular-nums;
}

.chart-peak-rank-u {
  font-size: 11px;
  font-weight: 700;
  color: rgba(var(--group-accent-rgb), .8);
}

.chart-peak-chart {
  display: block;
  font-size: 14px;
  font-weight: 700;
  color: #eef4ff;
  line-height: 1.35;
}

.chart-peak-sub {
  display: block;
  margin-top: 2px;
  font-size: 12px;
  color: #8fa3cc;
}

.achievement-sources {
  margin-top: 18px;
  border-top: 1px solid rgba(var(--group-accent-rgb), 0.18);
  padding-top: 12px;
}

.achievement-sources-summary {
  font-size: 13px;
  font-weight: 700;
  color: #c4cfea;
  cursor: pointer;
  list-style: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.achievement-sources-summary::-webkit-details-marker { display: none; }

.achievement-sources-summary::before {
  content: "▸";
  font-size: 11px;
  color: rgba(var(--group-accent-rgb), 1);
  transition: transform 0.2s ease;
}

.achievement-sources[open] .achievement-sources-summary::before { transform: rotate(90deg); }

.achievement-sources-body {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.achievement-source-links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.achievement-source-link {
  font-size: 12px;
  color: #eef4ff;
  text-decoration: none;
  padding: 4px 10px;
  border: 1px solid rgba(var(--group-accent-rgb), 0.28);
  border-radius: 999px;
  background: rgba(var(--group-accent-rgb), 0.06);
  transition: background 0.18s ease, border-color 0.18s ease;
}

.achievement-source-link:hover {
  background: rgba(var(--group-accent-rgb), 0.16);
  border-color: rgba(var(--group-accent-rgb), 0.5);
}

.nominated-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.nominated-list li {
  font-size: 13px;
  color: #c4cfea;
}

/* 2026-06-18 豆知識を「単カラムの箱リスト」→ カテゴリチップ付きの2カラム・カードグリッドへ。
   箱は軽く(薄い枠/微tint)、カテゴリをアクセントのピルにして走査性を上げる。 */
.trivia-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 4px;
}

.trivia-item {
  padding: 16px 18px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .025);
  border: 1px solid rgba(255, 255, 255, .07);
}

.trivia-item dt {
  display: inline-block;
  margin-bottom: 9px;
  padding: 3px 11px;
  border-radius: 999px;
  background: rgba(var(--group-accent-rgb), .16);
  color: #eaf2ff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
}

.trivia-item dd {
  margin: 0;
  font-size: 14px;
  color: #eef4ff;
  line-height: 1.7;
}

@media (max-width: 640px) {
  .trivia-list { grid-template-columns: 1fr; }
}

.event {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: var(--radius);
  padding: 12px;
  background: rgba(255,255,255,.07);
}

.event time {
  color: #aafaff;
  font-weight: 800;
}

.event strong { display: block; margin-bottom: 4px; }

.source-list {
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
  line-height: 1.8;
}

.source-list a { color: #dbe8ff; }

.page-update-note {
  display: flex;
  gap: 4px;
  align-items: baseline;
  justify-content: flex-end;
  margin: 0 2px;
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.35;
}

.page-update-note span:first-child {
  font-weight: 800;
  color: rgba(var(--group-accent-rgb), .92);
}

.page-update-note time {
  font-weight: 800;
  color: #f7fbff;
}

.update-history details {
  margin: 0;
}

.update-history summary {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  font-weight: 800;
  color: #f7fbff;
}

.update-history summary::marker {
  color: rgba(var(--group-accent-rgb), .9);
}

.update-history summary small {
  color: var(--muted);
  font-weight: 700;
}

.update-history details > .small {
  margin-top: 12px;
}

.update-history-list {
  display: grid;
  gap: 12px;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}

.update-history-list li {
  display: grid;
  grid-template-columns: 9.5rem minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding: 14px 16px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 10px;
  background: rgba(255, 255, 255, .045);
}

.update-history-list time {
  font-size: .86rem;
  font-weight: 800;
  color: rgba(var(--group-accent-rgb), .95);
}

.update-history-list strong {
  display: block;
  color: #f7fbff;
}

.update-history-list p {
  margin: .35rem 0 0;
  color: var(--muted);
}

@media (max-width: 640px) {
  .achievement-grid {
    grid-template-columns: 1fr;
  }

  .achievement-item {
    max-width: none;
  }

  .page-update-note {
    justify-content: flex-start;
    margin: 0;
  }

  .update-history summary {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .update-history-list li {
    grid-template-columns: 1fr;
    gap: 6px;
  }
}

body.picks-page {
  --bg: #05070d;
  --ink: #f8fbff;
  --muted: #c8d0dc;
  --soft: #95a0b4;
  --line: rgba(255, 255, 255, .14);
  --panel: rgba(11, 14, 27, .88);
  --panel-soft: rgba(255, 255, 255, .07);
  --shadow: 0 24px 60px rgba(0, 0, 0, .36);
  --group-accent-rgb: 255, 51, 122;
  --group-accent-2-rgb: 18, 214, 203;
  --group-accent-3-rgb: 247, 255, 181;
  --group-hero-text-mid: #ffd9ee;
  --group-hero-text-end: #aafaff;
  background:
    linear-gradient(180deg, var(--bg) 0%, #070910 56%, var(--bg) 100%),
    var(--bg);
  color: var(--ink);
}

body.picks-page::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 200px 200px;
  opacity: .08;
  mix-blend-mode: overlay;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 88%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 88%, transparent 100%);
}

body.picks-page .picks-hero {
  border-color: rgba(255, 255, 255, .16);
  background:
    linear-gradient(120deg, rgba(255, 51, 122, .22), transparent 38%),
    linear-gradient(290deg, rgba(18, 214, 203, .14), transparent 46%),
    rgba(11, 14, 27, .9);
}

body.picks-page .surface,
body.picks-page .card {
  border-color: rgba(255, 255, 255, .14);
  background:
    radial-gradient(circle at 0 0, rgba(255, 51, 122, .11), transparent 38%),
    linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.035)),
    rgba(15, 18, 33, .9);
  box-shadow: var(--shadow);
}

body.picks-page .card strong,
body.picks-page .section-head h2,
body.picks-page .surface h2,
body.picks-page .surface h3 {
  color: rgba(255, 255, 255, .96);
}

body.picks-page .lead,
body.picks-page .tldr,
body.picks-page .card p,
body.picks-page .small {
  color: var(--muted);
}

body.picks-page .card-kicker {
  color: rgba(18, 214, 203, .92);
}

body.picks-page .button-link {
  border-color: rgba(255, 255, 255, .18);
  background: rgba(255, 255, 255, .08);
  color: #fff;
}

body.picks-page .button-link:hover,
body.picks-page .card:hover {
  border-color: rgba(18, 214, 203, .42);
  box-shadow: var(--elev-2);
}

body.picks-page #official-picks .card-list {
  align-items: stretch;
}

body.picks-page .official-pick-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

body.picks-page .official-pick-card .small {
  margin-bottom: 0;
}

body.picks-page .official-pick-card .card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-top: auto;
  padding-top: 14px;
}

/* 2026-06-12: 公式選定スコア（一次情報・独自指標）の表示 */
body.picks-page .pick-card-head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
body.picks-page .pick-rank {
  flex: 0 0 auto;
  font-family: var(--font-display, inherit);
  font-weight: 800;
  font-size: 13px;
  letter-spacing: .04em;
  color: rgba(18, 214, 203, .92);
  padding-top: 2px;
}
body.picks-page .pick-card-titles {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1 1 auto;
}
body.picks-page .pick-award {
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
}
body.picks-page .pick-total {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: baseline;
  gap: 1px;
  font-family: var(--font-display, inherit);
  color: #fff;
}
body.picks-page .pick-total b {
  font-size: 26px;
  font-weight: 900;
  color: var(--accent);
}
body.picks-page .pick-total small { font-size: 11px; color: var(--soft); }
body.picks-page .pick-score {
  display: grid;
  gap: 7px;
  margin: 12px 0 4px;
}
body.picks-page .pick-score-row {
  display: grid;
  grid-template-columns: minmax(96px, 0.9fr) minmax(0, 1.4fr) auto;
  align-items: center;
  gap: 10px;
}
body.picks-page .pick-score-label { font-size: 12px; color: var(--muted); }
body.picks-page .pick-score-track {
  height: 7px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255, 255, 255, .08);
}
body.picks-page .pick-score-track span {
  display: block;
  width: var(--bar, 0%);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #12d6cb, #d41465);
}

body.my-page .my-page-layout {
  display: grid;
  gap: 18px;
}

body.my-page .my-picks-panel {
  min-height: 320px;
}

body.my-page .my-picks-section + .my-picks-section {
  margin-top: 26px;
}

body.my-page .my-picks-section h2 {
  margin: 0 0 12px;
  font-size: clamp(1.15rem, 2vw, 1.45rem);
}

body.my-page .my-picks-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}

body.my-page .my-pick-card {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-height: 78px;
  padding: 10px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 8px;
  background: rgba(255, 255, 255, .045);
  color: #fff;
  text-decoration: none;
  transition: border-color 160ms ease, background 160ms ease, transform 160ms ease;
}

body.my-page .my-pick-card:hover,
body.my-page .my-pick-card:focus-visible {
  border-color: rgba(212, 20, 101, .58);
  background: rgba(212, 20, 101, .12);
}

body.my-page .my-pick-card img,
body.my-page .my-pick-fallback {
  width: 58px;
  height: 58px;
  border-radius: 8px;
  object-fit: cover;
  background: rgba(212, 20, 101, .16);
}

body.my-page .my-pick-fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 900;
}

body.my-page .my-pick-card small {
  display: block;
  margin-bottom: 4px;
  color: var(--muted);
  font-size: 12px;
}

body.my-page .my-pick-card strong {
  display: block;
  overflow: hidden;
  color: #fff;
  font-size: 1rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.my-page .my-picks-empty {
  display: grid;
  justify-items: start;
  gap: 10px;
  padding: 24px;
  border: 1px dashed rgba(212, 20, 101, .42);
  border-radius: 8px;
  background: rgba(212, 20, 101, .08);
}

body.my-page .my-picks-empty strong {
  color: #fff;
  font-size: 1.05rem;
}

body.my-page .my-picks-empty p,
body.my-page .my-privacy-note p {
  max-width: 720px;
  color: var(--muted);
}
body.picks-page .pick-score-val {
  font-size: 12px;
  font-weight: 800;
  color: #e8edf7;
  white-space: nowrap;
}
body.picks-page .pick-score-val small { color: var(--soft); font-weight: 600; }
body.picks-page .pick-evidence { margin-top: 6px; }
body.picks-page .pick-axis-card .pick-axis-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}
body.picks-page .pick-axis-weight {
  flex: 0 0 auto;
  font-family: var(--font-display, inherit);
  font-weight: 800;
  font-size: 13px;
  color: rgba(18, 214, 203, .92);
}
body.picks-page .pick-axis-source {
  margin-top: 6px;
  color: var(--soft);
  font-size: 11px;
}

@media (max-width: 540px) {
  body.picks-page .pick-score-row {
    grid-template-columns: minmax(82px, 1fr) minmax(0, 1.2fr) auto;
    gap: 8px;
  }
}

@media (max-width: 860px) {
  body.release-detail-page {
    overflow-x: hidden;
  }
  .page { padding: 14px; }
  .release-detail-page .page {
    max-width: 100vw;
  }
  .release-detail-page .release-detail-hero,
  .release-detail-page .release-page-nav,
  .release-detail-page .page-jump-nav,
  .release-detail-page .release-detail-main {
    width: calc(100vw - 28px);
    max-width: calc(100vw - 28px);
  }
  .grid { grid-template-columns: 1fr; }
  .group-hero-with-visual {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .static-hero.group-hero-with-visual {
    padding: 14px;
    gap: 10px;
    margin-bottom: 10px;
  }
  .static-hero.group-hero-with-visual .group-hero-visual,
  .hero.group-hero-with-visual .group-hero-visual {
    display: none;
  }
  .release-hero-artwork {
    justify-self: start;
    width: min(54vw, 180px);
  }
  .release-detail-hero .hero-actions {
    width: 100%;
    max-width: none;
    grid-template-columns: 1fr;
  }
  .release-detail-hero .hero-actions .button-link {
    min-width: 0;
  }
  .static-hero.group-hero-with-visual h1 {
    font-size: 28px;
    line-height: 1.12;
    margin-bottom: 6px;
  }
  .group-hero-with-visual h1,
  .static-hero.group-hero-with-visual h1 {
    /* 2026-06-17 レビュー: モバイル先頭画面の「文字の壁」感を解消。
       26px頭打ち→42px へ。対象名を太く立て、ヒエラルキーを付ける。
       メンバー詳細(.static-hero)の長い文H1は直前の 7750 行(28px・高specificity)が
       勝つため、ここの拡大は group/作品/動画ハブのみに実効する。 */
    font-size: clamp(30px, 8.4vw, 42px);
    line-height: 1.08;
    letter-spacing: -0.01em;
  }
  .group-hero-with-visual .hero-title-line {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
  }
  .static-hero.group-hero-with-visual .lead {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-height: 1.55;
    margin-bottom: 0;
  }
  .static-fallback .tldr p:nth-of-type(n+2) {
    font-size: 14px;
    line-height: 1.6;
  }
  .static-fallback .surface,
  .static-fallback .card,
  .static-fallback .tldr,
  .static-fallback .grid,
  .static-fallback p,
  .static-fallback .lead,
  .static-fallback .small {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }
  .static-fallback .quick-answer-section .card-list {
    grid-template-columns: 1fr;
  }
  .static-fallback .quick-answer-card p {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .group-hero-visual {
    width: calc(100vw - 92px) !important;
    max-width: calc(100vw - 92px) !important;
    justify-self: start;
  }
  .section-head { flex-direction: column; }
  .section-head .button-link { width: 100%; }
  .section-actions { width: 100%; }
  .section-actions .button-link { flex: 1 1 150px; }
  .mobile-only { display: block; }
  .desktop-latest { display: none; }
  .page-primary-nav {
    grid-template-columns: 1fr;
    gap: 6px;
    margin-bottom: 10px;
  }
  .page-primary-nav .button-link:nth-child(3) {
    grid-column: auto;
  }
  .release-page-nav .release-page-current {
    grid-column: auto;
    grid-row: auto;
  }
  .page-primary-nav .button-link {
    width: 100%;
    min-height: 38px;
    padding: 8px 9px;
    font-size: 13px;
  }
  /* 活動別ナビ（クラスタ型）はモバイルでもクラスタを縦積み・ボタンは横並びを保つ。 */
  .member-activity-nav .activity-nav-group {
    flex-basis: 100%;
  }
  .member-activity-nav .activity-nav-links .button-link {
    width: auto;
    padding: 0 8px;
    font-size: 12px;
  }
  .intent-cta-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    margin-bottom: 10px;
  }
  .intent-cta-card {
    min-height: 88px;
    padding: 11px;
  }
  .intent-cta-card strong {
    font-size: 15px;
  }
  .intent-cta-card small {
    display: none;
  }
  .page-jump-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-jump-more {
    grid-column: 1 / -1;
  }
  .page-jump-more > div {
    position: static;
    width: 100%;
    margin-top: 8px;
  }
  .release-detail-summary {
    grid-template-columns: 1fr;
  }
  .release-artwork-frame {
    max-width: 240px;
  }
  .song-grid,
  .link-grid,
  .focus-grid,
  .affiliate-cards { grid-template-columns: 1fr; }
  .highlight-grid { grid-template-columns: 1fr; }
  .video-tabs .button-link { flex: 1 1 150px; }
  .video-sort-toolbar {
    width: 100%;
    margin-left: 0;
    align-items: stretch;
    flex-direction: column;
  }
  .video-sort-toolbar select {
    width: 100%;
  }
  .videos-index-page .video-table-toolbar {
    align-items: stretch;
    flex-direction: column;
  }
  .videos-index-page .video-table-toolbar select {
    width: 100%;
  }
  .video-card { min-height: 300px; }
  .video-card-top {
    flex-direction: column;
  }
  .video-meta div {
    grid-template-columns: 44px minmax(0, 1fr);
  }
  .route-step {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 12px;
  }
  .route-steps::before {
    left: 17px;
  }
  .route-step-body {
    display: block;
    padding: 2px 0 28px;
  }
  .route-thumb-wrap {
    width: min(100%, 360px);
    max-width: 100%;
  }
  .route-thumb-wrap .lite-youtube {
    margin: 0 0 12px;
  }
  .route-number {
    width: 34px;
    height: 34px;
    font-size: 13px;
  }
  .member-card-grid { grid-template-columns: 1fr; }
  .member-card {
    grid-template-columns: 56px minmax(0, 1fr);
    min-height: 0;
  }
  .member-visual {
    width: 56px;
    gap: 6px;
  }
  .member-avatar {
    width: 52px;
    height: auto;
    aspect-ratio: 4 / 5;
    font-size: 20px;
    border-radius: 16px;
  }
  .member-avatar::before {
    inset: 7px;
    border-radius: 12px;
  }
  .member-avatar::after {
    right: 7px;
    bottom: 7px;
    width: 8px;
    height: 8px;
  }
  .member-visual-line {
    width: 34px;
  }
  .member-card-body dl div {
    grid-template-columns: 64px minmax(0, 1fr);
  }
  .member-card-body dl {
    grid-template-columns: 1fr;
  }
  .starter-card { min-height: 230px; }
  .table-wrap {
    margin-left: -4px;
    padding-bottom: 6px;
  }
  .index-dashboard-page main {
    padding: 14px;
  }
  .calendar-page.index-dashboard-page main {
    padding: 10px 0 0;
  }
  .calendar-page.index-dashboard-page .hero {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 18px;
  }
  .hero.hero-with-summary,
  .index-dashboard-page .hero.hero-with-summary {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .hero-summary-card {
    justify-self: stretch;
    max-width: none;
    padding: 12px;
  }
  .company-detail-page .hero.hero-with-summary {
    padding: 24px 18px;
    gap: 18px;
  }
  .company-detail-page .hero.hero-with-summary h1 {
    font-size: clamp(30px, 9.6vw, 38px);
  }
  .company-detail-page .company-hero-topic {
    font-size: clamp(20px, 6vw, 24px);
  }
  .calendar-page.index-dashboard-page .hero h1 {
    grid-row: auto;
    max-width: 100%;
    font-size: clamp(30px, 8vw, 42px);
  }
  .calendar-jumpbar {
    grid-template-columns: 1fr;
    gap: 8px;
    margin-bottom: 10px;
    padding: 10px;
  }
  .calendar-jump-copy {
    gap: 1px;
  }
  .calendar-jump-controls {
    justify-content: stretch;
    gap: 6px;
  }
  .calendar-jump-controls label {
    font-size: 12px;
  }
  .calendar-jump-controls select,
  .calendar-jump-controls button,
  .calendar-jump-controls .button-link {
    flex: 1 1 150px;
  }
  .calendar-page .calendar-agenda .section-head,
  .calendar-legend {
    justify-content: flex-start;
  }
  .calendar-day-group {
    grid-template-columns: 1fr;
  }
  .calendar-day-label {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    padding: 2px 0;
  }
  .calendar-agenda-item {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .calendar-agenda-item-flat {
    grid-template-columns: auto auto;
  }
  .calendar-agenda-item-flat > .calendar-agenda-item-main {
    grid-column: 1 / -1;
  }
  .calendar-agenda-item-main {
    grid-template-columns: 96px minmax(0, 1fr);
    align-items: start;
  }
  .calendar-agenda-item-act {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
  .calendar-agenda-meta {
    grid-column: 2;
  }
  .calendar-view-tabs {
    display: flex;
    width: 100%;
  }
  .calendar-view-tab {
    flex: 1 1 0;
  }
  .index-dashboard-filters,
  .filters .filter-primary,
  .filters .filter-secondary,
  .index-dashboard-page .home-grid,
  .index-dashboard-page .stats,
  .company-detail-page .company-fact-grid,
  .company-detail-page .company-related-list,
  .company-detail-page .company-artist-list,
  .stats-dashboard-page .stats-readout-grid,
  .stats-dashboard-page .stats-coverage-list,
  .stats-dashboard-page .stats-insight-grid {
    grid-template-columns: 1fr;
  }
  .company-detail-page .company-history-timeline .timeline-item {
    grid-template-columns: 1fr;
  }
  .stats-dashboard-page .stats-panel-head {
    align-items: stretch;
    flex-direction: column;
  }
  .stats-dashboard-page .stats-scope-control {
    width: 100%;
    min-width: 0;
  }
  .birthday-month-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .index-dashboard-page .toolbar,
  .index-dashboard-page .member-cta-inner {
    align-items: stretch;
    flex-direction: column;
  }
  .index-dashboard-page .index-table-surface .table-wrap {
    display: none;
  }
  .index-dashboard-page .mobile-list {
    display: grid;
    gap: 10px;
  }
  .release-table th,
  .release-table td {
    padding: 10px;
  }
  .release-detail-page .table-wrap {
    margin-left: 0;
    overflow: visible;
  }
  .release-detail-page .table-wrap table.release-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
  }
  .release-detail-page .release-track-table-wrap {
    overflow: auto;
  }
  .release-detail-page .release-track-table-wrap table.release-track-credit-table {
    min-width: 980px;
    table-layout: auto;
  }
  .release-detail-page .release-table th,
  .release-detail-page .release-table td {
    text-align: left;
    white-space: normal;
  }
  .release-detail-page .release-table th:nth-child(1),
  .release-detail-page .release-table td:nth-child(1) {
    width: 48px;
  }
  .release-detail-page .release-table th:nth-child(2),
  .release-detail-page .release-table td:nth-child(2) {
    width: 38%;
  }
  .release-detail-page .release-table td:last-child {
    min-width: 0;
    width: auto;
  }
  .release-track-title {
    grid-template-columns: 1fr;
    gap: 6px;
    align-items: start;
  }
  .release-detail-head {
    flex-direction: column;
  }
  .track-list li {
    grid-template-columns: 28px minmax(0, 1fr);
  }
  .track-list em {
    grid-column: 2;
    justify-self: start;
  }
  .event { grid-template-columns: 1fr; }
  .timeline-item {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .timeline-body {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .tour-badges {
    grid-column: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
  }

  .reveal-on-scroll {
    opacity: 1;
    transform: none;
  }
}

.static-fallback .surface {
  padding: 18px;
}

.static-fallback .surface + .surface {
  margin-top: 16px;
}

.static-fallback .card-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}

.static-fallback .card {
  display: grid;
  gap: 8px;
  color: var(--ink);
  text-decoration: none;
}

.static-fallback .member-profile-table {
  min-width: 0;
  width: 100%;
}

body[data-member-slug] .member-detail-main,
body[data-member-slug] .member-detail-intro {
  display: grid;
  gap: 16px;
}

body[data-member-slug] .member-detail-side {
  display: grid;
  gap: 16px;
}

body[data-member-slug] .member-detail-overview {
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
  gap: 16px;
  align-items: start;
}

body[data-member-slug] .member-detail-overview > div,
body[data-member-slug] .member-detail-overview > aside,
body[data-member-slug] .member-detail-body {
  min-width: 0;
}

body[data-member-slug] .member-detail-body {
  display: grid;
  gap: 16px;
}

body[data-member-slug] .member-detail-main .card-list {
  align-items: start;
}

body[data-member-slug] .member-detail-main .surface {
  content-visibility: visible;
  contain-intrinsic-size: auto;
  margin-bottom: 0;
}

body[data-member-slug] .member-detail-main .card-list > .card {
  content-visibility: visible;
  contain-intrinsic-size: none !important;
  align-content: start;
}

body[data-member-slug] .member-intent-nav {
  margin: 0 0 16px;
}

body[data-member-slug] .member-intent-nav .intent-cta-card {
  min-height: 112px;
}

/* 要点は30秒まとめ直後の重い縦積みをやめ、PCではスキャンしやすい3列の軽い帯にする。 */
body[data-member-slug] .quick-answer-section .card-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

body[data-member-slug] .quick-answer-section .quick-answer-card {
  min-height: 0;
  padding: 13px 14px;
  border-color: rgba(var(--group-accent-rgb), .26);
  background:
    linear-gradient(120deg, rgba(var(--group-accent-rgb), .12), rgba(var(--group-accent-2-rgb), .05)),
    rgba(255, 255, 255, .04);
}

body[data-member-slug] .quick-answer-section .quick-answer-card strong {
  font-size: clamp(15px, 1.3vw, 17px);
  line-height: 1.4;
}

@media (max-width: 760px) {
  body[data-member-slug] .quick-answer-section .card-list {
    grid-template-columns: 1fr;
  }
}

body[data-member-slug] #personal-links .personal-link-card {
  border-color: rgba(var(--group-accent-rgb), .32);
  background: rgba(var(--group-accent-rgb), .11);
}

body[data-member-slug] #personal-links .personal-link-card strong {
  font-size: 19px;
  word-break: break-word;
}

/* メンバー経歴(#career)の年表は .timeline-history（縦スパイン年表）へ統一。
   旧・年ピル＋.timeline-body グリッドの override は撤去し、グループ詳細「流れを30秒で確認」と
   同じスパイン＋ノード＋左レール年で描画する。活動単位の色分け（グループ/ソロ/ユニット）は
   .timeline-tag-* で維持する（下の .timeline-history .timeline-tag-* 参照）。 */

body[data-member-slug] #starter .card-list,
body[data-member-slug] #individual-songs .card-list {
  align-items: stretch;
}

body[data-member-slug] .individual-song-card {
  height: 100%;
}

/* 入口曲カードはグループ詳細と同じ縦積み（kicker→サムネ→h3→説明→MV）。
   .starter-card(8574) のindexページ用2カラムgridが誤適用されるのを member スコープで上書きする。
   #starter（単一グループ完成見本）だけでなく、複数グループ正本（サクラ）の各所属セクション
   .identity-block .song-grid 内の starter-card にも効くよう member 全体スコープにする。 */
body[data-member-slug] .song-grid .starter-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: stretch;
  height: 100%;
  grid-template-columns: none;
}
body[data-member-slug] .starter-card-thumb {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 8px;
  overflow: hidden;
}
body[data-member-slug] .starter-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
body[data-member-slug] .song-grid .starter-card > p {
  flex: 1;
}
body[data-member-slug] .song-grid .starter-card .song-actions {
  margin-top: auto;
}

/* ソロ曲カードは「サムネ→kicker→曲名→説明→アクション」の縦積み。
   サムネ有無で子要素数が変わるため grid 固定行ではなく flex 縦積みにして崩れを防ぐ。 */
body[data-member-slug] .individual-song-card {
  display: flex;
  flex-direction: column;
  gap: 9px;
  padding: 14px;
  height: 100%;
  grid-template-columns: none;
  grid-template-rows: none;
}

body[data-member-slug] .individual-song-thumb {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 8px;
  overflow: hidden;
}

body[data-member-slug] .individual-song-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

body[data-member-slug] .individual-song-card h3 {
  margin: 2px 0 0;
}

body[data-member-slug] .individual-song-card p {
  margin: 0;
  line-height: 1.66;
}

body[data-member-slug] .individual-song-card p:not(.small) {
  flex: 1;
  font-size: 15px;
}

body[data-member-slug] .individual-song-card p.small {
  color: rgba(238, 244, 255, .78);
}

body[data-member-slug] .individual-song-card .individual-song-actions {
  margin-top: auto;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

body[data-member-slug] .individual-song-card .individual-song-actions .button-link {
  margin-top: 0;
  min-height: 40px;
}

body[data-member-slug] .member-detail-intro .surface + .surface,
body[data-member-slug] .member-detail-body .surface + .surface,
body[data-member-slug] .member-detail-side .surface + .surface {
  margin-top: 0;
}

body[data-member-slug] #profile .member-profile-table {
  table-layout: auto;
}

body[data-member-slug] #profile .member-profile-table th {
  width: 168px;
  max-width: 168px;
}

body[data-member-slug] .member-detail-side .surface {
  margin-bottom: 0;
}

.static-thumb {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 7px;
  border: 1px solid var(--line);
}

.tldr {
  border-color: rgba(18, 214, 203, 0.3);
}

/* 2026-06-17 デザインレビュー: 30秒まとめを本文の「リード」として扱う。
   Phase5 の無枠フロー(13737: padding 28px 0 0)を尊重し、カード化はしない。
   左端の accent ヘアライン + 先頭段落の拡大でリードを表現する。
   padding-left は無枠ルール(詳細度 0,3,0)より高い詳細度(.surface.tldr)で確保し、
   バーと本文(h2/本文)の重なりを防ぐ。 */
[data-static-primary] .detail-wide-flow > .surface.tldr {
  position: relative;
  padding-left: 20px;
}
.detail-wide-flow .tldr::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  bottom: 4px;
  width: 3px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--group-accent), var(--group-accent-2));
}
.detail-wide-flow .tldr > p:first-of-type {
  color: var(--ink);
  font-size: 17px;
}

.stats-dashboard-page .stats-tldr {
  background: linear-gradient(180deg, rgba(18, 214, 203, 0.08) 0%, rgba(20, 30, 50, 0.6) 100%);
  border: 1px solid rgba(18, 214, 203, 0.32);
  padding: 22px 24px;
  display: grid;
  gap: 14px;
}

.stats-dashboard-page .stats-tldr .stats-tldr-head {
  display: grid;
  gap: 6px;
}

.stats-dashboard-page .stats-tldr .tldr-eyebrow {
  margin: 0;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(18, 214, 203, 0.95);
  font-weight: 800;
}

.stats-dashboard-page .stats-tldr h2 {
  margin: 0;
  font-size: clamp(18px, 2.2vw, 22px);
  line-height: 1.35;
}

.stats-dashboard-page .stats-tldr .tldr-headline {
  margin: 0;
  font-size: 15px;
  line-height: 1.75;
  color: rgba(255, 255, 255, 0.94);
}

.stats-dashboard-page .stats-tldr .tldr-headline strong {
  color: #12d6cb;
}

/* KPI: 数字が主役。主要3枚を大きく、補足3枚を小さくして序列を作る。
   6枚を等幅で並べると「機械が並べた一覧」に見えるため auto-fit は使わない。 */
.stats-dashboard-page .stats-tldr .tldr-facts {
  list-style: none;
  margin: 6px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.stats-dashboard-page .stats-tldr .tldr-stat {
  display: grid;
  align-content: start;
  gap: 2px;
  padding: 16px 18px;
  background: rgba(8, 12, 22, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
}

.stats-dashboard-page .stats-tldr .tldr-stat-value {
  font-family: var(--font-display, inherit);
  font-size: 30px;
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.015em;
  color: #fff;
  font-variant-numeric: tabular-nums;
}

.stats-dashboard-page .stats-tldr .tldr-stat-unit {
  margin-left: 2px;
  font-size: 15px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.62);
}

.stats-dashboard-page .stats-tldr .tldr-stat-label {
  margin-top: 4px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--accent-2);
}

.stats-dashboard-page .stats-tldr .tldr-stat-note {
  font-size: 12.5px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.68);
}

/* 主要3枚: 数字をさらに大きく、基調のマゼンタで差をつける */
.stats-dashboard-page .stats-tldr .tldr-stat-lead {
  background: rgba(212, 20, 101, 0.07);
  border-color: rgba(212, 20, 101, 0.28);
}

.stats-dashboard-page .stats-tldr .tldr-stat-lead .tldr-stat-value {
  font-size: 42px;
}

.stats-dashboard-page .stats-tldr .tldr-stat-lead .tldr-stat-label {
  color: var(--accent);
}

.stats-dashboard-page .stats-tldr .tldr-footnote {
  margin: 2px 0 0;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.7;
}

@media (max-width: 860px) {
  .stats-dashboard-page .stats-tldr .tldr-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .stats-dashboard-page .stats-tldr .tldr-stat-lead .tldr-stat-value { font-size: 34px; }
}

@media (max-width: 520px) {
  .stats-dashboard-page .stats-tldr .tldr-facts {
    grid-template-columns: minmax(0, 1fr);
  }
}

.stats-dashboard-page .stats-hero-summary-card {
  display: grid;
  gap: 8px;
}

.stats-dashboard-page .stats-hero-summary-card .hero-summary-live {
  margin: 6px 0 0;
  padding: 8px 12px;
  background: rgba(18, 214, 203, 0.1);
  border: 1px solid rgba(18, 214, 203, 0.3);
  border-radius: 999px;
  font-size: 12.5px;
  color: rgba(18, 214, 203, 0.95);
  text-align: center;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.stats-dashboard-page .stats-faq {
  border-color: rgba(255, 255, 255, 0.1);
}

.stats-dashboard-page .stats-faq .faq-list {
  grid-template-columns: repeat(auto-fit, minmax(420px, 1fr));
}

@media (max-width: 720px) {
  .stats-dashboard-page .stats-faq .faq-list {
    grid-template-columns: 1fr;
  }
  .stats-dashboard-page .stats-tldr {
    padding: 18px 16px;
  }
}

/* P1: stats KPOP MAP (page-local copy of top KPOP MAP, but 3-column) */
.stats-dashboard-page .kpop-map-stats {
  padding: 22px 24px;
  background: linear-gradient(180deg, rgba(244, 223, 88, 0.06) 0%, rgba(18, 25, 45, 0.65) 100%);
  border: 1px solid rgba(244, 223, 88, 0.25);
}
.stats-dashboard-page .kpop-map-stats .kpop-map-head {
  display: grid;
  gap: 6px;
  margin-bottom: 18px;
}
.stats-dashboard-page .kpop-map-stats .kpop-map-eyebrow {
  margin: 0;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #f4df58;
  font-weight: 800;
}
.stats-dashboard-page .kpop-map-stats h2 {
  margin: 0;
  font-size: clamp(18px, 2vw, 22px);
  line-height: 1.35;
}
.stats-dashboard-page .kpop-map-stats .kpop-map-lede {
  margin: 4px 0 0;
  font-size: 13.5px;
  color: rgba(255, 255, 255, 0.86);
  line-height: 1.7;
}
.stats-dashboard-page .kpop-map-stats .kpop-map-lede strong {
  color: #f4df58;
}
.stats-dashboard-page .kpop-map-stats .kpop-map-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  align-items: start;
}
.stats-dashboard-page .kpop-map-stats .kpop-map-card {
  background: rgba(8, 12, 22, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 18px;
  display: grid;
  gap: 12px;
}
.stats-dashboard-page .kpop-map-stats .kpop-map-card h3 {
  margin: 0;
  font-size: 14px;
  letter-spacing: 0.02em;
}
.stats-dashboard-page .kpop-map-stats .kpop-map-generations-body {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 14px;
  align-items: center;
}
.stats-dashboard-page .kpop-map-stats .kpop-map-donut {
  width: 100%;
  height: auto;
}
.stats-dashboard-page .kpop-map-stats .kpop-map-donut-num {
  fill: #fff;
  font-size: 38px;
  font-weight: 900;
}
.stats-dashboard-page .kpop-map-stats .kpop-map-donut-label {
  fill: rgba(255, 255, 255, 0.7);
  font-size: 14px;
}
.stats-dashboard-page .kpop-map-stats .kpop-map-legend {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
}
.stats-dashboard-page .kpop-map-stats .kpop-map-legend a {
  display: grid;
  grid-template-columns: 14px 1fr auto auto;
  gap: 8px;
  align-items: center;
  padding: 6px 8px;
  border-radius: 7px;
  text-decoration: none;
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.92);
}
.stats-dashboard-page .kpop-map-stats .kpop-map-legend a:hover {
  background: rgba(255, 255, 255, 0.06);
}
.stats-dashboard-page .kpop-map-stats .kpop-map-legend-dot {
  width: 12px;
  height: 12px;
  border-radius: 4px;
  display: inline-block;
}
.stats-dashboard-page .kpop-map-stats .kpop-map-legend-pct {
  color: rgba(255, 255, 255, 0.55);
  font-size: 11px;
}
.stats-dashboard-page .kpop-map-stats .kpop-map-bars {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.stats-dashboard-page .kpop-map-stats .kpop-map-bars li,
.stats-dashboard-page .kpop-map-stats .kpop-map-bars a {
  display: grid;
  gap: 4px;
  text-decoration: none;
  color: inherit;
  font-size: 12.5px;
}
.stats-dashboard-page .kpop-map-stats .kpop-map-bars a:hover {
  color: #f4df58;
}
.stats-dashboard-page .kpop-map-stats .kpop-map-bar-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 6px;
}
.stats-dashboard-page .kpop-map-stats .kpop-map-bar-track {
  display: block;
  height: 6px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  overflow: hidden;
}
.stats-dashboard-page .kpop-map-stats .kpop-map-bar-fill {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #f4df58, #ffb4ca);
  border-radius: 999px;
}
@media (max-width: 960px) {
  .stats-dashboard-page .kpop-map-stats .kpop-map-grid-3 {
    grid-template-columns: 1fr;
  }
  .stats-dashboard-page .kpop-map-stats .kpop-map-generations-body {
    grid-template-columns: 120px 1fr;
  }
}

/* P2: SVG chart sections */
.stats-dashboard-page .stats-chart-section {
  padding: 22px 24px;
  display: grid;
  gap: 12px;
}
.stats-dashboard-page .stats-chart-section .section-head .lede {
  max-width: 880px;
  margin-top: 6px;
  color: rgba(255, 255, 255, 0.82);
  line-height: 1.7;
}
.stats-dashboard-page .stats-chart-section .section-head .lede strong {
  color: #12d6cb;
}
.stats-dashboard-page .stats-chart-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 18px;
  align-items: start;
}
.stats-dashboard-page .stats-chart-svg {
  width: 100%;
  height: auto;
  background: rgba(8, 12, 22, 0.5);
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.stats-dashboard-page .stats-chart-tick {
  fill: rgba(255, 255, 255, 0.68);
  font-size: 11px;
}
.stats-dashboard-page .stats-chart-line-label {
  font-size: 10px;
  font-weight: 700;
}
.stats-dashboard-page .stats-chart-legend {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
  font-size: 12.5px;
}
.stats-dashboard-page .stats-chart-legend-2col {
  grid-template-columns: 1fr 1fr;
  gap: 4px 14px;
}
.stats-dashboard-page .stats-chart-legend li {
  display: grid;
  grid-template-columns: 14px 1fr auto;
  gap: 8px;
  align-items: center;
}
.stats-dashboard-page .stats-chart-legend small {
  color: rgba(255, 255, 255, 0.55);
  font-size: 11px;
}
.stats-dashboard-page .stats-chart-legend a {
  color: rgba(255, 255, 255, 0.92);
  text-decoration: none;
}
.stats-dashboard-page .stats-chart-legend a:hover {
  text-decoration: underline;
}
.stats-dashboard-page .stats-chart-legend-dot {
  width: 12px;
  height: 12px;
  border-radius: 4px;
}
.stats-dashboard-page .stats-chart-note {
  margin: 0;
  font-size: 11.5px;
  color: rgba(255, 255, 255, 0.55);
}

/* radar grid */
.stats-dashboard-page .stats-chart-radar .stats-radar-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
}
.stats-dashboard-page .stats-chart-radar .stats-radar-card {
  background: rgba(8, 12, 22, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 14px;
  display: grid;
  gap: 8px;
}
.stats-dashboard-page .stats-chart-radar .stats-radar-card header {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}
.stats-dashboard-page .stats-chart-radar .stats-radar-card header a {
  color: #fff;
  text-decoration: none;
}
.stats-dashboard-page .stats-chart-radar .stats-radar-card header small {
  color: rgba(255, 255, 255, 0.55);
  font-size: 11px;
}
.stats-dashboard-page .stats-chart-radar .stats-radar-dot {
  width: 10px;
  height: 10px;
  border-radius: 3px;
  display: inline-block;
}
.stats-dashboard-page .stats-radar-svg {
  width: 100%;
  height: auto;
}
.stats-chart-radar-axis {
  font-weight: 700;
  font-size: 10px;
}
.stats-dashboard-page .stats-radar-data {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px 8px;
  margin: 0;
}
.stats-dashboard-page .stats-radar-data div {
  display: grid;
  gap: 1px;
}
.stats-dashboard-page .stats-radar-data dt {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: 0.03em;
}
.stats-dashboard-page .stats-radar-data dd {
  margin: 0;
  font-size: 12.5px;
  font-weight: 700;
}

@media (max-width: 960px) {
  .stats-dashboard-page .stats-chart-wrap {
    grid-template-columns: 1fr;
  }
}

/* P3: comparison tool */
.stats-dashboard-page .stats-compare {
  display: grid;
  gap: 12px;
  padding: 22px 24px;
  background: linear-gradient(180deg, rgba(18, 214, 203, 0.05) 0%, rgba(18, 25, 45, 0.6) 100%);
  border: 1px solid rgba(18, 214, 203, 0.2);
}
.stats-dashboard-page .stats-compare-controls {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: 10px;
  align-items: end;
}
.stats-dashboard-page .stats-compare-controls label {
  display: grid;
  gap: 4px;
}
.stats-dashboard-page .stats-compare-controls label span {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.6);
  letter-spacing: 0.04em;
  font-weight: 700;
}
.stats-dashboard-page .stats-compare-controls select {
  padding: 8px 10px;
  background: rgba(8, 12, 22, 0.6);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 7px;
  font-size: 13px;
}
.stats-dashboard-page .stats-compare-controls button {
  padding: 8px 14px;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 7px;
  font-size: 12.5px;
  cursor: pointer;
}
.stats-dashboard-page .stats-compare-controls button:hover {
  background: rgba(18, 214, 203, 0.12);
  color: #12d6cb;
  border-color: rgba(18, 214, 203, 0.35);
}
.stats-dashboard-page .stats-compare-table {
  overflow-x: auto;
}
.stats-dashboard-page .stats-compare-grid th[scope="row"] {
  white-space: nowrap;
  color: rgba(255, 255, 255, 0.65);
  font-weight: 700;
  width: 140px;
}
.stats-dashboard-page .stats-compare-grid thead th a {
  color: #12d6cb;
  text-decoration: none;
  display: block;
  font-weight: 800;
}
.stats-dashboard-page .stats-compare-grid thead th small {
  display: block;
  color: rgba(255, 255, 255, 0.55);
  font-size: 11px;
  font-weight: 400;
}
@media (max-width: 720px) {
  .stats-dashboard-page .stats-compare-controls {
    grid-template-columns: 1fr;
  }
  .stats-dashboard-page .stats-compare-controls button {
    width: 100%;
  }
}

/* 2026-08-09 統計ページ統一: 10章を同じDBハブ文法でつなぐ。 */
.stats-dashboard-page {
  --stats-accent: #d41465;
  --stats-accent-rgb: 212, 20, 101;
  --stats-gold: #f4df58;
  --stats-violet: #9b88ff;
  --stats-orange: #ff8c5b;
  --stats-pink: #ffb4ca;
  --stats-panel: rgba(10, 14, 24, .82);
  --stats-panel-soft: rgba(255, 255, 255, .045);
  --stats-line: rgba(255, 255, 255, .11);
  scroll-padding-top: calc(var(--chrome-header-height, 64px) + 68px);
}

.stats-dashboard-page main {
  min-width: 0;
}

.stats-dashboard-page .stats-hero {
  border-color: rgba(var(--stats-accent-rgb), .34);
  background:
    linear-gradient(110deg, rgba(var(--stats-accent-rgb), .18), transparent 42%),
    #0a0e18;
}

.stats-dashboard-page .stats-hero .calendar-hero-eyebrow,
.stats-dashboard-page .stats-hero .calendar-hero-stats strong,
.stats-dashboard-page .stats-hero .calendar-hero-rail-item.is-primary strong {
  color: var(--stats-accent);
}

.stats-dashboard-page .stats-section-nav {
  position: sticky;
  top: var(--chrome-header-height, 64px);
  z-index: 8;
  display: flex;
  gap: 6px;
  margin: 0 0 18px;
  padding: 9px 10px;
  overflow-x: auto;
  scrollbar-width: none;
  border: 1px solid var(--stats-line);
  border-radius: 14px;
  background: rgba(5, 7, 11, .9);
  box-shadow: 0 12px 32px rgba(0, 0, 0, .24);
  backdrop-filter: blur(16px);
}

.stats-dashboard-page .stats-section-nav::-webkit-scrollbar {
  display: none;
}

.stats-dashboard-page .stats-section-nav a {
  flex: 0 0 auto;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  padding: 0 13px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: rgba(238, 244, 255, .72);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
  transition: color .18s ease, border-color .18s ease, background-color .18s ease;
}

.stats-dashboard-page .stats-section-nav a:hover,
.stats-dashboard-page .stats-section-nav a:focus-visible {
  color: #fff;
  border-color: rgba(var(--stats-accent-rgb), .42);
}

.stats-dashboard-page .stats-section-nav a[aria-current="location"] {
  color: #fff;
  border-color: rgba(var(--stats-accent-rgb), .54);
  background: rgba(var(--stats-accent-rgb), .2);
}

.stats-dashboard-page .stats-chapter {
  scroll-margin-top: calc(var(--chrome-header-height, 64px) + 68px);
  margin-bottom: 18px;
  padding: 26px 28px;
  border: 1px solid var(--stats-line);
  border-radius: 16px;
  background: var(--stats-panel);
  box-shadow: 0 18px 48px rgba(0, 0, 0, .2);
}

.stats-dashboard-page .stats-chapter > .section-head,
.stats-dashboard-page .stats-chapter > .kpop-map-head,
.stats-dashboard-page .stats-tldr > .stats-tldr-head {
  margin: 0 0 20px;
  padding: 0 0 15px;
  border-bottom: 1px solid var(--stats-line);
}

.stats-dashboard-page .stats-chapter h2,
.stats-dashboard-page .kpop-map-stats h2,
.stats-dashboard-page .stats-tldr h2 {
  margin: 0;
  color: #fff;
  font-family: Outfit, "Noto Sans JP", sans-serif;
  font-size: clamp(25px, 3vw, 36px);
  font-weight: 900;
  letter-spacing: -.035em;
  line-height: 1.08;
}

.stats-dashboard-page .stats-chapter-lede,
.stats-dashboard-page .kpop-map-stats .kpop-map-lede {
  max-width: 850px;
  margin: 8px 0 0;
  color: rgba(238, 244, 255, .72);
  font-size: 13.5px;
  line-height: 1.75;
}

.stats-dashboard-page .stats-chapter-body {
  display: grid;
  gap: 24px;
}

.stats-dashboard-page .stats-content-panel {
  min-width: 0;
  margin: 0;
  padding: 22px 0 0;
  border: 0;
  border-top: 1px solid var(--stats-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.stats-dashboard-page .stats-content-panel:first-child {
  padding-top: 0;
  border-top: 0;
}

.stats-dashboard-page .stats-content-panel > .section-head {
  margin: 0 0 14px;
}

.stats-dashboard-page .stats-content-panel > .section-head h3,
.stats-dashboard-page .stats-subhead h3 {
  margin: 0;
  color: #fff;
  font-size: clamp(17px, 2vw, 21px);
  line-height: 1.35;
}

.stats-dashboard-page .stats-content-panel .section-head .lede {
  max-width: 900px;
  color: rgba(238, 244, 255, .7);
}

.stats-dashboard-page .stats-content-panel .section-head .lede strong,
.stats-dashboard-page .stats-tldr .tldr-headline strong,
.stats-dashboard-page .stats-compare-grid thead th a {
  color: var(--stats-accent);
}

.stats-dashboard-page .stats-chart-svg {
  border-color: var(--stats-line);
  border-radius: 12px;
  background: rgba(4, 7, 14, .72);
}

.stats-dashboard-page .stats-chart-legend-dot,
.stats-dashboard-page .kpop-map-stats .kpop-map-legend-dot {
  border-radius: 999px;
}

.stats-dashboard-page .stats-chart-note,
.stats-dashboard-page .stats-source-note {
  color: rgba(238, 244, 255, .58);
  line-height: 1.65;
}

.stats-dashboard-page .stats-tldr {
  gap: 14px;
  border-color: var(--stats-line);
  background: var(--stats-panel);
}

.stats-dashboard-page .stats-tldr .stats-tldr-head {
  gap: 0;
}

.stats-dashboard-page .stats-readout-card,
.stats-dashboard-page .stats-coverage-panel,
.stats-dashboard-page .stats-insight-panel,
.stats-dashboard-page .stats-chart-radar .stats-radar-card {
  border: 1px solid var(--stats-line);
  border-radius: 12px;
  background: var(--stats-panel-soft);
  box-shadow: none;
}

.stats-dashboard-page .stats-readout-card {
  min-height: 0;
}

.stats-dashboard-page .stats-readout-card small,
.stats-dashboard-page .stats-delta.is-positive {
  color: var(--stats-accent);
}

.stats-dashboard-page .stats-scope-control button[aria-pressed="true"] {
  background: rgba(var(--stats-accent-rgb), .24);
  box-shadow: inset 0 0 0 1px rgba(var(--stats-accent-rgb), .42);
}

.stats-dashboard-page .stat-bar-track span,
.stats-dashboard-page .kpop-map-stats .kpop-map-bar-fill {
  background: var(--stats-accent);
}

.stats-dashboard-page .kpop-map-stats {
  border-color: var(--stats-line);
  background: var(--stats-panel);
}

.stats-dashboard-page .kpop-map-stats .kpop-map-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  align-items: stretch;
}

.stats-dashboard-page .kpop-map-stats .kpop-map-card {
  padding: 18px 0 0;
  border: 0;
  border-top: 1px solid var(--stats-line);
  border-radius: 0;
  background: transparent;
}

.stats-dashboard-page .kpop-map-stats .kpop-map-lede strong,
.stats-dashboard-page .kpop-map-stats .kpop-map-bars a:hover {
  color: var(--stats-accent);
}

.stats-dashboard-page .stats-support-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.stats-dashboard-page .stats-compare {
  border: 0;
  border-top: 1px solid var(--stats-line);
  border-radius: 0;
  background: transparent;
}

.stats-dashboard-page .stats-compare-controls select,
.stats-dashboard-page .stats-compare-controls button {
  min-height: 42px;
  border-color: var(--stats-line);
  border-radius: 10px;
  background: rgba(255, 255, 255, .055);
}

.stats-dashboard-page .stats-compare-controls button:hover {
  border-color: rgba(var(--stats-accent-rgb), .45);
  background: rgba(var(--stats-accent-rgb), .14);
  color: #fff;
}

.stats-dashboard-page .stats-table-block {
  display: grid;
  gap: 14px;
  min-width: 0;
  margin-top: 4px;
  padding-top: 24px;
  border-top: 1px solid var(--stats-line);
  scroll-margin-top: calc(var(--chrome-header-height, 64px) + 68px);
}

.stats-dashboard-page .stats-member-directory-link {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 20px 2px;
  border-top: 1px solid var(--stats-line);
  border-bottom: 1px solid var(--stats-line);
  color: inherit;
  text-decoration: none;
  transition: border-color .18s ease, background-color .18s ease;
}

.stats-dashboard-page .stats-member-directory-link:hover,
.stats-dashboard-page .stats-member-directory-link:focus-visible {
  border-color: rgba(var(--stats-accent-rgb), .5);
  background: rgba(var(--stats-accent-rgb), .07);
}

.stats-dashboard-page .stats-member-directory-link > span:first-child {
  min-width: 0;
  display: grid;
  gap: 6px;
}

.stats-dashboard-page .stats-member-directory-link strong {
  color: #fff;
  font-size: clamp(17px, 2vw, 21px);
  line-height: 1.4;
}

.stats-dashboard-page .stats-member-directory-link small {
  color: rgba(238, 244, 255, .68);
  font-size: 13px;
  line-height: 1.7;
}

.stats-dashboard-page .stats-member-directory-arrow {
  color: var(--stats-accent);
  font-family: Outfit, "Noto Sans JP", sans-serif;
  font-size: 28px;
  font-weight: 900;
  transition: transform .18s ease;
}

.stats-dashboard-page .stats-member-directory-link:hover .stats-member-directory-arrow,
.stats-dashboard-page .stats-member-directory-link:focus-visible .stats-member-directory-arrow {
  transform: translateX(4px);
}

.stats-dashboard-page .stats-subhead {
  display: grid;
  gap: 6px;
}

.stats-dashboard-page .stats-subhead p {
  margin: 0;
}

.stats-dashboard-page .stats-source-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--stats-line);
  border-left: 1px solid var(--stats-line);
}

.stats-dashboard-page .stats-source-grid a {
  min-width: 0;
  display: grid;
  gap: 7px;
  padding: 18px;
  border-right: 1px solid var(--stats-line);
  border-bottom: 1px solid var(--stats-line);
  color: inherit;
  text-decoration: none;
  transition: background-color .18s ease;
}

.stats-dashboard-page .stats-source-grid a:hover,
.stats-dashboard-page .stats-source-grid a:focus-visible {
  background: rgba(var(--stats-accent-rgb), .1);
}

.stats-dashboard-page .stats-source-grid strong {
  color: #fff;
  font-size: 15px;
}

.stats-dashboard-page .stats-source-grid span {
  color: rgba(238, 244, 255, .7);
  font-size: 13px;
  line-height: 1.65;
}

.stats-dashboard-page .stats-downloads {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.stats-dashboard-page .stats-downloads .button-link {
  margin: 0;
}

.stats-dashboard-page .stats-source-note {
  margin: 0;
  font-size: 12px;
}

.stats-dashboard-page .stats-faq .faq-list {
  gap: 0 28px;
}

@media (max-width: 960px) {
  .stats-dashboard-page .kpop-map-stats .kpop-map-grid-2,
  .stats-dashboard-page .stats-support-grid,
  .stats-dashboard-page .stats-source-grid {
    grid-template-columns: 1fr;
  }

  .stats-dashboard-page .stats-source-grid {
    border-left: 0;
  }

  .stats-dashboard-page .stats-source-grid a {
    border-right: 0;
  }
}

@media (max-width: 720px) {
  .stats-dashboard-page {
    scroll-padding-top: calc(var(--chrome-header-height, 64px) + 58px);
  }

  .stats-dashboard-page .stats-section-nav {
    margin-inline: -4px;
    padding: 7px;
    border-radius: 12px;
  }

  .stats-dashboard-page .stats-section-nav a {
    min-height: 34px;
    padding-inline: 11px;
    font-size: 11.5px;
  }

  .stats-dashboard-page .stats-chapter {
    scroll-margin-top: calc(var(--chrome-header-height, 64px) + 58px);
    padding: 20px 16px;
    border-radius: 13px;
  }

  .stats-dashboard-page .stats-chapter h2,
  .stats-dashboard-page .kpop-map-stats h2,
  .stats-dashboard-page .stats-tldr h2 {
    font-size: clamp(23px, 8vw, 30px);
  }

  .stats-dashboard-page .stats-chart-wrap,
  .stats-dashboard-page .stats-chart-radar .stats-radar-grid,
  .stats-dashboard-page .stats-readout-grid,
  .stats-dashboard-page .stats-insight-grid,
  .stats-dashboard-page .stats-coverage-list {
    grid-template-columns: 1fr;
  }

  .stats-dashboard-page .stats-chart-svg {
    min-width: 0;
  }

  .stats-dashboard-page .stats-panel-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .stats-dashboard-page .stats-scope-control {
    width: 100%;
  }

  .stats-dashboard-page .stats-downloads .button-link {
    flex: 1 0 calc(50% - 4px);
    justify-content: center;
    text-align: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .stats-dashboard-page .stats-section-nav a,
  .stats-dashboard-page .stats-source-grid a {
    transition: none;
  }
}

.faq-list {
  display: grid;
  gap: 12px;
  margin: 0;
}

.faq-list div {
  display: grid;
  gap: 6px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.06);
}

.faq-list dt {
  font-weight: 800;
  font-size: 15px;
  letter-spacing: -0.005em;
  line-height: 1.45;
}

.faq-list dd {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
}

.static-hero .lead {
  max-width: 860px;
}

@media (max-width: 480px) {
  .hero {
    min-height: 0;
    padding: 16px;
  }

  .hero h1,
  .hero h2 {
    width: 100%;
    max-width: 320px;
    font-size: 28px;
    line-height: 1.15;
    word-break: break-word;
  }

  body[data-member-slug] .static-hero h1 {
    max-width: 100%;
    font-size: clamp(22px, 5.7vw, 24px);
  }

  body[data-member-slug] .static-hero .hero-title-line {
    width: 100%;
    white-space: normal;
    overflow-wrap: keep-all;
    word-break: keep-all;
  }

  .hero .lead {
    width: 100%;
    max-width: 320px;
    word-break: break-word;
  }

  .badge-row {
    width: 100%;
    max-width: 320px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .intent-cta-nav {
    grid-template-columns: 1fr;
  }

  .badge-row .badge {
    justify-content: center;
    margin: 0;
    text-align: center;
  }

  .page-jump-nav {
    gap: 6px;
  }

  .page-primary-nav {
    grid-template-columns: 1fr;
  }
  .page-primary-nav .button-link:nth-child(3) {
    grid-column: auto;
  }

  .page-jump-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .page-jump-nav .button-link {
    flex: 1 1 96px;
    min-height: 36px;
    padding: 7px 6px;
    font-size: 12px;
    line-height: 1.25;
    text-align: center;
  }

  .page-jump-more {
    grid-column: auto;
  }

  .page-jump-more summary {
    min-height: 36px;
    padding: 7px 6px;
    font-size: 12px;
    line-height: 1.25;
  }

  .highlight-grid,
  .focus-grid,
  .song-grid,
  .static-fallback .card-list,
  .affiliate-cards {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 860px) {
  body[data-member-slug] .member-detail-overview {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  body[data-member-slug] #profile .member-profile-table th {
    width: 126px;
    max-width: 126px;
  }
}

/* ===== メンバー詳細ページ: アイデンティティ別レイアウト (activity_unit_rules.md §2) ===== */

.identity-switcher {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 14px 16px;
  margin: 18px 0;
  border: 1px solid rgba(var(--group-accent-rgb), 0.22);
  border-radius: var(--radius);
  background:
    linear-gradient(120deg, rgba(var(--group-accent-rgb), 0.08), transparent 60%),
    rgba(15, 18, 30, 0.4);
}

.identity-switcher .button-link {
  border-color: rgba(var(--group-accent-rgb), 0.4);
  background: rgba(var(--group-accent-rgb), 0.1);
}

.identity-switcher .button-link:hover {
  background: rgba(var(--group-accent-rgb), 0.2);
}

.identity-section {
  margin-block: 28px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-left: 4px solid rgba(var(--group-accent-rgb), 0.65);
  border-radius: var(--radius);
}

.identity-section.identity-solo {
  border-left-color: rgba(var(--group-accent-2-rgb), 0.7);
}

.identity-section.identity-unit {
  border-left-color: rgba(var(--group-accent-3-rgb), 0.7);
}

.identity-section .identity-header {
  padding-bottom: 12px;
  margin-bottom: 18px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.12);
}

.identity-tag {
  display: inline-block;
  padding: 4px 12px;
  margin-bottom: 10px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  /* 2026-06-18 ユーザー指摘: 「aespa」「GOT the beat」等の固有名詞が AESPA / GOT THE BEAT に
     化けるため uppercase を撤廃し、公式の正式表記をそのまま見せる。 */
  text-transform: none;
  color: rgba(255, 255, 255, 0.92);
  background: rgba(var(--group-accent-rgb), 0.65);
  border-radius: 999px;
}

.identity-tag-solo {
  color: #181018;
  background: linear-gradient(135deg, var(--group-accent), var(--group-accent-3));
  border: 1px solid rgba(255, 255, 255, 0.44);
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22);
}

.identity-tag-unit {
  background: rgba(var(--group-accent-3-rgb), 0.7);
}

.identity-section .identity-header h2 {
  margin: 0 0 8px;
  font-size: clamp(1.4rem, 2.4vw, 1.85rem);
}

.identity-lead {
  margin: 0;
  color: rgba(255, 255, 255, 0.78);
  line-height: 1.7;
}

.identity-block {
  margin-block: 22px;
}

.identity-block h3 {
  margin: 0 0 12px;
  font-size: 1.1rem;
  color: rgba(255, 255, 255, 0.95);
}

.identity-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px dashed rgba(255, 255, 255, 0.1);
}

.identity-cta .button-link.primary {
  background: linear-gradient(120deg, var(--group-accent), var(--group-accent-3));
  border-color: transparent;
  color: #fff;
}

@media (max-width: 720px) {
  .identity-switcher {
    padding: 10px 12px;
  }
  .identity-cta {
    flex-direction: column;
  }
  .identity-cta .button-link {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}

/* ===== 活動概況ストリップ（メンバー詳細ページ） ===== */

.activity-stats-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
  padding: 18px;
  margin: 18px 0 28px;
  border: 1px solid rgba(var(--group-accent-rgb), 0.2);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(var(--group-accent-rgb), 0.06), transparent 70%),
    rgba(15, 18, 30, 0.45);
}

.activity-stat {
  display: grid;
  gap: 4px;
  padding: 10px 14px;
  border-left: 3px solid rgba(var(--group-accent-rgb), 0.55);
  background: rgba(255, 255, 255, 0.02);
  border-radius: 6px;
}

.activity-stat.activity-stat-solo {
  border-left-color: rgba(var(--group-accent-2-rgb), 0.65);
}

.activity-stat.activity-stat-unit {
  border-left-color: rgba(var(--group-accent-3-rgb), 0.65);
}

.activity-stat-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.65);
}

.activity-stat strong {
  font-size: 1.05rem;
  color: rgba(255, 255, 255, 0.96);
}

.activity-stat-duration {
  font-size: 0.85rem;
  font-weight: 600;
  color: rgba(var(--group-accent-rgb), 0.95);
}

.activity-stat.activity-stat-solo .activity-stat-duration {
  color: var(--group-accent-3);
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.48);
}

.activity-stat.activity-stat-unit .activity-stat-duration {
  color: rgba(var(--group-accent-3-rgb), 0.95);
}

/* ===== 統一キャリアタイムラインのタグ ===== */
/* 経歴は .timeline-history（縦スパイン）に統一。フェーズタグは p の外の直接子になったため、
   旧・p 内インラインタグ用の flex レイアウトは不要（display:block に戻す）。 */
.timeline-unified .timeline-item p {
  display: block;
}

.timeline-tag {
  display: inline-block;
  padding: 2px 9px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  background: rgba(var(--group-accent-rgb), 0.55);
  color: rgba(255, 255, 255, 0.95);
  border-radius: 999px;
  white-space: nowrap;
}

.timeline-tag.timeline-tag-solo {
  color: #181018;
  background: linear-gradient(135deg, var(--group-accent), var(--group-accent-3));
  border: 1px solid rgba(255, 255, 255, 0.42);
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.2);
}

.timeline-tag.timeline-tag-unit {
  background: rgba(var(--group-accent-3-rgb), 0.62);
}

/* ===== メンバー詳細 hero 内の活動概況カード（通常・多重アイデンティティ共通） ===== */

.hero .hero-meta-chips {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
  margin: 16px 0 10px;
  max-width: 720px;
}

.hero .hero-meta-chip {
  display: grid;
  gap: 4px;
  padding: 12px 16px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-left: 3px solid rgba(var(--group-accent-rgb), 0.65);
  border-radius: 8px;
}

.hero .hero-meta-chip[data-group-theme] {
  background:
    linear-gradient(135deg, rgba(var(--group-accent-rgb), 0.18), rgba(var(--group-accent-2-rgb), 0.08)),
    rgba(255, 255, 255, 0.045);
  border-color: rgba(var(--group-accent-rgb), 0.24);
  border-left-color: rgba(var(--group-accent-rgb), 0.88);
}

.hero .hero-meta-chip-solo {
  border-left-color: rgba(var(--group-accent-2-rgb), 0.7);
}

.hero .hero-meta-chip-unit {
  border-left-color: rgba(var(--group-accent-3-rgb), 0.7);
}

.hero-meta-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: none;
  color: rgba(255, 255, 255, 0.65);
}

.hero .hero-meta-chip strong {
  font-size: 1.05rem;
  color: rgba(255, 255, 255, 0.96);
  font-weight: 700;
}

.hero-meta-duration {
  font-size: 0.85rem;
  /* アクセント色依存だと暗テーマで背景に同化して読めないため、可読な薄白に固定（色のアイデンティティは border-left で担保）。 */
  color: rgba(255, 255, 255, 0.82);
  font-weight: 600;
}

.hero .hero-meta-chip[data-group-theme] .hero-meta-duration {
  color: rgba(var(--group-accent-rgb), 0.96);
}

.hero .hero-meta-chip-solo .hero-meta-duration {
  color: var(--group-accent-3);
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.48);
}

.hero .hero-meta-chip-unit .hero-meta-duration {
  color: rgba(var(--group-accent-3-rgb), 0.95);
}

@media (max-width: 720px) {
  .hero .hero-meta-chips {
    grid-template-columns: 1fr;
    max-width: none;
  }
}

/* ── Compare Article Index — Spotify-style dark gradient cards ── */
.compare-index-hero {
  padding: 3rem 1.5rem 1.5rem;
  text-align: center;
  max-width: 780px;
  margin: 0 auto;
}
.compare-index-hero h1 {
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 800;
  margin-bottom: 0.5rem;
}
.compare-index-hero .lead {
  color: rgba(255, 255, 255, 0.7);
  font-size: 1rem;
  margin-bottom: 1.5rem;
}
.compare-filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
  padding: 0;
  list-style: none;
}
.compare-filter-chip {
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 100px;
  color: rgba(255, 255, 255, 0.72);
  cursor: pointer;
  font-family: inherit;
  font-size: 0.83rem;
  font-weight: 600;
  padding: 0.38em 1.1em;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.compare-filter-chip:hover {
  background: rgba(255, 255, 255, 0.13);
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
}
.compare-filter-chip.active {
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.4);
  color: #fff;
}
.compare-article-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: 1.1rem;
  max-width: 1060px;
  margin: 2rem auto 3rem;
  padding: 0 1.25rem;
}
.compare-article-card {
  background: linear-gradient(
    135deg,
    var(--cac-from, rgba(28, 28, 52, 0.82)),
    var(--cac-to, rgba(16, 16, 32, 0.97))
  );
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 14px;
  color: inherit;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: 1.4rem 1.25rem;
  text-decoration: none;
  transition: transform 0.17s, box-shadow 0.17s, border-color 0.17s;
}
.compare-article-card:hover {
  border-color: rgba(255, 255, 255, 0.22);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
  transform: translateY(-3px);
}
.compare-article-card:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.5);
  outline-offset: 3px;
}
.compare-article-card .card-cat {
  color: rgba(255, 255, 255, 0.52);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.compare-article-card .card-title {
  color: rgba(255, 255, 255, 0.95);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.38;
  margin: 0;
}
.compare-article-card .card-desc {
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.84rem;
  line-height: 1.55;
  margin: 0;
}
.compare-article-card[data-cat="girls"]      { --cac-from: rgba(130, 20, 85, 0.72);  --cac-to: rgba(60, 8, 42, 0.97); }
.compare-article-card[data-cat="agency"]     { --cac-from: rgba(18, 55, 125, 0.72);  --cac-to: rgba(8, 28, 72, 0.97); }
.compare-article-card[data-cat="generation"] { --cac-from: rgba(80, 18, 130, 0.72);  --cac-to: rgba(38, 8, 72, 0.97); }
.compare-article-card[data-cat="japan"]      { --cac-from: rgba(168, 28, 28, 0.72);  --cac-to: rgba(88, 12, 12, 0.97); }
.compare-article-card[data-cat="beginner"]   { --cac-from: rgba(12, 90, 75, 0.72);   --cac-to: rgba(6, 52, 44, 0.97); }
.compare-article-card.featured {
  grid-column: 1 / -1;
  flex-direction: row;
  align-items: flex-start;
  gap: 1.5rem;
  padding: 2rem 1.75rem;
}
.compare-article-card.featured .card-body {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.compare-article-card.featured .card-feat-label {
  display: inline-block;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 5px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  padding: 0.22em 0.7em;
  text-transform: uppercase;
  width: fit-content;
}
.compare-article-card.featured .card-title {
  font-size: 1.3rem;
}
.compare-article-card.featured .card-desc {
  max-width: 52ch;
}
@media (max-width: 620px) {
  .compare-article-card.featured {
    flex-direction: column;
    gap: 1rem;
  }
  .compare-article-grid {
    grid-template-columns: 1fr;
    padding: 0 1rem;
  }
  .compare-index-hero {
    padding: 2rem 1rem 1.25rem;
  }
}

/* ── Japan Affinity Score badge (基本情報テーブル内) ── */
.jas-score { color: var(--accent, #12d6cb); font-size: 1.1rem; font-weight: 700; }
.jas-max { color: rgba(255, 255, 255, 0.42); font-size: 0.82rem; }
.jas-badge { background: rgba(18, 214, 203, 0.10); border: 1px solid rgba(18, 214, 203, 0.22); border-radius: 3px; color: rgba(18, 214, 203, 0.75); font-size: 0.62rem; font-weight: 700; letter-spacing: 0.08em; margin-left: 7px; padding: 2px 5px; text-transform: uppercase; vertical-align: middle; }
.jas-cell { white-space: nowrap; }
.rank-num { color: rgba(255, 255, 255, 0.45); font-size: 0.85rem; font-weight: 700; text-align: center; width: 2rem; }
.muted { color: rgba(255, 255, 255, 0.45); }

/* ── Compare cards: boys color theme ── */
.compare-article-card[data-cat="boys"] { --cac-from: rgba(160, 80, 14, 0.72); --cac-to: rgba(80, 36, 6, 0.97); }

/* ── Apple-style group comparison tool ── */
.compare-tool-page {
  max-width: 1180px;
  margin-inline: auto;
}

.compare-tool-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  align-items: center;
  gap: 1.5rem;
  background:
    linear-gradient(135deg, rgba(8, 20, 34, 0.96), rgba(64, 20, 52, 0.88) 48%, rgba(114, 76, 16, 0.72)),
    rgba(16, 18, 28, 0.96);
}

.compare-tool-hero .eyebrow {
  color: rgba(255, 255, 255, 0.64);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.compare-tool-hero-panel {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.28rem;
  padding: 1.1rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
}

.compare-tool-hero-panel strong {
  color: #fff;
  font-size: 1.45rem;
  line-height: 1.1;
}

.compare-tool-hero-panel span {
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.82rem;
}

.compare-tool-panel {
  margin: 1.2rem 0;
  padding: 1.15rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(12, 18, 28, 0.78);
}

.compare-tool-panel .section-head {
  align-items: flex-end;
  gap: 1rem;
}

.compare-tool-toggles {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.6rem;
}

.compare-tool-toggles label {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: rgba(255, 255, 255, 0.75);
  font-size: 0.86rem;
  font-weight: 700;
}

.compare-tool-toggles button {
  min-height: 36px;
  padding: 0.45rem 0.8rem;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.86);
  cursor: pointer;
  font: inherit;
  font-size: 0.84rem;
  font-weight: 800;
}

.compare-tool-toggles button:hover,
.compare-tool-toggles button:focus-visible {
  border-color: rgba(255, 255, 255, 0.34);
  background: rgba(255, 255, 255, 0.14);
}

.compare-picker-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.8rem;
}

.compare-picker {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 0.55rem;
}

.compare-picker span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(18, 214, 203, 0.16);
  color: rgba(255, 255, 255, 0.92);
  font-weight: 900;
}

.compare-picker select {
  width: 100%;
  min-height: 42px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.94);
  font: inherit;
  font-size: 0.94rem;
  padding: 0.56rem 0.7rem;
}

.compare-verdict-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
  margin: 1rem 0;
}

.compare-verdict-card {
  min-height: 134px;
  padding: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.07);
}

.compare-verdict-card span {
  color: rgba(18, 214, 203, 0.92);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.compare-verdict-card strong {
  display: block;
  margin-top: 0.42rem;
  color: rgba(255, 255, 255, 0.95);
  font-size: 1.05rem;
}

.compare-verdict-card p {
  margin: 0.45rem 0 0;
  color: rgba(255, 255, 255, 0.66);
  font-size: 0.86rem;
  line-height: 1.65;
}

.compare-tool-scroll {
  overflow-x: auto;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 8px;
  background: rgba(7, 11, 18, 0.46);
}

.compare-tool-table {
  width: 100%;
  min-width: 900px;
  border-collapse: separate;
  border-spacing: 0;
}

.compare-tool-table th,
.compare-tool-table td {
  width: 21%;
  padding: 0.9rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
  border-right: 1px solid rgba(255, 255, 255, 0.07);
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.9rem;
  line-height: 1.58;
  text-align: left;
  vertical-align: top;
}

.compare-tool-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: rgba(14, 22, 34, 0.98);
  color: rgba(255, 255, 255, 0.95);
}

.compare-tool-table th:first-child,
.compare-tool-table td:first-child {
  width: 16%;
}

.compare-tool-table th:first-child {
  position: sticky;
  left: 0;
  z-index: 3;
  background: rgba(14, 22, 34, 0.98);
}

.compare-tool-table tbody th {
  color: rgba(255, 255, 255, 0.9);
  font-weight: 800;
}

.compare-tool-table thead a {
  display: block;
  color: #fff;
  text-decoration: none;
}

.compare-tool-table thead small {
  display: block;
  margin-top: 0.45rem;
  color: rgba(255, 255, 255, 0.52);
  font-size: 0.72rem;
  line-height: 1.52;
}

.compare-tool-table td.is-different {
  background: rgba(18, 214, 203, 0.075);
  color: rgba(255, 255, 255, 0.88);
}

.compare-tool-table tr.is-same td {
  color: rgba(255, 255, 255, 0.58);
}

.compare-tool-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.42rem;
}

.compare-tool-actions .button-link {
  min-height: 32px;
  padding: 0.42rem 0.62rem;
  font-size: 0.78rem;
}

@media (max-width: 860px) {
  .compare-tool-hero {
    grid-template-columns: 1fr;
  }
  .compare-picker-grid,
  .compare-verdict-grid {
    grid-template-columns: 1fr 1fr;
  }
  .compare-tool-panel .section-head {
    align-items: flex-start;
  }
  .compare-tool-toggles {
    justify-content: flex-start;
  }
}

@media (max-width: 560px) {
  .compare-picker-grid,
  .compare-verdict-grid {
    grid-template-columns: 1fr;
  }
  .compare-tool-panel {
    padding: 0.9rem;
  }
  .compare-tool-table {
    min-width: 760px;
  }
  .compare-tool-table th,
  .compare-tool-table td {
    padding: 0.72rem;
    font-size: 0.82rem;
  }
}

/* ── About page lists ── */
.about-stats-list,
.about-priority-list,
.about-criteria-list,
.about-design-list,
.about-tech-list,
.about-contact-list {
  margin: 0 0 14px;
  padding-left: 1.4em;
  color: var(--ink);
  line-height: 1.8;
}
.about-stats-list li,
.about-priority-list li,
.about-criteria-list li,
.about-design-list li,
.about-tech-list li,
.about-contact-list li {
  margin: 0 0 6px;
}
.about-stats-list strong {
  color: var(--accent-2, #12d6cb);
  font-weight: 800;
}
.about-priority-list strong,
.about-design-list strong,
.about-tech-list strong,
.about-contact-list strong {
  color: var(--ink);
  font-weight: 700;
}
.about-dl {
  display: grid;
  gap: 10px;
  margin: 0 0 14px;
}
.about-dl > div {
  border-left: 3px solid rgba(18, 214, 203, 0.46);
  padding: 6px 0 6px 12px;
}
.about-dl dt {
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 3px;
}
.about-dl dd {
  margin: 0;
  color: var(--muted);
  line-height: 1.8;
}
section.surface code {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 4px;
  padding: 1px 5px;
  font-size: 0.85em;
  font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
}
.starter-song-controls {
  display: grid;
  gap: 14px;
}

.starter-control-grid {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) repeat(4, minmax(140px, 1fr)) auto;
  gap: 10px;
  align-items: end;
}

.starter-control-grid label {
  display: grid;
  gap: 6px;
  font-weight: 800;
  color: var(--text);
}

.starter-control-grid label span {
  color: var(--muted);
  font-size: 0.82rem;
}

.starter-control-grid input,
.starter-control-grid select,
.starter-control-grid button {
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  color: var(--text);
  font: inherit;
  padding: 0 12px;
}

.starter-control-grid button {
  cursor: pointer;
  font-weight: 900;
  background: var(--text);
  color: var(--surface);
}

@media (max-width: 980px) {
  .starter-control-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .starter-control-grid {
    grid-template-columns: 1fr;
  }
}

/* ===========================================================================
   Starter Songs — world-class lift (2026-05-29)
   - No .surface chrome (border + tint only, matches top page 5/29 lift)
   - Eyebrow-labelled sections: ESSENTIALS / PATHS / LIBRARY / FAQ
   - LIBRARY = card list (no horizontal table)
   =========================================================================== */

body.starter-songs-page .page {
  padding-bottom: 80px;
}

.starter-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 28px;
  align-items: center;
  padding: 28px 0 32px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 28px;
}

.starter-hero-eyebrow {
  font-family: "Outfit", "Inter", sans-serif;
  font-weight: 800;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--accent-2);
  margin: 0 0 12px;
  text-transform: uppercase;
}

.starter-hero-title {
  font-size: clamp(32px, 4vw, 48px);
  line-height: 1.12;
  margin: 0 0 14px;
  letter-spacing: -0.01em;
}

.starter-hero-lede {
  font-size: clamp(15px, 1.2vw, 17px);
  color: var(--text);
  margin: 0 0 18px;
  max-width: 56ch;
}

.starter-hero-stats {
  list-style: none;
  display: flex;
  gap: 28px;
  margin: 0;
  padding: 0;
}

.starter-hero-stats li {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.starter-hero-stats strong {
  font-family: "Outfit", "Inter", sans-serif;
  font-size: clamp(22px, 2.2vw, 30px);
  font-weight: 800;
  color: var(--text);
}

.starter-hero-stats span {
  font-size: 12px;
  color: var(--muted);
}

.starter-hero-spotlight {
  display: block;
}

.starter-hero-spotlight-link {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 14px;
  background: rgba(255, 255, 255, 0.04);
  text-decoration: none;
  color: inherit;
  transition: border-color 200ms ease, background 200ms ease, transform 200ms ease;
}

.starter-hero-spotlight-link:hover,
.starter-hero-spotlight-link:focus-visible {
  border-color: rgba(var(--group-accent-2-rgb, 200, 180, 255), 0.5);
  background: rgba(255, 255, 255, 0.07);
  transform: translateY(-2px);
}

.starter-hero-spotlight-link .starter-card-art {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 10px;
  margin-bottom: 6px;
  display: block;
}

.starter-hero-spotlight-kicker {
  font-family: "Outfit", "Inter", sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  color: var(--accent-2);
}

.starter-hero-spotlight-group {
  font-size: 13px;
  color: var(--muted);
}

.starter-hero-spotlight-title {
  font-size: 20px;
  font-weight: 800;
  line-height: 1.2;
}

.starter-hero-spotlight-blurb {
  font-size: 13px;
  color: var(--text);
}

.starter-hero-spotlight-cta {
  font-size: 12px;
  font-weight: 700;
  color: var(--accent-2);
  margin-top: 2px;
}

@media (max-width: 880px) {
  .starter-hero {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 20px 0 24px;
  }
  .starter-hero-stats {
    gap: 20px;
  }
}

.starter-main {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.starter-section {
  padding: 0;
}

.starter-section-head {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 18px;
}

.starter-section-head .section-eyebrow,
.section-eyebrow {
  font-family: "Outfit", "Inter", sans-serif;
  font-weight: 800;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--accent-2);
  margin: 0;
  text-transform: uppercase;
}

.starter-section-head h2 {
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.15;
  margin: 0;
}

.starter-section-lede {
  font-size: 14px;
  color: var(--muted);
  margin: 0;
  max-width: 64ch;
}

/* ESSENTIALS */
.starter-essentials-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.starter-essentials-card {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px;
  background: rgba(255, 255, 255, 0.04);
  text-decoration: none;
  color: inherit;
  transition: transform 200ms ease, border-color 200ms ease, background 200ms ease;
}

.starter-essentials-card:hover,
.starter-essentials-card:focus-visible {
  transform: translateY(-3px);
  border-color: rgba(var(--group-accent-2-rgb, 200, 180, 255), 0.5);
  background: rgba(255, 255, 255, 0.08);
}

.starter-essentials-card .starter-card-art {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 8px;
  display: block;
}

.starter-essentials-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.starter-essentials-meta .starter-card-group {
  font-size: 12px;
  color: var(--muted);
}

.starter-essentials-meta .starter-card-title {
  font-size: 15px;
  font-weight: 800;
  line-height: 1.25;
}

.starter-essentials-meta .starter-card-blurb {
  font-size: 12px;
  color: var(--text);
  line-height: 1.4;
}

.starter-essentials-meta .starter-card-badge {
  align-self: flex-start;
  font-family: "Outfit", "Inter", sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 2px 8px;
  color: var(--muted);
}

@media (max-width: 880px) {
  .starter-essentials-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 480px) {
  .starter-essentials-grid {
    grid-template-columns: 1fr;
  }
}

/* PATHS */
.starter-paths-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  align-items: stretch;
}

.starter-path-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.04);
  color: inherit;
  text-align: left;
  cursor: pointer;
  font: inherit;
  transition: border-color 200ms ease, background 200ms ease, transform 200ms ease;
}

.starter-path-card:hover,
.starter-path-card:focus-visible {
  border-color: rgba(var(--group-accent-2-rgb, 200, 180, 255), 0.5);
  background: rgba(255, 255, 255, 0.08);
  transform: translateY(-2px);
  outline: none;
}

.starter-path-card[aria-pressed="true"] {
  border-color: var(--accent-2);
  background: rgba(255, 255, 255, 0.1);
}

.starter-path-label {
  font-size: 16px;
  font-weight: 800;
}

.starter-path-tagline {
  font-size: 12px;
  color: var(--muted);
}

.starter-path-count {
  font-family: "Outfit", "Inter", sans-serif;
  font-size: 14px;
  font-weight: 800;
  color: var(--accent-2);
}

.starter-path-sample {
  font-size: 11px;
  color: var(--muted);
  letter-spacing: 0.02em;
}

.starter-path-reset {
  align-self: center;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  background: transparent;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 6px 14px;
  color: var(--muted);
  cursor: pointer;
}

@media (max-width: 720px) {
  .starter-paths-grid {
    grid-template-columns: 1fr;
  }
}

/* LIBRARY */
.starter-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin: 14px 0 16px;
}

.starter-toolbar strong {
  font-family: "Outfit", "Inter", sans-serif;
  font-size: 13px;
  font-weight: 800;
  color: var(--muted);
  letter-spacing: 0.02em;
}

.starter-sort-control {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--muted);
}

.starter-sort-control select {
  font: inherit;
  font-size: 13px;
  background: rgba(255, 255, 255, 0.04);
  color: var(--text);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 6px 10px;
}

.starter-library-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
}

.starter-library-item {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.035);
  padding: 6px;
  transition: border-color 200ms ease, background 200ms ease;
}

.starter-library-item:hover {
  border-color: rgba(var(--group-accent-2-rgb, 200, 180, 255), 0.4);
  background: rgba(255, 255, 255, 0.06);
}

.starter-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  color: inherit;
  text-decoration: none;
  min-width: 0;
}

.starter-card-art-wrap {
  position: relative;
  display: block;
  width: 112px;
  aspect-ratio: 16 / 9;
  border-radius: 6px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.05);
}

.starter-card-art-wrap .starter-card-art {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.starter-card-art-fallback {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.02));
}

.starter-card-play {
  position: absolute;
  right: 6px;
  bottom: 6px;
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.35);
  color: #fff;
  text-decoration: none;
  transition: background 180ms ease, transform 180ms ease, border-color 180ms ease;
}

.starter-card-play-icon {
  font-size: 10px;
  line-height: 1;
  padding-left: 1px;
}

.starter-card-play:hover,
.starter-card-play:focus-visible {
  background: #ff0033;
  border-color: rgba(255, 255, 255, 0.7);
  transform: scale(1.08);
  outline: none;
}

.starter-card-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.starter-card-group-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.starter-card-group {
  font-size: 12px;
  color: var(--muted);
  font-weight: 700;
}

.starter-card-rank {
  font-family: "Outfit", "Inter", sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: var(--accent-2);
}

.starter-card-title {
  font-size: 15px;
  font-weight: 800;
  line-height: 1.25;
  color: var(--text);
}

.starter-card-reason {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.starter-card-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.starter-card-badge,
.starter-card-lens,
.starter-card-gen {
  font-family: "Outfit", "Inter", sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 1px 7px;
  color: var(--muted);
}

.starter-card-lens {
  border-color: rgba(var(--group-accent-2-rgb, 200, 180, 255), 0.4);
  color: var(--accent-2);
}

.starter-card-chevron {
  font-size: 20px;
  color: var(--muted);
  padding-right: 4px;
}

@media (max-width: 720px) {
  .starter-library-item {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 8px;
  }
  .starter-card-art-wrap {
    width: 100%;
    aspect-ratio: 16 / 9;
  }
  .starter-card-chevron {
    display: none;
  }
  .starter-card-play {
    width: 32px;
    height: 32px;
    right: 8px;
    bottom: 8px;
  }
  .starter-card-play-icon {
    font-size: 12px;
  }
}

/* FAQ統一: 箱→ヘアライン開示Q&A(.faq-section .faq-list と同形) */
.starter-faq-list {
  margin: 0;
  display: grid;
  gap: 0;
}

.starter-faq-item {
  border: 0;
  border-radius: 0;
  background: none;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}

.starter-faq-item:first-child { padding-top: 4px; }
.starter-faq-item:last-child { border-bottom: 0; }

.starter-faq-item dt {
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.005em;
  line-height: 1.45;
  margin-bottom: 6px;
}

.starter-faq-item dd {
  margin: 0;
  font-size: 13px;
  color: var(--muted);
  line-height: 1.7;
}

.starter-faq-item dd a {
  color: var(--accent-2);
  text-decoration: underline;
}

.starter-faq-next {
  font-size: 13px;
  color: var(--muted);
  margin: 14px 0 0;
}

.starter-faq-next a {
  color: var(--accent-2);
  text-decoration: underline;
  margin: 0 4px;
}

/* ===========================================================================
   DB hub shared grammar (2026-06-01)
   Groups / Members / Starter Songs use the same hero, card, and filter shell.
   =========================================================================== */

body.db-hub-page {
  overflow-x: hidden;
}

body.db-hub-page .app,
body.db-hub-page .page {
  width: min(1200px, 100%);
  max-width: 100%;
  margin-inline: auto;
  box-sizing: border-box;
  overflow-x: clip;
}

body.db-hub-page main {
  max-width: 100%;
  min-width: 0;
  overflow-x: clip;
}

.db-hub-page .hero.hub-hero,
.db-hub-page .starter-hero.hub-hero {
  width: 100%;
  max-width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  align-items: start;
  gap: 28px 36px;
  padding: 4px 0 12px;
  margin-bottom: 28px;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  backdrop-filter: none;
  min-width: 0;
}

.db-hub-page .hero.hub-hero *,
.db-hub-page .starter-hero.hub-hero * {
  min-width: 0;
}

.db-hub-page .starter-hero-text,
.db-hub-page .hub-hero-body {
  display: grid;
  align-content: start;
  gap: 0;
  min-width: 0;
}

.db-hub-page .starter-hero-eyebrow,
.db-hub-page .hub-hero .hero-eyebrow {
  margin: 0 0 14px;
  color: var(--accent-2);
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1;
  text-transform: uppercase;
}

.db-hub-page .starter-hero-title,
.db-hub-page .hub-hero h1 {
  max-width: 18ch;
  margin: 0;
  color: var(--ink);
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 48px;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.1;
  word-break: auto-phrase;
  line-break: strict;
  overflow-wrap: anywhere;
}

.db-hub-page .starter-hero-lede,
.db-hub-page .hub-hero .hero-lede {
  max-width: 54ch;
  margin: 16px 0 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.78;
  word-break: auto-phrase;
  line-break: strict;
  overflow-wrap: anywhere;
}

.db-hub-page .hub-hero-visual,
.db-hub-page .hub-hero-card {
  min-width: 0;
}

.db-hub-page .starter-hero-stats,
.db-hub-page .hub-hero .hero-stats {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  width: 100%;
  margin: 24px 0 0;
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.db-hub-page .starter-hero-stats li,
.db-hub-page .hub-hero .hero-stats li {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  padding: 16px 14px 16px 0;
  margin-left: 18px;
  border-right: 1px solid rgba(255, 255, 255, 0.06);
  background: transparent;
}

.db-hub-page .starter-hero-stats li:first-child,
.db-hub-page .hub-hero .hero-stats li:first-child {
  margin-left: 0;
}

.db-hub-page .starter-hero-stats li:last-child,
.db-hub-page .hub-hero .hero-stats li:last-child {
  border-right: 0;
}

.db-hub-page .starter-hero-stats strong,
.db-hub-page .hub-hero .hero-stats strong {
  color: var(--ink);
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 28px;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  line-height: 1;
}

.db-hub-page .starter-hero-stats span,
.db-hub-page .hub-hero .hero-stats span {
  color: var(--muted);
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.35;
  text-transform: uppercase;
}

.db-hub-page .home-intent-rail {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 9px;
  margin-top: 20px;
}

.db-hub-page .home-intent-rail a {
  min-width: 0;
  min-height: 68px;
  display: grid;
  align-content: center;
  gap: 4px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  padding: 11px 14px;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.025);
  text-decoration: none;
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.db-hub-page .home-intent-rail a:hover,
.db-hub-page .home-intent-rail a:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(18, 214, 203, 0.4);
  background: rgba(18, 214, 203, 0.06);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.24);
  outline: none;
}

.db-hub-page .home-intent-rail a.is-primary {
  border-color: rgba(212, 20, 101, 0.55);
  background:
    linear-gradient(135deg, rgba(212, 20, 101, 0.22) 0%, rgba(18, 214, 203, 0.08) 100%),
    rgba(8, 12, 18, 0.92);
  box-shadow: 0 18px 40px rgba(212, 20, 101, 0.22);
}

.db-hub-page .home-intent-rail strong {
  font-size: 13.5px;
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1.22;
  overflow-wrap: anywhere;
}

.db-hub-page .home-intent-rail a.is-primary strong {
  font-size: 15.5px;
}

.db-hub-page .home-intent-rail span {
  color: var(--muted);
  font-size: 11px;
  letter-spacing: 0;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.db-hub-page .home-intent-rail a.is-primary span {
  color: rgba(255, 255, 255, 0.82);
  font-size: 12px;
}

.db-hub-page .starter-hero-spotlight-link,
.db-hub-page .starter-essentials-card,
.db-hub-page .starter-path-card,
.db-hub-page .starter-library-item,
.db-hub-page .home-card,
.db-hub-page .card {
  border-color: rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.035);
}

.db-hub-page .starter-hero-spotlight-link,
.db-hub-page .starter-essentials-card,
.db-hub-page .starter-path-card,
.db-hub-page .starter-library-item {
  box-shadow: none;
}

.db-hub-page .starter-hero-spotlight-link .starter-card-art,
.db-hub-page .starter-essentials-card .starter-card-art,
.db-hub-page .starter-card-art-wrap {
  border-radius: 8px;
}

.db-hub-page .filters,
.db-hub-page .index-dashboard-filters {
  gap: 10px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  background: rgba(13, 16, 31, 0.68);
  padding: 14px;
  margin-bottom: 18px;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.22);
  backdrop-filter: blur(22px) saturate(145%);
}

.db-hub-page .filters input,
.db-hub-page .filters select,
.db-hub-page .index-dashboard-filters input,
.db-hub-page .index-dashboard-filters select,
.db-hub-page .starter-sort-control select {
  min-height: 44px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.08);
  color: var(--ink);
  padding: 10px 12px;
}

.db-hub-page .filters .filter-search > input {
  min-height: 48px;
  border-radius: 10px;
}

.db-hub-page .filters .filter-advanced,
.db-hub-page .index-dashboard-filters .filter-advanced {
  border-color: rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
}

.db-hub-page .starter-section-head {
  margin-bottom: 18px;
}

.db-hub-page .starter-section-head .section-eyebrow,
.db-hub-page .section-eyebrow {
  letter-spacing: 0;
}

@media (max-width: 920px) {
  .db-hub-page .hero.hub-hero,
  .db-hub-page .starter-hero.hub-hero {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 4px 0 10px;
  }

  .db-hub-page .starter-hero-title,
  .db-hub-page .hub-hero h1 {
    font-size: 36px;
  }
}

@media (max-width: 620px) {
  body.db-hub-page .app,
  body.db-hub-page .page {
    padding-inline: 14px;
  }

  .db-hub-page .hero.hub-hero,
  .db-hub-page .starter-hero.hub-hero {
    overflow: hidden;
  }

  .db-hub-page .starter-hero-title,
  .db-hub-page .hub-hero h1 {
    max-width: 100%;
    font-size: clamp(31px, 9.2vw, 36px);
    overflow-wrap: anywhere;
  }

  .db-hub-page .starter-hero-lede,
  .db-hub-page .hub-hero .hero-lede {
    max-width: 100%;
    font-size: 14px;
    line-height: 1.72;
  }

  .db-hub-page .starter-hero-stats,
  .db-hub-page .hub-hero .hero-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .db-hub-page .starter-hero-stats li:nth-child(2),
  .db-hub-page .hub-hero .hero-stats li:nth-child(2) {
    border-right: 0;
  }

  .db-hub-page .starter-hero-stats li:nth-child(-n+2),
  .db-hub-page .hub-hero .hero-stats li:nth-child(-n+2) {
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  }

  .db-hub-page .starter-hero-stats strong,
  .db-hub-page .hub-hero .hero-stats strong {
    font-size: 22px;
  }

  .db-hub-page .home-intent-rail {
    grid-template-columns: 1fr;
  }

  .db-hub-page .hub-hero-visual {
    max-width: 100%;
    overflow: hidden;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: minmax(112px, 1fr);
  }

  .db-hub-page .hub-hero-card.is-spotlight {
    grid-column: span 2;
    grid-row: span 1;
    min-height: 180px;
  }
}

/* ─────────────────────────────────────────────────────────
   Guide pages — world-class lift (2026-05-30)
   docs/design_language.md §4.1 / Decision Register 2026-05-30
   5/29 calendar chrome-stripped 言語をガイド読み物用に翻訳。
   - .surface カードは廃止し border-top + 余白で section 分節
   - hero に eyebrow + meta chips（読了時間 / 最終更新 / カバー）
   - TL;DR Key Points / sticky TOC / answer-lead / callout を標準化
   - prose 全体に word-break: auto-phrase + line-break: strict
   ───────────────────────────────────────────────────────── */

.guide-page .page {
  max-width: 1180px;
  padding: 24px 22px 48px;
}

.guide-page main {
  min-width: 0;
}

.guide-page .breadcrumb {
  margin: 8px 0 18px;
  font-size: 13px;
  color: var(--muted);
}

.guide-page .breadcrumb a {
  color: var(--muted);
  text-decoration: none;
  border-bottom: 1px dotted rgba(255,255,255,.18);
  transition: color 180ms ease, border-color 180ms ease;
}

.guide-page .breadcrumb a:hover,
.guide-page .breadcrumb a:focus-visible {
  color: var(--ink);
  border-color: var(--accent-2);
}

.guide-page .breadcrumb .bc-sep {
  margin: 0 8px;
  color: rgba(255,255,255,.32);
}

.guide-page .breadcrumb .bc-current {
  color: var(--ink);
}

/* ── Hero ──────────────────────────────────────────────── */
.guide-hero {
  padding: 28px 0 26px;
  border-top: 1px solid rgba(255,255,255,.07);
  border-bottom: 1px solid rgba(255,255,255,.06);
  background: none;
  box-shadow: none;
  backdrop-filter: none;
  border-radius: 0;
  margin: 0 0 28px;
}

.guide-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  color: var(--accent-2);
  text-transform: uppercase;
  margin: 0 0 14px;
}

.guide-hero h1 {
  margin: 0 0 14px;
  font-size: clamp(28px, 3.4vw, 44px);
  line-height: 1.18;
  font-weight: 900;
  color: var(--ink);
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  text-wrap: balance;
  word-break: keep-all;
  overflow-wrap: normal;
  line-break: strict;
  letter-spacing: -0.01em;
}

.guide-hero-lede {
  margin: 0 0 18px;
  max-width: 62ch;
  font-size: 16px;
  line-height: 1.72;
  color: var(--muted);
  word-break: auto-phrase;
  line-break: strict;
}

.guide-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

.guide-hero-meta li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 11px;
  font-size: 12px;
  font-weight: 600;
  color: var(--soft);
  background: rgba(255,255,255,.045);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 100px;
}

.guide-hero-meta li strong {
  color: var(--ink);
  font-weight: 700;
}

.guide-hero-meta li svg {
  width: 12px;
  height: 12px;
  opacity: 0.7;
}

.guide-hero-meta li[data-flag="new"],
.guide-hero-meta li[data-flag="updated"] {
  background: rgba(18, 214, 203, 0.10);
  border-color: rgba(18, 214, 203, 0.32);
  color: var(--accent-2);
}

.guide-hero-meta li[data-flag="new"] strong,
.guide-hero-meta li[data-flag="updated"] strong {
  color: var(--accent-2);
}

/* ── Key Points (TL;DR) ────────────────────────────────── */
.guide-keypoints {
  margin: 0 0 32px;
  padding: 22px 24px;
  background: linear-gradient(135deg, rgba(18, 214, 203, 0.045), rgba(18, 214, 203, 0.015));
  border: 1px solid rgba(18, 214, 203, 0.22);
  border-left: 3px solid var(--accent-2);
  border-radius: 6px;
}

.guide-keypoints-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  color: var(--accent-2);
  text-transform: uppercase;
  margin: 0 0 12px;
}

.guide-keypoints ul {
  margin: 0;
  padding: 0 0 0 1.1em;
  list-style: none;
}

.guide-keypoints li {
  position: relative;
  margin: 0 0 8px;
  padding-left: 22px;
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--ink);
  word-break: auto-phrase;
  line-break: strict;
}

.guide-keypoints li::before {
  content: "→";
  position: absolute;
  left: 0;
  top: 1px;
  color: var(--accent-2);
  font-weight: 700;
  font-family: "Outfit", system-ui, sans-serif;
}

.guide-keypoints li:last-child {
  margin-bottom: 0;
}

.guide-keypoints li strong {
  color: var(--ink);
  font-weight: 700;
}

/* ── Layout: main + sticky aside ───────────────────────── */
.guide-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 40px;
  align-items: start;
}

.guide-layout > main {
  min-width: 0;
}

.guide-layout > aside {
  position: sticky;
  top: calc(var(--chrome-header-height, 64px) + 18px);
  align-self: start;
  max-height: calc(100vh - var(--chrome-header-height, 64px) - 36px);
  overflow-y: auto;
  padding-right: 4px;
}

.guide-layout > aside::-webkit-scrollbar {
  width: 6px;
}

.guide-layout > aside::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,.12);
  border-radius: 3px;
}

@media (max-width: 980px) {
  .guide-layout {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .guide-layout > aside {
    position: static;
    max-height: none;
  }
}

/* ── Sticky TOC ───────────────────────────────────────── */
.guide-toc {
  font-size: 13px;
  border-left: 1px solid rgba(255,255,255,.08);
  padding: 4px 0 4px 16px;
}

.guide-toc-eyebrow {
  display: block;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.18em;
  color: var(--muted);
  text-transform: uppercase;
  margin: 0 0 12px;
}

.guide-toc-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.guide-toc-list li {
  margin: 0;
}

.guide-toc-list a {
  display: block;
  padding: 7px 10px 7px 12px;
  color: var(--muted);
  text-decoration: none;
  border-left: 2px solid transparent;
  margin-left: -13px;
  line-height: 1.4;
  word-break: auto-phrase;
  line-break: strict;
  transition: color 180ms ease, border-color 180ms ease, background 180ms ease;
}

.guide-toc-list a:hover,
.guide-toc-list a:focus-visible {
  color: var(--ink);
  border-color: rgba(18, 214, 203, 0.4);
  background: rgba(255,255,255,.025);
}

.guide-toc-list a[aria-current="true"] {
  color: var(--accent-2);
  border-color: var(--accent-2);
  background: rgba(18, 214, 203, 0.045);
}

.guide-toc-aside {
  margin-top: 24px;
  padding: 14px 16px;
  background: rgba(255,255,255,.025);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 6px;
  font-size: 12.5px;
  line-height: 1.65;
}

.guide-toc-aside-title {
  display: block;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 8px;
}

.guide-toc-aside ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.guide-toc-aside li {
  margin: 0 0 6px;
}

.guide-toc-aside a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--soft);
  text-decoration: none;
  border-bottom: 1px dotted rgba(255,255,255,.18);
  transition: color 180ms ease, border-color 180ms ease;
}

.guide-toc-aside a:hover,
.guide-toc-aside a:focus-visible {
  color: var(--accent-2);
  border-color: var(--accent-2);
}

/* ── Guide section (replaces .surface for guides) ─────── */
.guide-section {
  margin: 0;
  padding: 32px 0 28px;
  border-top: 1px solid rgba(255,255,255,.07);
  scroll-margin-top: calc(var(--chrome-header-height, 64px) + 20px);
}

.guide-section:first-of-type {
  border-top: 0;
  padding-top: 8px;
}

.guide-section-eyebrow {
  display: block;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  color: var(--muted);
  text-transform: uppercase;
  margin: 0 0 10px;
}

.guide-section > h2 {
  margin: 0 0 14px;
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.28;
  font-weight: 800;
  color: var(--ink);
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  text-wrap: balance;
  word-break: auto-phrase;
  line-break: strict;
}

.guide-section > h3 {
  margin: 24px 0 10px;
  font-size: 18px;
  line-height: 1.36;
  font-weight: 700;
  color: var(--ink);
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  word-break: auto-phrase;
  line-break: strict;
}

.guide-answer-lead {
  margin: 0 0 18px;
  padding: 12px 16px;
  font-size: 15px;
  line-height: 1.65;
  color: var(--ink);
  background: rgba(255,255,255,.035);
  border-left: 3px solid var(--accent-2);
  border-radius: 0 4px 4px 0;
  font-weight: 500;
  word-break: auto-phrase;
  line-break: strict;
}

.guide-section p {
  margin: 0 0 16px;
  max-width: 72ch;
  font-size: 15px;
  line-height: 1.78;
  color: var(--muted);
  word-break: auto-phrase;
  line-break: strict;
}

.guide-section p strong {
  color: var(--ink);
  font-weight: 700;
}

.guide-section p a,
.guide-section li a {
  color: var(--ink);
  text-decoration: underline;
  text-decoration-color: rgba(18, 214, 203, 0.4);
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: color 180ms ease, text-decoration-color 180ms ease;
}

.guide-section p a:hover,
.guide-section li a:hover {
  color: var(--accent-2);
  text-decoration-color: var(--accent-2);
}

.guide-section ul,
.guide-section ol {
  margin: 0 0 18px;
  padding-left: 1.4em;
  max-width: 72ch;
}

.guide-section li {
  margin: 0 0 6px;
  font-size: 15px;
  line-height: 1.72;
  color: var(--muted);
  word-break: auto-phrase;
  line-break: strict;
}

.guide-section li strong {
  color: var(--ink);
}

/* ── Cards within guide sections (replaces .surface .card-list) ── */
.guide-cardgrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
  margin: 0 0 18px;
}

.guide-cardgrid > article,
.guide-cardgrid > a {
  display: block;
  padding: 16px 18px;
  background: rgba(255,255,255,.025);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 6px;
  color: inherit;
  text-decoration: none;
  transition: border-color 180ms ease, background 180ms ease, transform 180ms ease;
}

.guide-cardgrid > a:hover,
.guide-cardgrid > a:focus-visible {
  border-color: rgba(18, 214, 203, 0.32);
  background: rgba(18, 214, 203, 0.045);
  transform: translateY(-1px);
}

.guide-cardgrid > article strong,
.guide-cardgrid > a strong {
  display: block;
  margin-bottom: 6px;
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  word-break: auto-phrase;
  line-break: strict;
}

.guide-cardgrid > article p,
.guide-cardgrid > a p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.65;
  color: var(--muted);
  word-break: auto-phrase;
  line-break: strict;
}

/* ── Callouts ─────────────────────────────────────────── */
.guide-callout {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 12px;
  align-items: start;
  margin: 0 0 22px;
  padding: 14px 18px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 6px;
  font-size: 14px;
  line-height: 1.65;
  color: var(--ink);
  word-break: auto-phrase;
  line-break: strict;
}

.guide-callout-icon {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  font-size: 15px;
  border-radius: 50%;
  flex-shrink: 0;
}

.guide-callout p {
  margin: 0;
  max-width: none;
  font-size: 14px;
  line-height: 1.65;
  color: var(--ink);
}

.guide-callout p + p {
  margin-top: 6px;
}

.guide-callout strong {
  color: var(--ink);
  font-weight: 700;
}

.guide-callout[data-tone="tip"] {
  background: rgba(18, 214, 203, 0.05);
  border-color: rgba(18, 214, 203, 0.28);
}

.guide-callout[data-tone="tip"] .guide-callout-icon {
  background: rgba(18, 214, 203, 0.16);
  color: var(--accent-2);
}

.guide-callout[data-tone="warn"] {
  background: rgba(255, 209, 102, 0.05);
  border-color: rgba(255, 209, 102, 0.28);
}

.guide-callout[data-tone="warn"] .guide-callout-icon {
  background: rgba(255, 209, 102, 0.18);
  color: #ffd166;
}

.guide-callout[data-tone="data"] {
  background: rgba(124, 92, 255, 0.05);
  border-color: rgba(124, 92, 255, 0.28);
}

.guide-callout[data-tone="data"] .guide-callout-icon {
  background: rgba(124, 92, 255, 0.18);
  color: #b59cff;
}

.guide-callout[data-tone="pick"] {
  background: rgba(212, 20, 101, 0.05);
  border-color: rgba(212, 20, 101, 0.30);
}

.guide-callout[data-tone="pick"] .guide-callout-icon {
  background: rgba(212, 20, 101, 0.18);
  color: var(--accent);
}

/* ── Tables (説明用、ソート不要例外を明示) ─────────────── */
.guide-section .table-wrap {
  margin: 0 0 22px;
  overflow-x: auto;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 6px;
}

.guide-section table {
  width: 100%;
  min-width: 560px;
  border-collapse: collapse;
  font-size: 14px;
}

.guide-section table th,
.guide-section table td {
  padding: 11px 14px;
  text-align: left;
  border-bottom: 1px solid rgba(255,255,255,.06);
  word-break: auto-phrase;
  line-break: strict;
  vertical-align: top;
  line-height: 1.6;
}

.guide-section table th {
  background: rgba(255,255,255,.035);
  font-size: 12.5px;
  font-weight: 700;
  color: var(--ink);
  text-transform: none;
  letter-spacing: 0;
  position: sticky;
  top: 0;
}

.guide-section table tr:last-child td {
  border-bottom: 0;
}

.guide-section table td {
  color: var(--muted);
}

.guide-section table td strong {
  color: var(--ink);
}

.guide-table-note {
  margin: -10px 0 22px;
  font-size: 12px;
  color: rgba(255,255,255,.45);
  font-style: italic;
}

/* ── Figure / image ───────────────────────────────────── */
.guide-figure {
  margin: 0 0 22px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 6px;
  overflow: hidden;
  background: rgba(255,255,255,.02);
}

.guide-figure img {
  display: block;
  width: 100%;
  height: auto;
}

.guide-figure figcaption {
  padding: 8px 14px;
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--muted);
  border-top: 1px solid rgba(255,255,255,.06);
  background: rgba(255,255,255,.025);
}

/* グループ言及で公式MVサムネを並べる ── */
.guide-thumb-strip {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 10px;
  margin: 0 0 22px;
}

.guide-thumb-strip a {
  display: block;
  position: relative;
  aspect-ratio: 16 / 9;
  border-radius: 4px;
  overflow: hidden;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  text-decoration: none;
  transition: transform 180ms ease, border-color 180ms ease;
}

.guide-thumb-strip a:hover,
.guide-thumb-strip a:focus-visible {
  border-color: rgba(18, 214, 203, 0.4);
  transform: translateY(-2px);
}

.guide-thumb-strip img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.guide-thumb-strip-name {
  position: absolute;
  inset: auto 0 0 0;
  padding: 6px 8px;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.82));
  text-shadow: 0 1px 2px rgba(0,0,0,.6);
}

/* ── 出典 / Source citation ───────────────────────────── */
.guide-sources {
  margin: 12px 0 22px;
  padding: 10px 14px;
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--muted);
  background: rgba(255,255,255,.018);
  border: 1px dashed rgba(255,255,255,.10);
  border-radius: 4px;
}

.guide-sources-label {
  font-family: "Outfit", system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: rgba(255,255,255,.55);
  text-transform: uppercase;
  margin-right: 6px;
}

.guide-sources a {
  color: var(--soft);
  text-decoration: underline;
  text-decoration-color: rgba(255,255,255,.22);
  margin-right: 10px;
}

.guide-sources a:hover,
.guide-sources a:focus-visible {
  color: var(--accent-2);
  text-decoration-color: var(--accent-2);
}

/* ── Related articles (next-to-read) ──────────────────── */
.guide-related {
  margin: 32px 0 24px;
  padding: 24px 0 0;
  border-top: 1px solid rgba(255,255,255,.07);
}

.guide-related-eyebrow {
  display: block;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  color: var(--muted);
  text-transform: uppercase;
  margin: 0 0 6px;
}

.guide-related h2 {
  margin: 0 0 18px;
  font-size: 22px;
  font-weight: 800;
  color: var(--ink);
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
}

.guide-related-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
}

.guide-related-card {
  display: block;
  padding: 16px 18px;
  background: rgba(255,255,255,.025);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 6px;
  color: inherit;
  text-decoration: none;
  transition: border-color 180ms ease, background 180ms ease, transform 180ms ease;
}

.guide-related-card:hover,
.guide-related-card:focus-visible {
  border-color: rgba(18, 214, 203, 0.32);
  background: rgba(18, 214, 203, 0.045);
  transform: translateY(-1px);
}

.guide-related-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
  font-family: "Outfit", system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.guide-related-card-meta span {
  color: var(--muted);
}

.guide-related-card-meta span.cat {
  color: var(--accent-2);
}

.guide-related-card-title {
  display: block;
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.36;
  word-break: auto-phrase;
  line-break: strict;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
}

.guide-related-card-desc {
  margin: 0;
  font-size: 13px;
  line-height: 1.6;
  color: var(--muted);
  word-break: auto-phrase;
  line-break: strict;
}

/* ── In-article CTA / authority block (位置修正後の正規表示) ── */
.guide-page .guide-authority-section {
  margin: 24px 0 0;
  padding: 24px 0 0;
  border-top: 1px solid rgba(255,255,255,.07);
}

.guide-page .guide-authority-section h2 {
  margin: 0 0 14px;
  font-size: 18px;
  font-weight: 800;
  color: var(--ink);
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
}

.guide-page .guide-authority-section .card-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}

.guide-page .guide-authority-section .card {
  display: block;
  padding: 14px 16px;
  background: rgba(255,255,255,.025);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 6px;
  text-decoration: none;
  color: inherit;
  transition: border-color 180ms ease, background 180ms ease;
}

.guide-page .guide-authority-section .card:hover {
  border-color: rgba(18, 214, 203, 0.32);
  background: rgba(18, 214, 203, 0.045);
}

.guide-page .guide-authority-section .card strong {
  display: block;
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
}

.guide-page .guide-authority-section .card p {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--muted);
}

/* ── FAQ section (guide page scope) ───────────────────── */
.guide-faq {
  margin: 24px 0 0;
  padding: 24px 0 0;
  border-top: 1px solid rgba(255,255,255,.07);
}

.guide-faq-eyebrow {
  display: block;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  color: var(--muted);
  text-transform: uppercase;
  margin: 0 0 6px;
}

.guide-faq h2 {
  margin: 0 0 16px;
  font-size: 22px;
  font-weight: 800;
  color: var(--ink);
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
}

.guide-faq dl {
  margin: 0;
}

.guide-faq dl > div {
  padding: 14px 0;
  border-top: 1px solid rgba(255,255,255,.06);
}

.guide-faq dl > div:first-child {
  border-top: 0;
  padding-top: 0;
}

.guide-faq dt {
  margin: 0 0 8px;
  font-size: 15px;
  font-weight: 800;
  color: var(--ink);
  letter-spacing: -0.005em;
  line-height: 1.45;
  word-break: auto-phrase;
  line-break: strict;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
}

.guide-faq dd {
  margin: 0;
  font-size: 13px;
  line-height: 1.7;
  color: var(--muted);
  word-break: auto-phrase;
  line-break: strict;
  max-width: 72ch;
}

/* ── Glossary / DefinedTermSet table (kpop-beginner用) ── */
.guide-glossary-list {
  margin: 0 0 22px;
}

.guide-glossary-list > details {
  border-top: 1px solid rgba(255,255,255,.06);
  padding: 12px 0;
}

.guide-glossary-list > details:first-child {
  border-top: 0;
}

.guide-glossary-list > details > summary {
  cursor: pointer;
  list-style: none;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  gap: 10px;
  font-size: 14.5px;
  color: var(--ink);
  font-weight: 700;
}

.guide-glossary-list > details > summary::-webkit-details-marker {
  display: none;
}

.guide-glossary-list > details > summary::after {
  content: "+";
  color: var(--muted);
  font-family: "Outfit", system-ui, sans-serif;
  font-size: 18px;
  font-weight: 700;
  transition: transform 200ms ease;
}

.guide-glossary-list > details[open] > summary::after {
  content: "−";
}

.guide-glossary-list > details > p {
  margin: 8px 0 0;
  font-size: 14px;
  line-height: 1.72;
  color: var(--muted);
  max-width: 72ch;
  word-break: auto-phrase;
  line-break: strict;
}

.guide-glossary-term-meta {
  font-size: 12px;
  color: rgba(255,255,255,.4);
  font-weight: 500;
  margin-left: 8px;
}

/* ── Guides index — 4 tiers ───────────────────────────── */
.guides-index-page .page {
  max-width: 1180px;
  padding: 24px 22px 48px;
}

.guides-index-hero {
  padding: 28px 0 22px;
  margin: 0 0 32px;
  border-bottom: 1px solid rgba(255,255,255,.06);
}

.guides-index-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  color: var(--accent-2);
  text-transform: uppercase;
  margin: 0 0 14px;
}

.guides-index-hero h1 {
  margin: 0 0 14px;
  font-size: clamp(32px, 4vw, 52px);
  line-height: 1.16;
  font-weight: 950;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  color: var(--ink);
  text-wrap: balance;
  word-break: auto-phrase;
  line-break: strict;
  letter-spacing: -0.01em;
}

.guides-index-hero-lede {
  margin: 0 0 18px;
  max-width: 62ch;
  font-size: 16px;
  line-height: 1.72;
  color: var(--muted);
  word-break: auto-phrase;
  line-break: strict;
}

.guides-index-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.guides-index-hero-meta li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 11px;
  font-size: 12px;
  font-weight: 600;
  color: var(--soft);
  background: rgba(255,255,255,.045);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 100px;
}

.guides-index-hero-meta li strong {
  color: var(--ink);
  font-weight: 700;
}

.guides-index-tier {
  margin: 0 0 36px;
  padding: 28px 0 4px;
  border-top: 1px solid rgba(255,255,255,.07);
}

.guides-index-tier:first-of-type {
  border-top: 0;
  padding-top: 0;
}

.guides-index-tier-eyebrow {
  display: block;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  color: var(--accent-2);
  text-transform: uppercase;
  margin: 0 0 8px;
}

.guides-index-tier-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin: 0 0 18px;
}

.guides-index-tier-title h2 {
  margin: 0;
  font-size: clamp(20px, 2.4vw, 28px);
  font-weight: 800;
  color: var(--ink);
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
}

.guides-index-tier-title p {
  margin: 0;
  font-size: 13.5px;
  color: var(--muted);
  max-width: 52ch;
  word-break: auto-phrase;
  line-break: strict;
}

.guides-index-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 14px;
}

.guides-index-grid.is-flagship {
  grid-template-columns: 1fr;
}

.guides-index-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 18px 20px;
  background: rgba(255,255,255,.025);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 6px;
  color: inherit;
  text-decoration: none;
  transition: border-color 180ms ease, background 180ms ease, transform 180ms ease;
}

.guides-index-card:hover,
.guides-index-card:focus-visible {
  border-color: rgba(18, 214, 203, 0.32);
  background: rgba(18, 214, 203, 0.045);
  transform: translateY(-2px);
}

.guides-index-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  font-family: "Outfit", system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.guides-index-card-meta .cat {
  color: var(--accent-2);
}

.guides-index-card-meta .time,
.guides-index-card-meta .level {
  color: var(--muted);
}

.guides-index-card-flag {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  border-radius: 100px;
  background: rgba(18, 214, 203, 0.16);
  color: var(--accent-2);
  border: 1px solid rgba(18, 214, 203, 0.32);
}

.guides-index-card h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 800;
  color: var(--ink);
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  line-height: 1.32;
  word-break: auto-phrase;
  line-break: strict;
}

.guides-index-card p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.65;
  color: var(--muted);
  word-break: auto-phrase;
  line-break: strict;
}

.guides-index-card-keypoints {
  margin: 4px 0 0;
  padding: 0;
  list-style: none;
}

.guides-index-card-keypoints li {
  position: relative;
  padding-left: 16px;
  margin-bottom: 5px;
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--muted);
}

.guides-index-card-keypoints li::before {
  content: "→";
  position: absolute;
  left: 0;
  color: var(--accent-2);
  font-weight: 700;
}

.guides-index-card.is-flagship {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  padding: 24px 26px;
  background: linear-gradient(135deg, rgba(212, 20, 101, 0.08), rgba(18, 214, 203, 0.05));
  border-color: rgba(212, 20, 101, 0.32);
}

.guides-index-card.is-flagship h3 {
  font-size: clamp(22px, 2.6vw, 28px);
}

.guides-index-card.is-flagship p {
  max-width: 62ch;
  font-size: 14.5px;
}

.guides-index-card.is-flagship .guides-index-card-keypoints {
  margin-top: 4px;
}

.guides-index-card.is-flagship:hover {
  background: linear-gradient(135deg, rgba(212, 20, 101, 0.12), rgba(18, 214, 203, 0.08));
}

/* ── Mobile sticky TOC button (floating) ──────────────── */
.guide-mobile-toc {
  display: none;
}

@media (max-width: 980px) {
  .guide-mobile-toc {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    position: fixed;
    bottom: 18px;
    right: 18px;
    z-index: 60;
    padding: 10px 14px;
    background: rgba(15, 18, 30, 0.92);
    backdrop-filter: blur(14px);
    border: 1px solid rgba(18, 214, 203, 0.4);
    border-radius: 100px;
    color: var(--accent-2);
    font-family: "Outfit", system-ui, sans-serif;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: 0 14px 32px rgba(0,0,0,0.32);
  }
  .guide-mobile-toc[aria-expanded="true"] {
    background: var(--accent-2);
    color: #000;
  }
}

/* ── Reading progress bar (top of viewport) ───────────── */
.guide-reading-progress {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  z-index: 80;
  pointer-events: none;
  background: transparent;
}

.guide-reading-progress > span {
  display: block;
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  transition: width 80ms linear;
}

/* ============================================================
 * 2026-05-30 World-class refresh:
 *   - hero MV embed + hero CTA cluster
 *   - horizontal route-steps timeline
 *   - bento member grid
 *   - editorial note section
 * ============================================================ */

/* Hero MV embed (replaces flat OG image) ------------------- */
.group-hero-with-video .group-hero-visual-video {
  aspect-ratio: 16 / 9;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 12px;
  overflow: hidden;
  box-shadow:
    0 28px 60px rgba(0,0,0,.42),
    0 0 38px rgba(var(--group-accent-rgb), .18);
  position: relative;
}

.group-hero-visual-video .lite-youtube {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
  background: #000;
}

.group-hero-visual-video img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Hero MV play overlay: glassmorphic, refined, Apple/Vimeo 寄り --------- */
/* 中央配置はサムネ主役を隠すため、メンバーページ（member-hero-visual）と同じ右下へ寄せる。 */
.group-hero-visual-video .lite-youtube-play {
  position: absolute;
  inset: auto 12px 12px auto;
  width: 48px;
  height: 48px;
  transform: none;
  border-radius: 999px;
  background: rgba(12, 16, 30, .42);
  backdrop-filter: blur(6px) saturate(125%);
  -webkit-backdrop-filter: blur(6px) saturate(125%);
  border: 1px solid rgba(255, 255, 255, .6);
  box-shadow: 0 6px 20px rgba(0, 0, 0, .4);
  transition: transform 220ms cubic-bezier(.2, .8, .2, 1),
              background 220ms ease,
              border-color 220ms ease,
              box-shadow 220ms ease;
}

/* ヒーローだけは丸型なので、三角も中央基準へ戻す。 */
.group-hero-visual-video .lite-youtube-play::before {
  left: 50%;
  top: 50%;
  border-left-width: 15px;
  border-top-width: 9px;
  border-bottom-width: 9px;
  transform: translate(-36%, -50%);
}

.group-hero-visual-video .lite-youtube:hover .lite-youtube-play,
.group-hero-visual-video .lite-youtube:focus-visible .lite-youtube-play {
  transform: scale(1.06);
  background: linear-gradient(135deg, rgba(var(--group-accent-rgb), .95), rgba(var(--group-accent-2-rgb), .82));
  border-color: rgba(255, 255, 255, .9);
  box-shadow:
    0 12px 30px rgba(0, 0, 0, .44),
    0 0 0 5px rgba(var(--group-accent-rgb), .2);
}

.hero-video-caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 14px 16px;
  font-size: .82rem;
  color: #fff;
  letter-spacing: .04em;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.62));
  pointer-events: none;
  text-shadow: 0 1px 6px rgba(0,0,0,.6);
}

/* Hero CTA cluster (replaces intent-cta-nav) --------------- */
.hero-actions-group {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
  align-items: center;
}

.hero-actions-group .button-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding-inline: 16px;
  font-weight: 700;
  letter-spacing: .02em;
}

.hero-actions-group .hero-cta-primary {
  background: linear-gradient(135deg,
    rgba(var(--group-accent-rgb), .92),
    rgba(var(--group-accent-2-rgb), .82));
  color: #fff;
  border-color: rgba(255,255,255,.22);
  box-shadow:
    0 10px 24px rgba(var(--group-accent-rgb), .34),
    0 0 0 1px rgba(255,255,255,.12) inset;
}

.hero-actions-group .hero-cta-primary:hover,
.hero-actions-group .hero-cta-primary:focus-visible {
  transform: translateY(-1px);
  box-shadow:
    0 14px 30px rgba(var(--group-accent-rgb), .42),
    0 0 0 1px rgba(255,255,255,.16) inset;
}

.hero-actions-group .hero-cta {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.18);
}

.kpf-pick-toggle {
  cursor: pointer;
}

.kpf-pick-toggle.is-picked {
  background: rgba(212, 20, 101, .18);
  border-color: rgba(212, 20, 101, .58);
  color: #fff;
}

.kpf-pick-toggle.is-picked .hero-cta-icon svg {
  fill: rgba(212, 20, 101, .92);
  stroke: rgba(255, 255, 255, .92);
}

.member-wc2 .kpf-pick-toggle {
  min-height: 44px;
}

/* 未発売作チップ: 最新作CTAより一段控えめ（発売予定テロップ） */
.hero-actions-group .hero-cta-upcoming {
  background: rgba(255,255,255,.035);
  border-style: dashed;
  border-color: rgba(255,255,255,.26);
}

/* 近接×confirmed の予約はグループカラーで強調 */
.hero-actions-group .hero-cta-upcoming-near {
  background: rgba(var(--group-accent-rgb), .16);
  border-style: solid;
  border-color: rgba(var(--group-accent-rgb), .55);
}

.hero-actions-group .hero-cta-countdown {
  margin-left: .15em;
  opacity: .82;
  font-variant-numeric: tabular-nums;
}

/* Editorial note section ---------------------------------- */
.editorial-note {
  position: relative;
  border-left: 3px solid rgba(var(--group-accent-rgb), .82);
}

.editorial-note .editorial-body {
  font-size: 1.02rem;
  line-height: 1.78;
  letter-spacing: .01em;
  color: var(--text);
}

.editorial-note .editorial-body p {
  margin: 0 0 .9em;
}

.editorial-note .editorial-body p:last-child {
  margin-bottom: 0;
}

.editorial-note .editorial-body p + p {
  text-indent: 0;
}

.editorial-note .editorial-body p:first-of-type::first-letter {
  font-size: 2.4em;
  font-weight: 800;
  line-height: 1;
  float: left;
  margin: 4px 10px 0 0;
  color: rgba(var(--group-accent-rgb), .92);
  text-shadow: 0 2px 12px rgba(var(--group-accent-rgb), .22);
}

.editorial-verdict {
  margin-top: 18px;
  padding: 14px 18px;
  border: 1px solid rgba(var(--group-accent-rgb), .42);
  border-radius: 10px;
  background:
    linear-gradient(135deg,
      rgba(var(--group-accent-rgb), .12),
      rgba(var(--group-accent-2-rgb), .06));
  display: flex;
  align-items: baseline;
  gap: 14px;
  flex-wrap: wrap;
}

.editorial-verdict-label {
  font-size: .76rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--soft);
}

.editorial-verdict strong {
  font-size: 1.1rem;
  letter-spacing: .01em;
}

.editorial-byline {
  margin-top: 14px;
  color: var(--soft);
}

/* Horizontal route-steps timeline ------------------------ */
.route-steps-horizontal {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 6px 4px 18px;
  margin: 0 -4px;
  scrollbar-width: thin;
}

.route-steps-horizontal::before {
  display: none;
}

.route-steps-horizontal .route-step {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  flex: 0 0 280px;
  scroll-snap-align: start;
  padding: 0;
  position: relative;
}

.route-steps-horizontal .route-step-marker {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 2;
}

.route-steps-horizontal .route-number {
  width: 32px;
  height: 32px;
  font-size: .9rem;
  box-shadow:
    0 4px 14px rgba(0,0,0,.4),
    0 0 0 2px rgba(0,0,0,.4);
}

.route-steps-horizontal .route-step-body {
  display: flex;
  flex-direction: column;
  grid-template-columns: none;
  padding: 0;
  gap: 0;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 12px;
  overflow: hidden;
  height: 100%;
}

.route-steps-horizontal .route-step-body h3 {
  font-size: 1rem;
  padding: 10px 14px 2px;
  margin: 0;
}

.route-steps-horizontal .route-step-body > p {
  padding: 0 14px 12px;
  font-size: .85rem;
  margin: 0;
  flex-grow: 1;
}

.route-steps-horizontal .route-meta {
  padding: 10px 14px 0;
  margin: 0;
  font-size: .76rem;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.route-steps-horizontal .route-thumb-wrap {
  order: -1;
  margin: 0;
  aspect-ratio: 16 / 9;
}

.route-steps-horizontal .route-thumb-wrap .lite-youtube,
.route-steps-horizontal .route-thumb-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Premium viewing route flow (videos page) — 横スクロールのジャーニーカード -------- */
/* 大きなゴースト数字＋phaseピル＋サムネ＋一言フック。横並びで縦に伸びず、モバイルはスワイプ。 */
.viewing-route-flow-section { overflow: hidden; }
.viewing-route-flow-section .section-head { margin-bottom: 14px; }
.route-flow {
  list-style: none;
  margin: 0 -4px;
  padding: 6px 4px 16px;
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
}
.route-flow-step {
  flex: 0 0 238px;
  scroll-snap-align: start;
}
.route-flow-card {
  position: relative;
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 11px;
  padding: 14px;
  border-radius: 16px;
  background:
    linear-gradient(158deg, rgba(var(--group-accent-rgb), .14), rgba(var(--group-accent-2-rgb), .05) 60%),
    rgba(255, 255, 255, .03);
  border: 1px solid rgba(var(--group-accent-rgb), .22);
  box-shadow: 0 4px 18px rgba(0, 0, 0, .26);
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.route-flow-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(0, 0, 0, .42);
  border-color: rgba(var(--group-accent-rgb), .5);
}
.route-flow-ghost {
  position: absolute;
  top: -14px;
  right: 4px;
  z-index: 0;
  font-size: 4.4rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.05em;
  color: rgba(var(--group-accent-rgb), .2);
  pointer-events: none;
  font-variant-numeric: tabular-nums;
}
.route-flow-phase {
  position: relative;
  z-index: 1;
  align-self: flex-start;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .05em;
  padding: 3px 11px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(var(--group-accent-rgb), .95), rgba(var(--group-accent-2-rgb), .8));
  color: #fff;
  box-shadow: 0 2px 8px rgba(var(--group-accent-rgb), .35);
}
.route-flow-thumb.lite-youtube,
.route-flow-thumb {
  position: relative;
  z-index: 1;
  display: block;
  aspect-ratio: 16 / 9;
  border-radius: 11px;
  overflow: hidden;
}
.route-flow-thumb.lite-youtube img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}
.route-flow-card:hover .route-flow-thumb.lite-youtube img { transform: scale(1.08); }
.route-flow-thumb-empty {
  display: grid;
  place-items: center;
  background: rgba(var(--group-accent-rgb), .12);
}
.route-flow-body {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.route-flow-body h3 {
  margin: 0;
  font-size: .98rem;
  line-height: 1.3;
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
}
.route-flow-body p {
  margin: 0;
  font-size: .82rem;
  opacity: .85;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (max-width: 640px) {
  .route-flow-step { flex-basis: 210px; }
  .route-flow-ghost { font-size: 3.6rem; }
}

/* Unified viewing journey for group detail #starter -------- */
.viewing-journey-section {
  overflow: hidden;
}

.viewing-journey {
  list-style: none;
  margin: 0;
  padding: 4px 0 0;
  display: grid;
  gap: 0;
}

/* 2026-06-17 「まず見る」を wizard ステッパー(丸番号+縦コネクタ線)から、
   オーバーサイズのエディトリアル数字(グラデ抜き文字)へ刷新。縦コネクタ線を撤去し、
   大きな 01–07 をデザイン要素として効かせる(雑誌/エージェンシー系の現行表現)。 */
.viewing-journey-step {
  display: grid;
  grid-template-columns: clamp(50px, 6vw, 78px) minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  padding: 22px 0;
}
.viewing-journey-step:first-child { padding-top: 6px; }
.viewing-journey-step:not(:last-child) {
  border-bottom: 1px solid var(--line);
}

.viewing-journey-node {
  display: flex;
  justify-content: center;
  align-items: center;
}

.viewing-journey-node span {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: clamp(2.6rem, 4.6vw, 3.7rem);
  font-weight: 900;
  line-height: .82;
  letter-spacing: -.03em;
  font-variant-numeric: tabular-nums;
  /* エディトリアルなアウトライン数字(グラデ抜き文字=AIテンプレ臭を避ける/Track D の脱AI方針)。
     通常ステップは輪郭のみ、入口(01)だけソリッドで主役化。 */
  color: transparent;
  -webkit-text-stroke: 1.6px rgba(var(--group-accent-rgb), .62);
  text-stroke: 1.6px rgba(var(--group-accent-rgb), .62);
}

.viewing-journey-step.is-entry .viewing-journey-node span {
  font-size: clamp(3.2rem, 6vw, 4.7rem);
  color: var(--group-accent);
  -webkit-text-stroke: 0;
  text-stroke: 0;
}

/* 2026-06-18 カードの箱(枠/塗り/角丸)を撤去し、大数字＋サムネ＋本文が1つの編集ユニットとして
   繋がる開いたレイアウトへ(ユーザー指摘「数字とカードが分かれて違和感」)。区切りは step 間の
   ヘアラインのみ。入口(01)はサムネ拡大＋ソリッド数字で主役化(箱に頼らない)。 */
.viewing-journey-card {
  display: grid;
  grid-template-columns: 248px minmax(0, 1fr);
  gap: 18px;
  /* 番号・サムネ・本文を上端で揃える(共有ベースライン)。下部余白はサムネ拡大で本文高に
     近づけて最小化し、映像を主役として大きく見せる(watch-list の世界一基準)。 */
  align-items: start;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  min-width: 0;
}

.viewing-journey-step.is-entry .viewing-journey-card {
  grid-template-columns: 352px minmax(0, 1fr);
}

.viewing-journey-thumb {
  width: 100%;
  aspect-ratio: 16 / 9;
  align-self: start;
  border-radius: 10px;
  overflow: hidden;
}

.viewing-journey-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* コンパクトサムネ(172px)では既定58x42の再生ボタンが大きすぎサムネを覆うため、ジャーニー内だけ縮小 */
.viewing-journey-thumb .lite-youtube-play {
  transform: translate(-50%, -50%) scale(.58);
}
.viewing-journey-thumb:hover .lite-youtube-play {
  transform: translate(-50%, -50%) scale(.64);
}
.viewing-journey-step.is-entry .viewing-journey-thumb .lite-youtube-play {
  transform: translate(-50%, -50%) scale(.76);
}
.viewing-journey-step.is-entry .viewing-journey-thumb:hover .lite-youtube-play {
  transform: translate(-50%, -50%) scale(.82);
}

.viewing-journey-body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.viewing-journey-body h3 {
  margin: 0;
  font-size: 1.18rem;
}

.viewing-journey-step.is-entry .viewing-journey-body h3 {
  font-size: clamp(1.35rem, 2.2vw, 1.85rem);
}

.viewing-journey-body p {
  margin: 0;
  color: var(--soft);
  line-height: 1.6;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.viewing-journey-step.is-entry .viewing-journey-body p {
  -webkit-line-clamp: 3;
}

.viewing-journey-actions {
  margin-top: auto;
}

/* Bento member grid ------------------------------------- */
.member-card-grid-bento {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 14px;
}

/* 4 members: leader spans 3, others split into a 3+1+1+1 layout via a different shape.
   We use: 1st card large (cols 1-3, rows 1-2), others stack on cols 4-6 */
.member-card-grid-bento > .member-card:nth-child(1) {
  grid-column: span 3;
  grid-row: span 2;
}
.member-card-grid-bento > .member-card:nth-child(n+2) {
  grid-column: span 3;
}

/* 5 members fallback: leader large, 4 small in 2 columns */
.member-card-grid-bento:has(> .member-card:nth-child(5)) > .member-card:nth-child(1) {
  grid-column: span 3;
  grid-row: span 2;
}
.member-card-grid-bento:has(> .member-card:nth-child(5)) > .member-card:nth-child(n+2) {
  grid-column: span 3;
}

/* 6+ members: leader large (cols 1-2 rows 1-2), rest 4-per-row */
.member-card-grid-bento:has(> .member-card:nth-child(6)) > .member-card:nth-child(1) {
  grid-column: span 4;
  grid-row: span 2;
}
.member-card-grid-bento:has(> .member-card:nth-child(6)) > .member-card:nth-child(n+2) {
  grid-column: span 2;
}

.member-card-grid-bento > .member-card:nth-child(1) .member-avatar {
  width: 220px;
  height: auto;
  aspect-ratio: 4 / 5;
}

.member-card-grid-bento > .member-card:nth-child(1) .member-card-title h3 {
  font-size: 1.3rem;
}

@media (max-width: 880px) {
  .member-card-grid-bento {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .member-card-grid-bento > .member-card,
  .member-card-grid-bento > .member-card:nth-child(1),
  .member-card-grid-bento > .member-card:nth-child(n+2) {
    grid-column: span 1;
    grid-row: span 1;
  }
  .member-card-grid-bento > .member-card:nth-child(1) .member-avatar {
    width: 160px;
    height: auto;
    aspect-ratio: 4 / 5;
  }
}

/* Mobile adjustments for hero MV --------------------- */
@media (max-width: 880px) {
  .group-hero-with-video {
    grid-template-columns: 1fr;
  }
  .group-hero-visual-video {
    aspect-ratio: 16 / 9;
  }
  .group-hero-visual-video .lite-youtube-play {
    width: 48px;
    height: 48px;
  }
  .hero-actions-group {
    gap: 8px;
  }
  .hero-actions-group .button-link {
    flex: 1 1 auto;
    justify-content: center;
  }
  /* horizontal route-steps stay horizontal on mobile (scroll) */
}

/* Drop-cap removal on mobile for editorial -------------- */
@media (max-width: 640px) {
  .editorial-note .editorial-body p:first-of-type::first-letter {
    font-size: 1.6em;
    margin: 2px 6px 0 0;
  }
  .viewing-journey-step {
    grid-template-columns: clamp(40px, 13vw, 56px) minmax(0, 1fr);
    gap: 12px;
    align-items: start;
  }
  .viewing-journey-node {
    align-items: flex-start;
    padding-top: 2px;
  }
  .viewing-journey-card,
  .viewing-journey-step.is-entry .viewing-journey-card {
    grid-template-columns: 1fr;
    padding: 12px;
  }
  .viewing-journey-thumb {
    min-height: 0;
  }
}

/* ============================================================
 * 2026-05-30 World-class refresh v2 (user feedback round 1):
 *   - Hero CTA icon refinement + Streaming row (Spotify/Apple/Amazon)
 *   - Bento grid leader card: vertical layout, smaller avatar, no overflow
 * ============================================================ */

/* Hero CTA buttons: separate icon span for clean alignment ---- */
.hero-actions-group .button-link {
  padding: 10px 16px;
}

.hero-actions-group .hero-cta-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 6px;
  font-size: 0.95em;
  line-height: 1;
  flex-shrink: 0;
}

/* Streaming row (Spotify / Apple Music / Amazon Music direct links) -- */
.hero-streaming-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  padding-top: 14px;
  border-top: 1px dashed rgba(255, 255, 255, .14);
  width: 100%;
}

.hero-streaming-label {
  font-size: .76rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--soft, rgba(255, 255, 255, .6));
  margin-right: 4px;
  font-weight: 600;
}

.hero-streaming-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .01em;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, .22);
  background: rgba(255, 255, 255, .05);
  color: #fff;
  text-decoration: none;
  transition: background 180ms ease, border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.hero-streaming-link::before {
  content: "";
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 999px;
  background: currentColor;
  opacity: .92;
  flex-shrink: 0;
}

.hero-streaming-link.hero-stream-spotify {
  color: #1DB954;
  border-color: rgba(29, 185, 84, .42);
  background: rgba(29, 185, 84, .08);
}

.hero-streaming-link.hero-stream-spotify:hover,
.hero-streaming-link.hero-stream-spotify:focus-visible {
  background: rgba(29, 185, 84, .18);
  border-color: rgba(29, 185, 84, .78);
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(29, 185, 84, .26);
}

.hero-streaming-link.hero-stream-apple {
  color: #fa57c1;
  border-color: rgba(250, 87, 193, .42);
  background: rgba(250, 87, 193, .08);
}

.hero-streaming-link.hero-stream-apple:hover,
.hero-streaming-link.hero-stream-apple:focus-visible {
  background: rgba(250, 87, 193, .18);
  border-color: rgba(250, 87, 193, .78);
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(250, 87, 193, .26);
}

.hero-streaming-link.hero-stream-amazon {
  color: #00a8e1;
  border-color: rgba(0, 168, 225, .42);
  background: rgba(0, 168, 225, .08);
}

.hero-streaming-link.hero-stream-amazon:hover,
.hero-streaming-link.hero-stream-amazon:focus-visible {
  background: rgba(0, 168, 225, .18);
  border-color: rgba(0, 168, 225, .78);
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(0, 168, 225, .26);
}

.hero-streaming-link > span {
  color: #fff;
  font-weight: 700;
}

@media (max-width: 640px) {
  .hero-streaming-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .hero-streaming-label {
    grid-column: 1 / -1;
    width: 100%;
    margin-bottom: 4px;
    font-size: .7rem;
  }
  .hero-streaming-link {
    padding: 6px 11px;
    font-size: .76rem;
    min-width: 0;
    justify-content: center;
  }
}

/* Bento grid leader fix: vertical layout, avatar fits inside ------ */
.member-card-grid-bento > .member-card:nth-child(1) {
  /* 縦方向レイアウトに切り替え（avatar 上 / body 下）で、avatar enlarge による
     body 部への被りを防ぐ。grid-template-columns を1列に上書き。 */
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto;
  justify-items: start;
  align-items: start;
  padding: 18px;
  gap: 16px;
  min-height: 0;
}

.member-card-grid-bento > .member-card:nth-child(1) .member-visual {
  width: auto;
  justify-self: center;
  gap: 12px;
}

.member-card-grid-bento > .member-card:nth-child(1) .member-avatar {
  width: 168px;
  height: auto;
  aspect-ratio: 4 / 5;
  border-radius: 28px;
}

.member-card-grid-bento > .member-card:nth-child(1) .member-visual-line {
  width: 72px;
}

.member-card-grid-bento > .member-card:nth-child(1) .member-card-body {
  width: 100%;
  text-align: left;
}

.member-card-grid-bento > .member-card:nth-child(1) .member-card-title h3 {
  font-size: 1.22rem;
}

/* Member card layout safety: keep small members from icon overlap ---- */
.member-card .member-card-body {
  min-width: 0;
}

@media (max-width: 880px) {
  .member-card-grid-bento > .member-card:nth-child(1) .member-avatar {
    width: 140px;
    height: auto;
    aspect-ratio: 4 / 5;
    border-radius: 22px;
  }
}

/* === Member detail: world-class shell parity (sticky rail + TOC) === */
.group-detail-shell.static-fallback { display: grid; }
[data-static-primary="member-page"] .detail-rail-toc { display: none; }
@media (max-width: 860px) {
  .group-detail-shell.static-fallback { grid-template-columns: 1fr; }
}
@media (min-width: 861px) {
  [data-static-primary="member-page"] .page-jump-nav.jump-more-only { display: none; }
  [data-static-primary="member-page"] .detail-rail-toc {
    display: block;
    position: sticky;
    top: 80px;
    max-height: calc(100vh - 96px);
    overflow-y: auto;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 14px 16px;
  }
}

/* === Member hero: portrait + fact chips (world-class parity, 2026-05-31) === */
.member-hero.static-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(180px, 22vw, 240px);
  gap: clamp(16px, 3vw, 40px);
  align-items: center;
}
/* 顔サムネ（公式MV）の場合はグループ詳細と同じ 16:9 動画カードなので、右カラムを広げる */
.member-hero.static-hero:has(.member-hero-visual) {
  grid-template-columns: minmax(0, 1fr) clamp(300px, 38%, 520px);
}
.member-hero .member-hero-media { justify-self: end; width: 100%; }
.member-hero .member-hero-visual { width: 100%; }
/* メンバー顔サムネは中央の再生ボタンが顔に被るため、右下へ寄せる（顔を隠さない）。 */
.member-hero-visual .lite-youtube-play {
  top: auto;
  left: auto;
  right: 12px;
  bottom: 12px;
  transform: none;
  width: 48px;
  height: 48px;
}
.member-hero-visual .lite-youtube:hover .lite-youtube-play,
.member-hero-visual .lite-youtube:focus-visible .lite-youtube-play {
  transform: scale(1.08);
}
/* 名前主役のH1。所属は読みやすいアクセント副題（全グループで可読な hero-text-mid を使用）。 */
.member-hero .hero-content { min-width: 0; }
.member-hero h1 { margin-bottom: 10px; }
/* 名前DBとして主役の日本語名を雑誌級スケールに。EN名(.42em)/grouptag/モバイルh1縮小から独立させる。
   keep-all 済みの短い人名前提で 80px 上限（overflow検証済）。role/種別は上の member-hero-kicker。 */
.member-hero-name {
  display: block;
  font-size: clamp(34px, 6vw, 80px);
  line-height: 1.05;
  letter-spacing: -0.01em;
}
/* ローマ字名は日本語名の主役性を崩さないよう、同じ名前行に控えめサイズで併記する。 */
.member-hero-name-en {
  margin-left: .4em;
  font-size: .42em;
  font-weight: 700;
  letter-spacing: .02em;
  vertical-align: baseline;
  color: var(--group-hero-text-mid, #cfe6ff);
  white-space: nowrap;
}
.member-hero-grouptag {
  display: block;
  margin-top: 6px;
  font-size: clamp(0.95rem, 0.72rem + 0.9vw, 1.3rem);
  font-weight: 700;
  letter-spacing: .01em;
  white-space: normal;
  color: var(--group-hero-text-mid, #cfe6ff);
}
.member-hero-portrait {
  width: clamp(150px, 20vw, 220px);
  height: clamp(150px, 20vw, 220px);
  border-radius: 24px;
  object-fit: cover;
  border: 1px solid rgba(255, 255, 255, .22);
  box-shadow: 0 18px 44px rgba(0, 0, 0, .42);
  background: rgba(255, 255, 255, .05);
}
.member-hero-initial {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(48px, 7vw, 84px);
  font-weight: 800;
  color: #fff;
  background: linear-gradient(150deg, rgba(var(--group-accent-rgb, 111, 140, 255), .55), rgba(var(--group-accent-2-rgb, 205, 182, 255), .35));
}
.member-fact-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 4px;
}
.member-fact-chips .member-fact-chip {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 6px 12px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .14);
  min-width: 0;
}
.member-fact-chips .member-fact-chip dt {
  margin: 0;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .05em;
  color: var(--group-hero-text-mid, #cfe0ff);
}
.member-fact-chips .member-fact-chip dd {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  line-height: 1.3;
}
@media (max-width: 860px) {
  .member-hero.static-hero,
  .member-hero.static-hero:has(.member-hero-visual) { grid-template-columns: 1fr; }
  .member-hero .member-hero-media { justify-self: start; order: -1; }
  .member-hero-portrait { width: 120px; height: 120px; border-radius: 20px; }
  .member-hero .member-hero-visual { max-width: 320px; }
}

/* === Member rail: related-member avatar circles (reference parity, 2026-05-31) === */
.related-member-avatars {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.related-member-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 8px;
  border-radius: 12px;
  text-decoration: none;
  transition: background .16s ease;
}
.related-member-link:hover { background: rgba(255, 255, 255, .07); }
.related-member-avatar {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  object-fit: cover;
  flex: none;
  border: 1px solid rgba(255, 255, 255, .18);
  background: rgba(255, 255, 255, .06);
}
.related-member-initial {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(150deg, rgba(var(--group-accent-rgb, 111, 140, 255), .55), rgba(var(--group-accent-2-rgb, 205, 182, 255), .35));
}
/* 名前＋役割は縦積みのテキストブロック。min-width:0 で縮小可能にし、横並び nowrap による
   はみ出し・名前の文字単位折れを防ぐ（役割が長いメンバーで崩れていた問題の根本対処）。 */
.related-member-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: 2px;
}
.related-member-link .related-member-name {
  font-size: 13.5px;
  font-weight: 700;
  color: #eef2ff;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.related-member-link .related-member-role {
  font-size: 11.5px;
  color: var(--group-hero-text-mid, #c7d2ee);
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* === About / trust pages: world-class refresh (2026-05-31) === */
.about-hero-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 28px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}
.about-hero-stats li { position: relative; padding-left: 14px; }
.about-hero-stats li::before {
  content: "";
  position: absolute;
  left: 0; top: 4px; bottom: 4px;
  width: 3px;
  border-radius: 2px;
  background: var(--group-accent, #6f8cff);
}
.about-hero-stats strong {
  display: block;
  font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.1rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.1;
}
.about-hero-stats span { font-size: .82rem; color: var(--soft, #aebbe0); letter-spacing: .02em; }

.about-stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
  margin: 14px 0 18px;
}
.about-stat-card {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 14px 16px;
  border-radius: 14px;
  background: rgba(255, 255, 255, .05);
  border: 1px solid rgba(255, 255, 255, .12);
}
.about-stat-card-accent {
  background: rgba(var(--group-accent-rgb, 111, 140, 255), .14);
  border-color: rgba(var(--group-accent-rgb, 111, 140, 255), .4);
}
.about-stat-card strong {
  font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.2rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.05;
}
.about-stat-card span { font-size: .9rem; font-weight: 700; color: #eaf0ff; }
.about-stat-card small { font-size: .76rem; color: var(--soft, #aebbe0); line-height: 1.4; }

/* About body: typographic rhythm + structured lists (no more plain text wall) */
.about-page main .surface { margin-bottom: 16px; }
.about-page main .surface > h2 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255, 255, 255, .1);
}
.about-page main .surface > h2::before {
  content: "";
  width: 4px;
  height: 1.05em;
  border-radius: 2px;
  background: var(--group-accent, #6f8cff);
  flex: none;
}
.about-page main p { line-height: 1.85; }
.about-dl { display: grid; gap: 10px; margin: 8px 0; }
.about-dl > div {
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(255, 255, 255, .09);
}
.about-dl dt { font-weight: 800; color: #fff; margin-bottom: 4px; }
.about-dl dd { margin: 0; color: var(--soft, #c7d2ee); line-height: 1.7; }
.about-priority-list,
.about-criteria-list,
.about-design-list,
.about-tech-list,
.about-contact-list { margin: 10px 0; padding-left: 0; list-style: none; display: grid; gap: 10px; }
/* Flex rows so the marker (dot / number) aligns to the FIRST text line regardless of
   font-size or wrap count — replaces the old absolute-positioned em-offset markers. */
.about-priority-list li,
.about-criteria-list li,
.about-design-list li,
.about-tech-list li,
.about-contact-list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(255, 255, 255, .09);
  line-height: 1.75;
  color: var(--soft, #c7d2ee);
  transition: border-color 160ms ease, background 160ms ease;
}
.about-priority-list li:hover,
.about-criteria-list li:hover,
.about-design-list li:hover,
.about-tech-list li:hover,
.about-contact-list li:hover {
  border-color: rgba(255, 255, 255, .16);
  background: rgba(255, 255, 255, .055);
}
.about-priority-list li::before,
.about-criteria-list li::before,
.about-design-list li::before,
.about-tech-list li::before,
.about-contact-list li::before {
  content: "";
  flex: none;
  margin-top: .62em;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--group-accent, #6f8cff);
}
.about-priority-list { counter-reset: about-prio; }
.about-priority-list li { counter-increment: about-prio; }
.about-priority-list li::before {
  content: counter(about-prio);
  flex: none;
  margin-top: .1em;
  width: 22px; height: 22px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  color: #0a1020;
  background: var(--group-accent, #6f8cff);
}
.about-page .static-meta { margin: 0 0 14px; color: var(--soft, #c7d2ee); opacity: .9; }
.about-page main .surface strong { color: #fff; }
.about-page main .surface code {
  padding: 1px 6px;
  border-radius: 6px;
  background: rgba(255, 255, 255, .08);
  font-size: .88em;
}
@media (max-width: 600px) {
  .about-stat-grid { grid-template-columns: repeat(2, 1fr); }
}

/* === Member hero: MEMBER pill + editorial-verified badge (2026-05-31) === */
.member-hero-kicker {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 6px;
}
.member-hero-pill {
  display: inline-flex;
  align-items: center;
  padding: 3px 11px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  color: #0a1020;
  background: var(--group-accent, #6f8cff);
}
/* ソロ/ユニットのバッジは、accent塗りの「メンバー」と区別しつつ、accent2の暗色化リスクを避けるため半透明白で出す。 */
.member-hero-pill-solo,
.member-hero-pill-unit {
  color: #fff;
  background: rgba(255, 255, 255, .16);
  border: 1px solid rgba(255, 255, 255, .28);
}
.member-hero-verified {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11.5px;
  font-weight: 700;
  color: var(--group-hero-text-mid, #cfe0ff);
}
.member-hero-verified-icon {
  width: 16px;
  height: 16px;
  color: var(--group-accent, #6f8cff);
}

/* SNS brand icon colors not already defined (member 個人SNS reuses .sns-link) */
.sns-link[data-platform="tiktok"] .sns-link-icon { color: #f1f1f3; }
.sns-link[data-platform="x"] .sns-link-icon { color: #f1f1f3; }


/* ===== 2026-06-01 Editorial template: frames earn their place =====
   グループ詳細 / 作品一覧 / 動画一覧 / メンバー詳細の本文セクションは枠を外し、見出し→本文→
   区切り線のエディトリアル体裁へ統一（トップページに準拠）。枠は個別オブジェクト
   （右レール・モバイル最新リリース・データテーブル・各カード・購入カード）が内側で持つ。
   メンバー詳細は同じ .detail-wide-flow / .detail-rail 構造を使うため group-page と同一ルールを共有する。 */
[data-static-primary="group-page"] .surface,
[data-static-primary="member-page"] .surface {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  margin: 32px 0 0;
  padding: 30px 0 0;
}
[data-static-primary] .detail-wide-flow > .surface:first-child,
[data-static-primary="group-page"] main > .surface:first-child,
[data-static-primary="group-page"] main > div > .surface:first-child,
[data-static-primary="member-page"] .detail-wide-flow > .surface:first-child,
[data-static-primary="member-page"] main > .surface:first-child,
[data-static-primary="member-page"] main > div > .surface:first-child {
  border-top: 0;
  margin-top: 10px;
  padding-top: 0;
}
/* 個別オブジェクトは枠を維持（右レールのカードは面を保つ） */
[data-static-primary="group-page"] .detail-rail .surface,
[data-static-primary="member-page"] .detail-rail .surface {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  -webkit-backdrop-filter: blur(12px) saturate(118%);
  backdrop-filter: blur(12px) saturate(118%);
  margin: 0;
  padding: 16px;
}
/* 2026-06-18 デザインレビュー: rail の単体カード(所属グループ/ソロ/ユニット)は
   外枠 .surface に対し box-in-box。内側カードの枠・面・余白・持ち上げを撤去し、
   外枠1枚のエディトリアル面に統一する(枠はサムネ側が持つ)。group-spotlight の
   アクセントは hover の細い下線/矢印移動で示し、静止時は二重線にしない。 */
[data-static-primary="member-page"] .detail-rail .surface > .group-spotlight-card,
[data-static-primary="group-page"] .detail-rail .surface > .group-spotlight-card {
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}
[data-static-primary="member-page"] .detail-rail .surface > .group-spotlight-card:hover,
[data-static-primary="group-page"] .detail-rail .surface > .group-spotlight-card:hover {
  transform: none;
  box-shadow: none;
  background: none;
}
[data-static-primary="group-page"] .surface.mobile-only,
[data-static-primary="member-page"] .surface.mobile-only {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 16px;
}
/* editorial-note は左アクセントの引用体裁を維持（区切り線＋アクセントバー） */
[data-static-primary="group-page"] .surface.editorial-note,
[data-static-primary="member-page"] .surface.editorial-note {
  border-left: 3px solid rgba(var(--group-accent-rgb), .82);
  padding-left: 18px;
}

/* 2026-06-16 Phase B1: group detail only.
   Reading sections become plain bands; comparison/action sections keep card surfaces. */
[data-static-primary] .detail-wide-flow > .surface:not(.section-plain) {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  -webkit-backdrop-filter: blur(12px) saturate(118%);
  backdrop-filter: blur(12px) saturate(118%);
  margin: 24px 0 0;
  padding: 18px;
}

/* 2026-06-16: グループ詳細の本文セクションは外枠パネル(.surface)を全廃し、release-detail と同じ
   エディトリアル体裁へ統一。枠は内側オブジェクト（メンバー/曲/類似/購入カード, bento, テーブル）が持つ。
   box-in-box（外パネルの中に既に枠を持つカード列）を解消し、余白＋細罫＋見出しで分節する。
   サイドバー(.detail-rail .surface)は別文脈なのでパネル維持。 */
[data-static-primary] .detail-wide-flow > .surface {
  background: none;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, .08);
  border-radius: 0;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  margin: 34px 0 0;
  padding: 28px 0 0;
}

[data-static-primary] .detail-wide-flow > .surface:first-child {
  margin-top: 10px;
  padding-top: 0;
  border-top: 0;
}

[data-static-primary="group-page"] .surface.section-plain.editorial-note {
  border-left: 0;
  padding-left: 0;
}

/* 2026-06-16 Phase 5: section rank, rights-safe visual band, and odd member grid correction.
   Keep the outer .surface frameless; hierarchy comes from spacing, hairlines, and type scale. */
[data-static-primary] .detail-wide-flow > .surface.section-rank-feature {
  position: relative;
  margin-top: 46px;
  padding-top: 34px;
}

[data-static-primary] .detail-wide-flow > .surface.section-rank-feature::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: min(196px, 46%);
  height: 2px;
  background: linear-gradient(90deg, rgba(var(--group-accent-rgb), .95), rgba(var(--group-accent-2-rgb), .52), transparent);
}

[data-static-primary] .detail-wide-flow > .surface.section-rank-feature h2 {
  color: #fff;
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.18;
  letter-spacing: 0;
  text-wrap: balance;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

[data-static-primary] .detail-wide-flow > .surface.section-rank-utility {
  margin-top: 28px;
  padding-top: 22px;
  border-top-color: rgba(255, 255, 255, .08);
}

[data-static-primary] .detail-wide-flow > .surface.section-rank-utility h2 {
  font-size: 20px;
  line-height: 1.35;
  letter-spacing: 0;
}

[data-static-primary] .detail-wide-flow > .surface.section-rank-utility .section-head {
  margin-bottom: 12px;
}

@media (max-width: 760px) {
  [data-static-primary] .detail-wide-flow > .surface.section-rank-feature {
    margin-top: 38px;
    padding-top: 28px;
  }

  [data-static-primary] .detail-wide-flow > .surface.section-rank-feature h2 {
    font-size: 30px;
  }
}

/* アルバム（作品詳細）ページの本文セクションも同じエディトリアル体裁へ（2026-06-04）。
   release-detail-page は static-fallback で data-static-primary を持たないため body.release-detail-page で対象化。
   枠は内側オブジェクト（収録曲/動画/ストア/見どころ等の各カード・テーブル）が持つ。 */
.release-detail-page .release-detail-main > .surface {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  margin: 32px 0 0;
  padding: 30px 0 0;
}
.release-detail-page .release-detail-main > section.surface:first-of-type {
  border-top: 0;
  margin-top: 10px;
  padding-top: 0;
}


/* ===== 2026-06-01 Bento hero (Phase 1b): 作品/動画一覧ヒーローを詳細と同じ family に =====
   KPIスタッツ＋ページ別ビジュアル（作品=最新ジャケット / 動画=代表MV）。
   group-hero-with-visual を付与することで .hero strip を回避し枠付き bento になる。 */
.hero-kpis {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 0;
  margin-top: 18px;
}
.hero-kpi {
  display: flex;
  flex-direction: column;
  line-height: 1.12;
  padding-right: 22px;
  margin-right: 22px;
  border-right: 1px solid rgba(255, 255, 255, .14);
}
.hero-kpi:last-child {
  padding-right: 0;
  margin-right: 0;
  border-right: 0;
}
.hero-kpi strong {
  /* トップの .hero-stats と同じ数字の質感（Outfit / tabular-nums / 900）に揃える。
     配色はグループテーマのヒーロー上で読めるよう白のまま。 */
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: clamp(20px, 1.1rem + 1vw, 30px);
  font-weight: 900;
  color: #fff;
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
}
.hero-kpi span {
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--soft, rgba(255, 255, 255, .6));
  margin-top: 3px;
}
.group-hero-with-art .group-hero-media {
  align-self: center;
}
.group-hero-visual-art {
  aspect-ratio: 1 / 1;
  width: 100%;
  max-width: 300px;
  margin: 0 0 0 auto;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}
.group-hero-visual-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (max-width: 880px) {
  .group-hero-visual-art { max-width: 220px; margin: 0 auto; }
  .hero-kpis { gap: 8px 0; }
  .hero-kpi { padding-right: 16px; margin-right: 16px; }
}


/* 動画タブの件数ピル（クリック前にバケットの大きさを伝える） */
.video-tab-count {
  display: inline-block;
  margin-left: 7px;
  padding: 0 6px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.55;
  color: rgba(var(--group-accent-rgb), 1);
  background: rgba(var(--group-accent-rgb), .16);
}
.video-tab.active .video-tab-count {
  color: #fff;
  background: rgba(255, 255, 255, .24);
}


/* 動画カードの「まず見る」バッジ＋微アクセント枠（カードサイズは均一のまま・初心者導線だけ軽く示す） */
.badge-featured {
  color: rgba(var(--group-accent-rgb), 1);
  background: rgba(var(--group-accent-rgb), .16);
  border: 1px solid rgba(var(--group-accent-rgb), .44);
}
.video-card-featured {
  border-color: rgba(var(--group-accent-rgb), .4);
}


/* 収録曲の「原曲」リンク（版違いトラック→原曲へ・軸4） */
.track-canonical {
  display: inline-block;
  margin-left: 8px;
  font-size: 11px;
  color: rgba(var(--group-accent-rgb), 1);
  text-decoration: none;
  border-bottom: 1px dotted rgba(var(--group-accent-rgb), .5);
}
.track-canonical:hover,
.track-canonical:focus-visible {
  color: #fff;
  border-bottom-color: #fff;
}


/* 双方向精密リンク: 作品行→動画カードのアンカー着地（固定ヘッダー分のオフセット＋着地強調） */
.video-card[id] { scroll-margin-top: 92px; }
.video-card:target {
  outline: 2px solid rgba(var(--group-accent-rgb), .7);
  outline-offset: 3px;
}


/* チップ統一: 動画の kind-link を入口曲ピルと同じアクセント色系に揃える（行レイアウトは用途上維持・色の言語だけ統一） */
.video-kind-link {
  background: rgba(var(--group-accent-rgb), .1);
  border-color: rgba(var(--group-accent-rgb), .3);
}
.video-kind-link:hover,
.video-kind-link:focus-visible {
  background: rgba(var(--group-accent-rgb), .2);
  border-color: rgba(var(--group-accent-rgb), .6);
  transform: translateY(-1px);
}

/* ── MBTI一覧（/ja/mbti/） ── */
.mbti-category { margin-top: 28px; }
.mbti-category-head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.mbti-category-head h2 { margin: 0; font-size: 18px; }
.mbti-category-head .mbti-category-note { color: var(--muted); font-size: 13px; }
.mbti-type-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.mbti-type-card {
  display: grid; gap: 6px; align-content: start;
  padding: 16px; border: 1px solid var(--line); border-radius: var(--radius);
  background: var(--panel); color: var(--text); text-decoration: none;
  transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}
.mbti-type-card:hover, .mbti-type-card:focus-visible {
  transform: translateY(-2px); border-color: rgba(var(--accent-rgb), .55);
  box-shadow: 0 12px 32px rgba(0,0,0,.28), 0 0 0 1px rgba(var(--accent-rgb), .25);
  background: linear-gradient(135deg, rgba(var(--accent-rgb), .08), transparent), var(--panel);
}
.mbti-type-card .mbti-code { font-family: var(--font-display, inherit); font-size: 26px; font-weight: 900; letter-spacing: .04em; line-height: 1; }
.mbti-type-card .mbti-nick { color: var(--accent); font-size: 14px; font-weight: 700; }
.mbti-type-card .mbti-count { color: var(--muted); font-size: 13px; }
.mbti-type-card .mbti-count strong { color: var(--text); font-size: 16px; }
.mbti-type-card .mbti-sample { color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mbti-chip-nav { display: flex; flex-wrap: wrap; gap: 8px; }
.mbti-chip-nav a {
  display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px;
  border: 1px solid var(--line); border-radius: 999px; background: var(--soft);
  color: var(--text); text-decoration: none; font-size: 13px; font-weight: 600;
  transition: border-color 160ms ease, background 160ms ease, color 160ms ease;
}
.mbti-chip-nav a:hover, .mbti-chip-nav a:focus-visible { border-color: rgba(var(--accent-rgb), .55); background: rgba(var(--accent-rgb), .1); color: var(--accent); }
.mbti-chip-nav a[aria-current="page"] { background: rgba(var(--accent-rgb), .16); border-color: rgba(var(--accent-rgb), .6); color: var(--accent); }
.mbti-chip-nav a span { color: var(--muted); font-weight: 500; }


/* ============================================================
   2026-06-18 詳細ページ デザイン刷新（site.css 末尾オーバーライド）
   (1)ストアボタン縮小 (2)カードin カード罫線化 (3)heroサムネ整列 (4)accent強化
   ============================================================ */
.commerce-card .commerce-actions,
.affiliate-section .commerce-card .commerce-actions {
  grid-template-columns: repeat(auto-fit, minmax(86px, 1fr));
  gap: 7px;
}
.commerce-card .commerce-actions .button-link,
.affiliate-section .commerce-card .commerce-actions .button-link {
  width: auto; min-width: 0; padding: 8px 8px; font-size: 12px; font-weight: 700; line-height: 1.2; justify-content: center; text-align: center;
}
.hero .hero-meta-chips {
  display: flex; flex-wrap: wrap; gap: 0;
  border: 1px solid rgba(255, 255, 255, .12); border-radius: 10px; overflow: hidden;
  background: rgba(255, 255, 255, .022); max-width: 720px;
}
.hero .hero-meta-chip,
.hero .hero-meta-chip[data-group-theme],
.hero .hero-meta-chip-solo,
.hero .hero-meta-chip-unit {
  background: transparent; border: 0; border-left: 1px solid rgba(255, 255, 255, .10);
  border-radius: 0; padding: 12px 16px; flex: 1 1 150px; min-width: 0; position: relative;
}
.hero .hero-meta-chips .hero-meta-chip:first-child { border-left: 0; }
.hero .hero-meta-chip::before {
  content: ""; position: absolute; left: 16px; top: 0; width: 18px; height: 2px;
  background: rgba(var(--group-accent-rgb), .9); border-radius: 0 0 2px 2px;
}
.hero .hero-meta-chip-solo::before { background: rgba(var(--group-accent-2-rgb), .85); }
.hero .hero-meta-chip-unit::before { background: rgba(var(--group-accent-3-rgb), .85); }
@media (max-width: 720px) {
  .hero .hero-meta-chips { flex-direction: column; }
  .hero .hero-meta-chip,
  .hero .hero-meta-chip[data-group-theme] { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .09); }
  .hero .hero-meta-chips .hero-meta-chip:first-child { border-top: 0; }
}
.group-hero-with-visual { align-items: stretch; }
.group-hero-media { align-content: stretch; }
.group-hero-with-visual .group-hero-visual {
  height: 100%; aspect-ratio: auto; min-height: 232px;
  box-shadow: var(--elev-2), 0 0 0 1px rgba(var(--group-accent-rgb), .28), 0 0 38px rgba(var(--group-accent-rgb), .12);
}
.group-hero-with-video .group-hero-media .group-hero-visual-video,
.group-hero-with-video .group-hero-media .group-hero-visual-video .lite-youtube,
.group-hero-with-video .group-hero-media .group-hero-visual-video .lite-youtube img { height: 100%; }
.page[data-group-theme] > .hero.group-hero-with-visual:not(.release-detail-hero) {
  border-top: 2px solid rgba(var(--group-accent-rgb), .5);
}

/* (受賞・チャート圧縮 2026-06-18) KPIサマリ + 受賞<details>折りたたみ */
.achievement-kpis { display: flex; flex-wrap: wrap; gap: 10px; margin: 2px 0 6px; }
.achievement-kpi {
  flex: 1 1 96px; min-width: 88px; display: grid; gap: 2px; padding: 12px 14px;
  border: 1px solid rgba(var(--group-accent-rgb), .22); border-radius: 10px;
  background: linear-gradient(150deg, rgba(var(--group-accent-rgb), .12), rgba(255, 255, 255, .03));
}
.achievement-kpi strong {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif; font-size: clamp(22px, 2.4vw, 30px);
  font-weight: 900; line-height: 1; color: rgba(var(--group-accent-rgb), 1); font-variant-numeric: tabular-nums;
}
.achievement-kpi span { font-size: 11.5px; font-weight: 700; letter-spacing: .04em; color: #aeb9d4; }
.award-more { margin-top: 2px; }
.award-more > .award-ledger-rest { margin-top: 0; }
.award-more-summary {
  cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 6px;
  padding: 9px 14px; margin-top: 8px; font-size: 12.5px; font-weight: 700; color: #cdd6ea;
  border: 1px solid rgba(255, 255, 255, .14); border-radius: 999px; background: rgba(255, 255, 255, .04);
  transition: background .15s ease, border-color .15s ease;
}
.award-more-summary::-webkit-details-marker { display: none; }
.award-more-summary::after { content: "▾"; font-size: 11px; color: rgba(var(--group-accent-rgb), .95); }
.award-more[open] .award-more-summary::after { content: "▴"; }
.award-more-summary:hover { background: rgba(var(--group-accent-rgb), .12); border-color: rgba(var(--group-accent-rgb), .4); }
.award-more[open] .award-ledger-rest .award-row:first-child { border-top: 1px solid rgba(255, 255, 255, .08); }


/* ============================================================
   2026-06-18(2) チャート曲メイン/KPI罫線/購入罫線（脱カードin カード徹底）
   ============================================================ */

/* (A) 受賞KPI: 塗りタイル → 罫線ストリップ（塗り面1階層ルール徹底） */
.achievement-kpis {
  display: flex; flex-wrap: wrap; gap: 0;
  border: 1px solid rgba(255, 255, 255, .12); border-radius: 10px; overflow: hidden;
  background: rgba(255, 255, 255, .022); margin: 2px 0 10px;
}
.achievement-kpi {
  flex: 1 1 90px; min-width: 84px; display: grid; gap: 2px;
  padding: 12px 16px; border: 0; border-left: 1px solid rgba(255, 255, 255, .10);
  border-radius: 0; background: transparent; position: relative;
}
.achievement-kpis .achievement-kpi:first-child { border-left: 0; }
.achievement-kpi::before {
  content: ""; position: absolute; left: 16px; top: 0; width: 16px; height: 2px;
  background: rgba(var(--group-accent-rgb), .9); border-radius: 0 0 2px 2px;
}
@media (max-width: 560px) {
  .achievement-kpi { flex-basis: 50%; }
  .achievement-kpi:nth-child(3), .achievement-kpi:nth-child(4) { border-top: 1px solid rgba(255,255,255,.09); }
}

/* (B) チャート: 順位レール → 曲メイン（曲名＋チャート別順位チップ） */
.chart-song-list { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; }
.chart-song-row {
  display: grid; grid-template-columns: minmax(120px, .8fr) 1.7fr; gap: 14px; align-items: center;
  padding: 11px 0; border-top: 1px solid rgba(255, 255, 255, .08);
}
.chart-song-row:first-child { border-top: 0; padding-top: 2px; }
.chart-song-title { font-size: 14px; font-weight: 800; color: #eef4ff; line-height: 1.35; }
.chart-song-peaks { display: flex; flex-wrap: wrap; gap: 6px 8px; }
.chart-song-peak {
  display: inline-flex; align-items: baseline; gap: 5px; padding: 3px 10px;
  border: 1px solid rgba(255, 255, 255, .12); border-radius: 999px; font-size: 12.5px;
}
.chart-song-peak b { font-weight: 700; color: #cdd6ea; }
.chart-song-rank {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif; font-weight: 800;
  color: rgba(var(--group-accent-rgb), 1); font-variant-numeric: tabular-nums;
}
.chart-song-peak.is-peak-one { border-color: rgba(var(--group-accent-rgb), .5); background: rgba(var(--group-accent-rgb), .12); }
.chart-song-type { font-size: 10.5px; color: #8fa3cc; }
@media (max-width: 560px) { .chart-song-row { grid-template-columns: 1fr; gap: 6px; } }




/* ============================================================
   2026-06-18(3) 「アルバムを買うならどれ？」 Gundam参照のクリーン罫線リスト
   塗りカード/囲みボックスを使わず、ジャケット＋情報＋アクションを全幅ヘアラインで区切る。
   購入前チェック＋外部ストアはアルバムと分離した補助カード(現状維持)。
   ============================================================ */
.buy-pick-list { list-style: none; margin: 16px 0 0; padding: 0; }
.buy-pick {
  display: grid; grid-template-columns: 88px minmax(0, 1fr) minmax(148px, auto);
  gap: 20px; align-items: center; padding: 20px 2px;
  border-top: 1px solid rgba(255, 255, 255, .1);
}
.buy-pick:first-child { border-top: 0; padding-top: 4px; }
.buy-pick-art { display: block; width: 88px; height: 88px; margin: 0; border-radius: 7px; overflow: hidden; border: 1px solid rgba(255, 255, 255, .14); background: rgba(255, 255, 255, .04); }
.buy-pick-art img { width: 88px; height: 88px; object-fit: cover; display: block; }
.buy-pick-art-empty { background: linear-gradient(135deg, rgba(var(--group-accent-rgb), .2), rgba(255, 255, 255, .05)); }
.buy-pick-body { min-width: 0; display: grid; gap: 3px; }
.buy-pick-kicker { font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: rgba(var(--group-accent-rgb), 1); }
.buy-pick-title { margin: 0; font-size: 18px; font-weight: 800; line-height: 1.3; color: #f4f7ff; }
.buy-pick-meta { font-size: 12px; font-weight: 700; color: #93a1c4; }
.buy-pick-why { margin: 4px 0 0; font-size: 13.5px; line-height: 1.55; color: #c2cce2; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.buy-pick-actions { display: grid; gap: 8px; align-content: center; }
.buy-pick-actions .button-link { width: 100%; justify-content: center; text-align: center; font-size: 13px; padding: 9px 12px; }
@media (max-width: 640px) {
  .buy-pick { grid-template-columns: 64px 1fr; gap: 14px; }
  .buy-pick-art, .buy-pick-art img { width: 64px; height: 64px; }
  .buy-pick-actions { grid-column: 1 / -1; grid-auto-flow: column; }
}
.buy-aux { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 12px; margin-top: 20px; }
.buy-aux > * { margin: 0; }


/* ============================================================
   2026-06-18(4) 公式情報・入口曲を確認 / 似ているグループ:
   ナビ用塗りカード → 罫線リスト行（脱カードin カード徹底）
   ============================================================ */
#official-entry .card-list,
#next-three-pages .card-list,
#related-groups .card-list { display: block; gap: 0; }
#official-entry .authority-card,
#next-three-pages .authority-card,
#related-groups .related-group-card {
  background: transparent !important;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, .1);
  border-radius: 0;
  box-shadow: none;
  transform: none;
  padding: 16px 6px;
}
#official-entry .card-list > :first-child,
#next-three-pages .card-list > :first-child,
#related-groups .card-list > :first-child { border-top: 0; }
#official-entry .authority-card:hover,
#next-three-pages .authority-card:hover,
#related-groups .related-group-card:hover {
  background: rgba(var(--group-accent-rgb), .07) !important;
  transform: none;
  border-radius: 6px;
}
#related-groups .related-group-card { position: relative; padding-right: 36px; }
#related-groups .related-group-go { position: absolute; right: 8px; top: 18px; transition: right .15s ease; }
#related-groups .related-group-card:hover .related-group-go { right: 3px; }


/* ============================================================
   2026-06-18(5) 詳細系の編集感: セクション見出しのタイポ強弱＋ブランドaccent tick。
   濃紺一色の単調さを、過剰な色ではなくタイポと小さなaccentリズムで解く（抑制＝編集的）。
   ============================================================ */
.page[data-group-theme] .surface > h2,
.page[data-group-theme] .surface > .section-head h2,
.page[data-group-theme] .surface > div > h2 {
  position: relative;
  padding-left: 15px;
  font-weight: 800;
  letter-spacing: -.012em;
  line-height: 1.28;
}
.page[data-group-theme] .surface > h2::before,
.page[data-group-theme] .surface > .section-head h2::before,
.page[data-group-theme] .surface > div > h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: .2em;
  width: 4px;
  height: .78em;
  border-radius: 2px;
  background: linear-gradient(180deg, var(--group-accent, #6aa8ff), rgba(var(--group-accent-2-rgb), .55));
}


/* 2026-06-18(6) 受賞KPIの box-in-box 解消: 囲み枠/背景/tickを外し、surface上の
   数値スタット行（縦ヘアライン区切り・アクセント数字が主役）にする。 */
.achievement-kpis {
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
  margin: 6px 0 16px;
}
.achievement-kpi { padding: 2px 20px; }
.achievement-kpis .achievement-kpi:first-child { padding-left: 2px; }
.achievement-kpi::before { display: none; }
.achievement-kpi strong { font-size: clamp(26px, 2.8vw, 34px); }
@media (max-width: 560px) {
  .achievement-kpi { padding: 2px 14px; }
  .achievement-kpi:nth-child(3), .achievement-kpi:nth-child(4) { border-top: 0; }
}


/* ============================================================
   A-1 Editorial Database prototype (2026-06-18) — 詳細ページ署名
   Swiss×雑誌グレード: マイクロラベル / ledger見出し / 特大タブ数字 / accent一点集中
   ※試作。aespaで目視合意後に正式採用。CSSのみ・[data-group-theme]限定。
   ============================================================ */
/* (1) eyebrow → Swissマイクロラベル + 末尾ヘアライン */
.page[data-group-theme] .hero-kicker {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: 11px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase;
  color: rgba(var(--group-accent-rgb), .98);
  display: flex; align-items: center; gap: 12px; margin-bottom: 14px;
}
.page[data-group-theme] .hero-kicker::after {
  content: ""; flex: 1 1 auto; height: 1px; max-width: 220px;
  background: linear-gradient(90deg, rgba(var(--group-accent-rgb), .5), rgba(255,255,255,.05));
}
/* (2) セクション見出し → editorial ledger（accentティック廃止・ディスプレイ書体・下罫線） */
.page[data-group-theme] .surface > h2,
.page[data-group-theme] .surface > .section-head h2,
.page[data-group-theme] .surface > div > h2 {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-weight: 800; letter-spacing: -.015em; padding-left: 0;
}
.page[data-group-theme] .surface > h2::before,
.page[data-group-theme] .surface > .section-head h2::before,
.page[data-group-theme] .surface > div > h2::before { display: none; }
.page[data-group-theme] .surface > .section-head {
  border-bottom: 1px solid rgba(255, 255, 255, .13);
  padding-bottom: 12px; margin-bottom: 16px; align-items: end;
}
.page[data-group-theme] .surface > h2 {
  border-bottom: 1px solid rgba(255, 255, 255, .13);
  padding-bottom: 11px; margin-bottom: 14px;
}
/* (3) KPI → flagship 特大タブ数字（A-1の数字署名） */
.achievement-kpis { gap: 0; margin: 10px 0 18px; }
/* 区切りは border-right 1本に統一（旧 border-left を消して縦線の二重を防ぐ） */
.achievement-kpi { padding: 4px 26px 4px 0; margin-right: 26px; border-left: 0; }
.achievement-kpis .achievement-kpi:first-child { padding-left: 0; }
.achievement-kpi:not(:last-child) { border-right: 1px solid rgba(255,255,255,.14); }
.achievement-kpi strong {
  font-size: clamp(40px, 5.5vw, 60px); letter-spacing: -.03em; line-height: .95;
}
.achievement-kpi span {
  text-transform: uppercase; letter-spacing: .12em; font-size: 10.5px; font-weight: 800; margin-top: 4px;
}
/* (4) チャート順位 → 大きめタブ数字（数字署名を統一） */
.chart-song-rank { font-size: 15px; letter-spacing: -.01em; }

/* A-1 mobile: KPIは3列スタット行を維持（縦積み時に border-right が右縦線になる問題を防ぐ） */
@media (max-width: 560px) {
  .achievement-kpis { flex-wrap: nowrap; gap: 0; }
  .achievement-kpi { flex: 1 1 0; min-width: 0; padding: 4px 10px 4px 0; margin-right: 10px; border-top: 0; border-left: 0; }
  .achievement-kpi:not(:last-child) { border-right: 1px solid rgba(255, 255, 255, .14); }
  .achievement-kpi:last-child { margin-right: 0; padding-right: 0; }
  .achievement-kpi strong { font-size: clamp(28px, 8.5vw, 42px); }
  .achievement-kpi span { font-size: 9.5px; letter-spacing: .08em; }
}



/* ============================================================
   2026-06-18(6) メンバー基本プロフィール刷新: 数値ベント帯＋ラベル付きクラスタ分割表。
   18行の単調な大テーブルを、グループ詳細 #basic と同じ「数値主役＋罫線エディトリアル」へ。
   - 数値帯は group-basic-bento を継承し、タイル数(2〜4)に応じて列を可変化。
   - 表はラベル付きクラスタ(本名・呼び名/誕生・出身/体・性格/活動)で塗らず罫線でグルーピング。
   ============================================================ */
.member-profile-bento { grid-template-columns: repeat(var(--mp-bento-cols, 4), minmax(0, 1fr)); }
.member-profile-bento .group-basic-bento-tile { border-left: 1px solid var(--line); padding-left: 20px; }
.member-profile-bento .group-basic-bento-tile:first-child { border-left: 0; padding-left: 2px; }
@media (max-width: 560px) {
  .member-profile-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .member-profile-bento .group-basic-bento-tile { border-left: 1px solid var(--line); padding-left: 12px; }
  .member-profile-bento .group-basic-bento-tile:nth-child(2n+1) { border-left: 0; padding-left: 2px; }
  .member-profile-bento .group-basic-bento-tile:nth-child(n+3) { border-top: 1px solid var(--line); }
}

/* クラスタ見出し行: 塗らず、小さなブランドaccentラベルでグルーピング（脱・単調な大テーブル）。
   直前データ行の border-bottom が区切り線として効くため、上に余白を取り「帯」に見せる。 */
.member-profile-table.is-clustered tr.mp-cluster > th {
  width: auto;
  background: none;
  border-bottom: 0;
  padding: 22px 12px 6px;
  color: var(--group-accent, #8bd3ff);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .09em;
}
.member-profile-table.is-clustered tr.mp-cluster:first-child > th { padding-top: 2px; }
.member-profile-table.is-clustered tr.mp-cluster + tr > th,
.member-profile-table.is-clustered tr.mp-cluster + tr > td { border-top: 0; }

/* ============================================================
   堀①信頼性ゲート: メンバー基本プロフィール表の出典UI (2026-07-02)
   正本: docs/provenance_schema.md §4-6 / docs/plans/trust_provenance_layer_plan_2026-07-01.md §6
   塗り面1階層・バッジ多用禁止（design_language原則）。verifiedは無装飾、single_source/
   official_unconfirmedは控えめ注記、needs_review/unverifiedのみ枠線バッジで明示する。
   .wc2page .facts dd（wcRenderMemberDetail #basic）と .member-profile-table td（fallback #profile）
   の両方から共通で使う（DRY・build-static-pages.mjsが唯一の生成元）。
   ============================================================ */
.fact-provenance {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-left: 8px;
  vertical-align: middle;
}
.fact-note {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .01em;
  color: var(--muted);
  white-space: nowrap;
}
.fact-note-review {
  display: inline-flex;
  align-items: center;
  padding: 1px 8px;
  border-radius: var(--radius-pill, 999px);
  border: 1px solid rgba(var(--brand-rgb, 212, 20, 101), .55);
  color: var(--brand, #d41465);
  font-weight: 700;
}
.fact-source-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1px solid var(--line);
  color: var(--muted);
  font-size: 11px;
  line-height: 1;
  text-decoration: none;
  flex: none;
}
.fact-source-link:hover,
.fact-source-link:focus-visible {
  color: var(--brand, #d41465);
  border-color: var(--brand, #d41465);
}
.fact-verified {
  font-size: 10.5px;
  color: var(--muted);
  opacity: .85;
  white-space: nowrap;
}
.fact-verified-stale {
  color: var(--brand, #d41465);
  opacity: 1;
  font-weight: 600;
}
/* bento帯は数値主役の詰まったレイアウトのため、出典行は縦積み・より小さく抑える */
.group-basic-bento-tile .fact-provenance {
  display: flex;
  margin-left: 0;
  margin-top: 4px;
}
.group-basic-bento-tile .fact-note,
.group-basic-bento-tile .fact-verified { font-size: 9.5px; }


/* ============================================================
   A-1 hub署名（一覧/ハブへ横展開 2026-06-19）
   detail の数字署名(特大タブ数字)＋Swiss eyebrow をハブにも展開。
   db-hub(groups/members/starter-songs)=罫線スタット数字拡大、
   index-dashboard(calendar/stats/companies/generations等)=数字拡大(カード構造は維持)。
   ============================================================ */
/* eyebrow → Swissマイクロラベル＋末尾ヘアライン */
.db-hub-page .hub-hero .hero-eyebrow,
.index-dashboard-page .hero-eyebrow {
  letter-spacing: .2em;
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.db-hub-page .hub-hero .hero-eyebrow::after,
.index-dashboard-page .hero-eyebrow::after {
  content: "";
  flex: 0 0 auto;
  width: 44px;
  height: 1px;
  background: linear-gradient(90deg, var(--accent-2), transparent);
  opacity: .6;
}
/* stat numbers → 特大タブ数字（detail KPI署名に合わせる） */
.db-hub-page .starter-hero-stats strong,
.db-hub-page .hub-hero .hero-stats strong {
  font-size: clamp(38px, 5vw, 54px);
  letter-spacing: -.02em;
}
.index-dashboard-page .stat strong {
  font-size: clamp(34px, 4.5vw, 46px);
  letter-spacing: -.02em;
}
/* stat label → 控えめトラッキング（日本語が多いので強い大文字化はしない） */
.db-hub-page .hub-hero .hero-stats span,
.db-hub-page .starter-hero-stats span,
.index-dashboard-page .stat span {
  letter-spacing: .04em;
}


/* ============================================================
   A-1 hub署名 第2スライス（2026-06-19）: eyebrowトラッキング統一＋section-head ledger横展開
   ============================================================ */
/* 全eyebrowにSwissトラッキングを統一（小ラベルのリズムを全ページで揃える）。
   detail/hub-hero の強い .2em は既存の高specificityルールが優先。 */
[class*="eyebrow"] { letter-spacing: .14em; }

/* セクション見出しを ledger 化（見出し下の全幅ヘアライン罫）を一覧/ガイド/ダッシュボードへ。
   detail は [data-group-theme] で適用済み。ここは別スコープへ横展開。 */
.guide-page .section-head,
.editorial-commerce-page .section-head,
.index-dashboard-page .section-head,
.db-hub-page .section-head,
.calendar-page .section-head {
  border-bottom: 1px solid rgba(255, 255, 255, .12);
  padding-bottom: 12px;
  margin-bottom: 16px;
}


/* ============================================================
   A-1 深掘り① statカード罫線化（2026-06-19）
   ダッシュボード/ハブの塗りstatカード(枠+グラデ+影)→透明＋下ヘアラインの罫線台帳。
   背景非依存(transparent+border-bottom)で安全。数字は第1スライスで特大化済み。
   ============================================================ */
.index-dashboard-page .stats .stat,
.stats-dashboard-page .stats .stat {
  background: transparent !important;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .1);
  border-radius: 0;
  box-shadow: none;
  padding: 16px 18px 16px 0;
}
.index-dashboard-page .stats,
.stats-dashboard-page .stats {
  gap: 0 22px;
}
/* statラベルは大文字化せず控えめトラッキング（日本語ラベルが多い） */
.index-dashboard-page .stats .stat span,
.stats-dashboard-page .stats .stat span { letter-spacing: .03em; }


/* ============================================================
   2026-06-21 メンバー詳細の「次に見る3ページ／グッズ・アルバム／公式情報」を
   脱カード（塗りボックスのグリッド）→ 罫線エディトリアル・リンクリストへ。
   番号(01..)＋アイブロウ＋タイトル＋説明＋矢印。ホバーで行が右へ寄り矢印が動く。
   ============================================================ */
.detail-link-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.detail-link-list > li { margin: 0; }
.detail-link-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 18px 4px;
  border-bottom: 1px solid var(--line);
  color: inherit;
  text-decoration: none;
  transition: padding-left .18s cubic-bezier(.16,1,.3,1), background .18s ease;
}
.detail-link-list.no-index .detail-link-row { grid-template-columns: minmax(0, 1fr) auto; }
.detail-link-row:hover,
.detail-link-row:focus-visible {
  padding-left: 12px;
  background: linear-gradient(90deg, rgba(var(--group-accent-rgb, 120, 160, 255), .08), transparent 64%);
  outline: none;
}
.detail-link-index {
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: clamp(20px, 2.2vw, 27px);
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: 1;
  color: var(--group-accent, #8bd3ff);
  min-width: 2ch;
  text-align: right;
}
.detail-link-main { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.detail-link-eyebrow { font-size: 11px; font-weight: 800; letter-spacing: .07em; color: rgba(234, 240, 255, .56); }
.detail-link-title { font-size: 15.5px; font-weight: 800; letter-spacing: -.01em; color: #fff; line-height: 1.35; }
.detail-link-text { font-size: 13px; color: var(--muted, rgba(234, 240, 255, .72)); line-height: 1.55; }
.detail-link-arrow {
  font-size: 18px;
  font-weight: 700;
  color: var(--group-accent, #8bd3ff);
  transition: transform .18s cubic-bezier(.16,1,.3,1);
}
.detail-link-row:hover .detail-link-arrow,
.detail-link-row:focus-visible .detail-link-arrow { transform: translateX(5px); }

/* グッズ: 外部ストアは三次導線。塗りの大ボタン（縦積み）をやめ、ラベル＋静かな小ピル(↗)の
   1行帯にして本文リストと馴染ませる。`.affiliate-section .commerce-actions`(grid/width:100%)を
   使わない独自マークアップなので、大ボタン化の影響を受けない。 */
.member-store-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.member-store-label { font-size: 12px; font-weight: 800; letter-spacing: .03em; color: rgba(234, 240, 255, .56); }
.member-store-links { display: flex; flex-wrap: wrap; gap: 8px; }
.member-store-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  color: rgba(234, 240, 255, .86);
  text-decoration: none;
  background: none;
  transition: border-color .16s ease, color .16s ease, background .16s ease;
}
.member-store-link:hover,
.member-store-link:focus-visible {
  border-color: var(--group-accent, #8bd3ff);
  color: #fff;
  background: rgba(var(--group-accent-rgb, 120, 160, 255), .1);
  outline: none;
}
.member-store-ext { font-size: 11px; opacity: .65; }

@media (max-width: 560px) {
  .detail-link-row { gap: 12px; padding: 15px 2px; }
  .detail-link-index { font-size: 18px; }
  .detail-link-title { font-size: 14.5px; }
}


/* 2026-06-21 脱AIっぽさ(低リスク): メンバー詳細の見出しスケール対比を少し強める。
   24px固定の平坦な見出しを、本文との対比が効く範囲で大きく・締める（無個性の緩和）。 */
body[data-member-slug] .surface > h2,
body[data-member-slug] .surface > .section-head h2 {
  font-size: clamp(22px, 0.9vw + 19px, 27px);
  line-height: 1.22;
}


/* ============================================================
   2026-06-21 脱AIっぽさ(リズム): 全セクション同一の濃いパネル連続を崩す。
   二次的なセクション（経歴・次に見る3ページ・グッズ・公式情報）を「地」(borderless)に落とし、
   主役の内容パネル（見どころ・基本プロフィール・入口曲・FAQ）との緩急を作る。
   塗りを外し上ヘアライン＋余白で区切る（塗り面1階層／深い階層は罫線の方針に沿う）。
   ============================================================ */
/* パネルと地面の色差がほぼ無い（near-black）ため、塗りを外すだけでは差が読めない。
   そこで「地」セクションは、はっきり見える上ディバイダ＋ブランドaccentの起点ティック＋
   たっぷりの上余白で“編集的なセクション区切り”として読ませる。14098(border-top-color .08)
   を上回る詳細度で上書きする。 */
[data-static-primary] .detail-wide-flow > .surface.section-bare,
.detail-wide-flow .surface.section-bare {
  position: relative;
  background: none;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, .16);
  border-radius: 0;
  box-shadow: none;
  backdrop-filter: none;
  margin-top: 34px;
  margin-bottom: 8px;
  padding: 30px 2px 4px;
}
/* 区切り線の起点に短いブランドaccentを置き、機械的な全幅ヘアラインに表情を足す。 */
[data-static-primary] .detail-wide-flow > .surface.section-bare::before,
.detail-wide-flow .surface.section-bare::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 44px;
  height: 2px;
  background: var(--group-accent, #8bd3ff);
}
.detail-wide-flow .surface.section-bare > .section-head { margin-bottom: 12px; }
/* 地セクションは区切り線側にaccentティックを持つので、見出し側の縦ティックは重複。消す。 */
.page[data-group-theme] .detail-wide-flow .surface.section-bare > h2::before,
.page[data-group-theme] .detail-wide-flow .surface.section-bare > .section-head h2::before {
  display: none;
}
.detail-wide-flow .surface.section-bare > h2,
.detail-wide-flow .surface.section-bare > .section-head h2 { padding-left: 0; }
@media (max-width: 640px) {
  [data-static-primary] .detail-wide-flow > .surface.section-bare,
  .detail-wide-flow .surface.section-bare { margin-top: 28px; padding: 26px 0 4px; }
}

/* ============================================================
   WC FOUNDATION — 共有デザイントークン＋モーション＋汎用原子 (2026-06-23)
   正本判断: docs/design_language.md Decision Register。
   site.css と top-page.css に「同一ブロック」を置く（トップは site.css を
   リンクしないため）。完全に additive かつ class-scoped:
   新クラス(.reveal/.kinetic/.card-hover)を当てるまで既存ページの見た目は不変。
   scripting: enabled で reveal を隠すため no-JS / クローラは常に可視（static-first 厳守）。
   ============================================================ */
:root {
  --brand: #d41465;
  --brand-rgb: 212, 20, 101;
  --brand-2: #12d6cb;
  --brand-2-rgb: 18, 214, 203;
  --ease-out-expo: cubic-bezier(.16, 1, .3, 1);
  --dur-fast: .2s;
  --dur-normal: .5s;
  --dur-slow: .7s;
  --radius-lg: 16px;
  --radius-pill: 999px;
  --shadow-lg: 0 24px 60px rgba(0, 0, 0, .45);
}
/* scroll reveal — JS有効時のみ隠す（no-JS/クローラは常に可視） */
@media (scripting: enabled) {
  .reveal {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity var(--dur-slow) var(--ease-out-expo), transform var(--dur-slow) var(--ease-out-expo);
  }
  .reveal.in { opacity: 1; transform: none; }
  .reveal.d1 { transition-delay: .06s; }
  .reveal.d2 { transition-delay: .12s; }
  .reveal.d3 { transition-delay: .18s; }
  .reveal.d4 { transition-delay: .24s; }
  .reveal.d5 { transition-delay: .30s; }
  .reveal.d6 { transition-delay: .36s; }
}
/* kinetic headline — 文字を1字ずつ立ち上げる */
@keyframes kfCharIn { to { opacity: 1; transform: translateY(0); } }
.kinetic { display: inline-flex; flex-wrap: wrap; gap: .02em; }
@media (scripting: enabled) {
  .kinetic span {
    display: inline-block;
    transform: translateY(.5em);
    opacity: 0;
    animation: kfCharIn .7s var(--ease-out-expo) forwards;
  }
  .kinetic span:nth-child(1) { animation-delay: .04s; }
  .kinetic span:nth-child(2) { animation-delay: .09s; }
  .kinetic span:nth-child(3) { animation-delay: .14s; }
  .kinetic span:nth-child(4) { animation-delay: .19s; }
  .kinetic span:nth-child(5) { animation-delay: .24s; }
  .kinetic span:nth-child(6) { animation-delay: .29s; }
  .kinetic span:nth-child(7) { animation-delay: .34s; }
  .kinetic span:nth-child(8) { animation-delay: .39s; }
  .kinetic span:nth-child(9) { animation-delay: .44s; }
  .kinetic span:nth-child(10) { animation-delay: .49s; }
  .kinetic span:nth-child(11) { animation-delay: .54s; }
  .kinetic span:nth-child(12) { animation-delay: .59s; }
  .kinetic span:nth-child(13) { animation-delay: .64s; }
  .kinetic span:nth-child(14) { animation-delay: .69s; }
  .kinetic span:nth-child(15) { animation-delay: .74s; }
  .kinetic span:nth-child(16) { animation-delay: .79s; }
  .kinetic span:nth-child(n+17) { animation-delay: .84s; }
}
/* card hover lift — 署名色 glow に統一 */
.card-hover {
  transition: transform var(--dur-fast) var(--ease-out-expo), border-color var(--dur-fast), box-shadow var(--dur-fast);
}
.card-hover:hover {
  transform: translateY(-4px);
  border-color: rgba(var(--brand-rgb), .5);
  box-shadow: var(--shadow-lg);
}
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
  .kinetic span { opacity: 1 !important; transform: none !important; animation: none !important; }
  .card-hover { transition: none !important; }
}
/* WC FOUNDATION END */

@media (max-width: 680px) {
  body.calendar-hub-page .calendar-hub-main {
    width: calc(100vw - 28px) !important;
    max-width: calc(100vw - 28px) !important;
    margin-left: 14px;
    margin-right: 14px;
    box-sizing: border-box;
    overflow: hidden;
  }

  body.calendar-hub-page .calendar-hero-lede,
  body.calendar-hub-page .calendar-section-lede,
  body.calendar-hub-page .calendar-feature-copy p,
  body.calendar-hub-page .calendar-agenda-meta {
    max-width: min(28ch, calc(100vw - 56px));
    overflow-wrap: anywhere;
  }
}

/* === LEGACY SWEEP P1 2026-07-30 === */
.trust-doc-page {
  max-width: 1080px;
  padding-top: 14px;
}

.trust-doc-hero {
  position: relative;
  padding: clamp(44px, 7vw, 84px) 0 clamp(30px, 5vw, 52px);
  border-top: 1px solid rgba(255, 255, 255, .2);
  border-bottom: 1px solid rgba(255, 255, 255, .2);
  background: none;
}

.trust-doc-hero::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 72px;
  height: 2px;
  background: var(--brand);
}

.trust-doc-hero-inner {
  width: min(100%, 840px);
  margin: 0 auto;
}

.trust-doc-eyebrow {
  margin: 0 0 18px;
  color: var(--brand);
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .12em;
}

.trust-doc-hero h1 {
  max-width: 16ch;
  margin: 0;
  color: #fff;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: clamp(2.5rem, 6.2vw, 4.8rem);
  font-weight: 900;
  letter-spacing: -.045em;
  line-height: 1.02;
  text-wrap: balance;
}

.trust-doc-lead {
  max-width: 66ch;
  margin: 24px 0 0;
  color: rgba(238, 242, 255, .78);
  font-size: clamp(1rem, .95rem + .28vw, 1.16rem);
  line-height: 1.9;
}

.trust-doc-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin: clamp(28px, 4vw, 42px) 0 0;
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, .15);
  border-bottom: 1px solid rgba(255, 255, 255, .15);
}

.trust-doc-meta > div {
  display: grid;
  grid-template-columns: auto auto;
  gap: 10px;
  align-items: baseline;
  padding: 11px 22px 11px 0;
}

.trust-doc-meta > div + div {
  padding-left: 22px;
  border-left: 1px solid rgba(255, 255, 255, .15);
}

.trust-doc-meta dt {
  color: rgba(238, 242, 255, .52);
  font-size: .72rem;
  font-weight: 700;
}

.trust-doc-meta dd {
  margin: 0;
  color: rgba(255, 255, 255, .9);
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: .84rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
}

.trust-doc-toc {
  position: sticky;
  top: var(--chrome-header-height, 64px);
  z-index: 28;
  margin: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .16);
  background: rgba(5, 7, 11, .94);
  backdrop-filter: blur(18px);
}

.trust-doc-toc-inner {
  display: flex;
  align-items: stretch;
  min-width: 0;
}

.trust-doc-toc-label {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  padding: 0 18px 0 0;
  color: rgba(238, 242, 255, .48);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .1em;
}

.trust-doc-toc ul {
  display: flex;
  flex: 1 1 auto;
  gap: 24px;
  min-width: 0;
  margin: 0;
  padding: 0;
  overflow-x: auto;
  list-style: none;
  scrollbar-color: rgba(var(--brand-rgb), .68) transparent;
  scrollbar-width: thin;
}

.trust-doc-toc li {
  flex: 0 0 auto;
}

.trust-doc-toc a {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 52px;
  border-bottom: 2px solid transparent;
  color: rgba(238, 242, 255, .68);
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.3;
  text-decoration: none;
  white-space: nowrap;
  transition: border-color var(--dur-fast), color var(--dur-fast);
}

.trust-doc-toc a:hover,
.trust-doc-toc a.is-active {
  border-bottom-color: var(--brand);
  color: #fff;
}

.trust-doc-toc a:focus-visible,
.trust-related-link:focus-visible {
  outline: 2px solid #12d6cb;
  outline-offset: 3px;
}

.trust-doc-main {
  width: min(100%, 840px);
  margin: 0 auto;
  min-width: 0;
}

.trust-doc-summary {
  position: relative;
  margin: clamp(36px, 6vw, 64px) 0 0;
  padding: 20px 24px;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, .18);
  border-bottom: 1px solid rgba(255, 255, 255, .18);
  border-left: 3px solid var(--brand);
  border-radius: 0;
  background: none;
  color: rgba(255, 255, 255, .9);
  font-size: clamp(1rem, .96rem + .22vw, 1.12rem);
  line-height: 1.85;
}

.trust-doc-section {
  margin: 0;
  padding: clamp(44px, 6vw, 68px) 0;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, .18);
  border-radius: 0;
  background: none;
  box-shadow: none;
  scroll-margin-top: calc(var(--chrome-header-height, 64px) + 62px);
}

.trust-doc-summary + .trust-doc-section {
  margin-top: clamp(34px, 5vw, 52px);
}

.trust-doc-section > h2,
.trust-doc-section > .section-head h2 {
  margin: 0 0 24px;
  color: #fff;
  font-size: clamp(1.48rem, 1.2rem + .85vw, 2rem);
  font-weight: 850;
  letter-spacing: -.025em;
  line-height: 1.3;
  scroll-margin-top: calc(var(--chrome-header-height, 64px) + 62px);
  text-wrap: balance;
}

.trust-doc-section > .section-head {
  margin-bottom: 24px;
}

.trust-doc-section > .section-head h2 {
  margin-bottom: 8px;
}

.trust-doc-section > .section-head p {
  margin: 0;
}

.trust-doc-section p {
  max-width: 72ch;
  line-height: 1.9;
}

.trust-doc-section a:not(.trust-related-link) {
  text-decoration-color: rgba(var(--brand-rgb), .58);
  text-underline-offset: 3px;
}

.trust-qa-list,
.trust-related-list,
.trust-doc-page .faq-list,
.trust-doc-page .about-dl {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .16);
}

.trust-qa-row {
  display: grid;
  grid-template-columns: minmax(180px, .72fr) minmax(0, 1.5fr);
  gap: clamp(20px, 4vw, 56px);
  align-items: start;
  padding: 22px 2px;
  border-top: 1px solid rgba(255, 255, 255, .16);
}

.trust-qa-row dt {
  display: grid;
  gap: 7px;
  margin: 0;
}

.trust-qa-row dt span,
.trust-related-kicker {
  color: var(--brand);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .04em;
}

.trust-qa-row dt strong {
  color: #fff;
  font-size: 1rem;
  line-height: 1.5;
}

.trust-qa-row dd {
  margin: 0;
  color: rgba(238, 242, 255, .72);
  line-height: 1.8;
}

.trust-related-link {
  display: grid;
  grid-template-columns: 120px minmax(180px, .72fr) minmax(0, 1.35fr) auto;
  gap: clamp(14px, 2.5vw, 30px);
  align-items: center;
  min-width: 0;
  padding: 22px 2px;
  border-top: 1px solid rgba(255, 255, 255, .16);
  color: inherit;
  text-decoration: none;
}

.trust-related-link strong {
  color: #fff;
  font-size: 1rem;
  line-height: 1.45;
}

.trust-related-link p {
  margin: 0;
  color: rgba(238, 242, 255, .66);
  font-size: .88rem;
  line-height: 1.7;
}

.trust-related-arrow {
  color: var(--brand);
  font-family: "Outfit", system-ui, sans-serif;
  font-size: 1.2rem;
  transition: transform var(--dur-fast) var(--ease-out-expo);
}

.trust-related-link:hover .trust-related-arrow,
.trust-related-link:focus-visible .trust-related-arrow {
  transform: translateX(5px);
}

.trust-doc-page .card-hover:hover {
  transform: translateX(4px);
  border-color: rgba(var(--brand-rgb), .55);
  box-shadow: none;
}

.trust-doc-page .about-priority-list,
.trust-doc-page .about-criteria-list,
.trust-doc-page .about-design-list,
.trust-doc-page .about-tech-list,
.trust-doc-page .about-contact-list {
  display: grid;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  gap: 0;
  margin: 12px 0 18px;
  padding: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .15);
  list-style: none;
}

.trust-doc-page .about-priority-list li,
.trust-doc-page .about-criteria-list li,
.trust-doc-page .about-design-list li,
.trust-doc-page .about-tech-list li,
.trust-doc-page .about-contact-list li {
  display: flex;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  align-items: flex-start;
  gap: 14px;
  margin: 0;
  padding: 15px 2px;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, .15);
  border-radius: 0;
  background: none;
  color: rgba(238, 242, 255, .74);
  line-height: 1.8;
  overflow-wrap: anywhere;
}

.trust-doc-page .about-priority-list li:hover,
.trust-doc-page .about-criteria-list li:hover,
.trust-doc-page .about-design-list li:hover,
.trust-doc-page .about-tech-list li:hover,
.trust-doc-page .about-contact-list li:hover {
  border-color: rgba(255, 255, 255, .25);
  background: none;
}

.trust-doc-page .about-criteria-list li::before,
.trust-doc-page .about-design-list li::before,
.trust-doc-page .about-tech-list li::before,
.trust-doc-page .about-contact-list li::before {
  content: "";
  flex: 0 0 18px;
  width: 18px;
  height: 1px;
  margin-top: .9em;
  border-radius: 0;
  background: var(--brand);
}

.trust-doc-page .about-priority-list {
  counter-reset: trust-priority;
}

.trust-doc-page .about-priority-list li {
  counter-increment: trust-priority;
}

.trust-doc-page .about-priority-list li::before {
  content: counter(trust-priority, decimal-leading-zero);
  display: block;
  flex: 0 0 2.3em;
  width: 2.3em;
  height: auto;
  margin-top: .08em;
  border-radius: 0;
  background: none;
  color: var(--brand);
  font-family: "Outfit", system-ui, sans-serif;
  font-size: .78rem;
  font-variant-numeric: tabular-nums;
  line-height: 1.8;
}

.trust-doc-page .about-dl > div,
.trust-doc-page .faq-list > div {
  padding: 18px 2px;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, .16);
  border-radius: 0;
  background: none;
}

.trust-doc-page .about-dl dt,
.trust-doc-page .faq-list dt {
  margin: 0 0 7px;
  color: #fff;
  font-weight: 800;
  line-height: 1.55;
}

.trust-doc-page .about-dl dd,
.trust-doc-page .faq-list dd {
  margin: 0;
  color: rgba(238, 242, 255, .7);
  line-height: 1.8;
}

.trust-doc-page .about-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: 22px 0 28px;
  border-top: 1px solid rgba(255, 255, 255, .16);
  border-bottom: 1px solid rgba(255, 255, 255, .16);
}

.trust-doc-page .about-stat-card,
.trust-doc-page .about-stat-card-accent {
  gap: 5px;
  padding: 18px 16px;
  border: 0;
  border-left: 1px solid rgba(255, 255, 255, .16);
  border-radius: 0;
  background: none;
}

.trust-doc-page .about-stat-card:first-child {
  border-left: 0;
}

.trust-doc-page .about-stat-card strong {
  color: #fff;
  font-variant-numeric: tabular-nums;
}

.trust-doc-page code {
  padding: 1px 5px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 3px;
  background: rgba(255, 255, 255, .05);
  font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
  font-size: .86em;
}

@media (max-width: 760px) {
  .trust-doc-page {
    padding-inline: 18px;
  }

  .trust-doc-toc {
    top: var(--chrome-header-height-mobile, 56px);
  }

  .trust-doc-toc-label {
    padding-right: 14px;
  }

  .trust-doc-toc ul {
    gap: 20px;
  }

  .trust-doc-toc a {
    min-height: 48px;
  }

  .trust-doc-section,
  .trust-doc-section > h2 {
    scroll-margin-top: calc(var(--chrome-header-height-mobile, 56px) + 56px);
  }

  .trust-qa-row {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .trust-related-link {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 7px 16px;
  }

  .trust-related-kicker,
  .trust-related-link strong,
  .trust-related-link p {
    grid-column: 1;
  }

  .trust-related-arrow {
    grid-column: 2;
    grid-row: 1 / span 3;
  }

  .trust-doc-page .about-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trust-doc-page .about-stat-card:nth-child(odd) {
    border-left: 0;
  }

  .trust-doc-page .about-stat-card:nth-child(n + 3) {
    border-top: 1px solid rgba(255, 255, 255, .16);
  }
}

@media (max-width: 480px) {
  .trust-doc-hero h1 {
    font-size: clamp(2.25rem, 12vw, 3.4rem);
  }

  .trust-doc-meta {
    display: grid;
  }

  .trust-doc-meta > div,
  .trust-doc-meta > div + div {
    padding: 10px 0;
    border-left: 0;
  }

  .trust-doc-meta > div + div {
    border-top: 1px solid rgba(255, 255, 255, .12);
  }

  .trust-doc-summary {
    padding: 18px 16px;
  }
}

/* === LEGACY SWEEP P2 2026-07-30 === */
.glossary-doc-page .trust-doc-hero h1 { max-width: 19ch; }

.glossary-doc-category,
.glossary-doc-aliases {
  margin: 14px 0 0;
  color: rgba(238, 242, 255, .64);
  font-size: .84rem;
  line-height: 1.7;
}

.glossary-doc-category a {
  color: inherit;
  text-decoration-color: rgba(var(--brand-rgb), .58);
  text-underline-offset: 3px;
}

.glossary-doc-aliases { margin-top: 5px; }

.glossary-doc-quick-answer .tldr {
  max-width: 72ch;
  margin: 0;
  color: rgba(255, 255, 255, .9);
  font-size: clamp(1rem, .96rem + .22vw, 1.12rem);
  line-height: 1.85;
}

.glossary-doc-examples {
  display: grid;
  gap: 0;
  margin: 24px 0 0;
  padding: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .16);
  list-style: none;
}

.glossary-doc-examples li {
  position: relative;
  padding: 16px 2px 16px 28px;
  border-top: 1px solid rgba(255, 255, 255, .16);
  color: rgba(238, 242, 255, .72);
  line-height: 1.8;
}

.glossary-doc-examples li::before {
  content: "";
  position: absolute;
  top: 1.42em;
  left: 2px;
  width: 15px;
  height: 1px;
  background: var(--brand);
}

.glossary-doc-links {
  display: grid;
  margin: 24px 0 0;
  border-bottom: 1px solid rgba(255, 255, 255, .16);
}

.glossary-next-link { grid-template-columns: 120px minmax(0, 1fr) auto; }
.glossary-next-link strong { grid-column: 2; }
.glossary-next-link .trust-related-arrow { grid-column: 3; grid-row: 1 / span 2; }
.glossary-related-list .glossary-related-link { grid-template-columns: 120px minmax(150px, .7fr) minmax(0, 1.3fr) auto; }

.glossary-doc-empty {
  margin: 0;
  padding: 20px 2px;
  border-top: 1px solid rgba(255, 255, 255, .16);
  color: rgba(238, 242, 255, .68);
}

@media (max-width: 760px) {
  .glossary-next-link,
  .glossary-related-list .glossary-related-link { grid-template-columns: minmax(0, 1fr) auto; }

  .glossary-next-link .trust-related-kicker,
  .glossary-next-link strong,
  .glossary-related-list .glossary-related-link .trust-related-kicker,
  .glossary-related-list .glossary-related-link strong,
  .glossary-related-list .glossary-related-link p { grid-column: 1; }

  .glossary-next-link .trust-related-arrow,
  .glossary-related-list .glossary-related-link .trust-related-arrow { grid-column: 2; grid-row: 1 / span 3; }

}

/* === LEGACY SWEEP P5a 2026-07-30 === */
/* Shared axis-page grammar for generations now, then companies / MBTI /
   birthdays / initials in later P5 phases. Containers establish hierarchy
   with hairlines and spacing; only controls and action rails receive a fill. */
.db-axis-page {
  --db-axis-rule: rgba(255, 255, 255, .16);
  --db-axis-rule-strong: rgba(255, 255, 255, .26);
  --db-axis-muted: rgba(228, 236, 251, .7);
}

.db-axis-page > .breadcrumb {
  margin-bottom: clamp(20px, 3vw, 34px);
}

.index-dashboard-page .db-axis-page > .db-hub-hero {
  display: grid;
  min-height: 0;
  margin: 0;
  padding: 0 0 clamp(28px, 4vw, 44px);
  border: 0;
  border-bottom: 1px solid var(--db-axis-rule);
  border-radius: 0;
  background: none;
  box-shadow: none;
  backdrop-filter: none;
  overflow: visible;
}

.db-axis-page > .db-hub-hero::before,
.db-axis-page > .db-hub-hero::after {
  content: none;
}

.db-axis-page .calendar-hero-eyebrow {
  color: var(--brand);
}

.db-axis-page .calendar-hero-stats {
  width: 100%;
  max-width: none;
  margin-top: 10px;
  border-color: var(--db-axis-rule);
}

.db-axis-page .calendar-hero-stats li {
  min-width: 0;
  border-color: var(--db-axis-rule);
}

.db-axis-page .calendar-hero-stats strong {
  color: #fff;
  font-variant-numeric: tabular-nums;
}

.db-axis-page .calendar-hero-stats span,
.db-axis-page .calendar-hero-lede {
  color: var(--db-axis-muted);
}

.db-axis-page .calendar-hero-rail {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  width: 100%;
  max-width: none;
  gap: 10px;
}

.db-axis-page .calendar-hero-rail-item,
.db-axis-page .calendar-hero-rail-item.is-primary {
  min-width: 0;
  border: 1px solid var(--db-axis-rule);
  background: rgba(255, 255, 255, .035);
  box-shadow: none;
}

.db-axis-page .calendar-hero-rail-item.is-primary {
  border-color: rgba(var(--brand-rgb), .72);
  background: rgba(var(--brand-rgb), .12);
}

.db-axis-page .calendar-hero-rail-item:hover {
  border-color: rgba(var(--brand-rgb), .68);
  background: rgba(var(--brand-rgb), .08);
}

.index-dashboard-page .db-axis-main {
  display: grid;
  gap: 0;
  min-width: 0;
  padding: 0;
}

.db-axis-section {
  min-width: 0;
  margin: 0;
  padding: clamp(30px, 5vw, 54px) 0;
  border: 0;
  border-top: 1px solid var(--db-axis-rule);
  border-radius: 0;
  background: none;
  box-shadow: none;
  backdrop-filter: none;
}

.db-axis-main > .db-axis-section:first-child {
  border-top: 0;
}

.db-axis-section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 20px;
}

.db-axis-section-head h2,
.db-axis-cta h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(24px, 3vw, 36px);
  line-height: 1.16;
}

.db-axis-section-head p,
.db-axis-cta p {
  max-width: 68ch;
  margin: 8px 0 0;
  color: var(--db-axis-muted);
  line-height: 1.75;
}

.db-axis-link-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--db-axis-rule);
  border-bottom: 1px solid var(--db-axis-rule);
}

.db-axis-link {
  position: relative;
  display: grid;
  min-width: 0;
  gap: 6px;
  padding: 18px 42px 18px 2px;
  border: 0;
  border-top: 1px solid var(--db-axis-rule);
  border-radius: 0;
  background: none;
  color: inherit;
  text-decoration: none;
  box-shadow: none;
}

.db-axis-link:nth-child(-n + 2) {
  border-top: 0;
}

.db-axis-link:nth-child(even) {
  padding-left: 20px;
  border-left: 1px solid var(--db-axis-rule);
}

.db-axis-link strong {
  color: #fff;
  font-size: 17px;
  line-height: 1.45;
}

.db-axis-link p,
.db-axis-link .small {
  margin: 0;
  color: var(--db-axis-muted);
  line-height: 1.6;
}

.db-axis-link-arrow {
  position: absolute;
  top: 50%;
  right: 14px;
  color: var(--brand);
  transform: translateY(-50%);
  transition: transform 180ms ease;
}

.db-axis-link:hover {
  border-color: var(--db-axis-rule-strong);
  background: none;
  box-shadow: none;
}

.db-axis-link:hover .db-axis-link-arrow {
  transform: translate(4px, -50%);
}

.db-axis-filter-section .index-dashboard-filters {
  display: grid;
  grid-template-columns: minmax(200px, 1.4fr) repeat(4, minmax(130px, 1fr)) auto;
  gap: 12px;
  margin: 0;
  padding: 18px 0;
  border: 1px solid var(--db-axis-rule);
  border-width: 1px 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.db-axis-filter-section .filter-actions {
  align-items: end;
}

.db-axis-filter-section .filter-actions button {
  min-height: 44px;
  border-color: rgba(var(--brand-rgb), .55);
  background: rgba(var(--brand-rgb), .1);
  color: #fff;
}

.db-axis-page .db-axis-table-section.index-table-surface {
  padding-inline: 0;
  background: none;
}

.db-axis-page .index-table-surface .table-wrap {
  border-color: var(--db-axis-rule);
  border-radius: 0;
  background: none;
}

.db-axis-page .index-table-surface thead th {
  background: #0d1018;
}

.db-axis-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.db-axis-page .fandom-mobile-card {
  border: 0;
  border-top: 1px solid var(--db-axis-rule);
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.db-axis-page .fandom-mobile-card:first-child {
  border-top: 0;
}

.db-axis-page .card-hover:hover {
  box-shadow: none;
}

@media (max-width: 960px) {
  .db-axis-filter-section .index-dashboard-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .db-axis-filter-section .field:first-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 700px) {
  .db-axis-page {
    padding-inline: 18px;
  }

  .db-axis-page .calendar-hero-rail {
    display: flex;
    width: calc(100% + 18px);
    margin-right: -18px;
    padding-right: 18px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
  }

  .db-axis-page .calendar-hero-rail-item {
    flex: 0 0 min(74vw, 250px);
    scroll-snap-align: start;
  }

  .db-axis-section-head,
  .db-axis-cta {
    align-items: stretch;
    flex-direction: column;
  }

  .db-axis-link-grid {
    grid-template-columns: 1fr;
  }

  .db-axis-link,
  .db-axis-link:nth-child(even) {
    padding-left: 2px;
    border-left: 0;
  }

  .db-axis-link:nth-child(2) {
    border-top: 1px solid var(--db-axis-rule);
  }
}

/* === LEGACY SWEEP P5e 2026-07-31 ===
   Existing DB-hub heroes, charts, filters, tables, and rails stay intact.
   This block only gives their shared .page shell the P5a-d axis rhythm. */
.db-axis-page.debut-years-index-page,
.db-axis-page.debut-years-detail-page,
.db-axis-page.nationality-country-page,
.db-axis-page.boy-groups-page,
.db-axis-page.girl-groups-page,
.db-axis-page.solo-artists-page,
.db-axis-page.fandom-index-page,
.db-axis-page.stats-dashboard-page,
.db-axis-page.groups-index-page {
  --db-axis-rule: color-mix(in srgb, var(--line) 82%, var(--brand));
  --db-axis-rule-strong: color-mix(in srgb, var(--brand) 48%, var(--line));
}

.db-axis-page .db-axis-main {
  display: grid;
  gap: 0;
}

.db-axis-page .db-axis-section {
  border-radius: 0;
}

.db-axis-page .db-axis-section + .db-axis-section {
  border-top-color: var(--db-axis-rule);
}

.db-axis-page .db-axis-section-head {
  border-color: var(--db-axis-rule);
}

.db-axis-page .db-axis-link-grid .db-axis-link {
  border-color: var(--db-axis-rule);
}

.db-axis-page .db-axis-table-section,
.db-axis-page .db-axis-cta {
  border-color: var(--db-axis-rule);
}

@media (max-width: 700px) {
  .db-axis-page .db-axis-main {
    gap: 0;
  }
}

@media (max-width: 520px) {
  .db-axis-filter-section .index-dashboard-filters {
    grid-template-columns: 1fr;
  }

  .db-axis-filter-section .field:first-child {
    grid-column: auto;
  }

}

/* === LEGACY SWEEP P5d 2026-07-30 === */
/* Birthday and initial indexes inherit the P5a DB-axis grammar. These rules
   only neutralize their legacy card treatment; hierarchy stays hairline-led. */
.db-axis-page .birthday-month-card {
  border: 0;
  border-radius: 0;
  background: none;
  cursor: pointer;
}

.db-axis-page .birthday-month-card:hover,
.db-axis-page .birthday-month-card:focus-visible {
  border-color: var(--db-axis-rule-strong);
  background: rgba(var(--brand-rgb), .06);
  transform: none;
}

.db-axis-page .birthday-upcoming-card {
  border: 0;
  border-radius: 0;
  background: none;
}

.db-axis-page .birthday-upcoming-card > span:not(.member-row-visual):not(.db-axis-link-arrow) {
  color: var(--db-axis-muted);
}

/* === LEGACY SWEEP P5b 2026-07-30 === */
/* MBTI reuses the P5a DB-axis grammar. These scoped refinements keep its
   dense filter/table interaction readable without reintroducing filled cards. */
.db-axis-page .mbti-type-grid {
  gap: 0;
}

.db-axis-page .mbti-type-card,
.db-axis-page .mbti-type-card:hover,
.db-axis-page .mbti-type-card:focus-visible {
  min-height: 0;
  border-color: var(--db-axis-rule);
  border-radius: 0;
  background: none;
  box-shadow: none;
  transform: none;
}

.db-axis-page .mbti-type-card .mbti-nick,
.db-axis-page .mbti-chip-nav a:hover,
.db-axis-page .mbti-chip-nav a:focus-visible,
.db-axis-page .mbti-chip-nav a[aria-current="page"] {
  color: var(--brand);
}

.db-axis-page .mbti-type-card .mbti-count,
.db-axis-page .mbti-type-card .mbti-sample,
.db-axis-page .mbti-chip-nav a span {
  color: var(--db-axis-muted);
}

.db-axis-page .mbti-chip-nav {
  gap: 0;
}

.db-axis-page .mbti-chip-nav a,
.db-axis-page .mbti-chip-nav a[aria-current="page"] {
  border-color: var(--db-axis-rule);
  border-radius: 0;
  background: none;
}

.db-axis-page .mbti-chip-nav a:hover,
.db-axis-page .mbti-chip-nav a:focus-visible,
.db-axis-page .mbti-chip-nav a[aria-current="page"] {
  border-color: rgba(var(--brand-rgb), .66);
  background: rgba(var(--brand-rgb), .08);
}

.db-axis-filter-section .filters {
  margin: 0;
  padding: 18px 0;
  border-width: 1px 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  backdrop-filter: none;
}

.db-axis-filter-section .filters .filter-advanced {
  border-color: var(--db-axis-rule);
  border-radius: 0;
  background: none;
}

.db-axis-filter-section .filters .filter-advanced summary::after,
.db-axis-page .sort-header:hover,
.db-axis-page .sort-header:focus-visible,
.db-axis-page .sort-header[aria-sort="ascending"]::after,
.db-axis-page .sort-header[aria-sort="descending"]::after {
  color: var(--brand);
}

.db-axis-page .stats .stat strong,
.db-axis-page #mbtiResultTotal,
.db-axis-page #mbtiResultCount {
  font-variant-numeric: tabular-nums;
}

/* === LEGACY SWEEP P5c 2026-07-30 === */
/* Companies reuse the P5a DB-axis shell. These rules only dismantle the
   company-specific nested cards into definitions and hairline-separated rows. */
.db-axis-page.companies-index-page .companies-filter-panel {
  grid-template-columns: minmax(240px, 1.5fr) minmax(260px, .85fr);
}

.db-axis-page.companies-index-page .companies-filter-panel .filter-primary {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto;
  gap: 12px;
}

.db-axis-page.company-detail-page .db-axis-filter-section .index-dashboard-filters {
  grid-template-columns: minmax(240px, 1.5fr) minmax(210px, .8fr) auto;
}

.db-axis-page.company-detail-page .company-fact-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin: 0;
  border-top: 1px solid var(--db-axis-rule);
  border-bottom: 1px solid var(--db-axis-rule);
}

.db-axis-page.company-detail-page .company-fact-grid > div {
  display: grid;
  grid-template-columns: minmax(150px, .34fr) minmax(0, 1fr);
  gap: 20px;
  align-items: baseline;
  padding: 16px 2px;
  border-top: 1px solid var(--db-axis-rule);
}

.db-axis-page.company-detail-page .company-fact-grid > div:first-child {
  border-top: 0;
}

.db-axis-page.company-detail-page .company-fact-grid dt {
  color: var(--brand);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .04em;
}

.db-axis-page.company-detail-page .company-fact-grid dd {
  min-width: 0;
  margin: 0;
  color: #f4f7ff;
  font-size: 16px;
  font-weight: 750;
  line-height: 1.7;
  overflow-wrap: anywhere;
}

.db-axis-page.company-detail-page .company-history-timeline {
  gap: 0;
  border-top: 1px solid var(--db-axis-rule);
  border-bottom: 1px solid var(--db-axis-rule);
}

.db-axis-page.company-detail-page .company-history-timeline .timeline-item {
  grid-template-columns: 88px minmax(112px, .32fr) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  padding: 20px 2px;
  border: 0;
  border-top: 1px solid var(--db-axis-rule);
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.db-axis-page.company-detail-page .company-history-timeline .timeline-item:first-child {
  border-top: 0;
}

.db-axis-page.company-detail-page .company-history-timeline .timeline-item > strong {
  display: block;
  justify-self: start;
  width: auto;
  min-width: 0;
  min-height: 0;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: none;
  color: #fff;
  font-family: "Outfit", "Noto Sans JP", system-ui, sans-serif;
  font-size: clamp(24px, 3vw, 34px);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.db-axis-page.company-detail-page .company-history-timeline .timeline-phase {
  justify-self: start;
  min-width: 0;
  min-height: 0;
  border-color: rgba(var(--brand-rgb), .5);
  border-radius: 4px;
  padding: 5px 8px;
  background: rgba(var(--brand-rgb), .12);
  color: #ffb8d1;
}

.db-axis-page.company-detail-page .company-history-timeline .timeline-item > p {
  color: var(--db-axis-muted);
}

.db-axis-page.company-detail-page .company-related-list,
.db-axis-page.company-detail-page .company-artist-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  border-top: 1px solid var(--db-axis-rule);
  border-bottom: 1px solid var(--db-axis-rule);
}

.db-axis-page.company-detail-page .company-related-card,
.db-axis-page.company-detail-page .company-artist-card {
  display: grid;
  grid-template-columns: minmax(180px, .38fr) minmax(0, 1fr);
  gap: 10px 24px;
  min-height: 0;
  padding: 22px 2px;
  border: 0;
  border-top: 1px solid var(--db-axis-rule);
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.db-axis-page.company-detail-page .company-related-card:first-child,
.db-axis-page.company-detail-page .company-artist-card:first-child {
  border-top: 0;
}

.db-axis-page.company-detail-page .company-related-head,
.db-axis-page.company-detail-page .company-artist-head {
  grid-row: 1 / span 3;
  align-content: start;
}

.db-axis-page.company-detail-page .company-related-head .card-kicker,
.db-axis-page.company-detail-page .company-artist-head .card-kicker {
  color: var(--brand);
}

.db-axis-page.company-detail-page .company-label-concept,
.db-axis-page.company-detail-page .company-label-artists,
.db-axis-page.company-detail-page .company-label-note {
  width: auto;
  max-width: none;
  margin: 0;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: none;
}

.db-axis-page.company-detail-page .company-label-artists {
  color: var(--db-axis-muted);
}

.db-axis-page.company-detail-page .company-label-artists span {
  color: var(--brand);
}

.db-axis-page.company-detail-page .company-label-note {
  color: var(--db-axis-muted);
}

.db-axis-page.company-detail-page .company-artist-meta {
  width: auto;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: none;
  color: var(--db-axis-muted);
  font-variant-numeric: tabular-nums;
}

.db-axis-page.company-detail-page .company-artist-links {
  min-width: 0;
  border: 0;
  padding: 0;
}

.db-axis-page.company-detail-page .company-artist-links > span {
  color: var(--brand);
}

.db-axis-page.company-detail-page .company-artist-links > .db-axis-link-grid {
  display: grid;
  width: 100%;
  gap: 0;
}

.db-axis-page.company-detail-page .company-artist-chip {
  display: grid;
  min-height: 0;
  border: 0;
  border-top: 1px solid var(--db-axis-rule);
  border-radius: 0;
  padding: 12px 38px 12px 2px;
  background: none;
  color: inherit;
}

.db-axis-page.company-detail-page .company-artist-chip:nth-child(-n + 2) {
  border-top: 0;
}

.db-axis-page.company-detail-page .company-artist-chip:nth-child(even) {
  padding-left: 18px;
  border-left: 1px solid var(--db-axis-rule);
}

.db-axis-page.company-detail-page .company-artist-chip:hover {
  border-color: var(--db-axis-rule-strong);
  background: none;
}

.db-axis-page.companies-index-page .fandom-table th,
.db-axis-page.companies-index-page .fandom-table td,
.db-axis-page.company-detail-page .fandom-table th,
.db-axis-page.company-detail-page .fandom-table td,
.db-axis-page.company-detail-page .table-link {
  overflow-wrap: anywhere;
}

.db-axis-page.companies-index-page .faq-list {
  margin: 0;
  border-top: 1px solid var(--db-axis-rule);
  border-bottom: 1px solid var(--db-axis-rule);
}

.db-axis-page.companies-index-page .faq-list > div {
  margin: 0;
  border: 0;
  border-top: 1px solid var(--db-axis-rule);
  border-radius: 0;
  padding: 18px 2px;
  background: none;
}

.db-axis-page.companies-index-page .faq-list > div:first-child {
  border-top: 0;
}

@media (max-width: 960px) {
  .db-axis-page.companies-index-page .companies-filter-panel,
  .db-axis-page.company-detail-page .db-axis-filter-section .index-dashboard-filters {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .db-axis-page.companies-index-page .companies-filter-panel .filter-primary,
  .db-axis-page.company-detail-page .company-fact-grid > div,
  .db-axis-page.company-detail-page .company-related-card,
  .db-axis-page.company-detail-page .company-artist-card {
    grid-template-columns: 1fr;
  }

  .db-axis-page.company-detail-page .company-related-head,
  .db-axis-page.company-detail-page .company-artist-head {
    grid-row: auto;
  }

  .db-axis-page.company-detail-page .company-history-timeline .timeline-item {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px 14px;
  }

  .db-axis-page.company-detail-page .company-history-timeline .timeline-item > p {
    grid-column: 1 / -1;
  }

  .db-axis-page.company-detail-page .company-artist-chip,
  .db-axis-page.company-detail-page .company-artist-chip:nth-child(even) {
    padding-left: 2px;
    border-left: 0;
  }

  .db-axis-page.company-detail-page .company-artist-chip:nth-child(2) {
    border-top: 1px solid var(--db-axis-rule);
  }
}
/* === LEGACY SWEEP P6 2026-07-31 ===
   Motion parity only: preserve the existing starter-songs hero while giving
   its three figures equal breathing room. Japanese functional labels use the
   site signature magenta instead of the retired cyan eyebrow accent. */
.db-hub-page .starter-hero-stats {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.db-hub-page .starter-hero-spotlight-kicker {
  color: var(--brand);
}

@media (max-width: 760px) {
  .db-hub-page .starter-hero-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* === LEGACY SWEEP P3 2026-07-31 === */
/* Methodology remains a long-form document family. Ranking tables and metric
   directories reuse the established DB-axis hairline grammar without adding
   another filled surface or card layer. */
.methodology-doc-page {
  --methodology-rule: rgba(255, 255, 255, .16);
  --methodology-muted: rgba(228, 236, 251, .7);
}

.methodology-doc-page .trust-doc-hero h1 {
  max-width: 19ch;
}

.methodology-doc-page .trust-doc-meta strong {
  color: var(--brand);
  font-variant-numeric: tabular-nums;
}

.methodology-doc-page .trust-doc-main.db-axis-main {
  display: grid;
  gap: 0;
  min-width: 0;
  padding: 0;
}

.methodology-metric-page .trust-doc-main {
  width: 100%;
}

.methodology-doc-page .trust-doc-section.db-axis-section {
  padding: clamp(44px, 6vw, 68px) 0;
  border-top-color: var(--methodology-rule);
}

.methodology-doc-page .trust-quick-answer + .trust-doc-section {
  border-top: 1px solid var(--methodology-rule);
}

.methodology-doc-page .methodology-metric-list {
  display: block;
  border-color: var(--methodology-rule);
}

.methodology-doc-page .methodology-metric-link,
.methodology-doc-page .methodology-metric-link:nth-child(even) {
  grid-template-columns: minmax(150px, .46fr) minmax(0, 1.54fr);
  gap: 18px 30px;
  align-items: start;
  padding: 20px 46px 20px 2px;
  border-left: 0;
  border-top: 1px solid var(--methodology-rule);
}

.methodology-doc-page .methodology-metric-link:first-child {
  border-top: 0;
}

.methodology-doc-page .methodology-metric-link p {
  color: var(--methodology-muted);
}

.methodology-sample-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--methodology-rule);
  border-bottom: 1px solid var(--methodology-rule);
}

.methodology-sample-row {
  display: grid;
  grid-template-columns: minmax(150px, .46fr) minmax(0, 1.54fr);
  gap: 18px 30px;
  align-items: baseline;
  padding: 18px 2px;
  border-top: 1px solid var(--methodology-rule);
}

.methodology-sample-row:first-child {
  border-top: 0;
}

.methodology-sample-row dt {
  color: rgba(255, 255, 255, .9);
  font-weight: 800;
  line-height: 1.5;
}

.methodology-sample-row dd {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 14px;
  margin: 0;
  color: var(--methodology-muted);
  line-height: 1.65;
}

.methodology-sample-row dd strong {
  color: var(--brand);
  font-variant-numeric: tabular-nums;
}

.methodology-ranking-section .compact-table {
  overflow-x: auto;
  scrollbar-color: rgba(var(--brand-rgb), .68) transparent;
  scrollbar-width: thin;
}

.methodology-ranking-section .fandom-table {
  min-width: 820px;
}

.methodology-ranking-section .fandom-table th,
.methodology-ranking-section .fandom-table td {
  vertical-align: middle;
}

.methodology-ranking-section .fandom-table th:first-child,
.methodology-ranking-section .fandom-table td:first-child,
.methodology-ranking-section .fandom-table td:nth-child(3) {
  font-variant-numeric: tabular-nums;
}

.methodology-ranking-section .fandom-table a {
  color: #fff;
  text-decoration-color: rgba(var(--brand-rgb), .65);
  text-underline-offset: 3px;
}

.methodology-ranking-section .fandom-table a:hover,
.methodology-ranking-section .fandom-table a:focus-visible {
  color: var(--brand);
}

@media (max-width: 700px) {
  .methodology-doc-page .methodology-metric-link,
  .methodology-doc-page .methodology-metric-link:nth-child(even),
  .methodology-sample-row {
    grid-template-columns: 1fr;
    gap: 7px;
    padding-left: 2px;
    border-left: 0;
  }

  .methodology-doc-page .methodology-metric-link:nth-child(2) {
    border-top: 1px solid var(--methodology-rule);
  }

  .methodology-sample-row dd {
    display: grid;
    gap: 3px;
  }
}

/* === LEGACY SWEEP P4 2026-07-31 === */
/* Utility pages reuse the P5 DB-axis grammar without inventing stats or rails.
   Hierarchy stays hairline-led; magenta is the only decorative action color. */
.db-axis-page.utility-page > .db-hub-hero > .button-link {
  justify-self: start;
  min-width: min(100%, 220px);
  margin-top: 20px;
  border-color: rgba(var(--brand-rgb), .7);
  background: rgba(var(--brand-rgb), .14);
  color: #fff;
}

.db-axis-page.utility-page > .db-hub-hero > .button-link:hover,
.db-axis-page.utility-page > .db-hub-hero > .button-link:focus-visible {
  border-color: rgba(var(--brand-rgb), .92);
  background: rgba(var(--brand-rgb), .2);
}

.db-axis-page.utility-page .db-axis-cta {
  display: grid;
  align-items: stretch;
}

.db-axis-page.unit-index-page .unit-card-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
}

.db-axis-page.unit-index-page .unit-card {
  grid-template-columns: minmax(118px, 168px) minmax(0, 1fr);
  gap: 18px;
  padding: 18px 20px 18px 2px;
  border-radius: 0;
  background: none;
  box-shadow: none;
  overflow: hidden;
}

.db-axis-page.unit-index-page .unit-card:nth-child(even) {
  padding-left: 20px;
}

.db-axis-page.unit-index-page .unit-card-thumb {
  align-self: start;
  border: 1px solid var(--db-axis-rule);
  border-radius: 6px;
  background: rgba(255, 255, 255, .035);
}

.db-axis-page.unit-index-page .unit-card-kicker,
.db-axis-page.unit-index-page .unit-card-body .card-go {
  color: var(--brand);
}

.db-axis-page.unit-index-page .unit-card-body p {
  color: var(--db-axis-muted);
}

.db-axis-page.compare-tool-page .compare-tool-panel {
  margin: 0;
  padding-inline: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.db-axis-page.compare-tool-page .compare-tool-toggles button,
.db-axis-page.compare-tool-page .compare-picker select {
  border-color: var(--db-axis-rule);
  background: rgba(255, 255, 255, .045);
  box-shadow: none;
}

.db-axis-page.compare-tool-page .compare-tool-toggles button:hover,
.db-axis-page.compare-tool-page .compare-tool-toggles button:focus-visible,
.db-axis-page.compare-tool-page .compare-picker select:hover,
.db-axis-page.compare-tool-page .compare-picker select:focus-visible {
  border-color: rgba(var(--brand-rgb), .72);
  background: rgba(var(--brand-rgb), .08);
}

.db-axis-page.compare-tool-page .compare-picker span {
  border: 1px solid rgba(var(--brand-rgb), .62);
  background: rgba(var(--brand-rgb), .12);
  color: #fff;
}

.db-axis-page.compare-tool-page .compare-picker select:disabled {
  color: var(--db-axis-muted);
  cursor: progress;
  opacity: .72;
}

.db-axis-page.compare-tool-page .compare-verdict-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  padding-block: clamp(24px, 4vw, 40px);
  border-bottom: 1px solid var(--db-axis-rule);
}

.db-axis-page.compare-tool-page .compare-verdict-card {
  min-height: 0;
  padding: 4px 20px;
  border: 0;
  border-left: 1px solid var(--db-axis-rule);
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.db-axis-page.compare-tool-page .compare-verdict-card:first-child {
  padding-left: 2px;
  border-left: 0;
}

.db-axis-page.compare-tool-page .compare-verdict-card span {
  color: var(--brand);
}

.db-axis-page.compare-tool-page .compare-verdict-card p {
  color: var(--db-axis-muted);
}

.db-axis-page.compare-tool-page .compare-tool-scroll {
  border: 1px solid var(--db-axis-rule);
  border-width: 1px 0;
  border-radius: 0;
  background: none;
}

.db-axis-page.compare-tool-page .compare-tool-table th,
.db-axis-page.compare-tool-page .compare-tool-table td {
  border-color: var(--db-axis-rule);
}

.db-axis-page.compare-tool-page .compare-tool-table thead th,
.db-axis-page.compare-tool-page .compare-tool-table th:first-child {
  background: #0d1018;
}

.db-axis-page.compare-tool-page .compare-tool-table td.is-different {
  background: rgba(var(--brand-rgb), .09);
  color: #fff;
}

.db-axis-page.compare-tool-page .compare-tool-actions .button-link {
  border-color: rgba(var(--brand-rgb), .5);
  background: rgba(var(--brand-rgb), .08);
}

@media (max-width: 760px) {
  .db-axis-page.unit-index-page .unit-card-grid,
  .db-axis-page.compare-tool-page .compare-verdict-grid {
    grid-template-columns: 1fr;
  }

  .db-axis-page.unit-index-page .unit-card,
  .db-axis-page.unit-index-page .unit-card:nth-child(even) {
    grid-template-columns: minmax(104px, 34vw) minmax(0, 1fr);
    padding-left: 2px;
    border-left: 0;
  }

  .db-axis-page.unit-index-page .unit-card:nth-child(2) {
    border-top: 1px solid var(--db-axis-rule);
  }

  .db-axis-page.compare-tool-page .compare-verdict-card,
  .db-axis-page.compare-tool-page .compare-verdict-card:first-child {
    padding: 16px 2px;
    border-left: 0;
    border-top: 1px solid var(--db-axis-rule);
  }

  .db-axis-page.compare-tool-page .compare-verdict-card:first-child {
    border-top: 0;
  }
}

@media (max-width: 480px) {
  .db-axis-page.utility-page > .db-hub-hero > .button-link {
    width: 100%;
  }

  .db-axis-page.unit-index-page .unit-card,
  .db-axis-page.unit-index-page .unit-card:nth-child(even) {
    grid-template-columns: 1fr;
  }
}

/* === LEGACY SWEEP P7 2026-07-31 === */
.db-axis-page.english-page {
  --db-axis-rule: color-mix(in srgb, var(--line) 82%, var(--brand));
  --db-axis-rule-strong: color-mix(in srgb, var(--brand) 48%, var(--line));
}

.english-page .calendar-hero-lede .tldr {
  display: contents;
}

.english-page .english-fact-grid,
.english-page .english-editorial-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  border-top: 1px solid var(--db-axis-rule);
  border-bottom: 1px solid var(--db-axis-rule);
}

.english-page .english-fact-grid > div,
.english-page .english-editorial-item {
  min-width: 0;
  padding: 18px 20px 18px 2px;
}

.english-page .english-fact-grid > div:nth-child(even),
.english-page .english-editorial-item:nth-child(even) {
  padding-left: 20px;
  border-left: 1px solid var(--db-axis-rule);
}

.english-page .english-fact-grid > div:nth-child(n + 3),
.english-page .english-editorial-item:nth-child(n + 3) {
  border-top: 1px solid var(--db-axis-rule);
}

.english-page .english-fact-grid dt,
.english-page .english-editorial-item .card-kicker {
  margin: 0 0 7px;
  color: var(--brand);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.english-page .english-fact-grid dd,
.english-page .english-editorial-item p,
.english-page .english-source-cta p {
  margin: 0;
  color: var(--db-axis-muted);
  line-height: 1.7;
}

.english-page .english-editorial-item strong {
  display: block;
  margin-bottom: 7px;
  color: #fff;
  font-size: 17px;
  line-height: 1.45;
}

.english-page .english-source-cta > div {
  max-width: 760px;
}

.english-page .english-source-cta .button-link {
  flex: 0 0 auto;
}

@media (max-width: 700px) {
  .english-page .english-fact-grid,
  .english-page .english-editorial-list {
    grid-template-columns: 1fr;
  }

  .english-page .english-fact-grid > div,
  .english-page .english-fact-grid > div:nth-child(even),
  .english-page .english-editorial-item,
  .english-page .english-editorial-item:nth-child(even) {
    padding-left: 2px;
    border-left: 0;
  }

  .english-page .english-fact-grid > div:nth-child(n + 2),
  .english-page .english-editorial-item:nth-child(n + 2) {
    border-top: 1px solid var(--db-axis-rule);
  }

  .english-page .english-source-cta .button-link {
    width: 100%;
  }
}
