/* フォントは @import ではなく header.php で非同期読み込み（2026-08-26・PageSpeed対応）。
   @import はレンダリングをブロックする直列リクエストになるため削除した。 */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --blue: #2a6d99;
  --blue-mid: #3a8cbd;
  --blue-light: #e8f4fb;
  --blue-pale: #f0f8ff;
  --red: #c0504d;
  --red-light: #fde8e8;
  --text: #1a2533;
  --text-mid: #4a5568;
  /* 旧 #8c9bb0 は白地で 2.83:1 ／ --bg 上で 2.68:1 ＝ WCAG AA（4.5:1）未達。
     これを 10〜13px で使う箇所が20以上ある（記事カードの日付11px、
     シミュレーターの指標ラベル10px、免責文12.5px、パンくず12px ほか）。
     #5f6d82 で白地 5.26:1 ／ --bg 上 4.99:1 ＝ AA を満たす。
     （#6b7a90 では白地 4.36:1・--bg 上 4.14:1 で足りない。--bg が
       白でないぶん、白地だけ見て決めると落ちる。）
     本文 --text-mid は 7.53:1 なので、淡い文字としての差は保てている。
     2026-10-03・COM-013 の共通トークン。**ここより明るい色に戻さないこと。** */
  --text-muted: #5f6d82;
  --bg: #f7f9fc;
  --white: #ffffff;
  --border: #e2e8f0;
  --green: #06C755;
  --nav-h: 64px;
  --max: 1100px;
  --r: 12px;
  --r-sm: 8px;
  --shadow-sm: 0 1px 4px rgba(0,0,0,0.07);
  --shadow: 0 4px 20px rgba(0,0,0,0.08);
  --shadow-lg: 0 12px 40px rgba(0,0,0,0.12);
}

html { scroll-behavior: smooth; }
body { font-family: 'Noto Sans JP', sans-serif; color: var(--text); background: var(--white); line-height: 1.7; }

/* **リンクは必ずどこでも折り返す。** 出典を裸URLで書く箇所があり、これが無いと
   509px の <a> がページ全体を押し広げる（/simulation/ が 375px 指定でも 555px
   になり、実機で約68%に縮小表示されていた）。記事側では .lab-single__body の
   overflow:hidden に切られて出典が読めなくなる。2026-10-02 実測。
   日本語は元々どこでも折り返すので見た目は変わらない。nowrap 指定のある
   ナビ等は nowrap が優先されるため影響しない。 */
a { overflow-wrap: anywhere; }

/* ── NAV ── */
.lab-nav { position: fixed; top: 0; left: 0; right: 0; height: var(--nav-h); background: rgba(255,255,255,0.95); backdrop-filter: blur(12px); border-bottom: 1px solid var(--border); z-index: 1000; display: flex; align-items: center; }
.lab-nav__inner { max-width: var(--max); margin: 0 auto; padding: 0 24px; width: 100%; display: flex; align-items: center; justify-content: space-between; }
.lab-nav__logo { display: flex; flex-direction: column; text-decoration: none; gap: 1px; }
.lab-nav__logo-main { font-family: 'Noto Serif JP', serif; font-size: 16px; font-weight: 700; color: var(--blue); letter-spacing: 0.02em; }
.lab-nav__logo-sub { font-family: 'DM Sans', sans-serif; font-size: 10px; color: var(--text-muted); letter-spacing: 0.08em; }

/* ── ロゴSVG（2026-08-25） ── */
.lab-nav__logo-svg { height: 40px; width: auto; display: block; }
.lab-nav__logo-svg--sp { display: none; }
.lab-nav__links { display: flex; align-items: center; gap: 8px; }
/* **white-space: nowrap は必須。** これが無いと幅が足りないときに1文字ずつ折り返し、
   ナビが「は/は/す/す…」と最後の文字だけ見える状態になる（2026-09-02 実際に発生）。
   左右の余白は、項目が8つでも内側コンテナ（--max:1100px）に収まるように詰めてある。 */
.lab-nav__link { font-size: 13px; color: var(--text-mid); text-decoration: none; padding: 6px 9px; border-radius: 6px; transition: all 0.15s; font-weight: 500; white-space: nowrap; }
.lab-nav__link:hover, .lab-nav__link.active { background: var(--blue-light); color: var(--blue); }
.lab-nav__cta { font-size: 13px; font-weight: 600; color: var(--white); background: var(--red); padding: 8px 18px; border-radius: 6px; text-decoration: none; transition: opacity 0.15s; }
.lab-nav__cta:hover { opacity: 0.88; }
.lab-nav__hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 6px; }
.lab-nav__hamburger span { display: block; width: 22px; height: 2px; background: var(--text); border-radius: 1px; transition: all 0.2s; }
.lab-nav__drawer { display: none; position: fixed; top: var(--nav-h); left: 0; right: 0; background: var(--white); border-bottom: 1px solid var(--border); padding: 16px 24px; flex-direction: column; gap: 4px; z-index: 999; box-shadow: var(--shadow); }
.lab-nav__drawer.open { display: flex; }
.lab-nav__drawer-link { font-size: 15px; color: var(--text); text-decoration: none; padding: 10px 0; border-bottom: 1px solid var(--border); font-weight: 500; }

/* ── FOOTER ── */
.lab-footer { background: #1a2533; padding: 40px 24px 24px; }
.lab-footer__inner { max-width: var(--max); margin: 0 auto; }
.lab-footer__top { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 28px; flex-wrap: wrap; gap: 20px; }
.lab-footer__logo-main { font-family: 'Noto Serif JP', serif; font-size: 17px; font-weight: 700; color: #fff; }
.lab-footer__logo-sub { font-family: 'DM Sans', sans-serif; font-size: 10px; color: rgba(255,255,255,0.4); letter-spacing: 0.08em; margin-top: 2px; }
.lab-footer__links { display: flex; gap: 20px; flex-wrap: wrap; }
.lab-footer__link { font-size: 13px; color: rgba(255,255,255,0.5); text-decoration: none; transition: color 0.15s; }
.lab-footer__link:hover { color: rgba(255,255,255,0.9); }
.lab-footer__bottom { border-top: 1px solid rgba(255,255,255,0.08); padding-top: 18px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.lab-footer__copy { font-size: 12px; color: rgba(255,255,255,0.3); font-family: 'DM Sans', sans-serif; }

/* ── PAGE HERO ── */
.lab-page-hero { padding-top: calc(var(--nav-h) + 40px); padding-bottom: 32px; background: var(--white); border-bottom: 1px solid var(--border); }
.lab-page-hero__inner { max-width: var(--max); margin: 0 auto; padding: 0 24px; }
.lab-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12px; color: var(--text-muted); margin-bottom: 16px; }
/* **flex-wrap と white-space: nowrap はセット。** 最後の項目が記事タイトル全文
   （257px）なので、折り返せないと中間の「コラム」が min-content まで潰されて
   1文字ずつ縦に3行になる（375px で幅14px・高さ61px）。45行目のナビと同じ病。 */
.lab-breadcrumb a { color: var(--text-muted); text-decoration: none; white-space: nowrap; }
.lab-breadcrumb a:hover { color: var(--blue); }
.lab-page-hero__badge { display: inline-flex; align-items: center; gap: 6px; background: var(--blue-light); color: var(--blue); font-size: 11px; font-weight: 600; padding: 4px 10px; border-radius: 20px; margin-bottom: 10px; border: 1px solid rgba(58,140,189,0.2); }
.lab-page-hero__badge--red { background: var(--red-light); color: var(--red); border-color: rgba(192,80,77,0.2); }
.lab-page-hero__title { font-family: 'Noto Serif JP', serif; font-size: clamp(20px, 3vw, 28px); font-weight: 700; color: var(--text); margin-bottom: 8px; }
.lab-page-hero__sub { font-size: 14px; color: var(--text-mid); line-height: 1.7; max-width: 640px; }
.lab-page-hero__tags { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.lab-page-hero__tag { font-size: 12px; color: var(--text-muted); background: var(--bg); border: 1px solid var(--border); padding: 3px 10px; border-radius: 20px; display: flex; align-items: center; gap: 4px; }

/* ── SECTION ── */
.lab-section { padding: 80px 24px; }
.lab-section--alt { background: var(--bg); }
.lab-section__inner { max-width: var(--max); margin: 0 auto; }
.lab-section__header { text-align: center; margin-bottom: 48px; }
.lab-section__label { display: inline-block; font-family: 'DM Sans', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: var(--blue-mid); background: var(--blue-light); padding: 4px 12px; border-radius: 20px; margin-bottom: 12px; }
.lab-section__title { font-family: 'Noto Serif JP', serif; font-size: clamp(20px, 3vw, 28px); font-weight: 700; color: var(--text); margin-bottom: 12px; line-height: 1.4; }
.lab-section__sub { font-size: 15px; color: var(--text-mid); max-width: 560px; margin: 0 auto; line-height: 1.8; }

/* ── BUTTONS ── */
.lab-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: var(--blue); color: var(--white); font-size: 15px; font-weight: 600; padding: 14px 28px; border-radius: var(--r-sm); text-decoration: none; transition: all 0.15s; border: none; cursor: pointer; font-family: inherit; }
.lab-btn:hover { background: var(--blue-mid); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(42,109,153,0.25); }
.lab-btn--red { background: var(--red); }
.lab-btn--red:hover { background: #b84543; box-shadow: 0 6px 20px rgba(192,80,77,0.25); }
.lab-btn--outline { background: transparent; color: var(--text-mid); border: 1px solid var(--border); font-size: 14px; padding: 10px 20px; }
.lab-btn--outline:hover { border-color: var(--blue); color: var(--blue); background: var(--blue-light); transform: none; box-shadow: none; }
.lab-btn--white { background: var(--white); color: var(--blue); font-size: 14px; font-weight: 600; padding: 12px 24px; }
.lab-btn--white:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(0,0,0,0.15); background: var(--white); }
.lab-btn--white-outline { background: transparent; color: rgba(255,255,255,0.9); border: 1px solid rgba(255,255,255,0.4); font-size: 14px; padding: 12px 24px; }
.lab-btn--white-outline:hover { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.7); transform: none; box-shadow: none; }
.lab-btn--sm { padding: 8px 16px; font-size: 13px; }

/* ── CTA BANNER ── */
.lab-cta-banner { background: linear-gradient(135deg, var(--blue) 0%, #1a5a82 100%); border-radius: 16px; padding: 48px 40px; text-align: center; position: relative; overflow: hidden; }
.lab-cta-banner::before { content: ''; position: absolute; top: -100px; right: -100px; width: 300px; height: 300px; border-radius: 50%; background: rgba(255,255,255,0.05); pointer-events: none; }
.lab-cta-banner__title { font-family: 'Noto Serif JP', serif; font-size: clamp(18px, 3vw, 26px); font-weight: 700; color: var(--white); margin-bottom: 10px; }
.lab-cta-banner__sub { font-size: 14px; color: rgba(255,255,255,0.8); margin-bottom: 28px; line-height: 1.8; }
.lab-cta-banner__actions { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; }
/* 濃紺の上では文字を白抜きにする。__title / __sub を付け忘れても黒字にならないための保険
   （2026-08-04 /cases/ で素の h2・p を書いて黒字になった）*/
.lab-cta-banner h1, .lab-cta-banner h2, .lab-cta-banner h3 { color: var(--white); }
.lab-cta-banner p, .lab-cta-banner li { color: rgba(255,255,255,0.85); }
.lab-cta-banner a:not(.lab-btn) { color: var(--white); text-decoration: underline; }

/* ── HERO (TOP) ── */
.lab-hero { padding-top: calc(var(--nav-h) + 64px); padding-bottom: 80px; background: linear-gradient(160deg, #f0f7ff 0%, #fdfeff 60%, #fff5f5 100%); overflow: hidden; position: relative; }
.lab-hero::before { content: ''; position: absolute; top: -200px; right: -200px; width: 600px; height: 600px; border-radius: 50%; background: radial-gradient(circle, rgba(58,140,189,0.06) 0%, transparent 70%); pointer-events: none; }
.lab-hero__inner { max-width: var(--max); margin: 0 auto; padding: 0 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.lab-hero__badge { display: inline-flex; align-items: center; gap: 6px; background: var(--blue-light); color: var(--blue); font-size: 12px; font-weight: 600; padding: 5px 12px; border-radius: 20px; margin-bottom: 20px; border: 1px solid rgba(58,140,189,0.2); }
.lab-hero__badge-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--blue-mid); }
.lab-hero__title { font-family: 'Noto Serif JP', serif; font-size: clamp(24px, 3.5vw, 38px); font-weight: 700; line-height: 1.4; color: var(--text); margin-bottom: 16px; }
.lab-hero__title em { color: var(--blue); font-style: normal; }
.lab-hero__subtitle { font-size: 15px; color: var(--text-mid); line-height: 1.8; margin-bottom: 32px; }
.lab-hero__actions { display: flex; flex-direction: column; gap: 10px; }
.lab-hero__img-box { background: var(--white); border-radius: 16px; overflow: hidden; box-shadow: var(--shadow-lg); border: 1px solid var(--border); aspect-ratio: 4/3; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #e8f4fb 0%, #f0f8ff 100%); }
.lab-hero__img-placeholder { text-align: center; color: var(--text-muted); }
.lab-hero__img-placeholder p { font-size: 12px; margin-top: 8px; }
.lab-hero__stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-top: 20px; }
.lab-hero__stat { background: var(--white); border: 1px solid var(--border); border-radius: var(--r-sm); padding: 12px; text-align: center; box-shadow: var(--shadow-sm); }
.lab-hero__stat-num { font-family: 'DM Sans', sans-serif; font-size: 22px; font-weight: 600; color: var(--blue); line-height: 1; margin-bottom: 4px; }
.lab-hero__stat-label { font-size: 10px; color: var(--text-muted); }

/* ── TRUST BAR ── */
.lab-trust-bar { background: var(--blue); padding: 14px 24px; }
.lab-trust-bar__inner { max-width: var(--max); margin: 0 auto; display: flex; align-items: center; justify-content: center; gap: 32px; flex-wrap: wrap; }
.lab-trust-item { display: flex; align-items: center; gap: 8px; color: rgba(255,255,255,0.9); font-size: 13px; font-weight: 500; }

/* ── SERVICE CARDS ── */
.lab-services { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.lab-service-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--r); padding: 28px 24px; transition: all 0.2s; position: relative; overflow: hidden; }
.lab-service-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--blue); transform: scaleX(0); transform-origin: left; transition: transform 0.2s; }
.lab-service-card:hover { box-shadow: var(--shadow); transform: translateY(-2px); border-color: rgba(58,140,189,0.3); }
.lab-service-card:hover::before { transform: scaleX(1); }
.lab-service-card__icon { width: 48px; height: 48px; background: var(--blue-light); border-radius: 10px; display: flex; align-items: center; justify-content: center; margin-bottom: 16px; color: var(--blue); }
.lab-service-card__title { font-size: 16px; font-weight: 700; color: var(--text); margin-bottom: 8px; }
.lab-service-card__desc { font-size: 13px; color: var(--text-mid); line-height: 1.7; margin-bottom: 16px; }
.lab-service-card__link { font-size: 13px; font-weight: 600; color: var(--blue); text-decoration: none; display: inline-flex; align-items: center; gap: 4px; transition: gap 0.15s; }
.lab-service-card__link:hover { gap: 8px; }
/* カード下のリンクを2本にする場合の受け皿。__link は inline-flex なので、
   素で並べると隙間なく繋がって1本のリンクに見える（2026-09-01 追加） */
.lab-service-card__links { display: flex; flex-wrap: wrap; gap: 8px 18px; }

/* ── PROFILE ── */
.lab-profile-grid { display: grid; grid-template-columns: 280px 1fr; gap: 60px; align-items: start; }
.lab-profile__photo { width: 100%; aspect-ratio: 3/4; border-radius: var(--r); background: linear-gradient(135deg, var(--blue-light) 0%, #ddeef8 100%); border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; color: var(--text-muted); font-size: 13px; text-align: center; overflow: hidden; }
.lab-profile__photo img { width: 100%; height: 100%; object-fit: cover; }
.lab-profile__name-en { font-family: 'DM Sans', sans-serif; font-size: 12px; letter-spacing: 0.1em; color: var(--text-muted); margin-bottom: 4px; }
.lab-profile__name { font-family: 'Noto Serif JP', serif; font-size: 26px; font-weight: 700; color: var(--text); margin-bottom: 4px; }
.lab-profile__title { font-size: 13px; color: var(--blue-mid); font-weight: 500; margin-bottom: 20px; }
.lab-profile__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 20px; }
.lab-profile__tag { font-size: 12px; background: var(--blue-light); color: var(--blue); padding: 4px 10px; border-radius: 20px; border: 1px solid rgba(58,140,189,0.2); }
.lab-profile__bio { font-size: 14px; color: var(--text-mid); line-height: 1.9; }
.lab-profile__links { display: flex; gap: 12px; margin-top: 20px; flex-wrap: wrap; }
.lab-profile__link { font-size: 13px; font-weight: 500; color: var(--red); text-decoration: none; display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--border); padding: 7px 14px; border-radius: var(--r-sm); transition: all 0.15s; }
.lab-profile__link:hover { border-color: var(--red); background: var(--red-light); }

/* ── SEMINAR CARDS ── */
.lab-seminar-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.lab-seminar-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--r); padding: 24px; transition: all 0.2s; }
.lab-seminar-card:hover { box-shadow: var(--shadow); border-color: rgba(58,140,189,0.3); }
.lab-seminar-card__meta { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.lab-seminar-card__num { font-family: 'DM Sans', sans-serif; font-size: 11px; font-weight: 600; color: var(--blue-mid); background: var(--blue-light); padding: 3px 8px; border-radius: 4px; }
.lab-seminar-card__date { font-size: 12px; color: var(--text-muted); }
.lab-seminar-card__title { font-size: 16px; font-weight: 700; color: var(--text); margin-bottom: 10px; line-height: 1.5; }
.lab-seminar-card__tags { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 16px; }
.lab-seminar-card__tag { font-size: 11px; color: var(--text-muted); background: var(--bg); padding: 3px 8px; border-radius: 4px; border: 1px solid var(--border); }
.lab-seminar-card__tag--red { color: var(--red); background: var(--red-light); border-color: rgba(192,80,77,0.2); }
.lab-seminar-card__cta { display: block; text-align: center; background: var(--blue); color: var(--white); font-size: 13px; font-weight: 600; padding: 10px; border-radius: var(--r-sm); text-decoration: none; transition: all 0.15s; }
.lab-seminar-card__cta:hover { background: var(--blue-mid); }
.lab-seminar-card--upcoming { opacity: 0.7; }
.lab-seminar-card--upcoming .lab-seminar-card__cta { background: var(--bg); color: var(--text-muted); border: 1px solid var(--border); pointer-events: none; }

/* ── ARTICLE VIDEO EMBED（2026-08-24・YouTube導線） ── */
.lab-video-embed { position: relative; width: 100%; aspect-ratio: 16 / 9; margin: 8px 0 28px; border-radius: var(--r); overflow: hidden; background: var(--bg); }
.lab-video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ── TOP PAGE：最新動画カード（2026-08-24・セミナー枠の置き換え） ── */
.lab-video-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.lab-video-card { display: block; background: var(--white); border: 1px solid var(--border); border-radius: var(--r); overflow: hidden; text-decoration: none; color: inherit; transition: all 0.2s; }
.lab-video-card:hover { box-shadow: var(--shadow); border-color: rgba(58,140,189,0.3); }
.lab-video-card__thumb { position: relative; width: 100%; aspect-ratio: 16 / 9; background: var(--bg); overflow: hidden; }
.lab-video-card__thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lab-video-card__body { padding: 16px; }
.lab-video-card__date { font-size: 11px; color: var(--text-muted); margin-bottom: 6px; }
.lab-video-card__title { font-size: 14px; font-weight: 700; color: var(--text); line-height: 1.6; margin: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* ── COLUMN CARDS ── */
.lab-column-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.lab-column-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--r); overflow: hidden; transition: all 0.2s; text-decoration: none; color: inherit; display: flex; flex-direction: column; }
.lab-column-card:hover { box-shadow: var(--shadow); transform: translateY(-2px); }
.lab-column-card__thumb { aspect-ratio: 16/9; background: linear-gradient(135deg, var(--blue-light) 0%, #ddeef8 100%); display: flex; align-items: center; justify-content: center; color: var(--text-muted); font-size: 12px; overflow: hidden; }
.lab-column-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.lab-column-card__body { padding: 16px; flex: 1; display: flex; flex-direction: column; }
.lab-column-card__cat { font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 4px; display: inline-block; margin-bottom: 8px; }
.lab-column-card__cat--kaigyo { color: var(--blue); background: var(--blue-light); }
.lab-column-card__cat--shikin { color: #0d7a5f; background: #e6f7f3; }
.lab-column-card__cat--shokei { color: #7c3aed; background: #f3effe; }
.lab-column-card__cat--keiei { color: #b45309; background: #fef3c7; }
.lab-column-card__cat--report { color: var(--red); background: var(--red-light); }
.lab-column-card__title { font-size: 14px; font-weight: 700; color: var(--text); line-height: 1.6; margin-bottom: 8px; flex: 1; }
.lab-column-card__meta { display: flex; align-items: center; justify-content: space-between; }
.lab-column-card__date { font-size: 11px; color: var(--text-muted); }
.lab-section__more { text-align: center; margin-top: 32px; }

/* ── COLUMN ARCHIVE ── */
.lab-archive { max-width: var(--max); margin: 0 auto; padding: 32px 24px 80px; display: grid; grid-template-columns: 1fr 280px; gap: 32px; align-items: start; }
.lab-filter-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 24px; }
.lab-filter-tab { font-size: 13px; font-weight: 500; color: var(--text-muted); background: var(--white); border: 1px solid var(--border); padding: 6px 14px; border-radius: 20px; cursor: pointer; transition: all 0.15s; text-decoration: none; display: inline-block; }
.lab-filter-tab:hover { border-color: var(--blue-mid); color: var(--blue); }
.lab-filter-tab.active { background: var(--blue); color: var(--white); border-color: var(--blue); }
.lab-article-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.lab-article-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--r); overflow: hidden; text-decoration: none; color: inherit; display: flex; flex-direction: column; transition: all 0.2s; }
.lab-article-card:hover { box-shadow: var(--shadow); transform: translateY(-2px); }
.lab-article-card__thumb { aspect-ratio: 16/9; background: linear-gradient(135deg, var(--blue-pale) 0%, #ddeef8 100%); display: flex; align-items: center; justify-content: center; color: var(--text-muted); font-size: 12px; overflow: hidden; }
.lab-article-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.lab-article-card__body { padding: 16px; flex: 1; display: flex; flex-direction: column; }
/* 親が flex-direction:column なので align-items の既定 stretch で横に伸び、
   テキスト幅のピルのはずが全幅の帯になる（PC で約318px）。2026-10-02。 */
.lab-article-card__cat { font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 4px; display: inline-block; align-self: flex-start; margin-bottom: 8px; }
.lab-article-card__title { font-size: 14px; font-weight: 700; color: var(--text); line-height: 1.6; margin-bottom: 8px; flex: 1; }
.lab-article-card__date { font-size: 11px; color: var(--text-muted); }

/* ── SINGLE COLUMN ── */
.lab-single { max-width: var(--max); margin: 0 auto; padding: 32px 24px 80px; display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 32px; align-items: start; }
.lab-single__body { background: var(--white); border: 1px solid var(--border); border-radius: var(--r); overflow: hidden; }
.lab-single__thumb { aspect-ratio: 16/6; overflow: hidden; }
.lab-single__thumb img { width: 100%; height: 100%; object-fit: cover; }
.lab-single__content { padding: 32px; }
.lab-single__meta { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; }
.lab-single__content h1 { font-family: 'Noto Serif JP', serif; font-size: clamp(20px, 3vw, 26px); font-weight: 700; line-height: 1.5; margin-bottom: 24px; }
.lab-single__text { font-size: 15px; color: var(--text-mid); line-height: 1.9; }
.lab-single__text h2 { font-family: 'Noto Serif JP', serif; font-size: 20px; font-weight: 700; color: var(--text); margin: 32px 0 12px; padding-bottom: 8px; border-bottom: 2px solid var(--blue-light); }
.lab-single__text h3 { font-size: 17px; font-weight: 700; color: var(--text); margin: 24px 0 10px; }
.lab-single__text p { margin-bottom: 16px; }
.lab-single__text ul, .lab-single__text ol { padding-left: 1.5em; margin-bottom: 16px; }
.lab-single__text li { margin-bottom: 6px; }
.lab-single__text a { color: var(--blue); }
/* **記事本文にボタンを置くと文字が消える。** 上の `.lab-single__text a`(0,2,0) が
   `.lab-btn`(0,1,0) の color に勝ってしまい、青地に青文字になる。
   本文中CTAを入れるときに必ず踏むので、色を明示して戻しておく（2026-09-01 追加） */
.lab-single__text a.lab-btn { color: var(--white); }
.lab-single__text a.lab-btn--white { color: var(--blue); }
.lab-single__text a.lab-btn--outline { color: var(--text-mid); }
.lab-single__text img { max-width: 100%; border-radius: var(--r-sm); margin: 16px 0; }
/* 記事本文の表（ブロックエディタの wp:table）。
   `.lab-single__text` に table の指定が1つも無く、**表が画面幅からはみ出して
   スマホで読めなかった**（2026-09-30 に7列の比較表で発覚。既存記事の3〜4列の
   表も同じ状態だった）。テーマ内の他の表（.lab-guide-table 等）と同じ作りに揃える。
   figure 側で横スクロールさせ、見出しセルは折り返さないことで列幅を確保する。 */
.lab-single__text .wp-block-table { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 20px 0; }
.lab-single__text table { border-collapse: collapse; width: 100%; min-width: 560px; font-size: 13.5px; background: var(--white); }
.lab-single__text th, .lab-single__text td { border: 1px solid var(--border); padding: 10px 12px; text-align: left; line-height: 1.8; vertical-align: top; }
.lab-single__text thead th { background: var(--bg); font-weight: 700; color: var(--text); white-space: nowrap; }
.lab-single__text tbody tr:nth-child(even) { background: var(--bg); }
.lab-single__fixed-cta { position: sticky; bottom: 0; background: var(--white); border-top: 1px solid var(--border); padding: 16px 32px; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 32px; }
.lab-single__fixed-cta-text { font-size: 14px; font-weight: 600; color: var(--text); }

/* ── SIDEBAR ── */
.lab-sidebar { position: sticky; top: calc(var(--nav-h) + 16px); display: flex; flex-direction: column; gap: 20px; }
.lab-sidebar-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--r); overflow: hidden; }
.lab-sidebar-card__title { font-size: 13px; font-weight: 700; color: var(--text); padding: 14px 16px; border-bottom: 1px solid var(--border); display: flex; align-items: center; gap: 6px; }
.lab-sidebar-card__title::before { content: ''; display: block; width: 3px; height: 13px; background: var(--blue); border-radius: 2px; }
.lab-sidebar-card__body { padding: 16px; }
.lab-sidebar-cta { display: flex; flex-direction: column; gap: 8px; }
.lab-sidebar-cta a { display: block; text-align: center; font-size: 13px; font-weight: 600; padding: 10px; border-radius: var(--r-sm); text-decoration: none; transition: all 0.15s; }
.lab-sidebar-cta__sim { background: var(--blue-light); color: var(--blue); border: 1px solid rgba(58,140,189,0.3); }
.lab-sidebar-cta__sim:hover { background: var(--blue); color: var(--white); }
.lab-sidebar-cta__consult { background: var(--red); color: var(--white); }
.lab-sidebar-cta__consult:hover { opacity: 0.88; }
.lab-sidebar-cta__note { font-size: 11px; color: var(--text-muted); text-align: center; }
.lab-sidebar-seminar { display: flex; flex-direction: column; gap: 12px; }
.lab-sidebar-seminar__item { padding-bottom: 12px; border-bottom: 1px solid var(--border); }
.lab-sidebar-seminar__item:last-child { padding-bottom: 0; border-bottom: none; }
.lab-sidebar-seminar__num { font-size: 10px; font-weight: 600; color: var(--blue-mid); background: var(--blue-light); padding: 2px 6px; border-radius: 3px; display: inline-block; margin-bottom: 4px; }
.lab-sidebar-seminar__title { font-size: 13px; font-weight: 600; color: var(--text); line-height: 1.5; margin-bottom: 4px; }
.lab-sidebar-seminar__date { font-size: 11px; color: var(--text-muted); }

/* ── サイドバー：最新の動画（2026-08-24） ── */
.lab-sidebar-video { display: flex; flex-direction: column; gap: 12px; }
.lab-sidebar-video__item { display: flex; gap: 10px; text-decoration: none; color: inherit; padding-bottom: 12px; border-bottom: 1px solid var(--border); }
.lab-sidebar-video__item:last-child { padding-bottom: 0; border-bottom: none; }
.lab-sidebar-video__thumb { flex: 0 0 72px; width: 72px; height: 40px; object-fit: cover; border-radius: 4px; background: var(--bg); }
.lab-sidebar-video__title { font-size: 12px; font-weight: 600; color: var(--text); line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* ── SIMULATOR ── */
.lab-sim-layout { max-width: var(--max); margin: 0 auto; padding: 32px 24px 80px; display: grid; grid-template-columns: 1fr 380px; gap: 24px; align-items: start; }
.lab-sim-explain { max-width: var(--max); margin: 0 auto; padding: 0 24px 80px; }
.lab-sim-explain .lab-single__text { max-width: 760px; }
.lab-use-cases { background: var(--white); border: 1px solid var(--border); border-radius: var(--r); padding: 20px; margin-bottom: 24px; }
.lab-use-cases__title { font-size: 13px; font-weight: 700; color: var(--text); margin-bottom: 12px; }
.lab-use-case-list { display: flex; flex-direction: column; gap: 10px; }
.lab-use-case { display: flex; gap: 10px; align-items: flex-start; }
.lab-use-case__icon { width: 28px; height: 28px; border-radius: 6px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.lab-use-case__icon--blue { background: var(--blue-light); color: var(--blue); }
.lab-use-case__icon--red { background: var(--red-light); color: var(--red); }
.lab-use-case__text { font-size: 13px; color: var(--text-mid); line-height: 1.6; padding-top: 4px; }
.lab-form-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--r); overflow: hidden; }
.lab-form-card__section { padding: 24px; border-bottom: 1px solid var(--border); }
.lab-form-card__section:last-child { border-bottom: none; }
.lab-form-card__section-title { font-size: 13px; font-weight: 700; color: var(--text); margin-bottom: 16px; display: flex; align-items: center; gap: 8px; }
.lab-form-card__section-title::before { content: ''; display: block; width: 3px; height: 14px; background: var(--blue); border-radius: 2px; }
.lab-field { margin-bottom: 16px; }
.lab-field:last-child { margin-bottom: 0; }
.lab-field label { display: block; font-size: 12px; font-weight: 600; color: var(--text-mid); margin-bottom: 6px; }
.lab-field select, .lab-field input[type=number] { width: 100%; padding: 9px 12px; font-size: 13px; border: 1px solid var(--border); border-radius: var(--r-sm); background: var(--white); color: var(--text); font-family: inherit; transition: border-color 0.15s; }
.lab-field select:focus, .lab-field input:focus { outline: none; border-color: var(--blue-mid); box-shadow: 0 0 0 3px rgba(58,140,189,0.1); }
.lab-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.lab-field-row-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; }
.lab-toggle-group { display: grid; gap: 8px; }
.lab-toggle-group--3 { grid-template-columns: repeat(3, 1fr); }
.lab-toggle-group--2 { grid-template-columns: repeat(2, 1fr); }
.lab-toggle-btn { padding: 10px 8px; font-size: 12px; font-family: inherit; border: 1px solid var(--border); border-radius: var(--r-sm); background: var(--white); color: var(--text-muted); cursor: pointer; text-align: center; line-height: 1.4; transition: all 0.15s; }
.lab-toggle-btn small { display: block; font-size: 10px; margin-top: 2px; opacity: 0.75; }
.lab-toggle-btn.active { border: 1.5px solid var(--blue-mid); background: var(--blue-light); color: var(--blue); font-weight: 600; }
.lab-toggle-btn:hover:not(.active) { border-color: var(--blue-mid); background: var(--blue-pale); }
.lab-slider-wrap { margin-top: 6px; }
.lab-slider-row { display: flex; align-items: center; gap: 12px; }
.lab-slider-row input[type=range] { flex: 1; accent-color: var(--blue-mid); height: 4px; cursor: pointer; }
.lab-slider-val { font-size: 14px; font-weight: 600; color: var(--text); min-width: 88px; text-align: right; }
.lab-slider-hint { display: flex; justify-content: space-between; font-size: 10px; color: var(--text-muted); margin-top: 2px; }
.lab-section-disabled { opacity: 0.4; pointer-events: none; }
.lab-result-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--r); overflow: hidden; position: sticky; top: calc(var(--nav-h) + 16px); }
.lab-result-card__header { background: var(--blue); padding: 16px 20px; }
.lab-result-card__header-title { font-size: 12px; color: rgba(255,255,255,0.8); margin-bottom: 4px; }
.lab-result-card__range { font-family: 'DM Sans', sans-serif; font-size: 22px; font-weight: 600; color: var(--white); line-height: 1.2; }
.lab-result-card__range-sub { font-size: 11px; color: rgba(255,255,255,0.6); margin-top: 4px; }
.lab-result-card__body { padding: 16px 20px; }
.lab-result-section { margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--border); }
.lab-result-section:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: none; }
.lab-result-section__title { font-size: 11px; font-weight: 600; color: var(--text-muted); margin-bottom: 10px; text-transform: uppercase; letter-spacing: 0.08em; }
.lab-breakdown-row { display: flex; justify-content: space-between; font-size: 13px; color: var(--text-mid); padding: 4px 0; border-bottom: 1px solid var(--border); }
.lab-breakdown-row:last-child { border-bottom: none; font-weight: 700; color: var(--text); font-size: 14px; padding-top: 8px; margin-top: 4px; }
.lab-metrics-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.lab-metric-box { background: var(--bg); border-radius: var(--r-sm); padding: 10px; text-align: center; border: 1px solid var(--border); }
.lab-metric-box__label { font-size: 10px; color: var(--text-muted); margin-bottom: 4px; line-height: 1.3; }
.lab-metric-box__val { font-size: 13px; font-weight: 600; color: var(--text); }
.lab-tax-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.lab-tax-box { border-radius: var(--r-sm); padding: 12px; border: 1px solid var(--border); background: var(--bg); }
.lab-tax-box.active { border: 1.5px solid var(--blue-mid); background: var(--blue-light); }
.lab-tax-box__label { font-size: 11px; color: var(--text-muted); margin-bottom: 8px; font-weight: 600; }
.lab-tax-box.active .lab-tax-box__label { color: var(--blue); }
.lab-tax-row { display: flex; justify-content: space-between; font-size: 11px; color: var(--text-muted); margin-bottom: 3px; }
.lab-tax-row.total { font-weight: 700; color: var(--text); border-top: 1px solid var(--border); margin-top: 6px; padding-top: 6px; font-size: 12px; }
.lab-tax-box.active .lab-tax-row.total { color: var(--blue); }
.lab-advice-box { background: var(--blue-pale); border-left: 3px solid var(--blue-mid); border-radius: 0 var(--r-sm) var(--r-sm) 0; padding: 10px 12px; font-size: 12px; color: var(--text-mid); line-height: 1.7; }
.lab-result-cta { margin-top: 16px; }
.lab-result-cta a { display: block; text-align: center; background: var(--red); color: var(--white); font-size: 13px; font-weight: 600; padding: 12px; border-radius: var(--r-sm); text-decoration: none; transition: opacity 0.15s; }
.lab-result-cta a:hover { opacity: 0.88; }
.lab-result-cta-note { font-size: 11px; color: var(--text-muted); text-align: center; margin-top: 6px; }

/* ── CONTACT ── */
.lab-contact-layout { max-width: var(--max); margin: 0 auto; padding: 40px 24px 80px; display: grid; grid-template-columns: 1fr 300px; gap: 32px; align-items: start; }
.lab-progress { display: flex; align-items: center; padding: 20px 24px; border-bottom: 1px solid var(--border); }
.lab-step-dot { width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 600; flex-shrink: 0; transition: all 0.2s; font-family: 'DM Sans', sans-serif; }
.lab-step-dot.done { background: var(--blue); color: var(--white); }
.lab-step-dot.active { background: var(--blue); color: var(--white); box-shadow: 0 0 0 4px rgba(42,109,153,0.15); }
.lab-step-dot.todo { background: var(--bg); color: var(--text-muted); border: 1px solid var(--border); }
.lab-step-line { flex: 1; height: 2px; background: var(--border); transition: background 0.2s; }
.lab-step-line.done { background: var(--blue); }
.lab-step-label-row { display: flex; justify-content: space-between; padding: 0 24px 4px; }
.lab-step-label-text { font-size: 11px; color: var(--text-muted); }
.lab-step-panel { display: none; padding: 24px; }
.lab-step-panel.active { display: block; }
.lab-step-title { font-size: 16px; font-weight: 700; color: var(--text); margin-bottom: 6px; }
.lab-step-sub { font-size: 13px; color: var(--text-muted); margin-bottom: 20px; line-height: 1.6; }
.lab-notice { background: var(--blue-pale); border-left: 3px solid var(--blue-mid); padding: 10px 14px; font-size: 13px; color: var(--text-mid); line-height: 1.7; border-radius: 0 var(--r-sm) var(--r-sm) 0; margin-bottom: 20px; }
.lab-cfield { margin-bottom: 16px; }
.lab-cfield label { display: block; font-size: 12px; font-weight: 600; color: var(--text-mid); margin-bottom: 6px; }
.lab-cfield label .req { color: var(--red); font-size: 10px; margin-left: 4px; }
.lab-cfield label .opt { color: var(--text-muted); font-size: 10px; margin-left: 4px; font-weight: 400; }
.lab-cfield input, .lab-cfield textarea, .lab-cfield select { width: 100%; padding: 10px 12px; font-size: 14px; border: 1px solid var(--border); border-radius: var(--r-sm); background: var(--white); color: var(--text); font-family: inherit; transition: border-color 0.15s; }
.lab-cfield input:focus, .lab-cfield textarea:focus, .lab-cfield select:focus { outline: none; border-color: var(--blue-mid); box-shadow: 0 0 0 3px rgba(58,140,189,0.1); }
.lab-cfield textarea { resize: vertical; min-height: 80px; line-height: 1.7; }
.lab-cfield-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.lab-cfield-err { font-size: 11px; color: var(--red); margin-top: 4px; display: none; }
.lab-chip-group { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.lab-chip { padding: 6px 12px; font-size: 12px; border: 1px solid var(--border); border-radius: 20px; background: var(--white); color: var(--text-muted); cursor: pointer; user-select: none; transition: all 0.15s; }
.lab-chip:hover { border-color: var(--blue-mid); color: var(--blue); background: var(--blue-pale); }
.lab-chip.selected { background: var(--blue-light); color: var(--blue); border-color: var(--blue-mid); font-weight: 600; }
.lab-group-section { margin-bottom: 12px; }
.lab-group-label { font-size: 11px; font-weight: 600; color: var(--text-muted); padding-bottom: 4px; border-bottom: 1px solid var(--border); margin-bottom: 6px; }
.lab-btn-row { display: flex; gap: 8px; margin-top: 24px; flex-wrap: wrap; }
.lab-cbtn { padding: 10px 20px; font-size: 13px; font-weight: 500; font-family: inherit; border-radius: var(--r-sm); cursor: pointer; border: 1px solid var(--border); background: var(--white); color: var(--text-mid); transition: all 0.15s; }
.lab-cbtn:hover { background: var(--bg); }
.lab-cbtn--primary { background: var(--blue); color: var(--white); border-color: var(--blue); }
.lab-cbtn--primary:hover { background: var(--blue-mid); }
.lab-cbtn--success { background: #0d7a5f; color: var(--white); border-color: #0d7a5f; }
.lab-cbtn--success:hover { opacity: 0.88; }
.lab-summary-card { background: var(--bg); border: 1px solid var(--border); border-radius: var(--r-sm); overflow: hidden; margin-bottom: 16px; }
.lab-summary-row { display: flex; justify-content: space-between; align-items: baseline; padding: 8px 14px; border-bottom: 1px solid var(--border); font-size: 13px; gap: 12px; }
.lab-summary-row:last-child { border-bottom: none; }
.lab-summary-key { color: var(--text-muted); white-space: nowrap; font-size: 12px; }
.lab-summary-val { color: var(--text); font-weight: 500; text-align: right; }
.lab-complete-box { text-align: center; padding: 16px 0; }
.lab-complete-icon { width: 56px; height: 56px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; }
.lab-complete-h { font-family: 'Noto Serif JP', serif; font-size: 20px; font-weight: 700; color: var(--text); margin-bottom: 8px; }
.lab-complete-p { font-size: 14px; color: var(--text-mid); line-height: 1.8; margin-bottom: 24px; white-space: pre-line; }
.lab-line-cta-box { background: var(--bg); border: 1px solid var(--border); border-radius: var(--r); padding: 20px; text-align: left; }
.lab-line-cta-title { font-size: 14px; font-weight: 700; color: var(--text); margin-bottom: 6px; }
.lab-line-cta-sub { font-size: 13px; color: var(--text-mid); line-height: 1.7; margin-bottom: 12px; }
.lab-line-merits { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.lab-line-merit { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-mid); }
.lab-line-merit::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--green); flex-shrink: 0; }
.lab-btn-line { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; padding: 13px; background: var(--green); color: var(--white); font-size: 14px; font-weight: 700; font-family: inherit; border: none; border-radius: var(--r-sm); cursor: pointer; transition: opacity 0.15s; }
.lab-btn-line:hover { opacity: 0.88; }
.lab-flow-list { display: flex; flex-direction: column; gap: 0; }
.lab-flow-item { display: flex; gap: 12px; padding-bottom: 16px; position: relative; }
.lab-flow-item:last-child { padding-bottom: 0; }
.lab-flow-item::before { content: ''; position: absolute; left: 15px; top: 28px; bottom: 0; width: 2px; background: var(--border); }
.lab-flow-item:last-child::before { display: none; }
.lab-flow-num { width: 30px; height: 30px; border-radius: 50%; background: var(--blue-light); color: var(--blue); font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-family: 'DM Sans', sans-serif; z-index: 1; }
.lab-flow-text { padding-top: 4px; }
.lab-flow-title { font-size: 13px; font-weight: 700; color: var(--text); margin-bottom: 2px; }
.lab-flow-desc { font-size: 12px; color: var(--text-muted); line-height: 1.6; }
.lab-reassure-list { display: flex; flex-direction: column; gap: 10px; }
.lab-reassure-item { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; color: var(--text-mid); line-height: 1.5; }
.lab-reassure-item svg { flex-shrink: 0; color: var(--blue); margin-top: 2px; }

/* ── ANIMATIONS ── */
.lab-fade-up { opacity: 0; transform: translateY(24px); transition: opacity 0.5s ease, transform 0.5s ease; }
.lab-fade-up.visible { opacity: 1; transform: translateY(0); }

/* ── RESPONSIVE ── */
/* ナビをハンバーガーに切り替える幅（2026-09-02）。
   **900pxでは遅すぎた。** ロゴ170px＋リンク群＋内側の余白で約1,070px要るため、
   それ未満だと横並びのままでは収まらない。項目を足したらこの値を見直すこと。 */
@media (max-width: 1080px) {
  .lab-nav__links { display: none; }
  .lab-nav__hamburger { display: flex; }
}

@media (max-width: 900px) {
  .lab-hero__inner { grid-template-columns: 1fr; gap: 32px; }
  .lab-services { grid-template-columns: 1fr; }
  .lab-profile-grid { grid-template-columns: 1fr; }
  .lab-seminar-cards { grid-template-columns: 1fr; }
  .lab-column-list { grid-template-columns: 1fr 1fr; }
  .lab-video-cards { grid-template-columns: 1fr 1fr; }
  .lab-archive { grid-template-columns: 1fr; }
  /* `1fr` ではなく `minmax(0, 1fr)`。**グリッド項目の既定の最小幅は `auto`（＝中身の
     min-content）なので、`1fr` だと画面より中身が広いときトラックが縮まない。**
     2026-09-30、375px 幅で本文コンテナが766pxになり記事全体が横にはみ出していた
     （表だけでなく本文ごと画面からずれる）。最小を0にすると、はみ出すのは
     横スクロールできる表の枠内だけになる。 */
  .lab-single { grid-template-columns: minmax(0, 1fr); }
  .lab-sim-layout { grid-template-columns: 1fr; }
  .lab-result-card { position: static; }
  .lab-contact-layout { grid-template-columns: 1fr; }
  .lab-sidebar { position: static; }
  .lab-trust-bar__inner { gap: 16px; }
  .lab-cta-banner { padding: 32px 20px; }
  .lab-cta-banner__actions { flex-direction: column; }
}
@media (max-width: 600px) {
  .lab-hero__inner{ padding : 0 16px;}
  /* 記事本文の表：スマホでは文字と余白を詰める（横スクロールは上の指定で効く） */
  .lab-single__text table { font-size: 12.5px; min-width: 520px; }
  .lab-single__text th, .lab-single__text td { padding: 8px 10px; }
  /* 375px の画面で本文が262pxしか無く（左右に113pxの余白）読みづらかったため、
     外側と内側の余白を詰めて本文幅を稼ぐ（2026-09-30）。 */
  .lab-single { padding: 20px 16px 56px; }
  .lab-single__content { padding: 20px 16px; }
  .lab-column-list { grid-template-columns: 1fr; }
  .lab-article-grid { grid-template-columns: 1fr; }
  .lab-seminar-cards { grid-template-columns: 1fr; }
  .lab-video-cards { grid-template-columns: 1fr; }
  .lab-nav__logo-svg--pc { display: none; }
  .lab-nav__logo-svg--sp { display: block; }
  .lab-field-row-3 { grid-template-columns: 1fr 1fr; }
  .lab-toggle-group--3 { grid-template-columns: 1fr; }
  .lab-cfield-row { grid-template-columns: 1fr; }
  .lab-metrics-grid { grid-template-columns: 1fr 1fr; }
  .lab-hero__actions {
    width: 100%;
  }
  .lab-hero__actions .lab-btn {
    width: 100%;
    box-sizing: border-box;
  }
  .lab-hero__subtitle {
    word-break: break-all;
    /* または */
    overflow-wrap: break-word;
  }
  .lab-hero__badge {
    white-space: normal;
    text-align: left;
  }

  /* 統計バーを縦並びまたは小さく */
  .lab-hero__stats {
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
  }
  .lab-hero__stat {
    padding: 8px 4px;
  }
  .lab-hero__stat-num {
    font-size: 16px;
  }
  .lab-hero__stat-label {
    font-size: 9px;
  }

  /* img-boxがはみ出さないように */
  .lab-hero__img-box {
    width: 100%;
    max-width: 100%;
  }
  .lab-hero__img-box img {
    width: 100%;
    height: auto;
    display: block;
  }
}

.lab-hero {
  overflow-x: hidden;
}

.lab-cfield input::placeholder,
.lab-cfield textarea::placeholder {
  color: #c8d0db;
  opacity: 1;
}

/* ══════════════════════════════════════════════════════════════
   案件一覧（page-cases.php） 2026-08-03 追加
   レンジ表記を共通の記法として扱う。数字は等幅・tabular-nums。
   ══════════════════════════════════════════════════════════════ */
.lab-cases { max-width: var(--max); margin: 0 auto; padding: 40px 24px 80px; }

/* 入口：条件を預ける／相場を試算する */
.lab-cases__entry { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.lab-entry { border: 1px solid var(--border); border-radius: var(--r); background: var(--white); padding: 24px; display: flex; flex-direction: column; align-items: flex-start; }
.lab-entry--primary { border-color: var(--blue); background: var(--blue-pale); }
.lab-entry__title { font-family: 'Noto Serif JP', serif; font-size: 18px; font-weight: 700; color: var(--text); margin-bottom: 8px; line-height: 1.5; }
.lab-entry__desc { font-size: 13.5px; color: var(--text-mid); margin-bottom: 16px; }
.lab-entry__desc strong { color: var(--text); }
.lab-entry .lab-btn { margin-top: auto; }

/* 絞り込み */
.lab-cases__intro { margin-top: 48px; padding: 22px 24px; border: 1px solid var(--border); border-left: 3px solid var(--blue-mid); border-radius: var(--r); background: var(--white); }
.lab-cases__introhead { font-family: 'Noto Serif JP', serif; font-size: 17px; font-weight: 700; color: var(--text); margin-bottom: 8px; }
.lab-cases__intronote { font-size: 13px; color: var(--text-mid); line-height: 1.85; margin: 0 0 6px; }
.lab-cases__intronote:last-child { margin-bottom: 0; }
.lab-cases__intronote strong { color: var(--text); font-weight: 700; }
.lab-case__status--example { background: var(--bg); color: var(--text-mid); border: 1px solid var(--border); }
.lab-casefilter { margin-top: 20px; padding: 20px 22px; border: 1px solid var(--border); border-radius: var(--r); background: var(--bg); display: flex; flex-direction: column; gap: 14px; }
.lab-casefilter__row { display: grid; grid-template-columns: 84px 1fr; gap: 12px; align-items: start; }
.lab-casefilter__label { font-family: 'DM Sans', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 0.08em; color: var(--text-muted); padding-top: 7px; }
.lab-casefilter__pills { display: flex; flex-wrap: wrap; gap: 6px; }
.lab-pill { font-family: inherit; font-size: 12.5px; color: var(--text-mid); background: var(--white); border: 1px solid var(--border); border-radius: var(--r-sm); padding: 5px 12px; cursor: pointer; transition: border-color .15s, color .15s; }
.lab-pill:hover { border-color: var(--blue-mid); color: var(--blue); }
.lab-pill.is-on { border-color: var(--blue); background: var(--blue-light); color: var(--blue); font-weight: 700; }
.lab-pill:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.lab-casefilter__count { font-family: 'DM Sans', sans-serif; font-size: 12px; color: var(--text-muted); font-variant-numeric: tabular-nums; margin: 0; padding-top: 4px; border-top: 1px solid var(--border); }

/* 案件カード */
.lab-casegrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(272px, 1fr)); gap: 16px; margin-top: 20px; }
.lab-case { border: 1px solid var(--border); border-radius: var(--r); background: var(--white); padding: 18px 20px 20px; box-shadow: var(--shadow-sm); }
.lab-case[hidden] { display: none; }
.lab-case__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.lab-case__status { font-size: 11px; font-weight: 700; letter-spacing: 0.04em; padding: 3px 9px; border-radius: var(--r-sm); }
.lab-case__status--open { background: var(--red); color: #fff; }
.lab-case__status--talking { background: var(--blue-light); color: var(--blue); }
.lab-case__code { font-family: 'DM Sans', sans-serif; font-size: 11px; color: var(--text-muted); font-variant-numeric: tabular-nums; letter-spacing: 0.03em; }
.lab-case__title { font-family: 'Noto Serif JP', serif; font-size: 15.5px; font-weight: 700; color: var(--text); line-height: 1.6; margin: 12px 0 14px; }
.lab-case__metrics { display: flex; flex-direction: column; gap: 9px; margin: 0; }
.lab-case__metric { display: grid; grid-template-columns: 76px 1fr; gap: 10px; align-items: center; }
.lab-case__metric dt { font-family: 'DM Sans', sans-serif; font-size: 10.5px; letter-spacing: 0.05em; color: var(--text-muted); }
.lab-case__metric dd { margin: 0; font-size: 13px; color: var(--text); }
.lab-case__range { display: flex; align-items: center; gap: 10px; }
.lab-case__track { position: relative; flex: 1; height: 5px; background: var(--blue-light); border-radius: 3px; }
.lab-case__track i { position: absolute; top: 0; bottom: 0; background: var(--blue); border-radius: 3px; }
.lab-case__range b { font-family: 'DM Sans', sans-serif; font-size: 12px; font-weight: 500; color: var(--text); font-variant-numeric: tabular-nums; white-space: nowrap; }

/* 該当なし・掲載なし */
.lab-cases__empty { margin-top: 24px; padding: 20px; text-align: center; font-size: 13.5px; color: var(--text-mid); background: var(--bg); border-radius: var(--r); }
.lab-cases__none { margin-top: 40px; padding: 40px 24px; text-align: center; border: 1px dashed var(--border); border-radius: var(--r); background: var(--bg); }
.lab-cases__none h2 { font-family: 'Noto Serif JP', serif; font-size: 18px; font-weight: 700; margin-bottom: 10px; }
.lab-cases__none p { font-size: 13.5px; color: var(--text-mid); max-width: 52ch; margin: 0 auto 20px; }

/* 成約速報 */
.lab-closed { margin-top: 56px; border: 1px solid var(--border); border-radius: var(--r); background: var(--white); overflow: hidden; }
.lab-closed__head { font-family: 'Noto Serif JP', serif; font-size: 16px; font-weight: 700; color: var(--text); padding: 16px 20px 0; }
.lab-closed__note { font-size: 12px; color: var(--text-muted); padding: 6px 20px 14px; margin: 0; border-bottom: 1px solid var(--border); }
.lab-closed__list { list-style: none; margin: 0; padding: 0; }
.lab-closed__item { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; padding: 12px 20px; border-bottom: 1px solid var(--blue-pale); font-size: 13.5px; color: var(--text); }
.lab-closed__item:last-child { border-bottom: 0; }
.lab-closed__item time { font-family: 'DM Sans', sans-serif; font-size: 12px; color: var(--text-muted); font-variant-numeric: tabular-nums; min-width: 58px; }
.lab-closed__item em { font-style: normal; font-size: 12px; color: var(--blue); }

@media (max-width: 640px) {
  .lab-cases { padding: 28px 16px 60px; }
  .lab-casefilter__row { grid-template-columns: 1fr; gap: 6px; }
  .lab-casefilter__label { padding-top: 0; }
}

/* ══════════════════════════════════════════════════════════════
   料金（page-price.php） 2026-08-04 追加
   金額は等幅・tabular-nums。安さではなく「読めること」を見せる
   ══════════════════════════════════════════════════════════════ */
.lab-price { max-width: var(--max); margin: 0 auto; padding: 40px 24px 80px; display: flex; flex-direction: column; gap: 56px; }
.lab-price__head { font-family: 'Noto Serif JP', serif; font-size: clamp(18px, 2.6vw, 22px); font-weight: 700; color: var(--text); margin-bottom: 18px; padding-left: 12px; border-left: 3px solid var(--blue); }
.lab-price__lead { font-size: 14px; color: var(--text-mid); margin: -6px 0 18px; }

/* 料金表 */
.lab-price__rows { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: var(--r); overflow: hidden; background: var(--white); margin: 0; }
.lab-price__row { display: grid; grid-template-columns: 1fr auto; gap: 16px 24px; align-items: center; padding: 20px 24px; border-bottom: 1px solid var(--border); }
.lab-price__row:last-child { border-bottom: 0; }
.lab-price__row dt { margin: 0; display: flex; flex-direction: column; gap: 4px; }
.lab-price__row dd { margin: 0; text-align: right; display: flex; flex-direction: column; gap: 3px; }
.lab-price__name { font-family: 'Noto Serif JP', serif; font-size: 16px; font-weight: 700; color: var(--text); }
.lab-price__note { font-size: 12.5px; color: var(--text-muted); line-height: 1.7; }
/* 料金表の行から、そのサービスの詳細ページへ渡すリンク（2026-09-01 追加）。
   **`align-self` を外さないこと。** 親の dt が flex column なので、既定の
   stretch だとアンカーが行幅いっぱいに広がり、行の余白部分まで押せてしまう。
   下線は既定のままにせず消してある。金額の並びの中で下線が入ると表が濁る */
.lab-price__link { align-self: flex-start; margin-top: 2px; font-size: 12.5px; font-weight: 600; color: var(--blue); text-decoration: none; display: inline-flex; align-items: center; gap: 4px; transition: gap 0.15s; }
.lab-price__link:hover { gap: 8px; text-decoration: underline; }
.lab-price__amount { font-family: 'DM Sans', sans-serif; font-size: clamp(19px, 2.6vw, 24px); font-weight: 700; color: var(--blue); font-variant-numeric: tabular-nums; letter-spacing: 0.01em; white-space: nowrap; }
.lab-price__amount span { font-size: 0.62em; font-weight: 600; margin-left: 1px; }
.lab-price__unit { font-size: 11.5px; color: var(--text-muted); white-space: nowrap; }
.lab-price__nofee { margin: 14px 0 0; padding: 14px 18px; border: 1px solid var(--blue); border-radius: var(--r-sm); background: var(--blue-light); font-size: 13.5px; color: var(--text-mid); line-height: 1.85; }
.lab-price__nofee strong { color: var(--blue); font-weight: 700; }

/* 無料の範囲 */
.lab-price__free { background: var(--blue-pale); border: 1px solid var(--blue); border-radius: var(--r); padding: 28px 28px 30px; }
.lab-price__freelist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(268px, 1fr)); gap: 14px 24px; }
.lab-price__freelist li { font-size: 13.5px; color: var(--text-mid); line-height: 1.8; padding-left: 15px; border-left: 2px solid var(--blue-mid); }
.lab-price__freename { display: block; font-weight: 700; color: var(--text); font-size: 14px; margin-bottom: 2px; }
.lab-price__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }

/* 考え方 */
.lab-price__policygrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.lab-price__policyitem { border: 1px solid var(--border); border-radius: var(--r); background: var(--white); padding: 22px 24px 24px; }
.lab-price__policyitem h3 { font-family: 'Noto Serif JP', serif; font-size: 15.5px; font-weight: 700; color: var(--text); margin-bottom: 8px; line-height: 1.6; }
.lab-price__policyitem p { font-size: 13.5px; color: var(--text-mid); line-height: 1.85; margin: 0; }
.lab-price__policyitem strong { color: var(--text); font-weight: 700; }
/* 地の文のリンク。テーマに素の a のスタイルが無く、放っておくと
   ブラウザ既定の #0000EE になってこのカードだけ色が浮く（2026-09-01 追加） */
.lab-price__policyitem a { color: var(--blue); font-weight: 700; }

/* FAQ */
.lab-price__qa { border: 1px solid var(--border); border-radius: var(--r); background: var(--white); padding: 6px 24px 20px; }
.lab-price__qa h3 { font-size: 14.5px; font-weight: 700; color: var(--text); margin: 20px 0 6px; line-height: 1.6; }
.lab-price__qa p { font-size: 13.5px; color: var(--text-mid); line-height: 1.85; margin: 0; padding-bottom: 14px; border-bottom: 1px solid var(--blue-pale); }
.lab-price__qa p:last-child { border-bottom: 0; padding-bottom: 4px; }

@media (max-width: 640px) {
  .lab-price { padding: 28px 16px 60px; gap: 44px; }
  .lab-price__row { grid-template-columns: 1fr; gap: 10px; }
  .lab-price__row dd { text-align: left; }
  .lab-price__free { padding: 22px 18px 24px; }
}

/* ══════════════════════════════════════════════════════════════
   私たちについて（page-about.php） 2026-08-04 追加
   数値実績ではなく経歴で信頼を担保する構成のため、
   人物と時系列に視線が向くように組んでいる
   ══════════════════════════════════════════════════════════════ */
.lab-about { max-width: var(--max); margin: 0 auto; padding: 40px 24px 80px; display: flex; flex-direction: column; gap: 56px; }
.lab-about__head { font-family: 'Noto Serif JP', serif; font-size: clamp(18px, 2.6vw, 22px); font-weight: 700; color: var(--text); margin-bottom: 18px; padding-left: 12px; border-left: 3px solid var(--blue); }
.lab-about__lead { font-size: 13px; color: var(--text-muted); margin: -8px 0 16px; }

/* 立ち位置 */
.lab-about__stancebody { border: 1px solid var(--border); border-left: 3px solid var(--blue-mid); border-radius: var(--r); background: var(--white); padding: 26px 28px; display: flex; flex-direction: column; gap: 14px; }
.lab-about__stancebody p { font-size: 14.5px; color: var(--text-mid); line-height: 1.95; margin: 0; max-width: 68ch; }
.lab-about__stancebody strong { color: var(--text); font-weight: 700; }

/* 代表 */
.lab-about__repgrid { display: grid; grid-template-columns: 300px 1fr; gap: 32px; align-items: start; }
.lab-about__photo { border-radius: var(--r); overflow: hidden; background: var(--bg); box-shadow: var(--shadow-sm); }
.lab-about__photo img { display: block; width: 100%; height: auto; }
.lab-about__nameen { font-family: 'DM Sans', sans-serif; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-muted); margin: 0 0 4px; }
.lab-about__name { font-family: 'Noto Serif JP', serif; font-size: 26px; font-weight: 700; color: var(--text); margin: 0 0 6px; }
.lab-about__role { font-size: 13.5px; color: var(--blue); font-weight: 700; margin: 0 0 20px; }
.lab-about__facts { list-style: none; margin: 0 0 22px; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.lab-about__facts li { font-size: 13.5px; color: var(--text-mid); line-height: 1.8; padding-left: 14px; border-left: 2px solid var(--blue-light); }
.lab-about__facts span { display: block; font-family: 'DM Sans', sans-serif; font-size: 10.5px; letter-spacing: 0.08em; color: var(--text-muted); margin-bottom: 1px; }
.lab-about__timeline { list-style: none; margin: 0 0 20px; padding: 0; border-top: 1px solid var(--border); }
.lab-about__timeline li { display: grid; grid-template-columns: 66px 1fr; gap: 14px; align-items: baseline; padding: 11px 0; border-bottom: 1px solid var(--border); font-size: 13.5px; color: var(--text); }
.lab-about__timeline time { font-family: 'DM Sans', sans-serif; font-size: 13px; font-weight: 700; color: var(--blue); font-variant-numeric: tabular-nums; }
.lab-about__links { display: flex; flex-wrap: wrap; gap: 10px; }
.lab-about__link { font-size: 12.5px; color: var(--blue); text-decoration: none; border: 1px solid var(--border); border-radius: var(--r-sm); padding: 6px 14px; transition: border-color .15s; }
.lab-about__link:hover { border-color: var(--blue); }
/* 表のセル内で使うとき、外側の flex に上下の余白を持たせない */
.lab-about__links--inline { margin: 2px 0; }

/* 比較表 */
.lab-about__tablewrap { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--r); background: var(--white); }
.lab-about__table { border-collapse: collapse; width: 100%; min-width: 640px; font-size: 13.5px; }
.lab-about__table th, .lab-about__table td { text-align: left; padding: 14px 18px; border-bottom: 1px solid var(--border); vertical-align: top; line-height: 1.8; }
.lab-about__table thead th { font-family: 'DM Sans', sans-serif; font-size: 11px; letter-spacing: 0.06em; font-weight: 600; color: var(--text-muted); background: var(--bg); }
.lab-about__table thead th:last-child { color: var(--blue); }
.lab-about__table tbody th { font-weight: 700; color: var(--text); white-space: nowrap; background: var(--blue-pale); }
.lab-about__table td { color: var(--text-mid); }
.lab-about__table td:last-child { color: var(--text); }
.lab-about__table tbody tr:last-child th, .lab-about__table tbody tr:last-child td { border-bottom: 0; }

/* 会社概要（比較表のスタイルを流用。項目名の列だけ幅を固定する） */
.lab-about__table--corp { min-width: 0; }
.lab-about__table--corp tbody th { width: 148px; }
.lab-about__table--corp a { color: var(--blue); }
@media (max-width: 560px) {
  /* 見出し列を上に落とす。横スクロールさせるより読みやすい */
  .lab-about__table--corp tbody th,
  .lab-about__table--corp tbody td { display: block; width: auto; }
  .lab-about__table--corp tbody th { border-bottom: 0; padding-bottom: 6px; }
}

/* 運営体制 */
.lab-about__groupgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.lab-about__groupitem { border: 1px solid var(--border); border-radius: var(--r); background: var(--bg); padding: 22px 24px 24px; }
.lab-about__groupitem h3 { font-family: 'Noto Serif JP', serif; font-size: 15.5px; font-weight: 700; color: var(--text); margin-bottom: 8px; }
.lab-about__groupitem p { font-size: 13px; color: var(--text-mid); line-height: 1.9; margin: 0; }
.lab-about__groupitem strong { color: var(--text); font-weight: 700; }

@media (max-width: 780px) {
  .lab-about__repgrid { grid-template-columns: 1fr; gap: 22px; }
  .lab-about__photo { max-width: 300px; }
}
@media (max-width: 640px) {
  .lab-about { padding: 28px 16px 60px; gap: 44px; }
  .lab-about__stancebody { padding: 20px 18px; }
  .lab-about__name { font-size: 22px; }
}

/* トップページで再利用する際の余白（案件の入口・料金表はページ側のラッパー外でも使う） */
.lab-section .lab-cases__entry { margin-top: 0; }
.lab-section .lab-price__rows { margin-top: 0; }
.lab-section .lab-price__nofee { max-width: 100%; }

/* ══════════════════════════════════════════════════════════════
   広告用LP（page-lp-buyer.php） 2026-08-04 追加
   サイトのナビを出さず、フォームへの一本道にする
   ══════════════════════════════════════════════════════════════ */
body.lab-lp { background: var(--white); }
.lp-bar { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,0.96); backdrop-filter: blur(8px); border-bottom: 1px solid var(--border); }
.lp-bar__inner { max-width: 1080px; margin: 0 auto; padding: 12px 20px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.lp-bar__logo-main { display: block; font-family: 'Noto Serif JP', serif; font-size: 16px; font-weight: 700; color: var(--blue); }
.lp-bar__logo-sub { display: block; font-family: 'DM Sans', sans-serif; font-size: 10px; letter-spacing: 0.08em; color: var(--text-muted); }
.lp-bar__cta { background: var(--red); color: #fff; font-size: 13px; font-weight: 700; padding: 9px 18px; border-radius: var(--r-sm); text-decoration: none; white-space: nowrap; }

.lp-btn { display: inline-block; font-size: 15px; font-weight: 700; padding: 15px 32px; border-radius: var(--r-sm); text-decoration: none; border: none; cursor: pointer; font-family: inherit; transition: opacity .15s; }
.lp-btn--go { background: var(--red); color: #fff; }
.lp-btn--go:hover { opacity: .88; }
.lp-btn--wide { display: block; width: 100%; font-size: 16px; padding: 17px; }
.lp-btn:disabled { opacity: .6; cursor: default; }

/* ヒーロー */
.lp-hero { background: linear-gradient(150deg, #17415f 0%, #0f2d43 100%); color: #eef4f9; padding: 56px 20px 60px; }
.lp-hero__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 1.35fr 1fr; gap: 44px; align-items: center; }
.lp-hero__eyebrow { font-family: 'DM Sans', sans-serif; font-size: 12px; letter-spacing: 0.1em; color: #8fc0dd; }
.lp-hero__title { font-family: 'Noto Serif JP', serif; font-size: clamp(26px, 4.2vw, 40px); font-weight: 700; line-height: 1.45; margin: 12px 0 16px; }
.lp-hero__title em { font-style: normal; color: #ffd9a0; }
.lp-hero__lead { font-size: 15px; line-height: 1.9; color: #c6dbea; margin-bottom: 20px; }
.lp-hero__lead strong { color: #fff; }
.lp-hero__points { list-style: none; margin: 0 0 26px; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.lp-hero__points li { position: relative; padding-left: 26px; font-size: 14.5px; color: #dbe9f3; line-height: 1.7; }
.lp-hero__points li::before { content: ""; position: absolute; left: 0; top: 8px; width: 14px; height: 7px; border-left: 2px solid #7fd6a8; border-bottom: 2px solid #7fd6a8; transform: rotate(-45deg); }
.lp-hero__points strong { color: #fff; }
.lp-hero__note { font-size: 12.5px; color: #9dc2d9; margin-top: 12px; }
.lp-hero__stats { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.lp-stat { background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.14); border-radius: var(--r); padding: 18px 16px; text-align: center; display: flex; flex-direction: column; justify-content: center; }
.lp-stat b { display: block; font-family: 'DM Sans', sans-serif; font-size: 30px; font-weight: 700; color: #fff; font-variant-numeric: tabular-nums; line-height: 1.2; }
.lp-stat b span { font-size: 15px; margin-left: 2px; }
.lp-stat > span { display: block; font-size: 11.5px; color: #9dc2d9; margin-top: 5px; }
/* 文字数が多い数値は字間だけ詰める。サイズは他と揃える */
.lp-stat--text b { letter-spacing: -0.02em; }

/* セクション */
.lp-sec { padding: 56px 20px; }
.lp-sec--alt { background: var(--bg); }
.lp-sec--form { background: var(--blue-pale); }
.lp-sec__inner { max-width: 1080px; margin: 0 auto; }
.lp-sec__inner--narrow { max-width: 720px; }
.lp-h2 { font-family: 'Noto Serif JP', serif; font-size: clamp(21px, 3.2vw, 28px); font-weight: 700; color: var(--text); text-align: center; margin-bottom: 16px; line-height: 1.5; }
.lp-lead { font-size: 15px; line-height: 1.95; color: var(--text-mid); max-width: 70ch; margin: 0 auto 28px; text-align: center; }
.lp-lead strong { color: var(--text); font-weight: 700; }

/* 比較表 */
.lp-compare { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--r); background: var(--white); }
.lp-compare table { border-collapse: collapse; width: 100%; min-width: 620px; font-size: 14px; }
.lp-compare th, .lp-compare td { padding: 14px 18px; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; line-height: 1.8; }
.lp-compare thead th { font-size: 12px; letter-spacing: 0.05em; color: var(--text-muted); background: var(--bg); font-weight: 600; }
.lp-compare thead th:last-child { color: var(--blue); }
.lp-compare tbody th { white-space: nowrap; color: var(--text); background: var(--blue-pale); font-weight: 700; }
.lp-compare td { color: var(--text-mid); }
.lp-compare td:last-child { color: var(--text); }
.lp-compare tbody tr:last-child th, .lp-compare tbody tr:last-child td { border-bottom: 0; }

/* 理由 */
.lp-reasons { display: grid; grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); gap: 16px; }
.lp-reason { background: var(--white); border: 1px solid var(--border); border-radius: var(--r); padding: 24px 26px 26px; }
.lp-reason h3 { font-family: 'Noto Serif JP', serif; font-size: 17px; font-weight: 700; color: var(--text); margin-bottom: 9px; line-height: 1.55; }
.lp-reason p { font-size: 14px; color: var(--text-mid); line-height: 1.9; margin: 0; }
.lp-reason strong { color: var(--text); font-weight: 700; }

/* 料金 */
.lp-price { border: 1px solid var(--border); border-radius: var(--r); background: var(--white); overflow: hidden; max-width: 780px; margin: 0 auto; }
.lp-price__row { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px 20px; padding: 18px 24px; border-bottom: 1px solid var(--border); }
.lp-price__row:last-child { border-bottom: 0; }
.lp-price__row span { font-size: 14.5px; color: var(--text); font-weight: 700; }
.lp-price__row b { font-family: 'DM Sans', sans-serif; font-size: 21px; color: var(--blue); font-variant-numeric: tabular-nums; white-space: nowrap; }
.lp-price__row b small { font-family: inherit; font-size: 12px; color: var(--text-muted); margin-left: 6px; }
.lp-price__note { max-width: 780px; margin: 16px auto 0; padding: 14px 18px; background: var(--blue-light); border: 1px solid var(--blue); border-radius: var(--r-sm); font-size: 13.5px; color: var(--text-mid); line-height: 1.85; }
.lp-price__note strong { color: var(--blue); }

/* 代表 */
.lp-person { display: grid; grid-template-columns: 200px 1fr; gap: 28px; align-items: start; max-width: 860px; margin: 0 auto; }
.lp-person img { border-radius: var(--r); width: 100%; height: auto; }
.lp-person h3 { font-family: 'Noto Serif JP', serif; font-size: 22px; font-weight: 700; margin-bottom: 4px; }
.lp-person__role { font-size: 13.5px; color: var(--blue); font-weight: 700; margin-bottom: 14px; }
.lp-person p { font-size: 14px; color: var(--text-mid); line-height: 1.9; margin: 0 0 10px; }
.lp-person__note { font-family: 'Noto Serif JP', serif; font-size: 15px; color: var(--text); font-weight: 700; }

/* フォーム */
.lp-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; background: var(--white); border: 1px solid var(--border); border-radius: var(--r); padding: 28px; }
.lp-field { display: flex; flex-direction: column; gap: 6px; }
.lp-field--full { grid-column: 1 / -1; }
.lp-field label { font-size: 13px; font-weight: 700; color: var(--text); }
.lp-field label span { font-size: 10.5px; background: var(--red); color: #fff; padding: 2px 7px; border-radius: 3px; margin-left: 6px; font-weight: 700; }
.lp-field label span.lp-opt { background: var(--bg); color: var(--text-muted); border: 1px solid var(--border); }
.lp-field input, .lp-field select, .lp-field textarea { font-family: inherit; font-size: 15px; padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--r-sm); background: var(--white); color: var(--text); width: 100%; }
.lp-field input:focus, .lp-field select:focus, .lp-field textarea:focus { outline: 2px solid var(--blue); outline-offset: 1px; border-color: var(--blue); }
.lp-form__privacy { grid-column: 1 / -1; font-size: 12px; color: var(--text-muted); line-height: 1.8; margin: 0; }
.lp-form .lp-btn--wide { grid-column: 1 / -1; }
.lp-form__msg { grid-column: 1 / -1; margin: 0; font-size: 13.5px; color: var(--red); font-weight: 700; min-height: 1em; }
.lp-done { background: var(--white); border: 1px solid var(--blue); border-radius: var(--r); padding: 36px 28px; text-align: center; }
.lp-done h3 { font-family: 'Noto Serif JP', serif; font-size: 20px; font-weight: 700; margin-bottom: 8px; }
.lp-done p { font-size: 14px; color: var(--text-mid); margin: 0; }

/* LINE導線（フォームを埋めない読者の受け皿）。ボタンは .lab-btn-line を流用する */
.lp-line { margin-top: 24px; }
.lp-line[hidden] { display: none; }
.lp-line__or { display: flex; align-items: center; gap: 12px; font-size: 12px; color: var(--text-muted); margin-bottom: 14px; }
.lp-line__or::before, .lp-line__or::after { content: ''; flex: 1; height: 1px; background: var(--border); }
.lp-line__box { background: var(--white); border: 1px solid var(--border); border-radius: var(--r); padding: 22px; }
.lp-line__title { font-size: 15px; font-weight: 700; color: var(--text); margin-bottom: 6px; }
.lp-line__sub { font-size: 13px; color: var(--text-mid); line-height: 1.8; margin-bottom: 14px; }
.lp-line__note { font-size: 11px; color: var(--text-muted); text-align: center; margin: 10px 0 0; }
.lp-done__linenote { font-size: 12px; color: var(--text-muted); margin: 8px 0 0; }
/* <a> で使うので下線を消す。.lab-btn-line は button 前提の定義になっている */
.lp-line .lab-btn-line, .lp-done .lab-btn-line { text-decoration: none; }
.lp-done .lab-btn-line { margin-top: 20px; }

/* フッター */
.lp-foot { background: #1a2533; color: rgba(255,255,255,0.72); padding: 28px 20px; font-size: 13px; }
.lp-foot__inner { max-width: 1080px; margin: 0 auto; display: flex; flex-wrap: wrap; gap: 16px 32px; justify-content: space-between; line-height: 1.9; }
.lp-foot__links { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.lp-foot__links a { color: rgba(255,255,255,0.72); font-size: 12.5px; text-decoration: none; }
.lp-foot__links a:hover { color: #fff; text-decoration: underline; }

@media (max-width: 860px) {
  .lp-hero__inner { grid-template-columns: 1fr; gap: 30px; }
  .lp-person { grid-template-columns: 1fr; }
  .lp-person img { max-width: 200px; }
}
@media (max-width: 640px) {
  .lp-hero { padding: 36px 16px 42px; }
  .lp-sec { padding: 40px 16px; }
  .lp-form { grid-template-columns: 1fr; padding: 20px; }
  .lp-reasons { grid-template-columns: 1fr; }
}

/* 探し方の3ステップ（2026-08-04 追加・LP / 案件ページ / トップで共用）
   「在庫から選ぶ」ではなく「条件を預けて市場全体から探してもらう」ことを示す中心セクション */
.lab-steps { list-style: none; margin: 0 0 24px; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; counter-reset: none; }
.lab-steps > li { position: relative; background: var(--white); border: 1px solid var(--border); border-radius: var(--r); padding: 26px 24px 24px; }
.lab-steps__n { position: absolute; top: -14px; left: 24px; width: 30px; height: 30px; border-radius: 50%; background: var(--blue); color: #fff; font-family: 'DM Sans', sans-serif; font-size: 15px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.lab-steps h3 { font-family: 'Noto Serif JP', serif; font-size: 16.5px; font-weight: 700; color: var(--text); margin: 6px 0 9px; line-height: 1.55; }
.lab-steps p { font-size: 13.5px; color: var(--text-mid); line-height: 1.9; margin: 0; }
.lab-steps strong { color: var(--text); font-weight: 700; }

/* 「この件数から選ぶわけではない」ことを明示する注記 */
.lab-note { max-width: 800px; margin: 0 auto; padding: 16px 20px; background: var(--blue-light); border-left: 3px solid var(--blue); border-radius: var(--r-sm); font-size: 13.5px; color: var(--text-mid); line-height: 1.9; }
.lab-note strong { color: var(--text); font-weight: 700; }

/* 案件ページの「探し方」セクション（2026-08-04 追加）
   カードより先に置いて、「掲載分から選ぶ」ではないことを最初に伝える */
.lab-cases__how { margin-bottom: 40px; }
.lab-cases__howhead { font-family: 'Noto Serif JP', serif; font-size: clamp(19px, 2.8vw, 24px); font-weight: 700; color: var(--text); text-align: center; margin-bottom: 12px; line-height: 1.5; }
.lab-cases__howlead { font-size: 14px; color: var(--text-mid); line-height: 1.95; max-width: 68ch; margin: 0 auto 26px; text-align: center; }
.lab-cases__howlead strong { color: var(--text); font-weight: 700; }

/* トップページの案件セクションに置く簡易版 */
.lab-section .lab-steps { margin-bottom: 20px; }

/* 読者の振り分け（2026-08-04 追加）
   本体サイトは買い手を主としつつ、売り手と新規開業も落とさない。
   買い手のカードだけ強調して優先順位を示す。 */
.lab-router { background: var(--white); padding: 44px 24px; border-bottom: 1px solid var(--border); }
.lab-router__inner { max-width: var(--max); margin: 0 auto; }
.lab-router__head { font-family: 'Noto Serif JP', serif; font-size: clamp(17px, 2.4vw, 21px); font-weight: 700; color: var(--text); text-align: center; margin-bottom: 22px; }
.lab-router__grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 16px; align-items: stretch; }
.lab-router__card { border: 1px solid var(--border); border-radius: var(--r); padding: 22px 22px 24px; display: flex; flex-direction: column; background: var(--white); }
.lab-router__card--main { border-color: var(--blue); background: var(--blue-pale); box-shadow: var(--shadow-sm); }
.lab-router__tag { font-family: 'DM Sans', sans-serif; font-size: 10.5px; letter-spacing: 0.1em; color: var(--text-muted); }
.lab-router__card--main .lab-router__tag { color: var(--blue); font-weight: 700; }
.lab-router__card h3 { font-family: 'Noto Serif JP', serif; font-size: 17px; font-weight: 700; color: var(--text); margin: 6px 0 9px; line-height: 1.55; }
.lab-router__card p { font-size: 13.5px; color: var(--text-mid); line-height: 1.9; margin: 0 0 16px; }
.lab-router__card p strong { color: var(--text); font-weight: 700; }
.lab-router__links { margin-top: auto; display: flex; flex-wrap: wrap; gap: 8px; }
.lab-router__links a { font-size: 13px; font-weight: 700; text-decoration: none; padding: 9px 16px; border-radius: var(--r-sm); border: 1px solid var(--blue); color: var(--blue); }
.lab-router__links a.is-main { background: var(--red); border-color: var(--red); color: #fff; }

/* ヒーローの下に置く「他の方も」の一文 */
.lab-hero__also { font-size: 13px; color: var(--text-mid); margin-top: 16px; line-height: 1.9; }
.lab-hero__also a { color: var(--blue); font-weight: 700; }

@media (max-width: 860px) {
  .lab-router__grid { grid-template-columns: 1fr; }
}

/* ── トップの体系ガイド導線（2026-09-01 設置 / 2026-09-02 2枚並びに）
   ヘッダーに経営ガイドを足すとナビが1100pxに収まらず崩れるため、
   ガイドへの導線はここに集約している（オーナー判断）。
   直前のPROFILEがalt・直後のYOUTUBEがplainで背景では区別がつかないため、
   セクションの縞ではなくカードで見た目を分けている。 */
.lab-guides { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: stretch; }
.lab-guidecard {
  display: flex; flex-direction: column; align-items: flex-start;
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--r); padding: 28px 30px; box-shadow: var(--shadow-sm);
}
.lab-guidecard__tag { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: 0.06em; color: var(--blue); background: var(--blue-light); border-radius: 20px; padding: 4px 12px; margin-bottom: 14px; }
/* 経営は承継と別トピックだと一目で分かるように色を変える */
.lab-guidecard__tag--keiei { color: #0d7a5f; background: #e6f7f3; }
.lab-guidecard__title { font-family: 'Noto Serif JP', serif; font-size: clamp(16px, 2vw, 19px); font-weight: 700; color: var(--text); line-height: 1.55; margin-bottom: 12px; }
.lab-guidecard__lead { font-size: 13.5px; color: var(--text-mid); line-height: 1.95; margin-bottom: 18px; }
.lab-guidecard__lead strong { color: var(--text); font-weight: 700; }
.lab-guidecard__list { list-style: none; margin: 0 0 22px; padding: 0; display: flex; flex-direction: column; gap: 9px; width: 100%; }
.lab-guidecard__list li { position: relative; padding-left: 18px; font-size: 13px; color: var(--text-mid); line-height: 1.7; }
.lab-guidecard__list li::before { content: ''; position: absolute; left: 3px; top: 7px; width: 6px; height: 6px; border-radius: 50%; background: var(--blue); }
/* ボタンを下端でそろえる。片方の説明が長くても不揃いに見えないようにする */
.lab-guidecard .lab-btn { margin-top: auto; }

@media (max-width: 860px) {
  .lab-guides { grid-template-columns: 1fr; }
  .lab-guidecard { padding: 24px 22px; }
}

/* ── 案件・物件カードからの個別問い合わせ導線（2026-09-01）
   個別ページを作らない方針のため、カードから問い合わせフォームへ
   対象IDを渡す。ボタンはカード末尾に固定して押しやすくする。 */
.lab-case { display: flex; flex-direction: column; }
.lab-case__cta,
.lab-property-card__cta {
  display: block; margin-top: auto; text-align: center;
  padding: 10px 14px; border-radius: var(--r-sm);
  background: var(--blue-light); color: var(--blue);
  border: 1px solid rgba(58,140,189,0.25);
  font-size: 13px; font-weight: 700; text-decoration: none;
  transition: background .15s, border-color .15s, color .15s;
}
.lab-case__cta { margin-top: 16px; }
.lab-property-card__cta { margin-top: 14px; }
.lab-case__cta:hover,
.lab-property-card__cta:hover { background: var(--red); border-color: var(--red); color: #fff; }

/* 問い合わせフォームの「この案件についてのお問い合わせ」ボックス */
.lab-subject-box { background: var(--blue-pale); border: 1px solid rgba(58,140,189,0.3); border-radius: var(--r); padding: 18px 20px; margin-bottom: 22px; }
.lab-subject-box__head { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: var(--blue); margin-bottom: 8px; }
.lab-subject-box__name { font-size: 15px; font-weight: 700; color: var(--text); line-height: 1.6; margin: 0 0 8px; word-break: break-word; }
.lab-subject-box__note { font-size: 12.5px; color: var(--text-mid); line-height: 1.8; margin: 0; }
.lab-subject-box__note strong { color: var(--text); font-weight: 700; }

/* ── ページ送り（2026-09-01・新規開業物件870件の分割表示用） ── */
.lab-pager { margin-top: 28px; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.lab-pager:empty { margin-top: 0; }
.lab-pager__range { font-size: 13px; color: var(--text-muted); }
.lab-pager__btns { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; }
.lab-pager__btn {
  min-width: 38px; padding: 8px 12px;
  background: var(--white); color: var(--text-mid);
  border: 1px solid var(--border); border-radius: var(--r-sm);
  font-size: 13px; font-weight: 600; cursor: pointer;
  transition: border-color .15s, color .15s, background .15s;
}
.lab-pager__btn:hover:not(:disabled):not(.is-current) { border-color: var(--blue); color: var(--blue); background: var(--blue-light); }
.lab-pager__btn.is-current { background: var(--blue); border-color: var(--blue); color: #fff; cursor: default; }
.lab-pager__btn:disabled { opacity: .4; cursor: default; }
.lab-pager__gap { padding: 0 2px; color: var(--text-muted); font-size: 13px; }

@media (max-width: 640px) {
  .lab-pager__btn { min-width: 34px; padding: 7px 9px; font-size: 12.5px; }
}

/* ── 経営ガイドの年間カレンダー（2026-09-01）
   ロードマップ（lab-road）と違い「順番」ではなく「時期」を示すので、
   左に時期を固定幅で置き、縦線でつなぐ。 */
.lab-cal { list-style: none; margin: 26px 0 0; padding: 0; }
.lab-cal__item { display: grid; grid-template-columns: 108px 1fr; gap: 18px; position: relative; padding-bottom: 22px; }
.lab-cal__item:last-child { padding-bottom: 0; }
/* 時期どうしをつなぐ縦線。最後の項目には引かない */
.lab-cal__item:not(:last-child)::before {
  content: ''; position: absolute; left: 53px; top: 30px; bottom: 0;
  width: 1px; background: var(--border);
}
.lab-cal__when {
  position: relative; z-index: 1;
  align-self: start; text-align: center;
  background: var(--blue); color: #fff;
  border-radius: 20px; padding: 5px 8px;
  font-size: 12.5px; font-weight: 700; line-height: 1.5;
  white-space: nowrap;
}
.lab-cal__body { padding-top: 2px; min-width: 0; }
.lab-cal__body h3 { font-family: 'Noto Serif JP', serif; font-size: 16px; font-weight: 700; color: var(--text); margin: 0 0 8px; line-height: 1.55; }
.lab-cal__body p { font-size: 14px; color: var(--text-mid); line-height: 1.9; margin: 0; }
.lab-cal__body strong { color: var(--text); font-weight: 700; }

@media (max-width: 640px) {
  .lab-cal__item { grid-template-columns: 1fr; gap: 8px; padding-bottom: 20px; }
  .lab-cal__item:not(:last-child)::before { display: none; }
  .lab-cal__when { justify-self: start; padding: 4px 12px; }
}

/* ── 提携先・取引先の社名リスト（2026-09-04）
   **ロゴは置かない。** ロゴには商標の許諾が別途要るため、社名のテキスト表記に留める。
   許諾が取れた先からロゴに差し替える場合は、ここに画像用の指定を足す。 */
.lab-partners { display: flex; flex-wrap: wrap; gap: 10px; margin: 22px 0 14px; }
.lab-partner {
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--r-sm); padding: 11px 18px;
  font-size: 14px; font-weight: 600; color: var(--text);
  line-height: 1.5;
}
/* 「ほか、計20社」など、社名ではないものは地の色を落として区別する */
.lab-partner--more { background: transparent; border-style: dashed; color: var(--text-muted); font-weight: 500; }
.lab-guide-note { font-size: 12.5px; color: var(--text-muted); line-height: 1.8; margin: 0; }

@media (max-width: 640px) {
  .lab-partners { gap: 8px; }
  .lab-partner { padding: 9px 14px; font-size: 13px; }
}

/* 404（2026-08-04 追加）
   404.php が無いと index.php にフォールバックしてトップの内容が出てしまうため新設 */
.lab-404 { max-width: var(--max); margin: 0 auto; padding: 40px 24px 80px; }
.lab-404__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.lab-404__card { display: block; border: 1px solid var(--border); border-radius: var(--r); background: var(--white); padding: 22px 24px 24px; text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.lab-404__card:hover { border-color: var(--blue); box-shadow: var(--shadow-sm); }
.lab-404__card h2 { font-family: 'Noto Serif JP', serif; font-size: 16px; font-weight: 700; color: var(--blue); margin-bottom: 8px; }
.lab-404__card p { font-size: 13px; color: var(--text-mid); line-height: 1.85; margin: 0; }
.lab-404__recent { margin-top: 40px; border-top: 1px solid var(--border); padding-top: 26px; }
.lab-404__recenthead { font-family: 'Noto Serif JP', serif; font-size: 16px; font-weight: 700; color: var(--text); margin-bottom: 12px; }
.lab-404__recent ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.lab-404__recent a { font-size: 14px; color: var(--text-mid); text-decoration: none; }
.lab-404__recent a:hover { color: var(--blue); text-decoration: underline; }

/* ── 承継ガイド（ピラーページ / 2026-09-01 追加）
   page-shokei.php 専用。記事本文（.lab-single__text）とは別系統にしている。
   本文は「読ませる」ための版面、こちらは「探して降りる」ための版面なので、
   見出しの間隔と参照リンクの見え方を変えてある。 */
.lab-guide { max-width: 860px; margin: 0 auto; padding: 40px 24px 80px; }

/* 目次 */
.lab-guide-toc { background: var(--bg); border: 1px solid var(--border); border-radius: var(--r); padding: 22px 26px; margin-bottom: 48px; }
.lab-guide-toc__head { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; color: var(--text-muted); margin: 0 0 12px; }
.lab-guide-toc__list { margin: 0; padding-left: 1.4em; display: flex; flex-direction: column; gap: 8px; }
.lab-guide-toc__list a { font-size: 14.5px; color: var(--text-mid); text-decoration: none; }
.lab-guide-toc__list a:hover { color: var(--blue); text-decoration: underline; }

/* セクション。scroll-margin は目次から飛んだときに固定ナビへ潜らせないため */
.lab-guide-sec { margin-bottom: 64px; scroll-margin-top: calc(var(--nav-h) + 20px); }
.lab-guide-sec__title { font-family: 'Noto Serif JP', serif; font-size: clamp(19px, 2.6vw, 24px); font-weight: 700; color: var(--text); line-height: 1.5; margin-bottom: 20px; padding-bottom: 10px; border-bottom: 2px solid var(--blue-light); }
.lab-guide-sec > p { font-size: 15px; color: var(--text-mid); line-height: 1.95; margin-bottom: 18px; }
.lab-guide-sec strong { color: var(--text); font-weight: 700; }
.lab-guide-sec .lab-note { max-width: 100%; margin: 24px 0; }

/* 記事への参照リンク。**本文中のリンクと区別する。**
   ここを普通の下線リンクにすると、地の文のリンクと見分けがつかず、
   「詳しくはこちら」の導線として機能しなくなる */
.lab-guide-more { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0 0; }
.lab-guide-ref { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 600; color: var(--blue); text-decoration: none; background: var(--blue-light); border: 1px solid rgba(58,140,189,0.2); border-radius: 20px; padding: 6px 14px; line-height: 1.5; transition: background .15s, border-color .15s; }
.lab-guide-ref::before { content: '›'; font-size: 15px; line-height: 1; }
.lab-guide-ref:hover { background: #dbedf8; border-color: var(--blue); }

/* 統計 */
.lab-guide-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; margin: 24px 0; }
.lab-guide-stat { background: var(--white); border: 1px solid var(--border); border-radius: var(--r); padding: 20px; display: flex; flex-direction: column; gap: 4px; }
.lab-guide-stat__num { font-family: 'DM Sans', sans-serif; font-size: 28px; font-weight: 700; color: var(--blue); line-height: 1.2; }
.lab-guide-stat__num span { font-size: 15px; margin-left: 2px; }
.lab-guide-stat__label { font-size: 13px; font-weight: 700; color: var(--text); line-height: 1.6; }
.lab-guide-stat__note { font-size: 12px; color: var(--text-muted); line-height: 1.6; }

/* 比較表。狭い画面では横スクロールさせる（潰して読めなくしない） */
.lab-guide-tablewrap { overflow-x: auto; margin: 24px 0; }
.lab-guide-table { width: 100%; border-collapse: collapse; font-size: 13.5px; min-width: 520px; }
.lab-guide-table th, .lab-guide-table td { border: 1px solid var(--border); padding: 11px 14px; text-align: left; line-height: 1.8; vertical-align: top; }
.lab-guide-table thead th { background: var(--bg); font-weight: 700; color: var(--text); }
.lab-guide-table tbody td:first-child { font-weight: 700; color: var(--text); background: var(--bg); white-space: nowrap; }
.lab-guide-table td { color: var(--text-mid); }

/* 6ステップ。lab-steps を流用しつつ、番号が上端に重なるので余白だけ足す */
.lab-guide-steps { margin-top: 30px; }

/* ロードマップ（10ステップ） */
.lab-road { list-style: none; margin: 28px 0 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.lab-road__item { display: flex; gap: 18px; background: var(--white); border: 1px solid var(--border); border-radius: var(--r); padding: 22px 24px; }
.lab-road__num { flex: 0 0 auto; font-family: 'DM Sans', sans-serif; font-size: 15px; font-weight: 700; color: var(--blue); background: var(--blue-light); border-radius: 50%; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; }
.lab-road__body { flex: 1 1 auto; min-width: 0; }
.lab-road__body h3 { font-family: 'Noto Serif JP', serif; font-size: 16.5px; font-weight: 700; color: var(--text); margin: 8px 0 10px; line-height: 1.55; }
.lab-road__body p { font-size: 14px; color: var(--text-mid); line-height: 1.9; margin: 0 0 10px; }
.lab-road__body p:last-child { margin-bottom: 0; }
/* つまずきやすい点。**赤系にしない。** 警告ではなく「先回りの情報」なので、
   落ち着いた地の色にして本文と地続きに見せる */
.lab-road__pitfall { background: var(--bg); border-left: 3px solid var(--blue-mid); border-radius: var(--r-sm); padding: 12px 16px; font-size: 13.5px !important; }
.lab-road__pitfall b { color: var(--text); font-weight: 700; }

/* 医療特有の論点カード */
.lab-guide-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; margin-top: 26px; }
.lab-guide-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--r); padding: 22px 24px; }
.lab-guide-card h3 { font-family: 'Noto Serif JP', serif; font-size: 16px; font-weight: 700; color: var(--text); margin: 0 0 10px; line-height: 1.55; }
.lab-guide-card p { font-size: 13.5px; color: var(--text-mid); line-height: 1.9; margin: 0; }

/* FAQ */
.lab-guide-faq h3 { font-size: 16px; font-weight: 700; color: var(--text); margin: 26px 0 8px; line-height: 1.6; padding-left: 14px; border-left: 3px solid var(--blue); }
.lab-guide-faq h3:first-child { margin-top: 0; }
.lab-guide-faq p { font-size: 14.5px; color: var(--text-mid); line-height: 1.95; margin: 0; }

.lab-guide-disclaimer { font-size: 12.5px; color: var(--text-muted); line-height: 1.9; margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--border); }

/* 承継ガイド 追補（2026-09-01・内容拡充にともなう追加） */
/* セクション内の小見出し。lab-guide-sec__title（H2）より一段弱くする */
.lab-guide-sub { font-family: 'Noto Serif JP', serif; font-size: 17px; font-weight: 700; color: var(--text); margin: 32px 0 12px; padding-left: 12px; border-left: 3px solid var(--blue); line-height: 1.55; }

/* 用語集。dt/dd を交互に読ませるので、境界線は dt の上に置く */
.lab-guide-terms { margin: 24px 0 0; }
.lab-guide-terms dt { font-size: 15px; font-weight: 700; color: var(--text); margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--border); }
.lab-guide-terms dt:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.lab-guide-terms dd { margin: 6px 0 0; font-size: 14px; color: var(--text-mid); line-height: 1.9; }
.lab-guide-terms dd strong { color: var(--text); font-weight: 700; }

@media (max-width: 640px) {
  .lab-guide { padding: 28px 16px 60px; }
  .lab-guide-sec { margin-bottom: 48px; }
  .lab-road__item { flex-direction: column; gap: 10px; padding: 20px; }
  .lab-road__num { width: 34px; height: 34px; font-size: 14px; }
  .lab-road__body h3 { margin-top: 0; }
  .lab-guide-toc { padding: 18px 20px; margin-bottom: 36px; }
}

/* ── 2026-10-07 週次巡回 K-02：表のスマホ表示 ─────────────────────────
   LP（/lp/buyer/）と /about/ の比較表は、600px 以下で行ごとのカードにする。
   表の最小幅 620〜640px に対して枠が 341px しかなく、伝えたい側の列（承継開業／当社）が画面外に出ていた。 */
@media (max-width: 600px) {
  .lp-compare, .lab-about__tablewrap { overflow-x: visible; }
  .lp-compare table,
  .lab-about__table:not(.lab-about__table--corp) { min-width: 0; }
  .lp-compare thead,
  .lab-about__table:not(.lab-about__table--corp) thead { display: none; }
  .lp-compare tr,
  .lab-about__table:not(.lab-about__table--corp) tr { display: block; border-bottom: 1px solid var(--border); }
  .lp-compare tbody tr:last-child,
  .lab-about__table:not(.lab-about__table--corp) tbody tr:last-child { border-bottom: 0; }
  .lp-compare th, .lp-compare td,
  .lab-about__table:not(.lab-about__table--corp) th,
  .lab-about__table:not(.lab-about__table--corp) td { display: block; border-bottom: 0; padding: 8px 16px; }
  .lp-compare tbody th,
  .lab-about__table:not(.lab-about__table--corp) tbody th { padding-top: 14px; }
  .lp-compare td[data-label]::before,
  .lab-about__table td[data-label]::before { content: attr(data-label); display: block; font-size: 11px; font-weight: 600; color: var(--text-muted); letter-spacing: 0.04em; }
  .lp-compare td:last-child,
  .lab-about__table:not(.lab-about__table--corp) td:last-child { background: var(--blue-pale); border-radius: 6px; margin: 0 12px 12px; }

  /* 記事本文の表：3列以下は画面幅に収める（2列の表まで 520px に広げて内容が切れていた）。
     4列以上の表だけ横スクロールを残し、右端に影を付けてスクロールできることを示す。 */
  .lab-single__text table { min-width: 0; font-size: 14px; }
  .lab-single__text table:has(tr > :nth-child(4)) { min-width: 520px; font-size: 13px; }
  .lab-single__text .wp-block-table:has(tr > :nth-child(4)) {
    background: linear-gradient(to left, rgba(16, 32, 64, .10), rgba(16, 32, 64, 0) 18px) right center / 18px 100% no-repeat;
  }

  /* LP 実績カード：「非公開案件」が1文字だけ2行目に落ちていた */
  .lp-stat b { font-size: 24px; }
}

/* ── 2026-10-07 週次巡回 K-06：カテゴリ一覧のページ送りを /column/ と同じ見た目に ──
   taxonomy-lab_column_cat.php を paginate_links( type=list ) に揃えたので、ここでは記事上部の公開・更新・執筆の行だけ足す */
.lab-single__meta-line { display: inline-flex; flex-wrap: wrap; gap: 4px 10px; font-size: 12px; color: var(--text-muted); }
.lab-single__meta-line a { color: var(--blue); }

/* ── 2026-10-14 週次巡回（kaigyolab-seo-aeo-2026-10-14）K-02・K-03 ── */
/* ページ送りの現在ページ：追加CSS（wp-custom-css）の `.page-numbers span.page-numbers{color:inherit}` が
   白文字を打ち消し、紺地に濃紺文字（1.35:1）で番号が読めなかった。色はブランドの青に揃える（オーナー一任） */
.page-numbers span.page-numbers.current,
.page-numbers .page-numbers.current { background: var(--blue); border-color: var(--blue); color: #fff; }
/* トップ「最新コラム」のカテゴリチップがカード全幅の帯になっていた（KGL-012 で直したのは .lab-article-card__cat だけ） */
.lab-column-card__cat { align-self: flex-start; }

@media (max-width: 600px) {
  /* 3列以下の表：見出しの nowrap（282行）が「画面幅に収める」を打ち消し、3列目が切れていた（記事1396） */
  .lab-single__text table:not(:has(tr > :nth-child(4))) thead th { white-space: normal; }
  /* 4列以上の表：table の白背景が figure の影を覆っていた。影はスクロール位置に合わせて出し入れする */
  .lab-single__text table:has(tr > :nth-child(4)) { background: transparent; font-size: 14px; }
  .lab-single__text .wp-block-table:has(tr > :nth-child(4)) {
    background:
      linear-gradient(to right, var(--white) 30%, rgba(255, 255, 255, 0)) left center / 24px 100% no-repeat local,
      linear-gradient(to left, var(--white) 30%, rgba(255, 255, 255, 0)) right center / 24px 100% no-repeat local,
      radial-gradient(farthest-side at 0 50%, rgba(16, 32, 64, .18), rgba(16, 32, 64, 0)) left center / 12px 100% no-repeat scroll,
      radial-gradient(farthest-side at 100% 50%, rgba(16, 32, 64, .18), rgba(16, 32, 64, 0)) right center / 12px 100% no-repeat scroll,
      var(--white);
  }
  /* トップの実績ラベルが 9px だった */
  .lab-hero__stat-label { font-size: 11px; }
}

/* ── 2026-10-21 週次巡回（kaigyolab-seo-aeo-2026-10-21）D24〜D27 ── */
/* D24：記事末の相談 CTA は sticky（画面下に付いてくる）設計だが、親 .lab-single__body の overflow:hidden に
   止められて一度も付いてこなかった（SP では y≈12,000 まで相談の導線が無い）。オーナー判断で付いてこさせる。
   clip は hidden と同じく角丸・はみ出しを切るが、スクロール領域を作らないので sticky が効く（未対応ブラウザは hidden のまま） */
.lab-single__body { overflow: clip; }
.lab-single__fixed-cta { z-index: 10; box-shadow: 0 -4px 12px rgba(16, 32, 64, .06); }

@media (max-width: 600px) {
  /* SP は1行・高さ 60px 前後の帯にする（文言を出すと 119px＝画面の約15%を覆う） */
  .lab-single__fixed-cta { padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); gap: 8px; margin-top: 24px; }
  .lab-single__fixed-cta-text { display: none; }
  .lab-single__fixed-cta > div { flex: 1; flex-wrap: nowrap !important; }
  .lab-single__fixed-cta .lab-btn { flex: 1; justify-content: center; }
  /* D27：ボタンの高さ 38px → タップの目安 44px */
  .lab-single__fixed-cta .lab-btn--sm { min-height: 44px; display: inline-flex; align-items: center; font-size: 14px; }
  /* D25：3列表の1列目（行見出し）が約40px に潰れて1文字ずつ縦に並んでいた（記事1396） */
  .lab-single__text table tr > :first-child { min-width: 4.5em; }
  /* D26：実績ラベルの語中改行（「最低500／万円」「セカンドオピ／ニオン」） */
  .lab-hero__stat-label { word-break: keep-all; overflow-wrap: anywhere; line-break: strict; }
}
