/* ============================================================
 * Sound Collective — コース詳細ページ (Tutor 単一) 専用CSS
 * Figma fPjY95UhP1I9BIfLJQkB3s
 *   Full Program PC 1704:3054  / SP 1106:8767
 *   Course       PC 1704:19988 / SP 1106:8822
 *   Online       PC 1704:21082 / SP 1106:8918
 * デザイントークンは sc-design-tokens.css の :root を利用。クラスは sc-cs-* で衝突回避。
 * 1つの [sc_course_single] が 3バリアント(.sc-cs--fp / --online / --course)を出し分ける。
 * ============================================================ */

.sc-cs {
	--sc-cs-margin: 80px;          /* PC ページ左右マージン (1440 → 内容 1280) */
	--sc-cs-aside: 515px;          /* 右購入カラム幅 (Figma Purchase Options) */
	--sc-cs-card-border: #6a6a6a;
	background: var(--sc-bg);
	color: var(--sc-fg);
	font-family: var(--sc-font);
	font-weight: var(--sc-fw-medium);
	line-height: var(--sc-lh);
}
.sc-cs *, .sc-cs *::before, .sc-cs *::after { box-sizing: border-box; }
.sc-cs h1, .sc-cs h2, .sc-cs h3, .sc-cs p, .sc-cs dl, .sc-cs dd { margin: 0; }
.sc-cs img { max-width: 100%; display: block; }
.sc-cs .sc-cs-note { font-size: 14px; color: var(--sc-fg-secondary); }

/* ===== 汎用ボタン ===== */
.sc-cs-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	width: 100%; min-height: 48px; padding: 10px 16px;
	border-radius: var(--sc-radius-pill); text-decoration: none; cursor: pointer;
	font-size: 14px; font-weight: var(--sc-fw-bold); line-height: 1.2;
}
.sc-cs-btn i { font-size: 14px; }
.sc-cs-btn--primary { background: var(--sc-primary); color: var(--sc-white); border: 1px solid var(--sc-primary); }
.sc-cs-btn--primary:hover { background-image: linear-gradient(rgba(255,255,255,.10), rgba(255,255,255,.10)); color: var(--sc-white); }
.sc-cs-btn--outline { background: transparent; border: 1px solid var(--sc-border-invert); color: var(--sc-fg); }
.sc-cs-btn--outline:hover { background: var(--sc-bg-hover-strong); color: var(--sc-primary); }
/* #235: セッション必須コースで選択できる日程が無いときの CTA(sc_cs_cta_html の disabled 分岐)。
 *   hover の明度反転も止める(押せると誤認させない)。 */
.sc-cs-btn:disabled,
.sc-cs-btn[aria-disabled="true"] { opacity: .45; cursor: not-allowed; pointer-events: none; }
.sc-cs-btn:disabled:hover,
.sc-cs-btn[aria-disabled="true"]:hover { background-image: none; }

/* ============================== Hero ==============================
 * 新PCデザイン (Figma 4016:72837): hero は全幅センターではなく左カラム(.sc-cs-main 内 845px)に入る。
 * 横paddingは .sc-cs-main の padding-left が担うため 0。 */
.sc-cs-hero {
	padding: 96px 0 32px;
	display: flex; flex-direction: column; align-items: center; gap: 24px;
}
.sc-cs-hero__inner { width: 100%; display: flex; flex-direction: column; align-items: center; gap: 24px; }
.sc-cs-hero__top {
	width: 100%; display: flex; align-items: center; justify-content: space-between;
	font-size: 16px; color: var(--sc-fg-secondary);
}
/* #138: 「< See all Programs」削除後は Share のみを右端に寄せる
 * #224: Share はサムネ直下へ移設したため __top/--share-only はマークアップから撤去済み
 *       (規則は他所からの参照に備えて温存)。 */
.sc-cs-hero__top--share-only { justify-content: flex-end; }
/* #224: サムネ/動画の直下・8px ギャップ・右下寄せ(Figma 4843:73271 / 4843:73438 ほか)。
 * .sc-cs-hero は gap:24px なので、8px を厳密に出すため媒体と Share を同じ列ラッパーに入れる。 */
.sc-cs-hero__sharerow { width: 100%; display: flex; justify-content: flex-end; margin-top: -16px; }
.sc-cs-back, .sc-cs-share { display: inline-flex; align-items: center; gap: 6px; color: var(--sc-fg-secondary); text-decoration: none; }
.sc-cs-back:hover, .sc-cs-share:hover { color: var(--sc-fg); }
.sc-cs-back i, .sc-cs-share i { font-size: 12px; }
button.sc-cs-share { border: none; background: transparent; cursor: pointer; font-family: var(--sc-font); font-size: 16px; padding: 0; }

/* 新PC: head は左カラム全幅(845px)。ロゴは新デザインで廃止(4016:72842)。 */
.sc-cs-hero__head { width: 100%; display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; }
.sc-cs-hero__chip {
	margin-bottom: 8px; background: var(--sc-bg-hover-strong); border: 1px solid var(--sc-border);
	border-radius: 54px; padding: 2px 8px;
	font-size: 14px; font-weight: var(--sc-fw-bold); color: var(--sc-fg);
}
.sc-cs-hero__title { font-size: 40px; font-weight: var(--sc-fw-bold); line-height: 1.2; color: var(--sc-fg); }
.sc-cs-hero__desc { font-size: 16px; font-weight: var(--sc-fw-medium); line-height: 1.4; color: var(--sc-fg-secondary); }
/* 説明文の開閉(#74): 既定は4行 clamp。Show More で is-clamped を外して全文表示 */
.sc-cs-hero__desc.is-clamped { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.sc-cs-desc-toggle {
	margin-top: 4px; padding: 0; border: none; background: none; cursor: pointer;
	font: inherit; font-size: 14px; font-weight: var(--sc-fw-bold); color: var(--sc-primary);
}
.sc-cs-desc-toggle:hover { text-decoration: underline; }

/* Online hero: 講師 + 時間 (Figma 1803:20410) */
.sc-cs-hero__by { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 12px; text-align: left; }
.sc-cs-hero__instr { display: flex; align-items: center; gap: 8px; }
.sc-cs-hero__ava { width: 32px; height: 32px; border-radius: 50%; background: #4d4d4d center/cover no-repeat; flex: 0 0 auto; }
.sc-cs-hero__instrtext { display: flex; flex-direction: column; }
.sc-cs-hero__instrtext small, .sc-cs-hero__hours small { font-size: 12px; color: var(--sc-fg-secondary); }
.sc-cs-hero__instrtext b, .sc-cs-hero__hours b { font-size: 16px; font-weight: var(--sc-fw-bold); color: var(--sc-fg); }
.sc-cs-hero__hours { display: flex; flex-direction: column; text-align: right; }

/* 製品タイプ帯 (Logo and Category 361px) */
.sc-cs-typestrip {
	display: flex; align-items: center; justify-content: center; gap: 2px;
	width: 361px; max-width: 100%; padding: 8px 0; background: var(--sc-bg-hover); border-radius: 8px; overflow: hidden;
}
.sc-cs-typestrip__item {
	flex: 1 1 0; min-width: 0; height: 64px; padding: 0 8px;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; text-align: center;
}
.sc-cs-typestrip__item i { font-size: 24px; color: var(--sc-fg); }
.sc-cs-typestrip__item b { font-size: 14px; font-weight: var(--sc-fw-bold); line-height: 1.1; color: var(--sc-fg); }
.sc-cs-typestrip__sep { align-self: stretch; width: 1px; background: var(--sc-border-dim); }

/* hero メディア (サムネ / 動画)。新PC: 左カラム全幅 845x479 (4016:72848) */
.sc-cs-hero__media {
	position: relative; width: 100%; aspect-ratio: 845 / 479;
	background: #4d4d4d center/cover no-repeat; border-radius: var(--sc-radius-card); overflow: hidden;
}
.sc-cs-hero__play {
	position: absolute; inset: 0; margin: auto; width: 96px; height: 96px; padding: 0;
	display: flex; align-items: center; justify-content: center; cursor: pointer;
	background: rgba(16,16,16,.55); border: 2px solid rgba(255,255,255,.85); border-radius: 50%;
	color: var(--sc-white); font-size: 32px; transition: background .15s ease;
}
.sc-cs-hero__play:hover { background: rgba(16,16,16,.75); }
.sc-cs-hero__play i { margin-left: 6px; }
/* #111: クリックで差し込まれた動画プレーヤーはメディア枠いっぱいに敷く */
.sc-cs-hero__media.is-playing { background: #000; }
.sc-cs-hero__media iframe, .sc-cs-hero__media video {
	position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: contain; background: #000;
}

/* ============================== Tabs ============================== */
/* 新PC: タブも左カラム内 (Figma Tab Group 4016:72874)。横paddingは .sc-cs-main が担う。 */
.sc-cs-tabs {
	padding: 32px 0 0; display: flex; gap: 8px;
	border-bottom: 1px solid var(--sc-border-dim);
}
.sc-cs-tab {
	position: relative; min-height: 40px; padding: 8px 12px; border: none; background: transparent; cursor: pointer;
	font-family: var(--sc-font); font-size: 16px; font-weight: var(--sc-fw-bold); line-height: 1.4; color: var(--sc-fg-secondary);
}
.sc-cs-tab:hover { color: var(--sc-fg); }
.sc-cs-tab.is-active { color: var(--sc-primary); }
.sc-cs-tab.is-active::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--sc-primary); }

/* ============================== Layout (main + aside) ============================== */
/* 新PC: ページ最上部から2カラム。左=hero+tabs+パネル(925px, 内容845px)、右=チップ帯+購入(515px, 内容371px)。 */
.sc-cs-layout {
	max-width: calc(1280px + var(--sc-cs-margin) * 2); margin-inline: auto;
	display: grid; grid-template-columns: minmax(0, 1fr) var(--sc-cs-aside); align-items: start;
}
.sc-cs-main  { grid-column: 1; grid-row: 1; min-width: 0; padding-left: var(--sc-cs-margin); }
/* aside: pt96 で hero パンくず(y=96)と天面を揃える(Figma 1704:5447 = 96/80/32/64)。
 * sticky top は -40px にして、スクロール固定時の見かけ上余白を 96-40=56px(旧挙動相当)に保つ。 */
.sc-cs-aside {
	grid-column: 2; grid-row: 1; padding: 96px var(--sc-cs-margin) 32px 64px;
	display: flex; flex-direction: column; gap: 16px;
	position: sticky; top: -40px;
}
.sc-cs-aside .sc-cs-typestrip { width: 100%; }
/* PC はチップ帯をサイドバー側のみ表示 (hero 内は SP 用) */
@media (min-width: 1025px) {
	.sc-cs-hero .sc-cs-typestrip { display: none; }
}

/* ============================== 購入ボックス ============================== */
.sc-cs-buy {
	display: flex; flex-direction: column; align-items: stretch; gap: 15px; padding: 16px;
	background: var(--sc-bg-bright); border: 1px solid var(--sc-cs-card-border); border-radius: 8px;
}
.sc-cs-buy__type { font-size: 12px; font-weight: var(--sc-fw-bold); color: var(--sc-fg); }
.sc-cs-buy__price { display: flex; align-items: center; justify-content: space-between; }
.sc-cs-buy__price span { font-size: 16px; font-weight: var(--sc-fw-bold); color: var(--sc-fg); }
.sc-cs-buy__price b { font-size: 22px; font-weight: var(--sc-fw-bold); color: var(--sc-fg); }

/* Course: セッション選択 */
.sc-cs-buy__sessions { display: flex; flex-direction: column; gap: 4px; }
.sc-cs-session { display: flex; padding: 8px; border-radius: 8px; border: 1px solid transparent; cursor: pointer; }
.sc-cs-session.is-selected { background: var(--sc-bg-hover-strong); border-color: var(--sc-primary); }
.sc-cs-session input { margin: 3px 8px 0 0; accent-color: var(--sc-primary); flex: 0 0 auto; }
.sc-cs-session__body { display: flex; flex-direction: column; gap: 2px; }
.sc-cs-session__body b { font-size: 16px; font-weight: var(--sc-fw-bold); color: var(--sc-fg); }
.sc-cs-session__body small { font-size: 14px; color: var(--sc-fg); }
.sc-cs-session__left { font-size: 14px; font-style: normal; color: var(--sc-error); }

/* Online / FP: 支払オプション */
.sc-cs-buy__opts { display: flex; flex-direction: column; gap: 8px; }
.sc-cs-opt { display: flex; align-items: center; justify-content: space-between; gap: 8px; cursor: pointer; }
.sc-cs-opt__left { display: inline-flex; align-items: center; gap: 8px; font-size: 16px; color: var(--sc-fg); }
.sc-cs-opt__left input { accent-color: var(--sc-primary); }
.sc-cs-opt > b { font-size: 22px; font-weight: var(--sc-fw-bold); color: var(--sc-fg); white-space: nowrap; }
.sc-cs-opt__plan { display: flex; flex-direction: column; align-items: flex-end; }
.sc-cs-opt__plan b { font-size: 22px; font-weight: var(--sc-fw-bold); color: var(--sc-fg); }
.sc-cs-opt__plan small { font-size: 12px; color: var(--sc-fg); }

/* FP: Payment Plans (Choose plan) — Tutor サブスク実プラン (#FPplans) */
.sc-cs-plans { display: flex; flex-direction: column; gap: 8px; padding-top: 4px; }
.sc-cs-plans__head { font-size: 14px; font-weight: var(--sc-fw-bold); color: var(--sc-fg); }
.sc-cs-plan { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px; border-radius: 8px; border: 1px solid var(--sc-border-invert); cursor: pointer; }
.sc-cs-plan.is-selected { background: var(--sc-bg-hover-strong); border-color: var(--sc-primary); }
/* Choose plan は Payment Plans 選択時のみ表示。.sc-cs-plans{display:flex} が [hidden] 既定を
 * 上書きしてしまうため、明示的に打ち消す(One-time 選択/初期状態では非表示)。 */
.sc-cs-plans[hidden] { display: none; }
.sc-cs-plan__left { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--sc-fg); }
.sc-cs-plan__left input { accent-color: var(--sc-primary); flex: 0 0 auto; }
.sc-cs-plan__price { display: flex; flex-direction: column; align-items: flex-end; white-space: nowrap; }
.sc-cs-plan__price b { font-size: 16px; font-weight: var(--sc-fw-bold); color: var(--sc-fg); }
.sc-cs-plan__price small { font-size: 12px; color: var(--sc-fg); }

.sc-cs-buy__actions { display: flex; flex-direction: column; gap: 8px; }
/* [hidden] は .sc-cs-btn の display:inline-flex に勝たせる(One-time/Payment Plans の CTA 出し分け) */
.sc-cs-buy__actions [hidden] { display: none; }
.sc-cs-buy__actions .sc-cs-btn { min-height: 36px; }
/* #73: 無料コースの Tutor ネイティブ Enroll フォームは幅いっぱいに(ボタンは sc-cs-btn を継承) */
.sc-cs-enroll, .sc-cs-enroll form { width: 100%; margin: 0; }
/* =============================================================================
 * #239 受講中の購入ボックス(Course Progress / Complete Course)
 *   Tutor 純正 course-entry-box.php の enrolled 分岐を自前デザインで再現したもの。
 *   ボタンは既存の .sc-cs-btn をそのまま使うので、ここは進捗表示ぶんだけ。
 * ========================================================================== */
.sc-cs-progress { display: flex; flex-direction: column; gap: 8px; margin-bottom: 4px; }
.sc-cs-progress__title { font-size: 16px; font-weight: var(--sc-fw-bold); color: var(--sc-fg); margin: 0; }
.sc-cs-progress__meta { display: flex; align-items: center; justify-content: space-between; font-size: 13px; font-weight: var(--sc-fw-medium); color: var(--sc-fg-secondary); }
.sc-cs-progress__bar { position: relative; height: 6px; border-radius: 999px; background: var(--sc-border-dim, #353c45); overflow: hidden; }
.sc-cs-progress__bar > span { display: block; height: 100%; border-radius: 999px; background: var(--sc-primary, #f04b50); }
/* Complete Course は form 越しのボタンなので、他の CTA と同じ幅・間隔に揃える。 */
.sc-cs-complete { margin: 0; }
.sc-cs-complete .sc-cs-btn { width: 100%; }
.sc-cs-enrolledon { display: flex; align-items: center; gap: 6px; margin: 4px 0 0; font-size: 13px; font-weight: var(--sc-fw-medium); color: var(--sc-fg-secondary); }
.sc-cs-enrolledon i { color: #37b24d; }
.sc-cs-enrolledon b { color: var(--sc-fg); }

.sc-cs-buy__fine { font-size: 13px; font-weight: var(--sc-fw-medium); line-height: 1.5; letter-spacing: .26px; text-align: center; color: var(--sc-fg); }

/* ============================== Section 共通 ============================== */
.sc-cs-sec { padding: 32px 0; }
.sc-cs-sec:first-child { padding-top: 32px; }
/* NOTE: セレクタは .sc-cs 付きで (0,2,0)。line22 の `.sc-cs h2 {margin:0}` (0,1,1) に負けて
 *       margin-bottom が効かず見出しと内容が密着していた (#43/#44 再修正)。gap は 16px に。 */
.sc-cs .sc-cs-sec__title { font-size: 32px; font-weight: var(--sc-fw-bold); line-height: 1.2; color: var(--sc-fg); margin-bottom: 16px; }
.sc-cs-main .sc-cs-sec { padding-right: 0; }

/* ===== About This Course (#76): post_content リッチ表示 + clamp + Show More (Figma 3662:76280 / 3631:42719) ===== */
.sc-cs-about__wrap { position: relative; }
.sc-cs-about__body { position: relative; font-size: 16px; font-weight: var(--sc-fw-medium); line-height: 1.4; color: var(--sc-fg); }
/* 折りたたみ: 高さ clamp + 下端フェード(Figma SP: 72px グラデ)。Show More で is-clamped を外し全文表示。 */
.sc-cs-about__body.is-clamped { max-height: 208px; overflow: hidden; }
.sc-cs-about__body.is-clamped::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 72px; pointer-events: none;
	background: linear-gradient(to bottom, rgba(18, 18, 18, 0), var(--sc-bg));
}
/* #91: パーツ別クラス (sc-cs-about__{tag}) を主体に。タグセレクタは DOMDocument 注入が
   失敗した場合のフォールバックとして併記(class が付かなくても最低限崩れないため)。 */
.sc-cs-about__body > *:first-child { margin-top: 0; }
.sc-cs-about__body > *:last-child { margin-bottom: 0; }
.sc-cs-about__body .sc-cs-about__p,
.sc-cs-about__body p { margin: 0 0 16px; }
.sc-cs-about__body .sc-cs-about__h2, .sc-cs-about__body .sc-cs-about__h3,
.sc-cs-about__body .sc-cs-about__h4, .sc-cs-about__body .sc-cs-about__h5, .sc-cs-about__body .sc-cs-about__h6,
.sc-cs-about__body h2, .sc-cs-about__body h3, .sc-cs-about__body h4,
.sc-cs-about__body h5, .sc-cs-about__body h6 {
	font-size: 18px; font-weight: var(--sc-fw-bold); line-height: 1.4; color: var(--sc-fg); margin: 24px 0 8px;
}
.sc-cs-about__body .sc-cs-about__strong, .sc-cs-about__body strong, .sc-cs-about__body b { font-weight: var(--sc-fw-bold); color: var(--sc-fg); }
.sc-cs-about__body .sc-cs-about__em, .sc-cs-about__body em, .sc-cs-about__body i { font-style: italic; }
.sc-cs-about__body .sc-cs-about__a, .sc-cs-about__body a { color: var(--sc-primary); text-decoration: underline; }
.sc-cs-about__body .sc-cs-about__ul, .sc-cs-about__body .sc-cs-about__ol,
.sc-cs-about__body ul, .sc-cs-about__body ol { margin: 0 0 16px; padding-left: 0; list-style: none; display: flex; flex-direction: column; gap: 4px; }
.sc-cs-about__body .sc-cs-about__li, .sc-cs-about__body li { position: relative; padding-left: 20px; font-size: 16px; line-height: 1.4; }
.sc-cs-about__body li:empty { display: none; } /* 本文末尾に紛れる空 <li> のダミー弾を消す */
.sc-cs-about__body .sc-cs-about__ul > .sc-cs-about__li::before,
.sc-cs-about__body ul > li::before { content: ""; position: absolute; left: 4px; top: 8px; width: 6px; height: 6px; border-radius: 50%; background: var(--sc-primary); }
.sc-cs-about__body .sc-cs-about__ol, .sc-cs-about__body ol { counter-reset: sc-cs-ol; }
.sc-cs-about__body .sc-cs-about__ol > .sc-cs-about__li, .sc-cs-about__body ol > li { counter-increment: sc-cs-ol; }
.sc-cs-about__body .sc-cs-about__ol > .sc-cs-about__li::before,
.sc-cs-about__body ol > li::before { content: counter(sc-cs-ol) "."; position: absolute; left: 0; color: var(--sc-primary); font-weight: var(--sc-fw-bold); }
/* ネストしたリスト: 親 li の下に入れ子の ul/ol が来ても縦積みで詰まらないよう調整 */
.sc-cs-about__body .sc-cs-about__li > .sc-cs-about__ul,
.sc-cs-about__body .sc-cs-about__li > .sc-cs-about__ol,
.sc-cs-about__body li > ul, .sc-cs-about__body li > ol { margin: 4px 0 0; }
.sc-cs-about__body .sc-cs-about__img, .sc-cs-about__body img { display: block; max-width: 100%; height: auto; border-radius: 8px; margin: 16px 0; }
.sc-cs-about__body .sc-cs-about__figure, .sc-cs-about__body figure { margin: 16px 0; }
.sc-cs-about__body .sc-cs-about__figcaption, .sc-cs-about__body figcaption { font-size: 13px; color: var(--sc-fg-secondary); margin-top: 6px; }
.sc-cs-about__body .sc-cs-about__hr, .sc-cs-about__body hr { border: 0; border-top: 1px solid var(--sc-border, rgba(255,255,255,.14)); margin: 24px 0; }
/* 引用 */
.sc-cs-about__body .sc-cs-about__blockquote, .sc-cs-about__body blockquote {
	margin: 16px 0; padding: 8px 0 8px 16px; border-left: 3px solid var(--sc-primary);
	color: var(--sc-fg-secondary); font-style: italic;
}
/* コード */
.sc-cs-about__body .sc-cs-about__code, .sc-cs-about__body code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .9em; background: var(--sc-bg-hover-strong, rgba(255,255,255,.08)); padding: 1px 6px; border-radius: 4px; }
.sc-cs-about__body .sc-cs-about__pre, .sc-cs-about__body pre { margin: 16px 0; padding: 16px; overflow-x: auto; background: var(--sc-bg-hover-strong, rgba(255,255,255,.08)); border-radius: 8px; }
.sc-cs-about__body .sc-cs-about__pre .sc-cs-about__code, .sc-cs-about__body pre code { background: none; padding: 0; }
/* テーブル: 横幅超過時は内部スクロール(ページ横スクロールを防ぐ) */
.sc-cs-about__body .sc-cs-about__table, .sc-cs-about__body table {
	display: block; width: 100%; max-width: 100%; overflow-x: auto; border-collapse: collapse; margin: 16px 0; font-size: 14px;
}
.sc-cs-about__body .sc-cs-about__th, .sc-cs-about__body .sc-cs-about__td,
.sc-cs-about__body th, .sc-cs-about__body td { border: 1px solid var(--sc-border, rgba(255,255,255,.14)); padding: 8px 12px; text-align: left; vertical-align: top; }
.sc-cs-about__body .sc-cs-about__th, .sc-cs-about__body th { font-weight: var(--sc-fw-bold); background: var(--sc-bg-hover-strong, rgba(255,255,255,.06)); }
.sc-cs-about__toggle { margin-top: 12px; }

/* ===== Reviews (#90): Tutor 実レビュー連動 (デザイン確定前フォールバック) ===== */
.sc-cs-stars { display: inline-flex; gap: 2px; font-size: 14px; line-height: 1; }
.sc-cs-star { color: var(--sc-primary); }
.sc-cs-star--empty { color: var(--sc-border, rgba(255,255,255,.22)); }
.sc-cs-reviews__summary { display: flex; flex-wrap: wrap; gap: 24px 40px; align-items: center; margin-bottom: 24px; padding: 20px 24px; background: var(--sc-bg-hover-strong, rgba(255,255,255,.05)); border-radius: 12px; }
.sc-cs-reviews__score { display: flex; flex-direction: column; gap: 6px; }
.sc-cs-reviews__avg { font-size: 40px; font-weight: var(--sc-fw-bold); line-height: 1; color: var(--sc-fg); }
.sc-cs-reviews__score .sc-cs-stars { font-size: 16px; }
.sc-cs-reviews__count { font-size: 14px; color: var(--sc-fg-secondary); }
.sc-cs-reviews__bars { flex: 1 1 240px; min-width: 200px; display: flex; flex-direction: column; gap: 6px; list-style: none; margin: 0; padding: 0; }
.sc-cs-reviews__bar { display: flex; align-items: center; gap: 10px; }
.sc-cs-reviews__bar-label { display: inline-flex; align-items: center; gap: 3px; font-size: 13px; color: var(--sc-fg-secondary); width: 34px; flex: 0 0 auto; }
.sc-cs-reviews__bar-track { position: relative; flex: 1 1 auto; height: 6px; border-radius: 3px; background: var(--sc-border, rgba(255,255,255,.14)); overflow: hidden; }
.sc-cs-reviews__bar-fill { position: absolute; inset: 0 auto 0 0; height: 100%; background: var(--sc-primary); border-radius: 3px; }
.sc-cs-reviews__bar-cnt { font-size: 13px; color: var(--sc-fg-secondary); width: 24px; text-align: right; flex: 0 0 auto; }
.sc-cs-reviews__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 20px; }
.sc-cs-review { padding-bottom: 20px; border-bottom: 1px solid var(--sc-border, rgba(255,255,255,.12)); }
.sc-cs-review:last-child { border-bottom: 0; padding-bottom: 0; }
.sc-cs-review__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 12px; margin-bottom: 6px; }
.sc-cs-review__name { font-size: 15px; font-weight: var(--sc-fw-bold); color: var(--sc-fg); }
.sc-cs-review__date { font-size: 13px; color: var(--sc-fg-secondary); }
.sc-cs-review .sc-cs-stars { margin-bottom: 8px; }
.sc-cs-review__body { font-size: 15px; line-height: 1.5; color: var(--sc-fg); margin: 0; }
/* ★ `.sc-cs` 前置きで (0,2,0)。実描画は `<p class="sc-cs-note sc-cs-reviews__more">`(sc-course-single.php:1382)
 *   なので :22 の `.sc-cs p { margin: 0 }`(0,1,1) に margin-top を食われる(= #192 と同型)。
 *   併記クラスの `.sc-cs .sc-cs-note`(:24) は font-size/color のみで margin を持たないため救われない。
 *   ※ レビューがあるコースだけ描画されるためローカル未確認(SUSPECTED)。 */
.sc-cs .sc-cs-reviews__more { margin-top: 20px; }

/* ===== Skills (online = check リスト) ===== */
.sc-cs-skills__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.sc-cs-skills__list--simple { grid-template-columns: 1fr; }
.sc-cs-skill { display: flex; align-items: flex-start; gap: 8px; }
.sc-cs-skill--simple i { font-size: 20px; color: var(--sc-brand-studio); margin-top: 2px; flex: 0 0 auto; }
.sc-cs-skill__text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.sc-cs-skill__text b { font-size: 16px; font-weight: var(--sc-fw-bold); color: var(--sc-fg); }
.sc-cs-skill__text span { font-size: 14px; color: var(--sc-fg-secondary); line-height: 1.4; }

/* ===== Skills (Course/FP = カードグリッド) — Figma 3918:63330 / #107→#146 PC=3Dフリップ SP=モーダル ===== */
/* 采寸(Figma 3918:63330 = "Included item container"): カード 276x232 / radius 12 / border 1px #353739(≒--sc-border-dim) /
 *   bg #121212(=--sc-bg) / padding 32px 8px / アイコン円 128px / タイトル・本文 Montserrat 16px lh1.4。
 *   グリッド(2400:79048): 3列 gap 8px(縦横とも)。SP は現状維持(2列/pic96)。
 * 表(front)= アイコン+スキル名 / 裏(back)= 説明文。PC のみ __inner を rotateY(180deg) で 3D フリップ。 */
/* grid 既定の align-items:stretch で同一行のカード高さが揃う。 */
/* #138: Skills 見出し下のホバー案内(PC のみ。SP はモーダル+Openボタンなので非表示) */
/* #192: 見出し→hint→グリッドの余白を「他セクションと同じ 16px リズム」に揃える。
 *   旧 `margin:-8px 0 0` は見出しの margin-bottom:16px を -8px で打ち消して 8px に詰め、
 *   さらに hint の下余白 0 でカードグリッドが密着していた(クライアント指摘「余白が詰まっている」)。
 *   16px の根拠 = `.sc-cs .sc-cs-sec__title { margin-bottom:16px }`(全 .sc-cs-sec 共通の見出し下余白)。
 *   ※ hint は SP では display:none(#138)なので SP の見出し→グリッドは従来どおり 12px。 */
/* ★ セレクタは `.sc-cs` を前置きして (0,2,0) にする。理由: 本ファイル冒頭 :22 の
 *   `.sc-cs h1, .sc-cs h2, .sc-cs h3, .sc-cs p, ... { margin: 0 }`(0,1,1)が
 *   `.sc-cs-skills__hint` 単体(0,1,0)に**勝ってしまい margin が一切効かない**。
 *   実測: 前置き無しだと hint→グリッドの余白が 0px のまま(=指摘の「密着」が直らない)。
 *   旧 `margin:-8px 0 0` も同じ理由で元から無効だった(詰まりの真因はこのリセット)。
 *   同ファイルの `.sc-cs .sc-cs-sec__title { margin-bottom:16px }`(:207)が同じ対処をしている。 */
.sc-cs .sc-cs-skills__hint { margin: 0 0 16px; font-size: 14px; color: var(--sc-fg-secondary); }
/* #192: 行間(row-gap)のみ 8px → 16px。指摘は「カードの行間」なので、列間は Figma 2400:79048 の
 *   3列 gap 8px を維持する(横幅=カード寸法 276px 起点の確定値を崩さない)。16px はカード内の
 *   gap / padding(.sc-cs-skillcard)や .sc-cs-skills__list の gap と同じスケール値。 */
.sc-cs-skills__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 8px; row-gap: 16px; }
.sc-cs-skillcard {
	display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 16px 8px;
	background: var(--sc-bg-bright); border-radius: var(--sc-radius-card);
}
/* フリップ土台。SP/base では静的(表面だけを縦積み表示)。PC 用のフリップは下の @media で有効化。 */
.sc-cs-skillcard__inner { display: flex; flex-direction: column; align-items: center; gap: 16px; width: 100%; }
.sc-cs-skillcard__face { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; }
.sc-cs-skillcard__face--back { display: none; } /* SP: 説明はモーダルで表示(裏面は出さない) */
.sc-cs-skillcard__pic { width: 128px; height: 128px; border-radius: 50%; background: var(--sc-bg-hover-strong); flex: 0 0 auto; }
/* #142: アイコン(白ソリッド SVG)を円内中央に。<img> 参照。 */
.sc-cs-skillcard__pic--icon { display: flex; align-items: center; justify-content: center; }
.sc-cs-skillcard__img { width: 56%; height: 56%; object-fit: contain; display: block; }
.sc-cs-skillcard__desc { margin: 0; font-size: 16px; font-weight: var(--sc-fw-medium); line-height: 1.4; color: var(--sc-fg); text-align: center; }
.sc-cs-skillcard__title { margin: 0; text-align: center; font-size: 16px; font-weight: var(--sc-fw-bold); line-height: 1.4; color: var(--sc-fg); }
/* Open ボタンは常にカード下端へ(SP 用。PC は下の @media で非表示)。 */
.sc-cs-skillcard__btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 32px; padding: 4px 16px; margin-top: auto;
	border: 1px solid var(--sc-border-invert); border-radius: var(--sc-radius-pill); background: var(--sc-bg-invert); cursor: pointer;
	color: var(--sc-bg-bright); font-family: var(--sc-font); font-size: 14px; font-weight: var(--sc-fw-bold); line-height: 1.2;
	transition: background .15s ease, color .15s ease;
}
.sc-cs-skillcard__btn:hover { background: var(--sc-border-invert); color: var(--sc-primary); }
/* PC (hover デバイス・grid 3列=1025px 基準)で 3D カードフリップ。hover:hover でタッチデバイスを除外(SP はモーダルのまま)。
 * 挙動(#18 yuria 2026-07-22): :hover でフリップ / クリックで .is-flipped 固定 / 再クリックで解除。
 *   解除直後はポインタが載ったままでも表へ戻すため is-nohover で :hover を打ち消す。
 * 背景色(Figma 1704-5446): 表 #272727(--sc-bg-bright)/ 裏 #121212(--sc-bg)/ 枠 1px #353739(--sc-border-dim)。 */
@media (hover: hover) and (min-width: 1025px) {
	/* Figma 采寸: 276x232 / radius 12 / padding 32 8。背景・枠は各 face が持つ(表裏で色が異なるため)。 */
	/* #18(yuria 2026-07-23): 表面で 2行タイトルがアイコン円と被らないよう高さを 232→256px に。
	 * height 固定 = 全カード等高(タイトル行数に依らず揃う)。アイコンは上部固定で表裏とも同位置(下記)。 */
	.sc-cs-skillcard {
		height: 256px; padding: 0; gap: 0; perspective: 1000px;
		background: transparent; border: 0; cursor: pointer;
	}
	.sc-cs-skillcard:focus-visible { outline: 2px solid var(--sc-fg); outline-offset: 2px; }
	.sc-cs-skillcard__inner {
		position: relative; height: 100%; gap: 0;
		transform-style: preserve-3d; transition: transform .6s cubic-bezier(.2, .7, .2, 1);
	}
	.sc-cs-skillcard__face {
		position: absolute; inset: 0; padding: 32px 8px;
		border: 1px solid var(--sc-border-dim); border-radius: var(--sc-radius-card);
		backface-visibility: hidden; -webkit-backface-visibility: hidden;
	}
	/* 表: 背景 #272727。アイコン円は中央(絶対配置)、スキル名は下端。 */
	.sc-cs-skillcard__face--front { background: var(--sc-bg-bright); justify-content: flex-end; }
	/* 裏: 背景 #121212。スキル名+説明を中央に。アイコンは同位置で薄く(説明文の背景)。 */
	.sc-cs-skillcard__face--back {
		display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
		background: var(--sc-bg); transform: rotateY(180deg); overflow: auto;
	}
	/* #18: アイコン円は表裏で同じ位置 = カード上部に絶対配置(フリップで位置がずれない)。
	 * #18(yuria 2026-07-23): 中央(top:50%)だと下端寄せのタイトルと被るため上部固定に変更。
	 *   表=アイコン上部+タイトル下端で余白確保(被らない)/ 裏=同位置で opacity10% の背景に。 */
	.sc-cs-skillcard__face .sc-cs-skillcard__pic {
		position: absolute; top: 32px; left: 50%; transform: translateX(-50%); margin: 0; z-index: 0;
	}
	.sc-cs-skillcard__face--front .sc-cs-skillcard__title { position: relative; z-index: 1; width: 100%; }
	/* 裏面: アイコンを opacity 10% で説明文の背景に。タイトル/説明は前面。 */
	.sc-cs-skillcard__face--back .sc-cs-skillcard__pic { opacity: .1; }
	.sc-cs-skillcard__face--back .sc-cs-skillcard__title,
	.sc-cs-skillcard__face--back .sc-cs-skillcard__desc { position: relative; z-index: 1; }
	/* hover / .is-flipped(クリック固定)で表→裏に反転(表は backface-visibility:hidden で隠れる)。 */
	.sc-cs-skillcard:hover .sc-cs-skillcard__inner,
	.sc-cs-skillcard.is-flipped .sc-cs-skillcard__inner { transform: rotateY(180deg); }
	/* 固定解除直後(is-nohover)は、ポインタが載ったままでも hover フリップを打ち消して表へ戻す。 */
	.sc-cs-skillcard.is-nohover:not(.is-flipped):hover .sc-cs-skillcard__inner { transform: none; }
	/* Figma(PC): Skills カードに Open ボタンは無い(フリップで説明を表示)。SP はモーダルのため維持。 */
	.sc-cs-skillcard__btn { display: none; }
	/* アクセシビリティ: モーション低減環境ではフリップのアニメーションを無効化(即時切替)。 */
	@media (prefers-reduced-motion: reduce) {
		.sc-cs-skillcard__inner { transition: none; }
	}
}

/* ===== What's Included (アイコン+テキストの縦リスト) — Figma 2400:79310 ===== */
/* #87: 2状態で寸法が異なる。行間 16px は両状態共通 (Figma 1106:8700 PC / SP)。
 *   - アイコンあり : 64px 円 + タイトル(18px) + 説明(16px) — Figma 1704-20037 / 1106-8700
 *   - アイコンなし : 32px ソリッド赤チェック丸 + タイトルのみ (コンパクト) — Figma 1704-20037 / 2400-78625 */
.sc-cs-included__grid { display: flex; flex-direction: column; gap: 16px; }
.sc-cs-inc { display: flex; flex-direction: row; align-items: center; gap: 16px; }
.sc-cs-inc__icon {
	display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; flex: 0 0 auto;
	border-radius: 50%; background: rgba(240,75,80,.12); color: var(--sc-primary); font-size: 28px;
}
/* #87: アイコン未選択時 (Figma 1704-20037 / 2400-78625) — 32px ソリッド赤丸 + 白チェック。
 *   子孫セレクタ (0,2,0) で基底・SP の .sc-cs-inc__icon (0,1,0) を確実に上書き。 */
.sc-cs-inc--check .sc-cs-inc__icon { width: 32px; height: 32px; font-size: 16px; background: var(--sc-primary); color: #fff; }
.sc-cs-inc__text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.sc-cs-inc__text b { font-size: 18px; font-weight: var(--sc-fw-bold); line-height: 1.2; color: var(--sc-fg); }
.sc-cs-inc__text span { font-size: 16px; font-weight: var(--sc-fw-medium); color: var(--sc-fg-secondary); }

/* ===== Accordion (curriculum / faq / course content) ===== */
.sc-cs-acc { display: flex; flex-direction: column; gap: 8px; }
.sc-cs-acc__item { background: var(--sc-bg-bright); border-radius: 8px; overflow: hidden; }
.sc-cs-acc__head {
	width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding: 16px; border: none; background: transparent; cursor: pointer; text-align: left;
	font-family: var(--sc-font); font-size: 16px; font-weight: var(--sc-fw-bold); color: var(--sc-fg);
}
.sc-cs-acc__head i { font-size: 16px; color: var(--sc-fg-secondary); transition: transform .2s ease; }
.sc-cs-acc__item.is-open .sc-cs-acc__head i { transform: rotate(45deg); }
.sc-cs-acc__body { padding: 0 16px 16px; display: flex; flex-direction: column; gap: 8px; }
.sc-cs-acc__item:not(.is-open) .sc-cs-acc__body { display: none; }
.sc-cs-acc__body li { display: flex; align-items: center; gap: 12px; font-size: 14px; color: var(--sc-fg-secondary); list-style: none; }
.sc-cs-acc__body li i { color: var(--sc-fg-secondary); }
.sc-cs-acc__body--faq p { font-size: 14px; color: var(--sc-fg-secondary); line-height: 1.5; }

/* #89: Course Content レッスン行 — 左=種別アイコン+タイトル / 右=再生時間+ロック (Figma 1365:27048 / 1704:21793)。 */
.sc-cs-acc__head .sc-cs-acc__headtitle { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.sc-cs-acc__head .sc-cs-acc__headtitle > span:first-child { min-width: 0; }
/* ★ 親 `.sc-cs-acc__body` を前置きして (0,2,0)。レッスン行は `.sc-cs-acc__body` 直下の <li> なので、
 *   :431 `.sc-cs-acc__body li { gap: 12px }`(0,1,1) と :432 `.sc-cs-acc__body li i { color: … }`(0,1,2) が
 *   単体クラス (0,1,0) の gap / color を食っていた(= #192 と同型)。結果、上の #89 コメントが指定する
 *   8px が 12px になり、種別アイコンが --sc-fg でなく --sc-fg-secondary の灰色で出ていた。
 *   (0,2,0) は b=2 なので (0,1,2) にも勝つ(b が先に比較される)。 */
.sc-cs-acc__body .sc-cs-lesson { gap: 8px; }
.sc-cs-acc__body .sc-cs-lesson__ico { flex: 0 0 auto; font-size: 16px; color: var(--sc-fg); }
.sc-cs-lesson__title { flex: 1 1 auto; min-width: 0; font-size: 16px; font-weight: var(--sc-fw-medium); color: var(--sc-fg); }
/* #89: 閲覧可能レッスンはリンク化。色は継承しホバーで下線(ロック行との差はカーソル/ホバーのみ)。 */
a.sc-cs-lesson__title { color: inherit; text-decoration: none; cursor: pointer; }
a.sc-cs-lesson__title:hover { text-decoration: underline; }
.sc-cs-lesson__meta { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 12px; margin-left: auto; }
.sc-cs-lesson__dur { font-size: 16px; font-weight: var(--sc-fw-medium); color: var(--sc-fg); white-space: nowrap; }
.sc-cs-lesson__lock { font-size: 16px; color: var(--sc-fg-secondary); }

/* #89: トピック概要ツールチップ (i)。ホバー(PC) / タップ(SP, .is-tip-open) で説明を表示。実データ=topic 概要のみ。
 *   トピックカードは overflow:hidden でツールチップが切れるため curriculum のみ overflow:visible にし、
 *   ボックスはアイコンではなく見出し行(.sc-cs-acc__head)基準で「見出し直下・カード幅いっぱい」に出す(右端の見切れ防止)。 */
.sc-cs-curriculum .sc-cs-acc__item { overflow: visible; }
.sc-cs-acc__head { position: relative; }
.sc-cs-tip { display: inline-flex; align-items: center; flex: 0 0 auto; }
.sc-cs-acc__head .sc-cs-tip i { font-size: 13px; color: var(--sc-fg-secondary); transition: none; cursor: help; }
.sc-cs-acc__item.is-open .sc-cs-acc__head .sc-cs-tip i { transform: none; }
.sc-cs-tip__box {
	position: absolute; left: 16px; right: 16px; top: calc(100% - 4px); z-index: 20;
	max-height: 240px; overflow: auto; padding: 10px 12px;
	background: var(--sc-bg); border: 1px solid var(--sc-cs-card-border); border-radius: 8px;
	box-shadow: 0 6px 20px rgba(0,0,0,.35);
	font-size: 13px; font-weight: var(--sc-fw-medium); line-height: 1.5; color: var(--sc-fg-secondary);
	white-space: normal; text-align: left;
	opacity: 0; visibility: hidden; transform: translateY(4px); pointer-events: none;
	transition: opacity .15s ease, transform .15s ease, visibility .15s ease;
}
.sc-cs-tip:hover .sc-cs-tip__box, .sc-cs-tip.is-tip-open .sc-cs-tip__box { opacity: 1; visibility: visible; transform: translateY(0); }

/* ===== Part of These Programs / Course List link rows (#197: 見出し文言を修正) ===== */
.sc-cs-proglink {
	display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px;
	background: var(--sc-bg-bright); border-radius: 8px; text-decoration: none;
	font-size: 16px; font-weight: var(--sc-fw-bold); color: var(--sc-fg);
}
.sc-cs-proglink:hover { background: var(--sc-bg-hover-strong); color: var(--sc-fg); }
.sc-cs-proglink i { font-size: 14px; color: var(--sc-fg-secondary); }
/* ===== Course List (FP) — Figma 1704:17453。セクションごとにコーラルのアコーディオン + カードグリッド ===== */
.sc-cs-courselist { display: flex; flex-direction: column; gap: 16px; }
.sc-cs-clsec { display: flex; flex-direction: column; gap: 16px; }
.sc-cs-clsec__head {
	position: relative; width: 100%; display: flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 44px; padding: 10px 48px; border: none; border-radius: var(--sc-radius-pill); cursor: pointer;
	background: var(--sc-primary); color: var(--sc-white);
	font-family: var(--sc-font); font-size: 16px; font-weight: var(--sc-fw-bold); line-height: 1.2;
}
.sc-cs-clsec__head:hover { background-image: linear-gradient(rgba(255,255,255,.10), rgba(255,255,255,.10)); }
.sc-cs-clsec__head i { position: absolute; right: 24px; font-size: 14px; }
/* #73: Figma 1704:17453 = 開いているセクション=コーラル / 閉じているセクション=白背景+濃色文字 */
.sc-cs-clsec:not(.is-open) .sc-cs-clsec__head { background: var(--sc-white); color: #0b0d27; }
.sc-cs-clsec:not(.is-open) .sc-cs-clsec__head:hover { background-image: linear-gradient(rgba(0,0,0,.06), rgba(0,0,0,.06)); }
.sc-cs-clsec__body { display: none; }
.sc-cs-clsec.is-open .sc-cs-clsec__body { display: block; }
.sc-cs-clgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
/* #73: 統一カード (sc-disc2-cards) をグリッドに載せる際は既定 margin-top を打ち消す */
.sc-cs-clgrid.sc-disc2-cards { margin-top: 0; }
.sc-cs-related .sc-disc2-cards { margin-top: 16px; }

/* ===== Career Path chips (FP) ===== */
.sc-cs-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.sc-cs-chip {
	display: inline-flex; align-items: center; min-height: 28px; padding: 4px 12px; border-radius: 54px;
	background: var(--sc-bg-hover-strong); color: var(--sc-fg); font-size: 14px; font-weight: var(--sc-fw-bold);
}

/* ===== Student testimonials (FP) ===== */
.sc-cs-quote {
	flex: 0 0 308px; scroll-snap-align: start; display: flex; flex-direction: column;
	background: var(--sc-bg-bright); border: 1px solid var(--sc-cs-card-border); border-radius: var(--sc-radius-card); overflow: hidden;
}
.sc-cs-quote__video { position: relative; width: 100%; aspect-ratio: 307 / 174; background: #000; }
.sc-cs-quote__video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.sc-cs-quote__body { display: flex; flex-direction: column; gap: 16px; padding: 16px; }
.sc-cs-quote__body > i { font-size: 24px; color: var(--sc-primary); }
.sc-cs-quote__body p { font-size: 14px; color: var(--sc-fg); line-height: 1.5; }
.sc-cs-quote__by { display: flex; align-items: center; gap: 8px; }
.sc-cs-quote__ava { width: 48px; height: 48px; border-radius: 50%; background: #4d4d4d center/cover no-repeat; flex: 0 0 auto; }
/* #103追: photo 設定時は実画像を円形 cover クロップ表示(プレースホルダのグレーは透過)。 */
.sc-cs-quote__ava--photo { background-color: transparent; background-size: cover; background-position: center; }
.sc-cs-quote__meta { display: flex; flex-direction: column; }
.sc-cs-quote__meta b { font-size: 16px; font-weight: var(--sc-fw-bold); color: var(--sc-fg); }
.sc-cs-quote__meta small { font-size: 12px; color: var(--sc-fg-secondary); }

/* ===== Instructors ===== */
.sc-cs-instr {
	flex: 0 0 308px; scroll-snap-align: start; display: flex; flex-direction: column; gap: 8px;
	padding: 16px; background: var(--sc-bg-bright); border: 1px solid var(--sc-border-dim); border-radius: var(--sc-radius-card);
}
/* #87: 逆引きで講師詳細が解決できたカードはリンク化(a 要素・見た目は article と同一 + hover)。 */
.sc-cs-instr--link { text-decoration: none; transition: background .15s ease, transform .15s ease, color .15s ease; }
.sc-cs-instr--link:hover { background: var(--sc-bg-hover-strong); transform: translateY(-2px); }
/* #106: hover で名前を primary に(リンク解決したカードのみ)。 */
.sc-cs-instr--link:hover .sc-cs-instr__meta b { color: var(--sc-primary); }
.sc-cs-instr__pic { width: 100%; aspect-ratio: 1 / 1; background: #4d4d4d center/cover no-repeat; border-radius: 8px; }
.sc-cs-instr__meta { display: flex; flex-direction: column; }
.sc-cs-instr__meta b { font-size: 16px; font-weight: var(--sc-fw-bold); color: var(--sc-fg); }
.sc-cs-instr__meta span { font-size: 14px; color: var(--sc-fg-secondary); }

/* ===== Carousel ===== */
.sc-cs-carousel { position: relative; }
.sc-cs-carousel__track {
	display: flex; gap: 16px; overflow-x: auto; padding-bottom: 8px;
	scroll-snap-type: x mandatory; scroll-behavior: smooth;
	scrollbar-width: none; -ms-overflow-style: none;
}
.sc-cs-carousel__track::-webkit-scrollbar { display: none; }
/* #110: カルーセル各カードを中央スナップ(centered/peek)。SP のブリードは下部 @media。 */
.sc-cs-carousel__track > .sc-cs-card,
.sc-cs-carousel__track > .sc-cs-instr,
.sc-cs-carousel__track > .sc-cs-quote { scroll-snap-align: center; }
.sc-cs-carousel__nav { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }
.sc-cs-navbtn {
	display: inline-flex; align-items: center; justify-content: center; width: 35px; height: 36px;
	border: none; border-radius: var(--sc-radius-pill); cursor: pointer;
	background: var(--sc-bg-hover-strong); color: var(--sc-fg); font-size: 14px;
}
.sc-cs-navbtn:hover { background: rgba(255,255,255,.16); color: var(--sc-primary); }

/* ===== CardClass (related courses) ===== */
.sc-cs-card {
	position: relative; flex: 0 0 308px; scroll-snap-align: start; display: flex; flex-direction: column; overflow: hidden;
	background: var(--sc-bg-bright); border: 1px solid var(--sc-cs-card-border); border-radius: var(--sc-radius-card);
}
.sc-cs-card__thumb { width: 100%; aspect-ratio: 1920 / 1080; background: #4d4d4d center/cover no-repeat; }
/* #165: body を伸長させ CTA を下端揃え(margin-top:auto は下記 __cta)。 */
.sc-cs-card__body { display: flex; flex-direction: column; gap: 16px; padding: 16px; flex: 1 1 auto; }
.sc-cs-card__content { display: flex; flex-direction: column; gap: 16px; }
.sc-cs-card__info { display: flex; flex-direction: column; gap: 4px; }
.sc-cs-card__tags { display: flex; gap: 4px; }
.sc-cs-tag { display: inline-flex; align-items: center; padding: 0 8px; font-size: 12px; font-weight: var(--sc-fw-bold); line-height: 1.2; }
.sc-cs-tag--cat { background: var(--sc-white); color: #0b0d27; }
.sc-cs-tag--level { background: var(--sc-bg-hover-strong); color: var(--sc-fg); }
/* #165: タイトル2行クランプ(行数差でメタ行以下がズレるのを防ぐ)。 */
.sc-cs-card__title { width: 100%; padding: 2px 4px; background: var(--sc-white); color: #0b0d27; font-size: 24px; font-weight: var(--sc-fw-bold); line-height: 1.2; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sc-cs-card__stats { display: flex; gap: 8px; padding-bottom: 8px; border-bottom: 1px solid var(--sc-border); }
.sc-cs-card__stat { flex: 1 0 0; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.sc-cs-card__stat:nth-child(2) { text-align: center; }
.sc-cs-card__stat:nth-child(3) { text-align: right; }
.sc-cs-card__stat dt { font-size: 12px; font-weight: var(--sc-fw-medium); color: var(--sc-fg-secondary); }
.sc-cs-card__stat dd { font-size: 16px; font-weight: var(--sc-fw-bold); color: var(--sc-fg); }
.sc-cs-card__desc {
	font-size: 12px; font-weight: var(--sc-fw-medium); line-height: 1.4; color: var(--sc-fg-secondary);
	display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.sc-cs-card__price { display: flex; flex-direction: column; gap: 4px; }
.sc-cs-card__price b { font-size: 20px; font-weight: var(--sc-fw-bold); line-height: 1.2; color: var(--sc-fg); }
.sc-cs-card__price span { font-size: 12px; font-weight: var(--sc-fw-medium); color: var(--sc-fg-secondary); }
.sc-cs-card__cta {
	display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 7px 24px;
	background: var(--sc-white); color: #0b0d27; border-radius: var(--sc-radius-pill);
	font-size: 18px; font-weight: var(--sc-fw-bold); line-height: 1.4; text-decoration: none;
	margin-top: auto; /* #165: カード下端に固定(body の flex:1 と併せ CTA 位置を揃える) */
}
.sc-cs-card__cta:hover { color: var(--sc-primary); }

/* ===== Our Facility (= /disciplines sc-mp-facility を再現) ===== */
.sc-cs-facility { position: relative; overflow: hidden; padding: 32px 0; }
.sc-cs-facility__bg {
	position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background: left center/cover no-repeat; opacity: .18; mix-blend-mode: hard-light;
	-webkit-mask-image: linear-gradient(to right, #000 40%, transparent 85%);
	        mask-image: linear-gradient(to right, #000 40%, transparent 85%);
}
.sc-cs-facility__inner { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: stretch; gap: 24px; } /* #82: 1カラム */
.sc-cs-facility__text { flex: 0 0 auto; width: 100%; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.sc-cs-facility__title { font-size: 40px; font-weight: var(--sc-fw-bold); line-height: 1.2; color: var(--sc-fg); }
.sc-cs-facility__text p { font-size: 18px; font-weight: var(--sc-fw-medium); line-height: 1.4; color: var(--sc-fg); }
.sc-cs-facility__shot { flex: none; width: 100%; height: auto; aspect-ratio: 420 / 238; object-fit: cover; border-radius: var(--sc-radius-card); } /* #82: フル幅・横長 */

/* ===== #82(revised): 共有Elementorテンプレート「SC Our Facility」を /courses/* のみ1カラム化 =====
 * このテンプレは home / disciplines / course で共有され、既定は2カラム(row)に戻した
 * (build-facility-template.php + sc-home.css)。course単一ページ(body.single-courses)だけを
 * 縦積み(テキスト→動画・全幅)へ上書きする。DOM はどのページでも同一(要素IDも共通)なので、
 * body.single-courses でスコープするのが唯一の区別軸。テンプレのインラインCSSは要素ID(0,3,0)で
 * 子の幅/flexを与えるため、子の全幅化は !important で確実に上書きする。 */
body.single-courses .sc-facility__inner {
	flex-direction: column;
	align-items: stretch;
}
body.single-courses .sc-facility__inner > .sc-facility__text,
body.single-courses .sc-facility__inner > .elementor-element {
	width: 100% !important;
	max-width: 100% !important;
	flex: 0 0 auto !important;
}

/* ===== #70: Online Subscription 導線バナー (/disciplines の購読バナー .sc-mp-sub と同一デザイン) ===== */
.sc-cs-subsec { padding-top: 0; }
.sc-cs-sub {
	position: relative; overflow: hidden; z-index: 1;
	display: flex; align-items: center; gap: 16px; padding: 12px;
	background: #272727 url("../images/sc-subs-texture.png") center / 100% 100% no-repeat;
	border: 1px solid var(--sc-cs-card-border); border-radius: var(--sc-radius-card); text-decoration: none;
}
.sc-cs-sub__main { position: relative; z-index: 1; flex: 1 0 0; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.sc-cs-sub__chip { align-self: flex-start; background: var(--sc-bg-hover-strong); border-radius: 54px; padding: 2px 8px; font-size: 12px; font-weight: var(--sc-fw-medium); color: var(--sc-fg); }
.sc-cs-sub__title { font-size: 20px; font-weight: var(--sc-fw-bold); line-height: 1.4; color: var(--sc-fg); }
.sc-cs-sub__meta { font-size: 12px; font-weight: var(--sc-fw-medium); color: var(--sc-fg-secondary); }
.sc-cs-sub__meta b { color: var(--sc-fg); font-weight: var(--sc-fw-bold); }
.sc-cs-sub__arrow { position: relative; z-index: 1; flex: 0 0 auto; color: var(--sc-fg); }
.sc-cs-sub__arrow i { font-size: 24px; }
.sc-cs-sub:hover .sc-cs-sub__title { color: var(--sc-primary); }

/* ============================== Speak to our Team ============================== */
.sc-cs-contact { background: var(--sc-bg-bright); padding: 48px 16px; margin-top: 24px; }
.sc-cs-contact__inner { max-width: 846px; margin-inline: auto; display: flex; flex-direction: column; gap: 24px; }
.sc-cs-contact__title { font-size: 32px; font-weight: var(--sc-fw-bold); line-height: 1.2; text-align: center; color: var(--sc-fg); }
.sc-cs-form { display: flex; flex-direction: column; gap: 8px; }
.sc-cs-form__fields { display: flex; flex-direction: column; gap: 12px; }
.sc-cs-field { display: flex; flex-direction: column; gap: 4px; }
.sc-cs-field label { font-size: 14px; font-weight: var(--sc-fw-medium); color: var(--sc-fg); }
.sc-cs-field input, .sc-cs-field textarea {
	width: 100%; min-height: 36px; padding: 8px 12px;
	background: var(--sc-bg-hover-strong); border: .5px solid var(--sc-border); border-radius: 8px;
	color: var(--sc-fg); font-family: var(--sc-font); font-size: 13px; line-height: 1.5;
}
.sc-cs-field textarea { resize: vertical; }
.sc-cs-field input::placeholder, .sc-cs-field textarea::placeholder { color: var(--sc-fg-secondary); }
.sc-cs-form__consent { font-size: 12px; font-weight: var(--sc-fw-medium); line-height: 1.5; color: var(--sc-fg-secondary); }
.sc-cs-recaptcha {
	display: flex; align-items: center; gap: 12px; width: 302px; max-width: 100%; height: 76px; padding: 0 12px;
	background: var(--sc-white); border: 1px solid #d3d3d3; border-radius: 3px; box-shadow: 0 0 4px 1px rgba(0,0,0,.08);
}
.sc-cs-recaptcha__box { width: 28px; height: 28px; border: 2px solid #444746; border-radius: 2px; background: #fff; flex: 0 0 auto; }
.sc-cs-recaptcha__label { flex: 1 1 auto; font-size: 14px; font-weight: var(--sc-fw-medium); color: #0b0d27; }
.sc-cs-recaptcha__brand { display: flex; flex-direction: column; align-items: center; gap: 4px; color: #555; }
.sc-cs-recaptcha__brand i { font-size: 22px; color: #4285f4; }
.sc-cs-recaptcha__brand small { font-size: 10px; }
.sc-cs-contact__submit {
	width: 100%; min-height: 36px; padding: 7px 12px; border: none; border-radius: var(--sc-radius-pill); cursor: pointer;
	background: var(--sc-primary); color: var(--sc-white); font-family: var(--sc-font); font-size: 14px; font-weight: var(--sc-fw-bold); line-height: 1.2;
}
.sc-cs-contact__submit:hover { background-image: linear-gradient(rgba(255,255,255,.10), rgba(255,255,255,.10)); }

/* ============================== FAQ ============================== */
/* #81: 上 48px / 下 32px(PC)。下余白だけ分離して指定。 */
.sc-cs-faq { padding: 48px var(--sc-cs-margin) 32px; }
.sc-cs-faq__inner { max-width: 1280px; margin-inline: auto; }
.sc-cs-faq__title { font-size: 32px; font-weight: var(--sc-fw-bold); line-height: 1.2; text-align: center; color: var(--sc-fg); margin-bottom: 0; padding-bottom: 32px; } /* #81: タイトル下余白 PC 32px(SP 24px は下の @media) */

/* ============================== Modal (Skill / Share) ============================== */
html.sc-cs-modal-open { overflow: hidden; }
.sc-cs-modal[hidden] { display: none; }
.sc-cs-modal { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 24px; }
.sc-cs-modal__overlay { position: absolute; inset: 0; background: rgba(0,0,0,.6); }
.sc-cs-modal__dialog {
	position: relative; z-index: 1; width: 100%;
	background: var(--sc-bg); border: 1px solid var(--sc-cs-card-border); border-radius: var(--sc-radius-card);
}
.sc-cs-modal__dialog:focus { outline: none; }
.sc-cs-modal__title { font-size: 24px; font-weight: var(--sc-fw-bold); line-height: 1.2; color: var(--sc-fg); }

/* Skill モーダル (Figma 2400:101202 / nav 2400:102168) */
.sc-cs-modal__dialog--skill { max-width: 560px; padding: 32px; display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; }
.sc-cs-modal__pic { width: 128px; height: 128px; border-radius: 50%; background: var(--sc-bg-hover-strong); flex: 0 0 auto; }
/* #222: SP モーダルのアイコン。カード側(.sc-cs-skillcard__pic--icon / __img)と同じ見せ方に揃える。 */
.sc-cs-modal__pic--icon { display: flex; align-items: center; justify-content: center; }
.sc-cs-modal__img { width: 56%; height: 56%; object-fit: contain; display: block; }
.sc-cs-modal__body { font-size: 16px; font-weight: var(--sc-fw-medium); line-height: 1.5; color: var(--sc-fg-secondary); }
.sc-cs-modal__nav { display: flex; gap: 12px; }
.sc-cs-modal__close { width: auto; min-width: 160px; padding-inline: 32px; }

/* Share モーダル (Tutor 風) */
.sc-cs-modal__dialog--share { max-width: 480px; padding: 24px; display: flex; flex-direction: column; gap: 20px; }
.sc-cs-modal__x { position: absolute; top: 16px; right: 16px; width: 32px; height: 32px; border: none; background: transparent; color: var(--sc-fg-secondary); cursor: pointer; font-size: 18px; }
.sc-cs-modal__x:hover { color: var(--sc-fg); }
.sc-cs-share__block { display: flex; flex-direction: column; gap: 8px; }
.sc-cs-share__label { font-size: 14px; font-weight: var(--sc-fw-bold); color: var(--sc-fg); }
.sc-cs-share__copy { display: flex; gap: 8px; }
/* #84: 単独クラス (0,1,0) は Blocksy 親テーマの input 既定 `input[type="text"]{color/background}` (0,1,1) に負け、
 *   文字が黒・背景が透過になっていた(同ページの .sc-cs-field input (0,1,1) は効いていることで切り分け)。
 *   親の (0,1,1) に勝つよう子孫スコープ .sc-cs-share__copy を付けて (0,2,0) に上げる(!important は使わない)。 */
.sc-cs-share__copy .sc-cs-share__input {
	flex: 1 1 auto; min-width: 0; min-height: 40px; padding: 8px 12px;
	background: var(--sc-bg-hover-strong); border: 1px solid var(--sc-border-dim); border-radius: 8px;
	color: var(--sc-fg); font-family: var(--sc-font); font-size: 13px;
}
.sc-cs-share__copybtn {
	display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; min-height: 40px; padding: 8px 16px;
	border: none; border-radius: 8px; background: var(--sc-primary); color: var(--sc-white); cursor: pointer;
	font-family: var(--sc-font); font-size: 14px; font-weight: var(--sc-fw-bold);
}
.sc-cs-share__copybtn:hover { background-image: linear-gradient(rgba(255,255,255,.10), rgba(255,255,255,.10)); }
.sc-cs-share__copybtn.is-copied { background: var(--sc-brand-studio); color: #0b0d27; }
.sc-cs-share__social { display: flex; gap: 12px; }
.sc-cs-share__soc {
	display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px;
	border-radius: 50%; color: var(--sc-white); text-decoration: none; font-size: 18px;
}
.sc-cs-share__soc--fb { background: #1877f2; }
.sc-cs-share__soc--x  { background: #000; border: 1px solid var(--sc-border-dim); }
.sc-cs-share__soc--li { background: #0a66c2; }
.sc-cs-share__soc:hover { opacity: .85; color: var(--sc-white); }

/* ============================== SP 追従CTA ============================== */
/* fp = 単一ピル(.sc-cs-fixedcta) / course・online = 下部バー(.sc-cs-fixedbar, #83)。PC では両方非表示。 */
.sc-cs-fixedcta, .sc-cs-fixedbar { display: none; }

/* ============================================================
 * SP (Figma 393幅) — max-width:1024px
 * ============================================================ */
@media (max-width: 1024px) {
	.sc-cs { --sc-cs-margin: 16px; overflow-x: clip; }

	.sc-cs-hero { padding: 40px 16px 16px; gap: 16px; }
	.sc-cs-hero__title { font-size: 28px; }
	.sc-cs-hero__by { flex-direction: column; align-items: stretch; gap: 12px; }
	.sc-cs-hero__hours { text-align: left; }

	.sc-cs-tabs { padding: 8px 16px 0; order: 3; }

	/* 1カラム化 + 並び替え。購入ボックス(aside)を tabs より前・全幅に。 (#43/#44 item8)
	 * 新PC化で hero/tabs/パネルは .sc-cs-main 内に入ったため、main も display:contents で
	 * 子要素を .sc-cs 直下の flex アイテムに畳み、従来の order 並びを維持する。 */
	.sc-cs { display: flex; flex-direction: column; }
	.sc-cs-layout, .sc-cs-main { display: contents; }
	.sc-cs-hero    { order: 1; }
	.sc-cs-aside   { order: 2; position: static; padding: 16px; width: 100%; }
	.sc-cs-panel   { order: 4; }
	/* #2: Speak to our Team は #1 で実 CF7(sc_home_contact_form_html)へ委譲した結果、実描画が
	 *     <section class="sc-contact sc-contact--cf7"> となり旧 .sc-cs-contact クラスを持たない。
	 *     SP(.sc-cs=flex column)では order 未指定=0 となり hero(order:1)より前=ファーストビューへ
	 *     せり上がっていた。実描画クラス .sc-contact にも order:5 を当て、購入/パネルの後(下部)へ戻す。 */
	.sc-cs-contact, .sc-cs .sc-contact { order: 5; }
	.sc-cs-faq     { order: 6; }
	/* チップ帯: SP は hero 内のみ (PC はサイドバー側のみ) */
	.sc-cs-aside .sc-cs-typestrip { display: none; }
	.sc-cs-buy__actions .sc-cs-btn { min-height: 48px; }

	.sc-cs-sec { padding: 24px 16px; }
	/* #80: PC 用 `.sc-cs-main .sc-cs-sec { padding-right: 0 }` (0,2,0) が SP でも .sc-cs-sec (0,1,0) に
	 *      勝ち続け、右余白が 0 のままになる。同特異性 (0,2,0) かつ後方(このメディアクエリ内)で右 16px を取り戻す。 */
	.sc-cs-main .sc-cs-sec { padding-right: 16px; }
	.sc-cs .sc-cs-sec__title { font-size: 24px; margin-bottom: 12px; }
	.sc-cs-about__body.is-clamped { max-height: 240px; }

	/* Skills: online の check は1列 / Course・FP のカードは2列 (Figma SP 準拠) */
	.sc-cs-skills__list { grid-template-columns: 1fr; }
	.sc-cs-skills__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sc-cs-skills__hint { display: none; } /* #138: SP はホバーが無いため案内も出さない */
	.sc-cs-skillcard__pic { width: 96px; height: 96px; }

	/* Course List: カードは1列 */
	.sc-cs-clgrid { grid-template-columns: 1fr; }

	/* Our Facility: 縦積み */
	.sc-cs-facility__inner { flex-direction: column; }
	.sc-cs-facility__title { font-size: 28px; }
	.sc-cs-facility__text p { font-size: 14px; }
	.sc-cs-facility__shot { width: 100%; height: auto; aspect-ratio: 525 / 297; }

	/* カルーセルカードは SP 幅 */
	.sc-cs-carousel__track > .sc-cs-card,
	.sc-cs-carousel__track > .sc-cs-instr,
	.sc-cs-carousel__track > .sc-cs-quote { flex-basis: 82vw; }
	/* #110 SP centered/peek: トラックをセクション左右padding(16px)の外=画面幅まで拡張し、
	 * card=82vw なので両端に余白 (100vw-82vw)/2 = 9vw を確保。中央カードが均等余白でスナップ +
	 * 両隣が画面端へ peek。gap は 13px。実測(course single)で card0 余白35/peek22 @393。 */
	.sc-cs-carousel__track {
		width: calc(100% + 32px); margin-inline: -16px;
		padding-inline: 9vw; scroll-padding-inline: 9vw;
		gap: 13px;
	}
	.sc-cs-carousel__nav { position: absolute; inset: 0 0 8px; margin: 0; align-items: center; justify-content: space-between; pointer-events: none; }
	.sc-cs-navbtn { pointer-events: auto; }

	.sc-cs-contact { padding: 32px 16px; }
	.sc-cs-contact__title, .sc-cs-faq__title { font-size: 28px; }
	.sc-cs-faq__title { padding-bottom: 24px; } /* #81: タイトル下余白 SP 24px */
	.sc-cs-field input, .sc-cs-field textarea { min-height: 48px; }
	.sc-cs-contact__submit { min-height: 48px; font-size: 18px; }
	.sc-cs-faq { padding: 32px 16px 24px; } /* #81: 上 32px / 下 24px(SP) */

	/* 追従CTA (下部固定・全幅ピル) */
	.sc-cs-fixedcta {
		position: fixed; z-index: 100; left: 16px; right: 16px;
		bottom: calc(12px + env(safe-area-inset-bottom, 0px));
		display: flex; align-items: center; justify-content: center;
		min-height: 48px; padding: 10px 24px;
		background: var(--sc-primary); color: var(--sc-white);
		border: 0; border-radius: var(--sc-radius-pill); text-decoration: none; white-space: nowrap;
		font-family: var(--sc-font); font-size: 16px; font-weight: var(--sc-fw-bold); line-height: 1.2;
		box-shadow: 0 6px 20px rgba(0,0,0,.35); cursor: pointer; -webkit-appearance: none; appearance: none;
		transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
	}
	.sc-cs-fixedcta:hover { color: var(--sc-white); background-image: linear-gradient(rgba(255,255,255,.10), rgba(255,255,255,.10)); }
	.sc-cs-fixedcta--hide { opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(12px); }

	/* #83: 追従CTAバー (course/online) — 下端に全幅で貼り付き、内側 8/12 パディング。
	 *   course = Add to Cart(コーラル) + Get in Touch(アウトライン) の2ボタン (Figma 1106:8910)。
	 *   online = Add to Cart 単一 (Figma 1365:27214)。両ボタンは flex:1 で等幅。 */
	.sc-cs-fixedbar {
		position: fixed; z-index: 100; left: 0; right: 0;
		bottom: 0; padding: 12px 8px calc(12px + env(safe-area-inset-bottom, 0px));
		display: flex; align-items: stretch; gap: 8px;
		background: var(--sc-bg);
		transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
	}
	.sc-cs-fixedbar__btn {
		flex: 1 0 0; min-width: 0;
		display: inline-flex; align-items: center; justify-content: center; gap: 8px;
		min-height: 44px; padding: 7px 12px;
		border-radius: var(--sc-radius-pill); text-decoration: none; white-space: nowrap;
		font-family: var(--sc-font); font-size: 18px; font-weight: var(--sc-fw-bold); line-height: 1.4;
		cursor: pointer; -webkit-appearance: none; appearance: none;
	}
	.sc-cs-fixedbar__btn i { font-size: 20px; }
	.sc-cs-fixedbar__btn--primary { background: var(--sc-primary); color: var(--sc-white); border: 1px solid var(--sc-primary); }
	.sc-cs-fixedbar__btn--primary:hover { color: var(--sc-white); background-image: linear-gradient(rgba(255,255,255,.10), rgba(255,255,255,.10)); }
	.sc-cs-fixedbar__btn--outline { background: transparent; border: 1px solid var(--sc-border-invert); color: var(--sc-fg); }
	.sc-cs-fixedbar__btn--outline:hover { color: var(--sc-primary); background: var(--sc-bg-hover-strong); }
	/* #235: セッション必須コースで選択できる日程が無いときの追従CTA(購入ボックスの CTA と同じ扱い)。 */
	.sc-cs-fixedbar__btn:disabled,
	.sc-cs-fixedbar__btn[aria-disabled="true"] { opacity: .45; cursor: not-allowed; pointer-events: none; }
	.sc-cs-fixedbar__btn:disabled:hover,
	.sc-cs-fixedbar__btn[aria-disabled="true"]:hover { background-image: none; }
	.sc-cs-fixedbar--hide { opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(100%); }
}

/* #110: iPad幅(768–1024px)では centered/peek(≤1024の 82vw カード+9vw ブリード)が
 * 過大余白を生むため、通常スクロールカルーセルに戻す(他9カルーセルCSSと同一手法)。
 * ≤767px の中央+peek と PC(≥1025)は不変。 */
@media (min-width: 768px) and (max-width: 1024px) {
	.sc-cs-carousel__track {
		width: auto; margin-inline: 0;
		padding-inline: 0; scroll-padding-inline: 0; gap: 16px;
	}
	.sc-cs-carousel__track > .sc-cs-card,
	.sc-cs-carousel__track > .sc-cs-instr,
	.sc-cs-carousel__track > .sc-cs-quote { flex-basis: 308px; }
}

@media (max-width: 560px) {
	.sc-cs-inc { gap: 12px; }
	.sc-cs-inc__icon { width: 56px; height: 56px; font-size: 24px; }
	.sc-cs-inc__text b { font-size: 16px; }
	.sc-cs-inc__text span { font-size: 14px; }
}
