/*
Theme Name: SWELL CHILD
Theme URI: https://swell-theme.com/
Template: swell
Description: SWELLの子テーマ / UTAGEメディア用カスタマイズ
Version: 1.0.1
Author: LOOS WEB STUDIO
Author URI: https://loos-web-studio.com/
*/

/* UTAGEメディア 子テーマCSS  ブランドトークン（ロゴ実測・本体LP照合済み） */
:root{
  --u-blue:#58A3E6; --u-purple:#A75FF5; --u-mid:#7B82EE; --u-link:#1D75C3;
  --u-ink:#1A1A1A; --u-text:#222222; --u-muted:#6B7280; --u-line:#E5E7EB; --u-bg2:#F7F7F7;
  --u-grad:linear-gradient(135deg,#58A3E6,#A75FF5);
}

/* 1. ヘッダーCTAボタン（通常ヘッダー・追従ヘッダーの両方に適用） */
.c-gnav > li.header-cta{ display:flex; align-items:center; }
.c-gnav > li.header-cta > a{
  background:var(--u-grad); color:#fff !important; border-radius:6px;
  padding:.62em 1.3em !important; margin-left:.6em; font-weight:700;
  line-height:1.4; height:auto !important; white-space:nowrap;
  transition:opacity .2s ease, transform .2s ease;
}
.c-gnav > li.header-cta > a::before,
.c-gnav > li.header-cta > a::after{ display:none !important; }
.c-gnav > li.header-cta > a .ttl{ color:#fff !important; padding:0 !important; }
.c-gnav > li.header-cta > a:hover{ opacity:.88; transform:translateY(-1px); }
/* スマホ側では通常リンクに戻す */
.p-spMenu .header-cta > a,
.p-spHeadMenu .header-cta > a{
  background:none !important; color:inherit !important; border-radius:0; margin:0;
}

/* 2. 資料請求CTAの共通部品（サイドバー・記事末で共用）
   グラデーションの板に白ボタン、という型をやめ、白いカードに導入ガイドの実物（表紙と中面）を載せる。
   何がもらえるかを見せるほうが押される。画像は assets/cta-visual/build.py で作る（実物の合成。生成画像は使わない） */
.u-free{                         /* 「無料」バッジ */
  position: absolute; top: 14px; right: 12px; z-index: 1;
  font-size: .7em; font-weight: 700; letter-spacing: .06em;
  color: #fff; background: #F0567A; border-radius: 999px; padding: .25em .75em;
  box-shadow: 0 4px 10px -4px rgba(240, 86, 122, .6);
}
.u-kicker{ margin: 0 0 .15em; font-size: .72em; font-weight: 700; letter-spacing: .08em; color: var(--u-mid); }
.u-check,
.post_content .u-check{ list-style: none; margin: 0 0 1em; padding: 0; }   /* 本文内のリスト用の字下げを打ち消す */
.u-check li{
  position: relative; margin: 0 0 .35em; padding-left: 1.35em;
  font-size: .88em; line-height: 1.6; color: var(--u-text);
}
.u-check li::before{            /* チェックの丸 */
  content: ""; position: absolute; left: 0; top: .32em; width: .95em; height: .95em;
  border-radius: 50%; background: var(--u-grad);
}
.u-check li::after{             /* チェックの印 */
  content: ""; position: absolute; left: .3em; top: .5em; width: .32em; height: .5em;
  border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.u-pill{                         /* 丸いボタン */
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  background: var(--u-grad); color: #fff !important; font-weight: 700;
  padding: .85em 1.8em; border-radius: 999px;
  text-decoration: none !important;   /* 本文内のリンク装飾（下線）を打ち消す */
  white-space: nowrap;
  box-shadow: 0 8px 18px -8px rgba(123, 90, 238, .7);
  transition: transform .2s ease, box-shadow .2s ease;
}
.u-pill::after{ content: "→"; transition: transform .2s ease; }
.u-pill:hover{ transform: translateY(-2px); box-shadow: 0 12px 22px -8px rgba(123, 90, 238, .8); opacity: 1; }
.u-pill:hover::after{ transform: translateX(3px); }
.u-note-s{ margin: .6em 0 0; font-size: .72em; color: var(--u-muted); }

/* 2-1. サイドバー */
.u-side-cta{
  position: relative; overflow: hidden;
  background: linear-gradient(180deg, #F3F1FF 0%, #fff 58%);
  border: 1px solid #E4E0FB; border-radius: 14px;
  padding: 18px 16px 16px; text-align: left;
  box-shadow: 0 10px 28px -14px rgba(91, 70, 190, .35);
}
.u-side-cta::before{ content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--u-grad); }
.u-side-cta__img{ display: block; width: 100%; height: auto; margin: 6px 0 10px; transition: transform .35s ease; }
.u-side-cta:hover .u-side-cta__img{ transform: translateY(-4px) rotate(-.6deg); }
.u-side-cta__t{ margin: 0 0 .6em; font-size: 1.08em; font-weight: 800; line-height: 1.45; color: var(--u-ink); }
.u-side-cta .u-check li{ font-size: .82em; }
.u-side-cta .u-pill{ display: flex; font-size: .95em; padding: .85em 1em; }
.u-side-cta .u-note-s{ text-align: center; }

/* 4. 記事冒頭の結論枠 */
.u-lead{ border-left:4px solid var(--u-blue); background:var(--u-bg2);
  padding:1.1em 1.3em; border-radius:0 8px 8px 0; margin-bottom:1.8em; }
.u-lead p:last-child{ margin-bottom:0; }

/* 5. 記事下CTAカード */
.u-cta{ border:1px solid var(--u-mid); background:#F4F5FF; border-radius:10px; padding:1.4em 1.5em; }
.u-cta__t{ font-size:1.12em; font-weight:700; margin:0 0 .5em; color:var(--u-ink); }
.u-cta__b{ display:inline-block; background:var(--u-grad); color:#fff !important; font-weight:700;
  padding:.8em 2em; border-radius:6px; text-decoration:none; transition:opacity .2s ease; }
.u-cta__b:hover{ opacity:.88; }
/* 5-1. 記事末カード（左にビジュアル、右に中身）
   -guide … 資料請求（ブログパーツ175。導入ガイドの実物）
   -trial … トライアル（事例記事の記事末。assets/case-article/build.py の trial_card。UTAGEの管理画面） */
.u-cta.-card{
  position: relative; overflow: hidden;
  display: grid; grid-template-columns: minmax(0, 44%) 1fr; gap: 1.2em 1.8em; align-items: center;
  background: linear-gradient(135deg, #F3F1FF 0%, #fff 62%);
  border: 1px solid #E4E0FB; border-radius: 16px; padding: 1.8em 2em;
  box-shadow: 0 14px 34px -18px rgba(91, 70, 190, .35);
}
.u-cta.-card::before{ content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--u-grad); }
.u-cta.-card .u-free{ top: 16px; right: 16px; }
.u-cta__visual img{ display: block; width: 100%; height: auto; transition: transform .35s ease; }
.u-cta.-guide:hover .u-cta__visual img{ transform: translateY(-4px) rotate(-.6deg); }
.u-cta.-trial:hover .u-cta__visual img{ transform: translateY(-4px); }
.u-cta.-card .u-cta__t{ margin: 0 0 .45em; font-size: 1.3em; font-weight: 800; line-height: 1.4; }
.u-cta.-card .u-cta__lead{ margin: 0 0 .9em; }
.u-cta.-card p{ margin-bottom: 0; }
.u-cta.-trial{ grid-template-columns: minmax(0, 48%) 1fr; }   /* 画面は横長なので少し広く */
.u-cta__label{ font-size: .74em; font-weight: 700; color: var(--u-muted); margin: .2em 0 .35em !important; }
.u-chips,
.post_content .u-chips{ list-style: none; display: flex; flex-wrap: wrap; gap: .35em; margin: 0 0 .9em; padding: 0; }
.u-chips li{
  margin: 0; padding: .2em .7em; font-size: .76em; font-weight: 700; line-height: 1.6;
  color: var(--u-ink); background: #fff; border: 1px solid #D9D3FA; border-radius: 999px;
}
.u-chips li::before{ content: none; }
.u-cta__alt{ margin-top: .9em !important; padding-top: .8em; border-top: 1px dashed #E0DCF6; font-size: .8em; color: var(--u-muted); }
.u-cta__alt a{ font-weight: 700; }
@media (max-width: 600px){
  .u-cta.-card{ grid-template-columns: 1fr; padding: 1.4em 1.2em; text-align: left; }
  .u-cta__visual{ max-width: 340px; margin: 0 auto; }
  .u-cta.-card .u-cta__t{ font-size: 1.15em; }
  .u-cta.-card .u-pill{ display: flex; }
  .u-cta.-trial .u-pill{ white-space: normal; padding: .85em 1em; text-align: center; }   /* 文言が長く、320px幅で1行に収まらない */
}
/* 5-2. 資料請求カードは、どこを押しても資料請求ページへ（9/29 和泉様「ボタンの箇所じゃないと反応しないのは、見ている方の予測と異なる」）
   ボタンのリンクをカード全体に広げる。文章はテキストのまま残す（SEOのため画像1枚にはしない）
   ボタン自身の hover の transform は切る（transform があると広げた範囲がボタンに縮み、カーソルの下でちらつく） */
.u-cta.-guide,
.u-side-cta{ cursor: pointer; }
.u-cta.-guide .u-pill,
.u-side-cta .u-pill{ transform: none !important; }
.u-cta.-guide .u-pill::before,
.u-side-cta .u-pill::before{ content: ""; position: absolute; inset: 0; z-index: 2; }
.u-cta.-guide:hover .u-pill,
.u-side-cta:hover .u-pill{ box-shadow: 0 12px 22px -8px rgba(123, 90, 238, .8); }
.u-cta.-guide:hover .u-pill::after,
.u-side-cta:hover .u-pill::after{ transform: translateX(3px); }
/* 記事下CTAカードの本文 */
.u-cta__lead{ margin: 0 0 1em; font-size: .92em; line-height: 1.8; color: var(--u-muted); }

/* 6. 比較表 UTAGE列の強調 */
.wp-block-table.is-style-compare td.u,
.wp-block-table.is-style-compare th.u{ background:#EEF3FF; font-weight:700; }

/* 7. 本文の可読性 */
.post_content{ line-height:1.9; }
.post_content a{ text-decoration:underline; text-underline-offset:.18em; }

/* --------------------------------------------------------------------------
   8. トップ：ピックアップ（モック P-01「PICKUP / ピラー記事」）
   メインはサムネイルをカード全面に敷き、小見出しとタイトルを下端に重ねる
   （モックの .m-hero-main = justify-content:flex-end）。
   カードの高さはサブ2枚の積み上がりで決まり、min-height を下限として効かせる。
   -------------------------------------------------------------------------- */
.u-pickup{ margin-bottom: 2.2em; }
.u-pickup__grid{ display: grid; gap: 14px; grid-template-columns: 1fr; align-items: stretch; }
@media (min-width: 960px){
  .u-pickup__grid{ grid-template-columns: 1.6fr 1fr; }
}
.u-pickup__col{ display: grid; gap: 14px; }
.u-pickup__col.-subCol{ grid-auto-rows: 1fr; }
.u-pickup__card{ transition: box-shadow .2s ease, transform .2s ease; }
.u-pickup__card:hover{ transform: translateY(-2px); }
.u-pickup__ttl{ font-weight: 700; margin: 0; }

/* メイン（大）：画像を上、タイトルを下に分ける。
   以前は画像をカード全面に敷いてタイトルを重ねていたが、アイキャッチに見出しを入れる型
   （事例記事・assets/eyecatch-guide/）にしたため、画像の文字とタイトルが二重になった（2026-10-04）。
   画像は16:9を切らずに見せ、文字は白地に置く（どの画像に差し替えても読める）。 */
.u-pickup__card.-main{
  overflow: hidden; border-radius: 10px; background: #fff; border: 1px solid var(--u-line);
}
.u-pickup__card.-main:hover{ box-shadow: 0 8px 22px rgba(0,0,0,.10); }
.u-pickup__card.-main .u-pickup__link{
  display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none;
}
.u-pickup__card.-main .u-pickup__thumb{ position: relative; aspect-ratio: 16 / 9; background: var(--u-bg2); }
.u-pickup__img{ width: 100%; height: 100%; object-fit: cover; display: block; }
.u-pickup__card.-main .u-pickup__body{ flex: 1 1 auto; padding: 16px 20px 18px; }
.u-pickup__card.-main .u-pickup__ttl{ color: var(--u-ink); font-size: 1.2em; line-height: 1.5; }
.u-pickup__eyebrow{
  display: block; font-size: 11px; font-weight: 700; letter-spacing: .12em;
  color: var(--u-mid); margin-bottom: .45em;
}

/* サブ（小）：白ボックス＋枠線 */
.u-pickup__card.-sub{ background: #fff; border: 1px solid var(--u-line); border-radius: 8px; }
.u-pickup__card.-sub:hover{ box-shadow: 0 4px 14px rgba(0,0,0,.07); }
.u-pickup__card.-sub .u-pickup__link{ display: block; height: 100%; color: inherit; text-decoration: none; }
.u-pickup__card.-sub .u-pickup__body{ padding: 22px 16px 16px; } /* 上だけ広め。カテゴリ名がカード上端に貼り付いて見えないように */
.u-pickup__card.-sub .u-pickup__ttl{ font-size: .95em; line-height: 1.6; color: var(--u-ink); }
.u-pickup__cat{
  display: block; font-size: 11px; font-weight: 700; line-height: 1;
  color: var(--u-link); letter-spacing: .04em; margin-bottom: .6em;
}

/* ヘッダー帯：文字とアイコンを一段小さく */
.l-header__bar .c-catchphrase{ font-size: 11px; }
.l-header__bar .c-iconList__link{ font-size: 13px; }

/* --------------------------------------------------------------------------
   9. トップ：カテゴリタブ
   SWELL既定はPC4分割・SP2分割の固定幅。カテゴリ名が長いので
   モックどおり可変幅のピルにして折り返す
   -------------------------------------------------------------------------- */
.p-postListTab > .c-tabList{
  --the-tab-flex: 0 0 auto;
  --the-tab-flex_wrap: wrap;
  --the-tab-item-margin: 0 6px 6px 0;
  --the-tab-btn-padding: .6em 1.1em;
  justify-content: flex-start;
}
.p-postListTab .c-tabList__item{ padding: 0 !important; }
.p-postListTab .c-tabList__button{
  border-radius: 999px; font-size: 13px; font-weight: 500;
  border: 1px solid var(--u-line); background: #fff; opacity: 1;
}
.p-postListTab .c-tabList__button::before,
.p-postListTab .c-tabList__button::after{ display: none !important; }
.p-postListTab .c-tabList__button:hover{ border-color: var(--u-mid); color: var(--u-link); background: #fff; }
.p-postListTab .c-tabList__button[aria-selected="true"]{
  background: var(--u-grad); border-color: transparent; color: #fff; font-weight: 700;
}

/* --------------------------------------------------------------------------
   10. サイドバー：人気記事の順位バッジをブランド色に寄せる
   （SWELLの既定は金銀銅。メディアの記事ランキングでは主張が強いので単色にする）
   -------------------------------------------------------------------------- */
.-w-ranking .p-postList__item::before,
.-w-ranking .p-postList__item:first-child::before,
.-w-ranking .p-postList__item:nth-child(2)::before,
.-w-ranking .p-postList__item:nth-child(3)::before{
  background-color: var(--u-mid); background-image: none; border-radius: 3px;
}

/* --------------------------------------------------------------------------
   11. スマホ固定フッターのCTA（要件: スマホはハンバーガー＋固定フッターにCTA）
   -------------------------------------------------------------------------- */
/* SWELLはアイコン未指定の項目にも <i class=""> を出力する（アイコンはメニュー項目の
   「説明」欄にクラス名を書く仕様）。CTAはボタンなのでアイコンを付けていないが、
   空の <i> が20pxの箱として残り、文字がその下＝ボタンの下端に寄ってしまう。
   空アイコンだけを畳んで、ラベルをボタンの中央に置く。
   ※ラベルの文字サイズは他の項目(10px)と揃える。記事ページでは「目次」が増えて
     4分割(1枠97px)になるため、大きくすると収まらない。 */
#fix_bottom_menu .fixfoot-cta > a > i:not([class*="icon-"]){ display: none; }
/* ul.menu_list は align-items:center なので、放っておくと項目の高さは中身なりになる。
   他の項目はアイコン＋ラベルで34px、CTAはアイコンを畳んだので文字だけの14pxになってしまう。
   CTAだけ stretch させ、バーの高さいっぱいのボタンにする。 */
#fix_bottom_menu .fixfoot-cta{ align-self: stretch; display: flex; }
#fix_bottom_menu .fixfoot-cta > a{
  background: var(--u-grad); color: #fff !important; font-weight: 700;
  flex: 1 1 auto;
  display: flex; align-items: center; justify-content: center;
  padding: 0 .4em; line-height: 1.35; text-align: center;
}
#fix_bottom_menu .fixfoot-cta > a:hover{ opacity: .9; }

/* --------------------------------------------------------------------------
   12. トップページの余白
   ・#content の padding-top 64px は、記事ページではパンくずが入る場所。
     トップはSWELLがパンくずを出さない仕様なので、空白だけが残る。トップのみ詰める。
   ・SWELLはタブ枠に左右マージンを持たせているため、ピックアップや記事一覧と
     左端が揃わない。0 にして揃える。
   -------------------------------------------------------------------------- */
@media (min-width: 960px){
  .home #content{ padding-top: 48px; }
  /* ピックアップとタブの間。SWELL既定の64pxは下側(32px)の2倍で離れすぎ。
     ヘッダー直下と同じ48pxにして「区切り48 / 塊の中32」の2段階に揃える */
  .home .p-homeContent{ margin-top: 48px !important; } /* SWELLの .u-mt-40 が !important のため */
}
.p-postListTab{ margin-left: 0; margin-right: 0; }

/* --------------------------------------------------------------------------
   13. ラベルの色ルール（モック準拠）
   モックは「ラベル＝アクセント色の文字」「ボタン・選択状態＝アクセント色の塗り」で統一している。
   SWELL既定はカテゴリを白文字のチップでサムネイルに重ねるため、「投稿日時の横（beside_date）」に
   出す設定へ変え、ここで文字色をブランド色にする。フォルダのアイコンはモックに無いので出さない。
   -------------------------------------------------------------------------- */
.p-postList__cat{ color: var(--u-link); font-weight: 700; }
.p-postList__cat.icon-folder::before{ display: none; }
/* モックはカテゴリを見出しの上に置いている。カード型のみメタ行を見出しの前へ */
.p-postList.-type-card .p-postList__body{ display: flex; flex-direction: column; }
.p-postList.-type-card .p-postList__meta{ order: -1; margin-bottom: .4em; }

/* --------------------------------------------------------------------------
   14. ヘッダーのメディア名（ロゴの右に並べる / モック P-01）
   ロゴ画像は「Uマーク＋UTAGE」まで。メディア名は画像に焼かずテキストで置く。
   -------------------------------------------------------------------------- */
.c-headLogo{ display: flex; align-items: center; gap: .6em; }
/* ロゴの上下余白。SWELL既定は 16px でヘッダーが厚くなるため詰める。
   PC限定にすること。SWELLは .c-headLogo__link 側にも上下10pxを持っており、
   スマホでは枠(40px)から二重に引かれてロゴが20pxまで潰れる（2026-09-15 実測）。 */
@media (min-width: 960px){
  .-series .l-header__logo{ padding-top: 10px; padding-bottom: 10px; }
}
.c-headLogo__link{ display: inline-flex; align-items: center; }
.u-mediaName{
  font-size: 17px; font-weight: 700; line-height: 1; white-space: nowrap;
  letter-spacing: .02em;
  /* ロゴのUマークと同じグラデーション。背景を文字型に切り抜く */
  background: var(--u-grad);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  /* 背景クリップ非対応の環境では単色にフォールバックする */
  @supports not (background-clip: text){ color: var(--u-link); -webkit-text-fill-color: currentColor; }
}
@media (max-width: 959px){
  /* スマホはロゴが中央。名称は一段小さくして収める */
  .u-mediaName{ font-size: 13px; }
}


/* --------------------------------------------------------------------------
   15. フッター（要件10章 / O-06）
   配色はブランド青 #58A3E6 の色相208度を保った暗色。白文字で16.7:1、
   淡色 #C9D3DE で11.0:1。いずれも WCAG AA を大きく上回る。
   -------------------------------------------------------------------------- */
:root{
  --u-foot-bg:   #151F28;  /* 色相208度・彩度30%・明度12% */
  --u-foot-text: #C9D3DE;
  --u-foot-line: rgba(255,255,255,.12);
}
.l-footer{ background: var(--u-foot-bg) !important; color: var(--u-foot-text) !important; }
.l-footer a{ color: var(--u-foot-text); text-decoration: none; }
.l-footer a:hover{ color: #A9D3F5; }

.u-foot{ padding: 56px 0 8px; }
/* 「このメディアについて」列は固定ページが無い間は出ないので、
   列数が 3 でも 4 でも隙間ができないフレックスにする */
.u-foot__grid{ display: flex; flex-wrap: wrap; gap: 36px 48px; }
.u-foot__brand{ flex: 1 1 100%; }
.u-foot__col{ flex: 1 1 100%; }
@media (min-width: 600px){
  /* ロゴ34px + 溝9.6px + 名称141.4px = 245px（2026-09-24 実測）。
     220px だと名称が「UTAGE公式メディ／ア」で折り返す */
  .u-foot__brand{ flex: 1 1 250px; max-width: 280px; }
  .u-foot__col{ flex: 0 1 auto; min-width: 140px; }
  /* カテゴリは2列。最長「会員サイト・オンライン講座」が208px必要なので
     2列分 208*2 + 溝24 = 440px を下限にする（実測値ベース） */
  .u-foot__col.-cats{ flex: 1 1 440px; max-width: 480px; }
}
@media (min-width: 960px){
  .u-foot__grid{ gap: 48px 64px; justify-content: space-between; }
}

/* 名称は途中で割らない。列が足りないときはロゴの下へ落とす（幅を詰めるより読める） */
.u-foot__logo{ display: inline-flex; align-items: center; gap: .6em; flex-wrap: wrap; }
.u-foot__logoImg{ width: auto; height: 34px; }
.u-foot__name{
  font-size: 15px; font-weight: 700; letter-spacing: .02em; white-space: nowrap;
  background: var(--u-grad); -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}
.u-foot__lead{
  margin: 1em 0 0; font-size: 13px; line-height: 1.9;
  color: rgba(201,211,222,.78); max-width: 24em;
}

.u-foot__h{
  font-size: 12px; font-weight: 700; letter-spacing: .1em;
  color: #fff; margin: 0 0 1.1em; padding: 0;
}
.u-foot__list{ list-style: none; margin: 0; padding: 0; }
.u-foot__list li{ margin: 0 0 .85em; }
.u-foot__list a{ font-size: 13.5px; line-height: 1.6; }
/* カテゴリ名が伸びたときに中途半端な位置で折れないようにする */
.u-foot__list.-two a{ word-break: keep-all; overflow-wrap: anywhere; }
@media (min-width: 600px){
  /* カテゴリは8件あるので2列に割る */
  .u-foot__list.-two{ display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
}

.u-foot__cta{
  display: inline-block; margin-top: 1.2em;
  background: var(--u-grad); color: #fff !important;
  font-size: 13px; font-weight: 700; line-height: 1;
  padding: .95em 1.4em; border-radius: 6px;
  transition: opacity .2s ease, transform .2s ease;
}
.u-foot__cta:hover{ opacity: .88; transform: translateY(-1px); color: #fff !important; }

/* 最下段（SWELL標準のコピーライト行） */
.l-footer__foot{ border-top: 1px solid var(--u-foot-line); margin-top: 40px; }
.l-footer__foot .copyright{
  font-size: 12px; color: rgba(201,211,222,.62); padding: 22px 0;
}
/* フッターメニューはカテゴリ列と重複するので出さない */
.l-footer__nav{ display: none; }

/* --------------------------------------------------------------------------
   16. 追尾サイドバーの停止位置
   SWELLは top を「8px + --swl-fix_headerH」で決めるが、この変数はロゴを大きく
   する前の高さ(66px)のまま更新されず、実際の固定ヘッダー(98px)に食い込む。
   変数に頼らず、実測したヘッダー高さ + 余白24px を直接指定する。
   ヘッダーの高さを変えたら、この値も見直すこと。
   -------------------------------------------------------------------------- */
@media (min-width: 960px){
  .w-fixSide{
    /* SWELLの margin-top: 2.5em(40px) が top に上乗せされるため、それを打ち消す。
       margin-top は「追尾前に直前のウィジェットと空ける間隔」、
       top は「追尾中にヘッダーから空ける間隔」。この2つは独立して効く。
       実測: margin-top:32px / top:58px のとき 追尾中は -6px だった。
       24px にするため top を +30px して 88px にしている。 */
    top: 88px;
    margin-top: 32px;
    max-height: calc(100vh - 130px - 16px);
  }
  .admin-bar .w-fixSide{ top: 120px; }            /* 管理バー32px分を足す */
}


/* --------------------------------------------------------------------------
   17. スマートフォン最適化（〜959px）
   iPhone相当（幅390px）で実測したところ、1本目の記事が y=858px＝2画面分下にあった。
   内訳は ヘッダー60 / 余白56 / ピックアップ428 / 余白56 / タブ183。
   半分近くが「余白」と「タブの折り返し」で、写真と記事に面積が回っていなかった。
   ここでその配分を組み直す。数値はすべて実測に基づく。
   -------------------------------------------------------------------------- */
@media (max-width: 959px){

  /* ロゴが指定の半分（20px）しか出ていなかった。
     SWELLはスマホで枠 --logo_size_sp(=40px) の内側の .c-headLogo__link に
     さらに上下10pxを置くため、画像に20pxしか残らない（2026-09-15 実測）。
     枠とヘッダー高(60px)は動かさず、内側の余白だけ詰めてロゴを32pxにする。 */
  .-img .c-headLogo__link{ padding-top: 4px; padding-bottom: 4px; }
  /* ロゴ枠(40px)がそのままヘッダー高になるため、上下に余白を戻して56pxにする。
     ロゴ自体は32pxのまま（枠の内側の余白は上で4pxに詰めてある） */
  .l-header__logo{ padding-top: 8px; padding-bottom: 8px; }
  .u-mediaName{ font-size: 15px; }   /* 32pxのロゴと釣り合う大きさ。13pxでは負ける */

  /* ヘッダー直下。SWELLの .top #content{padding-top:4em}(=56px) が効いている。
     トップはパンくずが入らないので、ここは純粋な空白にしかならない */
  .home #content{ padding-top: 22px; }

  /* --- ピックアップ --- */
  .u-pickup{ margin-bottom: 0; }              /* 下の余白は .p-homeContent 側で一本化する */
  .u-pickup__grid{ gap: 10px; }
  .u-pickup__col{ gap: 10px; }

  .u-pickup__card.-main .u-pickup__body{ padding: 13px 15px 15px; }
  .u-pickup__card.-main .u-pickup__ttl{ font-size: 1.08em; line-height: 1.5; }

  /* サブ：PCは文字だけの白箱でよいが、スマホでは
     ①写真が無く情報量が乏しい ②高さを揃えるため短いタイトルのカードに空白が残る
     の2点が出る。サムネイル付きの横型にして、高さは内容なりにする */
  .u-pickup__col.-subCol{ grid-auto-rows: auto; }
  .u-pickup__card.-sub{ overflow: hidden; }   /* サムネの角を親の角丸で切る */
  .u-pickup__card.-sub .u-pickup__link{ display: flex; align-items: stretch; height: auto; }
  .u-pickup__card.-sub .u-pickup__thumb{
    position: relative;
    flex: 0 0 104px; align-self: stretch; overflow: hidden; background: var(--u-bg2);
  }
  .u-pickup__card.-sub .u-pickup__img{ width: 100%; height: 100%; object-fit: cover; display: block; }
  .u-pickup__card.-sub .u-pickup__body{
    flex: 1 1 auto; min-width: 0; padding: 12px 14px;
    display: flex; flex-direction: column; justify-content: center;
  }
  .u-pickup__card.-sub .u-pickup__cat{ margin-bottom: .45em; }
  .u-pickup__card.-sub .u-pickup__ttl{
    font-size: .9em; line-height: 1.55;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
  }
  .u-pickup__card:hover{ transform: none; }   /* 指で触れて浮くのは邪魔なだけ */

  /* ピックアップとタブの間 */
  .home .p-homeContent{ margin-top: 26px !important; }  /* SWELLの .u-mt-40 が !important のため */

  /* --- カテゴリタブ ---
     9件を折り返すと5行=183pxを占め、記事が画面外へ押し出される。
     1行の横スクロールにする。右端で次のピルが切れて見えるのが、そのまま
     「横に続いている」という合図になるので、矢印やフェードは足さない */
  .p-postListTab > .c-tabList{
    --the-tab-flex_wrap: nowrap;
    --the-tab-item-margin: 0 6px 0 0;
    --the-tab-btn-padding: .95em 1.15em;   /* 実測 約40px。ピルの行高が1.0なので em を大きめに取る */
    overflow-x: auto; overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    scrollbar-width: none; -ms-overflow-style: none;
  }
  .p-postListTab > .c-tabList::-webkit-scrollbar{ display: none; }
  .p-postListTab .c-tabList__item{ scroll-snap-align: start; }
  .p-postListTab .c-tabList__button{ white-space: nowrap; }
}

/* PCはモック P-01 どおり、サブは文字だけの白ボックスに戻す。
   サムネイルのマークアップは出しているが、ここで隠す（表示されないので読み込まれない） */
@media (min-width: 960px){
  .u-pickup__card.-sub .u-pickup__thumb{ display: none; }
}


/* --------------------------------------------------------------------------
   18. 404ページ（要件 P-14「案内文 / 検索窓 / 人気記事 / トップへ」＋汎用CTA）
   中身は functions.php の get_search_form フィルタで差し込んでいる。
   [utage_popular] はサイドバー用のリスト型なので、サムネイルの幅が
   親要素の36%＝868px幅では312pxまで伸びてしまう（実測）。
   本文カラムに置いても成立するように、サムネ幅を固定して縦の空きを詰める。
   -------------------------------------------------------------------------- */
.u-404{ margin-top: 2.6em; }
.u-404__popular{ margin-bottom: 2.4em; }
.u-404__popular .p-postList__item{ margin-bottom: 1em; }
.u-404__popular .p-postList__link{ align-items: center; gap: 16px; }
.u-404__popular .p-postList__thumb{
  flex: 0 0 auto;
  width: clamp(96px, 22vw, 160px);   /* スマホ96px / PC160px。%指定だと横に伸び切る */
}
.u-404__popular .p-postList__body{
  flex: 1 1 0; min-width: 0; width: auto;   /* SWELL既定の width:60% のままだと、余った幅の分だけ
                                    サムネと本文が187px離れる（実測）。基準を0にしないと、
                                    長いタイトルの記事だけ本文がサムネの下へ落ちる（10/6 実測） */
}
.u-404__cta{ text-align: center; }
.u-404__cta .u-cta__t{ margin-bottom: .4em; }
.u-404__cta p{ margin-bottom: 1.1em; }


/* --------------------------------------------------------------------------
   19. 記事の書式（要件「見出しデザイン: H2=下線(メインカラー)、H3=左ボーダー」）
   H3の左ボーダーはSWELLの設定（見出し3のデザイン = 左に縦線）で足りる。
   H2は SWELL に「下線」の選択肢が無い（帯・塗り潰し・左線・付箋・ステッチ・
   ふきだし・上下線・1文字目のみ）。そのため見出し2のデザインは「装飾なし」にして、
   下線はここで作る。SWELLがH3で使っている「2色の下線」と同じ語彙に揃える。
   -------------------------------------------------------------------------- */
.post_content h2{
  position: relative;
  border-bottom: 2px solid var(--u-line);
  padding-bottom: .45em;
}
/* 下線の左側だけブランド色。線なので文字コントラストの制約は受けない */
.post_content h2::after{
  content: ""; position: absolute; left: 0; bottom: -2px;
  width: 4em; height: 2px; background: var(--u-grad);
}


/* 本文ブロックを記事カラムの左端に揃える（2026-09-17）
   SWELLは記事本文に左右余白を持たせ（--swl-pad_post_content、PC16px）、
   H2 だけ --swl-h2-margin--x（PC -16px / SP -2vw）でその分を外へ戻している。
   塗りつぶしの見出しなら「見出しだけ幅いっぱい」で成立するが、
   本サイトのH2は下線タイプなので、見た目には本文が16px内側にずれるだけになる
   （実測 PC：カラムとタイトルとH2が48px、本文の段落だけ64px）。
   スマホは逆に本文の余白が0なのでH2だけ8pxはみ出していた。
   余白と打ち消しの両方を0にして、タイトル・H2・本文・図をすべて同じ左端に置く。
   padding を直接書くと .l-mainContent__inner > .post_content（詳細度0,2,0）に負けるため、
   SWELLが用意している変数の側を0にする。 */
.post_content{
  --swl-pad_post_content: 0px;
  --swl-h2-margin--x: 0px;
}
/* 自前のブロックに、SWELLのリスト用パディングが入るのを打ち消す（2026-09-17）
   SWELLは .post_content ol, .post_content ul（詳細度0,1,1）に
   --swl-list-padding--left を入れている。ファネル図も結果サマリも中身は
   <ol>/<ul> なので、クラス1つ（0,1,0）で書いた自前の padding が負けていた。
     ファネル図    … 左に24px入り、カードだけ本文より右にずれる（右端は本文と一致）
     結果サマリ    … 左24px／右16pxの非対称になり、枠の中で中身が右に寄る
   --swl-list-padding--left を0にすると本文中の普通の箇条書きまで潰れるので、
   変数は触らず、.post_content を頭に付けて詳細度を(0,2,1)に上げて打ち消す。 */
.post_content .u-funnel{ padding-left: 0; }
.post_content .u-result__list{ padding: 14px; }
@media (min-width: 768px){
  .post_content .u-result__list{ padding: 16px; }
}


/* --------------------------------------------------------------------------
   20. 記事テンプレート（パターン）用（タスク3-3）
   tpl-* の非同期パターンには【】付きの執筆メモ（.u-tplNote）が入っている。
   執筆時に書き換える前提だが、消し忘れても読者の目には触れないようにする。
   編集画面（.editor-styles-wrapper）では通常の段落として見えるので、書き手は消せる。
   ※消し忘れたメモはHTMLには残るため、公開前チェック（7-1）で grep する。
   -------------------------------------------------------------------------- */
.post_content .u-tplNote{ display: none; }

/* 記事内CTA①。SWELLボタン（計測ON）を「テキストリンク」の見た目にする。
   要件書 F-02「冒頭はテキストリンク」と 13章「SWELLボタン＋クリック計測ON」は、
   素のリンクにすると計測が効かず、ボタンにすると見た目が要件と違う——という矛盾がある。
   SWELLボタンのまま装飾だけ剥がして両立させる。
   ※ブログパーツに入れると計測が効かないので、必ず本文に直置きする */
.post_content .u-ctaInline{ margin: 1.6em 0; font-weight: 700; }
.post_content .u-ctaInline a,
.post_content .swell-block-button.u-ctaInline .swell-block-button__link{
  display: inline; min-width: 0;
  background: none; border: 0; box-shadow: none;
  padding: 0 0 .1em;
  color: var(--u-link); font-weight: 700; text-decoration: none;
  border-bottom: 2px solid var(--u-blue);
}
.post_content .u-ctaInline a::before,
.post_content .swell-block-button.u-ctaInline .swell-block-button__link::before{
  content: "▶"; font-size: .8em; margin-right: .5em; color: var(--u-mid);
}
.post_content .u-ctaInline a:hover,
.post_content .swell-block-button.u-ctaInline .swell-block-button__link:hover{
  border-bottom-color: var(--u-purple); opacity: 1; transform: none;
}
/* SWELLボタンの中の span も素に戻す */
.post_content .swell-block-button.u-ctaInline .swell-block-button__link span{
  display: inline; font-size: inherit;
}


/* ----------------------------------------------------------------------
   21. 事例のファネル図（タスク6-4）
   元のPDFは横7列。390pxのスマホでは1列60pxになり読めない。
   SVGで作ると拡大縮小してしまい、同じ図なのに文字がPC20.7px/SP13.2pxと
   1.6倍ずれた（2026-09-16 実測）。本文が常に16pxなので統一感が崩れる。
   そのためHTML+CSSで組み、画面幅でレイアウトごと組み替える。
   文字サイズは本文基準のまま変わらない。

   PCの配置は12列グリッド。ステップ数ごとに 4 / 3+2 / 3+3 / 4+3 / 4+4 / 3+3+3 に
   割り、どの行も必ず端まで埋まるようにしている（4列固定だと40枚中30枚で
   最終行に穴が空き、図が片側に寄って見えた。2026-09-17 修正）。
   進行は蛇行（ボストロフェドン）。奇数行は左→右、偶数行は右→左。
   ---------------------------------------------------------------------- */
.u-funnel{
  list-style: none; margin: 2em 0; padding: 0;
  counter-reset: fnl;
  display: grid; gap: 12px;
}
.u-funnel__step{ counter-increment: fnl; position: relative; }
/* 枠はカード側に持たせる。注記をカードの外に出すことで、
   注記の有無でカードの高さが変わらなくなる（元のPDFも注記はボックスの外） */
.u-funnel__card{
  position: relative;
  border: 1px solid var(--u-line); border-radius: 10px;
  background: #fff; padding: 14px 16px 14px 46px;
}
/* 番号バッジ。進行がブランド色で青→紫に変わる */
.u-funnel__card::before{
  content: counter(fnl);
  position: absolute; left: 12px; top: 14px;
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--u-mid); color: #fff;
  font-size: 12px; font-weight: 700; line-height: 22px; text-align: center;
}
.u-funnel__step:nth-child(1) .u-funnel__card::before{ background: #58A3E6; }
.u-funnel__step:nth-child(2) .u-funnel__card::before{ background: #6699EC; }
.u-funnel__step:nth-child(3) .u-funnel__card::before{ background: #7B8FF0; }
.u-funnel__step:nth-child(4) .u-funnel__card::before{ background: #8A80F2; }
.u-funnel__step:nth-child(5) .u-funnel__card::before{ background: #9773F4; }
.u-funnel__step:nth-child(6) .u-funnel__card::before{ background: #A268F5; }
.u-funnel__step:nth-child(n+7) .u-funnel__card::before{ background: #A75FF5; }

.u-funnel__ttl{ display: block; font-weight: 700; line-height: 1.5; color: var(--u-ink); }
/* 日本語の折り返し。line-break:strict だけでは「オファ／ー」の割れが止まらなかったため、
   文節単位で折り返す auto-phrase を併用する（非対応ブラウザは通常の折り返しに戻るだけ） */
.u-funnel__ttl, .u-funnel__sub, .u-funnel__note{
  line-break: strict;
  word-break: auto-phrase;
}
.u-funnel__sub{ display: block; font-size: .86em; color: var(--u-muted); line-height: 1.6; margin-top: .2em; }
/* 注記はカードの外。左に少し寄せて「この段への補足」だと分かるようにする */
.u-funnel__note{
  margin: 8px 0 0 14px; padding: .55em .8em;
  background: var(--u-bg2); border-radius: 7px;
  font-size: .82em; color: var(--u-muted); line-height: 1.7;
}

/* スマホ：1列の縦積み。段の間を縦線でつなぐ。
   ＊必ずメディアクエリで囲うこと。囲わないとPCの矢印(::after)と衝突する（実測で発覚） */
@media (max-width: 959px){
  .u-funnel__step + .u-funnel__step::after{
    content: ""; position: absolute; left: 22px; top: -12px;
    width: 2px; height: 12px; background: var(--u-line);
  }
}

/* PC：12列グリッドに組み替える */
@media (min-width: 960px){
  .u-funnel{ grid-template-columns: repeat(12, 1fr); gap: 30px 30px; align-items: start; }
  .u-funnel__card{ padding: 14px; min-height: 5.4em; }
  .u-funnel__card::before{ position: static; display: block; margin-bottom: .5em; }
  .u-funnel__note{ margin-left: 0; }

  /* 矢印の共通形。位置と向きだけステップ数ごとに上書きする */
  .u-funnel__step::after{
    content: ""; position: absolute; top: 30px;
    width: 12px; height: 12px;
    border-right: 2px solid var(--u-mid); border-top: 2px solid var(--u-mid);
  }

  /* 4ステップ：4 で1行も欠けない */
  .u-funnel.-n4 .u-funnel__step:nth-child(1){ grid-area: 1 / 1 / auto / span 3; }
  .u-funnel.-n4 .u-funnel__step:nth-child(2){ grid-area: 1 / 4 / auto / span 3; }
  .u-funnel.-n4 .u-funnel__step:nth-child(3){ grid-area: 1 / 7 / auto / span 3; }
  .u-funnel.-n4 .u-funnel__step:nth-child(4){ grid-area: 1 / 10 / auto / span 3; }
  .u-funnel.-n4 .u-funnel__step:nth-child(1)::after{ right: -21px; left: auto; transform: rotate(45deg); }
  .u-funnel.-n4 .u-funnel__step:nth-child(2)::after{ right: -21px; left: auto; transform: rotate(45deg); }
  .u-funnel.-n4 .u-funnel__step:nth-child(3)::after{ right: -21px; left: auto; transform: rotate(45deg); }
  .u-funnel.-n4 .u-funnel__step:nth-child(4)::after{ display: none; }

  /* 5ステップ：3+2 で1行も欠けない */
  .u-funnel.-n5 .u-funnel__step:nth-child(1){ grid-area: 1 / 1 / auto / span 4; }
  .u-funnel.-n5 .u-funnel__step:nth-child(2){ grid-area: 1 / 5 / auto / span 4; }
  .u-funnel.-n5 .u-funnel__step:nth-child(3){ grid-area: 1 / 9 / auto / span 4; }
  .u-funnel.-n5 .u-funnel__step:nth-child(4){ grid-area: 2 / 7 / auto / span 6; }
  .u-funnel.-n5 .u-funnel__step:nth-child(5){ grid-area: 2 / 1 / auto / span 6; }
  .u-funnel.-n5 .u-funnel__step:nth-child(1)::after{ right: -21px; left: auto; transform: rotate(45deg); }
  .u-funnel.-n5 .u-funnel__step:nth-child(2)::after{ right: -21px; left: auto; transform: rotate(45deg); }
  .u-funnel.-n5 .u-funnel__step:nth-child(3)::after{ left: 50%; right: auto; top: auto; bottom: -22px; margin-left: -6px; transform: rotate(135deg); }
  .u-funnel.-n5 .u-funnel__step:nth-child(4)::after{ left: -21px; right: auto; transform: rotate(-135deg); }
  .u-funnel.-n5 .u-funnel__step:nth-child(5)::after{ display: none; }

  /* 6ステップ：3+3 で1行も欠けない */
  .u-funnel.-n6 .u-funnel__step:nth-child(1){ grid-area: 1 / 1 / auto / span 4; }
  .u-funnel.-n6 .u-funnel__step:nth-child(2){ grid-area: 1 / 5 / auto / span 4; }
  .u-funnel.-n6 .u-funnel__step:nth-child(3){ grid-area: 1 / 9 / auto / span 4; }
  .u-funnel.-n6 .u-funnel__step:nth-child(4){ grid-area: 2 / 9 / auto / span 4; }
  .u-funnel.-n6 .u-funnel__step:nth-child(5){ grid-area: 2 / 5 / auto / span 4; }
  .u-funnel.-n6 .u-funnel__step:nth-child(6){ grid-area: 2 / 1 / auto / span 4; }
  .u-funnel.-n6 .u-funnel__step:nth-child(1)::after{ right: -21px; left: auto; transform: rotate(45deg); }
  .u-funnel.-n6 .u-funnel__step:nth-child(2)::after{ right: -21px; left: auto; transform: rotate(45deg); }
  .u-funnel.-n6 .u-funnel__step:nth-child(3)::after{ left: 50%; right: auto; top: auto; bottom: -22px; margin-left: -6px; transform: rotate(135deg); }
  .u-funnel.-n6 .u-funnel__step:nth-child(4)::after{ left: -21px; right: auto; transform: rotate(-135deg); }
  .u-funnel.-n6 .u-funnel__step:nth-child(5)::after{ left: -21px; right: auto; transform: rotate(-135deg); }
  .u-funnel.-n6 .u-funnel__step:nth-child(6)::after{ display: none; }

  /* 7ステップ：4+3 で1行も欠けない */
  .u-funnel.-n7 .u-funnel__step:nth-child(1){ grid-area: 1 / 1 / auto / span 3; }
  .u-funnel.-n7 .u-funnel__step:nth-child(2){ grid-area: 1 / 4 / auto / span 3; }
  .u-funnel.-n7 .u-funnel__step:nth-child(3){ grid-area: 1 / 7 / auto / span 3; }
  .u-funnel.-n7 .u-funnel__step:nth-child(4){ grid-area: 1 / 10 / auto / span 3; }
  .u-funnel.-n7 .u-funnel__step:nth-child(5){ grid-area: 2 / 9 / auto / span 4; }
  .u-funnel.-n7 .u-funnel__step:nth-child(6){ grid-area: 2 / 5 / auto / span 4; }
  .u-funnel.-n7 .u-funnel__step:nth-child(7){ grid-area: 2 / 1 / auto / span 4; }
  .u-funnel.-n7 .u-funnel__step:nth-child(1)::after{ right: -21px; left: auto; transform: rotate(45deg); }
  .u-funnel.-n7 .u-funnel__step:nth-child(2)::after{ right: -21px; left: auto; transform: rotate(45deg); }
  .u-funnel.-n7 .u-funnel__step:nth-child(3)::after{ right: -21px; left: auto; transform: rotate(45deg); }
  .u-funnel.-n7 .u-funnel__step:nth-child(4)::after{ left: 50%; right: auto; top: auto; bottom: -22px; margin-left: -6px; transform: rotate(135deg); }
  .u-funnel.-n7 .u-funnel__step:nth-child(5)::after{ left: -21px; right: auto; transform: rotate(-135deg); }
  .u-funnel.-n7 .u-funnel__step:nth-child(6)::after{ left: -21px; right: auto; transform: rotate(-135deg); }
  .u-funnel.-n7 .u-funnel__step:nth-child(7)::after{ display: none; }

  /* 8ステップ：4+4 で1行も欠けない */
  .u-funnel.-n8 .u-funnel__step:nth-child(1){ grid-area: 1 / 1 / auto / span 3; }
  .u-funnel.-n8 .u-funnel__step:nth-child(2){ grid-area: 1 / 4 / auto / span 3; }
  .u-funnel.-n8 .u-funnel__step:nth-child(3){ grid-area: 1 / 7 / auto / span 3; }
  .u-funnel.-n8 .u-funnel__step:nth-child(4){ grid-area: 1 / 10 / auto / span 3; }
  .u-funnel.-n8 .u-funnel__step:nth-child(5){ grid-area: 2 / 10 / auto / span 3; }
  .u-funnel.-n8 .u-funnel__step:nth-child(6){ grid-area: 2 / 7 / auto / span 3; }
  .u-funnel.-n8 .u-funnel__step:nth-child(7){ grid-area: 2 / 4 / auto / span 3; }
  .u-funnel.-n8 .u-funnel__step:nth-child(8){ grid-area: 2 / 1 / auto / span 3; }
  .u-funnel.-n8 .u-funnel__step:nth-child(1)::after{ right: -21px; left: auto; transform: rotate(45deg); }
  .u-funnel.-n8 .u-funnel__step:nth-child(2)::after{ right: -21px; left: auto; transform: rotate(45deg); }
  .u-funnel.-n8 .u-funnel__step:nth-child(3)::after{ right: -21px; left: auto; transform: rotate(45deg); }
  .u-funnel.-n8 .u-funnel__step:nth-child(4)::after{ left: 50%; right: auto; top: auto; bottom: -22px; margin-left: -6px; transform: rotate(135deg); }
  .u-funnel.-n8 .u-funnel__step:nth-child(5)::after{ left: -21px; right: auto; transform: rotate(-135deg); }
  .u-funnel.-n8 .u-funnel__step:nth-child(6)::after{ left: -21px; right: auto; transform: rotate(-135deg); }
  .u-funnel.-n8 .u-funnel__step:nth-child(7)::after{ left: -21px; right: auto; transform: rotate(-135deg); }
  .u-funnel.-n8 .u-funnel__step:nth-child(8)::after{ display: none; }

  /* 9ステップ：3+3+3 で1行も欠けない */
  .u-funnel.-n9 .u-funnel__step:nth-child(1){ grid-area: 1 / 1 / auto / span 4; }
  .u-funnel.-n9 .u-funnel__step:nth-child(2){ grid-area: 1 / 5 / auto / span 4; }
  .u-funnel.-n9 .u-funnel__step:nth-child(3){ grid-area: 1 / 9 / auto / span 4; }
  .u-funnel.-n9 .u-funnel__step:nth-child(4){ grid-area: 2 / 9 / auto / span 4; }
  .u-funnel.-n9 .u-funnel__step:nth-child(5){ grid-area: 2 / 5 / auto / span 4; }
  .u-funnel.-n9 .u-funnel__step:nth-child(6){ grid-area: 2 / 1 / auto / span 4; }
  .u-funnel.-n9 .u-funnel__step:nth-child(7){ grid-area: 3 / 1 / auto / span 4; }
  .u-funnel.-n9 .u-funnel__step:nth-child(8){ grid-area: 3 / 5 / auto / span 4; }
  .u-funnel.-n9 .u-funnel__step:nth-child(9){ grid-area: 3 / 9 / auto / span 4; }
  .u-funnel.-n9 .u-funnel__step:nth-child(1)::after{ right: -21px; left: auto; transform: rotate(45deg); }
  .u-funnel.-n9 .u-funnel__step:nth-child(2)::after{ right: -21px; left: auto; transform: rotate(45deg); }
  .u-funnel.-n9 .u-funnel__step:nth-child(3)::after{ left: 50%; right: auto; top: auto; bottom: -22px; margin-left: -6px; transform: rotate(135deg); }
  .u-funnel.-n9 .u-funnel__step:nth-child(4)::after{ left: -21px; right: auto; transform: rotate(-135deg); }
  .u-funnel.-n9 .u-funnel__step:nth-child(5)::after{ left: -21px; right: auto; transform: rotate(-135deg); }
  .u-funnel.-n9 .u-funnel__step:nth-child(6)::after{ left: 50%; right: auto; top: auto; bottom: -22px; margin-left: -6px; transform: rotate(135deg); }
  .u-funnel.-n9 .u-funnel__step:nth-child(7)::after{ right: -21px; left: auto; transform: rotate(45deg); }
  .u-funnel.-n9 .u-funnel__step:nth-child(8)::after{ right: -21px; left: auto; transform: rotate(45deg); }
  .u-funnel.-n9 .u-funnel__step:nth-child(9)::after{ display: none; }
}

/* ----------------------------------------------------------------------
   22. 事例記事の結果サマリ（リサーチ資料 05章「数字を3つ、カードで先出し」）
   記事の一番上に置く。読者はここだけ見て「自分に関係あるか」を判断する。
   構成は Before → After の3行グリッドで固定し、3枚の高さと行位置を揃える。
   3点目が Before/After でない事例（「本業の合間に」等）でも同じ枠に収まる。
   ---------------------------------------------------------------------- */
.u-result{
  margin: 0 0 2em;
  border: 1px solid var(--u-line);
  border-radius: 12px;
  background: var(--u-bg2);
  overflow: hidden;
}
/* 見出し帯。ブランドのグラデーションを細く使い、記事本文と明確に分ける */
.u-result__hd{
  padding: .6em 1em;
  background: linear-gradient(135deg, #58A3E6, #A75FF5);
  color: #fff;
  font-size: 12px; font-weight: 700; letter-spacing: .1em; line-height: 1.5;
}
.u-result__list{
  list-style: none; margin: 0; padding: 14px;
  display: grid; gap: 12px;
}
/* 3行を明示する。ラベル／Before／After が3枚とも同じ高さに並ぶ */
.u-result__item{
  display: grid;
  grid-template-rows: auto auto 1fr;
  background: #fff;
  border: 1px solid var(--u-line);
  border-radius: 10px;
  padding: 14px 16px;
}
.u-result__label{
  font-size: 11px; font-weight: 700; letter-spacing: .08em; line-height: 1;
  color: var(--u-mid);
  margin-bottom: .7em;
}
/* Before。矢印は擬似要素で出すので本文に「→」を書かない */
.u-result__from{
  position: relative;
  font-size: .84em; line-height: 1.5;
  color: var(--u-muted);
  padding-bottom: 1.5em;
}
.u-result__from::after{
  content: ""; position: absolute; left: 2px; bottom: .35em;
  width: 8px; height: 8px;
  border-right: 2px solid var(--u-line);
  border-bottom: 2px solid var(--u-line);
  transform: rotate(45deg);
}
.u-result__to{
  font-size: .98em; font-weight: 700; line-height: 1.45;
  color: var(--u-ink);
  align-self: end;
}
/* 数字だけを大きく。一覧で目に入るのは結局この一語なので、ここに寄せる */
.u-result__to b{
  display: inline-block;
  font-size: 1.5em; font-weight: 700; line-height: 1.15;
  color: var(--u-mid);
  font-feature-settings: "tnum";
  margin-right: .1em;
}
/* 日本語の折り返し。ファネル図と同じ扱いに揃える */
.u-result__from, .u-result__to{ line-break: strict; word-break: auto-phrase; }

@media (min-width: 768px){
  .u-result__list{ grid-template-columns: repeat(3, 1fr); gap: 14px; padding: 16px; }
}

/* ----------------------------------------------------------------------
   23. 本人の声（事例記事）
   事例集PDFは本文の約8割が本人の一人称で書かれている。他社メディア4サイトは
   全社これを三人称に均していて、生の声を載せていない（2026-09-17 実査）。
   一人称をそのまま載せられるのはUTAGEだけの材料なので、専用の枠を用意する。

   SWELLのふきだしブロックは話者をカスタマイザーに登録する方式で、事例40人分は
   登録できない。そのため画像を記事側で指定できる形で自前で持つ。
   画像が無くても崩れないよう、顔は :has() ではなく要素の有無で吸収している。
   ---------------------------------------------------------------------- */
.u-voice{
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas: "face body" ".    name";
  gap: 0 14px;
  margin: 1.8em 0;
}
/* 画像が無い場合は1列に畳む */
.u-voice.-noface{ grid-template-columns: 1fr; grid-template-areas: "body" "name"; }

.u-voice__face{
  grid-area: face;
  width: 56px; height: 56px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid var(--u-line);
  margin-top: 6px;
}
/* 吹き出し本体。左に三角のしっぽを出す */
.u-voice__body{
  grid-area: body;
  position: relative;
  margin: 0;
  padding: 16px 18px;
  background: var(--u-bg2);
  border: 1px solid var(--u-line);
  border-radius: 12px;
  quotes: none;
}
.u-voice__body::before,
.u-voice__body::after{ content: none; }   /* SWELLのblockquote装飾を打ち消す */
.u-voice__body > p{ margin: 0; line-height: 1.9; }
.post_content .u-voice__body > p + p{ margin-top: 1.2em; }   /* 長い言葉は段落に分けている（assets/_tools/paragraph.py）。分かれ目が見えるよう広めに（10/18） */

/* しっぽ。枠線と背景で2枚重ねて、1pxの線が途切れないようにする */
.u-voice:not(.-noface) .u-voice__body::before{
  content: ""; position: absolute; left: -9px; top: 20px;
  width: 0; height: 0;
  border: 9px solid transparent;
  border-right-color: var(--u-line);
  border-left: 0;
}
.u-voice:not(.-noface) .u-voice__body::after{
  content: ""; position: absolute; left: -8px; top: 20px;
  width: 0; height: 0;
  border: 9px solid transparent;
  border-right-color: var(--u-bg2);
  border-left: 0;
}
.u-voice__name{
  grid-area: name;
  margin-top: .5em;
  font-size: .82em;
  color: var(--u-muted);
}
@media (max-width: 480px){
  .u-voice{ grid-template-columns: auto 1fr; gap: 0 10px; }
  .u-voice__face{ width: 44px; height: 44px; }
  .u-voice__body{ padding: 14px 15px; }
}

/* ===== ガイド記事用のブロック（assets/article/build.py が出す） ===== */

/* 機能名＋説明の定義リスト。機能を並べる節で使う */
.post_content .u-defs{ margin: 1.6em 0; }
.post_content .u-defs dt{
  font-weight: 700; color: var(--u-ink); line-height: 1.7;
  padding-left: .9em; border-left: 3px solid var(--u-mid);
}
.post_content .u-defs dd{
  margin: .4em 0 1.2em; padding-left: .9em;
  line-height: 1.9; color: var(--u-text);
}
.post_content .u-defs dd:last-child{ margin-bottom: 0; }
/* 画面の画像（build.py の shot）。左上に「UTAGEの画面」のラベル、細い線と角丸、控えめな影（2026-09-29 主君が7案から選んだ案E）
   元の大きさより引き伸ばさない（小さい画像の文字が大きくなりすぎる）。縦長の画像は高さで抑える */
.post_content .u-shot{ margin: 1em 0 1.8em; width: fit-content; max-width: 100%; }   /* 下にも余白。説明文のすぐ下に次の段落が貼り付いていた（2026-10-04） */   /* 説明文を画像の幅の中で中央に置くため、枠を画像の幅に合わせる */
/* 画像を押すと重ねて拡大（SWELL標準のLuminous。10/6 和泉様）。以前は <a> で別タブに開いていた */
.post_content .u-shot__frame{
  display: block; position: relative; width: fit-content; max-width: 100%; padding-top: 14px;
  transition: transform .25s ease; cursor: zoom-in;
}
.post_content .u-shot__frame:hover{ transform: translateY(-2px); }
.post_content .u-shot__tag{
  position: absolute; top: 0; left: 12px; z-index: 1;
  font-size: .7rem; font-weight: 700; letter-spacing: .06em; line-height: 1.6;
  color: #fff; background: var(--u-grad); padding: .2em .8em; border-radius: 999px;
}
.post_content .u-shot img{
  display: block; width: auto; max-width: 100%; max-height: 520px; height: auto; margin: 0;
  border: 1px solid #DDE0EA; border-radius: 10px; background: #fff;
  box-shadow: 0 8px 20px -14px rgba(40, 40, 90, .35);
}
.post_content .u-shot figcaption{ margin-top: .55em; text-align: center; font-size: .78em; line-height: 1.6; color: var(--u-muted); }
@media (max-width: 600px){
  .post_content .u-shot__tag{ left: 10px; font-size: .65rem; }
  .post_content .u-shot img{ border-radius: 8px; }
}

/* 見出し付きの枠。対比（ツールを組み合わせる場合 / UTAGEの場合）や補足のまとまりに使う */
.post_content .u-box{
  margin: 1.8em 0; padding: 1.3em 1.5em;
  border: 1px solid var(--u-line); border-radius: 10px; background: #fff;
}
.post_content .u-box__ttl{
  font-weight: 700; color: var(--u-ink); line-height: 1.6;
  margin: 0 0 .7em; padding-bottom: .55em;
  border-bottom: 1px solid var(--u-line);
}
.post_content .u-box p{ margin: 0; line-height: 1.9; }
.post_content .u-box p + p{ margin-top: .8em; }

/* 編集部の補足。本文より一段弱くして、本文と地続きに見せない */
.post_content .u-note{
  margin: 1.4em 0; padding: .9em 1.1em;
  background: var(--u-bg2); border-radius: 8px;
  font-size: .9em; line-height: 1.85; color: var(--u-muted);
}

/* 事例記事へのリンク。カードにはせず、行で並べる（本数が多いため） */
.post_content .u-caseLinks{
  margin: 1.6em 0; padding: 0; list-style: none;
  border-top: 1px solid var(--u-line);
}
.post_content .u-caseLinks li{
  margin: 0; border-bottom: 1px solid var(--u-line);
}
.post_content .u-caseLinks a{
  display: block; padding: .85em .2em .85em 1.4em; position: relative;
  color: var(--u-text); text-decoration: none; line-height: 1.7;
}
.post_content .u-caseLinks a::before{
  content: "▶"; position: absolute; left: 0; top: .95em;
  font-size: .72em; color: var(--u-mid);
}
.post_content .u-caseLinks a:hover{ color: var(--u-link); background: var(--u-bg2); }

@media (max-width: 480px){
  .post_content .u-box{ padding: 1.1em 1.1em; }
  .post_content .u-defs dt,
  .post_content .u-defs dd{ padding-left: .7em; }
}

/* 機能全体像の図（u-map）。assets/article/build.py の map ブロック。
   事例のファネル図と同じ方針で、画像にせずHTMLで組む
   （SPで文字が潰れない・文言の修正に再書き出しが要らない） */
.post_content .u-map{
  margin: 1.8em 0; padding: 1.4em 1.5em;
  border: 1px solid var(--u-line); border-radius: 12px; background: var(--u-bg2);
}
.post_content .u-map__cap{
  margin: 0 0 1.1em; font-size: .88em; font-weight: 700; color: var(--u-muted);
}
.post_content .u-map__flow{
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
  margin: 0; padding: 0; list-style: none; counter-reset: none;
}
.post_content .u-map__flow.-n4{ grid-template-columns: repeat(4, 1fr); }   /* 4段の流れは1行に並べる（3列だと4つ目だけ2行目に落ちる） */
.post_content .u-map__phase{
  position: relative; margin: 0; padding: 1em 1.1em;
  background: #fff; border: 1px solid var(--u-line); border-radius: 10px;
}
/* 列と列のあいだの矢印。最後の列には出さない */
.post_content .u-map__phase + .u-map__phase::before{
  content: ""; position: absolute; left: -12px; top: 50%;
  width: 0; height: 0; transform: translateY(-50%);
  border: 6px solid transparent; border-left-color: var(--u-mid); border-right: 0;
}
.post_content .u-map__no{
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.7em; height: 1.7em; border-radius: 50%;
  background: var(--u-grad); color: #fff; font-size: .78em; font-weight: 700;
}
.post_content .u-map__ttl{
  margin: .5em 0 .7em; font-size: .95em; font-weight: 700;
  line-height: 1.55; color: var(--u-ink);
}
.post_content .u-map__items{ margin: 0; padding: 0; list-style: none; }
.post_content .u-map__items li{
  margin: 0 0 .35em; padding-left: 1em; position: relative;
  font-size: .88em; line-height: 1.7; color: var(--u-text);
}
.post_content .u-map__items li::before{
  content: ""; position: absolute; left: 0; top: .72em;
  width: 5px; height: 5px; border-radius: 50%; background: var(--u-mid);
}
.post_content .u-map__items li:last-child{ margin-bottom: 0; }
/* 3列すべてに横断でかかる帯 */
.post_content .u-map__band{
  margin-top: 12px; padding: 1em 1.1em;
  background: #fff; border: 1px dashed var(--u-mid); border-radius: 10px;
}
.post_content .u-map__band .u-map__ttl{ margin-top: 0; }
.post_content .u-map__band .u-map__items{
  display: flex; flex-wrap: wrap; gap: 0 1.6em;
}
.post_content .u-map__foot{
  margin: 1em 0 0; font-size: .85em; line-height: 1.75; color: var(--u-muted);
}
@media (max-width: 600px){
  .post_content .u-map{ padding: 1.1em 1.1em; }
  .post_content .u-map__flow, .post_content .u-map__flow.-n4{ grid-template-columns: 1fr; gap: 20px; }
  /* 縦積みでは矢印も下向きにする */
  .post_content .u-map__phase + .u-map__phase::before{
    left: 50%; top: -16px; transform: translateX(-50%);
    border: 6px solid transparent; border-top-color: var(--u-mid); border-bottom: 0;
  }
}

/* 判断チャート（u-chart）。比較記事の「選び方」で使う。
   分岐を線で描かず、質問カードを縦に並べる（SPで潰れないため） */
.post_content .u-chart{
  margin: 1.8em 0; padding: 1.4em 1.5em;
  border: 1px solid var(--u-mid); border-radius: 12px; background: #F7F8FF;
}
.post_content .u-chart__cap{
  margin: 0 0 1.1em; font-size: .88em; font-weight: 700; color: var(--u-muted);
}
.post_content .u-chart__q{
  padding: 1em 1.1em; background: #fff;
  border: 1px solid var(--u-line); border-radius: 10px;
}
.post_content .u-chart__q + .u-chart__q{ margin-top: 12px; }
.post_content .u-chart__ttl{
  margin: 0 0 .8em; font-weight: 700; line-height: 1.6; color: var(--u-ink);
}
.post_content .u-chart__no{
  display: inline-block; margin-right: .6em; padding: .1em .55em;
  border-radius: 4px; background: var(--u-grad); color: #fff;
  font-size: .78em; font-weight: 700; vertical-align: .1em;
}
.post_content .u-chart__as{ margin: 0; padding: 0; list-style: none; }
/* 答えの列は幅を決めて固定し、行き先は残りの幅で折り返す。
   以前は 1fr auto＋行き先 nowrap で、行き先が長いと答えの列が1文字幅まで潰れていた（2026-10-04 主君指摘「両方使う」が縦書きに） */
.post_content .u-chart__as li{
  display: grid; grid-template-columns: minmax(8.5em, 12em) 1fr; align-items: baseline; gap: .4em 1.2em;
  padding: .6em 0; border-top: 1px dashed var(--u-line); line-height: 1.7;
}
.post_content .u-chart__a{ font-size: .92em; color: var(--u-text); }
/* 行き先。矢印は擬似要素で置く（文字列に混ぜると読み上げで邪魔になる） */
.post_content .u-chart__to{
  font-size: .9em; font-weight: 700; color: var(--u-link);
}
.post_content .u-chart__to::before{ content: "→ "; color: var(--u-mid); }
.post_content .u-chart__foot{
  margin: 1em 0 0; font-size: .85em; line-height: 1.75; color: var(--u-muted);
}
@media (max-width: 600px){
  .post_content .u-chart{ padding: 1.1em 1.1em; }
  /* 狭い画面では行き先を次の行へ落とす。横に並べると2文字ずつで折れる */
  .post_content .u-chart__as li{ grid-template-columns: 1fr; gap: .25em; }
}

/* 記事の表（assets/article/build.py が出す）。列数ごとに最小幅を決める。
   列が3つ以上ある表を390pxに押し込むと、1行2〜3文字まで潰れる（2026-09-24 実測）。
   収まらないときは枠の中だけを横スクロールさせ、本文は横に動かさない */
.post_content .wp-block-table.u-tbl{ overflow-x: auto; }
.post_content .u-tbl table{ min-width: 100%; }
.post_content .u-tbl.-c3 table{ min-width: 480px; }
.post_content .u-tbl.-c4 table{ min-width: 680px; }
/* 料金プランの表のように、セルが短く横に並べて比べる表は画面幅に収める（build.py の fit） */
.post_content .u-tbl.-fit table{ min-width: 100%; }
.post_content .u-tbl.-fit th:first-child,
.post_content .u-tbl.-fit td:first-child{ width: 36%; }
/* 4列の表は1列目がタイプ名・項目名なので、そこだけは折り返さない */
.post_content .u-tbl.-c4 th:first-child,
.post_content .u-tbl.-c4 td:first-child{ white-space: nowrap; }
/* 比べる表（左上のマスが空いている表）は、比べる列の幅をそろえる。
   中身の長さで幅が決まると、短い方の列が潰れて1行数文字になる（2026-10-23 主君指摘）。
   1列目は項目名なので狭くし、折り返してよい */
.post_content .u-tbl table:has(> thead th:first-child:empty){ table-layout: fixed; }
.post_content .u-tbl table:has(> thead th:first-child:empty) :is(th, td):first-child{ width: 24%; white-space: normal; }
.post_content .u-tbl.-c4 table:has(> thead th:first-child:empty) :is(th, td):first-child{ width: 20%; }


/* ===== 記事の図解ブロック（assets/article/build.py の photo / cover / scenes / handoff / bars / check / people / fit）
   2026-10-04 主君「文字だけでは読みづらい、飽きないか」。画像にせずHTMLで組む方針は u-map と同じ
   （SPで文字が潰れない・文言の修正に再書き出しが要らない・読み上げにも乗る） ===== */

/* 画面読み上げにだけ渡す文字 */
.u-sr{ position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* 写真（生成した写真など）。画面の画像（u-shot）と違いラベルを付けない */
/* 本文幅いっぱいだと画面を占めすぎる（PCで高さ475px）。720pxまでにして中央に置く */
.post_content .u-photo{ margin: 1.8em auto; max-width: 720px; }
.post_content .u-photo img{ display: block; width: 100%; height: auto; border-radius: 12px; }

/* タイプ×販売の流れの一覧 */
.post_content .u-cover{
  margin: 1.8em 0; padding: 1.3em 1.4em 1.1em;
  border: 1px solid var(--u-line); border-radius: 12px; background: var(--u-bg2);
}
.post_content .u-cover__cap{ margin: 0 0 .9em; font-size: .88em; font-weight: 700; color: var(--u-muted); text-align: left; }
.post_content .u-cover table{ width: 100%; margin: 0; border-collapse: separate; border-spacing: 0 6px; table-layout: fixed; }
.post_content .u-cover th,
.post_content .u-cover td{ border: 0; padding: .55em .4em; text-align: center; vertical-align: middle; background: #fff; }
.post_content .u-cover thead th{
  background: transparent; padding: 0 .3em .2em; font-size: .78em; font-weight: 700; line-height: 1.45; color: var(--u-muted);
}
.post_content .u-cover thead th:first-child{ width: 30%; }
.post_content .u-cover tbody th{
  text-align: left; padding-left: .9em; font-size: .9em; font-weight: 700; color: var(--u-ink);
  border-radius: 8px 0 0 8px;
}
.post_content .u-cover tbody td:last-child{ border-radius: 0 8px 8px 0; }
.post_content .u-cover tbody tr:last-child th,
.post_content .u-cover tbody tr:last-child td{ background: #F1F0FF; }
.post_content .u-cover__m{
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.9em; height: 1.9em; border-radius: 50%; font-size: .85em; font-weight: 700; line-height: 1;
}
.post_content .u-cover__m.-main{ background: var(--u-grad); color: #fff; }
.post_content .u-cover__m.-maybe{ background: #fff; color: #9AA0B4; border: 1px solid #D6D9E4; }
.post_content .u-cover__legend{ margin: .6em 0 0; font-size: .8em; color: var(--u-muted); }
.post_content .u-cover__legend .u-cover__m{ width: 1.6em; height: 1.6em; margin: 0 .3em 0 0; font-size: .8em; vertical-align: -.1em; }

/* 売り方ごとの例のカード */
.post_content .u-scenes{ display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; margin: 1.6em 0; }
.post_content .u-scene{
  position: relative; padding: 1.2em 1.2em 1.1em; background: #fff;
  border: 1px solid var(--u-line); border-radius: 12px; overflow: hidden;
}
.post_content .u-scene::before{ content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--u-grad); }
.post_content .u-scene__ttl{ margin: 0 0 .8em; font-weight: 700; line-height: 1.55; color: var(--u-ink); }
.post_content .u-scene__lbl{ margin: .9em 0 .35em; font-size: .74em; font-weight: 700; letter-spacing: .06em; color: var(--u-mid); }
.post_content .u-scene__tags{ display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.post_content .u-scene__tags li{
  margin: 0; padding: .2em .7em; font-size: .8em; line-height: 1.6; color: var(--u-ink);
  background: #F1F0FF; border-radius: 999px;
}
.post_content .u-scene__tags li::before{ content: none; }
.post_content .u-scene__txt{ margin: 0; font-size: .88em; line-height: 1.8; color: var(--u-text); }

/* 受け渡し箇所の図 */
.post_content .u-handoff{
  margin: 1.8em 0; padding: 1.3em 1.4em;
  border: 1px solid var(--u-line); border-radius: 12px; background: var(--u-bg2);
}
.post_content .u-handoff__cap{ margin: 0 0 1em; font-size: .88em; font-weight: 700; color: var(--u-muted); }
.post_content .u-handoff__row + .u-handoff__row{ margin-top: 1.2em; padding-top: 1.2em; border-top: 1px dashed #D6D9E4; }
.post_content .u-handoff__lbl{ margin: 0 0 .6em; font-size: .9em; font-weight: 700; color: var(--u-ink); }
.post_content .u-handoff__flow{ display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.post_content .u-handoff__flow.-one{
  padding: 10px; border: 2px solid transparent; border-radius: 12px;
  background: linear-gradient(#fff, #fff) padding-box, var(--u-grad) border-box;
}
.post_content .u-handoff__step{
  padding: .5em .9em; font-size: .88em; font-weight: 700; line-height: 1.4; color: var(--u-ink);
  background: #fff; border: 1px solid var(--u-line); border-radius: 8px;
}
.post_content .u-handoff__flow.-one .u-handoff__step{ background: #F1F0FF; border-color: transparent; }
.post_content .u-handoff__arw{ width: 0; height: 0; border: 5px solid transparent; border-left: 7px solid var(--u-mid); border-right: 0; }
.post_content .u-handoff__joint{
  display: inline-flex; align-items: center; gap: .35em;
  padding: .3em .7em; font-size: .76em; font-weight: 700; line-height: 1.3; color: #9A5B00;
  background: #FFF6E5; border: 1px dashed #F0B54A; border-radius: 999px;
}
.post_content .u-handoff__dot{
  display: inline-flex; align-items: center; justify-content: center; width: 1.3em; height: 1.3em;
  border-radius: 50%; background: #F0A21E; color: #fff; font-size: .85em;
}
.post_content .u-handoff__note{ margin: .6em 0 0; font-size: .84em; line-height: 1.75; color: var(--u-muted); }

/* 横棒の比べ */
.post_content .u-bars{
  margin: 1.8em 0; padding: 1.3em 1.4em;
  border: 1px solid var(--u-line); border-radius: 12px; background: #fff;
}
.post_content .u-bars__cap{ margin: 0 0 .4em; font-size: .88em; font-weight: 700; color: var(--u-muted); }
.post_content .u-bars__grp{ margin: 1em 0 .45em; font-size: .88em; font-weight: 700; color: var(--u-ink); }
.post_content .u-bars__row{ display: grid; grid-template-columns: 5.5em 1fr 4.5em; align-items: center; gap: 10px; margin: 0 0 6px; }
.post_content .u-bars__name{ font-size: .84em; color: var(--u-text); }
.post_content .u-bars__track{ display: block; height: 14px; border-radius: 999px; background: #EEF0F6; overflow: hidden; }
.post_content .u-bars__bar{ display: block; height: 100%; border-radius: 999px; background: var(--u-blue); }
.post_content .u-bars__bar.-n1{ background: var(--u-purple); }
.post_content .u-bars__val{ font-size: .88em; font-weight: 700; text-align: right; color: var(--u-ink); }
.post_content .u-bars__note{ margin: 1em 0 0; font-size: .84em; line-height: 1.75; color: var(--u-muted); }

/* チェックリスト（本文用）。クラス名は u-todo。u-check は資料請求カードのリスト（3章）が先に使っている（10/4 にぶつけて全記事のカードを崩した） */
.post_content .u-todo{
  margin: 1.8em 0; padding: 1.3em 1.4em;
  border: 2px solid transparent; border-radius: 12px;
  background: linear-gradient(#fff, #fff) padding-box, var(--u-grad) border-box;
}
.post_content .u-todo__ttl{ margin: 0 0 .8em; font-weight: 700; color: var(--u-ink); }
.post_content .u-todo ul{ margin: 0; padding: 0; list-style: none; }
.post_content .u-todo li{
  position: relative; margin: 0; padding: .5em 0 .5em 2em; line-height: 1.7;
  border-top: 1px dashed var(--u-line); font-size: .94em; color: var(--u-text);
}
.post_content .u-todo li:first-child{ border-top: 0; }
.post_content .u-todo li::before{
  content: ""; position: absolute; left: 0; top: .78em; width: 1.15em; height: 1.15em;
  border: 2px solid var(--u-mid); border-radius: 4px; background: #fff;
}
.post_content .u-todo li::after{
  content: ""; position: absolute; left: .38em; top: .9em; width: .38em; height: .68em;
  border: solid var(--u-mid); border-width: 0 2px 2px 0; transform: rotate(45deg);
}

/* 事例の人（写真付き） */
.post_content .u-people{ display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; margin: 1.6em 0; }
.post_content .u-person{ padding: 1.1em 1.2em; background: #fff; border: 1px solid var(--u-line); border-radius: 12px; }
.post_content .u-person__head{
  display: grid; grid-template-columns: 56px 1fr; grid-template-areas: "face name" "face role";
  align-items: center; column-gap: 12px; margin: 0 0 .8em; text-decoration: none;
}
.post_content .u-person__face{ grid-area: face; width: 56px; height: 56px; margin: 0; border-radius: 50%; object-fit: cover; }
.post_content .u-person__name{ grid-area: name; align-self: end; font-weight: 700; color: var(--u-link); line-height: 1.4; }
.post_content .u-person__head:hover .u-person__name{ text-decoration: underline; }
.post_content .u-person__role{ grid-area: role; align-self: start; font-size: .78em; color: var(--u-muted); line-height: 1.5; }
.post_content .u-person__rows{ margin: 0; }
.post_content .u-person__rows dt{ margin: .7em 0 .2em; font-size: .74em; font-weight: 700; letter-spacing: .06em; color: var(--u-mid); }
.post_content .u-person__rows dd{ margin: 0; font-size: .88em; line-height: 1.8; color: var(--u-text); }

/* 向いている／向いていない */
.post_content .u-fit{ display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 1.6em 0; }
.post_content .u-fit__col{ padding: 1.1em 1.2em; border-radius: 12px; }
.post_content .u-fit__col.-good{ background: #EEF6FD; }
.post_content .u-fit__col.-bad{ background: #F5F5F7; }
.post_content .u-fit__ttl{ display: flex; align-items: center; gap: .5em; margin: 0 0 .7em; font-weight: 700; color: var(--u-ink); }
.post_content .u-fit__ttl::before{
  display: inline-flex; align-items: center; justify-content: center; width: 1.6em; height: 1.6em;
  border-radius: 50%; font-size: .85em; color: #fff;
}
.post_content .u-fit__col.-good .u-fit__ttl::before{ content: "○"; background: var(--u-blue); }
.post_content .u-fit__col.-bad .u-fit__ttl::before{ content: "×"; background: #9AA0B4; }
.post_content .u-fit ul{ margin: 0; padding: 0; list-style: none; }
.post_content .u-fit li{ position: relative; margin: 0 0 .45em; padding-left: 1em; font-size: .92em; line-height: 1.75; color: var(--u-text); }
.post_content .u-fit li::before{ content: ""; position: absolute; left: 0; top: .75em; width: 5px; height: 5px; border-radius: 50%; background: var(--u-mid); }
.post_content .u-fit li:last-child{ margin-bottom: 0; }

@media (max-width: 600px){
  .post_content .u-cover,
  .post_content .u-handoff,
  .post_content .u-bars,
  .post_content .u-todo{ padding: 1.1em 1em; }
  .post_content .u-cover thead th{ font-size: .7em; }
  .post_content .u-cover tbody th{ padding-left: .6em; font-size: .8em; }
  .post_content .u-cover thead th:first-child{ width: 34%; }
  .post_content .u-fit{ grid-template-columns: 1fr; }
  .post_content .u-bars__row{ grid-template-columns: 4.5em 1fr 4em; gap: 8px; }
}

/* まとめ記事の成果表の直下に置く条件の注記（build.py の case の table_note） */
.post_content .u-tableNote{ margin: -.6em 0 1.4em; font-size: .8em; line-height: 1.7; color: var(--u-muted); }


/* --------------------------------------------------------------------------
   27. ヘッダーのナビにカテゴリ8つを並べる（2026-10-06「決済」を追加）
   9項目にするとナビが幅を取り、ロゴ画像が縮んで24pxまで潰れた（実測）。
   ロゴは縮ませず、狭いPC幅（960〜1279px）ではナビの文字と余白を詰めて収める。
   -------------------------------------------------------------------------- */
@media (min-width: 960px){
  .l-header__logo,
  .l-fixHeader__logo{ flex-shrink: 0; }
}
@media (min-width: 960px) and (max-width: 1279px){
  .l-header .c-gnav > li > a,
  .l-fixHeader .c-gnav > li > a{ padding-left: 7px; padding-right: 7px; }
  .c-gnav > .menu-item > a .ttl{ font-size: 13px; }
  .c-gnav > li.header-cta > a{ padding: .55em .9em !important; margin-left: .3em; }
  .u-mediaName{ font-size: 15px; }
}
/* 1149px以下はメディア名まで並べると入りきらない。ロゴ画像（UTAGE）とナビを優先し、名前は隠す */
@media (min-width: 960px) and (max-width: 1149px){
  .l-header .u-mediaName,
  .l-fixHeader .u-mediaName{ display: none; }
}


/* --------------------------------------------------------------------------
   28. 検索して0件だったとき（functions.php の swell_post_list_404_text）
   検索窓 → カテゴリ → 新しい記事 → 資料請求。新しい記事と資料請求は404ページ（18章）と同じ部品
   -------------------------------------------------------------------------- */
.u-noResult__lead{ margin: 0 0 1em; }
.u-noResult .c-searchForm{ margin-bottom: 2.4em; }
.u-noResult__cats{ margin-bottom: 2.6em; }
.u-noResult__h{ margin: 0 0 .8em; font-size: 1em; font-weight: 700; color: var(--u-ink); }
.u-noResult__cats ul{ display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.u-noResult__cats a{
  display: inline-block; padding: .45em 1em; border: 1px solid var(--u-line); border-radius: 999px;
  background: #fff; color: var(--u-text); font-size: .88em; text-decoration: none;
}
.u-noResult__cats a:hover{ border-color: var(--u-blue); color: var(--u-link); }
.u-noResult .u-404{ margin-top: 0; }


/* --------------------------------------------------------------------------
   29. スマホメニューの下（[utage_spmenu]：検索窓＋このメディアについて）
   -------------------------------------------------------------------------- */
.u-spMenuLinks__search{ margin: 0 0 2em; }
/* 見出し→リストの間隔を上の「MENU」とそろえる（SWELLは .p-spMenu__nav 内のリストだけ上に詰めている） */
.u-spMenuLinks .c-listMenu{ margin-top: -14px; }


/* --------------------------------------------------------------------------
   30. トップページのヘッダー直下の検索の帯（functions.php の utage_searchbar）
   2026-10-13：検索はトライアルボタンの隣に置かず、ヘッダーの下の段へ（Lステップ公式ブログの形）
   -------------------------------------------------------------------------- */
.u-searchbar{ background: #F2F6FC; border-bottom: 1px solid #E3EAF4; }
.u-searchbar__inner{ display: flex; align-items: center; gap: 16px 36px; padding-top: 24px; padding-bottom: 24px; }
.u-searchbar__form{ position: relative; flex: 0 0 46%; margin: 0; }
.u-searchbar__form input{
  width: 100%; height: 54px; padding: 0 64px 0 20px; border: 1px solid #D6DEEA; border-radius: 8px;
  background: #fff; font-size: 16px; color: var(--u-text);
}
.u-searchbar__form input:focus{ outline: none; border-color: var(--u-blue); box-shadow: 0 0 0 3px rgba(88,163,230,.2); }
.u-searchbar__form button{
  position: absolute; top: 6px; right: 6px; width: 42px; height: 42px; border: 0; border-radius: 6px;
  background: var(--u-grad); color: #fff; font-size: 18px; cursor: pointer;
}
.u-searchbar__kw p{ margin: 0 0 8px; font-size: 13px; font-weight: 700; color: var(--u-muted); }
.u-searchbar__kw ul{ display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.u-searchbar__kw a{
  display: inline-block; padding: .35em .95em; border: 1px solid #C9DAF0; border-radius: 999px;
  background: #fff; color: var(--u-link); font-size: 14px; text-decoration: none;
}
.u-searchbar__kw a:hover{ border-color: var(--u-blue); background: #EAF3FC; }
@media (max-width: 959px){
  .u-searchbar__inner{ display: block; padding-top: 16px; padding-bottom: 16px; }
  .u-searchbar__form{ margin-bottom: 12px; }
  .u-searchbar__form input{ height: 48px; }
  .u-searchbar__form button{ top: 5px; width: 38px; height: 38px; }
  .u-searchbar__kw p{ display: none; }
}
/* サイドバーの一番上（[utage_sidesearch]）。帯と同じ部品を、サイドバーの幅で使う */
.u-sideSearch{ margin: 0 0 8px; }
.u-sideSearch input{ height: 48px; font-size: 15px; }
.u-sideSearch button{ top: 5px; width: 38px; height: 38px; }
/* トップ・検索結果では中身が空になるので、枠の余白も消す */
.c-widget:empty{ display: none; }

/* 画面の画像の枠の形（build.py の shot に title があるとき。2026-10-31 主君が MOSH の見せ方から選んだ）
   外の枠の幅は本文にそろえ、白いカードは画像の大きさに合わせて縮める。上に札、見出しは「この画面で分かること」、下に画面の名前と場所 */
.post_content .u-shot.-panel{
  width: auto; margin: 2em 0; padding: 22px 26px 20px; border-radius: 18px; text-align: center;
  background: linear-gradient(135deg, #EAF3FD 0%, #F1EBFD 100%);
}
.post_content .u-shot.-panel .u-shot__tag{ position: static; display: inline-block; margin: 0 .6em 0 0; vertical-align: middle; }   /* 札と見出しは横に並べる（2026-10-31 主君） */
.post_content .u-shot.-panel .u-shot__ttl{
  display: inline; vertical-align: middle; font-size: 1.12em; font-weight: 800; line-height: 1.5;
  background: var(--u-grad); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.post_content .u-shot.-panel .u-shot__frame{
  display: table; margin: .85em auto 0; padding: 12px; background: #fff; border-radius: 12px;   /* table：画像の幅に縮めたまま、次の行に中央寄せで置く */
  max-width: 80%;   /* PCは枠の8割まで。まわりの色の余白を残す（2026-10-31 主君「ちょっとデカくない？」） */
  box-shadow: 0 10px 30px rgba(60, 60, 120, .12);
}
.post_content .u-shot.-panel img{ border: 0; box-shadow: none; border-radius: 6px; max-height: 420px; }
.post_content .u-shot.-panel figcaption{ margin-top: .9em; }
@media (max-width: 600px){
  .post_content .u-shot.-panel{ padding: 16px 12px 14px; border-radius: 14px; }
  .post_content .u-shot.-panel .u-shot__frame{ padding: 8px; max-width: 100%; }
  .post_content .u-shot.-panel .u-shot__ttl{ font-size: 1em; }
}

/* 画像の見せ方 A（build.py の photo に look: wide）。本文と同じ幅・角丸の枠。上下の何もない背景は画像を切って詰める（2026-10-31 主君が B と見比べて選んだ） */
.post_content .u-photo.-wide{ max-width: none; margin: 1.6em 0; }
.post_content .u-photo.-wide img{ border-radius: 14px; }

