.shadow-xd {
  box-shadow: 0 3px 6px rgb(from #000 r g b / 16%);
}

.clip-triangle-down {
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.clip-triangle-right {
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}

/* ⚠ **参照0件。新しい実装で使わない**（2026-09-09）★
   overflow-wrap: break-word は **min-content 幅に寄与しない**ので、この class を
   付けた要素は「分割不能な最長のラン」より狭くならず、狭い枠を突き抜ける。
   実際に 320px で /learn/ec-afterschool/ が 344px、トップと /raise/ が 328px になっていた。
   → 見出しに付けるクラスは inc/page-blocks.php の sij_wbr_class() が
     **break-keep + whitespace-pre-wrap + wrap-anywhere**（すべて Tailwind 標準）を返すよう変更した。
   ⚠ この定義を残しているのは、html_raw ブロック（DB）に手で書かれている可能性への保険。
     **レイヤー外なので Tailwind ユーティリティで打ち消せない。併用しないこと。** */
.wbr {
  white-space: pre-wrap;
  overflow-wrap: break-word;
  word-break: keep-all;
}

/* --------------------------------------------------------------------------
   Lenis（慣性スクロール / 2026-09-09）
   --------------------------------------------------------------------------
   node_modules/lenis/dist/lenis.css の内容をそのまま持ち込んだもの。
   **Lenis を更新したら向こうの lenis.css と突き合わせること。**
   ⚠ js/lenis.min.js とセット。片方だけ FTP に上げない。

   クラスは Lenis が <html> に付ける。付き方は次の3つだけ理解していればよい:
     .lenis         … 初期化されている（＝常時）
     .lenis-scrolling / .lenis-smooth … **慣性が走っている最中だけ**（止まると外れる）
     .lenis-stopped / .lenis-locked   … lenis.stop() / lock 中。**現状どこからも呼んでいない**

   ⚠ iframe の pointer-events: none は「慣性が走っている最中だけ」効く（.lenis-smooth が
     一時的なクラスのため）。**これが無いと YouTube の埋め込みの上でホイールを回しても
     ページが動かない**（クロス オリジンの iframe が wheel を飲み、親 window に届かない）。
     front-page.php の VIDEO と template-parts/blocks/videos.php が該当する。
     スクロールが止まれば即座に外れるので、再生ボタンは普通に押せる。
   ⚠ [data-lenis-prevent] は「そこだけ素のスクロールに戻す」印。
     現状の利用者は **template-parts/header/menu.php の展開パネル（overflow-y-auto）1つだけ。**
     付けないと、パネルの上でホイールを回したときに**背後のページが動く。**

   ⚠ **<html> の scroll-smooth は外していない。** Lenis の書き込みは
     scrollTo({ behavior: 'instant' }) なので競合しない。JS が落ちたときと
     prefers-reduced-motion のときのアンカー移動をこれが受ける（＝フォールバック）。
   -------------------------------------------------------------------------- */
html.lenis,
html.lenis body {
  height: auto;
}

.lenis:not(.lenis-autoToggle).lenis-stopped {
  overflow: clip;
}

.lenis [data-lenis-prevent],
.lenis [data-lenis-prevent-wheel],
.lenis [data-lenis-prevent-touch],
.lenis [data-lenis-prevent-vertical],
.lenis [data-lenis-prevent-horizontal] {
  overscroll-behavior: contain;
}

.lenis.lenis-smooth iframe {
  pointer-events: none;
}

.lenis.lenis-autoToggle {
  transition-property: overflow;
  transition-duration: 1ms;
  transition-behavior: allow-discrete;
}

/* --------------------------------------------------------------------------
   フッター写真帯（#footer_photoSplide）の JS 無効時フォールバック
   --------------------------------------------------------------------------
   splide-core.min.css は .splide { visibility: hidden } を持ち、Splide が初期化して
   .is-initialized / .is-rendered を付けるまで中身を隠す。
   フッターの写真帯は全ページの最上部の帯なので、JS が落ちると 211px の空白が残ってしまう。
   → ID セレクタ（.splide より詳細度が高い）で visibility を戻す。
     初期化前・JS 無効時でも .splide__list は flex なので、5枚が横一列に並んで見える
     （＝スライダー化前の見た目と同じ）。溢れは .splide__track の overflow: hidden が受ける。
   ⚠ この1行は footer.php の写真帯とセット。片方を消すなら両方見ること。
   ⚠ #top_firstSplide には意図的に適用していない
     （あちらは fade で重なり配置なので、初期化前の素の状態が崩れるため）。
     ランキング2本も同様に適用外だったが、2026-09-09 に削除済み。
   -------------------------------------------------------------------------- */
#footer_photoSplide {
  visibility: visible;
}

/* --------------------------------------------------------------------------
   SCF 柔軟コンテンツの本文（wysiwyg）用
   --------------------------------------------------------------------------
   エディタが吐く <p> / <ul> / <ol> / <h4> に、
   従来テンプレートで手書きしていたのと同じ見た目を与える。
   Tailwind のクラスをエディタ出力に付けられないため、ここで CSS として持つ。
   -------------------------------------------------------------------------- */

.sij-prose > * + * {
  margin-top: 1rem;
}

.sij-prose h4 {
  font-size: 1.125rem;
  line-height: 1.75rem;
}

/* 見出しの直後だけ詰める（旧テンプレートの h4.mt-4 + p.mt-2 と同じ間隔） */
.sij-prose h4 + * {
  margin-top: 0.5rem;
}

/* 箇条書きは記号を ・ にして、折り返しをぶら下げインデントにする
   （従来テンプレートの ml-4 -indent-4 と同じ見た目） */
.sij-prose ul {
  list-style: none;
}

.sij-prose ul > li {
  margin-left: 1rem;
  text-indent: -1rem;
}

.sij-prose ul > li::before {
  content: "・";
}

/* 番号付きは （1）（2）… 形式。従来テンプレートの ml-10 -indent-10 と同じ */
.sij-prose ol {
  list-style: none;
  counter-reset: sij-ol;
}

.sij-prose ol > li {
  margin-left: 2.5rem;
  text-indent: -2.5rem;
  counter-increment: sij-ol;
}

.sij-prose ol > li::before {
  content: "（" counter(sij-ol) "）";
}

.sij-prose li + li {
  margin-top: 0;
}

.sij-prose strong,
.sij-prose b {
  font-weight: 700;
}

.sij-prose a {
  color: var(--color-blue-800);
  text-decoration-line: underline;
}

.sij-prose a:hover {
  /* 2026-09-10 に新デザイン系統のアクセント色へ差し替え（旧 var(--color-theme1)）。
     通常時の青（--color-blue-800）は依頼元の決定で据え置き。 */
  color: #fa775f;
  text-decoration-line: none;
}
