/* ============================================================
 * Sound Collective — Home page sections (方式B / Figma 1:1)
 * Home 1514:39586。トークンは sc-design-tokens.css の :root を使用。
 * ============================================================ */

/* ===== HERO (Title Area 1693:28819) ===== */
.sc-hero {
  position:relative; min-height:460px; display:flex; align-items:center; justify-content:center;
  overflow:hidden; background:var(--sc-bg); font-family:var(--sc-font);
  /* 静止画フォールバック(::before)の既定URL。テーマ相対=環境非依存。
     [sc_home_hero] ショートコード版はインラインの --sc-hero-bg で上書きする。
     Elementorネイティブ版はこの既定値で ::before が描画される。 */
  --sc-hero-bg:url('../images/sc-hero-bg.png');
}
.sc-hero::before {
  content:""; position:absolute; inset:0; background-image:var(--sc-hero-bg);
  background-size:cover; background-position:center; filter:blur(4px); mix-blend-mode:lighten; opacity:.30;
}
/* 本番同様の Vimeo 背景動画。静止画(::before)の上・コンテンツ/下部グラデの下に cover 配置。 */
.sc-hero__video { position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.sc-hero__video iframe {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  /* 16:9 を hero ボックスに cover（幅・高さどちらも満たす最大） */
  width:100%; height:100%;
  min-width:177.78vh;   /* 高さ基準で 16:9 幅を確保 */
  min-height:56.25vw;   /* 幅基準で 16:9 高さを確保 */
  border:0; pointer-events:none;
}
.sc-hero::after {
  content:""; position:absolute; left:0; right:0; bottom:0; height:160px;
  background:linear-gradient(to top, #121212 8.7%, rgba(18,18,18,0) 91%);
}
.sc-hero__inner {
  position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:20px;
  max-width:1154px; padding:54px 16px; text-align:center;
}
.sc-hero__logo { width:176px; height:176px; }
.sc-hero__title { width:325px; height:auto; max-width:80%; }
.sc-hero__sub { color:var(--sc-fg); font-weight:var(--sc-fw-bold); font-size:16px; line-height:1.4; margin:0; }

@media (max-width:1024px) {
  .sc-hero__inner { padding:40px 16px; }
  .sc-hero__logo { width:132px; height:132px; }
  .sc-hero__title { width:260px; }
}

/* ===== What Do You Want To Learn? (Frame 206) ===== */
.sc-learn { background:var(--sc-bg); font-family:var(--sc-font); padding-bottom:0; }
.sc-learn__head { text-align:center; padding:48px 16px 0; }
.sc-learn__title { color:var(--sc-fg); font-weight:var(--sc-fw-bold); font-size:40px; line-height:1.2; margin:0 0 8px; }
.sc-learn__sub { color:var(--sc-fg); font-weight:var(--sc-fw-medium); font-size:18px; line-height:1.4; margin:0; }
/* #85: "Start Exploring" CTA(Figma SP 1106-8479 / PC 1514-39650) */
.sc-learn__cta-wrap { margin-top:24px; }
/* #98: 見た目はトークン(.sc-btn .sc-btn--primary .sc-btn--l = Primary/Lの正)に委譲。ここはアイコンサイズのみ */
.sc-learn__cta i { font-size:20px; }
.sc-learn__grid { margin-top:48px; display:grid; grid-template-columns:repeat(3, 1fr); scroll-margin-top:80px; }

.sc-cat { position:relative; min-height:488px; display:flex; align-items:flex-end; padding:40px; overflow:hidden; background:var(--sc-bg-bright); }
.sc-cat::before { content:""; position:absolute; inset:0; background-image:var(--sc-cat-bg); background-size:cover; background-position:center; }
.sc-cat::after { content:""; position:absolute; inset:0; background:#03000c; mix-blend-mode:multiply; opacity:.6; }
.sc-cat__body { position:relative; z-index:1; display:flex; flex-direction:column; justify-content:space-between; gap:8px; width:100%; max-width:400px; min-height:200px; }
.sc-cat__text { display:flex; flex-direction:column; gap:8px; }
.sc-cat__title { color:var(--sc-fg); font-weight:var(--sc-fw-bold); font-size:32px; line-height:1.2; margin:0; }
.sc-cat__desc { color:var(--sc-fg); font-weight:var(--sc-fw-medium); font-size:18px; line-height:1.4; margin:0; }
.sc-cat__chips { display:flex; gap:5px; flex-wrap:wrap; }
.sc-cat__chip { display:inline-flex; align-items:center; gap:4px; background:rgba(255,255,255,.10); border-radius:54px; padding:2px 8px; font-size:14px; font-weight:var(--sc-fw-bold); color:var(--sc-fg); white-space:nowrap; }
.sc-cat__chip i { font-size:14px; }
.sc-cat__cta { align-self:flex-start; display:inline-flex; align-items:center; gap:8px; min-height:48px; padding:0 12px 0 16px; border-radius:32px; background:var(--sc-cat-accent, var(--sc-primary)); color:#0b0d27; font-weight:var(--sc-fw-bold); font-size:18px; text-decoration:none; }
.sc-cat__cta i { font-size:22px; }
.sc-cat__cta:hover { background-image:linear-gradient(rgba(255,255,255,.10), rgba(255,255,255,.10)); }

@media (max-width:1024px) {
  .sc-learn__title { font-size:28px; }
  .sc-learn__grid { grid-template-columns:1fr; margin-top:24px; }
  .sc-cat { min-height:420px; padding:24px; }

  /* #257: 「Explore Studio Engineering」が Galaxy S25 / S10 でピルから溢れて崩れる。
   * 原因(360px 幅で実測): カード内の利用可能幅 312px に対し **1 行に必要な幅が 314px**
   *   = わずか 2px 超過。他の 5 ラベルは 297px 以下なので **この 1 つだけ**折り返し、
   *   `height:48px` 固定だったため 2 行目がピルの外へ出ていた(scrollHeight 54 > clientHeight 48)。
   *   412px 幅の端末(Nothing / S25 Ultra)では 1 行に収まるため再現しなかった。
   * 対策は 2 段構え:
   *   ① 基底の `height:48px` を **`min-height:48px`** にした(折り返しても切れない = 根本対策)
   *   ② SP のみ文字 17px + 左右 padding と gap を詰めて **1 行に収める余裕を 18px 確保**する
   *      (実測: 必要幅 294px ≤ 312px)。端末フォント差(Samsung 既定フォントは幅広)を吸収するため
   *      2px ギリギリではなく余裕を取っている。
   * ⚠️ Figma SP の指定は 18px。**溢れて壊れるより 1px 小さくする方を採った**(要確認事項として issue に記録)。 */
  .sc-cat__cta { font-size:17px; gap:6px; padding:0 10px 0 14px; line-height:1.2; }
  .sc-cat__cta i { font-size:20px; }
}

/* ===== 共通: 白ピルボタン / カルーセルナビ ===== */
/* #98(2026-07-21): トークン非経由の独自ボタンをコンポーネント(.sc-btn の Filled/L)に整合。
 * 寸法=L(min-height44 / padding 7px 20px / radius pill / font18)、配色=Filled(白地/濃色文字、
 * hover は文字→primary)。gap は元のアイコン無しCTAに合わせ据え置き。 */
.sc-btn-pill {
  align-self:flex-start; display:inline-flex; align-items:center; justify-content:center;
  min-height:44px; padding:7px 20px; border-radius:var(--sc-radius-pill); background:var(--sc-white);
  color:var(--sc-btn-filled-text); font-weight:var(--sc-fw-bold); font-size:18px; line-height:var(--sc-lh); text-decoration:none;
}
.sc-btn-pill:hover { color:var(--sc-primary); }
.sc-car__nav { display:flex; gap:8px; align-items:center; }
.sc-car__btn {
  display:inline-flex; align-items:center; justify-content:center; width:35px; height:36px;
  border:0; border-radius:32px; background:var(--sc-white); color:#0b0d27; cursor:pointer; padding:0;
}
.sc-car__btn i { font-size:18px; }
.sc-car__btn:hover { background-image:linear-gradient(rgba(11,13,39,.08), rgba(11,13,39,.08)); }
/* #23/#24 SP: prev/next をトラックの左右端にオーバーレイ配置(スライドショー風)。
 * JS が Testimonial(.sc-testi__row)用に .sc-car ラッパー + .sc-car__nav--overlay を注入する。
 * オーバーレイは SP のみ表示。PC は既存挙動(Instructor=下部の白丸ナビ / Testimonial=ナビ無し)を維持。 */
.sc-car { position:relative; width:100%; align-self:stretch; }
.sc-car__nav--overlay {
  display:none; position:absolute; top:50%; left:0; right:0; transform:translateY(-50%);
  justify-content:space-between; align-items:center; z-index:3; pointer-events:none; padding:0 4px;
}
.sc-car__nav--overlay .sc-car__btn { pointer-events:auto; box-shadow:0 1px 6px rgba(0,0,0,.35); }
/* スクロールバー非表示のトラック */
[data-sc-track] { display:flex; gap:12px; overflow-x:auto; scroll-behavior:smooth; scrollbar-width:none; -ms-overflow-style:none; }
[data-sc-track]::-webkit-scrollbar { display:none; }

/* ===== Instructors (Frame 207) ===== */
.sc-instr { background:var(--sc-bg); font-family:var(--sc-font); }
.sc-instr__inner { display:flex; gap:24px; align-items:flex-start; padding:48px 16px; max-width:1440px; margin:0 auto; }
.sc-instr__intro { flex:0 0 415px; display:flex; flex-direction:column; gap:24px; }
.sc-instr__text { display:flex; flex-direction:column; gap:8px; color:var(--sc-fg); }
.sc-instr__title { color:var(--sc-fg); font-weight:var(--sc-fw-bold); font-size:40px; line-height:1.2; margin:0; } /* #23(a): #F0F2F4 を明示指定(継承依存を解消) */
.sc-instr__desc { font-weight:var(--sc-fw-medium); font-size:18px; line-height:1.4; margin:0; }
.sc-instr__col { flex:1 1 0; min-width:0; display:flex; flex-direction:column; gap:16px; align-items:flex-end; }
.sc-instr__col [data-sc-track] { width:100%; }
.sc-instr-card { flex:0 0 300px; background:var(--sc-bg-bright); border:1px solid var(--sc-border-dim); border-radius:8px; overflow:hidden; } /* #106: border-dim 1px */
.sc-instr-card__pic { aspect-ratio:1/1; width:100%; background:#4d4d4d center/cover no-repeat; border-radius:8px; }
.sc-instr-card { padding:16px; box-sizing:border-box; display:block; text-decoration:none; color:inherit; transition:color .15s ease; } /* #23(c): article→<a>化(詳細ページへリンク) */
.sc-instr-card:hover .sc-instr-card__name { color:var(--sc-primary); } /* #106: hover で名前を primary に */
.sc-instr-card__meta { margin-top:8px; color:var(--sc-fg); }
.sc-instr-card__name { font-weight:var(--sc-fw-bold); font-size:16px; line-height:1.4; margin:0; }
.sc-instr-card__role { font-weight:var(--sc-fw-medium); font-size:14px; line-height:1.4; margin:0; }

/* ===== Hear From Our Students (Frame 208) ===== */
.sc-testi { background:var(--sc-bg); font-family:var(--sc-font); display:flex; flex-direction:column; align-items:center; gap:48px; padding:48px 16px; max-width:1440px; margin:0 auto; }
.sc-testi__title { color:var(--sc-fg); font-weight:var(--sc-fw-bold); font-size:40px; line-height:1.2; margin:0; text-align:center; }
.sc-testi__col { width:100%; display:flex; flex-direction:column; gap:16px; align-items:center; }
.sc-testi__col [data-sc-track] { width:100%; }
.sc-testi-card { flex:0 0 calc((100% - 48px)/3); box-sizing:border-box; background:var(--sc-bg-bright); border-radius:8px; padding:24px; display:flex; flex-direction:column; gap:12px; }
.sc-quote-mark { width:34px; height:32px; display:block; }
.sc-testi-card__body { color:var(--sc-fg); font-weight:var(--sc-fw-medium); font-size:16px; line-height:1.4; margin:0; }
/* #159: quote 長でバラつく meta(写真/名前/コース)を全カードで下端に揃える。
 * [data-sc-track] は display:flex(行)+ align-items:stretch(既定)= カードは行内で等高、
 * .sc-testi-card は flex-direction:column なので meta の margin-top:auto で下寄せされ、
 * 等高カード間で meta のベースラインが揃う。quote 本文(__body)が余白を吸収する必要はない。 */
.sc-testi-card__meta { display:flex; gap:8px; align-items:center; margin-top:auto; }
.sc-testi-card__pic { width:48px; height:48px; flex:0 0 48px; border-radius:38px; background:#4d4d4d center/cover no-repeat; }
.sc-testi-card__who { color:var(--sc-fg); }
.sc-testi-card__name { font-weight:var(--sc-fw-bold); font-size:16px; line-height:1.4; margin:0; }
.sc-testi-card__role { font-weight:var(--sc-fw-medium); font-size:14px; line-height:1.4; margin:0; }

/* ===== Our Facility (1514:41049) ===== */
.sc-facility { position:relative; background-color:var(--sc-bg); font-family:var(--sc-font); overflow:hidden; }
.sc-facility::before {
  content:""; position:absolute; inset:0; background-image:var(--sc-facility-bg); background-size:cover;
  background-position:center; mix-blend-mode:hard-light; opacity:.30; pointer-events:none;
}
/* #25(a): 背景の上にダークオーバーレイを追加(テキスト可読性向上)。::before(bg画像)の上、コンテンツ(z-index:1)の下に自動的に重なる */
.sc-facility::after {
  content:""; position:absolute; inset:0; background:rgba(0,0,0,.45); pointer-events:none;
}
/* #82(revised): home/disciplines は元の2カラム(テキスト横並び画像)。/courses/* のみ1カラム
 * (sc-course-single.css の body.single-courses スコープで上書き)。Figma 1704-16876 */
.sc-facility__inner { position:relative; z-index:1; display:flex; flex-direction:row; gap:24px; align-items:flex-start; padding:48px 16px; max-width:1440px; margin:0 auto; }
.sc-facility__text { flex:1 1 0; min-width:0; display:flex; flex-direction:column; gap:8px; color:var(--sc-fg); }
.sc-facility__title { font-weight:var(--sc-fw-bold); font-size:40px; line-height:1.2; margin:0; }
.sc-facility__desc { font-weight:var(--sc-fw-medium); font-size:18px; line-height:1.4; margin:0; }
.sc-facility__shot { flex:0 0 auto; width:525px; max-width:50%; height:auto; aspect-ratio:1304/738; border-radius:8px; overflow:hidden; }
.sc-facility__shot img, .sc-facility__shot video, .sc-facility__shot iframe {
  width:100%; height:100%; aspect-ratio:1304/738; object-fit:cover; display:block; border-radius:8px; border:0;
}

/* ===== Map (1514:41118) ===== */
/* #27: 静止画像 → Google マップ埋め込み(zoom/scroll可能)。Figma実測(1440x352)のアスペクトに合わせてレスポンシブ */
.sc-map { background:var(--sc-bg); overflow:hidden; position:relative; }
.sc-map__frame { display:block; width:100%; aspect-ratio:1440/352; border:0; }

/* ===== Speak to our Team お問い合わせフォーム (#115: PC 3978-31496 / SP 1134-15234) ===== */
/* フッター直上の CF7 セクション。中身は既存 CF7「Get Info with Sales」を [sc_home_contact] で描画。
 * PC は content 幅 846px(=1440 - 297*2)センタリング、SP は全幅。背景は background-bright。 */
.sc-contact { background:var(--sc-bg-bright); font-family:var(--sc-font); }
/* 全幅化: このセクションは Elementor の boxed コンテナ(.e-con-inner が max-width 1440px)内にあり、
 * 暗い背景バンドが約1296pxで切れて左右に隙間ができる。ビューポート100%まで背景をブリードさせる。
 * width:100vw + 負マージン方式は縦スクロールバー幅ぶん横スクロールが出るため採らず、
 * レイアウト幅を変えない box-shadow(spread 100vw)+ clip-path(上下のみクリップ)で背景だけ全幅に広げる。
 * 入力欄は .sc-contact__inner(846px 中央)を維持。SP でも横スクロールは発生しない。 */
.sc-contact--cf7 { box-shadow:0 0 0 100vw var(--sc-bg-bright); clip-path:inset(0 -100vw 0 -100vw); }
.sc-contact__inner { max-width:846px; margin:0 auto; padding:80px 16px; display:flex; flex-direction:column; align-items:center; gap:24px; }
.sc-contact__title { width:100%; color:var(--sc-fg); font-weight:var(--sc-fw-bold); font-size:32px; line-height:1.2; margin:0; text-align:center; }
.sc-contact__missing { color:var(--sc-fg-secondary); font-size:14px; margin:0; }

/* CF7 出力(.wpcf7-form)を Figma のフォーム様式へ寄せる(sc-events.css の RSVP 第5ウェーブ準拠)。
 * フォームは <label><b>ラベル</b> [input]</label> 構造で、CF7 が各行を <p> でラップする。 */
.sc-contact--cf7 .wpcf7 { margin:0; width:100%; }
.sc-contact--cf7 .wpcf7-form { display:flex; flex-direction:column; gap:12px; width:100%; }
/* dynamic_hidden(display:none div 内)/ hidden ラップは詰める */
.sc-contact--cf7 .wpcf7-form > p:has(> .wpcf7-form-control-wrap > input[type="hidden"]) { display:none; }
.sc-contact--cf7 .wpcf7-form-control-wrap:has(> input[type="hidden"]) { display:none; }
/* 既定(=同意文の段落)は 12px セカンダリ。ラベル付き段落で上書き */
.sc-contact--cf7 .wpcf7-form > p { margin:0; font-size:12px; font-weight:var(--sc-fw-medium); line-height:1.5; color:var(--sc-fg-secondary); }
.sc-contact--cf7 .wpcf7-form > p:has(label) { display:flex; flex-direction:column; gap:4px; color:var(--sc-fg); }
.sc-contact--cf7 .wpcf7-form > p > label { display:flex; flex-direction:column; gap:4px; margin:0; }
/* 🔴 #261: CF7 のフォーム定義内の改行が `<br>` として出力され、label が
 * `display:flex; flex-direction:column` なので **<br> が独立した flex 行になる**。
 * 実測(LP の Speak to our team): `<br>` の高さ 19px + gap 4px×2 = ラベルと入力の間が 31px。
 * #236 で同じ症状を **Book a Tour 専用ラッパー(.sc-space-form-cf7)にだけ**対処していたため、
 * 同じ CF7 を使う他のダークフォーム(LP / home / disciplines / コース詳細)には残っていた。
 * → 共通のダークラッパー側で消す = 単一ソース。明色レガシーページはこのラッパーを持たない。 */
.sc-contact--cf7 .wpcf7-form > p > label > br { display:none; }
.sc-contact--cf7 .wpcf7-form label b { font-size:14px; font-weight:var(--sc-fw-medium); color:var(--sc-fg); }
/* 単一行入力(text / email / tel) */
.sc-contact--cf7 .wpcf7-form input[type="text"],
.sc-contact--cf7 .wpcf7-form input[type="email"],
.sc-contact--cf7 .wpcf7-form input[type="tel"] {
  width:100%; min-height:44px; padding:8px 12px;
  background:rgba(255,255,255,.10); border:1px solid #5d6164; border-radius:8px;
  color:var(--sc-fg); font-family:var(--sc-font); font-size:13px; line-height:1.5; letter-spacing:.02em;
}
/* 🔴 #263: 上のセレクタは `text / email / tel` しか列挙しておらず、**それ以外の型と
 * textarea / select が Blocksy の `--theme-text-color: #000` を継承して黒文字**になる。
 * 実測(dev /nyc-spaces/ Book a Tour): `input[type=date]` が #272727 の地に黒文字で読めない
 * (#236 で date picker 化した項目そのもの)。#226 と同根で、**色指定を持たない要素だけが
 * 取り残される**という同じ構図。
 * 対策: **ダークラッパー(.sc-contact--cf7)配下に限って** 入力系をまとめて指定する。
 *   ⚠️ CF7 全体には当てない。明るい背景のレガシーページ(/book-a-tour-at-sound-collective/ 等)は
 *     このラッパーを持たないので影響しない(#226 / #236 と同じスコープ方針)。
 *   ⚠️ submit は上で別途 var(--sc-white) を当てているので `:not(.wpcf7-submit)` で除外する。 */
.sc-contact--cf7 .wpcf7-form input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
.sc-contact--cf7 .wpcf7-form textarea,
.sc-contact--cf7 .wpcf7-form select { color:var(--sc-fg); }
/* date/time 系はブラウザ既定のインジケータも黒いので明色に寄せる。 */
.sc-contact--cf7 .wpcf7-form input[type="date"],
.sc-contact--cf7 .wpcf7-form input[type="time"],
.sc-contact--cf7 .wpcf7-form input[type="datetime-local"] { color-scheme: dark; }
.sc-contact--cf7 .wpcf7-form input::placeholder,
.sc-contact--cf7 .wpcf7-form textarea::placeholder { color:var(--sc-fg-secondary); }
.sc-contact--cf7 .wpcf7-form input:focus { outline:none; border-color:var(--sc-primary); }
.sc-contact--cf7 .wpcf7-form-control-wrap { display:block; }
/* 送信ボタン = Primary ピル(全幅) */
.sc-contact--cf7 .wpcf7-form input.wpcf7-submit {
  width:100%; min-height:44px; margin-top:8px; padding:7px 12px;
  border:none; border-radius:var(--sc-radius-pill); cursor:pointer;
  background:var(--sc-primary); color:var(--sc-white);
  font-family:var(--sc-font); font-size:18px; font-weight:var(--sc-fw-bold); line-height:1.2;
}
.sc-contact--cf7 .wpcf7-form input.wpcf7-submit:hover { background-image:linear-gradient(rgba(255,255,255,.10), rgba(255,255,255,.10)); }
/* reCAPTCHA(v2 ウィジェットは既定見た目)— 段落余白のみ */
.sc-contact--cf7 .wpcf7-form .g-recaptcha { margin-top:4px; }
/* バリデーション / 応答メッセージ */
.sc-contact--cf7 .wpcf7-not-valid-tip { color:#ff6b6b; font-size:13px; margin-top:4px; }
.sc-contact--cf7 .wpcf7-form input.wpcf7-not-valid { border-color:#ff6b6b; }
.sc-contact--cf7 .wpcf7-response-output { margin:4px 0 0; padding:10px 12px; border-radius:8px; font-size:14px; line-height:1.4; }
.sc-contact--cf7 .wpcf7-spinner { margin:0 8px; }

@media (max-width:1024px) {
  /* Instructors */
  .sc-instr__inner { flex-direction:column; gap:24px; }
  .sc-instr__intro { flex:none; width:100%; }
  .sc-instr__title { font-size:28px; }
  .sc-instr-card { flex:0 0 260px; }
  /* #23 SP: カラム幅を親幅に固定(既存のコンテンツ由来の横伸びバグを解消)し、
   * 既存の白丸ナビをトラック左右端へオーバーレイ配置(prev=左 / next=右, 縦中央)。 */
  .sc-instr__col { position:relative; width:100%; }
  .sc-instr__col .sc-car__nav {
    position:absolute; top:50%; left:0; right:0; transform:translateY(-50%);
    justify-content:space-between; z-index:3; pointer-events:none; padding:0 4px;
  }
  .sc-instr__col .sc-car__btn { pointer-events:auto; box-shadow:0 1px 6px rgba(0,0,0,.35); }
  /* Testimonials(#24: モバイルでも Instructors と同じ横スクロール・オートスライド機構を維持) */
  .sc-testi { gap:24px; }
  .sc-testi__title { font-size:28px; }
  .sc-testi-card { flex:0 0 82%; }
  /* #24 SP: Elementor はこのコンテナを SP で縦積み(--flex-direction:column, ID指定でinline)にするため、
   * 横スライドショーにするには行方向+カード幅を !important で上書きする必要がある。
   * (後方の base 規則 line ~178 と Elementor inline の双方に勝つため) */
  .sc-testi__row { flex-direction:row !important; }
  .sc-testi-card.e-con { flex:0 0 82% !important; }
  /* #24 SP: JS 注入のオーバーレイナビを表示 */
  .sc-car__nav--overlay { display:flex; }
  /* Facility */
  .sc-facility__inner { flex-direction:column; }
  .sc-facility__title, .sc-facility__title .elementor-heading-title { font-size:28px; }
  .sc-facility__shot { flex:none; width:100%; height:auto; aspect-ratio:1304/738; }
  /* Map */
  .sc-map__frame { aspect-ratio:4/3; }
  /* Speak to our Team (#115): SP は全幅・上下 72px(見出しは Figma どおり 32px 維持) */
  .sc-contact__inner { padding:72px 16px; }
}

/* ============================================================
 * Elementor ネイティブ版 (testimonials / facility)
 * Heading/Text/Image/Icon ウィジェット + 上記クラスをGUI編集可能にする用の調整。
 * `_css_classes` はウィジェットの外側 .elementor-widget / コンテナ .e-con に付くため、
 * 内側要素(.elementor-heading-title / p / img)も併せてターゲットする。
 * ============================================================ */
/* --- Facility native --- */
.sc-facility__title .elementor-heading-title { font:inherit; font-weight:var(--sc-fw-bold); font-size:40px; line-height:1.2; color:var(--sc-fg); margin:0; }
.sc-facility__desc, .sc-facility__desc p { color:var(--sc-fg); font-weight:var(--sc-fw-medium); font-size:18px; line-height:1.4; margin:0; }
.sc-facility__text.e-con, .sc-facility__text { flex:1 1 0; min-width:0; } /* 2カラム: テキストは残り幅を占有 */
.sc-facility__shot.elementor-widget { flex:0 0 auto; width:525px; max-width:50%; height:auto; aspect-ratio:1304/738; overflow:hidden; border-radius:8px; }
.sc-facility__shot .elementor-widget-container, .sc-facility__shot .elementor-image, .sc-facility__shot figure { height:100%; margin:0; }
/* --- Testimonials native --- */
.sc-testi__title .elementor-heading-title { font:inherit; font-weight:var(--sc-fw-bold); font-size:40px; line-height:1.2; color:var(--sc-fg); margin:0; text-align:center; }
/* #24: 静的な折り返し行 → Instructors(.sc-instr__track)と同じ横スクロール・自動スライドトラックに変換。
 * JS(sc_carousel_js)が [data-sc-track], .sc-testi__row を対象に自動スクロールを付与する。 */
.sc-testi__row {
  display:flex; flex-direction:row; gap:24px; justify-content:flex-start; flex-wrap:nowrap; width:100%;
  overflow-x:auto; scroll-behavior:smooth; scrollbar-width:none; -ms-overflow-style:none;
}
.sc-testi__row::-webkit-scrollbar { display:none; }
.sc-testi-card.e-con { flex:0 0 calc((100% - 48px)/3); box-sizing:border-box; background:var(--sc-bg-bright); border-radius:8px; }
.sc-testi-card__quote .elementor-icon { color:var(--sc-primary); }
.sc-testi-card__quote svg, .sc-testi-card__quote i { width:34px; height:32px; font-size:32px; color:var(--sc-primary); }
.sc-testi-card__body, .sc-testi-card__body p { color:var(--sc-fg); font-weight:var(--sc-fw-medium); font-size:16px; line-height:1.4; margin:0; }
.sc-testi-card__name .elementor-heading-title { font:inherit; font-weight:var(--sc-fw-bold); font-size:16px; line-height:1.4; color:var(--sc-fg); margin:0; }
.sc-testi-card__role, .sc-testi-card__role p { font-weight:var(--sc-fw-medium); font-size:14px; line-height:1.4; color:var(--sc-fg); margin:0; }
.sc-testi-card__pic .elementor-widget-container, .sc-testi-card__pic figure { margin:0; }
.sc-testi-card__pic img { width:48px; height:48px; border-radius:38px; object-fit:cover; display:block; }
.sc-testi-card__meta { flex-direction:row; align-items:center; flex-wrap:nowrap; }
.sc-testi-card__who { flex:1 1 0; min-width:0; }
.sc-testi-card__pic { flex:0 0 48px; }
.sc-testi-card__quote .elementor-widget-container { display:flex; }
