@charset "UTF-8";
/*!
 * Records Theme — メインスタイル
 *
 * 設計方針:
 *   - 参考: tkma.co.jp の端正な余白 × モダンタイポグラフィ
 *   - 全体トーン: 白背景 × 濃紺寄りのブラック × ソフトグレー
 *   - ジャンル別カラーは「アクセント」として限定使用
 *   - リリース種別は楕円形のピルバッジで視認性確保
 *   - モバイルファースト、ブレークポイント: 640 / 900 / 1200
 */

/* =============================================================
 * 1. CSS 変数（デザイントークン）
 * ============================================================= */
:root {
	/* -------- Palette（ベース） -------- */
	--rc-bg:            #ffffff;
	--rc-bg-alt:        #f6f7f8;
	--rc-bg-dark:       #0b0d10;
	--rc-surface:       #ffffff;
	--rc-border:        #e5e7ea;
	--rc-border-strong: #cfd3d8;
	--rc-text:          #15181c;
	--rc-text-muted:    #5a6068;
	--rc-text-invert:   #f6f7f8;
	--rc-accent:        #0b0d10;

	/* -------- Genre Accent Colors -------- */
	/* 演歌・歌謡曲（赤系） */
	--rc-genre-red:        #b2322b;
	--rc-genre-red-soft:   #fbe9e7;
	/* J-POP / J-ROCK（緑系） */
	--rc-genre-green:      #2f7d5a;
	--rc-genre-green-soft: #e5f3ec;
	/* クラシック・フュージョン・ジャズ・ヒーリング（黄系） */
	--rc-genre-yellow:     #b6851b;
	--rc-genre-yellow-soft:#fbf2d9;
	/* その他（青系） */
	--rc-genre-blue:       #2a5bb6;
	--rc-genre-blue-soft:  #e3ecfa;

	/* -------- Release Type Badge Colors -------- */
	--rc-rt-pink:   #d63c78;  /* CDシングル */
	--rc-rt-purple: #5b3fa8;  /* CDアルバム */
	--rc-rt-teal:   #1f8a88;  /* 音楽配信   */
	--rc-rt-gray:   #6b7280;

	/* -------- Typography -------- */
	--rc-font-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN",
	                "Hiragino Sans", "Yu Gothic Medium", "Meiryo", sans-serif;
	--rc-font-en:   "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI",
	                Helvetica, Arial, sans-serif;

	/* -------- Spacing -------- */
	--rc-space-xs: 4px;
	--rc-space-sm: 8px;
	--rc-space-md: 16px;
	--rc-space-lg: 32px;
	--rc-space-xl: 64px;
	--rc-space-2xl: 96px;

	/* -------- Radius / Elevation -------- */
	--rc-radius-sm: 4px;
	--rc-radius-md: 8px;
	--rc-radius-lg: 16px;
	--rc-radius-pill: 999px;
	--rc-shadow-sm:  0 1px 2px rgba(15,18,22,.06);
	--rc-shadow-md:  0 4px 16px rgba(15,18,22,.08);
	--rc-shadow-lg:  0 12px 32px rgba(15,18,22,.12);

	/* -------- Layout -------- */
	--rc-container: 1200px;
	--rc-transition: .2s cubic-bezier(.4,0,.2,1);
}

/* =============================================================
 * 2. Reset / Base
 * ============================================================= */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--rc-font-sans);
	font-weight: 400;
	line-height: 1.75;
	color: var(--rc-text);
	background: var(--rc-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-feature-settings: "palt";
}

img, svg { max-width: 100%; height: auto; display: block; }

a {
	color: var(--rc-text);
	text-decoration: none;
	transition: color var(--rc-transition), opacity var(--rc-transition);
}
a:hover { opacity: .7; }

h1, h2, h3, h4, h5, h6 {
	margin: 0;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .02em;
}

p { margin: 0 0 1em; }

/* Container / Utility */
.container {
	width: 100%;
	max-width: var(--rc-container);
	margin-inline: auto;
	padding-inline: clamp(16px, 4vw, 32px);
}

.screen-reader-text {
	position: absolute !important;
	clip: rect(1px,1px,1px,1px);
	clip-path: inset(50%);
	width: 1px; height: 1px;
	overflow: hidden;
	white-space: nowrap;
}
.skip-link {
	position: absolute; top: -40px; left: 0;
	background: var(--rc-bg-dark); color: var(--rc-text-invert);
	padding: 8px 14px; z-index: 1000;
}
.skip-link:focus { top: 0; }

/* =============================================================
 * 3. Header / Site Branding
 * ============================================================= */
.site-header {
	background: var(--rc-bg);
	border-bottom: 1px solid var(--rc-border);
	position: relative;
	z-index: 50;
}
.site-branding {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--rc-space-md);
	padding: var(--rc-space-md) clamp(16px, 4vw, 32px);
	max-width: var(--rc-container);
	margin-inline: auto;
}
.site-branding-inner { display: flex; align-items: baseline; gap: var(--rc-space-md); flex-wrap: wrap; }
.site-title {
	margin: 0;
	font-family: var(--rc-font-en);
	font-size: clamp(18px, 2.2vw, 24px);
	font-weight: 700;
	letter-spacing: .04em;
}
.site-title a { color: var(--rc-text); }
.site-description {
	margin: 0;
	font-size: 12px;
	color: var(--rc-text-muted);
	letter-spacing: .05em;
}
/* カスタムロゴ（横型ロゴ対応：縦横比固定 + 上限制御） */
.site-logo { display: flex; align-items: center; }
.site-logo a {
	display: inline-flex;
	align-items: center;
	line-height: 0;
}
.site-logo img {
	display: block;
	max-height: clamp(40px, 6.4vw, 60px);
	max-width: clamp(180px, 28vw, 320px);
	width: auto;
	height: auto;
	object-fit: contain;
}
@media (max-width: 600px) {
	.site-logo img {
		max-height: 44px;
		max-width: 220px;
	}
}

/* --- メインナビゲーション --- */
/* トップレベル ul のみ横並び flex（`>` セレクタでサブメニュー除外）*/
.main-navigation > ul,
.main-navigation #primary-menu {
	list-style: none; padding: 0; margin: 0;
	display: flex; gap: clamp(16px, 2.2vw, 28px);
	align-items: center;
}
.main-navigation a {
	font-family: var(--rc-font-en);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--rc-text);
	padding: 6px 2px;
	position: relative;
}
.main-navigation a::after {
	content: "";
	position: absolute; left: 0; bottom: 0;
	width: 100%; height: 1px;
	background: var(--rc-accent);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform var(--rc-transition);
}
.main-navigation a:hover { opacity: 1; }
.main-navigation a:hover::after { transform: scaleX(1); transform-origin: left; }

/* === サブメニュー（ドロップダウン） === */
.main-navigation li.menu-item-has-children {
	position: relative;
}
/* 親項目に「▾」インジケータ */
.main-navigation li.menu-item-has-children > a::before {
	content: "";
	display: inline-block;
	width: 0; height: 0;
	margin-right: 6px;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-top: 5px solid currentColor;
	vertical-align: middle;
	opacity: 0.6;
}
/* サブメニュー：通常時は非表示 */
.main-navigation .sub-menu {
	list-style: none;
	display: none;
	flex-direction: column;
	gap: 0;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 200px;
	padding: 6px 0;
	margin: 0;
	background: var(--rc-surface);
	border: 1px solid var(--rc-border);
	border-radius: var(--rc-radius);
	box-shadow: 0 8px 20px rgba(0,0,0,0.08);
	z-index: 1000;
	align-items: stretch;
}
/* ホバー or フォーカス内（タッチデバイスのキーボードフォーカスにも対応）で表示 */
.main-navigation li.menu-item-has-children:hover > .sub-menu,
.main-navigation li.menu-item-has-children:focus-within > .sub-menu {
	display: flex;
}
/* サブメニュー項目 */
.main-navigation .sub-menu li {
	width: 100%;
	padding: 0;
	border: 0;
}
.main-navigation .sub-menu a {
	display: block;
	padding: 10px 16px;
	font-size: 13px;
	letter-spacing: .04em;
	text-transform: none;
}
.main-navigation .sub-menu a::after { display: none; }
.main-navigation .sub-menu a:hover {
	background: var(--rc-bg-alt);
}

/* モバイルメニュー開閉 */
.menu-toggle {
	display: none;
	background: transparent;
	border: 0;
	padding: 8px;
	cursor: pointer;
}
.menu-toggle-bar {
	display: block;
	width: 22px; height: 2px;
	background: var(--rc-text);
	margin: 5px 0;
	transition: transform var(--rc-transition);
}

/* =============================================================
 * 3-2. サブナビゲーション（Phase 3-3）
 *
 * KAIKENT / TV 系の控えめリンク群。
 * primary nav の下、site-header 内に配置。
 * モバイル時は横スクロールで全項目アクセス可能に。
 * ============================================================= */
.subnav {
	background: var(--rc-bg-alt);
	border-top: 1px solid var(--rc-border);
	font-size: 12px;
	position: relative;       /* sub-menu の絶対配置基準 */
	z-index: 40;
}
.subnav__inner {
	max-width: var(--rc-container);
	margin-inline: auto;
	padding: 6px clamp(16px, 4vw, 32px);
}
/* トップレベルのみ flex（`>` でサブメニュー除外） */
.subnav > .subnav__inner > ul,
.subnav #subnav-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 16px;
	align-items: center;
}
.subnav li { margin: 0; }
.subnav a {
	font-family: var(--rc-font-en);
	font-size: 12px;
	letter-spacing: .08em;
	color: var(--rc-text-muted);
	padding: 4px 2px;
	white-space: nowrap;
	transition: color var(--rc-transition);
}
.subnav a:hover {
	color: var(--rc-text);
	opacity: 1;
}
/* 第3弾-C: 外部リンク（target=_blank）に「・」マーカーを CSS で装飾。
   テキストには影響を与えず、PC subnav と subnav-mobile 両方に効く。 */
.subnav a[target="_blank"]::before,
.subnav-mobile a[target="_blank"]::before {
	content: "・";
	margin-right: 2px;
	opacity: 0.6;
}

/* === サブメニュー（ドロップダウン）=== */
.subnav li.menu-item-has-children {
	position: relative;
}
/* 親項目に「▾」マーカー（控えめ） */
.subnav li.menu-item-has-children > a::after {
	content: "";
	display: inline-block;
	width: 0; height: 0;
	margin-left: 5px;
	border-left: 3px solid transparent;
	border-right: 3px solid transparent;
	border-top: 4px solid currentColor;
	vertical-align: middle;
	opacity: 0.5;
}
.subnav .sub-menu {
	list-style: none;
	display: none;
	flex-direction: column;
	gap: 0;
	position: absolute;
	top: 100%;
	left: -8px;
	min-width: 160px;
	padding: 4px 0;
	margin: 0;
	background: var(--rc-surface);
	border: 1px solid var(--rc-border);
	border-radius: var(--rc-radius);
	box-shadow: 0 6px 16px rgba(0,0,0,0.08);
	z-index: 1000;
}
.subnav li.menu-item-has-children:hover > .sub-menu,
.subnav li.menu-item-has-children:focus-within > .sub-menu {
	display: flex;
}
.subnav .sub-menu li { width: 100%; }
.subnav .sub-menu a {
	display: block;
	padding: 6px 12px;
	font-size: 12px;
	color: var(--rc-text);
}
.subnav .sub-menu a:hover {
	background: var(--rc-bg-alt);
	opacity: 1;
}

/* スマホ用 subnav 複製（PC では完全非表示、モバイルでハンバーガー内に表示） */
.subnav-mobile { display: none; }
.subnav-mobile ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.subnav-mobile li { margin: 0; }
.subnav-mobile a {
	display: block;
	font-family: var(--rc-font-en);
	letter-spacing: .08em;
	color: var(--rc-text-muted);
}

@media (max-width: 640px) {
	/* モバイル：独立 .subnav は非表示、ハンバーガー内 .subnav-mobile を活かす */
	.subnav { display: none; }
	/* ハンバーガーが開いている時のみ subnav-mobile を表示。
	   .menu-toggle[aria-expanded="true"] と兄弟関係を利用。 */
	.subnav-mobile { display: none; }
	.menu-toggle[aria-expanded="true"] ~ .subnav-mobile {
		display: block;
		width: 100%;
		border-top: 1px solid var(--rc-border);
		margin-top: 0;
	}
	.subnav-mobile > ul {
		display: flex;
		flex-direction: column;
		gap: 0;
		width: 100%;
	}
	.subnav-mobile > ul > li {
		width: 100%;
		padding: 8px 0;
		border-bottom: 1px solid var(--rc-border);
	}
	.subnav-mobile a {
		font-size: 13px;
		padding: 4px 0;
		text-transform: uppercase;
	}
}

@media (max-width: 768px) and (min-width: 641px) {
	/* タブレット幅 (641〜768): 独立 .subnav は横スクロール表示を維持 */
	.subnav { overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.subnav__inner {
		padding: 6px clamp(12px, 4vw, 32px);
	}
	.subnav > .subnav__inner > ul,
	.subnav #subnav-menu {
		flex-wrap: nowrap;
		min-width: max-content;
	}
	.subnav .sub-menu { display: none !important; }
	.subnav li.menu-item-has-children > a::after { display: none; }
}

/* =============================================================
 * 4. フッター上部 3段エリア（PICKUP / LABELS / EXTERNAL）
 *
 * 旧ヘッダー直下から footer.php へ移設（要件4）。
 * 案1：ダーク背景のフッター内で、独立した白カードとして配置。
 * class 名（.header-pickup / .header-labels / .header-external）は
 * メンテナンス互換のため維持。
 * ============================================================= */
.site-footer-prepend {
	padding: var(--rc-space-xl) clamp(16px, 4vw, 32px) var(--rc-space-md);
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.site-footer-prepend__inner {
	max-width: var(--rc-container);
	margin-inline: auto;
	display: grid;
	gap: var(--rc-space-lg);
}

/*
 * 文字色復元：
 * .site-footer は color: var(--rc-text-invert)（白）を子孫に継承させているため、
 * 白カード内のラベル・リンクが白文字になり視認できない問題があった。
 * .site-footer-prepend 配下では本文色とリンク色を明示的に黒系へ戻す。
 */
.site-footer-prepend,
.site-footer-prepend a {
	color: var(--rc-text);
}
.site-footer-prepend a:hover {
	/* .site-footer a:hover { opacity: .75 } を打ち消し、各リンク固有の hover を活かす */
	opacity: 1;
}
/* ピル型ボタン（PICKUP / EXTERNAL LINKS）hover 時は反転して白文字 */
.site-footer-prepend .header-pickup__list a:hover,
.site-footer-prepend .header-external__list a:hover {
	color: var(--rc-text-invert);
}
/* テキスト要素（画像なしバッジ・ラベル等）の念のため明示 */
.site-footer-prepend .header-pickup__label,
.site-footer-prepend .header-pickup__textbadge,
.site-footer-prepend .header-external__label,
.site-footer-prepend .header-labels__textbadge {
	color: var(--rc-text);
}
.header-pickup,
.header-labels,
.header-external {
	background: var(--rc-bg-alt);
	border: 1px solid var(--rc-border);
	border-radius: var(--rc-radius);
	overflow: hidden;
}
.header-pickup__inner,
.header-labels__inner,
.header-external__inner {
	max-width: none;
	padding: var(--rc-space-lg) clamp(16px, 4vw, 32px);
	display: grid;
	gap: var(--rc-space-md);
}
.header-pickup__heading,
.header-labels__heading,
.header-external__heading {
	font-family: var(--rc-font-en);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .22em;
	color: var(--rc-text-muted);
	text-transform: uppercase;
	margin: 0 0 var(--rc-space-sm);
	padding-bottom: var(--rc-space-sm);
	border-bottom: 1px solid var(--rc-border);
}

/* PICKUP リスト */
.header-pickup__list,
.header-external__list {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-wrap: wrap;
	gap: var(--rc-space-md);
}
.header-pickup__list a,
.header-external__list a {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 10px 16px;
	background: var(--rc-surface);
	border: 1px solid var(--rc-border);
	border-radius: var(--rc-radius-pill);
	font-size: 13px; font-weight: 500;
	transition: all var(--rc-transition);
}
.header-pickup__list a:hover,
.header-external__list a:hover {
	opacity: 1;
	border-color: var(--rc-accent);
	background: var(--rc-accent);
	color: var(--rc-text-invert);
}

/* PICKUP 画像 */
.header-pickup__image {
	display: block;
	width: 48px;
	height: 48px;
	object-fit: cover;
	border-radius: 50%;
	/* デフォルトは「上端揃え」。inline style で個別アーティスト位置に上書きされる */
	object-position: center 0%;
}

/* 外部リンク 画像バナー対応 */
.header-external__item--has-image > .header-external__link {
	padding: 4px 10px;
}
.header-external__image {
	display: block;
	max-height: 32px;
	width: auto;
	object-fit: contain;
}
/* sr-only：画像のみ表示時の代替テキスト */
.header-external__label--sr-only {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
	border: 0;
}

/* LABEL 一覧 */
.header-labels__list {
	list-style: none; padding: 0; margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: var(--rc-space-md);
}
.header-labels__item { margin: 0; }
.header-labels__link {
	display: block;
	background: #fff;
	border: 1px solid var(--rc-border);
	overflow: hidden;
	aspect-ratio: 2 / 1;
	padding: 8px;
	transition: transform var(--rc-transition), box-shadow var(--rc-transition);
}
.header-labels__link:hover {
	opacity: 1;
	transform: translateY(-2px);
	box-shadow: var(--rc-shadow-md);
}
.header-labels__link img {
	/* ロゴは見切れさせない：contain で全体表示、padding 分の余白を確保 */
	width: 100%; height: 100%;
	object-fit: contain;
	object-position: center center;
}
.header-labels__textbadge {
	display: flex; align-items: center; justify-content: center;
	width: 100%; height: 100%;
	font-size: 13px; font-weight: 600;
	color: var(--rc-text);
	padding: 8px;
	text-align: center;
}

/* =============================================================
 * 4-2. 管理者向け空状態ガイド（ヘッダー3段エリア）
 *
 * ログイン中の管理者にだけ「ここに何を表示できるか」を案内する
 * カード。一般訪問者には完全非表示（template側で current_user_can で制御）。
 * ============================================================= */
.header-empty-guide {
	background: #fff8e1;
	border-top: 1px solid #f0c97a;
	border-bottom: 1px solid #f0c97a;
}
.header-empty-guide__inner {
	max-width: var(--rc-container);
	margin-inline: auto;
	padding: var(--rc-space-md) clamp(16px, 4vw, 32px);
	display: grid;
	gap: 4px;
}
.header-empty-guide__title {
	margin: 0;
	font-weight: 600;
	font-size: 13px;
	color: #6d4c00;
	letter-spacing: .04em;
	display: flex; align-items: center; gap: 8px;
}
.header-empty-guide__icon { font-size: 16px; }
.header-empty-guide__body {
	margin: 0;
	font-size: 13px;
	color: #555;
	line-height: 1.7;
}
.header-empty-guide__action {
	margin: 4px 0 0;
	font-size: 13px;
}
.header-empty-guide__action a {
	color: #2a5bb6;
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.header-empty-guide__action a:hover { opacity: .75; }

/* =============================================================
 * 5. Site Content / Section Common
 * ============================================================= */
/* 第3弾-B: ヘッダー直下の余白を縮小（site-content / site-main / single-* の三重化を解消） */
.site-content { padding-block: clamp(8px, 2vw, 16px); }

.site-main { padding-block: var(--rc-space-sm); }

.archive-header,
.page-header {
	text-align: center;
	padding: var(--rc-space-xl) 0 var(--rc-space-lg);
	border-bottom: 1px solid var(--rc-border);
	margin-bottom: var(--rc-space-xl);
}
.archive-title,
.page-title {
	font-family: var(--rc-font-en);
	font-size: clamp(28px, 5vw, 48px);
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

/* セクション見出し（トップページ等） */
.section-heading {
	margin: 0 0 var(--rc-space-lg);
	padding-bottom: var(--rc-space-md);
	border-bottom: 1px solid var(--rc-border);
	display: flex;
	align-items: baseline;
	gap: var(--rc-space-md);
	flex-wrap: wrap;
}
.section-heading__en {
	font-family: var(--rc-font-en);
	font-size: clamp(22px, 3.2vw, 32px);
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.section-heading__ja {
	font-size: 13px;
	color: var(--rc-text-muted);
	letter-spacing: .1em;
}

.section-more {
	display: flex;
	justify-content: center;
	margin-top: var(--rc-space-lg);
}

/* =============================================================
 * 6. Badges（ジャンル・リリース種別）
 * ============================================================= */
.genre-badge {
	display: inline-flex;
	align-items: center;
	padding: 4px 12px;
	border-radius: var(--rc-radius-pill);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .06em;
	line-height: 1.4;
	white-space: nowrap;
}
.genre-badge--red    { background: var(--rc-genre-red-soft);    color: var(--rc-genre-red); }
.genre-badge--green  { background: var(--rc-genre-green-soft);  color: var(--rc-genre-green); }
.genre-badge--yellow { background: var(--rc-genre-yellow-soft); color: var(--rc-genre-yellow); }
.genre-badge--blue   { background: var(--rc-genre-blue-soft);   color: var(--rc-genre-blue); }

/* リリース種別（楕円で強めの存在感） */
.release-type-badges {
	display: inline-flex;
	gap: 6px;
	flex-wrap: wrap;
}
.release-type-badge {
	display: inline-flex;
	align-items: center;
	padding: 5px 14px;
	border-radius: var(--rc-radius-pill);
	font-family: var(--rc-font-en);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .1em;
	line-height: 1.4;
	color: #fff;
	white-space: nowrap;
	box-shadow: var(--rc-shadow-sm);
}
.release-type-badge--pink   { background: var(--rc-rt-pink); }
.release-type-badge--purple { background: var(--rc-rt-purple); }
.release-type-badge--teal   { background: var(--rc-rt-teal); }
.release-type-badge--gray   { background: var(--rc-rt-gray); }

/* =============================================================
 * 7. Button
 * ============================================================= */
.button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 28px;
	font-family: var(--rc-font-en);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	background: var(--rc-accent);
	color: var(--rc-text-invert);
	border: 1px solid var(--rc-accent);
	border-radius: var(--rc-radius-pill);
	transition: all var(--rc-transition);
	cursor: pointer;
}
.button:hover {
	opacity: 1;
	background: transparent;
	color: var(--rc-accent);
}
.button--outline {
	background: transparent;
	color: var(--rc-accent);
}
.button--outline:hover {
	background: var(--rc-accent);
	color: var(--rc-text-invert);
}

/* =============================================================
 * 8. Front Page
 * ============================================================= */
.front-page .front-section {
	padding-block: clamp(48px, 8vw, 96px);
}
.front-page .front-section:nth-of-type(even) {
	background: var(--rc-bg-alt);
}

.hero { width: 100%; }
.hero__image {
	width: 100%; height: auto;
	max-height: 480px;
	object-fit: cover;
}

/* =============================================================
 * 9. Artist Card / Grid
 * ============================================================= */
.artist-card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: var(--rc-space-lg);
}

.artist-card {
	background: var(--rc-surface);
	transition: transform var(--rc-transition);
}
.artist-card__link {
	display: block;
	color: inherit;
}
.artist-card__link:hover { opacity: 1; }
.artist-card__thumb {
	/* 一覧と詳細でアスペクト比 3:4（縦長）に統一。
	   人物写真用途・object-position（top/center/bottom）と整合。 */
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background: var(--rc-bg-alt);
	border: 1px solid var(--rc-border);
	position: relative;
}
.artist-card__thumb img {
	width: 100%; height: 100%; object-fit: cover;
	/* デフォルトは「上端揃え」で頭部を確実に表示。inline style があれば上書きされる（個別指定）*/
	object-position: center 0%;
	transition: transform .5s cubic-bezier(.4,0,.2,1);
}
.artist-card:hover .artist-card__thumb img {
	transform: scale(1.04);
}
.artist-card__body { padding-top: var(--rc-space-md); }
.artist-card__name {
	font-size: clamp(15px, 1.6vw, 17px);
	font-weight: 600;
	margin-bottom: 6px;
	letter-spacing: .04em;
}
.artist-card__genre { margin-top: 4px; }

/* アーティスト一覧：ジャンルごとグループ */
.artist-group { margin-bottom: var(--rc-space-2xl); }
.artist-group__heading {
	display: flex;
	align-items: center;
	gap: var(--rc-space-md);
	padding-bottom: var(--rc-space-md);
	margin-bottom: var(--rc-space-lg);
	border-bottom: 1px solid var(--rc-border);
}
.artist-group__heading::before {
	content: "";
	width: 40px; height: 2px;
	background: currentColor;
	opacity: .25;
}
.artist-group--red    .artist-group__heading { color: var(--rc-genre-red); }
.artist-group--green  .artist-group__heading { color: var(--rc-genre-green); }
.artist-group--yellow .artist-group__heading { color: var(--rc-genre-yellow); }
.artist-group--blue   .artist-group__heading,
.artist-group--other  .artist-group__heading { color: var(--rc-genre-blue); }

.artist-group__genre-label {
	font-size: 14px;
	padding: 6px 18px;
}

/* =============================================================
 * 10. Release Card / Grid / Row
 * ============================================================= */
.release-card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: var(--rc-space-lg);
}
.release-card { color: inherit; }
.release-card__link { display: block; color: inherit; }
.release-card__link:hover { opacity: 1; }
.release-card__jacket {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: #111;
	box-shadow: var(--rc-shadow-md);
	position: relative;
}
.release-card__jacket img {
	width: 100%; height: 100%; object-fit: cover;
	transition: transform .5s cubic-bezier(.4,0,.2,1);
}
.release-card:hover .release-card__jacket img { transform: scale(1.05); }
.release-card__body { padding-top: var(--rc-space-md); }
.release-card__badges {
	display: flex; flex-wrap: wrap; gap: 6px;
	margin-bottom: 10px;
}
.release-card__title {
	font-size: 16px; font-weight: 600; margin-bottom: 8px; letter-spacing: .02em;
	line-height: 1.45;
}
/* 主アーティスト表示（Phase 3-2） */
.release-card__artist {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin: 0 0 8px;
	font-size: 13px;
	line-height: 1.4;
}
.release-card__artist-label {
	font-size: 11px;
	color: var(--rc-text-muted);
	letter-spacing: .08em;
	text-transform: uppercase;
}
.release-card__artist-name {
	font-weight: 600;
	color: var(--rc-text);
}
.release-card__meta {
	margin: 0;
	font-size: 12px;
	color: var(--rc-text-muted);
	display: grid;
	grid-template-columns: 5em 1fr;
	row-gap: 2px;
	column-gap: 8px;
	line-height: 1.6;
}
.release-card__meta dt { font-weight: 500; color: var(--rc-text-muted); }
.release-card__meta dd { margin: 0; color: var(--rc-text); }

/* -- リリース一覧（月別段落＋横長ロウ） -- */
.release-list { display: grid; gap: var(--rc-space-xl); }
.release-month-group { display: grid; gap: var(--rc-space-lg); }
.release-month-heading {
	font-family: var(--rc-font-en);
	font-size: clamp(22px, 2.6vw, 30px);
	font-weight: 700;
	letter-spacing: .08em;
	padding-bottom: var(--rc-space-sm);
	border-bottom: 2px solid var(--rc-accent);
	display: inline-block;
}
.release-row {
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: var(--rc-space-lg);
	padding: var(--rc-space-lg) 0;
	border-bottom: 1px solid var(--rc-border);
	align-items: start;
}
.release-row__jacket {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: #111;
	box-shadow: var(--rc-shadow-sm);
}
.release-row__jacket img { width: 100%; height: 100%; object-fit: cover; }
.release-row__badges {
	display: flex; flex-wrap: wrap; gap: 6px;
	margin-bottom: var(--rc-space-sm);
}
.release-row__title {
	font-size: clamp(18px, 2.2vw, 22px);
	font-weight: 600;
	margin-bottom: var(--rc-space-md);
	letter-spacing: .02em;
}
.release-row__title a { color: inherit; }
.release-row__meta {
	margin: 0;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 4px 16px;
	font-size: 13px;
}
.release-row__meta dt {
	font-weight: 500;
	color: var(--rc-text-muted);
	letter-spacing: .05em;
}
.release-row__meta dd { margin: 0; color: var(--rc-text); }
.price-ex-tax { color: var(--rc-text-muted); font-size: 12px; }

/* =============================================================
 * 11. News List / Card
 * ============================================================= */
.news-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 0;
	border-top: 1px solid var(--rc-border);
}
.news-list__item {
	border-bottom: 1px solid var(--rc-border);
}
.news-card {
	transition: background var(--rc-transition);
}
.news-list__item:hover .news-card {
	background: var(--rc-bg-alt);
}
.news-card__link {
	display: grid;
	grid-template-columns: 120px auto 1fr;
	gap: var(--rc-space-md);
	align-items: center;
	padding: var(--rc-space-md) 0;
	color: inherit;
}
.news-card__link:hover { opacity: 1; }
.news-card__date {
	font-family: var(--rc-font-en);
	font-size: 13px;
	color: var(--rc-text-muted);
	letter-spacing: .06em;
	white-space: nowrap;
}
/* 複数バッジを横並びにするラッパー（grid セルとして1要素扱い） */
.news-card__badges,
.event-card__badges {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 4px;
	align-items: center;
}
.news-card__badge {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: var(--rc-radius-pill);
	background: var(--rc-bg-alt);
	border: 1px solid var(--rc-border);
	font-size: 11px;
	font-weight: 500;
	color: var(--rc-text);
	letter-spacing: .05em;
	white-space: nowrap;
}
.news-card__badge--general {
	background: var(--rc-accent);
	color: var(--rc-text-invert);
	border-color: var(--rc-accent);
}
.news-card__badge--label {
	background: var(--rc-genre-blue-soft);
	color: var(--rc-genre-blue);
	border-color: transparent;
}
.news-card__title {
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .02em;
	line-height: 1.55;
	margin: 0;
}
@media (max-width: 640px) {
	.news-card__link {
		grid-template-columns: 1fr;
		gap: 6px;
	}
}

/* =============================================================
 * 11-2. Event List / Card（news と同等スタイルをエイリアス）
 * ============================================================= */
.event-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 0;
	border-top: 1px solid var(--rc-border);
}
.event-list__item { border-bottom: 1px solid var(--rc-border); }
.event-card { transition: background var(--rc-transition); }
.event-list__item:hover .event-card { background: var(--rc-bg-alt); }
.event-card__link {
	display: grid;
	grid-template-columns: 120px auto 1fr;
	gap: var(--rc-space-md);
	align-items: center;
	padding: var(--rc-space-md) 0;
	color: inherit;
}
.event-card__link:hover { opacity: 1; }
.event-card__date {
	font-family: var(--rc-font-en);
	font-size: 13px;
	color: var(--rc-text-muted);
	letter-spacing: .06em;
	white-space: nowrap;
}
.event-card__badge {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: var(--rc-radius-pill);
	background: var(--rc-bg-alt);
	border: 1px solid var(--rc-border);
	font-size: 11px;
	font-weight: 500;
	color: var(--rc-text);
	letter-spacing: .05em;
	white-space: nowrap;
}
.event-card__badge--general {
	background: var(--rc-genre-yellow);
	color: var(--rc-text-invert);
	border-color: var(--rc-genre-yellow);
}
.event-card__badge--label {
	background: var(--rc-genre-blue-soft);
	color: var(--rc-genre-blue);
	border-color: transparent;
}
.event-card__title {
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .02em;
	line-height: 1.55;
	margin: 0;
}
@media (max-width: 640px) {
	.event-card__link {
		grid-template-columns: 1fr;
		gap: 6px;
	}
}

/* =============================================================
 * 12. Label Card / Grid
 * ============================================================= */
.label-card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: var(--rc-space-lg);
}
.label-card {
	background: var(--rc-surface);
	border: 1px solid var(--rc-border);
	transition: transform var(--rc-transition), box-shadow var(--rc-transition);
}
.label-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--rc-shadow-md);
}
.label-card__link { display: block; color: inherit; }
.label-card__link:hover { opacity: 1; }
.label-card__banner {
	aspect-ratio: 2 / 1;
	overflow: hidden;
	background: #fff;
	padding: 12px;
}
.label-card__banner img {
	width: 100%; height: 100%;
	/* ロゴは全体表示。トリミングしない */
	object-fit: contain;
	object-position: center center;
}
.label-card__body { padding: var(--rc-space-md); }
.label-card__name {
	font-size: 16px;
	font-weight: 600;
	margin-bottom: 4px;
}
.label-card__excerpt {
	font-size: 13px;
	color: var(--rc-text-muted);
	margin: 0;
	line-height: 1.6;
}

/* =============================================================
 * 13. Single Artist / Label / Release / News
 * ============================================================= */
/* 第3弾-B: 詳細ページの上下余白を縮小。下方向だけ確保（next-prev navigation 用） */
.single-artist,
.single-label,
.single-release,
.single-news,
.single-event { padding-block: var(--rc-space-md) var(--rc-space-xl); }

/* -- Artist Hero -- */
.artist-hero {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: var(--rc-space-xl);
	align-items: center;
	margin-bottom: var(--rc-space-2xl);
}
.artist-hero__image {
	overflow: hidden;
	background: var(--rc-bg-alt);
}
.artist-hero__image img {
	width: 100%;
	/* 一覧と詳細でアスペクト比 3:4（縦長）に統一。 */
	aspect-ratio: 3 / 4;
	object-fit: cover;
	/* デフォルトは「上端揃え」で頭部を確実に表示。inline style があれば上書きされる（個別指定）*/
	object-position: center 0%;
}
.artist-hero__meta { display: flex; flex-direction: column; gap: var(--rc-space-md); }
.artist-hero__name {
	font-size: clamp(28px, 5vw, 48px);
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.2;
}

/* -- Label Hero -- */
.label-hero { margin-bottom: var(--rc-space-2xl); text-align: center; }
.label-hero__banner {
	aspect-ratio: 3 / 1;
	max-height: 400px;
	overflow: hidden;
	margin-bottom: var(--rc-space-lg);
	background: #fff;
	padding: 16px;
}
.label-hero__banner img {
	width: 100%; height: 100%;
	/* ロゴ全体表示・トリミングしない */
	object-fit: contain;
	object-position: center center;
}
.label-hero__name {
	font-size: clamp(28px, 5vw, 48px);
	font-weight: 700;
	letter-spacing: .04em;
}

/* -- Artist / Label related sections -- */
.artist-related,
.label-related { margin-top: var(--rc-space-2xl); }
.artist-profile,
.label-profile {
	max-width: 820px;
	margin-inline: auto;
	margin-bottom: var(--rc-space-2xl);
}
.artist-free-text,
.label-free-text {
	max-width: 820px;
	margin-inline: auto;
	margin-top: var(--rc-space-xl);
	padding: var(--rc-space-lg);
	background: var(--rc-bg-alt);
	border-left: 3px solid var(--rc-accent);
}

/* -- Release Detail -- */
.release-detail__layout {
	display: grid;
	grid-template-columns: minmax(280px, 420px) 1fr;
	gap: var(--rc-space-xl);
	margin-bottom: var(--rc-space-xl);
	align-items: start;
}
.release-detail__jacket {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: #111;
	box-shadow: var(--rc-shadow-lg);
}
.release-detail__jacket img { width: 100%; height: 100%; object-fit: cover; }
.release-detail__badges {
	display: flex; flex-wrap: wrap; gap: 6px;
	margin-bottom: var(--rc-space-md);
}
.release-detail__title {
	font-size: clamp(24px, 3.5vw, 36px);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: .02em;
	margin-bottom: var(--rc-space-lg);
}
.release-detail__specs {
	margin: 0;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 8px 20px;
	font-size: 14px;
}
.release-detail__specs dt {
	font-weight: 500;
	color: var(--rc-text-muted);
	letter-spacing: .05em;
}
.release-detail__specs dd { margin: 0; }
.release-detail__content,
.release-detail__free-text {
	max-width: 820px;
	margin-inline: auto;
	margin-top: var(--rc-space-xl);
}
.release-detail__free-text {
	padding: var(--rc-space-lg);
	background: var(--rc-bg-alt);
	border-left: 3px solid var(--rc-accent);
}

/* -- News Detail -- */
.news-detail {
	max-width: 820px;
	margin-inline: auto;
}
.news-detail__header {
	padding-bottom: var(--rc-space-lg);
	border-bottom: 1px solid var(--rc-border);
	margin-bottom: var(--rc-space-xl);
}
.news-detail__meta {
	display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
	margin-bottom: var(--rc-space-md);
	font-size: 13px;
	color: var(--rc-text-muted);
}
.news-detail__title {
	font-size: clamp(22px, 3vw, 32px);
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .02em;
}
.news-detail__thumbnail { margin-bottom: var(--rc-space-lg); }
.news-detail__thumbnail img { width: 100%; height: auto; }
.news-detail__free-text {
	margin-top: var(--rc-space-xl);
	padding: var(--rc-space-lg);
	background: var(--rc-bg-alt);
	border-left: 3px solid var(--rc-accent);
}
.news-detail__nav {
	margin-top: var(--rc-space-xl);
	padding-top: var(--rc-space-lg);
	border-top: 1px solid var(--rc-border);
}
.news-detail__nav .nav-links {
	display: flex;
	justify-content: space-between;
	gap: var(--rc-space-md);
}
.nav-subtitle {
	display: block;
	font-family: var(--rc-font-en);
	font-size: 11px;
	letter-spacing: .15em;
	color: var(--rc-text-muted);
	margin-bottom: 4px;
}
.nav-title {
	font-size: 14px;
	font-weight: 500;
	color: var(--rc-text);
}

/* =============================================================
 * 14. Entry Content（本文）共通
 * ============================================================= */
.entry-content {
	font-size: clamp(15px, 1.8vw, 16px);
	line-height: 1.85;
}
.entry-content > * + * { margin-top: 1.2em; }
.entry-content h2 {
	font-size: clamp(20px, 2.4vw, 26px);
	margin-top: 2em;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--rc-border);
}
.entry-content h3 {
	font-size: clamp(17px, 2vw, 20px);
	margin-top: 1.8em;
	padding-left: 12px;
	border-left: 3px solid var(--rc-accent);
}
.entry-content img { border-radius: var(--rc-radius-sm); }
.entry-content a {
	color: var(--rc-genre-blue);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.entry-content blockquote {
	margin: 1.5em 0;
	padding: var(--rc-space-md) var(--rc-space-lg);
	background: var(--rc-bg-alt);
	border-left: 3px solid var(--rc-text-muted);
	color: var(--rc-text-muted);
	font-style: normal;
}

/* =============================================================
 * 15. Page / 404 / Search
 * ============================================================= */
.single-page .entry-content,
.search-results-page .post-list {
	max-width: 820px;
	margin-inline: auto;
}
.single-page .entry-header {
	text-align: center;
	padding: var(--rc-space-lg) 0;
	border-bottom: 1px solid var(--rc-border);
	margin-bottom: var(--rc-space-xl);
}
.single-page .entry-title {
	font-size: clamp(26px, 4vw, 40px);
	font-weight: 700;
}

.error-404 .page-content {
	text-align: center;
	padding: var(--rc-space-2xl) 0;
}
.error-search {
	margin: var(--rc-space-lg) auto;
	max-width: 520px;
}

.search-form {
	display: flex;
	gap: 8px;
}
.search-field {
	flex: 1;
	padding: 12px 16px;
	font-size: 14px;
	border: 1px solid var(--rc-border);
	border-radius: var(--rc-radius-pill);
	font-family: inherit;
}
.search-field:focus {
	outline: 2px solid var(--rc-accent);
	outline-offset: 1px;
}
.search-submit {
	padding: 12px 24px;
	font-size: 13px;
	font-weight: 600;
	background: var(--rc-accent);
	color: var(--rc-text-invert);
	border: 0;
	border-radius: var(--rc-radius-pill);
	cursor: pointer;
	transition: opacity var(--rc-transition);
}
.search-submit:hover { opacity: .85; }

/* ポストリスト（汎用） */
.post-list .post-card {
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: var(--rc-space-md);
	padding: var(--rc-space-md) 0;
	border-bottom: 1px solid var(--rc-border);
}
.post-card--search {
	grid-template-columns: 1fr;
}
.post-card__thumb { overflow: hidden; background: var(--rc-bg-alt); }
.post-card__thumb img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4/3; }
.post-card__title {
	font-size: 18px;
	font-weight: 600;
	margin-bottom: 6px;
}
.post-card__meta { font-size: 12px; color: var(--rc-text-muted); }
.post-card__excerpt { font-size: 14px; color: var(--rc-text); line-height: 1.7; }
.post-card__type {
	font-family: var(--rc-font-en);
	font-size: 11px;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: var(--rc-text-muted);
}

/* =============================================================
 * 16. Pagination
 * ============================================================= */
.pagination, .posts-pagination, .navigation.pagination {
	margin: var(--rc-space-xl) 0;
	display: flex;
	justify-content: center;
}
.navigation .nav-links,
.posts-pagination .nav-links {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	align-items: center;
}
.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px; height: 40px;
	padding: 0 14px;
	background: transparent;
	border: 1px solid var(--rc-border);
	border-radius: var(--rc-radius-pill);
	font-family: var(--rc-font-en);
	font-size: 14px;
	font-weight: 500;
	color: var(--rc-text);
	transition: all var(--rc-transition);
}
.page-numbers:hover {
	background: var(--rc-accent);
	color: var(--rc-text-invert);
	border-color: var(--rc-accent);
	opacity: 1;
}
.page-numbers.current {
	background: var(--rc-accent);
	color: var(--rc-text-invert);
	border-color: var(--rc-accent);
}

/* =============================================================
 * 17. Footer
 * ============================================================= */
.site-footer {
	margin-top: var(--rc-space-2xl);
	background: var(--rc-bg-dark);
	color: var(--rc-text-invert);
}
.site-footer-inner {
	max-width: var(--rc-container);
	margin-inline: auto;
	padding: var(--rc-space-xl) clamp(16px, 4vw, 32px) var(--rc-space-lg);
}
.site-footer-columns {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: var(--rc-space-xl);
	padding-bottom: var(--rc-space-xl);
	border-bottom: 1px solid rgba(255,255,255,.1);
}
.site-footer .footer-heading {
	font-family: var(--rc-font-en);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: rgba(255,255,255,.6);
	margin-bottom: var(--rc-space-md);
	padding-bottom: 8px;
	border-bottom: 1px solid rgba(255,255,255,.1);
}
.site-footer a { color: var(--rc-text-invert); }
.site-footer a:hover { opacity: .75; }
.site-footer .footer-note {
	font-size: 13px;
	color: rgba(255,255,255,.7);
}
.site-footer .footer-note a { text-decoration: underline; }

/* フッター左右リンク統一（下線なし、hover で下線） */
.footer-info-links,
#footer-menu,
.footer-menu {
	list-style: none;
	padding: 0;
	margin: 12px 0 0;
	display: grid;
	gap: 8px;
}
.footer-info-links li,
#footer-menu li,
.footer-menu li {
	font-size: 14px;
}
.footer-info-links a,
#footer-menu a,
.footer-menu a {
	font-size: 14px;
	color: rgba(255, 255, 255, 0.85);
	text-decoration: none;
	transition: color var(--rc-transition);
}
.footer-info-links a:hover,
#footer-menu a:hover,
.footer-menu a:hover {
	color: var(--rc-text-invert);
	text-decoration: underline;
	text-underline-offset: 3px;
	opacity: 1;
}

/* フッター左右下のフリーテキストエリア */
.site-footer-col__free-text {
	margin-top: var(--rc-space-md);
	padding-top: var(--rc-space-md);
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	font-size: 13px;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.85);
}
.site-footer-col__free-text a {
	color: var(--rc-text-invert);
	text-decoration: none;
}
.site-footer-col__free-text a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.site-footer-col__free-text p {
	margin: 0 0 6px;
}
.site-footer-col__free-text p:last-child {
	margin-bottom: 0;
}

/* 段階2-J: フッター検索バー */
.site-footer-search {
	max-width: var(--rc-container);
	margin: 0 auto;
	padding: var(--rc-space-md) clamp(16px, 4vw, 32px) 0;
}
.site-footer-search form {
	display: flex;
	gap: 8px;
	align-items: stretch;
	max-width: 480px;
	margin-inline: auto;
}
.site-footer-search input[type="search"],
.site-footer-search .search-field {
	flex: 1;
	padding: 8px 12px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	background: rgba(255, 255, 255, 0.08);
	color: var(--rc-text-invert);
	border-radius: var(--rc-radius);
	font-size: 13px;
}
.site-footer-search input[type="search"]::placeholder,
.site-footer-search .search-field::placeholder {
	color: rgba(255, 255, 255, 0.5);
}
.site-footer-search input[type="search"]:focus,
.site-footer-search .search-field:focus {
	outline: 2px solid var(--rc-genre-blue);
	outline-offset: 1px;
}
.site-footer-search input[type="submit"],
.site-footer-search button[type="submit"],
.site-footer-search .search-submit {
	padding: 8px 16px;
	background: var(--rc-text-invert);
	color: var(--rc-text);
	border: 0;
	border-radius: var(--rc-radius);
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
	transition: opacity var(--rc-transition);
}
.site-footer-search input[type="submit"]:hover,
.site-footer-search button[type="submit"]:hover,
.site-footer-search .search-submit:hover {
	opacity: 0.85;
}

.site-footer-bottom {
	padding-top: var(--rc-space-lg);
	text-align: center;
}
.copyright {
	font-family: var(--rc-font-en);
	font-size: 12px;
	letter-spacing: .1em;
	color: rgba(255,255,255,.6);
	margin: 0;
}

/* =============================================================
 * 18. Responsive
 * ============================================================= */
@media (max-width: 900px) {
	.artist-hero {
		grid-template-columns: 1fr;
	}
	.release-detail__layout {
		grid-template-columns: 1fr;
	}
	.release-detail__jacket { max-width: 420px; margin-inline: auto; }
	.release-row {
		grid-template-columns: 140px 1fr;
	}
}

@media (max-width: 640px) {
	.site-branding {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--rc-space-sm);
	}
	.menu-toggle {
		display: block;
		position: absolute;
		top: var(--rc-space-md);
		right: var(--rc-space-md);
	}
	.main-navigation > ul,
	.main-navigation #primary-menu {
		display: none;
		flex-direction: column;
		width: 100%;
		gap: 0;
		border-top: 1px solid var(--rc-border);
		margin-top: var(--rc-space-sm);
	}
	.main-navigation > ul.is-open,
	#primary-menu.is-open {
		display: flex;
	}
	.main-navigation > ul > li {
		width: 100%;
		padding: 10px 0;
		border-bottom: 1px solid var(--rc-border);
	}
	/* モバイル時のサブメニュー：絶対配置をやめて、インデント表示 */
	.main-navigation .sub-menu {
		display: flex !important;          /* ホバーに依存せず常時表示 */
		position: static;
		min-width: 0;
		padding: 4px 0 0 16px;
		margin-top: 6px;
		background: transparent;
		border: 0;
		box-shadow: none;
		border-radius: 0;
	}
	.main-navigation .sub-menu li { padding: 6px 0; }
	.main-navigation .sub-menu a { padding: 4px 0; font-size: 12px; }
	/* モバイルでは▾アイコン非表示（常時開いているため不要） */
	.main-navigation li.menu-item-has-children > a::before { display: none; }

	.site-footer-columns {
		grid-template-columns: 1fr;
		gap: var(--rc-space-lg);
	}
	.release-row {
		grid-template-columns: 1fr;
	}
	.release-row__jacket {
		max-width: 240px;
	}
	.post-list .post-card {
		grid-template-columns: 1fr;
	}
}

/* =============================================================
 * 19. アクセシビリティ補助
 * ============================================================= */
:focus-visible {
	outline: 2px solid var(--rc-genre-blue);
	outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
	}
	html { scroll-behavior: auto; }
}

/* =============================================================
 * 19-2. トップページバナースライダー（第3弾-F）
 *
 * 1スライド1バナー（最大1200px幅）の横スライダー。
 * scroll-snap で滑らかな横スクロール、JS で自動再生・矢印・ドット制御。
 * バナー未設定時はテンプレ側でセクションごと出力されない。
 * ============================================================= */
.front-banners-slider {
	background: var(--rc-bg);
	padding: var(--rc-space-lg) 0 var(--rc-space-xl);
}
.front-banners-slider__inner {
	position: relative;
	max-width: 1200px;
	margin-inline: auto;
	padding: 0 clamp(16px, 4vw, 32px);
}
.front-banners-slider__viewport {
	overflow: hidden;
	border-radius: var(--rc-radius);
	border: 1px solid var(--rc-border);
	background: var(--rc-bg-alt);
}
.front-banners-slider__track {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	scroll-snap-type: x mandatory;
	overflow-x: auto;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.front-banners-slider__track::-webkit-scrollbar { display: none; }
.front-banners-slider__slide {
	flex: 0 0 100%;
	scroll-snap-align: start;
	min-width: 0;
}
.front-banners-slider__link,
.front-banners-slider__static {
	display: block;
	position: relative;
}
.front-banners-slider__link:hover { opacity: 1; }
.front-banners-slider__image {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	aspect-ratio: 3 / 1;     /* 1200×400 想定の横長 */
}
.front-banners-slider__label {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 8px 16px;
	background: rgba(0, 0, 0, 0.55);
	color: #fff;
	font-size: 13px;
	letter-spacing: .04em;
}

/* 矢印ボタン */
.front-banners-slider__btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid var(--rc-border);
	background: rgba(255, 255, 255, 0.9);
	color: var(--rc-text);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 5;
	transition: background var(--rc-transition);
}
.front-banners-slider__btn:hover {
	background: var(--rc-accent);
	color: var(--rc-text-invert);
}
.front-banners-slider__btn--prev { left: clamp(24px, 4vw, 48px); }
.front-banners-slider__btn--next { right: clamp(24px, 4vw, 48px); }

/* ドットインジケータ */
.front-banners-slider__dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	list-style: none;
	margin: 12px 0 0;
	padding: 0;
}
.front-banners-slider__dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	border: 0;
	padding: 0;
	background: var(--rc-border);
	cursor: pointer;
	transition: background var(--rc-transition), transform var(--rc-transition);
}
.front-banners-slider__dot:hover { background: var(--rc-text-muted); }
.front-banners-slider__dot.is-active {
	background: var(--rc-accent);
	transform: scale(1.2);
}

@media (max-width: 600px) {
	.front-banners-slider__btn { width: 32px; height: 32px; font-size: 18px; }
	.front-banners-slider__btn--prev { left: 8px; }
	.front-banners-slider__btn--next { right: 8px; }
	.front-banners-slider__image { aspect-ratio: 2 / 1; }
	.front-banners-slider__label { font-size: 12px; padding: 6px 12px; }
}

/* =============================================================
 * 19-4. /release/ アーカイブ案内文（第3弾-D）
 *
 * archive-header と一覧の間に挿入される 4 ブロック。
 * テーマ色に揃えた読み物セクション。
 * ============================================================= */
.release-info {
	margin: var(--rc-space-md) 0 var(--rc-space-xl);
	display: grid;
	gap: var(--rc-space-lg);
	max-width: 880px;
	margin-inline: auto;
}
/* 急ぎ-1+3: 5リンクのみ表示用のスリムな見た目 */
.release-info--links-only {
	gap: 0;
	padding: 0;
}
.release-info--links-only .release-info__related-links {
	margin: 0;
	gap: var(--rc-space-sm);
}
.release-info__block {
	background: var(--rc-bg-alt);
	border: 1px solid var(--rc-border);
	border-radius: var(--rc-radius);
	padding: var(--rc-space-lg);
}
.release-info__heading {
	font-size: 16px;
	font-weight: 600;
	letter-spacing: .04em;
	margin: 0 0 var(--rc-space-md);
	padding-bottom: 8px;
	border-bottom: 1px solid var(--rc-border);
}
.release-info__body {
	margin: 0 0 var(--rc-space-sm);
	line-height: 1.8;
	font-size: 14px;
	color: var(--rc-text);
}
.release-info__body:last-child { margin-bottom: 0; }
.release-info__list {
	list-style: none;
	padding: 0;
	margin: var(--rc-space-sm) 0 0;
	background: var(--rc-bg);
	border: 1px solid var(--rc-border);
	border-radius: var(--rc-radius);
	padding: 12px 16px;
}
.release-info__list li {
	font-size: 13px;
	line-height: 1.8;
}
.release-info__related-links {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--rc-space-md);
}
.release-info__related-links a {
	display: inline-flex;
	align-items: center;
	padding: 8px 16px;
	background: var(--rc-bg);
	border: 1px solid var(--rc-border);
	border-radius: var(--rc-radius-pill);
	font-size: 13px;
	font-weight: 500;
	transition: all var(--rc-transition);
}
.release-info__related-links a:hover {
	background: var(--rc-accent);
	color: var(--rc-text-invert);
	border-color: var(--rc-accent);
	opacity: 1;
}
.release-info__related-links a::before {
	content: "▶ ";
	margin-right: 4px;
	opacity: 0.6;
}
@media (max-width: 600px) {
	.release-info__block { padding: var(--rc-space-md); }
	.release-info__heading { font-size: 15px; }
	.release-info__body { font-size: 13px; }
}

/* =============================================================
 * 19-5. リリース情報ページ（tokutoku550 / limited）
 *
 * 通常リリース表示と分岐させた、シンプルな読み物ページ用スタイル。
 * ============================================================= */
.single-release--info .release-info-page {
	max-width: 720px;
	margin-inline: auto;
}
.single-release--info .release-info-page__header {
	text-align: center;
	margin-bottom: var(--rc-space-xl);
	padding-bottom: var(--rc-space-md);
	border-bottom: 1px solid var(--rc-border);
}
.single-release--info .release-info-page__title {
	font-size: clamp(24px, 3.6vw, 36px);
	font-weight: 700;
	letter-spacing: .04em;
	margin: 0;
}
.single-release--info .release-info-page__content {
	line-height: 1.85;
}
.single-release--info .release-info-page__back {
	margin-top: var(--rc-space-2xl);
	text-align: center;
}

/* =============================================================
 * 19-3. 作家一覧（第3弾-G）
 *
 * /artist/ アーカイブ末尾に表形式で表示。
 * .entry-content table とは別スコープでテーマ色に合わせて整形。
 * ============================================================= */
.creators-section {
	margin-top: var(--rc-space-2xl);
	padding-top: var(--rc-space-xl);
	border-top: 1px solid var(--rc-border);
}
.creators-table {
	width: 100%;
	border-collapse: collapse;
	margin: var(--rc-space-md) 0 0;
	font-size: 14px;
	background: var(--rc-bg);
}
.creators-table th,
.creators-table td {
	padding: 12px 16px;
	border: 1px solid var(--rc-border);
	text-align: left;
	vertical-align: top;
	line-height: 1.6;
}
.creators-table__name {
	width: 40%;
	font-weight: 600;
	background: var(--rc-bg-alt);
	color: var(--rc-text);
}
.creators-table__role {
	color: var(--rc-text-muted);
	font-size: 13px;
}
@media (max-width: 640px) {
	.creators-table,
	.creators-table tbody,
	.creators-table tr,
	.creators-table th,
	.creators-table td {
		display: block;
		width: 100%;
		box-sizing: border-box;
	}
	.creators-table__name {
		border-bottom: 0;
	}
	.creators-table__role {
		border-top: 0;
		padding-top: 4px;
	}
	.creators-table tr + tr .creators-table__name {
		border-top: 1px solid var(--rc-border);
	}
}

/* =============================================================
 * 20. 投稿本文内テーブル（要件8）
 *
 * post_content / 固定ページ本文内の <table> をテーマ色に揃える。
 * 旧サイトから移行した料金表・仕様表などを想定。
 * .entry-content スコープに限定し、管理画面用テーブル等への影響を避ける。
 * ============================================================= */
.entry-content { overflow-x: auto; }
.entry-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5em 0;
	font-size: 14px;
	background: var(--rc-bg);
	line-height: 1.6;
}
.entry-content th,
.entry-content td {
	padding: 12px 16px;
	border: 1px solid var(--rc-border);
	text-align: left;
	vertical-align: top;
}
.entry-content th {
	background: var(--rc-bg-alt);
	font-weight: 600;
	color: var(--rc-text);
	letter-spacing: .04em;
}
.entry-content thead th {
	border-bottom: 2px solid var(--rc-border-strong);
}
.entry-content tbody tr:nth-child(odd) td {
	background: rgba(0, 0, 0, 0.015);
}
.entry-content table caption {
	font-size: 12px;
	color: var(--rc-text-muted);
	margin-bottom: 8px;
	text-align: left;
	caption-side: top;
}
@media (max-width: 600px) {
	.entry-content table { font-size: 13px; }
	.entry-content th,
	.entry-content td { padding: 8px 10px; }
}
