/*
Theme Name: artv01
Theme URI: https://artv01.com/
Description: TimeWaver×NLP（Artivolve）のサイト。Twenty Twenty-Five の子テーマ。芯＝「無意識を識る」（2026-10-01 渡邊さん「場所」を外す）。規則＝この場所は扉の向こう側にあるので、最後まで明るく、何も足さない。
Author: Artivolve（渡邊正徳）
Author URI: https://artv01.com/
Template: twentytwentyfive
Version: 0.16.1
Requires at least: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: artv01
*/

/* ==========================================================================
   0. 前提
   - 色・書体・余白の値は theme.json（--wp--preset--* として出る）。ここでは値を再定義しない
   - 規則（20260914_デザイン方針_v2.md §5）
     1. ページ全体が同じ白。下へ行っても暗くならない
     2. 意味を持つ色（赤＝悪い／緑＝良い）を使わない
     3. 大胆さは扉の動画だけ。ほかに動きも装飾も足さない
     4. 強さは文字の組み方だけで出す
   ========================================================================== */

/* Windows の游ゴシックは既定が細いので、本文を Medium にする（A26 の決定） */
@supports (font-weight: 500) {
  body { font-weight: 500; }
}

/* キーボード操作の枠＝扉色で太め（白の上で約8:1） */
:focus-visible {
  outline: 3px solid var(--wp--preset--color--tobira);
  outline-offset: 3px;
}

/* 最初のフォーカス対象＝本文への飛び先 */
.artv-skip {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100;
  background: var(--wp--preset--color--sumi);
  color: var(--wp--preset--color--hikari);
  padding: 0.75rem 1.25rem;
  text-decoration: none;
}
.artv-skip:focus { left: 0; }

/* ==========================================================================
   1. 扉の1画面（signature）
   正本＝ops/decision-registry.md §12e「2026-09-19 確定」
   動画＝services/timewaver/hp/assets/20260919_扉_動画_5秒.mp4（5.00秒・無音・1回再生）
   ========================================================================== */

/* 🔴 扉は画面のいちばん上から始まる。
   WordPress は `.wp-site-blocks` の子にブロック間の余白（block-gap）を入れ、
   「最初の子」だけ 0 にする。だがスキップリンク（本文へ）を扉より前に置いているので、
   扉が2番目の子になり 16px の隙間が空いていた（2026-09-20 渡邊さん指摘・実測で確認）。
   ★ スキップリンクはアクセシビリティ上いちばん前に要るので、こちらで打ち消す。 */
.wp-site-blocks > .tobira { margin-block-start: 0; }
/* 🔴 2026-09-29 ヘッダーを扉の上へ（渡邊さん決定）。
   ヘッダーが2番目の子になるので block-gap を打ち消し、扉はヘッダーと扉で1画面に収まる高さにする */
.wp-site-blocks > header.wp-block-template-part { margin-block-start: 0; }
:root { --artv-hdr: 107px; } /* 実測 9/29＝PC 1440・スマホ 390 とも 106.6px */
.wp-site-blocks > header.wp-block-template-part + .tobira { height: calc(100svh - var(--artv-hdr, 0px)); }

.tobira {
  position: relative;
  /* 🔴 100vh は使わない（モバイルのURLバーで変動する）。svh＝いちばん小さい高さで固定する
     → 「隠れる」も「スクロール中に揺れる」も起きない */
  height: 100svh;
  min-height: 420px;
  overflow: hidden;
  background: var(--wp--preset--color--hikari);
  /* 読み込み中に高さが動かない（CLS を 0 にする） */
  contain: layout paint;
  /* 🔴 芯の中央寄せは flex で行う。
     transform: translate(-50%,-50%) だと縦書きの行の中心と噛み合わず、
     9/19 の実測で 16px 下にずれた（font-size に比例するので px で補正しても直らない） */
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 動画（扉・浜）と、その代わりに出す静止画は同じ場所に重ねる */
.tobira__door,
.tobira__wave,
.tobira__still {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;          /* スマホ（9:16）は素材と一致するので切れない */
  object-position: center;
  display: block;
  /* 装飾を足さない（規則3）＝影も角丸も付けない */
}

/* 🔴 PCの横長：cover で敷くと扉の上端と光の筋が切れる（web-architect 指摘1）
   → 引き伸ばさず「白の中の縦の窓」として置く。地が白・動画の最後も白なので左右の余りが見えない
   ⚠️ 1920×1080 で高さ100%にすると幅は画面の約32%。「スマホを貼った」ように見えないかは未決（9/21 判断） */
/* 🔵 2026-09-20 ＝ PC用に 16:9 の動画を作り直したので、PCでも cover のまま。
   （9:16 を 16:9 に cover すると縦の65%が切れるので、以前は contain にしていた） */

/* ── 扉 → 浜（ループ）の受け渡し
   扉の最後は真っ白（255,253,254 実測）。浜も明るいので、重ねて交代すると
   「白の中から浜が現れる」になる＝2026-09-19 に渡邊さんが求めた形 */
.tobira__door,
.tobira__wave {
  transition: opacity 1.2s ease-out;
}
.tobira__wave { opacity: 0; }        /* 最初は見えない */
.tobira.is-wave .tobira__door { opacity: 0; }
.tobira.is-wave .tobira__wave { opacity: 1; }

/* 動きを減らす設定の人は、浜も動かさない */
@media (prefers-reduced-motion: reduce) {
  .tobira__wave { display: none; }
}

/* 動画が再生されない人に出す1枚（既定では隠す）
   🔴 poster（0秒目＝閉じた扉）とは別物。こちらは「開きかけ＋光」＝閉ざされた場所に見せないため */
.tobira__still { display: none; }

/* 動きを減らす設定の人＝静止画に差し替える（JS不要） */
@media (prefers-reduced-motion: reduce) {
  .tobira__door { display: none; }
  .tobira__still { display: block; }
}

/* 自動再生が始まらなかったとき（低電力モード・アプリ内ブラウザ）＝JSがこの印を付ける
   ⚠️ prefers-reduced-motion とは別の経路。CSSだけでは判定できない */
.tobira.is-no-autoplay .tobira__door,
.tobira.is-no-autoplay .tobira__wave { display: none; }
.tobira.is-no-autoplay .tobira__still { display: block; }

/* 動画の最後の白を、ページの白へ受け渡す
   🔴 値をそろえるのではない（圧縮と端末の色管理でずれる）。下に白を敷いて動画側を消す */
.tobira::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 16svh;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, #fff 82%);
  pointer-events: none;        /* クリックを通す */
  z-index: 1;
}

/* ── 芯「無意識を識る場所」
   🔴 HTML に <h1> として最初から在る（JSで後から挿さない）
      ＝AIクローラ・検索・読み上げ・JS切りでも存在する
   🔴 縦書き（A27-2）＝扉が開いた真ん中の縦の光の筋に文字が立つ
   🔴 大きさは高さ基準。8文字 × 1.22em（字送り .22em を含む）が画面高さの 55% に収まる
      ＝ vw で決めると横長画面・高さの低いノートで溢れる（web-architect 指摘6） */
.tobira__shin {
  position: relative;   /* 中央寄せは親の flex に任せる */
  z-index: 2;
  margin: 0;
  writing-mode: vertical-rl;
  /* 🔴 text-orientation: upright は付けない。
     日本語は既定（mixed）でも正立するのに、upright にすると行の中心が
     0.43em ほど下へずれる（9/19 実測＝スマホ21px / PC21.5px で font-size に比例）。
     ラテン文字を正立させたいときだけ使うもの */
  font-family: var(--wp--preset--font-family--mincho);
  /* 🔴 芯の「強さ」を落とす（2026-09-20 渡邊さん指摘「文字が強い感じがします」）
     ① 色  ＝ 墨(#22262A) → 薄墨(#5E666A)。★ これがいちばん効く（墨のまま細くしても強いままだった）
              浜（明るさ約200）の上でコントラスト 3.58:1 ＝ 大きい文字の基準 3:1 を満たす
     ② 太さ ＝ 500 → 400。Shippori Mincho **B1 はもともと太めの明朝**なので、Regular で十分立つ
     ③ 字間 ＝ .22em → .30em。縦書きの明朝は字間を開けるほど格と余裕が出る（書籍の扉の組み方）
     ⚠️ 字間を広げたぶん、高さの計算式も 9.76 → 10.4 に直す（8文字 × 1.30em） */
  font-weight: 400;
  color: var(--wp--preset--color--usuzumi);
  font-size: clamp(24px, calc(55svh / 10.4), 52px);
  letter-spacing: 0.30em;
  /* 縦書きの letter-spacing は最後の字の後ろにも付く＝見た目の中心が下にずれる。その分を戻す。
     🔴 vertical-rl では inline軸＝縦（上→下）／block軸＝横（右→左）。
        最初 margin-block-end で書いたら「横」が縮んで、芯が左に10.5pxずれた（9/19 実測）。
        字送りの余りは inline軸に出るので margin-inline-end が正しい */
  margin-inline-end: -0.30em;
  /* 🔴 縦書きの行の中心が、画面の中心より 0.44em 下に来る（9/19 実測）。
     flex の中央寄せでも transform の中央寄せでも同じだけずれ、
     text-orientation を外しても変わらなかった＝原因は未解明。
     ⚠️ font-size に比例する（スマホ 21px／PC 21.5px）ので em で補正する。
     ★ 直った理由が分かっていないので、ブラウザを変えたら必ず測り直す */
  transform: translateY(-0.44em);
  white-space: nowrap;
  /* 芯は 3.5秒の時点でも読める（実測コントラスト 5.2:1）＝遅らせない。
     🔴 既定は「見えている」。演出で遅らせるときだけ上書きする（Progressive Enhancement） */
  opacity: 1;
}

/* ── 芯は「光が入ってから現れる」（2026-09-20 渡邊さん指摘）
   🔴 0秒目の背景は RGB 4,1,5（ほぼ真っ黒）。墨の文字とのコントラストは 1.30:1 で、
      基準の 3:1 を大きく下回る＝最初から置いても「読めない文字が在る」だけだった。
      渡邊さんの絵（A23）＝「最終的に真っ白 → **そこに** 無意識を識る場所 **が描かれる**」。
   🔴 出方は「静かなフェードイン」一択。1文字ずつ出す・降りてくる・光る は
      規則3（大胆さは扉の動画だけ。ほかに動きも装飾も足さない）に違反する。
      ★ 扉が動いているのだから、文字は動かない。「無かったものが在る」だけ。
   ⚠️ `js-delay-shin` は JS が付ける。JS が動かない環境では最初から見えたまま＝芯が消えない */
/* 🔴 出方（2026-09-20）＝「ふわっと」の実体は長さとカーブ。
   ease-out は「速く始まってゆっくり終わる」＝出現の瞬間が速く、気づかれてしまう。
   ★ ease-in（ゆっくり始まる）で 2.2秒かけると「気づいたら在った」になる。

   🔴 印は <html> に付ける（`js-shin`）。<head> の中で付けるので、
      **最初の描画の時点でもう隠れている**。
      ⚠️ 以前は wp_footer のJSで付けていたため、ページの読み込み中は芯が見えていた
         （渡邊さん「コピーが最初から出ています」＝これが原因）。
   ⚠️ JS が動かない環境ではこの印が付かない＝芯は最初から見えたまま（消えない）。 */
.js-shin .tobira__shin { opacity: 0; transition: opacity 2200ms cubic-bezier(0.55, 0, 1, 0.45); }
.js-shin .tobira.is-ready .tobira__shin { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .js-shin .tobira__shin { opacity: 1; transition: none; }
}

/* ==========================================================================
   2. 区画（トップは縦に長い1枚）
   区切りは線ではなく余白で取る（規則4）
   ========================================================================== */

.artv-section {
  padding-block: var(--wp--preset--spacing--60);
}
.artv-section--tight { padding-block: var(--wp--preset--spacing--50); }

/* 見出しの上の小さな印＝2026-10-03 渡邊さん決定で使わない（カーソルの消し忘れに見えるため）。templates の artv-mark クラスは残して無害化 */

/* 本文の読みやすさ（16px以上・A26 の決定は theme.json 側で 17px）
   🔴 2026-09-27 `.entry-content p { max-width: 34em }` を外した＝PCで段落だけが51px右にずれ、
      見出し・表と左端がそろわなかった（HIG Layout「字下げは従属を意味する」）。
      列は contentSize 680px＝1行40字で、和文の読みやすい範囲に収まっている */

/* ==========================================================================
   3. 追従の入口（2026-09-24 渡邊さん提案・Q-0924-5559／e6dd）
   🔴 いまは /timewaver/ だけに出す（見え方を確かめてから下層全部へ広げるか決める）
   - 最初の画面では出さない。ページ末尾の「試してみるには」に着いたら消す（同じボタンを2つ並べない）
   - 規則3（動きを足さない）＝出る・消えるは切り替えるだけ。滑り込ませない
   - JS が動かないときは出ない（本文末尾の入口が残る）
   ========================================================================== */

.artv-follow { display: none; }
.artv-follow.is-on {
  display: flex;
  position: fixed;
  z-index: 50;
  inset-inline: 0;
  bottom: 0;
  align-items: center;
  gap: var(--wp--preset--spacing--30);
  padding: 8px 16px calc(8px + env(safe-area-inset-bottom));
  background: var(--wp--preset--color--hikari);
  border-top: 1px solid var(--wp--preset--color--sen);
}
.artv-follow a { text-decoration: none; }
.artv-follow__main {
  flex: 1;
  display: block;
  min-height: 44px;
  padding: 10px 16px;
  border-radius: 4px;
  background: var(--wp--preset--color--sumi);
  color: var(--wp--preset--color--hikari);
  text-align: center;
  line-height: 1.5;
}
.artv-follow__main small { margin-inline-start: 0.5em; font-size: 0.85em; }
.artv-follow__sub {
  color: var(--wp--preset--color--usuzumi);
  font-size: 0.9em;
  white-space: nowrap;
  padding-block: 12px;
}
.artv-follow a:focus-visible { outline: 2px solid var(--wp--preset--color--tobira); outline-offset: 2px; }
/* 帯が本文の最後の行を隠さないように */
body.has-artv-follow { padding-bottom: 72px; }

/* PC は右下の小さな札 */
@media (min-width: 782px) {
  .artv-follow.is-on {
    inset-inline: auto 24px;
    bottom: 24px;
    width: 220px;           /* 本文の列（右端 約920px @1280）にかぶらない幅 */
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    padding: 12px 16px 4px;
    border: 1px solid var(--wp--preset--color--sen);
    border-radius: 4px;
  }
  body.has-artv-follow { padding-bottom: 0; }
  .artv-follow__sub { text-align: center; padding-block: 8px; }
}

/* ── 暦（/calendar/）2026-09-26 ── */
.artv-koyomi { margin-block: 1.5rem 3rem; }
.artv-koyomi__date { font-family: var(--wp--preset--font-family--mincho); font-size: var(--wp--preset--font-size--x-large); margin: 0; }
.artv-koyomi__sub, .artv-koyomi__small, .artv-koyomi__yomi { color: var(--wp--preset--color--usuzumi); font-size: var(--wp--preset--font-size--small); margin: 0; }
.artv-koyomi__label { color: var(--wp--preset--color--tobira); font-size: var(--wp--preset--font-size--small); letter-spacing: 0.08em; margin: 0 0 0.25rem; }
.artv-koyomi__kou { margin-block: 2rem; padding-block: 1.5rem; border-block: 1px solid var(--wp--preset--color--sen); text-align: center; }
.artv-koyomi__kouname { font-family: var(--wp--preset--font-family--mincho); font-size: var(--wp--preset--font-size--xx-large); letter-spacing: 0.12em; margin: 0.25rem 0; }
.artv-koyomi__sky { display: grid; grid-template-columns: auto 1fr; gap: 0.25rem 1rem; margin: 0; }
.artv-koyomi__sky dt { color: var(--wp--preset--color--usuzumi); font-size: var(--wp--preset--font-size--small); }
.artv-koyomi__sky dd { margin: 0; }
.artv-koyomi__notes { margin-block: 1.5rem; }
.artv-koyomi__notes p { margin: 0.5rem 0; }
.artv-koyomi__toi { margin-block: 2.5rem; text-align: center; }
.artv-koyomi__toitext { font-family: var(--wp--preset--font-family--mincho); font-size: var(--wp--preset--font-size--large); margin: 0; }
.artv-koyomi__ahead ul { list-style: none; padding: 0; margin: 0; }
.artv-koyomi__ahead li { padding-block: 0.4rem; border-bottom: 1px solid var(--wp--preset--color--sen); font-size: var(--wp--preset--font-size--small); }

/* ==========================================================================
   5. トップ本文（2026-09-27 実装・正本＝services/timewaver/hp/20260924_トップ実装ラフ_v1.html）
   本文は固定ページ「トップ」（ID5）にある＝管理画面から直せる。ここは形だけ
   - 余白のリズムはラフのまま（参道は長く／手水で止まる／拝殿で開ける）。同じ間隔で積まない
   - 区切りは線や箱ではなく余白で取る（規則4）
   - 🔵 並び：既定＝A案（扉のすぐ下で名乗る）。?v=b でB案（後ろで名乗る）を見られる＝女性に比べていただく用。
     決まったら負けたほうの指定と functions.php の切替を消す
   ========================================================================== */
.home .wp-block-post-content { display: flex; flex-direction: column; }
.artv-top { margin-block: 0 !important; }
.artv-top p { margin-block: 0 0 1.35em; }
.artv-top p:last-child { margin-block-end: 0; }

.s-name     { padding-block: 4.5rem 3rem; }
.s-shapes   { padding-block: 7rem 6rem; }
.s-wheel    { padding-block: 9rem 7rem; }
.s-story    { padding-block: 9rem 8rem; }
.s-how      { padding-block: 8rem 7rem; }
.s-chuyo    { padding-block: 8rem 6rem; }
.s-ask      { padding-block: 9rem 7rem; }
.s-calendar { padding-block: 7rem 9rem; }

/* 名乗り＝小さく名乗るだけ */
.artv-face { display: flex; gap: 1.1rem; align-items: center; }
.artv-face img { width: 62px; height: 62px; border-radius: 50%; object-fit: cover; object-position: 50% 22%; }
.artv-face p { margin: 0 !important; }
.artv-face__nm { font-family: var(--wp--preset--font-family--mincho); font-size: 1.08rem; letter-spacing: 0.06em; line-height: 1.5; }
.artv-face__role { color: var(--wp--preset--color--usuzumi); font-size: 0.85rem; line-height: 1.5; }

/* 2段目＝4本を並べる。間隔で「別々のもの」を示す */
.s-shapes p { margin-block-end: 2.6em; font-size: clamp(1.09rem, 2.6vw, 1.2rem); line-height: 1.95; }

.artv-lede { font-family: var(--wp--preset--font-family--mincho); font-size: var(--wp--preset--font-size--large); line-height: 1.95; }
.s-ask .artv-lede { font-family: inherit; }

/* 中庸＝地の文と声の切り替わりを字下げだけで示す */
.artv-speech { padding-inline-start: 1.15em; }
.artv-fact { margin-block-start: 2.8em !important; }

.artv-top-btn {
  display: inline-block; margin-block: 1.6rem 0.6rem;
  padding: 0.95rem 2.4rem;
  border: 1px solid var(--wp--preset--color--tobira); color: var(--wp--preset--color--tobira);
  text-decoration: none; letter-spacing: 0.14em;
  transition: background 0.25s ease, color 0.25s ease;
}
.artv-top-btn:hover { background: var(--wp--preset--color--tobira); color: var(--wp--preset--color--hikari); }
.artv-quiet { color: var(--wp--preset--color--usuzumi); font-size: var(--wp--preset--font-size--small); line-height: 1.9; }

/* 暦 */
.artv-cal-h { font-family: var(--wp--preset--font-family--mincho); font-size: clamp(1.15rem, 3vw, 1.35rem); letter-spacing: 0.12em; font-weight: 400; margin: 0 0 1.2rem; }
.artv-cal { list-style: none; padding: 0; margin: 0 0 1.6rem; }
.artv-cal li { display: flex; gap: 1.2rem; padding-block: 0.9rem; border-bottom: 1px solid var(--wp--preset--color--sen); }
.artv-cal__d { min-width: 5.2rem; font-family: var(--wp--preset--font-family--mincho); letter-spacing: 0.06em; }
.artv-cal__w { display: block; margin-block-start: 0.2rem; font-size: 0.8rem; color: var(--wp--preset--color--usuzumi); }

/* PC＝実話と中庸だけ左へずらす（全段中央揃えは「全員が同じ方向を向く」形） */
@media (min-width: 900px) {
  .s-story > *, .s-chuyo > * { margin-inline-start: calc((100% - 680px) / 2 + 4.5rem) !important; }
}

/* B案（?v=b）＝名乗りは実話の直前まで下げる */
.artv-v-b .s-shapes { order: 2; }
.artv-v-b .s-wheel  { order: 3; }
.artv-v-b .s-how    { order: 4; }
.artv-v-b .s-chuyo  { order: 5; }
.artv-v-b .s-name   { order: 6; padding-block: 8rem 1rem; }
.artv-v-b .s-story  { order: 7; padding-block: 4rem 8rem; }
.artv-v-b .s-ask    { order: 9; }
.artv-v-b .s-calendar { order: 10; }

/* ==========================================================================
   6. 全ページ点検の反映（2026-09-27 渡邊さん「すべて推奨で」）
   正本＝services/timewaver/hp/20260927_HP全ページ点検_説明文とデザインと文章.md 第2部
   ========================================================================== */

/* 共通-1 見出しの余白＝WPの配置ルール（:root :where(.is-layout-constrained) > *）より強く効かせる。
   見出しは次の本文に近く、前の本文から遠く（M3 Spacing／HIG Layout） */
body:not(.home) .wp-block-post-content > h2 { margin-block: clamp(3.5rem, 9vw, 5rem) clamp(1rem, 2.5vw, 1.5rem); }
body:not(.home) .wp-block-post-content > h3 { margin-block: clamp(2.25rem, 6vw, 3rem) 0.75rem; }
body:not(.home) .wp-block-post-content > :is(h2, h3):first-child { margin-block-start: 0; }
/* ボタンの前後・図の下にも間を取る（ボタンの直下に文が貼りつかない） */
body:not(.home) .wp-block-post-content > .wp-block-buttons { margin-block: 2.5rem 1.5rem; }
body:not(.home) .wp-block-post-content > .wp-block-image + * { margin-block-start: 1.25rem; }
/* 箇条書きの直後の段落が貼りつく（段落は上の余白0＝theme.json のため、箇条書き側で下を空ける・2026-09-29 /price/ で発見） */
body:not(.home) .wp-block-post-content :is(ul, ol).wp-block-list { margin-block-end: var(--wp--preset--spacing--30); }

/* 見出し：語の途中で折りにくく（Chrome/Edge）・明朝を柔らかく（芯で実証済みの 500→400） */
h1, h2, h3 { text-wrap: balance; word-break: auto-phrase; }
h1, h2 { font-weight: 400; }
@media (max-width: 600px) { h2 { letter-spacing: 0.05em; } }
/* h3 は明朝の細さで本文に負けるので太さを上げる（書体は増やさない） */
h3 { font-weight: 600; }

/* PCは画面が遠い＝本文を1px上げる（HIG 本文17pt・40代の読み手） */
@media (min-width: 900px) { body { font-size: 1.125rem; } }

/* 下層の見出しの上の印＝扉が開いた真ん中の縦の光の筋を、入口に1本だけ繰り返す（§12e signature の小さな反復） */
/* 🔵 下層の入口の一文を明朝で格上げする案（点検 §2-1）は、9/27 に一律で当てたら
   料金・セッションの流れのように「説明から始まるページ」で合わなかったので外した。やるならページごとに決める */

/* 共通-3 押せる範囲 44px 以上（HIG 44pt／M3 48dp）・スマホで開いたメニューに余白 */
.artv-header .wp-block-navigation-item__content { display: inline-block; padding-block: 10px; }
.artv-header .wp-block-navigation__responsive-container-open { padding: 10px; margin: -10px; }
.wp-block-navigation__responsive-container.is-menu-open { padding: 24px 24px calc(24px + env(safe-area-inset-bottom)); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  font-family: var(--wp--preset--font-family--mincho);
  font-size: 1.25rem; letter-spacing: 0.1em; padding-block: 12px;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 4px; }
/* 🆕 2026-10-01 本番で発覚：上の余白（24px）が WP 本体の指定に負けて 0 になり、スマホで開いたメニューが左端にくっついていた */
.artv-header .wp-block-navigation__responsive-container.is-menu-open { padding: 24px 28px calc(24px + env(safe-area-inset-bottom)) !important; }
/* 開いた瞬間に WP が先頭の項目（about）へフォーカスを移す＝スマホでは about にだけ枠が出て見えた。
   タッチの端末（hover できない）でだけ枠を消す。キーボードで操作するパソコンでは枠を残す */
@media (hover: none) {
  .wp-block-navigation__responsive-container.is-menu-open :focus,
  .wp-block-navigation__responsive-container.is-menu-open :focus-visible { outline: none !important; } /* WP 本体の黒2pxの枠（:focus）も */
}
.artv-footer a { display: inline-block; padding-block: 11px; white-space: nowrap; }

/* 共通-4 いまどこにいるか（aria-current は functions.php が付ける）＝扉色の細い下線＝「小さな印」 */
.artv-header [aria-current="page"] {
  text-decoration: underline;
  text-decoration-color: var(--wp--preset--color--tobira);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.6em;
}

/* 共通-5 ボタンは役割で2種類＝主は墨の塗り・白文字（A26）。トップの LINE ボタンもこれにそろえる */
.artv-top-btn {
  background: var(--wp--preset--color--sumi); color: var(--wp--preset--color--hikari);
  border: 0; border-radius: 4px; letter-spacing: 0.08em; padding: 1rem 2rem;
}
.artv-top-btn:hover { background: #343A3F; color: var(--wp--preset--color--hikari); }
.artv-top-btn:active, .wp-block-button__link:active { background: #000; }

/* 共通-6 表＝縦罫をやめ、横の細線だけ（「色や罫や箱で区切らない」） */
.wp-block-table table { border-collapse: collapse; }
.wp-block-table :is(th, td) {
  border: 0; border-bottom: 1px solid var(--wp--preset--color--sen);
  padding: 0.9rem 0.75rem 0.9rem 0; text-align: left; vertical-align: top;
}
.wp-block-table thead { border: 0; }
.wp-block-table thead th {
  border-bottom-color: var(--wp--preset--color--usuzumi);
  color: var(--wp--preset--color--usuzumi);
  font-size: var(--wp--preset--font-size--small); font-weight: 500;
}
.wp-block-table td:last-child { font-variant-numeric: tabular-nums; }
/* 「項目名｜内容」の表（特商法）は、スマホで縦に積む */
@media (max-width: 600px) {
  .artv-kv :is(tr, th, td) { display: block; }
  .artv-kv th { border-bottom: 0; padding-bottom: 0; color: var(--wp--preset--color--usuzumi); font-size: var(--wp--preset--font-size--small); font-weight: 500; }
}

/* 共通-8 補足（話者名・参考文献・小さな注記）は薄墨（白の上で 5.86:1＝AA） */
.wp-block-quote cite, .has-small-font-size { color: var(--wp--preset--color--usuzumi); }

/* §2-3 声は大きく、余白で包む */
body:not(.home) .wp-block-quote { margin-block: 3rem; }
body:not(.home) .wp-block-quote p { font-size: clamp(1.25rem, 3.4vw, 1.375rem); line-height: 2; }
/* 押せる範囲の残り（9/27 計測で 36px・24px だった分） */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { min-height: 44px; display: inline-flex; align-items: center; }
.wp-block-navigation__responsive-container-close { padding: 10px; margin: -10px; }
.artv-header .wp-block-site-title a { display: inline-block; padding-block: 10px; }

/* ==========================================================================
   7. 見た目＝A2「白い余白・散らした写真・海と宇宙のリズム」（2026-09-28 渡邊さん回答）
   正本＝services/timewaver/hp/20260927_似た系統のサイト比較/index.html の回答
   - 地は白（真っ白のまま）。差し色＝無意識という海や宇宙のリズム＝深い藍 #2C4A6E（白の上で 9:1）
   - 写真は「前面に押しすぎない」＝大きさを変えて散らす（めおと・NUSET）。左右交互の単調さは避ける（CANOA・yamahon）
   - 写真と文字は「ふわっと浮き出る」（灸PLUS・ひだまり堂）。重くしない（Leandra＝ロードが長い）
   - 説明の段（医療・解約・在籍期間）はトップから外した（別ページにある）
   - 印＝細い波の線（リズム）。見出しの下と段の区切りにだけ置く
   ========================================================================== */
:root { --artv-ai: #2C4A6E; --artv-ai-soft: #E6ECF2; --artv-gray: #6E7072; --artv-line: #E3E4E5; --artv-paper: #F4F4F3; }

/* ── ふわっと浮き出る（JS がある時だけ隠す＝JS が無くても読める・動きを減らす設定では出しっぱなし） */
.js-reveal .artv-reveal { opacity: 0; transform: translateY(18px); transition: opacity 1.1s ease, transform 1.1s cubic-bezier(.2,.7,.2,1); }
.js-reveal .artv-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .js-reveal .artv-reveal { opacity: 1; transform: none; transition: none; } }

/* ── 波の線（signature）＝海と宇宙のリズム */
.artv-wave { display: block; width: 120px; height: 14px; margin: 0 0 1.6rem; color: var(--artv-ai); }
.artv-wave path { fill: none; stroke: currentColor; stroke-width: 1.2; stroke-linecap: round; }
.js-reveal .artv-wave path { stroke-dasharray: 160; stroke-dashoffset: 160; transition: stroke-dashoffset 1.6s ease .2s; }
.js-reveal .is-in .artv-wave path, .js-reveal .artv-wave.is-in path { stroke-dashoffset: 0; }
@media (prefers-reduced-motion: reduce) { .js-reveal .artv-wave path { stroke-dashoffset: 0; transition: none; } }

/* ── 下層は軽く（2026-10-01・web-architect）＝トップの 1.1s／18px は扉の儀式なのでそのまま。
      下層の読み物で 1.1s は待たされる＝0.65s・10px。波線も 1.2s */
.artv-sub.js-reveal .artv-reveal { transform: translateY(10px); transition-duration: .65s, .65s; }
.artv-sub.js-reveal .artv-reveal.is-in { transform: none; }
.artv-sub.js-reveal .artv-wave path { transition-duration: 1.2s; }
@media (prefers-reduced-motion: reduce) { .artv-sub.js-reveal .artv-reveal { transform: none; transition: none; } }
/* 印刷で白紙にしない（画面外の段が透明のまま刷られる） */
@media print {
  .js-reveal .artv-reveal { opacity: 1 !important; transform: none !important; }
  .js-reveal .artv-wave path { stroke-dashoffset: 0 !important; }
}

/* ── 押せるものの手ごたえ（hover できる端末だけ・スマホは :active） */
@media (hover: hover) {
  .artv-arr { display: inline-block; transition: transform .18s ease; }
  a:hover .artv-arr { transform: translateX(4px); }
  .artv-top-btn, .wp-block-button__link, .artv-follow__main { transition: transform .18s ease, box-shadow .18s ease, background .25s ease, color .25s ease; }
  .artv-top-btn:hover, .wp-block-button__link:hover, .artv-follow__main:hover { transform: translateY(-2px); box-shadow: 0 4px 10px rgba(44, 74, 110, .12); }
}
.artv-follow__main:active { opacity: .85; }
@media (prefers-reduced-motion: reduce) {
  .artv-arr, .artv-top-btn, .wp-block-button__link, .artv-follow__main { transition: none !important; transform: none !important; }
}

/* ── ラベル（小さな文字・藍） */
.artv-top .artv-lab { font-size: 0.72rem; letter-spacing: 0.28em; color: var(--artv-ai); margin: 0 0 0.6rem !important; }
.artv-top .artv-min { font-family: var(--wp--preset--font-family--mincho); font-size: clamp(1.02rem, 2.1vw, 1.15rem); line-height: 2.15; letter-spacing: 0.1em; }
.artv-top .artv-min p { margin: 0 0 1em; }

/* ── 段は画面いっぱいの幅に広げ、中を12の格子で組む（1本の列をやめる） */
.artv-top.s-shapes, .artv-top.s-story, .artv-top.s-wheel, .artv-top.s-index, .artv-top.s-chuyo, .artv-top.s-ask, .artv-top.s-calendar, .artv-top.s-hama {
  max-width: none !important; margin-inline: calc(50% - 50vw) !important; padding-inline: 20px;
}
.artv-g { max-width: 1120px; margin-inline: auto; display: grid; gap: 1.5rem; }
.artv-g > * { margin: 0; }
@media (min-width: 900px) { .artv-g { grid-template-columns: repeat(12, 1fr); gap: 2rem; align-items: start; } }

.artv-ph { display: block; margin: 0; }
.artv-ph img { display: block; width: 100%; height: auto; object-fit: cover; background: var(--artv-paper); }
.artv-ph.r32 img { aspect-ratio: 3 / 2; } .artv-ph.r45 img { aspect-ratio: 4 / 5; } .artv-ph.r11 img { aspect-ratio: 1 / 1; }
.artv-ph.arch img { aspect-ratio: 4 / 5; border-radius: 999px 999px 0 0; }

/* 1段目「このままでいいのかな」＝文は左、写真は小さく右下へずらす */
@media (min-width: 900px) {
  .s-shapes .t { grid-column: 2 / 7; padding-top: 2rem; }
  .s-shapes .p { grid-column: 8 / 12; margin-top: 6rem; }
  .s-story .p { grid-column: 1 / 5; }
  .s-story .t { grid-column: 6 / 11; margin-top: 5rem; }
  .s-wheel .t { grid-column: 3 / 8; margin-top: 3rem; }
  .s-wheel .p { grid-column: 9 / 13; }
  .s-wheel .p2 { grid-column: 7 / 10; margin-top: -3rem; }
  .s-chuyo .t { grid-column: 4 / 11; }
  .s-ask .t { grid-column: 2 / 8; }
  .s-calendar .t { grid-column: 7 / 12; }
  .s-hama .p { grid-column: 1 / 13; }
}
@media (max-width: 899px) {
  .s-shapes .p { width: 62%; margin-left: auto !important; }
  .s-story .p { width: 70%; }
  .s-wheel .p { width: 58%; margin-left: auto !important; }
  .s-wheel .p2 { width: 44%; margin-top: -2rem !important; }
}

/* 段の間 */
.s-name { padding-block: 4rem 0; }
.s-shapes { padding-block: 4rem 0; }
.s-story, .s-wheel, .s-index, .s-chuyo, .s-ask, .s-calendar { padding-block: 7rem 0; }
.s-hama { padding-block: 7rem 6rem; }
@media (max-width: 600px) { .s-story, .s-wheel, .s-index, .s-chuyo, .s-ask, .s-calendar { padding-block: 4.5rem 0; } .s-hama { padding-block: 4.5rem 3rem; } }

/* この場所でできること＝大きさの違う3つを段違いに（めおと・NUSET） */
.artv-trio { max-width: 1120px; margin-inline: auto; display: grid; gap: 2.5rem; }
.artv-trio a { text-decoration: none; color: inherit; display: block; }
.artv-trio b { display: block; font-family: var(--wp--preset--font-family--mincho); font-weight: 400; font-size: 1.15rem; letter-spacing: 0.14em; margin: 1rem 0 0.3rem; color: var(--wp--preset--color--sumi); }
.artv-trio span { display: block; color: var(--artv-gray); font-size: 0.9rem; line-height: 1.9; }
.artv-trio a:hover b { color: var(--artv-ai); }
.artv-trio .more { display: inline-block; margin-top: 0.5rem; color: var(--artv-ai); font-size: 0.8rem; letter-spacing: 0.14em; }
@media (min-width: 900px) {
  .artv-trio { grid-template-columns: repeat(12, 1fr); gap: 2rem; align-items: start; }
  .artv-trio .head { grid-column: 1 / 13; }
  .artv-trio .i1 { grid-column: 1 / 6; grid-row: 2; }
  .artv-trio .i2 { grid-column: 7 / 11; margin-top: 7rem; }
  .artv-trio .i3 { grid-column: 3 / 7; grid-row: 3; margin-top: 3rem; }
  .artv-trio .i2 { grid-row: 2; }
}
@media (max-width: 899px) { .artv-trio .i2 { width: 78%; margin-left: auto; } .artv-trio .i3 { width: 78%; } }

/* 例の段＝藍の細い縦線 */
.artv-speech { padding-inline-start: 1.25em; border-inline-start: 1px solid var(--artv-ai); }

/* 主のボタン＝藍の塗り（差し色はここと波の線とラベルだけ） */
.artv-top-btn { background: var(--artv-ai) !important; color: #fff !important; border-radius: 2px; letter-spacing: 0.14em; }
.artv-top-btn:hover { background: #1F3752 !important; }
/* 🆕 2026-10-01 渡邊さん「お話会へのボタンがページによって真っ黒」＝WP 標準のボタン（about・mind・timewaver・session-guide・choose）もトップと同じ藍に */
.wp-block-button__link { background: var(--artv-ai) !important; color: #fff !important; border-radius: 2px !important; letter-spacing: 0.14em; }
.wp-block-button__link:hover { background: #1F3752 !important; }

/* 今日の暦 */
.artv-calcard { border-top: 1px solid var(--artv-line); padding-top: 1.8rem; }
.artv-cal-h { font-size: 0.72rem !important; letter-spacing: 0.28em !important; color: var(--artv-ai); font-family: inherit !important; margin: 0 0 1.2rem !important; }
.artv-mini { display: flex; gap: 1.75rem; align-items: flex-start; margin: 0 0 1.4rem; }
.artv-mini p { margin: 0; }
.artv-mini__kou { writing-mode: vertical-rl; display: flex; gap: 0.5rem; }
.artv-mini__kouname { font-family: var(--wp--preset--font-family--mincho); font-size: clamp(1.4rem, 4.4vw, 1.8rem); letter-spacing: 0.22em; }
.artv-mini__kouyomi { color: var(--artv-gray); font-size: 0.75rem; letter-spacing: 0.12em; }
.artv-mini__body { display: grid; gap: 0.5rem; padding-top: 0.2rem; }
.artv-mini__date { font-family: var(--wp--preset--font-family--mincho); font-size: 1.05rem; letter-spacing: 0.08em; }
.artv-mini__moonline { display: flex; align-items: center; gap: 0.6rem; color: var(--artv-gray); font-size: 0.9rem; }
.artv-mini__moon { width: 22px; height: 22px; flex: none; }
.artv-mini__moon-dark { fill: none; stroke: var(--artv-ai); stroke-width: 1; opacity: .5; }
.artv-mini__moon-lit { fill: var(--artv-ai-soft); }
.artv-mini__mark, .artv-mini__next { font-size: 0.85rem; color: var(--artv-gray); }
.artv-mini__mark::before, .artv-mini__next::before { content: "◇ "; color: var(--artv-ai); }
.artv-cal { list-style: none; padding: 0; margin: 0 0 1.2rem; font-size: 0.9rem; }
.artv-cal li { display: flex; gap: 1.2rem; padding-block: 0.6rem; border-top: 1px solid var(--artv-line); }
.artv-cal__d { min-width: 3.5rem; color: var(--artv-gray); }
.artv-cal__w { display: block; font-size: 0.8rem; color: var(--artv-gray); }

/* 名乗り＝A案のまま小さく（ご本人の写真は差し替え予定） */
.s-name .artv-face { max-width: 1120px; margin-inline: auto; }
.artv-top.s-name { max-width: none !important; margin-inline: calc(50% - 50vw) !important; padding-inline: 20px; }
@media (min-width: 900px) { .s-name .artv-face { padding-left: calc((1120px / 12) * 1); } }

.artv-v-b .s-index { order: 4; }
.s-calendar { padding-bottom: 7rem !important; }

/* ── 9/28 NUSET の分析を受けて（渡邊さん「全部採用」） */
/* 詩＝扉のすぐ後ろ。なりたい状態から始める。中央・明朝・広い行間（NUSET 実測 18px・行間 2.4） */
.artv-top.s-poem { max-width: none !important; margin-inline: calc(50% - 50vw) !important; padding: 6rem 20px 2rem; }
.artv-poem { max-width: 34em; margin-inline: auto; text-align: center; font-family: var(--wp--preset--font-family--mincho); font-size: clamp(1.05rem, 2.3vw, 1.2rem); line-height: 2.4; letter-spacing: 0.1em; }
.artv-poem p { margin: 0; }
.artv-poem .gap { margin-top: 2.2em; }
.artv-poem .en, .artv-close .en { font-family: var(--wp--preset--font-family--mincho); font-style: italic; font-size: 0.82rem; letter-spacing: 0.06em; color: var(--artv-gray); margin-top: 2.4em; }
.artv-poem__ph { max-width: 360px; margin: 4rem auto 0 !important; }
@media (min-width: 900px) { .artv-poem__ph { margin: 4rem 12% 0 auto !important; } }
.s-name { padding-block: 5rem 0; }

/* 「本来」の一行＝4行の前に、少しだけ強く */
.artv-top .artv-hon { font-family: var(--wp--preset--font-family--mincho); font-size: clamp(1.1rem, 2.4vw, 1.3rem); letter-spacing: 0.12em; line-height: 2; margin: 0 0 1.6rem; }

/* 名乗りの肩書き */
.artv-face__role { letter-spacing: 0.08em; }

/* 入口の縦書き＝写真の左上に短く（NUSET の添え書き） */
.artv-trio .artv-ph { position: relative; }
.artv-tate { position: absolute; top: 0.9rem; left: 0.8rem; writing-mode: vertical-rl; font-family: var(--wp--preset--font-family--mincho); font-size: 0.8rem; letter-spacing: 0.18em; color: var(--wp--preset--color--sumi); background: rgba(255,255,255,.78); padding: 0.7em 0.35em; line-height: 1.5; }

/* 最後に芯へ戻る（扉の一行と対にする） */
.artv-top.s-close { max-width: none !important; margin-inline: calc(50% - 50vw) !important; padding: 3rem 20px 8rem; }
.artv-close { text-align: center; }
.artv-close .artv-wave { margin: 0 auto 2rem; }
.artv-close .shin { writing-mode: vertical-rl; display: inline-block; font-family: var(--wp--preset--font-family--mincho); font-size: clamp(1.2rem, 3vw, 1.5rem); letter-spacing: 0.3em; color: var(--artv-gray); margin: 0 auto; }
.s-calendar { padding-bottom: 3rem !important; }

/* ==========================================================================
   8. トップの並び替えと2段目（2026-09-29 渡邊さん決定・decision-registry §12h 9/29 更新）
   並び＝扉→詩→このままでいいのかな→私も、そうでした→ひとつの例→なぜ無意識か（橋）→入口→名乗り→LINE→暦→芯
   2段目は THREE（ABOUT）の組み方＝許しを同じ形で重ね、締めは1行で置く（web-architect 9/29）
   ========================================================================== */
.artv-top.s-poem { padding: 8rem 20px 6rem; }
@media (max-width: 600px) { .artv-top.s-poem { padding: 5.5rem 20px 4.5rem; } }
.artv-poem { max-width: 22em; line-height: 2.3; letter-spacing: 0.08em; }
.artv-poem p { word-break: auto-phrase; }
.artv-poem p + p { margin-top: 0.4em; }
.artv-poem + .artv-poem { margin-top: 2.8em; }
.artv-poem--st p + p { margin-top: 0; }
.artv-poem + .artv-poem--end { margin-top: 3.5em; }

/* 橋の段（なぜ無意識なのか → /mind/） */
.artv-top.s-why { max-width: none !important; margin-inline: calc(50% - 50vw) !important; padding: 7rem 20px 7rem; }
@media (min-width: 900px) { .s-why .t { grid-column: 6 / 12; } }

/* 詳細ページへの小さな入口 */
.artv-top .artv-link { margin-top: 1.6rem !important; }
.artv-top .artv-link a, .artv-trio__more a, .artv-face__more a { color: var(--artv-ai); text-decoration: none; letter-spacing: 0.1em; display: inline-block; padding-block: 10px; }
.artv-trio__more { max-width: 1120px; margin: 2.5rem auto 0 !important; display: flex; flex-wrap: wrap; gap: 0.2rem 2.5rem; justify-content: center; }
.artv-face__more { font-size: 0.8rem; margin-top: 0.1rem !important; }

/* 名乗り＝白い石段に座る1枚を横長で（2026-09-29 渡邊さん「A」）。62px の丸アイコンから置き換え。
   THREE の「人が静かにそこにいる」を後半のここで受ける（web-architect 9/29） */
.artv-top.s-name { padding-block: 7rem 1rem; }
.artv-name__ph { max-width: 820px; margin: 0 auto !important; }
.artv-name__t { max-width: 820px; margin: 1.3rem auto 0 !important; }
.artv-name__t p { margin: 0 !important; }

/* ==========================================================================
   図（線画）＝ 2026-10-02 /timewaver/・/session-guide/（渡邊さん「初めての人にも伝わるように」）
   藍の細い線・余白多め・スマホは縦、広い画面は横
   ========================================================================== */
.artv-fig { margin: 2.6rem auto; max-width: 560px; color: var(--artv-ai); text-align: center; }
.artv-fig svg { width: 100%; height: auto; display: block; }
.artv-fig figcaption { margin-top: 0.6rem; font-size: 0.85rem; color: var(--artv-gray); letter-spacing: 0.08em; }

.artv-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 2.2rem 0; }
.artv-duo .c { border-top: 1px solid var(--artv-line); padding: 1.4rem 0.4rem 0.4rem; text-align: center; color: var(--artv-ai); }
.artv-duo svg { width: 64px; height: 48px; display: block; margin: 0 auto 0.8rem; }
.artv-duo b { display: block; font-family: var(--wp--preset--font-family--mincho); font-weight: 500; font-size: 1.15rem; letter-spacing: 0.14em; margin-bottom: 0.4rem; }
.artv-duo span { display: block; font-size: 0.88rem; line-height: 1.8; color: var(--wp--preset--color--sumi, #222); }

.artv-steps { list-style: none; padding: 0 !important; margin: 2.4rem 0 !important; display: grid; gap: 1.6rem; counter-reset: st; }
.artv-steps > li { position: relative; display: grid; grid-template-columns: 52px 1fr; column-gap: 1rem; align-items: center; color: var(--artv-ai); counter-increment: st; }
.artv-steps > li > svg { width: 48px; height: 48px; grid-row: span 2; }
.artv-steps > li > b { font-family: var(--wp--preset--font-family--mincho); font-weight: 500; font-size: 1.05rem; letter-spacing: 0.1em; color: var(--wp--preset--color--sumi, #222); }
.artv-steps > li > b::before { content: counter(st) "　"; color: var(--artv-ai); font-size: 0.85rem; }
.artv-steps--plain > li > b::before { content: none; }
.artv-steps > li > span { font-size: 0.85rem; color: var(--artv-gray); line-height: 1.6; }
.artv-steps > li > span:empty { display: none; }
/* 縦の流れの線（スマホ） */
.artv-steps:not(.artv-steps--plain) > li:not(:last-child)::after { content: ""; position: absolute; left: 24px; top: 56px; height: calc(100% - 28px); border-left: 1px dashed var(--artv-ai); opacity: 0.45; }
@media (min-width: 760px) {
  .artv-steps { grid-template-columns: repeat(4, 1fr); gap: 1rem; }
  .artv-steps > li { grid-template-columns: 1fr; text-align: center; row-gap: 0.4rem; }
  .artv-steps > li > svg { margin: 0 auto 0.4rem; grid-row: auto; }
  .artv-steps:not(.artv-steps--plain) > li:not(:last-child)::after { left: calc(50% + 34px); top: 24px; width: calc(100% - 68px); height: 0; border-left: 0; border-top: 1px dashed var(--artv-ai); }
}

.artv-prep { margin: 2rem 0 2.6rem; }
.artv-photo-ex { display: flex; gap: 1.2rem; justify-content: center; margin-top: 1.4rem; color: var(--artv-ai); }
.artv-photo-ex figure { margin: 0; text-align: center; width: 30%; max-width: 120px; }
.artv-photo-ex svg { width: 60%; height: auto; display: block; margin: 0 auto 0.4rem; }
.artv-photo-ex figcaption { font-size: 0.78rem; line-height: 1.5; color: var(--wp--preset--color--sumi, #222); }
.artv-photo-ex .ng { color: var(--artv-gray); }

/* 当日の流れ（番号つきの手順を、縦の時間の線で） */
ol.artv-flow { list-style: none; padding-left: 0 !important; counter-reset: fl; border-left: 1px solid var(--artv-line); margin-left: 0.6rem !important; }
ol.artv-flow > li { position: relative; padding: 0 0 1.4rem 1.6rem; counter-increment: fl; }
ol.artv-flow > li::before { content: counter(fl); position: absolute; left: -0.8rem; top: 0.1rem; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: #fff; border: 1px solid var(--artv-ai); color: var(--artv-ai); font-size: 0.8rem; line-height: 1.5rem; text-align: center; }
.artv-photo { margin: 2.2rem 0; }
.artv-photo img { width: 100%; height: auto; display: block; }
.artv-photo figcaption { margin-top: 0.5rem; font-size: 0.8rem; color: var(--artv-gray); letter-spacing: 0.06em; }
.artv-photo--small { max-width: 62%; margin-inline: auto 0 !important; }
@media (min-width: 760px) { .artv-photo--small { max-width: 46%; } }
/* 氷山（手描き・2026-10-02 渡邊さん「線画より手書きのイラスト」）＝文字は画像に描かずサイトの文字で重ねる */
.artv-hyozan { position: relative; max-width: 640px; }
.artv-hyozan img { width: 100%; height: auto; display: block; }
.artv-hyozan .l { position: absolute; font-family: var(--wp--preset--font-family--mincho); letter-spacing: 0.2em; color: var(--artv-ai); font-size: clamp(0.8rem, 2.6vw, 1rem); }
.artv-hyozan .l1 { left: 62%; top: 13%; }
.artv-hyozan .l2 { left: 50%; top: 58%; transform: translateX(-50%); color: #fff; font-size: clamp(0.9rem, 3vw, 1.15rem); }
/* 和紙の地の四角い縁を、白いページへなじませる */
.artv-hyozan img { -webkit-mask-image: radial-gradient(ellipse 70% 72% at 50% 50%, #000 62%, transparent 100%); mask-image: radial-gradient(ellipse 70% 72% at 50% 50%, #000 62%, transparent 100%); }

/* 料金ページの小さな札（月額から、調整を続けるには） */
.artv-cue { position: fixed; z-index: 50; left: 50%; bottom: calc(16px + env(safe-area-inset-bottom)); transform: translate(-50%, 12px); opacity: 0; pointer-events: none;
  display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 22px 11px; min-width: 210px;
  background: rgba(255,255,255,.96); border: 1px solid var(--artv-ai); border-radius: 2px; box-shadow: 0 6px 18px rgba(44,74,110,.14);
  color: var(--artv-ai); text-decoration: none; transition: opacity .35s ease, transform .35s ease; }
.artv-cue.is-on { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
.artv-cue__s { font-size: 0.72rem; letter-spacing: 0.14em; color: var(--artv-gray); }
.artv-cue__s b { font-family: var(--wp--preset--font-family--mincho); font-weight: 500; font-size: 1.15rem; letter-spacing: 0.04em; color: var(--artv-ai); margin-inline: 0.15em; }
.artv-cue__m { font-size: 0.92rem; letter-spacing: 0.12em; color: var(--wp--preset--color--sumi, #222); }
@media (hover: hover) { .artv-cue:hover { background: var(--artv-ai-soft); } }
.artv-cue:focus-visible { outline: 2px solid var(--wp--preset--color--tobira); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .artv-cue { transition: none; } }
@media print { .artv-cue { display: none !important; } }

/* ヘッダーを常時表示（2026-10-03 渡邊さん）＝上に貼りつく。白地で下の文字を隠し、細い線で区切る */
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: 0; z-index: 60; background: var(--wp--preset--color--hikari, #fff); transition: box-shadow .25s ease; }
body.admin-bar .wp-site-blocks > header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 32px); }
body.artv-scrolled .wp-site-blocks > header.wp-block-template-part { box-shadow: 0 1px 0 var(--artv-line); }
html { scroll-padding-top: 88px; }
/* スクロールしたらヘッダーを細く（常に出す分、本文の場所を広く残す） */
.artv-header { transition: padding .25s ease; }
body.artv-scrolled .artv-header { padding-top: 6px !important; padding-bottom: 6px !important; }
@media (prefers-reduced-motion: reduce) { .artv-header { transition: none; } }
