/* ============================================================
 * Sound Collective — Design Tokens & Components
 * Source of truth: Figma "Color & Font Sheet" (Montserrat / 28 color vars / 7 text styles)
 *   file: fPjY95UhP1I9BIfLJQkB3s  node: 1007:31191
 * これはコード側の単一の真実。Elementor Kit のグローバルカラー/フォントは
 * ここの HEX と一致させること(下の対応表)。
 * ============================================================ */

:root {
  /* ===== Brand / category accents ===== */
  --sc-brand-dj:          #ff9d17; /* DJ (orange) */
  --sc-brand-production:  #f55dff; /* Music Production (magenta) */
  --sc-brand-studio:      #54eb77; /* Studio Engineering (green) */
  --sc-brand-business:    #62d2ff; /* Music Business (cyan) */
  --sc-brand-vocal:       #fffa5f; /* Vocals (yellow) */

  /* ===== Primary & utility ===== */
  --sc-primary:           #f04b50; /* 主要CTA */
  --sc-error:             #ff0000;
  --sc-white:             #f6f6f6;
  --sc-disable:           #adb3bb;

  /* ===== Background ===== */
  --sc-bg:                #121212; /* サイト既定背景(ダーク) */
  --sc-bg-bright:         #272727; /* カード/サーフェス */
  --sc-bg-bright-alpha:   rgba(16,16,16,.8);
  --sc-bg-invert:         #ffffff;
  --sc-bg-hover:          rgba(255,255,255,.03);
  --sc-bg-hover-strong:   rgba(255,255,255,.10);

  /* ===== Border ===== */
  --sc-border:            #7d7e80;
  --sc-border-dim:        #353c45;
  --sc-border-invert:     #f6f6f6;

  /* ===== Foreground (text) ===== */
  --sc-fg:                #f0f2f4; /* 本文/見出しの既定文字色 */
  --sc-fg-secondary:      #adb3bb; /* 補足テキスト */

  /* ===== Button-specific ===== */
  --sc-btn-outline:              #ffffff;
  --sc-btn-outline-disable-text: #7a8492;
  --sc-btn-fill-disable-text:    #949ca7;
  --sc-btn-filled-text:          #0b0d27; /* Filledボタンの濃色文字 */

  /* ===== Typography (Montserrat / line-height 140%) ===== */
  --sc-font:      'Montserrat', sans-serif;
  --sc-fs-2xl:    24px;  /* text-2xl  Bold  */
  --sc-fs-xl:     20px;  /* text-xl   Bold  */
  --sc-fs-lg:     18px;  /* text-sm18 Medium*/
  --sc-fs-md:     16px;  /* text-sm16 / bold版あり */
  --sc-fs-sm:     14px;  /* text-sm14 Medium*/
  --sc-fs-xs:     12px;  /* text-xs   Medium*/
  --sc-lh:        1.4;
  --sc-fw-bold:   700;
  --sc-fw-medium: 500;

  /* ===== Shape ===== */
  --sc-radius-pill: 32px; /* ボタン */
  --sc-radius-card: 12px; /* カード/パネル */

  /* ===== Blocksy theme var override (GitHub #28) =====
   * Blocksy はカスタマイザーのパレット由来の --theme-link-hover-color を
   * :root へ動的インライン<style>で出力する(このファイルより後に <head> へ
   * 挿入されるため、詳細度が同じ :root 同士だと後勝ちでBlocksy側が勝ってしまう)。
   * !important で確実に --sc-primary を勝たせる。 */
  --theme-link-hover-color: var(--sc-primary) !important;
}

/* ============================================================
 * Base — ダークテーマの土台(learn / blocksy-child のみ適用)
 *   Elementor Site Settings → Background でも設定できるが、Blocksy が
 *   背景を制御するため、確実にダークにするためコード側でも指定する。
 *   除外(#182): Tutor LMS フロントダッシュボード(Dashboard/My Profile/
 *   Enrolled Courses 等)はデザイン変更スコープ外。Tutor 本体が dashboard 時
 *   のみ body に付与する `tutor-screen-frontend-dashboard`(実機確認済み。
 *   is_tutor_frontend_dashboard() が真のときだけ・course/lesson single の
 *   `tutor-frontend` や全ページの `tutor-lms` とは別)で除外し、ダッシュボードの
 *   既定背景を保つ。通常ページの暗背景は従来どおり維持。
 * ============================================================ */
/* ★ #190-B 追加除外: `.woocommerce-page`(WooCommerce の 商品/カート/チェックアウト/アカウント)。
 *   Private Lessons の商品移行で WooCommerce を learn で有効化したところ、この暗背景だけが
 *   Woo ページにも漏れ、**文字色は Blocksy のライトパレットのまま**になって実質不可視になった
 *   (実測: `h1.product_title` #111518 on #121212 = コントラスト **1.02:1** /
 *    `p.price` #000000 on #121212 = **1.12:1**。商品名と価格が読めない)。
 *   Tutor ダッシュボード(#182)と同じ「デザイン範囲外のページに暗背景が漏れる」問題なので
 *   同じ対処 = body class の :not() で除外し、Woo ページは素の Blocksy(ライト)に戻す。
 *   `woocommerce-page` を使う理由: 商品/カート/チェックアウト/アカウントの4種にのみ付き、
 *   Tutor ダッシュボードには付かない。`woocommerce-no-js` は全ページに付くので使用不可。 */
body:not(.tutor-screen-frontend-dashboard):not(.woocommerce-page) {
  background-color: var(--sc-bg);
}

/* ============================================================
 * Buttons — Figma "Button" 実装メモ準拠
 *   使い方(2通り):
 *   (A) Elementor ボタンウィジェット → 詳細 → CSSクラス に
 *        「sc-btn sc-btn--primary sc-btn--l」等を付与(クラスは外枠に付く)
 *   (B) 生の <a class="sc-btn sc-btn--primary sc-btn--l">…</a>
 *   Types: primary / filled / outline / ghost / alert   Sizes: l(48) / m(36) / s(28)
 *
 * ※ Elementor はウィジェット外枠にクラスを付けるため、外枠背景は透明化し
 *    内側の <a.elementor-button> 本体にスタイルを当てる(両対応)。
 * ============================================================ */

/* Elementor: 外枠(wrapper)はボタン化しない */
.elementor-widget.sc-btn { background:transparent; box-shadow:none; }
.elementor-widget.sc-btn .elementor-button-wrapper { display:inline-flex; }

/* 基本の見た目: 生<a.sc-btn> と Elementor内側<a.elementor-button> の両方へ */
.sc-btn:not(.elementor-widget),
.elementor-widget.sc-btn .elementor-button {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  width:auto; font-family:var(--sc-font); font-weight:var(--sc-fw-bold);
  line-height:var(--sc-lh); text-decoration:none; cursor:pointer;
  /* #98: Figma 547-5694 の container 12px + LabelWrap 4px + Label 4px を実効左右 20px に集約
     (このコードのボタンには LabelWrap 相当の内側ラッパーが無いため flat 20px で等価再現)。
     アイコン⇔ラベル間は gap:8px(= Figma の LabelWrap4+Label4)を維持。上下は 7px。 */
  padding:7px 20px; border:1px solid transparent;
  border-radius:var(--sc-radius-pill); box-shadow:none;
  transition:background-color .15s ease, color .15s ease, box-shadow .15s ease;
}

/* サイズ (#98: クライアント確定 2026-07-21 — L 高さ44 / M フォント14 / S フォント12 に Figma 547-5694 準拠) */
.sc-btn--l:not(.elementor-widget), .elementor-widget.sc-btn--l .elementor-button { min-height:44px; font-size:18px; }
.sc-btn--m:not(.elementor-widget), .elementor-widget.sc-btn--m .elementor-button { min-height:36px; font-size:14px; }
.sc-btn--s:not(.elementor-widget), .elementor-widget.sc-btn--s .elementor-button { min-height:28px; font-size:12px; }

/* Primary */
.sc-btn--primary:not(.elementor-widget), .elementor-widget.sc-btn--primary .elementor-button { background:var(--sc-primary); color:#f7f7f7; }
.sc-btn--primary:not(.elementor-widget):hover, .elementor-widget.sc-btn--primary .elementor-button:hover { background-image:linear-gradient(rgba(255,255,255,.10),rgba(255,255,255,.10)); color:#f7f7f7; }
/* Filled */
.sc-btn--filled:not(.elementor-widget), .elementor-widget.sc-btn--filled .elementor-button { background:var(--sc-white); color:var(--sc-btn-filled-text); }
.sc-btn--filled:not(.elementor-widget):hover, .elementor-widget.sc-btn--filled .elementor-button:hover { background:var(--sc-white); color:var(--sc-primary); }
/* Outline */
.sc-btn--outline:not(.elementor-widget), .elementor-widget.sc-btn--outline .elementor-button { background:rgba(255,255,255,.06); border-color:var(--sc-btn-outline); color:#eff2f5; }
.sc-btn--outline:not(.elementor-widget):hover, .elementor-widget.sc-btn--outline .elementor-button:hover { background:rgba(255,255,255,.10); color:var(--sc-primary); }
/* Ghost */
.sc-btn--ghost:not(.elementor-widget), .elementor-widget.sc-btn--ghost .elementor-button { background:rgba(255,255,255,.06); color:#eff2f5; }
.sc-btn--ghost:not(.elementor-widget):hover, .elementor-widget.sc-btn--ghost .elementor-button:hover { background:rgba(255,255,255,.10); color:var(--sc-primary); }
/* Alert */
.sc-btn--alert:not(.elementor-widget), .elementor-widget.sc-btn--alert .elementor-button { background:var(--sc-error); color:#f7f7f7; }
.sc-btn--alert:not(.elementor-widget):hover, .elementor-widget.sc-btn--alert .elementor-button:hover { background-image:linear-gradient(rgba(255,255,255,.10),rgba(255,255,255,.10)); color:#f7f7f7; }
/* Disabled */
.sc-btn--disabled:not(.elementor-widget), .elementor-widget.sc-btn--disabled .elementor-button {
  background:rgba(255,255,255,.10); color:var(--sc-btn-fill-disable-text);
  pointer-events:none; cursor:not-allowed; border-color:transparent;
}

/* ============================================================
 * Category accent helpers
 *   例) Elementorボタン: CSSクラス「sc-btn sc-btn--accent sc-accent--dj sc-btn--l」
 * ============================================================ */
.sc-accent--dj         { --sc-accent:var(--sc-brand-dj); }
.sc-accent--production { --sc-accent:var(--sc-brand-production); }
.sc-accent--studio     { --sc-accent:var(--sc-brand-studio); }
.sc-accent--business   { --sc-accent:var(--sc-brand-business); }
.sc-accent--vocal      { --sc-accent:var(--sc-brand-vocal); }
.sc-btn--accent:not(.elementor-widget), .elementor-widget.sc-btn--accent .elementor-button { background:var(--sc-accent, var(--sc-primary)); color:#0b0d27; }
.sc-btn--accent:not(.elementor-widget):hover, .elementor-widget.sc-btn--accent .elementor-button:hover { background-image:linear-gradient(rgba(255,255,255,.10),rgba(255,255,255,.10)); color:#0b0d27; }

/* ============================================================
 * Carousel nav arrows (#109) — 白い円形ボタンに統一(単一ソース)
 *   矢印ナビの型が全サイトで 13箇所に分裂し「白/暗背景/透明枠線」の3系統が
 *   混在していた問題を解消。正 = 白グループ(.sc-disc-car__btn / .sc-car__btn /
 *   .sc-pl-navbtn: bg=白・文字#0b0d27)。ここで暗背景9 + 透明枠線1 の計10クラスを
 *   白に統一する。対象は全て <button> 要素なので `button.` 修飾で詳細度(0,1,1)を確保し、
 *   各ページCSS(0,1,0)に読み込み順(page CSS は sc-design-tokens より後)に依らず勝つ
 *   → !important 不要。hover は白グループ準拠(微暗の overlay グラデ)。
 *   ※ 新規カルーセルは白グループのクラスを使うか、下のセレクタリストに追記すること。
 * ============================================================ */
button.sc-cs-navbtn, button.sc-disc2-navbtn, button.sc-dj-navbtn,
button.sc-mp-navbtn, button.sc-se-navbtn, button.sc-voc-navbtn,
button.sc-mb-navbtn, button.sc-inst-navbtn, button.sc-dl-navbtn,
button.sc-instructor-navbtn {
  background:var(--sc-white); color:#0b0d27; border:0;
}
button.sc-cs-navbtn:hover, button.sc-disc2-navbtn:hover, button.sc-dj-navbtn:hover,
button.sc-mp-navbtn:hover, button.sc-se-navbtn:hover, button.sc-voc-navbtn:hover,
button.sc-mb-navbtn:hover, button.sc-inst-navbtn:hover, button.sc-dl-navbtn:hover,
button.sc-instructor-navbtn:hover {
  background:var(--sc-white);
  background-image:linear-gradient(rgba(11,13,39,.08),rgba(11,13,39,.08));
  color:#0b0d27;
}

/* ============================================================
 * Chip — Figma "Chip" 準拠
 *   pill(radius 54px) / Montserrat Bold 14px / lh1.4
 *   Category: gray / outline / primary / white / error / accent
 *   Size: s / m(28px) / l(36px)
 *   使い方: <span class="sc-chip sc-chip--gray sc-chip--m">Tag</span>
 *           Elementorボタンに付ける場合は下の .elementor-widget.sc-chip 対応で内側<a>に適用
 * ============================================================ */
.sc-chip,
.elementor-widget.sc-chip .elementor-button {
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  font-family:var(--sc-font); font-weight:var(--sc-fw-bold); font-size:14px;
  line-height:var(--sc-lh); white-space:nowrap; text-decoration:none;
  border:1px solid transparent; border-radius:54px; padding:2px 8px;
}
.elementor-widget.sc-chip { background:transparent; }

/* サイズ */
.sc-chip--m:not(.elementor-widget), .elementor-widget.sc-chip--m .elementor-button { min-height:28px; padding:4px 10px; }
.sc-chip--l:not(.elementor-widget), .elementor-widget.sc-chip--l .elementor-button { min-height:36px; padding:8px 10px; }

/* カテゴリ */
.sc-chip--gray:not(.elementor-widget),    .elementor-widget.sc-chip--gray .elementor-button    { background:rgba(255,255,255,.10); color:var(--sc-fg); }
.sc-chip--outline:not(.elementor-widget), .elementor-widget.sc-chip--outline .elementor-button { background:rgba(255,255,255,.10); border-color:var(--sc-border); color:var(--sc-fg); }
.sc-chip--primary:not(.elementor-widget), .elementor-widget.sc-chip--primary .elementor-button { background:var(--sc-primary); color:var(--sc-fg); }
.sc-chip--white:not(.elementor-widget),   .elementor-widget.sc-chip--white .elementor-button   { background:var(--sc-white); color:#0b0d27; }
.sc-chip--error:not(.elementor-widget),   .elementor-widget.sc-chip--error .elementor-button   { background:rgba(243,49,49,.10); color:var(--sc-error); }
/* カテゴリ色のアウトラインchip: sc-chip sc-chip--accent sc-accent--dj 等 */
.sc-chip--accent:not(.elementor-widget),  .elementor-widget.sc-chip--accent .elementor-button  { background:transparent; border-color:var(--sc-accent,var(--sc-primary)); color:var(--sc-accent,var(--sc-primary)); }

/* ============================================================
 * Input / Form fields — Figma "Input" 準拠
 *   bg 白10% / border 1px #7d7e80 / radius 8px / Montserrat 14px Medium
 *   size L(48)/M(36)/S(28)  states default/hover/focus/error/disabled
 *   使い方:
 *   (A) 単体: <input class="sc-input" ...>
 *   (B) Elementorフォーム: フォーム(またはコンテナ)ウィジェットの CSSクラスに「sc-form」を付与
 *       → 内側の入力欄・テキストエリア・selectへ一括適用
 * ============================================================ */
.sc-input,
.sc-form input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.sc-form textarea,
.sc-form select {
  width:100%; box-sizing:border-box;
  background:rgba(255,255,255,.10);
  border:1px solid var(--sc-border);
  border-radius:8px;
  color:var(--sc-fg);
  font-family:var(--sc-font); font-weight:var(--sc-fw-medium);
  font-size:14px; line-height:var(--sc-lh);
  padding:8px 12px; min-height:48px;
  transition:border-color .15s ease, background-color .15s ease;
}
.sc-input::placeholder,
.sc-form input::placeholder,
.sc-form textarea::placeholder { color:var(--sc-fg-secondary); opacity:.8; }

.sc-input:hover,
.sc-form input:hover, .sc-form textarea:hover, .sc-form select:hover { background:rgba(255,255,255,.06); }

.sc-input:focus,
.sc-form input:focus, .sc-form textarea:focus, .sc-form select:focus {
  outline:none; border-color:var(--sc-primary); background:rgba(255,255,255,.10);
}

/* Error(手動クラス or Elementorのエラー) */
.sc-input--error, .sc-input.is-error,
.sc-form .elementor-error input, .sc-form input[aria-invalid="true"], .sc-form textarea[aria-invalid="true"] {
  border-color:var(--sc-error);
}

/* Disabled */
.sc-input:disabled,
.sc-form input:disabled, .sc-form textarea:disabled, .sc-form select:disabled {
  color:var(--sc-disable); border-color:var(--sc-border-dim); opacity:.7; cursor:not-allowed;
}

/* サイズ */
.sc-input--m { min-height:36px; padding:6px 12px; }
.sc-input--s { min-height:28px; padding:4px 10px; }

/* Textarea */
.sc-input--textarea, .sc-form textarea { min-height:160px; }

/* ============================================================
 * Utility text tokens (任意: Elementor で class 付与して使える)
 * ============================================================ */
.sc-text        { font-family:var(--sc-font); color:var(--sc-fg); line-height:var(--sc-lh); }
.sc-text--muted { color:var(--sc-fg-secondary); }
.sc-h-2xl { font-size:var(--sc-fs-2xl); font-weight:var(--sc-fw-bold); line-height:var(--sc-lh); }
.sc-h-xl  { font-size:var(--sc-fs-xl);  font-weight:var(--sc-fw-bold); line-height:var(--sc-lh); }
.sc-h-md  { font-size:var(--sc-fs-md);  font-weight:var(--sc-fw-bold); line-height:var(--sc-lh); }

/* ============================================================
 * Header / Footer / Mega Menu — Figma準拠
 *   Theme Builder のヘッダー/フッター各ウィジェットの CSSクラス欄に付与して使う。
 *   Login ボタンは既存 .sc-btn.sc-btn--outline を利用（ここでは再定義しない）。
 * ============================================================ */
/* Header — Figma Main Header(1675:402)準拠: 半透明ダーク+backdrop blur */
.sc-header { background:rgba(16,16,16,.4); -webkit-backdrop-filter:blur(22px); backdrop-filter:blur(22px); min-height:64px; position:relative; z-index:100; }
.sc-header .elementor-nav-menu .sub-menu { z-index:1000; }
.sc-logo img { width:52px; height:52px; display:block; }

/* ヘッダー内レイアウト(直下3要素): ロゴ=固定 / ナビ=中央で伸長 / util=右端 */
.sc-header { align-items:center; }
.sc-header > .elementor-widget-image { flex:0 0 auto !important; order:1; }
.sc-header > .elementor-widget-image img { width:52px; height:auto; display:block; }
.sc-header > .elementor-widget-nav-menu { flex:1 1 auto !important; order:2; min-width:0; }
/* util(e-con-boxed=全幅)を内容幅に縮めて右端へ */
.sc-header > .e-con { flex:0 0 auto !important; order:3; width:auto !important; max-width:max-content !important; }
.sc-header > .e-con > .e-con-inner { width:auto !important; max-width:max-content !important; margin:0 !important; }

/* Nav(nav-menuウィジェット): Montserrat Bold 14 / ホバー・アクティブで coral 下線 */
.sc-header .elementor-nav-menu { flex-wrap:nowrap; justify-content:center; }
.sc-header .elementor-nav-menu > li > a.elementor-item {
  font-family:var(--sc-font); font-weight:var(--sc-fw-bold); font-size:14px; color:var(--sc-fg);
  position:relative; padding:14px 12px; white-space:nowrap;
}
.sc-header .elementor-nav-menu > li > a.elementor-item:hover,
.sc-header .elementor-nav-menu > li > a.elementor-item.elementor-item-active { color:var(--sc-fg); }
.sc-header .elementor-nav-menu > li > a.elementor-item:hover::after,
.sc-header .elementor-nav-menu > li > a.elementor-item.elementor-item-active::after {
  content:""; position:absolute; left:12px; right:12px; bottom:0; height:4px;
  background:var(--sc-primary); border-radius:8px 8px 0 0;
}

/* Explore Classes ドロップダウン(desktop submenu) をダークパネル化 */
.sc-header .elementor-nav-menu > li.menu-item-has-children { position:relative; }
/* ホバーで確実に展開(Elementor JSに依存しない) */
.sc-header .elementor-nav-menu > li.menu-item-has-children:hover > .sub-menu {
  display:block !important; top:100%; left:0; margin-top:8px;
}
.sc-header .elementor-nav-menu .sub-menu {
  background:var(--sc-bg-bright); border-radius:8px; padding:8px; min-width:280px;
  box-shadow:0 8px 24px rgba(0,0,0,.45);
}
.sc-header .elementor-nav-menu .sub-menu li { position:relative; }
.sc-header .elementor-nav-menu .sub-menu a.elementor-sub-item {
  color:var(--sc-fg) !important; font-family:var(--sc-font); font-weight:var(--sc-fw-bold);
  font-size:14px; padding:12px; border-radius:6px; display:flex; align-items:center; justify-content:space-between;
}
.sc-header .elementor-nav-menu .sub-menu a.elementor-sub-item:hover {
  background:rgba(255,255,255,.06) !important; color:var(--sc-fg) !important;
}
/* Online Only バッジ(メニュー項目クラス sc-online-only に付与) */
.sc-header .sub-menu .sc-online-only > a.elementor-sub-item::after {
  content:"Online Only"; margin-left:8px; font-size:11px; font-weight:var(--sc-fw-bold);
  color:var(--sc-fg); background:var(--sc-bg-bright); border:1px solid var(--sc-border);
  padding:2px 8px; border-radius:32px; white-space:nowrap;
}

/* ヘッダー右のゴーストアイコン(検索/カート) */
.sc-icon-btn { display:inline-flex; align-items:center; justify-content:center; min-height:36px; padding:7px 12px; border-radius:32px; }
.sc-icon-btn i, .sc-icon-btn svg { font-size:20px; color:var(--sc-fg); width:20px; height:20px; }
.sc-icon-btn:hover { background:rgba(255,255,255,.10); }
.sc-nav-link { color:var(--sc-fg); font-weight:var(--sc-fw-bold); position:relative; text-decoration:none; }
.sc-header-icon { color:var(--sc-fg); }

/* ===== SPヘッダー/ドロワー (≤1250px) =====
 * 検索・Login は隠し、カート＋ハンバーガーのみ。nav-menu のモバイルドロップダウンをダーク全幅に。
 * ⚠️ #232(2026-07-28): このブロックは **Elementor nav-menu ウィジェット世代(`.sc-header`)の
 *   旧ヘッダー向けで、現在は描画されない**(実描画元は `[sc_header]` = `.sc-hdr`。dev の
 *   レンダリング HTML に `sc-header` / `sc-nav-link` / `sc-megamenu` / `sc-mobile-drawer` は 0 件)。
 *   `wp-main/bin/build-header-footer.php`(旧世代・`css_classes => 'sc-header'`)を再実行した場合に
 *   だけ効くので、閾値だけ現行(1250px = sc-header-footer.css の SP ブロック)に揃えておく。
 *   **切替の実体を変えたいときに直すのはここではなく `sc-header-footer.css`。** */
@media (max-width:1250px) {
  /* 1行に固定し、ロゴ左・カート+ハンバーガー右 (子は .sc-header 直下) */
  .sc-header { flex-wrap:nowrap !important; align-items:center; }
  .sc-header > .elementor-widget-image { margin-right:auto; flex:0 0 auto; }
  .sc-header > .e-con { order:2; flex:0 0 auto; width:auto; }                     /* util(カート) */
  .sc-header > .e-con > .e-con-inner { width:auto; }
  .sc-header > .elementor-widget-nav-menu { order:3; flex:0 0 auto; width:auto; }
  .sc-header > .elementor-widget-nav-menu .elementor-widget-container { width:auto; }
  /* ドロップダウン(ドロワー)は絶対配置にしてヘッダー幅に影響させない */
  .sc-header .elementor-nav-menu--dropdown { position:absolute; left:0; right:0; top:64px; }
  .sc-header .elementor-menu-toggle { color:var(--sc-fg) !important; }
  /* モバイルドロップダウン(ドロワー) */
  .sc-header .elementor-nav-menu--dropdown,
  .sc-header nav.elementor-nav-menu--dropdown {
    background-color:var(--sc-bg) !important; padding:8px 16px;
  }
  .sc-header .elementor-nav-menu--dropdown a.elementor-item {
    color:var(--sc-fg) !important; font-family:var(--sc-font); font-weight:var(--sc-fw-bold);
    font-size:16px; border-bottom:1px solid var(--sc-border-dim); padding:16px 0;
  }
  .sc-header .elementor-nav-menu--dropdown a.elementor-item:hover { background:transparent !important; color:var(--sc-primary) !important; }
  .sc-header .elementor-nav-menu--dropdown .elementor-item-active { color:var(--sc-primary) !important; }
}

/* Mega menu */
.sc-megamenu { background:var(--sc-bg-bright); padding:24px; border-radius:8px; }
.sc-mega-item { display:flex; justify-content:space-between; align-items:center; color:var(--sc-fg); font-weight:var(--sc-fw-bold); padding:12px 0; text-decoration:none; }
.sc-mega-item:hover { color:#ffffff; }
.sc-mega-back { color:var(--sc-fg-secondary); font-weight:var(--sc-fw-medium); }
.sc-mega-promo { border-radius:var(--sc-radius-card); overflow:hidden; }
.sc-chip--online { background:var(--sc-bg-bright); color:var(--sc-fg); }

/* Footer */
.sc-footer { background:var(--sc-bg); padding:40px 80px; }
.sc-footer-heading { color:var(--sc-fg); font-weight:var(--sc-fw-bold); }
.sc-footer-link { color:var(--sc-fg-secondary); font-weight:var(--sc-fw-medium); text-decoration:none; }
.sc-footer-link:hover { color:var(--sc-fg); }
.sc-footer-muted { color:var(--sc-fg-secondary); }
.sc-social a { color:var(--sc-white); }
.sc-social a:hover { color:var(--sc-primary); }

/* SP(モバイル) */
/* #232: ヘッダー系(旧世代 `.sc-header` / `.sc-nav-link` / `.sc-mobile-drawer`)は 1250px、
 *   フッター系(旧世代 `.sc-footer`)は 1024px に分離。混在で「ナビだけ SP 化」を作らないため
 *   閾値の所属をファイル内で明示しておく(いずれも現行では描画されない旧世代クラス)。 */
@media (max-width:1250px) {
  .sc-nav-link, .sc-header .sc-mega-item { font-size:16px; }
  .sc-mobile-drawer { background:var(--sc-bg); }
}
@media (max-width:1024px) {
  .sc-footer { padding:32px 20px; }
}

/* ============================================================
 * 追加コンポーネント: Tab / Table / Toaster / ToolTip / Dialog / Stepper
 * Figma デザインシステム準拠。
 * ※ Figma上は Table/Toaster/ToolTip/Dialog/Stepper のサンプルが Noto Sans JP
 *   （GiFT汎用UIのJP既定ダミー）だが、SCは英語サイトのため全て Montserrat(--sc-font)に統一。
 * ============================================================ */

/* ---- Tab（下線でアクティブ表示） ---- */
.sc-tabs { display:flex; gap:8px; border-bottom:1px solid var(--sc-border-dim); }
.sc-tab {
  position:relative; display:inline-flex; align-items:center; gap:8px;
  min-height:48px; padding:8px 12px; border:none; border-radius:4px 4px 0 0;
  font-family:var(--sc-font); font-weight:var(--sc-fw-bold); font-size:16px; line-height:1.4;
  color:var(--sc-fg-secondary); background:transparent; cursor:pointer; text-decoration:none;
}
.sc-tab:hover { color:var(--sc-primary); background:rgba(255,255,255,.10); }
.sc-tab--active { color:var(--sc-primary); }
.sc-tab--active::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--sc-primary); }

/* ---- Table ---- */
.sc-table { width:100%; border-collapse:collapse; font-family:var(--sc-font); color:var(--sc-fg); }
.sc-table th { height:34px; padding:0 12px; text-align:left; font-weight:var(--sc-fw-bold); font-size:12px; letter-spacing:.04em; }
.sc-table td { padding:12px; font-weight:var(--sc-fw-medium); font-size:13px; letter-spacing:.04em; background:var(--sc-bg-bright-alpha); border-bottom:1px solid var(--sc-border); }
.sc-table-header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 0; }
.sc-table-header__count, .sc-pagination { color:var(--sc-fg-secondary); font-size:12px; }
.sc-pagination { display:flex; align-items:center; gap:8px; }

/* ---- Toaster（半透明＋blur） ---- */
.sc-toast {
  width:508px; max-width:100%; display:flex; align-items:flex-start; gap:12px;
  padding:12px; border-radius:12px; background:rgba(255,255,255,.10);
  -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px);
  font-family:var(--sc-font); color:var(--sc-fg);
}
.sc-toast__content { display:flex; flex-direction:column; gap:3px; flex:1; }
.sc-toast__title { font-weight:var(--sc-fw-bold); font-size:16px; }
.sc-toast__text { font-weight:var(--sc-fw-medium); font-size:13px; }
.sc-toast__close { width:32px; height:32px; display:inline-flex; align-items:center; justify-content:center; background:none; border:none; color:var(--sc-fg); cursor:pointer; }

/* ---- ToolTip ---- */
.sc-tooltip {
  position:relative; display:inline-flex; align-items:center; gap:12px;
  padding:12px; border-radius:12px; background:rgba(255,255,255,.10);
  -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px);
  font-family:var(--sc-font); font-weight:var(--sc-fw-medium); font-size:13px;
  color:var(--sc-fg); max-width:200px;
}
.sc-tooltip__arrow { position:absolute; left:50%; transform:translateX(-50%); width:26px; height:8px; background:inherit; }
.sc-tooltip__arrow--bottom { bottom:-8px; clip-path:polygon(0 0,100% 0,50% 100%); }
.sc-tooltip__arrow--top { top:-8px; clip-path:polygon(50% 0,0 100%,100% 100%); }

/* ---- Dialog（400/560/880） ---- */
.sc-dialog {
  display:flex; flex-direction:column; overflow:hidden; border-radius:12px; width:400px; max-width:100%;
  background:var(--sc-bg-bright-alpha); -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px);
  font-family:var(--sc-font); color:var(--sc-fg);
}
.sc-dialog--w560 { width:560px; }
.sc-dialog--w880 { width:880px; }
.sc-dialog__title { min-height:56px; display:flex; align-items:center; padding:8px 20px; font-weight:var(--sc-fw-bold); font-size:16px; }
.sc-dialog__content { padding:0 20px 16px; font-weight:var(--sc-fw-medium); font-size:13px; }
.sc-dialog__actions { display:flex; justify-content:flex-end; gap:8px; padding:4px 20px 20px; }

/* ---- Stepper ---- */
.sc-stepper { display:flex; align-items:center; }
.sc-stepper--vertical { flex-direction:column; align-items:flex-start; }
.sc-step { display:inline-flex; align-items:center; gap:8px; }
.sc-step__symbol {
  width:24px; height:24px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%;
  border:2px solid var(--sc-border); color:var(--sc-fg); background:transparent;
  font-family:var(--sc-font); font-weight:var(--sc-fw-medium); font-size:12px;
}
.sc-step__symbol--active { border-color:var(--sc-primary); color:var(--sc-primary); box-shadow:0 0 0 4px rgba(240,75,80,.20); }
.sc-step__trail { width:96px; height:2px; background:var(--sc-border); }
.sc-step__trail--active { background:var(--sc-primary); }
.sc-step__trail--dotted { height:0; background:none; border-top:3px dotted var(--sc-border); }
.sc-step__trail--dotted.sc-step__trail--active { border-top-color:var(--sc-primary); }
.sc-step__label { font-family:var(--sc-font); font-size:14px; color:var(--sc-fg-secondary); }
.sc-step__label--active { color:var(--sc-fg); }
.sc-stepper--vertical .sc-step__trail { width:2px; height:32px; }

/* カテゴリチップのリンク化(下線除去) */
.sc-disc-chip, [class*="-fchip"] { text-decoration: none; }

/* #65 SC Subscription Banner(保存テンプレ)の外形サイズ・中央寄せ・上マージンのみ。
 * Elementor のコンテナには max-width コントロールが無く、margin コントロールは "auto" を
 * 出力できない(autopx になり無効化される)ため、この 1 ルールだけテーマ CSS に置く。
 * 色/角丸/余白/文字/レイアウトは Elementor 設定側(=UI 編集可能)に保持している。 */
/* !important は Elementor の .e-con-full{max-width/…} (同スコアだが後読み込み) に勝つため。 */
.sc-sub-banner { width: 100%; max-width: 876px !important; margin: 32px auto 0 !important; }
@media (max-width: 1024px) { .sc-sub-banner { margin-top: 24px !important; } }

/* 404 ページのコントラスト修正。Blocksy の no-results は本文/検索フォームを黒文字で描画するが、
 * サイト背景はダークのため読めない(見出し h1 は白で可読)。ダーク背景に合わせて明色に上書きする。
 * グローバル enqueue の本ファイルで body.error404 に限定して当てる(通常ページに影響しない)。 */
/* 実描画元は .ct-container > .ct-no-results > (.hero-section > .entry-header, .entry-content)。
 * .ct-no-results に色を当てても、Blocksy の page-title.min.css が
 * `.entry-header .page-description { color: var(--theme-text-color) }`(=このスコープでは黒)
 * を .page-description に直接当てるため、祖先の継承色に勝って黒のまま残る(dev実測 rgb(0,0,0))。
 * → 各テキスト要素へ直接、かつ Blocksy より高い詳細度で明色を当てる(body.error404 前置で担保)。 */
body.error404 .ct-no-results,
body.error404 .ct-no-results p,
body.error404 .ct-no-results .entry-content,
body.error404 .ct-no-results .entry-header,
body.error404 .ct-no-results .page-title,
body.error404 .ct-no-results .page-description,
body.error404 .ct-no-results .hero-section { color: var(--sc-fg, #f0f2f4); }
body.error404 .ct-no-results a { color: var(--sc-primary, #e5484d); }
body.error404 .ct-no-results input[type="search"],
body.error404 .ct-search-form-controls input {
	color: var(--sc-fg, #f0f2f4);
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid var(--sc-border, #424446);
}
body.error404 .ct-no-results input::placeholder { color: rgba(240, 242, 244, 0.6); }
body.error404 .ct-no-results .ct-search-form-controls svg,
body.error404 .ct-no-results button { color: var(--sc-fg, #f0f2f4); fill: var(--sc-fg, #f0f2f4); }
