/* =============================================================================
 * Sound Collective — LP(ランディングページ)量産 CSS(GitHub #94)
 *
 * スコープは sc-lp-*。デザイントークン(assets/css/sc-design-tokens.css の :root --sc-*)
 * を使用。SP ブレークは 1024px(方式B定石)。
 *
 * 対象:
 *  - LP マスターページのネイティブ Elementor セクション(css_classes: sc-lp / sc-lp-hero /
 *    sc-lp-pitch / sc-lp-wizard)
 *  - 結果セクション3型ショートコード(sc-lp-result--carousel / --accordion / --pricing)
 *  - Speak to our Team フォーム(sc-lp-contact / sc-lp-form)
 * ========================================================================== */

/* ---- レイアウト共通 ------------------------------------------------------ */
.sc-lp { --sc-lp-max: 1200px; }
.sc-lp-section { width: 100%; }
.sc-lp-wrap { max-width: var(--sc-lp-max); margin-inline: auto; padding-inline: 24px; }

/* ---- ボタン: 本体 .sc-btn トークンに揃える(#168 1-4) ---------------------
 * LP 専用だった sc-lp-btn 系を、本体 sc-design-tokens.css の .sc-btn / .sc-btn--outline
 * と同一の見た目(Figma 547-5694 / #98: padding 7px 20px・L=44px/18px・pill・primary/outline
 * 配色)へ揃える。生 <a.sc-lp-btn>(結果/料金/カリキュラム/relock CTA)と Elementor 内側
 * <a.elementor-button>(hero/final CTA)の両方に効かせ、全 LP テンプレへ CSS で一括反映
 * (_elementor_data の再生成=migration 不要)。回答ボタン(.sc-lp-answerbtn)は選択カード
 * 表示のため対象外にする(下の 3. 診断ウィザードでニュートラライズ済み)。 */
.elementor-widget.sc-lp-btn { background: transparent; box-shadow: none; }
.sc-lp-btn:not(.elementor-widget),
.elementor-widget.sc-lp-btn:not(.sc-lp-answerbtn) .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	font-family: var(--sc-font); font-weight: var(--sc-fw-bold, 700);
	font-size: 18px; line-height: var(--sc-lh, 1.4); min-height: 44px;
	padding: 7px 20px; border: 1px solid transparent; border-radius: var(--sc-radius-pill, 32px);
	text-decoration: none; cursor: pointer; box-shadow: none;
	transition: background-color .15s ease, color .15s ease, box-shadow .15s ease;
}
/* Primary (= .sc-btn--primary) */
.sc-lp-btn--primary:not(.elementor-widget),
.elementor-widget.sc-lp-btn--primary:not(.sc-lp-answerbtn) .elementor-button {
	background: var(--sc-primary, #f04b50); color: #f7f7f7; border-color: transparent;
}
.sc-lp-btn--primary:not(.elementor-widget):hover,
.elementor-widget.sc-lp-btn--primary:not(.sc-lp-answerbtn) .elementor-button:hover {
	background-image: linear-gradient(rgba(255,255,255,.10), rgba(255,255,255,.10)); color: #f7f7f7;
}
/* Ghost (= .sc-btn--outline: 白6%塗り + 白枠) */
.sc-lp-btn--ghost:not(.elementor-widget):not(.sc-lp-answerbtn),
.elementor-widget.sc-lp-btn--ghost:not(.sc-lp-answerbtn) .elementor-button {
	background: rgba(255,255,255,.06); color: #eff2f5; border-color: var(--sc-btn-outline, #ffffff);
}
.sc-lp-btn--ghost:not(.elementor-widget):not(.sc-lp-answerbtn):hover,
.elementor-widget.sc-lp-btn--ghost:not(.sc-lp-answerbtn) .elementor-button:hover {
	background: rgba(255,255,255,.10); color: var(--sc-primary, #f04b50);
}

/* ---- 赤アンダーライン付き見出し(セクション共通) ------------------------ */
.sc-lp-underline { position: relative; display: inline-block; padding-bottom: 12px; }
/* #168(2026-07-22 追いFB): 赤アンダーラインバーは Figma 全所で 76x5・全丸(radius 66px)。
 * (Learn In NYC 3603-31748 / Starting Point 3866-96336 / Pricing 3866-97016 いずれも 76x5) */
.sc-lp-underline::after {
	content: ""; position: absolute; left: 50%; transform: translateX(-50%); bottom: 0;
	width: 76px; height: 5px; background: var(--sc-primary, #f04b50); border-radius: 999px;
}

/* =============================================================================
 * 1. Hero(ポスター画像を全部見せる + その下に eyebrow/H1/補足/アイコン行/CTA)
 *   #168(2026-07-23): 旧「全幅画像を背景に敷きテキストを重ねる」方式は縦ポスターだと
 *   情報が画像に被った。新方式=画像は要素の上に何も重ねずフルで見せ(縦画像は
 *   max-height:80vh・背景は sc-space-single__hero と同じ blur letterbox)、テキストは
 *   画像の下(sc-lp-hero__body)に置く。マークアップは bin/migrate-lp-168-hero.php が
 *   全 LP ページの sc-lp-hero コンテナを [media + body] 構造へ再構成する(実描画元=DB)。
 * ========================================================================== */
.sc-lp-hero {
	position: relative; display: flex; flex-direction: column; align-items: center;
	background-color: #121212; color: var(--sc-fg, #f0f2f4); text-align: center; overflow: hidden;
}
/* 画像の上に要素を置かない(#168): media(html ウィジェット .sc-lp-hero__mediawrap)を先頭・全幅、
 * テキストは body(コンテナ .sc-lp-hero__body)で下に流す。両者を align-self:stretch で全幅化
 * (親 hero は align-items:center の縦 flex)。widget-container 層(env パリティ)も全幅パススルー。 */
.sc-lp-hero__mediawrap, .sc-lp-hero__body { align-self: stretch; width: 100%; }
.sc-lp-hero__mediawrap .elementor-widget-container { width: 100%; }
.sc-lp-hero__media {
	position: relative; width: 100%;
	display: flex; align-items: center; justify-content: center;
	overflow: hidden; background: #000;
}
/* 縦画像の余白は sc-space-single__hero と同方式で blur した拡大コピーで埋める。 */
.sc-lp-hero__media-bg {
	position: absolute; inset: -40px 0; z-index: 0;
	background: center / cover no-repeat;
	filter: blur(24px); opacity: .5; pointer-events: none;
}
.sc-lp-hero__media-img {
	position: relative; z-index: 1; display: block;
	max-width: 100%; max-height: 80vh; width: auto; height: auto; object-fit: contain;
}
.sc-lp-hero__body {
	display: flex; flex-direction: column; align-items: center; gap: 16px;
	padding: 40px 24px;
}
/* 旧 fallback(migration 未適用ページ): 背景が残っている場合はグラデ帯を敷いて可読性維持。 */
.sc-lp-hero:not(:has(.sc-lp-hero__media)) { min-height: 320px; background-size: cover; background-position: center; }
.sc-lp-hero:not(:has(.sc-lp-hero__media))::before {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(18,18,18,.35) 0%, rgba(18,18,18,.85) 100%);
	pointer-events: none;
}
.sc-lp-hero > .e-con-inner,
.sc-lp-hero > * { position: relative; z-index: 1; }
.sc-lp-hero__eyebrow {
	display: inline-block; color: var(--sc-primary, #f04b50);
	font-weight: 700; font-size: 12px; letter-spacing: .12em; text-transform: uppercase;
}
.sc-lp-hero__title { font-size: 40px; font-weight: 700; line-height: 1.2; margin: 8px 0; color: var(--sc-fg, #f0f2f4); }
.sc-lp-hero__sub { color: var(--sc-fg-secondary, #adb3bb); font-size: 16px; line-height: 1.5; max-width: 720px; margin: 0 auto; }
/* Icon row = 本体 disciplines の CardProductType(.sc-disc-ptype)デザインに揃える(#168 2026-07-23)。
 * 旧: gray pill 横並び(#168 1-3)。新: 1 枚のグレー枠(rgba(39,39,39,.2)・radius 8)に、各項目を
 * アイコン(24px)を上・ラベル(Bold 14px)を下の縦積みで並べ、項目間を縦線(border-dim)で区切る
 * = sc-disciplines.css の .sc-disc-ptype / __item / __sep と同じ見た目。マークアップ
 * (.sc-lp-hero__icons > span.sc-lp-hero__icon>i+text)は不変なので全 LP テンプレへ CSS で一括反映。 */
.sc-lp-hero__icons {
	display: inline-flex; align-items: stretch; justify-content: center;
	margin: 8px auto 0; padding: 16px 0; gap: 0;
	background: rgba(39,39,39,.2); border: 0; border-radius: 8px; overflow: hidden;
}
.sc-lp-hero__icon {
	display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
	min-width: 117px; padding: 0 16px; text-align: center;
	background: none; color: var(--sc-fg, #f0f2f4);
	font-size: 14px; font-weight: var(--sc-fw-bold, 700); line-height: 1.1;
}
.sc-lp-hero__icon + .sc-lp-hero__icon { border-left: 1px solid var(--sc-border-dim, #353c45); }
.sc-lp-hero__icon i { font-size: 24px; color: var(--sc-fg, #f0f2f4); }

/* ---- #209 native 化 bridge: アイコン行を Elementor Icon List ウィジェットで出す ----
 * 旧: HTML ウィジェット > div.sc-lp-hero__icons > span.sc-lp-hero__icon > i + text
 * 新: div.sc-lp-hero__icons(= ウィジェットラッパー) > .elementor-widget-container
 *       > ul.elementor-icon-list-items.elementor-inline-items
 *         > li.elementor-icon-list-item > span.elementor-icon-list-icon>i + span.elementor-icon-list-text
 * つまり **カード(グレー枠)は従来どおり .sc-lp-hero__icons に当たる**が、その内側に
 * container と ul の 2 層が挟まる。そこを flex パススルーにし、li を旧 .sc-lp-hero__icon と
 * 同じ見た目にする(#184/#186 の bridge と同じ考え方)。
 * 旧マークアップの規則(:120-132)は STG が旧構造のままでも壊れないよう残置している。 */
.sc-lp-hero__icons.elementor-widget-icon-list > .elementor-widget-container,
.sc-lp-hero__icons .elementor-icon-list-items {
	display: flex; align-items: stretch; justify-content: center;
	margin: 0; padding: 0; gap: 0; list-style: none;
}
.sc-lp-hero__icons .elementor-icon-list-item {
	display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
	min-width: 117px; padding: 0 16px; margin: 0; text-align: center;
	background: none; color: var(--sc-fg, #f0f2f4);
	font-size: 14px; font-weight: var(--sc-fw-bold, 700); line-height: 1.1;
}
.sc-lp-hero__icons .elementor-icon-list-item + .elementor-icon-list-item {
	border-left: 1px solid var(--sc-border-dim, #353c45);
}
.sc-lp-hero__icons .elementor-icon-list-icon { display: block; }
.sc-lp-hero__icons .elementor-icon-list-icon i { font-size: 24px; color: var(--sc-fg, #f0f2f4); }
.sc-lp-hero__icons .elementor-icon-list-text { padding: 0; color: inherit; }
/* Elementor は inline レイアウトで項目間に区切り疑似要素と margin を入れる。縦線は上の
 * border-left で出しているので両方消す(二重線・余分な隙間の防止)。 */
.sc-lp-hero__icons .elementor-inline-items .elementor-icon-list-item:not(:last-child):after {
	content: none; border: 0; margin: 0;
}

/* =============================================================================
 * 2. SoundCollective 訴求ブロック(ダークカード + ロゴロックアップ + 交互行)
 * ========================================================================== */
.sc-lp-pitch {
	background: var(--sc-bg-bright, #272727);
	border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: var(--sc-radius-card, 12px);
}
.sc-lp-pitch__brand { text-align: center; color: var(--sc-fg, #f0f2f4); }
/* #168(2026-07-22 追いFB): ブランド行の "Sound Collective" テキストを白ロゴ画像へ置換
 * (Figma 3603-31739 / 3866-96293)。実描画元は build-lp-master.php の sc_lpm_pitch が出力する
 * Elementor Heading ウィジェット(テキスト "Sound Collective")。テキストのままだとダミー体に
 * 見えるため、_elementor_data 再生成(migration)を避けつつ CSS の画像置換で対応する:
 * 見出し文字を font-size:0 で潰し、テーマ同梱の白ワードマーク(sc-footer-wordmark.png=
 * sc_asset_map 629546)を background で表示。URL はテーマ相対(../images/…)で env 非依存。
 * 全6マスターへ CSS 一括反映(build/migration 不要)。inline の title_color は size に影響しない。 */
.sc-lp-pitch__brand .elementor-widget-heading .elementor-heading-title {
	display: block; margin: 0 auto; width: 240px; max-width: 72vw; aspect-ratio: 300 / 90;
	font-size: 0; line-height: 0;
	background: url("../images/sc-footer-wordmark.png") center / contain no-repeat;
}
/* #168: "Learn In NYC" 見出しを Figma(Montserrat Bold 20px / #f0f2f4 / lh1.4)に合わせる。
 * 旧: 14px・secondary 色(ダミー体に見えていた)。フォントは既定 var(--sc-font)=Montserrat。 */
.sc-lp-pitch__brand .sc-lp-underline {
	font-size: 20px; font-weight: var(--sc-fw-bold, 700); line-height: 1.4;
	color: var(--sc-fg, #f0f2f4); padding-bottom: 16px;
}
.sc-lp-pitch__row-title { color: var(--sc-primary, #f04b50); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.sc-lp-pitch__row-body { color: var(--sc-fg, #f0f2f4); font-size: 15px; line-height: 1.65; }
/* Alternating image/text rows (Figma "SoundCollective" block). Media is a styled
 * placeholder the client replaces with a real photo (matches the Figma mock).
 * Elementor default-sizes flex children, so the 50/50 split needs high specificity. */
.sc-lp-pitch.sc-lp-section { max-width: 1040px; margin-inline: auto; }
.sc-lp-pitch .sc-lp-pitch__row { display: flex; flex-direction: row; align-items: stretch; gap: 40px; }
.sc-lp-pitch .sc-lp-pitch__row--reverse { flex-direction: row-reverse; }
.sc-lp-pitch .sc-lp-pitch__row > .sc-lp-pitch__text,
.sc-lp-pitch .sc-lp-pitch__row > .sc-lp-pitch__mediawrap {
	flex: 1 1 50%; width: 50%; min-width: 0; align-self: stretch;
}
.sc-lp-pitch .sc-lp-pitch__text { display: flex; flex-direction: column; justify-content: center; gap: 8px; }
.sc-lp-pitch__mediawrap { display: flex; }
/* #168 1-1: media は Elementor HTML ウィジェット。e_optimized_markup OFF(dev/local パリティ)
 * では .elementor-widget-container が mediawrap(flex)と .sc-lp-pitch__media の間に挟まり、
 * 幅が 0(実測 2px)に潰れてプレースホルダが見えず右側が空白になっていた。中間ラッパを
 * flex パススルーにして placeholder が 50% カラムを満たすようにする(guardrails §1 参照)。 */
.sc-lp-pitch__mediawrap > .elementor-widget-container {
	display: flex; flex: 1 1 auto; width: 100%; min-width: 0;
}
.sc-lp-pitch__media {
	flex: 1 1 auto; width: 100%; min-height: 260px; border-radius: var(--sc-radius-card, 12px);
	background: linear-gradient(135deg, #3a3a3a 0%, #242424 100%);
	border: 1px solid var(--sc-border, #5d6164);
	box-shadow: inset 0 0 0 1px rgba(255,255,255,.02);
	/* ダミー画像プレースホルダと分かるよう中央に画像グリフを表示(配置確認用) */
	position: relative; display: flex; align-items: center; justify-content: center;
}
.sc-lp-pitch__media::after {
	content: "\f03e"; font-family: "Font Awesome 6 Free"; font-weight: 900;
	font-size: 34px; color: rgba(255,255,255,.16);
}
/* ---- #207-1 native 化 bridge: pitch 画像を Elementor Image ウィジェットで出す ----
 * 旧: HTML ウィジェット(.sc-lp-pitch__mediawrap) > div.sc-lp-pitch__media(空 = 差し替え不可)
 * 新: コンテナ(.sc-lp-pitch__mediawrap) > Image ウィジェット(.sc-lp-pitch__media) > img
 * 階層は旧構造と同じ 2 段に保っているので `.sc-lp-pitch__row > .sc-lp-pitch__mediawrap` の
 * 50/50 ルールはそのまま効く。ここでは内側のウィジェットラッパーを通して img を
 * カラム全面に敷く。 */
.sc-lp-pitch__media.elementor-widget-image > .elementor-widget-container,
.sc-lp-pitch__media.elementor-widget-image .elementor-image,
.sc-lp-pitch__media.elementor-widget-image figure {
	display: flex; flex: 1 1 auto; width: 100%; min-width: 0; height: 100%; margin: 0;
}
.sc-lp-pitch__media.elementor-widget-image img {
	width: 100%; height: 100%; min-height: 260px; object-fit: cover;
	border-radius: var(--sc-radius-card, 12px); display: block;
}
/* 画像が入るのでダミー用の中央グリフは出さない(画像に重なる)。 */
.sc-lp-pitch__media.elementor-widget-image::after { content: none; }

/* =============================================================================
 * 3. 診断ウィザード(静的プレースホルダ — 見た目のみ。ロジックは #94 後続)
 * ========================================================================== */
.sc-lp-wizard { text-align: center; color: var(--sc-fg, #f0f2f4); }
.sc-lp-wizard__title { font-size: 32px; line-height: 1.2; font-weight: 700; color: var(--sc-fg, #f0f2f4); }
/* 進捗バー(2分割) */
.sc-lp-wizard__progress { display: flex; gap: 8px; max-width: 420px; margin: 0 auto; }
.sc-lp-wizard__progress span { flex: 1; height: 4px; border-radius: 2px; background: var(--sc-bg-hover-strong, rgba(255,255,255,.10)); }
.sc-lp-wizard__progress span.is-active { background: var(--sc-primary, #f04b50); }
/* 質問カード */
.sc-lp-wizard__card {
	max-width: 620px; margin: 0 auto; text-align: left;
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: var(--sc-radius-card, 12px); padding: 28px;
}
.sc-lp-wizard__q { font-size: 26px; line-height: 1.2; font-weight: 700; color: var(--sc-fg, #f0f2f4); }
/* #168 1-2: 質問見出しは Elementor Heading。Elementor の inline global
 * `.elementor-widget-heading .elementor-heading-title { color: var(--e-global-color-primary) }`
 * (=赤・詳細度 0,2,0)に負けて黒/赤で読めなかった。0,3,0 の指定で白に上書き(!important 不要)。 */
.sc-lp-wizard__q.elementor-widget-heading .elementor-heading-title { color: var(--sc-fg, #f0f2f4); }
.sc-lp-wizard__hint { color: var(--sc-fg-secondary, #adb3bb); font-size: 14px; line-height: 1.5; margin-top: 6px; }
/* #183 course-a Q3 gut-check の「Still torn? Talk to our team」導線(質問カード内・回答ボタン下)。 */
.sc-lp-wizard__still { margin-top: 12px; color: var(--sc-fg-secondary, #adb3bb); font-size: 14px; line-height: 1.5; }
.sc-lp-wizard__still a { color: var(--sc-primary, #f04b50); text-decoration: underline; }
.sc-lp-wizard__answers { display: flex; flex-direction: column; gap: 12px; margin-top: 20px; }
.sc-lp-wizard__answer {
	display: flex; flex-direction: column; gap: 2px; text-align: left; width: 100%;
	background: transparent; color: var(--sc-fg, #f0f2f4);
	border: 1px solid var(--sc-border, #7d7e80); border-radius: 10px; padding: 14px 18px; cursor: default;
}
.sc-lp-wizard__answer:hover { border-color: var(--sc-primary, #f04b50); }
.sc-lp-wizard__answer .lbl { font-weight: 600; font-size: 15px; }
.sc-lp-wizard__answer .sub { color: var(--sc-fg-secondary, #adb3bb); font-size: 12px; }

/* ---- Wizard routing (convention-driven; see assets/js/sc-lp-wizard.js) ----
 * Panels are hidden ONLY when sc-lp-wizard.js has marked the root with
 * `sc-lp-has-js`. Without JS every `.sc-lp-panel` stays visible (graceful
 * fallback) and the `#answer-*` links behave as plain in-page anchors. */
.sc-lp-panel { scroll-margin-top: 90px; }
.sc-lp-has-js .sc-lp-panel.sc-lp-hidden { display: none; }
/* Picked answer feedback (works on native Elementor buttons and .sc-lp-wizard__answer) */
.sc-lp-picked,
.sc-lp-wizard__answer.sc-lp-picked { border-color: var(--sc-primary, #f04b50) !important; }
.sc-lp-wizard__answer.sc-lp-picked { background: var(--sc-bg-hover-strong, rgba(240,75,80,.10)); }
/* Back / Reset controls */
.sc-lp-wizard__nav { display: flex; gap: 16px; justify-content: center; margin-top: 20px; }
.sc-lp-back, .sc-lp-reset {
	display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
	background: transparent; border: 0; color: var(--sc-fg-secondary, #adb3bb);
	font-family: var(--sc-font); font-size: 13px; text-decoration: none;
}
.sc-lp-back:hover, .sc-lp-reset:hover { color: var(--sc-fg, #f0f2f4); }
/* Answer buttons: full-width rounded-rect choice cards (native Elementor Button).
 * Figma Button_rounded: dark surface, left label, chevron on the right, and a
 * filled-red state on hover / when picked. The `sc-lp-btn(--ghost)` pill classes
 * sit on the widget wrapper, so neutralise them and style the inner anchor. */
.sc-lp-wizard__answers .elementor-widget-button,
.sc-lp-answerbtn { width: 100%; }
.sc-lp-answerbtn.sc-lp-btn { padding: 0; border: 0; border-radius: 0; background: transparent; }
.sc-lp-answerbtn .elementor-button {
	position: relative; display: flex; width: 100%;
	justify-content: flex-start; text-align: left; align-items: center;
	padding: 20px 54px 20px 22px; border-radius: var(--sc-radius-card, 12px);
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border, #5d6164);
	color: var(--sc-fg, #f0f2f4); font-family: var(--sc-font); font-weight: 700; font-size: 16px; line-height: 1.35;
	transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.sc-lp-answerbtn .elementor-button::after {
	content: ""; position: absolute; right: 24px; top: 50%; margin-top: -6px;
	width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
	transform: rotate(45deg); opacity: .55;
}
.sc-lp-answerbtn .elementor-button:hover,
.sc-lp-answerbtn .elementor-button.sc-lp-picked,
.sc-lp-answerbtn.sc-lp-picked .elementor-button {
	background: var(--sc-primary, #f04b50); border-color: var(--sc-primary, #f04b50); color: #fff;
}
.sc-lp-answerbtn .elementor-button:hover::after,
.sc-lp-answerbtn .elementor-button.sc-lp-picked::after { opacity: .9; }

/* Who it's for — For You / Not For You columns (OneVideo lander) */
/* #215 追いFB(2026-07-27): 添付デザイン(SP/PC)に合わせて刷新。
 * 旧: 列ごとに独立カード + 見出し1行(緑チェック/グレーマイナス)
 * 新: **1 枚のカードに 2 カラム**。列は「小さい色付きラベル + 大きいタイトル」の 2 段見出しで、
 *     項目は丸アイコン(For=プラス赤 / NOT=マイナス紫)+ タイトル(+ 説明)。
 *     PC = 横並び(列間に縦の区切り線)/ SP = 縦積み(間に横の区切り線)。
 * ⚠️ issue 本文は「PC は区切り線なし」だが**添付画像には縦線がある**ため画像に合わせた
 *    (Your Path の列と同じ流儀)。線を外す場合は下の border 指定を消すだけ。 */
.sc-lp-fit {
	display: grid; grid-template-columns: 1fr 1fr; max-width: 900px; margin: 0 auto;
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: var(--sc-radius-card, 12px); overflow: hidden;
}
.sc-lp-fit__col { padding: 24px; display: flex; flex-direction: column; }
.sc-lp-fit__col + .sc-lp-fit__col { border-left: 1px solid var(--sc-border-dim, #353c45); }
.sc-lp-fit__col--yes { --fit-accent: var(--sc-primary, #f04b50); }
.sc-lp-fit__col--no  { --fit-accent: #8b7cff; }
/* 2 段見出し: 小ラベル(色付き)+ 大タイトル */
.sc-lp-fit__label {
	color: var(--fit-accent); font-size: 14px; font-weight: 700; line-height: 1.4; margin-bottom: 4px;
}
.sc-lp-fit__title {
	font-size: 24px; font-weight: 700; line-height: 1.2; color: var(--sc-fg, #f0f2f4); margin: 0 0 16px;
}
/* タイトルが空のときはラベル下の余白を項目リストで持つ */
.sc-lp-fit__label:last-of-type { margin-bottom: 16px; }
.sc-lp-fit__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.sc-lp-fit__item { display: flex; flex-direction: row; align-items: flex-start; gap: 8px; }
/* 丸アイコン(プラス / マイナス) */
.sc-lp-fit__badge {
	flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
	width: 20px; height: 20px; margin-top: 2px; border-radius: 50%;
	background: var(--fit-accent); color: #fff;
}
.sc-lp-fit__badge i { font-size: 11px; color: #fff; }
.sc-lp-fit__itembody { display: flex; flex-direction: column; gap: 4px; }
.sc-lp-fit__itemtitle { font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--sc-fg, #f0f2f4); }
.sc-lp-fit__itemdesc { font-size: 14px; line-height: 1.5; color: var(--sc-fg-secondary, #adb3bb); }
@media (max-width: 1024px) {
	.sc-lp-fit { grid-template-columns: 1fr; }
	.sc-lp-fit__col + .sc-lp-fit__col { border-left: 0; border-top: 1px solid var(--sc-border-dim, #353c45); }
}

/* ---- #215 native 化 bridge: For you if / Not for you if を native 要素で組む ----
 * 新 DOM(#215 追いFB):
 *   container .sc-lp-fit > container .sc-lp-fit__col--yes/--no
 *     > heading .sc-lp-fit__label / heading .sc-lp-fit__title
 *     + container .sc-lp-fit__list > container .sc-lp-fit__item
 *         > Icon ウィジェット .sc-lp-fit__badge + container .sc-lp-fit__itembody
 *             > heading .sc-lp-fit__itemtitle (+ text-editor .sc-lp-fit__itemdesc)
 * `.e-con { display:flex }` と同点になる grid/flex 指定は `.e-con` 付きで明示的に勝たせる。 */
.sc-lp-fit.e-con { display: grid; grid-template-columns: 1fr 1fr; }
@media (max-width: 1024px) { .sc-lp-fit.e-con { grid-template-columns: 1fr; } }
.sc-lp-fit .sc-lp-fit__col.e-con { display: flex; flex-direction: column; }
.sc-lp-fit .sc-lp-fit__list.e-con { display: flex; flex-direction: column; gap: 16px; }
.sc-lp-fit .sc-lp-fit__item.e-con { display: flex; flex-direction: row; align-items: flex-start; gap: 8px; }
.sc-lp-fit .sc-lp-fit__itembody.e-con { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
/* ラベル/タイトル/項目テキストはウィジェットラッパーにクラスが付くので内側へ継承させる。 */
.sc-lp-fit__label .elementor-heading-title,
.sc-lp-fit__title .elementor-heading-title,
.sc-lp-fit__itemtitle .elementor-heading-title { font: inherit; color: inherit; margin: 0; }
.sc-lp-fit__itemdesc, .sc-lp-fit__itemdesc p { font-size: 14px; line-height: 1.5; color: var(--sc-fg-secondary, #adb3bb); margin: 0; }
/* Icon ウィジェットは wrapper > .elementor-icon-wrapper > .elementor-icon > i の 3 層。
 * 20px の丸はラッパー(.sc-lp-fit__badge)に当たるので内側をパススルーにする。 */
.sc-lp-fit__badge.elementor-widget-icon > .elementor-widget-container,
.sc-lp-fit__badge .elementor-icon-wrapper,
.sc-lp-fit__badge .elementor-icon {
	display: flex; align-items: center; justify-content: center;
	width: 100%; height: 100%; margin: 0; padding: 0; line-height: 1; color: inherit;
}

/* Course content — curriculum-forward section (一般オンライン動画コース LP・#143) */
.sc-lp-course { color: var(--sc-fg, #f0f2f4); max-width: 820px; margin-inline: auto; padding: 48px 24px; }
.sc-lp-course__lead { text-align: center; color: var(--sc-fg-secondary, #adb3bb); font-size: 16px; line-height: 1.6; max-width: 680px; margin: 0 auto 28px; }
.sc-lp-course__modules { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; counter-reset: none; }
.sc-lp-course__module {
	display: flex; align-items: flex-start; gap: 18px;
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: var(--sc-radius-card, 12px); padding: 20px 22px;
}
.sc-lp-course__num {
	flex: 0 0 auto; font-size: 18px; font-weight: 700; line-height: 1.2;
	color: var(--sc-primary, #f04b50); font-variant-numeric: tabular-nums; min-width: 32px;
}
.sc-lp-course__body { display: flex; flex-direction: column; gap: 4px; }
.sc-lp-course__mtitle { font-size: 16px; font-weight: 700; color: var(--sc-fg, #f0f2f4); }
.sc-lp-course__mdesc { font-size: 14px; line-height: 1.55; color: var(--sc-fg-secondary, #adb3bb); }
.sc-lp-course__outcome {
	display: flex; align-items: center; gap: 10px; justify-content: center; text-align: center;
	margin: 28px auto 0; max-width: 640px; padding: 16px 20px;
	background: var(--sc-bg-hover-strong, rgba(240,75,80,.08)); border: 1px solid var(--sc-primary, #f04b50);
	border-radius: var(--sc-radius-card, 12px); color: var(--sc-fg, #f0f2f4); font-size: 15px; line-height: 1.5;
}
.sc-lp-course__outcome i { color: var(--sc-primary, #f04b50); font-size: 18px; }

/* Spotify playlist — guest-instructor video-course LP (#143) */
.sc-lp-spotify { color: var(--sc-fg, #f0f2f4); max-width: 820px; margin-inline: auto; padding: 48px 24px; }
.sc-lp-spotify__lead { text-align: center; color: var(--sc-fg-secondary, #adb3bb); font-size: 16px; line-height: 1.6; max-width: 640px; margin: 0 auto 24px; }
.sc-lp-spotify__embed { max-width: 720px; margin: 0 auto; }
.sc-lp-spotify__iframe { display: block; width: 100%; min-height: 152px; border: 0; border-radius: var(--sc-radius-card, 12px); }
.sc-lp-spotify__placeholder {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; text-align: center;
	min-height: 240px; padding: 32px 24px; border-radius: var(--sc-radius-card, 12px);
	background: var(--sc-bg-bright, #272727); border: 1px dashed var(--sc-border, #5d6164);
}
.sc-lp-spotify__placeholder i { font-size: 40px; color: #1db954; }
.sc-lp-spotify__ph-title { font-size: 16px; font-weight: 700; color: var(--sc-fg, #f0f2f4); }
.sc-lp-spotify__ph-hint { font-size: 13px; color: var(--sc-fg-secondary, #adb3bb); max-width: 420px; line-height: 1.5; }
.sc-lp-spotify__ph-hint code { font-family: monospace; color: var(--sc-fg, #f0f2f4); background: var(--sc-bg-hover-strong, rgba(255,255,255,.08)); padding: 1px 5px; border-radius: 4px; }

/* =============================================================================
 * 比較カード(DAW/コース選択)+ 選択で分岐(#154 / Component 5)
 * ========================================================================== */
.sc-lp-compare { color: var(--sc-fg, #f0f2f4); max-width: 880px; margin-inline: auto; padding: 8px 24px 24px; }
.sc-lp-compare__lead { text-align: center; color: var(--sc-fg-secondary, #adb3bb); font-size: 15px; line-height: 1.6; max-width: 720px; margin: 0 auto 24px; }
.sc-lp-compare__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.sc-lp-compare__card {
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: var(--sc-radius-card, 12px); padding: 28px 24px; display: flex; flex-direction: column; gap: 8px;
}
.sc-lp-compare__name { font-size: 24px; font-weight: 700; color: var(--sc-fg, #f0f2f4); }
.sc-lp-compare__sub { color: var(--sc-primary, #f04b50); font-size: 15px; font-weight: 700; line-height: 1.4; margin-bottom: 8px; }
.sc-lp-compare__features { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.sc-lp-compare__features li { display: flex; align-items: flex-start; gap: 12px; font-size: 14px; line-height: 1.5; color: var(--sc-fg, #f0f2f4); }
.sc-lp-compare__check {
	flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
	width: 22px; height: 22px; margin-top: 1px; border-radius: 50%;
	background: var(--sc-bg-hover-strong, rgba(255,255,255,.08)); border: 1px solid var(--sc-border, #5d6164);
}
.sc-lp-compare__check i { font-size: 11px; color: var(--sc-fg, #f0f2f4); }
.sc-lp-compare__choose { margin-top: 28px; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.sc-lp-compare__prompt { font-size: 18px; font-weight: 700; color: var(--sc-fg, #f0f2f4); text-align: center; }
.sc-lp-compare__selects { display: flex; gap: 14px; width: 100%; max-width: 640px; }
.sc-lp-compare__select {
	flex: 1 1 0; min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px;
	padding: 18px 22px; border-radius: var(--sc-radius-card, 12px); text-decoration: none;
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border, #5d6164);
	color: var(--sc-fg, #f0f2f4); font-family: var(--sc-font); font-weight: 700; font-size: 16px;
	transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.sc-lp-compare__select i { font-size: 13px; opacity: .6; }
.sc-lp-compare__select:hover,
.sc-lp-compare__select.sc-lp-picked { background: var(--sc-primary, #f04b50); border-color: var(--sc-primary, #f04b50); color: #fff; }
.sc-lp-compare__select:hover i, .sc-lp-compare__select.sc-lp-picked i { opacity: .95; }
.sc-lp-compare__still { font-size: 14px; color: var(--sc-fg-secondary, #adb3bb); }
.sc-lp-compare__still a { color: var(--sc-primary, #f04b50); text-decoration: none; font-weight: 700; }
.sc-lp-compare__still a:hover { text-decoration: underline; }
@media (max-width: 1024px) {
	.sc-lp-compare__cards { grid-template-columns: 1fr; }
	.sc-lp-compare__selects { flex-direction: column; }
}

/* =============================================================================
 * 「See the honest difference」インライン比較パネル(#185 追加仕様)
 *   DAW 質問カード内の折りたたみ(native <details>)。summary = リンク風トグル、
 *   展開で Ableton Live vs Logic Pro の2列(bg-bright カード)+「ask our team」導線。
 * ========================================================================== */
.sc-lp-honest { width: 100%; margin-top: 4px; }
.sc-lp-honest__details { width: 100%; }
.sc-lp-honest__summary {
	list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px;
	color: var(--sc-primary, #f04b50); font-size: 14px; font-weight: 700; line-height: 1.4;
	padding: 4px 0; -webkit-tap-highlight-color: transparent;
}
.sc-lp-honest__summary::-webkit-details-marker { display: none; }
.sc-lp-honest__label { text-decoration: underline; text-underline-offset: 2px; }
.sc-lp-honest__chev { font-size: 11px; transition: transform .2s ease; }
.sc-lp-honest__details[open] .sc-lp-honest__chev { transform: rotate(180deg); }
.sc-lp-honest__panel { margin-top: 16px; text-align: left; }
.sc-lp-honest__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.sc-lp-honest__card {
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: 8px; padding: 20px; display: flex; flex-direction: column; gap: 6px;
}
.sc-lp-honest__name { font-size: 18px; font-weight: 700; line-height: 1.3; color: var(--sc-fg, #f0f2f4); margin: 0; }
.sc-lp-honest__sub { font-size: 13px; font-weight: 700; line-height: 1.4; color: var(--sc-primary, #f04b50); margin: 0 0 4px; }
.sc-lp-honest__pts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.sc-lp-honest__pts li {
	position: relative; padding-left: 18px; font-size: 13.5px; line-height: 1.5;
	color: var(--sc-fg-secondary, #adb3bb);
}
.sc-lp-honest__pts li::before {
	content: ""; position: absolute; left: 2px; top: 8px; width: 6px; height: 6px;
	border-radius: 50%; background: var(--sc-border, #5d6164);
}
.sc-lp-honest__ask { margin: 16px 0 0; font-size: 13.5px; line-height: 1.5; color: var(--sc-fg-secondary, #adb3bb); }
.sc-lp-honest__ask a { color: var(--sc-primary, #f04b50); text-decoration: none; font-weight: 700; }
.sc-lp-honest__ask a:hover { text-decoration: underline; }
@media (max-width: 767px) {
	.sc-lp-honest__cards { grid-template-columns: 1fr; }
}

/* ---- #240 native 化 bridge:「See the honest difference」を native 要素で組む ----
 * 背景: 箇条書き本文が PHP リテラルで、ディシプリンごとに違う内容をクライアントが
 *   編集できなかった(#240)。Elementor 要素へ分解して 1 項目ずつ編集可能にした。
 *
 * 新 DOM:
 *   container .sc-lp-honest
 *     container .sc-lp-honest__toggle          (旧 <summary> の見た目。クリック領域)
 *       heading .sc-lp-honest__label  +  icon .sc-lp-honest__chev
 *     container .sc-lp-honest__panel
 *       container .sc-lp-honest__cards
 *         container .sc-lp-honest__card
 *           heading h4 .sc-lp-honest__name / heading div .sc-lp-honest__sub
 *           icon-list .sc-lp-honest__pts     (1 行 = repeater 1 行 = 個別編集可)
 *       text-editor .sc-lp-honest__ask
 *
 * ⛔ 旧 <details> 版のセレクタ(上のブロック)は消さない。未移行ページが壊れる。
 * 🟡 開閉は JS(Elementor のコンテナでは <details> を出せない)。**JS が
 *    `.sc-lp-honest--js` を付けて初めて panel を隠す** = JS 無効時は常に開いた状態。
 * -------------------------------------------------------------------------- */
.sc-lp-honest__toggle.e-con {
	display: inline-flex; flex-direction: row; align-items: center; gap: 8px;
	width: auto; align-self: flex-start; cursor: pointer;
	color: var(--sc-primary, #f04b50); font-size: 14px; font-weight: 700; line-height: 1.4;
	-webkit-tap-highlight-color: transparent;
}
.sc-lp-honest__toggle > .elementor-element { width: auto; }
/* 旧 `.sc-lp-honest__summary { padding: 4px 0 }` 相当(タップ領域と全体高さを一致させる)。
 * ⚠️ tree 側は padding 0 なので、per-element CSS
 * (`.elementor-<pid> .elementor-element-<id>` = 0,2,0)に勝つ **0,3,0** で当てる。 */
.sc-lp-honest > .sc-lp-honest__toggle.e-con { padding: 4px 0; }
.sc-lp-honest__label .elementor-heading-title {
	font: inherit; color: inherit; margin: 0;
	text-decoration: underline; text-underline-offset: 2px;
}
/* Icon ウィジェットは wrapper > .elementor-icon-wrapper > .elementor-icon > i の 3 層。
 * Elementor 既定の `.elementor-icon { font-size: 50px }` を上書きして 11px に戻す。 */
.sc-lp-honest__chev { transition: transform .2s ease; }
.sc-lp-honest__chev .elementor-icon-wrapper,
.sc-lp-honest__chev .elementor-icon { display: block; line-height: 1; margin: 0; padding: 0; }
.sc-lp-honest__chev .elementor-icon { font-size: 11px; color: inherit; }
.sc-lp-honest__chev .elementor-icon i,
.sc-lp-honest__chev .elementor-icon svg { font-size: inherit; color: inherit; width: 1em; height: 1em; }
.sc-lp-honest.is-open .sc-lp-honest__chev { transform: rotate(180deg); }
/* JS 有効時のみ閉じる。`.sc-lp-honest__panel.e-con`(0,2,0)に確実に勝つよう子結合子で 0,3,0。 */
.sc-lp-honest--js:not(.is-open) > .sc-lp-honest__panel.e-con { display: none; }
/* ⚠️ `.e-con` は margin / gap / display を **CSS 変数 + 0,1,0 の宣言**で持つので、
 *    素のクラス(0,1,0)では読み込み順次第で負ける。`.e-con` を足して 0,2,0 で当てる。
 *    padding は per-element CSS(0,2,1)が勝つので **tree 側で明示**する(guardrails §2)。 */
.sc-lp-honest.e-con { display: flex; flex-direction: column; gap: 0; margin-block-start: 4px; }
.sc-lp-honest__panel.e-con { display: flex; flex-direction: column; gap: 0; margin-block-start: 16px; }
.sc-lp-honest__cards.e-con { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 767px) { .sc-lp-honest__cards.e-con { grid-template-columns: 1fr; } }
.sc-lp-honest__card.e-con { display: flex; flex-direction: column; gap: 6px; }
.sc-lp-honest__name .elementor-heading-title,
.sc-lp-honest__sub .elementor-heading-title { font: inherit; color: inherit; margin: 0; }
/* 🔴 旧 markup の見た目に合わせるため **24px / 1.3** を明示する(18px にしない)。
 * `.sc-lp-honest__name { font-size: 18px }` は **h4 には当たっていなかった**:
 * Elementor Kit / テーマ側の `<何か> h4`(0,1,1)がコンポーネントの単一クラス(0,1,0)に
 * 勝つため、旧 `<h4 class="sc-lp-honest__name">` の実測は **24px / line-height 31.2px**。
 * native 版の内側も `<h4>` なので、bridge の `font: inherit`(0,2,0)を入れると
 * 逆に wrapper の 18px を継承して**小さくなる**(= 見た目が変わる)。 */
.sc-lp-honest__name .elementor-heading-title { font-size: 24px; line-height: 1.3; }
/* 旧 `.sc-lp-honest__sub { margin: 0 0 4px }` 相当。Elementor の
 * `.e-con .elementor-widget:not(:last-child) { margin-block-end: 0 }`(0,3,0)に勝つ 0,4,0。 */
.sc-lp-honest__card.e-con > .sc-lp-honest__sub.elementor-widget {
	margin-bottom: 4px; margin-block-end: 4px;
}
/* 箇条書き = Icon List ウィジェット。アイコン欄は使わないので隠し、旧 li の丸ポチを再現。 */
.sc-lp-honest__pts .elementor-icon-list-items {
	display: flex; flex-direction: column; gap: 10px; list-style: none; margin: 0; padding: 0;
}
.sc-lp-honest__pts .elementor-icon-list-item {
	display: block; position: relative; padding-left: 18px;
	font-size: 13.5px; font-weight: 400; line-height: 1.5; color: var(--sc-fg-secondary, #adb3bb);
}
.sc-lp-honest__pts .elementor-icon-list-item::before {
	content: ""; position: absolute; left: 2px; top: 8px; width: 6px; height: 6px;
	border-radius: 50%; background: var(--sc-border, #5d6164);
}
.sc-lp-honest__pts .elementor-icon-list-icon { display: none; }
.sc-lp-honest__pts .elementor-icon-list-text { font: inherit; color: inherit; }
/* ⚠️ text-editor ウィジェットは font-weight 500 を継承する(旧 `<p>` は 400)。
 * guardrails §3「native 化で毎回踏む 4 つの罠 (D)」。明示的に 400 に戻す。 */
.sc-lp-honest__ask.elementor-widget-text-editor,
.sc-lp-honest__ask.elementor-widget-text-editor p { font-weight: 400; }
.sc-lp-honest__ask.elementor-widget-text-editor p { margin: 0; }
.sc-lp-honest__panel.e-con > .sc-lp-honest__ask.elementor-widget { margin-top: 16px; margin-block-start: 16px; }

/* =============================================================================
 * シンプル版 Callout(1枚カード)(#168 2026-07-23 / #148 Component 6b)
 *   Figma PC 3918-73057 / SP 3918-72953。bg #272727・左に紫アクセント枠(8px #8b7cff)・
 *   drop-shadow・radius 8・PC padding 40/104。ボタンは紫アウトライン・全幅・右にアイコン。
 * ========================================================================== */
.sc-lp-callout { --sc-lp-accent: #8b7cff; max-width: 880px; margin-inline: auto; padding: 8px 24px 24px; }
.sc-lp-callout__card {
	display: flex; flex-direction: column; gap: 20px;
	background: var(--sc-bg-bright, #272727); border-radius: 8px;
	border-left: 8px solid var(--sc-lp-accent); padding: 40px 104px;
	box-shadow: 0 4px 26px rgba(0,0,0,.65); color: var(--sc-fg, #f0f2f4);
}
.sc-lp-callout__title { font-size: 18px; font-weight: var(--sc-fw-bold, 700); line-height: 1.4; color: var(--sc-fg, #f0f2f4); margin: 0; }
.sc-lp-callout__body { font-size: 14px; font-weight: var(--sc-fw-medium, 500); line-height: 1.4; color: var(--sc-fg, #f0f2f4); margin: -12px 0 0; }
.sc-lp-callout__btns { display: flex; flex-direction: column; gap: 8px; }
.sc-lp-callout__btn {
	display: flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 48px; padding: 12px 16px; border-radius: 8px; text-decoration: none;
	border: 1px solid var(--sc-lp-accent); background: transparent; color: var(--sc-fg, #f0f2f4);
	font-family: var(--sc-font); font-weight: var(--sc-fw-bold, 700); font-size: 18px; line-height: 1.4;
	transition: background-color .15s ease, color .15s ease;
}
.sc-lp-callout__btn-label { flex: 1 1 auto; text-align: center; }
.sc-lp-callout__btn i { flex: 0 0 auto; font-size: 16px; }
.sc-lp-callout__btn:hover { background: rgba(139,124,255,.14); color: var(--sc-fg, #f0f2f4); }
.sc-lp-callout__still { font-size: 14px; font-weight: var(--sc-fw-medium, 500); line-height: 1.4; color: var(--sc-fg, #f0f2f4); margin: 0; }
.sc-lp-callout__still a { color: var(--sc-lp-accent); font-weight: var(--sc-fw-bold, 700); text-decoration: underline; }
.sc-lp-callout__still a:hover { text-decoration: none; }
@media (max-width: 1024px) {
	.sc-lp-callout { padding: 0 16px 16px; }
	.sc-lp-callout__card { padding: 24px 16px; gap: 16px; }
}

/* =============================================================================
 * MATCH 結果カード(#184 Task4)= ウィザードの回答結果パネル。
 *   "Your match" バッジ + 左アクセント枠のカード(eyebrow/title/tag/sections/CTA/price)。
 * ========================================================================== */
.sc-lp-match { --sc-lp-match-accent: #c8862a; max-width: 880px; margin-inline: auto; padding: 8px 24px 24px; color: var(--sc-fg, #f0f2f4); }
.sc-lp-match__badge {
	display: inline-block; margin: 0 0 -6px 4px; padding: 6px 14px; border-radius: 8px;
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45);
	font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--sc-fg, #f0f2f4);
}
.sc-lp-match__card {
	position: relative; display: flex; flex-direction: column; gap: 16px;
	background: var(--sc-bg-bright, #272727); border-radius: 12px;
	border-left: 8px solid var(--sc-lp-match-accent); padding: 32px 36px;
	box-shadow: 0 4px 26px rgba(0,0,0,.55);
}
.sc-lp-match__eyebrow { color: var(--sc-lp-match-accent); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.sc-lp-match__title { font-size: 28px; line-height: 1.2; font-weight: 700; margin: -6px 0 0; color: var(--sc-fg, #f0f2f4); }
.sc-lp-match__tag { font-size: 15px; line-height: 1.6; color: var(--sc-fg-secondary, #adb3bb); margin: 0; }
.sc-lp-match__stages { display: flex; flex-direction: column; }
.sc-lp-match__stage { font-size: 14px; line-height: 1.55; color: var(--sc-fg-secondary, #adb3bb); padding: 12px 0; border-top: 1px solid var(--sc-border-dim, #353c45); }
.sc-lp-match__stage:first-child { border-top: none; }
.sc-lp-match__stage b { color: var(--sc-fg, #f0f2f4); font-weight: 700; }
.sc-lp-match__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 4px; }
.sc-lp-match__actions .sc-lp-btn { justify-content: center; }
.sc-lp-match__actions .sc-lp-btn i { margin-left: 6px; }
.sc-lp-match__price { font-size: 13px; font-style: italic; line-height: 1.5; color: var(--sc-fg-secondary, #adb3bb); margin: 4px 0 0; }
@media (max-width: 1024px) {
	.sc-lp-match { padding: 0 16px 16px; }
	.sc-lp-match__card { padding: 24px 18px; }
	.sc-lp-match__title { font-size: 24px; }
	.sc-lp-match__actions .sc-lp-btn { flex: 1 1 auto; }
}

/* =============================================================================
 * All five programs(#184 Task5)= 5 Full Program へのリンクカード一覧。
 * ========================================================================== */
.sc-lp-programs { color: var(--sc-fg, #f0f2f4); max-width: 880px; margin-inline: auto; padding: 32px 24px; }
.sc-lp-programs .sc-lp-programs__head { text-align: left; margin-bottom: 20px; }
.sc-lp-programs__cards { display: flex; flex-direction: column; gap: 14px; }
.sc-lp-programs__card {
	display: flex; align-items: center; gap: 16px; text-decoration: none;
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: 8px; padding: 20px 22px; color: var(--sc-fg, #f0f2f4);
	transition: border-color .15s ease, transform .15s ease;
}
.sc-lp-programs__card:hover { border-color: var(--sc-primary, #f04b50); transform: translateY(-1px); }
.sc-lp-programs__body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 6px; }
.sc-lp-programs__ctitle { font-size: 18px; font-weight: 700; line-height: 1.3; color: var(--sc-fg, #f0f2f4); }
.sc-lp-programs__cbody { font-size: 14px; line-height: 1.55; color: var(--sc-fg-secondary, #adb3bb); }
.sc-lp-programs__arrow { flex: 0 0 auto; font-size: 16px; color: var(--sc-fg-secondary, #adb3bb); transition: color .15s ease, transform .15s ease; }
.sc-lp-programs__card:hover .sc-lp-programs__arrow { color: var(--sc-primary, #f04b50); transform: translateX(3px); }
@media (max-width: 1024px) {
	.sc-lp-programs { padding: 24px 16px; }
	.sc-lp-programs__card { padding: 16px 18px; }
}

/* -----------------------------------------------------------------------------
 * #184/#185 native 化 bridge: [sc_lp_match]/[sc_lp_yourprogram]/[sc_lp_programs](#184)+
 * [sc_lp_curriculum]/[sc_lp_where](#185・course-b)を
 * native Elementor 要素(container/heading/text/button)で描画する際の橋渡し。
 * CSS クラスが widget ラッパー(.elementor-element)に載り、実テキストは内側の
 * .elementor-heading-title / text-editor <p> にあるため、自前クラスの typography/余白を
 * 内側要素へ継承させる。e_optimized_markup OFF(dev/local 統一・guardrails #1)前提。
 * 見た目は shortcode 版と同一(クラスは不変)。編集可能性のための構造変更のみ。
 * -------------------------------------------------------------------------- */
.sc-lp-match .elementor-widget-heading .elementor-heading-title,
.sc-lp-yourprogram .elementor-widget-heading .elementor-heading-title,
.sc-lp-programs .elementor-widget-heading .elementor-heading-title,
.sc-lp-curr .elementor-widget-heading .elementor-heading-title,
.sc-lp-where .elementor-widget-heading .elementor-heading-title,
.sc-lp-yourpath .elementor-widget-heading .elementor-heading-title,
.sc-lp-ladder .elementor-widget-heading .elementor-heading-title {
	color: inherit; font-size: inherit; font-weight: inherit;
	line-height: inherit; letter-spacing: inherit; margin: 0;
}
.sc-lp-match .elementor-widget-text-editor p,
.sc-lp-yourprogram .elementor-widget-text-editor p,
.sc-lp-programs .elementor-widget-text-editor p,
.sc-lp-curr .elementor-widget-text-editor p,
.sc-lp-where .elementor-widget-text-editor p,
.sc-lp-yourpath .elementor-widget-text-editor p,
.sc-lp-ladder .elementor-widget-text-editor p { margin: 0; }
/* #183 course-a native yourpath: intro/foot は native heading/text、カード列は単一ソース
 * markup(sc_lp_yourpath_cards_html)を html ウィジェットで包む(<ul>/badge は container 不可)。
 * intro/foot の wrapper styling は base .sc-lp-yourpath__intro / __foot が担う(上記 p margin 0 のみ橋渡し)。 */
/* "Your match" バッジは inline-block だが flex 子でストレッチされるため左寄せに固定。 */
.sc-lp-match > .sc-lp-match__badge { align-self: flex-start; }

/* -----------------------------------------------------------------------------
 * #186/#187 native 化 bridge: オンライン動画コース LP(Guest / Standard)の
 * video / spotify / media / items / fit / instructor を native Elementor 要素
 * (container/heading/text/video/image/html widget)で描画する際の橋渡し。
 * 見た目クラス(.sc-lp-video/.sc-lp-spotify/.sc-lp-media/.sc-lp-items/.sc-lp-result[fit])を
 * 流用し、widget ラッパー内側の .elementor-heading-title / text-editor <p> へ typography を継承。
 * e_optimized_markup OFF(guardrails #1)前提。編集可能性のための構造変更のみ・見た目不変。
 * -------------------------------------------------------------------------- */
/* 見出し(eyebrow/title/media title/instructor name·role)= native heading widget の内側継承。 */
.sc-lp-result__eyebrow.elementor-widget-heading .elementor-heading-title,
.sc-lp-result__title.elementor-widget-heading .elementor-heading-title,
.sc-lp-media__title.elementor-widget-heading .elementor-heading-title,
.sc-lp-instructor-solo__name.elementor-widget-heading .elementor-heading-title,
.sc-lp-instructor-solo__role.elementor-widget-heading .elementor-heading-title {
	color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; margin: 0;
}
/* 本文 = native text-editor widget の内側 <p> の余白除去(色/サイズはラッパーから継承)。 */
.sc-lp-media__body.elementor-widget-text-editor p,
.sc-lp-spotify__lead.elementor-widget-text-editor p,
.sc-lp-instructor-solo__bio.elementor-widget-text-editor p { margin: 0; }
/* Video: Elementor Video ウィジェットの枠を .sc-lp-video__frame の見た目(角丸/枠)に寄せる。
 * base .sc-lp-video__frame(aspect-ratio/position)は widget の内蔵アスペクトに任せるため中和。 */
.sc-lp-video .elementor-widget-video.sc-lp-video__frame { position: static; aspect-ratio: auto; width: 100%; max-width: 720px; margin-inline: auto; padding: 0; background: none; border: 0; }
.sc-lp-video .elementor-widget-video.sc-lp-video__frame .elementor-wrapper {
	border-radius: var(--sc-radius-card, 12px); overflow: hidden;
	border: 1px solid var(--sc-border-dim, #353c45); background: var(--sc-bg-bright, #272727);
}
/* Media: text 列と Image ウィジェット列を 50/50 に(#4 flex-grow の罠を詳細度で回避)。 */
.sc-lp-media > .sc-lp-media__text.e-con,
.sc-lp-media > .elementor-widget-image.sc-lp-media__figure { flex: 1 1 50%; width: 50%; min-width: 0; }
.sc-lp-media > .elementor-widget-image.sc-lp-media__figure { align-self: stretch; }
.sc-lp-media .sc-lp-media__figure .elementor-widget-container { height: 100%; }
.sc-lp-media .sc-lp-media__figure img {
	display: block; width: 100%; height: 100%; min-height: 280px; object-fit: cover;
	border-radius: var(--sc-radius-card, 12px); border: 1px solid var(--sc-border, #5d6164);
}
@media (max-width: 767px) {
	.sc-lp-media > .sc-lp-media__text.e-con,
	.sc-lp-media > .elementor-widget-image.sc-lp-media__figure { flex-basis: 100%; width: 100%; }
	.sc-lp-media .sc-lp-media__figure img { min-height: 200px; }
}

/* =============================================================================
 * Instructor(単一講師プロフィール・#187 追加)— Figma image 4e27a21e。
 * 全体のダークトーンに合わせた 1 枚カード: 写真(Image ウィジェット)+ 名前/役割/バイオ。
 * ========================================================================== */
.sc-lp-instructor-solo { color: var(--sc-fg, #f0f2f4); max-width: 880px; margin-inline: auto; padding: 40px 24px; }
.sc-lp-instructor-solo .sc-lp-instructor-solo__card {
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: var(--sc-radius-card, 12px); padding: 28px;
}
.sc-lp-instructor-solo .sc-lp-instructor-solo__photo { flex: 0 0 auto; width: 220px; }
.sc-lp-instructor-solo .sc-lp-instructor-solo__photo img {
	display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover;
	border-radius: var(--sc-radius-card, 12px); border: 1px solid var(--sc-border, #5d6164);
}
.sc-lp-instructor-solo .sc-lp-instructor-solo__info { flex: 1 1 auto; min-width: 0; }
.sc-lp-instructor-solo__name { font-size: 22px; font-weight: 700; line-height: 1.2; color: var(--sc-fg, #f0f2f4); }
.sc-lp-instructor-solo__role { font-size: 14px; font-weight: 700; letter-spacing: .04em; color: var(--sc-primary, #f04b50); }
.sc-lp-instructor-solo__bio { font-size: 15px; line-height: 1.6; color: var(--sc-fg-secondary, #adb3bb); }
@media (max-width: 767px) {
	.sc-lp-instructor-solo { padding: 24px 16px; }
	.sc-lp-instructor-solo .sc-lp-instructor-solo__card { padding: 20px; }
	.sc-lp-instructor-solo .sc-lp-instructor-solo__photo { width: 100%; max-width: 220px; }
}

/* =============================================================================
 * カリキュラム内訳 パターンA(Level アコーディオン)(#154 / Component 7-A)
 * ========================================================================== */
.sc-lp-curr { color: var(--sc-fg, #f0f2f4); max-width: 880px; margin-inline: auto; padding: 32px 24px; }
.sc-lp-curr__intro { text-align: center; color: var(--sc-fg-secondary, #adb3bb); font-size: 15px; line-height: 1.6; max-width: 680px; margin: 0 auto 24px; }
.sc-lp-curr__levels { display: flex; flex-direction: column; gap: 12px; }
.sc-lp-curr__level {
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: var(--sc-radius-card, 12px); overflow: hidden;
}
.sc-lp-curr__level[open] { border-color: var(--sc-primary, #f04b50); }
.sc-lp-curr__summary {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	padding: 20px 24px; cursor: pointer; list-style: none;
}
.sc-lp-curr__summary::-webkit-details-marker { display: none; }
.sc-lp-curr__lvhead { display: flex; flex-direction: column; gap: 4px; }
.sc-lp-curr__lvlabel { color: var(--sc-primary, #f04b50); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.sc-lp-curr__lvtitle { font-size: 22px; font-weight: 700; color: var(--sc-fg, #f0f2f4); line-height: 1.2; }
.sc-lp-curr__toggle { color: var(--sc-fg-secondary, #adb3bb); font-size: 18px; transition: transform .2s ease; flex: 0 0 auto; }
.sc-lp-curr__level[open] .sc-lp-curr__toggle { transform: rotate(45deg); }
.sc-lp-curr__body { padding: 0 24px 24px; display: flex; flex-direction: column; gap: 16px; }
.sc-lp-curr__desc { color: var(--sc-fg-secondary, #adb3bb); font-size: 14px; line-height: 1.6; }
.sc-lp-curr__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.sc-lp-chip {
	display: inline-flex; align-items: center; padding: 4px 12px; border-radius: 999px; font-size: 12px; font-weight: 600;
	background: var(--sc-bg-hover-strong, rgba(255,255,255,.08)); border: 1px solid var(--sc-border-dim, #353c45); color: var(--sc-fg, #f0f2f4);
}
.sc-lp-curr__taught { font-size: 13px; color: var(--sc-fg-secondary, #adb3bb); }
.sc-lp-curr__taught a { color: var(--sc-primary, #f04b50); text-decoration: none; font-weight: 700; }
.sc-lp-curr__steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.sc-lp-curr__step { display: flex; align-items: flex-start; gap: 14px; }
.sc-lp-curr__num {
	flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
	width: 24px; height: 24px; border-radius: 50%; background: var(--sc-primary, #f04b50);
	color: #fff; font-size: 13px; font-weight: 700; margin-top: 1px;
}
.sc-lp-curr__stepbody { font-size: 14px; line-height: 1.5; }
.sc-lp-curr__steptitle { font-weight: 700; color: var(--sc-fg, #f0f2f4); }
.sc-lp-curr__stepdesc { color: var(--sc-fg-secondary, #adb3bb); }
.sc-lp-curr__cta { width: 100%; justify-content: center; margin-top: 6px; }
.sc-lp-curr__note { margin-top: 24px; padding: 20px 24px; background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45); border-radius: var(--sc-radius-card, 12px); }
.sc-lp-curr__note p { font-size: 14px; line-height: 1.6; color: var(--sc-fg-secondary, #adb3bb); margin-top: 6px; }
@media (max-width: 1024px) {
	.sc-lp-curr__lvtitle { font-size: 18px; }
}

/* =============================================================================
 * Your Path (#183) — Figma SP 3573-70266 / PC 4526-40985。
 * header + 1〜2 列の path カード(bg-bright/border-dim/radius8)。番号 or チェックの
 * 項目リスト。段階表示(#183)で `.sc-lp-gated` を包む section にも使う。
 * ========================================================================== */
.sc-lp-yourpath { color: var(--sc-fg, #f0f2f4); max-width: 880px; margin-inline: auto; padding: 32px 24px; }
.sc-lp-yourpath__intro { text-align: center; color: var(--sc-fg-secondary, #adb3bb); font-size: 15px; line-height: 1.6; max-width: 680px; margin: 12px auto 0; }
.sc-lp-yourpath__cards {
	display: grid; grid-template-columns: 1fr 1fr;
	background: var(--sc-bg-bright, #272727);
	border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: 8px; overflow: hidden;
}
.sc-lp-yourpath__cards[data-cols="1"] { grid-template-columns: 1fr; }
.sc-lp-yourpath__col {
	display: flex; flex-direction: column; gap: 32px;
	padding: 32px 24px;
}
.sc-lp-yourpath__col + .sc-lp-yourpath__col { border-left: 1px solid var(--sc-border-dim, #353c45); }
.sc-lp-yourpath__col--primary { --yp-accent: var(--sc-primary, #f04b50); }
.sc-lp-yourpath__col--accent  { --yp-accent: #8b7cff; }
.sc-lp-yourpath__colhead { display: flex; flex-direction: column; gap: 8px; }
.sc-lp-yourpath__coleyebrow { color: var(--yp-accent, var(--sc-primary, #f04b50)); font-size: 14px; font-weight: 700; }
.sc-lp-yourpath__coltitle { font-size: 24px; line-height: 1.2; font-weight: 700; color: var(--sc-fg, #f0f2f4); }
.sc-lp-yourpath__colbody { font-size: 16px; line-height: 1.4; color: var(--sc-fg, #f0f2f4); }
.sc-lp-yourpath__items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 24px; }
.sc-lp-yourpath__item { display: flex; align-items: flex-start; gap: 8px; }
.sc-lp-yourpath__badge {
	flex: 0 0 auto; width: 24px; height: 24px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--yp-accent, var(--sc-primary, #f04b50)); color: #f0f2f4;
	font-size: 13px; font-weight: 700; line-height: 1;
}
.sc-lp-yourpath__badge--check i { font-size: 13px; }
/* #272: 「いつでも取れる」列のバッジ(参考 LP の `.ov-num` = ♪)。check と同寸。 */
.sc-lp-yourpath__badge--music i { font-size: 12px; }
.sc-lp-yourpath__itembody { display: flex; flex-direction: column; gap: 4px; }
.sc-lp-yourpath__itemtitle { font-size: 18px; line-height: 1.2; font-weight: 700; color: var(--sc-fg, #f0f2f4); }
.sc-lp-yourpath__itemdesc { font-size: 16px; line-height: 1.4; color: var(--sc-fg, #f0f2f4); }
.sc-lp-yourpath__note { margin-top: auto; font-size: 12px; line-height: 1.4; color: var(--sc-fg-secondary, #adb3bb); }
.sc-lp-yourpath__foot { margin-top: 24px; }
.sc-lp-yourpath__foot p { font-size: 14px; line-height: 1.6; color: var(--sc-fg-secondary, #adb3bb); margin-top: 6px; }
@media (max-width: 767px) {
	.sc-lp-yourpath { padding: 24px 16px; }
	.sc-lp-yourpath__cards { grid-template-columns: 1fr; }
	.sc-lp-yourpath__col + .sc-lp-yourpath__col { border-left: 0; border-top: 1px solid var(--sc-border-dim, #353c45); }
	.sc-lp-yourpath__coltitle { font-size: 20px; }
}

/* =============================================================================
 * Your Program (#185) — Figma PC 3866-96860 / SP 3866-93153。
 * 左寄せ header + 1 枚の bg-bright カードに番号バッジ付きの stage 行を並べる。
 * #183 Your Path を手本にした兄弟コンポーネント(単一ソース)。
 * ========================================================================== */
.sc-lp-yourprogram { color: var(--sc-fg, #f0f2f4); max-width: 880px; margin-inline: auto; padding: 32px 24px; }
.sc-lp-yourprogram .sc-lp-yourprogram__head { text-align: left; margin-bottom: 24px; }
.sc-lp-yourprogram__intro { color: var(--sc-fg-secondary, #adb3bb); font-size: 15px; line-height: 1.6; margin-top: 12px; }
.sc-lp-yourprogram__stages {
	list-style: none; margin: 0; padding: 24px;
	display: flex; flex-direction: column; gap: 24px;
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: 8px;
}
.sc-lp-yourprogram__stage { display: flex; align-items: flex-start; gap: 14px; }
.sc-lp-yourprogram__num {
	flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
	width: 24px; height: 24px; border-radius: 50%; background: var(--sc-primary, #f04b50);
	color: #fff; font-size: 13px; font-weight: 700; line-height: 1; margin-top: 2px;
}
.sc-lp-yourprogram__body { display: flex; flex-direction: column; gap: 4px; }
.sc-lp-yourprogram__title { font-size: 18px; font-weight: 700; line-height: 1.3; color: var(--sc-fg, #f0f2f4); }
.sc-lp-yourprogram__desc { font-size: 14px; line-height: 1.55; color: var(--sc-fg-secondary, #adb3bb); }
@media (max-width: 767px) {
	.sc-lp-yourprogram { padding: 24px 16px; }
	.sc-lp-yourprogram__stages { padding: 20px 16px; }
}

/* Section detail の Final Project Callout(#185)。curriculum の level 内に置く紫アクセント箱。
 * Figma 3866-96893 の "Callout"(bg やや明・左に紫アクセント枠)= 各 Section の Final Project。 */
.sc-lp-curr__final {
	background: rgba(255,255,255,.04); border-left: 4px solid #8b7cff;
	border-radius: 6px; padding: 16px 20px;
}
.sc-lp-curr__final-label { display: block; font-size: 14px; font-weight: 700; color: var(--sc-fg, #f0f2f4); margin-bottom: 4px; }
.sc-lp-curr__final p { font-size: 14px; line-height: 1.6; color: var(--sc-fg-secondary, #adb3bb); margin: 0; }

/* =============================================================================
 * Where this takes you (#185) — Figma PC 3866-96970 / SP 3866-93542。
 * 左寄せ header + 縦積みの bg-bright カード(タイトル + 本文)。preset 駆動の単一ソース。
 * ========================================================================== */
.sc-lp-where { color: var(--sc-fg, #f0f2f4); max-width: 880px; margin-inline: auto; padding: 32px 24px; }
.sc-lp-where .sc-lp-where__head { text-align: left; margin-bottom: 24px; }
.sc-lp-where__intro { color: var(--sc-fg-secondary, #adb3bb); font-size: 15px; line-height: 1.6; margin-top: 12px; }
.sc-lp-where__cards { display: flex; flex-direction: column; gap: 16px; }
.sc-lp-where__card {
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: 8px; padding: 20px 24px;
}
.sc-lp-where__ctitle { font-size: 18px; font-weight: 700; line-height: 1.3; color: var(--sc-fg, #f0f2f4); margin: 0; }
.sc-lp-where__cbody { font-size: 14px; line-height: 1.55; color: var(--sc-fg-secondary, #adb3bb); margin: 6px 0 0; }
@media (max-width: 767px) { .sc-lp-where { padding: 24px 16px; } }

/* Program instructors 等の補足ノート(#185)。bg-bright の1行カード(ラベル太字)。 */
.sc-lp-note {
	max-width: 880px; margin: 0 auto; padding: 16px 24px;
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: 8px; font-size: 14px; line-height: 1.6; color: var(--sc-fg-secondary, #adb3bb);
}
.sc-lp-note b { color: var(--sc-fg, #f0f2f4); }

/* #183 段階表示: ウィザード完了まで隠すセクション(JS off では常時表示=フォールバック)。 */
.sc-lp-has-js .sc-lp-gated.sc-lp-hidden { display: none; }

/* =============================================================================
 * Included Item リスト(#148 Component 2)(#151/#152)
 * ========================================================================== */
.sc-lp-items { color: var(--sc-fg, #f0f2f4); max-width: 880px; margin-inline: auto; padding: 32px 24px; }
.sc-lp-items__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.sc-lp-items--cols1 { grid-template-columns: 1fr; }
.sc-lp-items--cols2 { grid-template-columns: 1fr 1fr; }
.sc-lp-items--cols3 { grid-template-columns: 1fr 1fr 1fr; }
.sc-lp-items__item { display: flex; align-items: flex-start; gap: 14px; }
.sc-lp-items__icon { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 10px; background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45); }
.sc-lp-items__icon i { color: var(--sc-primary, #f04b50); font-size: 18px; }
.sc-lp-items__num { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--sc-primary, #f04b50); color: #fff; font-weight: 700; font-size: 15px; }
.sc-lp-items__body { display: flex; flex-direction: column; gap: 3px; }
.sc-lp-items__title { font-size: 15px; font-weight: 700; color: var(--sc-fg, #f0f2f4); }
.sc-lp-items__detail { font-size: 14px; line-height: 1.5; color: var(--sc-fg-secondary, #adb3bb); }
@media (max-width: 1024px) { .sc-lp-items--cols2, .sc-lp-items--cols3 { grid-template-columns: 1fr; } }

/* ---- #215 native 化 bridge: items リストを項目ごとの native 要素で組む ----
 * 旧: HTML ウィジェット > ul.sc-lp-items__list > li.sc-lp-items__item > span(icon/body/title/detail)
 * 新: container.sc-lp-items__list > container.sc-lp-items__item
 *       > Icon ウィジェット.sc-lp-items__icon(または heading.sc-lp-items__num)
 *       + container.sc-lp-items__body > heading.sc-lp-items__title + text-editor.sc-lp-items__detail
 * クラス名は据え置いたので :803-813 の規則はそのまま効くが、以下の 2 点だけ手当てが必要。 */
/* (1) Elementor コンテナは `.e-con { display:flex }` = 詳細度(0,1,0)で、
 *     `.sc-lp-items__list { display:grid }` と同点。読み込み順に依存させないよう明示的に上げる。 */
.sc-lp-items .sc-lp-items__list.e-con { display: grid; }
.sc-lp-items .sc-lp-items__item.e-con { display: flex; flex-direction: row; align-items: flex-start; gap: 14px; }
.sc-lp-items .sc-lp-items__body.e-con { display: flex; flex-direction: column; gap: 3px; align-items: flex-start; }
/* (2) Icon ウィジェットは wrapper > .elementor-icon-wrapper > .elementor-icon > i の 3 層が
 *     挟まる。40×40 の丸角ボックスはラッパー(.sc-lp-items__icon)に当たるので内側を
 *     パススルーにして i を中央に置く。 */
.sc-lp-items__icon.elementor-widget-icon > .elementor-widget-container,
.sc-lp-items__icon .elementor-icon-wrapper,
.sc-lp-items__icon .elementor-icon {
	display: flex; align-items: center; justify-content: center;
	width: 100%; height: 100%; margin: 0; padding: 0; line-height: 1;
}
.sc-lp-items__icon .elementor-icon { color: inherit; }
/* heading/text-editor ウィジェットの内側要素へ typography を継承(#184/#186 bridge と同じ手当て)。 */
.sc-lp-items__title .elementor-heading-title,
.sc-lp-items__num .elementor-heading-title { font: inherit; color: inherit; }
.sc-lp-items__detail p { font: inherit; color: inherit; margin: 0; }
/* __num は heading ウィジェットなので中央寄せを内側にも効かせる。 */
.sc-lp-items__num.elementor-widget-heading > .elementor-widget-container {
	display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;
}

/* -----------------------------------------------------------------------------
 * #184: What's included in every program — Figma PC 3866-96942 / SP 3866-93418。
 * 単一カラム・左寄せ見出し・丸アイコン(64px 円・rgba 白10% 地・赤アイコン 36px 枠)・
 * 短い1行説明。preset 限定スコープ(.sc-lp-items--fp-included)なので他 preset は不変。
 * 内側の余白は Figma 実測(title→items 40px / item 間 24px / icon→text 16px / title→detail 4px)。
 * -------------------------------------------------------------------------- */
.sc-lp-items--fp-included .sc-lp-result__head { text-align: left; margin-bottom: 40px; }
.sc-lp-items--fp-included .sc-lp-result__title { font-size: 40px; line-height: 1.2; }
.sc-lp-items--fp-included .sc-lp-items__list { display: flex; flex-direction: column; gap: 24px; }
.sc-lp-items--fp-included .sc-lp-items__item { align-items: center; gap: 16px; }
.sc-lp-items--fp-included .sc-lp-items__icon {
	width: 64px; height: 64px; border-radius: 50%; padding: 8px;
	background: rgba(255, 255, 255, .1); border: 0;
}
.sc-lp-items--fp-included .sc-lp-items__icon i { font-size: 28px; }
.sc-lp-items--fp-included .sc-lp-items__body { gap: 4px; }
.sc-lp-items--fp-included .sc-lp-items__title { font-size: 18px; line-height: 1.2; }
.sc-lp-items--fp-included .sc-lp-items__detail { font-size: 16px; line-height: 1.4; }
/* ⚠️ #215 native 化の副作用: 上の preset 上書き(0,2,0)は、native 版 bridge の
 * `.sc-lp-items .sc-lp-items__item.e-con`(0,3,0)に**負ける**。実測で
 * align-items が center→flex-start / gap 16→14px / body gap 4→3px に化けていたので、
 * preset 側も `.e-con` を付けて詳細度を揃える(0,3,0 同点 + 後発なので勝つ)。 */
.sc-lp-items--fp-included .sc-lp-items__list.e-con { display: flex; flex-direction: column; gap: 24px; }
.sc-lp-items--fp-included .sc-lp-items__item.e-con { align-items: center; gap: 16px; }
.sc-lp-items--fp-included .sc-lp-items__body.e-con { gap: 4px; }
/* #184 追いFB: リスト下の注記(講師一覧 / 支払いプラン)。左寄せの本文扱い。
 * native 版は text-editor ウィジェットなので内側の <p> にも同じ体裁を継承させる。
 * #184 追いFB2(2026-07-27): items セクションとの間隔が広すぎたので 24px → 12px に詰める。 */
.sc-lp-items__after,
.sc-lp-items__after p { text-align: left; margin: 12px 0 0; }
.sc-lp-items__after + .sc-lp-items__after,
.sc-lp-items__after + .sc-lp-items__after p { margin-top: 8px; }
/* #184 追いFB2: 支払いプランの一文はカード背景を外してプレーンテキストにする
 * (`.sc-lp-note` のカードを打ち消す。native 版はラッパーに両クラスが付く)。 */
.sc-lp-items__after--plain {
	background: none; border: 0; box-shadow: none; padding: 0;
	max-width: none; margin-inline: 0;
	font-size: 14px; line-height: 1.6; color: var(--sc-fg-secondary, #adb3bb);
}
.sc-lp-items__after--plain p { font: inherit; color: inherit; }
@media (max-width: 767px) {
	.sc-lp-items--fp-included .sc-lp-result__title { font-size: 32px; }
}

/* =============================================================================
 * Media + Caption(#148 Component 12)(#152/#153)
 * ========================================================================== */
.sc-lp-media { max-width: 1040px; margin-inline: auto; padding: 40px 24px; display: flex; align-items: center; gap: 40px; color: var(--sc-fg, #f0f2f4); }
.sc-lp-media--reverse { flex-direction: row-reverse; }
.sc-lp-media__text, .sc-lp-media__figure { flex: 1 1 50%; width: 50%; min-width: 0; }
.sc-lp-media__text { display: flex; flex-direction: column; gap: 8px; }
.sc-lp-media__title { font-size: 24px; font-weight: 700; color: var(--sc-fg, #f0f2f4); line-height: 1.2; }
.sc-lp-media__body { font-size: 15px; line-height: 1.6; color: var(--sc-fg-secondary, #adb3bb); }
.sc-lp-media__figure { align-self: stretch; min-height: 280px; border-radius: var(--sc-radius-card, 12px); background: linear-gradient(135deg, #3a3a3a 0%, #242424 100%); border: 1px solid var(--sc-border, #5d6164); }
@media (max-width: 1024px) {
	.sc-lp-media, .sc-lp-media--reverse { flex-direction: column; gap: 20px; }
	.sc-lp-media__text, .sc-lp-media__figure { width: 100%; }
	.sc-lp-media__figure { min-height: 200px; }
}

/* =============================================================================
 * Chips タグ行(#148 Component 13)(#152)
 * ========================================================================== */
.sc-lp-chips { display: flex; flex-wrap: wrap; gap: 8px; max-width: 880px; margin: 0 auto; padding: 0 24px 8px; }
.sc-lp-chips--center { justify-content: center; }
.sc-lp-chips--left { justify-content: flex-start; }

/* =============================================================================
 * Video Embed(#148 Component 1 動画版)(#152/#153)
 * ========================================================================== */
.sc-lp-video { color: var(--sc-fg, #f0f2f4); max-width: 880px; margin-inline: auto; padding: 24px; }
.sc-lp-video__frame { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: var(--sc-radius-card, 12px); overflow: hidden; background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45); }
.sc-lp-video__iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.sc-lp-video__placeholder { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; text-align: center; padding: 24px; }
.sc-lp-video__placeholder i { font-size: 40px; color: var(--sc-primary, #f04b50); }
.sc-lp-video__placeholder span { font-size: 16px; font-weight: 700; color: var(--sc-fg, #f0f2f4); }
.sc-lp-video__placeholder small { font-size: 13px; color: var(--sc-fg-secondary, #adb3bb); }
.sc-lp-video__placeholder code { font-family: monospace; color: var(--sc-fg, #f0f2f4); background: var(--sc-bg-hover-strong, rgba(255,255,255,.08)); padding: 1px 5px; border-radius: 4px; }

/* =============================================================================
 * Instructors 一覧(#148 Component 9)(#151)
 * ========================================================================== */
.sc-lp-instructors { color: var(--sc-fg, #f0f2f4); max-width: 1040px; margin-inline: auto; padding: 40px 24px; }
.sc-lp-instructors__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.sc-lp-instructor { display: flex; flex-direction: column; gap: 8px; }
.sc-lp-instructor__photo { width: 100%; aspect-ratio: 1 / 1; border-radius: var(--sc-radius-card, 12px); background: linear-gradient(135deg, #3a3a3a 0%, #242424 100%); border: 1px solid var(--sc-border, #5d6164); }
.sc-lp-instructor__name { font-size: 15px; font-weight: 700; color: var(--sc-fg, #f0f2f4); }
.sc-lp-instructor__role { font-size: 13px; color: var(--sc-fg-secondary, #adb3bb); }
@media (max-width: 1024px) { .sc-lp-instructors__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .sc-lp-instructors__grid { grid-template-columns: 1fr; } }

/* =============================================================================
 * Pricing パターンB(最終決定用シンプル型)(#148 Component 8-B)(#151)
 * ========================================================================== */
/* #168: セクションは全幅にしてカードのみ 640px 中央寄せ(下の #168 グロー帯を full-bleed で敷くため)。 */
.sc-lp-pricefinal { color: var(--sc-fg, #f0f2f4); margin-inline: auto; padding: 48px 24px; }
.sc-lp-pricefinal__card { max-width: 640px; margin-inline: auto; background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-primary, #f04b50); border-radius: var(--sc-radius-card, 12px); padding: 36px 28px; text-align: center; display: flex; flex-direction: column; gap: 16px; }
.sc-lp-pricefinal__amount { font-size: 44px; font-weight: 700; line-height: 1.1; color: var(--sc-fg, #f0f2f4); }
.sc-lp-pricefinal__cycle { font-size: 18px; font-weight: 500; color: var(--sc-fg-secondary, #adb3bb); margin-left: 4px; }
.sc-lp-pricefinal__desc { font-size: 14px; line-height: 1.6; color: var(--sc-fg-secondary, #adb3bb); }
.sc-lp-pricefinal__actions { display: flex; flex-direction: column; gap: 12px; margin-top: 4px; }
.sc-lp-pricefinal__actions .sc-lp-btn { justify-content: center; }

/* =============================================================================
 * ロック付きコースカルーセル(#149/#150 Component 6)
 *   未回答=透過ダミー + オーバーレイ、回答で .is-unlocked が付き解除。
 * ========================================================================== */
.sc-lp-carousel-lock { position: relative; }
/* Default = locked: dim the real cards, block interaction, show overlay. */
.sc-lp-result--locked .sc-lp-result__carousel { filter: blur(2px) saturate(.6); opacity: .45; transition: filter .3s ease, opacity .3s ease; pointer-events: none; }
.sc-lp-result--locked.is-unlocked .sc-lp-result__carousel { filter: none; opacity: 1; pointer-events: auto; }
.sc-lp-lock {
	position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-align: center;
	background: linear-gradient(180deg, rgba(18,18,18,.55) 0%, rgba(18,18,18,.78) 100%);
	border-radius: var(--sc-radius-card, 12px); transition: opacity .3s ease; z-index: 2;
}
.sc-lp-result--locked.is-unlocked .sc-lp-lock { opacity: 0; pointer-events: none; }
.sc-lp-lock__inner { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 24px; }
.sc-lp-lock__inner > i { font-size: 32px; color: var(--sc-primary, #f04b50); }
.sc-lp-lock__label { font-size: 18px; font-weight: 700; color: var(--sc-fg, #f0f2f4); }

/* =============================================================================
 * How We Teach Online カルーセル(#150 固有)
 * ========================================================================== */
.sc-lp-teach { color: var(--sc-fg, #f0f2f4); max-width: 1200px; margin-inline: auto; padding: 32px 24px; }
.sc-lp-teach__track { display: flex; gap: 16px; overflow-x: auto; padding: 4px 4px 12px; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
.sc-lp-teach__card {
	flex: 0 0 clamp(240px, 32%, 320px); scroll-snap-align: start;
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: var(--sc-radius-card, 12px); padding: 24px; display: flex; flex-direction: column; gap: 8px;
}
.sc-lp-teach__ctitle { font-size: 17px; font-weight: 700; color: var(--sc-fg, #f0f2f4); }
.sc-lp-teach__cbody { font-size: 14px; line-height: 1.55; color: var(--sc-fg-secondary, #adb3bb); }

/* =============================================================================
 * 4. 結果セクション(3型共通)
 * ========================================================================== */
.sc-lp-result { color: var(--sc-fg, #f0f2f4); max-width: var(--sc-lp-max); margin-inline: auto; padding: 48px 24px; }
.sc-lp-result__head { text-align: center; margin-bottom: 28px; }
.sc-lp-result__eyebrow { display: inline-block; color: var(--sc-primary, #f04b50); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.sc-lp-result__title { font-size: 32px; line-height: 1.2; font-weight: 700; margin-top: 6px; color: var(--sc-fg, #f0f2f4); }
.sc-lp-result__cta { text-align: center; margin-top: 28px; }
.sc-lp-result__empty { text-align: center; color: var(--sc-fg-secondary, #adb3bb); }

/* 4a. カルーセル型 — 既存 sc-disc2 カード renderer を内包(sc-disc-cards.css が装飾) */
.sc-lp-result--carousel .sc-lp-result__carousel { margin-top: 8px; }

/* 4b. アコーディオン型 */
.sc-lp-acc { max-width: 820px; margin: 0 auto; display: flex; flex-direction: column; gap: 10px; }
.sc-lp-acc__item { background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45); border-radius: 10px; overflow: hidden; }
.sc-lp-acc__q {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding: 16px 20px; cursor: pointer; font-weight: 600; font-size: 15px; list-style: none;
}
.sc-lp-acc__q::-webkit-details-marker { display: none; }
.sc-lp-acc__chev { transition: transform .2s ease; color: var(--sc-fg-secondary, #adb3bb); }
.sc-lp-acc__item[open] .sc-lp-acc__chev { transform: rotate(180deg); }
.sc-lp-acc__a { padding: 0 20px 18px; color: var(--sc-fg-secondary, #adb3bb); font-size: 14px; line-height: 1.6; }
.sc-lp-acc__unlock { text-align: center; margin-top: 24px; color: var(--sc-fg-secondary, #adb3bb); font-size: 13px; }
.sc-lp-acc__unlock i { color: var(--sc-primary, #f04b50); margin-right: 6px; }

/* 4c. 料金 + カリキュラム型 */
.sc-lp-price { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; }
.sc-lp-price__card {
	position: relative; flex: 1 1 300px; max-width: 380px;
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: var(--sc-radius-card, 12px); padding: 28px; display: flex; flex-direction: column; gap: 14px;
}
.sc-lp-price__card.is-featured { border-color: var(--sc-primary, #f04b50); }
.sc-lp-price__badge {
	position: absolute; top: -11px; left: 24px; background: var(--sc-primary, #f04b50); color: #fff;
	font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 4px 12px; border-radius: 999px;
}
.sc-lp-price__name { font-size: 18px; font-weight: 700; color: var(--sc-fg, #f0f2f4); }
.sc-lp-price__amount { font-size: 32px; font-weight: 700; }
.sc-lp-price__amount small { display: block; font-size: 13px; font-weight: 500; color: var(--sc-fg-secondary, #adb3bb); margin-top: 4px; }
.sc-lp-price__features { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.sc-lp-price__features li { font-size: 14px; color: var(--sc-fg, #f0f2f4); }
.sc-lp-price__features i, .sc-lp-included i { color: var(--sc-primary, #f04b50); margin-right: 8px; }
.sc-lp-price__card .sc-lp-btn { margin-top: auto; justify-content: center; }

.sc-lp-included { margin-top: 40px; }
.sc-lp-included__title { text-align: center; font-size: 20px; font-weight: 700; margin-bottom: 20px; color: var(--sc-fg, #f0f2f4); }
.sc-lp-included__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; max-width: 820px; margin: 0 auto; }
.sc-lp-included__label { font-size: 15px; font-weight: 700; color: var(--sc-primary, #f04b50); margin-bottom: 12px; }
.sc-lp-included__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.sc-lp-included__col li { font-size: 14px; color: var(--sc-fg, #f0f2f4); }

/* =============================================================================
 * 5. Speak to our Team フォーム(単一ソース)
 * ========================================================================== */
/* #168 3-1: 背景色が無く前後との境目が分かりにくかった。単一ソース([sc_lp_speak_form])
 * なので全6テンプレへ一括反映。elevated パネル色でセクションを帯として分離する。 */
.sc-lp-contact { padding: 56px 24px; color: var(--sc-fg, #f0f2f4); background: var(--sc-bg-bright, #272727); }
.sc-lp-contact__inner { max-width: 720px; margin: 0 auto; }
.sc-lp-contact__title { text-align: center; font-size: 28px; font-weight: 700; margin-bottom: 28px; color: var(--sc-fg, #f0f2f4); }
.sc-lp-form__fields { display: flex; flex-direction: column; gap: 16px; }
.sc-lp-field { display: flex; flex-direction: column; gap: 6px; }
.sc-lp-field label { font-size: 13px; color: var(--sc-fg-secondary, #adb3bb); }
.sc-lp-field input, .sc-lp-field textarea {
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border, #7d7e80); border-radius: 8px;
	padding: 12px 14px; color: var(--sc-fg, #f0f2f4); font-family: var(--sc-font); font-size: 14px;
}
.sc-lp-field input:focus, .sc-lp-field textarea:focus { outline: none; border-color: var(--sc-primary, #f04b50); }
.sc-lp-form__consent { font-size: 11px; color: var(--sc-fg-secondary, #adb3bb); line-height: 1.5; margin: 16px 0; }
.sc-lp-recaptcha {
	display: inline-flex; align-items: center; gap: 10px; background: #fff; color: #555;
	border: 1px solid #d3d3d3; border-radius: 3px; padding: 10px 14px; font-size: 13px;
}
.sc-lp-recaptcha__box { width: 24px; height: 24px; border: 2px solid #c1c1c1; border-radius: 2px; }
.sc-lp-recaptcha__brand { display: flex; flex-direction: column; align-items: center; margin-left: 8px; color: #9aa0a6; }
.sc-lp-recaptcha__brand i { font-size: 18px; }
.sc-lp-recaptcha__brand small { font-size: 9px; }
.sc-lp-contact__submit {
	display: block; margin-top: 20px; background: var(--sc-primary, #f04b50); color: #fff;
	border: 0; border-radius: var(--sc-radius-pill, 32px); padding: 14px 40px; font-weight: 700; font-size: 15px; cursor: pointer;
}

/* =============================================================================
 * #168(2026-07-22 追いFB): "Find your starting point"(診断ウィザード)/
 *   "One program, everything included"(Pricing)セクションの見た目調整。
 *   Figma FP 3866-96321(Content)/ 3866-97007(Pricing)。実描画元は sc-lp-wizard=
 *   build-lp-master.php の Elementor ネイティブ / pricefinal・compare・price=sc-lp.php の
 *   ショートコード。いずれもマークアップ変更不要 → CSS 単一ソースで全テンプレへ反映(migration 不要)。
 * ========================================================================== */
/* (1) カードにシャドウ(暗色地の elevation)。ウィザード質問カード/DAW比較カード/料金カード。 */
.sc-lp-wizard__card,
.sc-lp-compare__card,
.sc-lp-price__card,
.sc-lp-pricefinal__card {
	box-shadow: 0 12px 32px rgba(0, 0, 0, .45);
}
/* Pricing カード枠は Figma(3866-97017)ではニュートラル(赤枠なし)。赤の強調をやめ設計画像に合わせる。 */
.sc-lp-pricefinal__card { border-color: var(--sc-border-dim, #353c45); }
/* (2) 背景の上下に赤いグロー。Figma のマルーン放射光(実測 ≒ rgb(128,43,45)=#802b2d)を
 *   画像書き出しではなく解像度非依存の radial-gradient で再現(上端0% / 下端100%の2バンド)。
 *   セクション自身の背景として敷くので z-index 調整不要=カード等が自然に前面へ描画される。
 *   .sc-lp-section との二重指定で Elementor .e-con(0,1,0)より高い詳細度(0,2,0)を確保。 */
.sc-lp-wizard.sc-lp-section,
.sc-lp-pricefinal.sc-lp-section {
	background:
		radial-gradient(120% 220px at 50% 0%, rgba(128, 43, 45, .42) 0%, rgba(128, 43, 45, .14) 38%, rgba(18, 18, 18, 0) 72%),
		radial-gradient(120% 220px at 50% 100%, rgba(128, 43, 45, .38) 0%, rgba(128, 43, 45, .12) 38%, rgba(18, 18, 18, 0) 72%);
	background-repeat: no-repeat;
}

/* =============================================================================
 * SP(<= 1024px)
 * ========================================================================== */
@media (max-width: 1024px) {
	.sc-lp-hero__title { font-size: 30px; }
	.sc-lp-result__title, .sc-lp-contact__title, .sc-lp-wizard__title { font-size: 24px; }
	.sc-lp-wizard__q { font-size: 20px; }
	.sc-lp-included__cols { grid-template-columns: 1fr; gap: 24px; }
	.sc-lp-price { flex-direction: column; align-items: center; }
	.sc-lp-price__card { max-width: 100%; width: 100%; }
	.sc-lp-wizard__card { padding: 20px; }
	/* Pitch rows stack; media placeholder sits below its text (#168 1-1 SP). */
	.sc-lp-pitch .sc-lp-pitch__row,
	.sc-lp-pitch .sc-lp-pitch__row--reverse { flex-direction: column; gap: 20px; }
	.sc-lp-pitch .sc-lp-pitch__row > .sc-lp-pitch__text,
	.sc-lp-pitch .sc-lp-pitch__row > .sc-lp-pitch__mediawrap { flex-basis: auto; width: 100%; }
	.sc-lp-pitch__media { min-height: 200px; }
	.sc-lp-pitch__media.elementor-widget-image img { min-height: 200px; } /* #207-1 bridge */
	/* Icon row(ptype)SP: 画面幅いっぱいに 3 等分(sc-disc-ptype SP と同じ流儀)。 */
	.sc-lp-hero__icons { display: flex; width: 100%; }
	.sc-lp-hero__icon { flex: 1 1 0; min-width: 0; padding: 0 8px; }
	/* #209 bridge: Icon List 版も同じく 3 等分にする。 */
	.sc-lp-hero__icons.elementor-widget-icon-list { width: 100%; }
	.sc-lp-hero__icons.elementor-widget-icon-list > .elementor-widget-container,
	.sc-lp-hero__icons .elementor-icon-list-items { width: 100%; }
	.sc-lp-hero__icons .elementor-icon-list-item { flex: 1 1 0; min-width: 0; padding: 0 8px; }
	.sc-lp-hero__body { padding: 32px 16px; gap: 12px; }
}

/* =============================================================================
 * #188 Online General — Courses / Paths / Tiers / Hybrid セクション。
 * netlify general-online-platform のアウトライン(issue #188)をダークテーマで再設計。
 * sc-lp スコープのトークン(--sc-bg-bright / --sc-border-dim / --sc-primary)と
 * .sc-lp-result__head / .sc-lp-chip / .sc-lp-btn を再利用。PC/SP 両対応。
 * ========================================================================== */

/* ------ Courses -------------------------------------------------------------- */
.sc-lp-courses { color: var(--sc-fg, #f0f2f4); max-width: 880px; margin-inline: auto; padding: 32px 24px; }
.sc-lp-courses .sc-lp-courses__head { text-align: left; margin-bottom: 20px; }
.sc-lp-courses__body { color: var(--sc-fg-secondary, #adb3bb); font-size: 15px; line-height: 1.6; margin-top: 12px; }
.sc-lp-courses__cta { display: flex; }
.sc-lp-courses__cta .sc-lp-btn i { margin-left: 6px; }
@media (max-width: 767px) {
	.sc-lp-courses { padding: 24px 16px; }
	.sc-lp-courses__cta .sc-lp-btn { width: 100%; justify-content: center; }
}

/* ------ Paths --------------------------------------------------------------- */
.sc-lp-paths { color: var(--sc-fg, #f0f2f4); max-width: 880px; margin-inline: auto; padding: 32px 24px; }
.sc-lp-paths .sc-lp-paths__head { text-align: left; margin-bottom: 20px; }
.sc-lp-paths__intro { color: var(--sc-fg-secondary, #adb3bb); font-size: 15px; line-height: 1.6; margin-top: 12px; }
.sc-lp-paths__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.sc-lp-paths__stages { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.sc-lp-paths__stage {
	display: flex; align-items: flex-start; gap: 16px;
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: 8px; padding: 20px 24px;
}
.sc-lp-paths__num {
	flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
	width: 32px; height: 32px; border-radius: 50%; background: var(--sc-primary, #f04b50);
	color: #fff; font-weight: 700; font-size: 15px;
}
.sc-lp-paths__body { display: flex; flex-direction: column; gap: 6px; }
.sc-lp-paths__stitle { font-size: 18px; font-weight: 700; line-height: 1.3; color: var(--sc-fg, #f0f2f4); }
.sc-lp-paths__desc { font-size: 14px; line-height: 1.55; color: var(--sc-fg-secondary, #adb3bb); }
.sc-lp-paths__tier {
	align-self: flex-start; margin-top: 2px; font-size: 12px; font-weight: 700; line-height: 1.4;
	color: var(--sc-primary, #f04b50); text-transform: uppercase; letter-spacing: .04em;
}
.sc-lp-paths__note {
	margin: 24px 0 0; padding: 16px 20px; border-left: 4px solid #8b7cff; border-radius: 6px;
	background: rgba(255, 255, 255, .04); font-size: 14px; line-height: 1.6; color: var(--sc-fg-secondary, #adb3bb);
}
@media (max-width: 767px) {
	.sc-lp-paths { padding: 24px 16px; }
	.sc-lp-paths__stage { padding: 16px; }
}

/* ------ Tiers (Figma 4016-75719 SP / 4016-76091 PC card language) ------------ */
.sc-lp-tiers { color: var(--sc-fg, #f0f2f4); max-width: 1080px; margin-inline: auto; padding: 48px 24px; }
.sc-lp-tiers__intro { color: var(--sc-fg-secondary, #adb3bb); font-size: 15px; line-height: 1.6; margin: 8px auto 0; max-width: 720px; }
.sc-lp-tiers__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: stretch; }
.sc-lp-tier {
	display: flex; flex-direction: column; gap: 24px;
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: 12px; padding: 40px 24px 32px;
	box-shadow: 0 4px 26px rgba(0, 0, 0, .45);
}
.sc-lp-tier__head { display: flex; flex-direction: column; gap: 6px; }
.sc-lp-tier__eyebrow { color: var(--sc-primary, #f04b50); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.sc-lp-tier__name { font-size: 24px; font-weight: 700; line-height: 1.2; color: var(--sc-fg, #f0f2f4); margin: 0; }
.sc-lp-tier__price { font-size: 40px; font-weight: 700; line-height: 1.1; color: var(--sc-fg, #f0f2f4); margin: 4px 0 0; }
.sc-lp-tier__cycle { font-size: 16px; font-weight: 500; color: var(--sc-fg-secondary, #adb3bb); margin-left: 4px; }
.sc-lp-tier__billing { font-size: 13px; color: var(--sc-fg-secondary, #adb3bb); }
.sc-lp-tier__features { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; flex: 1 1 auto; }
.sc-lp-tier__features li { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.5; color: var(--sc-fg, #f0f2f4); }
.sc-lp-tier__features i { flex: 0 0 auto; margin-top: 3px; color: var(--sc-primary, #f04b50); font-size: 14px; }
.sc-lp-tier__cta.sc-lp-btn { width: 100%; justify-content: center; }
@media (max-width: 1024px) {
	.sc-lp-tiers__grid { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; }
}
@media (max-width: 767px) {
	.sc-lp-tiers { padding: 40px 16px; }
	.sc-lp-tier { padding: 32px 20px 28px; }
	.sc-lp-tier__price { font-size: 32px; }
}

/* ------ Hybrid Program (dark, separate-program treatment) -------------------- */
.sc-lp-hybrid { max-width: 960px; margin-inline: auto; padding: 24px; }
.sc-lp-hybrid__card {
	position: relative; display: flex; flex-direction: column; gap: 20px; overflow: hidden;
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: 12px; padding: 48px 40px;
	box-shadow: 0 4px 26px rgba(0, 0, 0, .55);
}
/* Separate-program の記号として上端に赤アクセントライン(明るいネイビーは流用しない)。 */
.sc-lp-hybrid__card::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--sc-primary, #f04b50); }
.sc-lp-hybrid__eyebrow { color: var(--sc-primary, #f04b50); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.sc-lp-hybrid__title { font-size: 32px; font-weight: 700; line-height: 1.2; color: var(--sc-fg, #f0f2f4); margin: 4px 0 0; }
.sc-lp-hybrid__body { font-size: 15px; line-height: 1.6; color: var(--sc-fg-secondary, #adb3bb); margin: 0; }
.sc-lp-hybrid__stages { display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px; }
.sc-lp-hybrid__stage {
	display: flex; flex-direction: column; gap: 2px; flex: 1 1 0; min-width: 0;
	background: rgba(255, 255, 255, .04); border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: 8px; padding: 14px 16px;
}
.sc-lp-hybrid__stage--nyc { border-color: var(--sc-primary, #f04b50); background: rgba(240, 75, 80, .10); }
.sc-lp-hybrid__stage-name { font-size: 15px; font-weight: 700; color: var(--sc-fg, #f0f2f4); }
.sc-lp-hybrid__stage-mode { font-size: 12px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; color: var(--sc-fg-secondary, #adb3bb); }
.sc-lp-hybrid__stage--nyc .sc-lp-hybrid__stage-mode { color: var(--sc-primary, #f04b50); }
.sc-lp-hybrid__sep { flex: 0 0 auto; align-self: center; color: var(--sc-fg-secondary, #adb3bb); font-size: 14px; }
.sc-lp-hybrid__note { font-size: 14px; line-height: 1.6; color: var(--sc-fg-secondary, #adb3bb); margin: 0; }
.sc-lp-hybrid__cta.sc-lp-btn { align-self: flex-start; }
@media (max-width: 767px) {
	.sc-lp-hybrid { padding: 16px; }
	.sc-lp-hybrid__card { padding: 32px 20px; }
	.sc-lp-hybrid__title { font-size: 26px; }
	.sc-lp-hybrid__stages { flex-direction: column; }
	.sc-lp-hybrid__sep { transform: rotate(90deg); }
	.sc-lp-hybrid__cta.sc-lp-btn { align-self: stretch; width: 100%; justify-content: center; }
}

/* ------ Wizard aside link ("Not sure which tier fits?") ---------------------- */
.sc-lp-wizard__aside { margin: 4px 0 0; font-size: 14px; line-height: 1.5; color: var(--sc-fg-secondary, #adb3bb); text-align: center; }
.sc-lp-wizard__aside a { color: var(--sc-primary, #f04b50); font-weight: 700; text-decoration: underline; }
.sc-lp-wizard__aside a:hover { text-decoration: none; }

/* =============================================================================
 * #188 native 化 bridge — Online General LP
 *
 * courses / paths / tiers / hybrid / callout を shortcode ウィジェットから native
 * Elementor 要素へ置き換えたことで、ウィジェットラッパー層が挟まる。旧 DOM 前提の
 * :491-513 / :696 / :1163-1253 の規則を新 DOM へ橋渡しする。
 *
 * 手当てが必要な理由は 3 パターンしかない:
 *   (A) クラスがウィジェットラッパーに付き、実文字は内側の
 *       `.elementor-heading-title` / `<p>` / `<a.elementor-button>` にある
 *   (B) Elementor 自身の規則が詳細度で勝つ(例 `.elementor-widget-icon-list
 *       .elementor-icon-list-item` = 0,2,0 が `.sc-lp-tier__features li` = 0,1,1 に勝つ)
 *   (C) Elementor がウィジェットに `max-width:100%` 等を per-element CSS で当てる
 * ========================================================================== */

/* ---- (A) 見出し/本文ウィジェットの内側へ typography を継承 ---- */
.sc-lp-paths__stitle .elementor-heading-title,
.sc-lp-paths__num .elementor-heading-title,
.sc-lp-tier__eyebrow .elementor-heading-title,
.sc-lp-tier__name .elementor-heading-title,
.sc-lp-tier__billing .elementor-heading-title,
.sc-lp-hybrid__eyebrow .elementor-heading-title,
.sc-lp-hybrid__title .elementor-heading-title,
.sc-lp-hybrid__stage-name .elementor-heading-title,
.sc-lp-hybrid__stage-mode .elementor-heading-title,
.sc-lp-callout__title .elementor-heading-title {
	font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; margin: 0;
}
.sc-lp-courses__body p,
.sc-lp-paths__intro p,
.sc-lp-paths__desc p,
.sc-lp-paths__tier p,
.sc-lp-paths__note p,
.sc-lp-tiers__intro p,
.sc-lp-tier__price p,
.sc-lp-hybrid__body p,
.sc-lp-hybrid__note p,
.sc-lp-callout__body p {
	font: inherit; color: inherit; margin: 0;
}
/* text-editor ウィジェットのラッパーは font-weight 500 を継承してしまう(旧 <p> は 400 だった。
 * 実測で 400→500 に太くなっていた)。CSS が weight を指定していない本文だけ 400 に戻す。
 * .sc-lp-callout__body(500)と .sc-lp-tier__price(700)は CSS 側で指定済みなので触らない。 */
.sc-lp-courses__body, .sc-lp-courses__body p,
.sc-lp-paths__intro, .sc-lp-paths__intro p,
.sc-lp-paths__desc, .sc-lp-paths__desc p,
.sc-lp-paths__note, .sc-lp-paths__note p,
.sc-lp-tiers__intro, .sc-lp-tiers__intro p,
.sc-lp-hybrid__body, .sc-lp-hybrid__body p,
.sc-lp-hybrid__note, .sc-lp-hybrid__note p { font-weight: 400; }
/* 中央寄せの丸番号は heading ウィジェットなので内側もセンタリングする。 */
.sc-lp-paths__num.elementor-widget-heading > .elementor-widget-container {
	display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;
}

/* ---- (C) Elementor の max-width:100% で潰れる中央寄せ本文を復元 ----
 * 実測で効いていなかった。犯人は `.elementor.elementor .e-con > .elementor-widget
 * { max-width: 100% }`(0,3,0 + 子結合子)で、`.sc-lp-tiers .sc-lp-tiers__intro`(0,2,0)
 * では勝てない。同じ形(コンテナ直下 + .elementor-widget)まで詳細度を上げる。 */
.sc-lp-tiers .e-con > .sc-lp-tiers__intro.elementor-widget {
	max-width: 720px; width: 100%; margin: 8px auto 0;
}

/* ---- コンテナ化した器の display/flex を明示(`.e-con { display:flex }` と同点回避) ---- */
.sc-lp-tiers .sc-lp-tiers__grid.e-con { display: grid; grid-template-columns: repeat(3, 1fr); align-items: stretch; }
@media (max-width: 1024px) {
	.sc-lp-tiers .sc-lp-tiers__grid.e-con { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; }
}
.sc-lp-hybrid .sc-lp-hybrid__stages.e-con { display: flex; flex-direction: row; flex-wrap: wrap; align-items: stretch; }
@media (max-width: 767px) {
	.sc-lp-hybrid .sc-lp-hybrid__stages.e-con { flex-direction: column; }
}
/* ステージは 3 等分(旧 `flex: 1 1 0`)。Elementor は子コンテナに --flex-grow を当てるので
 * 詳細度を上げて上書きする(§4「flex-grow 特異性の罠」と同型)。 */
.sc-lp-hybrid .sc-lp-hybrid__stages > .sc-lp-hybrid__stage.e-con { flex: 1 1 0; min-width: 0; width: auto; }
.sc-lp-hybrid .sc-lp-hybrid__stages > .sc-lp-hybrid__sep { flex: 0 0 auto; align-self: center; }

/* ---- (B) chips = Icon List(inline)を旧 .sc-lp-chip の見た目にする ---- */
.sc-lp-paths__tags { margin-bottom: 24px; }
.sc-lp-paths__tags .elementor-icon-list-items {
	display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none;
}
/* margin は Elementor の `.elementor-widget-icon-list .elementor-icon-list-items.elementor-inline-items
 * .elementor-icon-list-item { margin: 0 8px }`(0,3,0)が勝つので、こちらも 3 クラスに揃える。 */
.sc-lp-paths__tags .elementor-inline-items .elementor-icon-list-item { margin: 0; }
.sc-lp-paths__tags .elementor-icon-list-item {
	display: inline-flex; align-items: center; margin: 0;
	padding: 4px 12px; border-radius: 999px; font-size: 12px; font-weight: 600; line-height: 1.4;
	background: var(--sc-bg-hover-strong, rgba(255,255,255,.08));
	border: 1px solid var(--sc-border-dim, #353c45); color: var(--sc-fg, #f0f2f4);
}
.sc-lp-paths__tags .elementor-icon-list-text { padding: 0; color: inherit; }
.sc-lp-paths__tags .elementor-inline-items .elementor-icon-list-item:not(:last-child):after { content: none; }

/* ---- (B) tier の機能リスト = Icon List(fa-check)を旧 li の見た目にする ---- */
.sc-lp-tier__features { flex: 1 1 auto; }
.sc-lp-tier__features .elementor-icon-list-items {
	display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none;
}
.sc-lp-tier__features .elementor-icon-list-item {
	display: flex; align-items: flex-start; gap: 10px; margin: 0; padding: 0;
	font-size: 14px; line-height: 1.5; color: var(--sc-fg, #f0f2f4);
}
.sc-lp-tier__features .elementor-icon-list-icon { display: flex; flex: 0 0 auto; margin-top: 3px; }
.sc-lp-tier__features .elementor-icon-list-icon i { color: var(--sc-primary, #f04b50); font-size: 14px; }
.sc-lp-tier__features .elementor-icon-list-text { padding: 0; color: inherit; }

/* ---- (A) ボタン: クラスはラッパーに付くので幅/位置は内側の <a> に効かせる ---- */
.sc-lp-tier__cta.elementor-widget-button .elementor-button { width: 100%; justify-content: center; }
.sc-lp-courses__cta.e-con { display: flex; flex-direction: row; justify-content: center; }
/* callout のボタンは .sc-lp-btn とは別デザイン(purple accent の枠線ボタン)。 */
.sc-lp-callout__btn.elementor-widget-button .elementor-button {
	display: flex; align-items: center; gap: 8px; width: 100%;
	background: transparent; border: 1px solid var(--sc-lp-accent, #8b7cff); border-radius: 999px;
	padding: 10px 20px; font-size: 15px; font-weight: var(--sc-fw-bold, 700); line-height: 1.4;
	color: var(--sc-fg, #f0f2f4); text-align: center; justify-content: center;
}
.sc-lp-callout__btn.elementor-widget-button .elementor-button:hover {
	background: rgba(139,124,255,.14); color: var(--sc-fg, #f0f2f4);
}

/* =============================================================================
 * #183 Task1 — Your Path 3 列 + CallOut + バッジ非表示
 * 2 列(セクション一覧 + why in person)から 3 列(Section 1/2/3)へ。列の**上**に
 * CallOut(analog の一文)。各項目は番号もチェックも出さず、区切り線だけのコース名
 * リストにする(issue #183 添付のコンテンツ画像どおり)。
 * ========================================================================== */
.sc-lp-yourpath__cards[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }
/* 3 列目の accent(netlify の cream 相当)。ダークテーマなので色調は既存トークンで表現。 */
.sc-lp-yourpath__col--neutral { --yp-accent: var(--sc-fg-secondary, #adb3bb); }
/* 番号/チェックを出さない列(style=none)。項目は区切り線で分ける。 */
.sc-lp-yourpath__item--plain { display: block; gap: 0; padding-bottom: 12px; }
.sc-lp-yourpath__item--plain + .sc-lp-yourpath__item--plain {
	border-top: 1px solid var(--sc-border-dim, #353c45); padding-top: 12px;
}
.sc-lp-yourpath__items:has(.sc-lp-yourpath__item--plain) { gap: 0; }
.sc-lp-yourpath__item--plain .sc-lp-yourpath__itemtitle { font-size: 16px; font-weight: 500; }
/* CallOut(列の上)。左に accent のアクセントバー = netlify と同じ役割。 */
.sc-lp-yourpath__callout {
	background: var(--sc-bg-bright, #272727);
	border: 1px solid var(--sc-border-dim, #353c45);
	border-left: 8px solid var(--sc-primary, #f04b50);
	border-radius: 8px; margin: 24px 0; text-align: left;
	box-shadow: 0 4px 26px rgba(0, 0, 0, .45);
}
/* ⚠️ 内側の `.elementor-heading-title` に直接書いても、既存 bridge
 * `.sc-lp-yourpath .elementor-widget-heading .elementor-heading-title
 * { font-size: inherit; font-weight: inherit }`(0,3,0)に負ける(実測 16px/400 に化けた)。
 * その bridge は「内側は wrapper を継承する」設計なので、**wrapper 側**に指定する。 */
.sc-lp-yourpath__cotitle {
	font-size: 24px; font-weight: 700; line-height: 1.25; color: var(--sc-fg, #f0f2f4);
}
.sc-lp-yourpath__cobody, .sc-lp-yourpath__cobody p {
	font-size: 15px; font-weight: 400; line-height: 1.6; color: var(--sc-fg-secondary, #adb3bb); margin: 0;
}
@media (max-width: 1024px) {
	.sc-lp-yourpath__cards[data-cols="3"] { grid-template-columns: 1fr; }
	.sc-lp-yourpath__callout { padding: 24px 20px !important; }  /* tree の 32/40 を SP で詰める */
	.sc-lp-yourpath__cotitle { font-size: 20px; }
}

/* =============================================================================
 * #212 — カリキュラムの "Start here" バッジ
 * バッジはビルド時から DOM にあり、既定は非表示。ウィザードが回答に応じて
 * `.sc-lp-curr__level` に `is-start` を付けた時だけ出る(JS は DOM を作らない
 * = JS 無効時は何も出ない)。
 * ========================================================================== */
.sc-lp-curr__starthere { display: none; }
.sc-lp-curr__level.is-start .sc-lp-curr__starthere {
	display: inline-flex; align-items: center; align-self: flex-start;
	margin-bottom: 6px; padding: 3px 10px; border-radius: 999px;
	background: var(--sc-primary, #f04b50); color: #fff;
	font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.4;
}
.sc-lp-curr__level.is-start { border-color: var(--sc-primary, #f04b50); }

/* ============================================================
 * #221 下部追従 CTA(全 LP 共通)
 * ------------------------------------------------------------
 * 実体は Elementor container(.sc-lp-fixedcta)を position:fixed にしたもの。
 * 中身は button ウィジェット(.sc-lp-fixedcta__btn)なので、ラベル / リンク /
 * アイコンは Elementor 上で個別編集できる。
 *
 * 仕様は disciplines hub の追従 CTA(.sc-inst-fixedcta 等)と同一に揃える:
 *   PC = 右下 right:8px / SP(<=1024px) = 下部中央 / 単一ピル / chevron-down /
 *   hover でも白文字維持 / --hide でフェード退避。
 * ⚠️ 右下には Blocksy の .ct-back-to-top と Elementor Pro Floating Buttons が
 *    居る(#196 / #200)。退避量は env(safe-area-inset-bottom) を足した値で揃える。
 * ============================================================ */
.sc-lp-fixedcta {
	position: fixed; z-index: 100;
	right: 8px; left: auto; bottom: calc(16px + env(safe-area-inset-bottom, 0px));
	width: auto; max-width: none;
	transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}
/* Elementor のボタン既定を打ち消してピルにする。親が (0,1,0) なので
 * 子孫スコープを付けて (0,2,0) に上げ、!important は使わない。 */
.sc-lp-fixedcta .elementor-button,
.sc-lp-fixedcta .sc-lp-fixedcta__btn .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 36px; padding: 7px 24px;
	background: var(--sc-primary); color: var(--sc-white);
	border-radius: var(--sc-radius-pill); text-decoration: none; white-space: nowrap;
	font-family: var(--sc-font); font-size: 14px; font-weight: var(--sc-fw-bold); line-height: 1.2;
	box-shadow: 0 6px 20px rgba(0,0,0,.35);
}
.sc-lp-fixedcta .elementor-button:hover {
	color: var(--sc-white);
	background-image: linear-gradient(rgba(255,255,255,.10), rgba(255,255,255,.10));
}
.sc-lp-fixedcta .elementor-button-icon i { font-size: 20px; }
/* JS(assets/js/sc-lp-wizard.js)が連絡フォーム到達時に付ける */
.sc-lp-fixedcta--hide { opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(12px); }

@media (max-width: 1024px) {
	.sc-lp-fixedcta { right: auto; left: 50%; transform: translateX(-50%); }
	.sc-lp-fixedcta--hide { transform: translateX(-50%) translateY(12px); }
}

/* =============================================================================
 * #261 In-person Courses General LP
 *   - ガイダンス文の出し分け(`.sc-lp-guide`)
 *   - 「How the pieces fit」3 段ラダー(`.sc-lp-ladder`)
 *   - ウィザードの「Question N of 3」ラベル(`.sc-lp-wizard__step`)
 * すべて **この LP 専用の新規クラス**。既存クラスには一切触らない
 * (⚠️ `.sc-lp-note` は #185 の補足ノートカードで既に使われているため流用しない)。
 * ========================================================================== */

/* ガイダンス文: 押された回答の `sc-lp-guide--<key>` に一致するものだけ表示。
 * JS off では `.sc-lp-has-js` が付かないので**全部表示のまま = 読めなくならない**
 * (LP 全体で採っているフォールバック方針と同じ)。 */
.sc-lp-guide {
	max-width: 880px; margin: 0; padding: 14px 18px;
	background: rgba(240, 75, 80, .08); border-left: 3px solid var(--sc-primary, #f04b50);
	border-radius: 6px; font-size: 14px; line-height: 1.6; color: var(--sc-fg-secondary, #adb3bb);
}
.sc-lp-guide p:last-child { margin-bottom: 0; }
.sc-lp-has-js .sc-lp-guide { display: none; }
.sc-lp-has-js .sc-lp-guide.is-shown { display: block; }

/* ウィザードの進捗ラベル(Question 1 of 3)。進捗バーの文字版。 */
.sc-lp-wizard__step {
	font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
	color: var(--sc-fg-secondary, #adb3bb);
}

/* How the pieces fit: 3 段のカードを → でつなぐ。矢印は CSS の ::after で描くので
 * Elementor のツリーには**編集する必要のないノードを増やさない**。
 *
 * 🔴 色は上の「native 化 bridge」に `.sc-lp-ladder` を足して初めて効く。
 *   `_css_classes` は **widget ラッパー div** に付き、実テキストは内側の
 *   `.elementor-heading-title` にあるため、ここで `color` を書いても内側には届かず、
 *   Elementor の `.elementor-widget-heading .elementor-heading-title{color:var(--e-global-color-primary)}`
 *   が勝つ。**local では赤・dev では暗色**になり、dev で「見出しが黒で読めない」状態だった(#261 FB-2)。 */
.sc-lp-ladder { max-width: 1040px; margin-inline: auto; }
.sc-lp-ladder__head { max-width: 1040px; margin-inline: auto; }
.sc-lp-ladder__rungs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.sc-lp-ladder__rungs.e-con { display: grid; grid-template-columns: repeat(3, 1fr); }
.sc-lp-ladder__rung {
	position: relative;
	background: var(--sc-bg-bright, #272727); border: 1px solid var(--sc-border-dim, #353c45);
	border-radius: 8px; padding: 20px 22px;
}
.sc-lp-ladder__rung:not(:last-child)::after {
	content: "\f061"; /* fa-arrow-right */
	font-family: "Font Awesome 6 Free"; font-weight: 900;
	position: absolute; top: 50%; right: -28px; transform: translateY(-50%);
	font-size: 16px; color: var(--sc-fg-secondary, #adb3bb);
}
.sc-lp-ladder__rk { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--sc-primary, #f04b50); }
.sc-lp-ladder__title { font-size: 18px; font-weight: 700; line-height: 1.3; color: var(--sc-fg, #f0f2f4); margin: 6px 0 0; }
.sc-lp-ladder__body { font-size: 14px; line-height: 1.55; color: var(--sc-fg-secondary, #adb3bb); margin: 8px 0 0; }
@media (max-width: 1024px) {
	.sc-lp-ladder__rungs, .sc-lp-ladder__rungs.e-con { grid-template-columns: 1fr; gap: 32px; }
	/* SP は縦積みなので矢印を下向きに置き換える。 */
	.sc-lp-ladder__rung:not(:last-child)::after { content: "\f063"; top: auto; bottom: -24px; right: auto; left: 50%; transform: translateX(-50%); }
}


/* =============================================================================
 * #261 追い FB(2026-07-30): LP マスターの「数字の丸」が環境によって楕円に崩れる
 * -----------------------------------------------------------------------------
 * 症状: dev の LP MASTER(629599 Full Program General / 629601 Full Program x Discipline)で
 *   Section 1/2/3 の番号バッジが正円にならず、数字も丸の中央に来ない。
 *   ローカルでは 24×24 の正円で再現しなかった(= 環境差。Elementor のグローバル
 *   typography / inner container の高さが違うと片側だけ伸びる)。
 *
 * 原因の構造: 番号は **HTML / heading ウィジェット**で出しているため、`sc-lp-*__num` は
 *   **widget ラッパー div** に付き、実テキストは内側の `.elementor-widget-container` にある。
 *   ラッパーに width/height を書いただけでは、内側の高さや flex の伸縮で崩れる余地が残る。
 *
 * 対策(環境に依らず正円を保証する):
 *   1. `box-sizing: border-box` + `padding: 5px` … 数字が縁に張り付かない
 *   2. `min-width` / `min-height` + `aspect-ratio: 1/1` … 片側だけ潰れる/伸びるのを防ぐ
 *   3. 内側の `.elementor-widget-container` を flex 中央寄せ + `line-height: 1`
 *      … 数字が左上に寄るのを直す
 * ⚠️ 既存の width/height 指定は残す(見た目のサイズは不変)。ここは崩れ止めだけ。
 * ========================================================================== */
.sc-lp-yourprogram__num,
.sc-lp-items__num,
.sc-lp-curr__num,
.sc-lp-course__num,
.sc-lp-paths__num {
	box-sizing: border-box;
	padding: 5px;
	aspect-ratio: 1 / 1;
	flex: 0 0 auto;
	overflow: hidden;
}
.sc-lp-yourprogram__num { min-width: 24px; min-height: 24px; }
.sc-lp-items__num,
.sc-lp-curr__num,
.sc-lp-course__num,
.sc-lp-paths__num { min-width: 32px; min-height: 32px; }
/* 数字を丸の中央に置く(ウィジェットの内側コンテナが block のままだと左上に寄る)。 */
.sc-lp-yourprogram__num > .elementor-widget-container,
.sc-lp-items__num > .elementor-widget-container,
.sc-lp-curr__num > .elementor-widget-container,
.sc-lp-course__num > .elementor-widget-container,
.sc-lp-paths__num > .elementor-widget-container {
	display: flex; align-items: center; justify-content: center;
	width: 100%; height: 100%; line-height: 1;
}

/* ============================================================
 * #272 [sc_lp_coursemap] — 結果セクションの「個別コース + そのスキル」
 * リファレンス general-studio-lander.netlify.app の `.course` / `.skill-map` 構造に対応。
 * 左カラム = level バッジ / コース名 / For you if / CTA、右カラム = スキル一覧。
 * ⚠️ スキル未入力のコースは `.is-noskills` が付き **1 カラムに落ちる**（空枠を出さない）。
 * ============================================================ */
/* 🔴 幅は **他の LP セクションと同じ定石**（max-width 880px / margin-inline auto /
 * padding 32px 24px）に揃える。最初これを入れておらず、Elementor の
 * `content_width: full` コンテナに入って**幅 1,420px の全幅**になり、
 * 直前の `.sc-lp-yourpath`（880px）と横位置がずれていた（クライアント指摘 2026-08-03）。
 * 個別に数値を持たず、既存セクション（sc-lp-yourpath / sc-lp-curr 等）と同じ値にする。 */
.sc-lp-coursemap { color: var(--sc-fg, #f0f2f4); max-width: 880px; margin-inline: auto; padding: 32px 24px; }
.sc-lp-coursemap__head { margin-bottom: 32px; }
.sc-lp-coursemap__body { margin: 12px 0 0; color: var(--sc-fg-secondary); font-size: 16px; line-height: 1.6; }

.sc-lp-coursemap__group { margin-top: 40px; }
.sc-lp-coursemap__ghead { margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--sc-border-dim, #353739); }
.sc-lp-coursemap__geyebrow {
	display: block; font-size: 14px; font-weight: var(--sc-fw-bold); letter-spacing: .04em;
	text-transform: uppercase; color: var(--sc-primary);
}
.sc-lp-coursemap__gsub { margin: 6px 0 0; color: var(--sc-fg-secondary); font-size: 15px; line-height: 1.6; }

.sc-lp-coursemap__grid { display: flex; flex-direction: column; gap: 16px; }

/* 1 コース = 2 カラム。右のスキル枠は内容量が多いので 1fr / 1fr ではなく左を少し狭くする。 */
.sc-lp-coursemap__course {
	display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 24px;
	padding: 24px; border: 1px solid var(--sc-ev-card-border, #353739);
	border-radius: var(--sc-radius-card, 12px); background: var(--sc-bg-bright);
}
.sc-lp-coursemap__course.is-noskills { grid-template-columns: minmax(0, 1fr); }
/* ⚠️ 解決できなかった slug は枠線を変えて画面上で気づけるようにする（本番反映前の発見用）。 */
.sc-lp-coursemap__course.is-unresolved { border-color: var(--sc-primary); }

.sc-lp-coursemap__left { display: flex; flex-direction: column; gap: 10px; }
.sc-lp-coursemap__level {
	align-self: flex-start; padding: 4px 12px; border-radius: var(--sc-radius-pill, 999px);
	background: var(--sc-bg-hover-strong, rgba(255,255,255,.10)); color: var(--sc-fg-secondary);
	font-size: 12px; font-weight: var(--sc-fw-bold); letter-spacing: .04em; text-transform: uppercase;
}
.sc-lp-coursemap__name { margin: 0; font-size: 22px; font-weight: var(--sc-fw-bold); line-height: 1.25; color: var(--sc-fg); }
.sc-lp-coursemap__name a { color: inherit; text-decoration: none; }
.sc-lp-coursemap__name a:hover { text-decoration: underline; }
.sc-lp-coursemap__who { margin: 0; color: var(--sc-fg-secondary); font-size: 15px; line-height: 1.6; }
.sc-lp-coursemap__who strong { color: var(--sc-fg); }
/* #272 追いFB（2026-08-03）: 講師名 + 経歴の一文。参考 LP は `.instructor`（12.5px / グレー）で
 * **名前だけ濃く太字**（`.instructor span`）。名前は `<b>` で出す（sc_lp_coursemap_instructor_html）。
 * ⚠️ この行は色指定が無いと `.sc-lp-coursemap` の白（--sc-fg）を継いで「For you if」と
 *   同じ強さになる（実測: rgb(240,242,244)）。副情報なので secondary に落とす。 */
.sc-lp-coursemap__instructor { margin: 0; color: var(--sc-fg-secondary); font-size: 13px; line-height: 1.5; }
.sc-lp-coursemap__instructor b,
.sc-lp-coursemap__instructor strong { color: var(--sc-fg); font-weight: var(--sc-fw-bold); }
.sc-lp-coursemap__cta {
	margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: 8px;
	color: var(--sc-primary); font-size: 15px; font-weight: var(--sc-fw-bold); text-decoration: none;
}
.sc-lp-coursemap__cta:hover { color: var(--sc-primary); text-decoration: underline; }

.sc-lp-coursemap__skills {
	padding: 16px 20px; border-radius: 8px;
	background: var(--sc-bg-hover, rgba(255,255,255,.04));
}
.sc-lp-coursemap__skillhead {
	display: block; margin-bottom: 10px; font-size: 13px; font-weight: var(--sc-fw-bold);
	letter-spacing: .04em; text-transform: uppercase; color: var(--sc-fg-secondary);
}
/* リファレンス（general-studio-lander）は**2 カラム + 番号バッジ**（1-3 左 / 4-6 右）。
 * `list-style` を消して `counter` で丸バッジを作る（番号は CSS 側で持つので
 * マークアップは <ol><li> のままにでき、スキル件数が変わっても崩れない）。 */
.sc-lp-coursemap__skills ol {
	margin: 0; padding: 0; list-style: none; counter-reset: scskill;
	display: grid; grid-template-columns: 1fr 1fr; gap: 14px 20px;
}
.sc-lp-coursemap__skills li {
	counter-increment: scskill; position: relative; padding-left: 30px;
	color: var(--sc-fg-secondary); font-size: 14px; line-height: 1.5;
}
.sc-lp-coursemap__skills li::before {
	content: counter(scskill);
	position: absolute; left: 0; top: 1px;
	width: 20px; height: 20px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--sc-primary); color: #fff;
	font-size: 11px; font-weight: var(--sc-fw-bold); line-height: 1;
}
.sc-lp-coursemap__skills li b {
	display: block; margin-bottom: 2px;
	color: var(--sc-fg); font-weight: var(--sc-fw-bold);
	font-size: 12px; letter-spacing: .03em; text-transform: uppercase;
}

/* ============================================================
 * #272 追いFB（2026-08-03 Shu さん）— カード内の「専攻タブ」（DJ Level 3 のみ）
 * ============================================================
 *   > カード内で選択肢があり、こちらをタップするとその Speciality に付随した
 *   > 6 個のスキルに変化する
 *
 * 参考 LP（general-dj-lander）の `.genre-tags button` / `.spec-hint` に対応。
 * 参考 LP は JS で `.skill-map` の innerHTML を組み直すが、こちらは
 * **3 枚すべてを DOM に出して `is-active` で 1 枚だけ見せる**
 * （Elementor 上で各専攻の 6 スキルを個別に編集できる形にするため）。
 *
 * 🔴 `is-active` は**ビルド時に先頭へ焼き込む**ので、CSS は無条件で
 *   `:not(.is-active) { display:none }` を当てられる（= 初回描画で 3 枚が並ぶ FOUC が無い /
 *   JS 無効でも先頭 1 枚が出て崩れない）。#240 の `.sc-lp-honest--js` 方式とは
 *   ここが違う（あちらは「JS 無効なら全部開く」が望ましいコンポーネント）。
 *
 * ⚠️ **MP には実装しない**（クライアント判断 2026-08-03。リファレンスに `.genre-tags` が
 *   あっても実装し直さないこと。詳細は functions/sc-lp.php の preset コメント）。
 * ============================================================ */
.sc-lp-coursemap__tabs { display: flex; flex-wrap: wrap; gap: 6px; align-items: flex-start; }
/* 🔴 ピルの実体は **shortcode 版 = `<button>` 自身 / native 版 = 内側の `.elementor-button`**。
 * `_css_classes` はラッパー div にしか届かない（guardrails §3p / #265）ので、
 * **両方に同じ見た目を当てると native で枠線が二重になる**。実体だけをセレクタに取る。
 * （この「実体だけ狙う」二重セレクタは `sc-design-tokens.css` の `.sc-chip--*` と同じ流儀。
 *   ⚠️ `.sc-chip` 自体は**流用しない**: radius 54px / padding 2px 8px で参考 LP のピル
 *   （radius 20px / padding 4px 12px / 11.5px）と寸法が違い、かつ選択状態の切替が
 *   `--outline` ↔ `--primary` の**2 クラス入れ替え**になって JS が汚れる。） */
button.sc-lp-coursemap__tab,
.sc-lp-coursemap__tab .elementor-button {
	display: inline-flex; align-items: center; padding: 4px 12px;
	border: 1px solid var(--sc-border, #7d7e80); border-radius: var(--sc-radius-pill, 999px);
	background: transparent; color: var(--sc-fg-secondary, #adb3bb);
	font-size: 12px; font-weight: var(--sc-fw-bold); line-height: 1.4;
	letter-spacing: .02em; text-decoration: none; cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
button.sc-lp-coursemap__tab:hover,
.sc-lp-coursemap__tab .elementor-button:hover,
.sc-lp-coursemap__tab .elementor-button:focus {
	background: var(--sc-bg-hover, rgba(255, 255, 255, .06)); color: var(--sc-fg, #f0f2f4); text-decoration: none;
}
/* 選択中。native はラッパーに `is-active` が付くので子孫セレクタで内側へ降ろす。 */
button.sc-lp-coursemap__tab.is-active,
.sc-lp-coursemap__tab.is-active .elementor-button,
.sc-lp-coursemap__tab.is-active .elementor-button:hover,
.sc-lp-coursemap__tab.is-active .elementor-button:focus {
	background: var(--sc-primary); border-color: var(--sc-primary); color: #fff;
}
/* native: ボタンウィジェットのラッパーは**見た目を持たない**（幅も伸ばさない）。 */
.sc-lp-coursemap__tab.elementor-widget-button { flex: 0 0 auto; width: auto; max-width: none; }
.sc-lp-coursemap__tab .elementor-button-wrapper { display: inline-flex; }
.sc-lp-coursemap__spechint {
	margin: 0; color: var(--sc-fg-secondary, #adb3bb); font-size: 12px; line-height: 1.5; opacity: .85;
}
.sc-lp-coursemap__spechint p { margin: 0; }
/* 🔴 選択されていない専攻パネル / CTA は出さない（grid の行が増えないよう display:none）。 */
.sc-lp-coursemap__course--tabs .sc-lp-coursemap__spec:not(.is-active),
.sc-lp-coursemap__course--tabs .sc-lp-coursemap__cta--spec:not(.is-active) { display: none; }
/* 🔴 **Elementor エディタのプレビュー内では 3 枚すべて見せる。**
 * ここが無いと「タブの中身を編集できない」= native 化の目的（クライアントが文言を編集できる）
 * を自分で潰す。JS 側も `body.elementor-editor-active` では初期化しない（#240 と同じ方針）。
 * ⚠️ `display` の戻し先はコンテナ = flex / ボタンウィジェット = inline-flex で違う。 */
body.elementor-editor-active .sc-lp-coursemap__course--tabs .sc-lp-coursemap__spec { display: flex; }
body.elementor-editor-active .sc-lp-coursemap__course--tabs .sc-lp-coursemap__cta--spec { display: inline-flex; }

/* SP: 2 カラムを縦積みにする。#3c のとおり 360px 幅で溢れないよう minmax(0,1fr) を明示。 */
@media (max-width: 900px) {
	.sc-lp-coursemap__course,
	.sc-lp-coursemap__course.is-noskills { grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 20px; }
	.sc-lp-coursemap__name { font-size: 20px; }
	.sc-lp-coursemap__skills ol { grid-template-columns: 1fr; }
	.sc-lp-coursemap { padding: 24px 16px; }
}

/* ============================================================
 * #272 native 化 bridge（[sc_lp_coursemap] → native Elementor 要素）
 * ============================================================
 * クライアント指摘（2026-08-03）で coursemap を native 要素へ分解した結果、
 * **ウィジェットラッパー層が挟まる**ようになった。
 *
 * 🔴 **`_css_classes` はラッパー div に付く。内側の実要素には届かない**（#265 と同型）。
 *   そのため内側の `.elementor-heading-title` / `.elementor-button` が
 *   Elementor のグローバル値を拾ってしまう。実測（native 化直後）:
 *     コース名 h3        rgb(240,75,80) = 赤 / 30px   ← 本来は白 22px
 *     level span         赤             ← 本来はグレー
 *     Six skills 見出し  赤             ← 本来はグレー
 *     CTA a.elementor-button  白文字 / 背景 rgb(105,114,125) / padding 12-24
 *                        ← 本来は「赤いテキストリンク」
 *   → **内側は `inherit` で親（= 我々のクラスが付いたラッパー）に従わせる**。
 *     色やサイズを内側に再指定すると二重管理になるので inherit で橋渡しする。
 *
 * #209 / #207-1 / #184 / #186 と同じ手当て（既存の native 化 bridge と同方針）。
 * ============================================================ */
.sc-lp-coursemap__name .elementor-heading-title,
.sc-lp-coursemap__level .elementor-heading-title,
.sc-lp-coursemap__skillhead .elementor-heading-title,
.sc-lp-coursemap__geyebrow .elementor-heading-title,
.sc-lp-coursemap .sc-lp-result__eyebrow .elementor-heading-title,
.sc-lp-coursemap .sc-lp-result__title .elementor-heading-title {
	color: inherit; font-size: inherit; font-weight: inherit;
	line-height: inherit; letter-spacing: inherit; text-transform: inherit;
}
/* level バッジはラッパーが背景・角丸を持つので、内側はブロックにしない（inline のまま）。 */
.sc-lp-coursemap__level .elementor-heading-title { display: inline; }

/* CTA は「赤いテキストリンク」。Elementor ボタンの既定（塗り + padding）を打ち消す。 */
.sc-lp-coursemap__cta .elementor-button {
	background: transparent; border: 0; padding: 0; border-radius: 0;
	color: inherit; font-size: inherit; font-weight: inherit; fill: currentColor;
}
.sc-lp-coursemap__cta .elementor-button:hover,
.sc-lp-coursemap__cta .elementor-button:focus { background: transparent; color: inherit; text-decoration: underline; }
.sc-lp-coursemap__cta .elementor-button-content-wrapper { gap: 8px; align-items: center; }

/* text-editor は <p> を吐くので余白を殺す（ラッパー側で間隔を作っている）。 */
.sc-lp-coursemap__who p,
.sc-lp-coursemap__instructor p,
.sc-lp-coursemap__gsub p,
.sc-lp-coursemap__body p { margin: 0; }
/* スキル一覧は text-editor 内の <ol>。フォント指定はラッパーから継がせる。 */
.sc-lp-coursemap__skills .elementor-widget-container > ol { font-size: inherit; }
.sc-lp-coursemap__skills li { font-size: 14px; }

/* native では left/skills が Elementor のフレックス子になるため、
 * カード側の grid が効くように子ラッパーの flex を無効化する。 */
.sc-lp-coursemap__course > .sc-lp-coursemap__left,
.sc-lp-coursemap__course > .sc-lp-coursemap__skills { flex: 0 1 auto; min-width: 0; }

/* ============================================================
 * #272 🔴 `.sc-lp-guide--plain` — 出し分けの仕組みだけ借りて**見た目は持たない**器
 * ============================================================
 * クライアント指摘（2026-08-03・エディタのスクショ 2 回目）:
 *   > まだ真ん中に寄せられていないようです。ブラウザサイズ 横 2000px などにしたら分かると思います
 *
 * 真因: 結果パネルの器に `.sc-lp-guide` を流用したこと。
 *   `.sc-lp-guide` は **#261 の「ガイダンス文」コンポーネント**で、それ自体が
 *   `max-width: 880px; margin: 0; padding: 14px 18px; background; border-left: 3px solid`
 *   を持つ**見た目のあるカード**。
 *   → 器が 880px に制限され `margin: 0` で**左寄せに固定**されるため、内側の
 *     `.sc-lp-coursemap`（max-width 880px + margin-inline auto）に中央寄せの余地が無くなる。
 *     広い画面ほど左に寄って見える（2000px で顕著）。
 *
 * ⚠️ 出し分け JS（sc-lp-wizard.js の applyGuide）は **`.sc-lp-guide` クラスで要素を集める**
 *   ので、クラス名は外せない。そこで **`--plain` 修飾子で見た目だけ打ち消す**。
 *   #261 のガイダンス文（`.sc-lp-guide` 単体）は一切変わらない。
 * ============================================================ */
.sc-lp-guide.sc-lp-guide--plain {
	max-width: none; margin: 0; padding: 0;
	background: none; border-left: 0; border-radius: 0;
	font-size: inherit; line-height: inherit; color: inherit;
}

/* ============================================================
 * #272 追いFB（2026-08-03 Shu さん）— 「初心者」経路の説明パネル
 * ============================================================
 *   > 質問一個目（経験があるか）に「No」を押した際は Software の説明が表示され、
 *   > その後にどっちにする？という質問になる形式。
 *   > 現在は一問目に No を答えてもすぐ次の質問がでてきてしまう
 *
 * 参考 LP（general-*-lander）の「Step one: pick your DAW / your software」パネル =
 *   見出し + lede + **2 列比較（`.daw-compare`）** + 入れ子の質問カード
 *   （「Which one sounds like you?」+ 2 択 + 「Still deciding?」）。
 *
 * 2 列比較は既存 `.sc-lp-honest`（#240 で native 化済み）を流用する。ただし参考 LP は
 * **開いた状態**なので、tree 側で `.sc-lp-honest--open` を付けて JS の初期状態を開にする
 * （`assets/js/sc-lp-wizard.js` の #272 ブロック）。
 * ============================================================ */
.sc-lp-wizard__lede { margin-top: 10px; color: var(--sc-fg-secondary, #adb3bb); font-size: 15px; line-height: 1.6; }
.sc-lp-wizard__lede p { margin: 0; }
/* 比較パネルは説明の下に少し離して置く。中身は左寄せ（`__panel` が既に left）。 */
.sc-lp-wizard__card > .sc-lp-honest { margin-top: 20px; }
/* 入れ子の質問カード。区切り線で「説明 → 質問」の順序が読めるようにする。 */
.sc-lp-wizard__subcard {
	margin-top: 28px; padding-top: 24px;
	border-top: 1px solid var(--sc-border-dim, #353c45);
}
.sc-lp-wizard__subq { font-size: 20px; line-height: 1.25; font-weight: 700; color: var(--sc-fg, #f0f2f4); }
/* 「← Back to questions」（参考 LP の `.back-link`）。native Elementor Button で置くため、
 * `_css_classes` はラッパー div に付き、内側 `.elementor-button` が Elementor の既定
 * （塗り + padding、実測 背景 rgb(105,114,125) / 文字白）を拾う。テキストリンクへ戻す。 */
.sc-lp-back.elementor-widget-button { align-self: flex-start; margin-bottom: 8px; }
/* 結果パネル先頭の「戻る」行は**コンテンツ列（880px / padding 24px）に揃える**。
 * 🔴 ウィジェット側に max-width を書いても効かない: Elementor の
 *   `.e-con > .elementor-widget { max-width: 100% }` と**同じ詳細度 (0,2,0)** で、
 *   読み込み順で Elementor が勝つ（実測: 幅 1,440px の全幅になった）。
 *   → **コンテナ（`.e-con`）側で列幅を作る**（`.sc-lp-coursemap` と同じ方式）。
 * 数値は `.sc-lp-coursemap` / `.sc-lp-yourpath` と同じ（個別に持たない）。 */
.sc-lp-coursemap__backrow { max-width: 880px; margin-inline: auto; padding: 24px 24px 0; }
@media (max-width: 900px) {
	.sc-lp-coursemap__backrow { padding: 16px 16px 0; }
}
.sc-lp-back .elementor-button {
	background: transparent; border: 0; padding: 0; border-radius: 0;
	color: var(--sc-fg-secondary, #adb3bb); font-size: 13px; font-weight: 400; fill: currentColor;
}
.sc-lp-back .elementor-button:hover,
.sc-lp-back .elementor-button:focus { background: transparent; color: var(--sc-fg, #f0f2f4); text-decoration: underline; }
.sc-lp-back .elementor-button-content-wrapper { gap: 6px; align-items: center; }
.sc-lp-back .elementor-button-icon { font-size: 11px; }
.sc-lp-wizard__subq .elementor-heading-title {
	color: inherit; font-size: inherit; font-weight: inherit; line-height: inherit;
}
@media (max-width: 767px) {
	.sc-lp-wizard__subq { font-size: 18px; }
}
