/* ==========================================================================
   wp.css — WordPress 出力への追加スタイル
   production/ の CSS（tokens〜pages）は正本ミラーとして手を入れず、WP 固有の差分はここに書く。
   ========================================================================== */

/* ---- 表示切り替え ----
   JS（common.js / product-filter.js 等）は hidden 属性で表示を切り替える。コンポーネント側の display 指定に負けないよう !important */
[hidden] { display: none !important; }
/* SP ドロワーを開いている間は背面をスクロールさせない（common.js が body に付与） */
body.is-drawer-open { overflow: hidden; }

/* ---- アイキャッチ未設定時の代替画像（テーマのサムネイル screenshot.png。inc/helpers.php の rz_noimage_url）---- */
.rz-thumb-noimage { object-fit: cover; object-position: center; background: var(--navy-800); }
img.c-card__thumb { display: block; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }

/* ---- ページャー（paginate_links の出力） ---- */
.u-pager { margin-top: 48px; }
.c-pager .dots { border-color: transparent; }
.c-pager a:hover { background: var(--surface-alt); }

/* ---- 絞り込みタブをリンクで出している箇所 ---- */
a.c-tab { display: inline-flex; align-items: center; text-decoration: none; }

/* ---- 記事本文 ---- */
/* 本文ブロック・旧テーマの本文パーツは content.css（公開側・エディタ共通） */
.p-article__eyecatch { display: block; width: 100%; height: auto; border-radius: var(--radius-lg); }
/* 詳細ページ（導入事例・コラム・ウェビナー・汎用）のアイキャッチと本文の間 */
.p-article__eyecatch + .p-article__body { margin-top: 48px; }
@media (max-width: 767px) {
  .p-article__eyecatch + .p-article__body { margin-top: 32px; }
}

/* ---- 内部リンクのブログカード（inc/legacy.php） ---- */
.rz-blogcard { display: grid; grid-template-columns: 200px 1fr; gap: 24px; margin-top: 32px; padding: 20px; background: var(--surface-card); border: var(--border-width-card) solid var(--border-card); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); color: var(--text-strong); text-decoration: none; }
.rz-blogcard:hover { box-shadow: var(--shadow-hover); }
.rz-blogcard__thumb { display: block; aspect-ratio: 16 / 9; background: var(--surface-alt); border-radius: var(--radius-sm); overflow: hidden; }
.rz-blogcard__thumb img { width: 100%; height: 100%; object-fit: cover; }
.rz-blogcard__body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.rz-blogcard__meta { display: flex; align-items: center; gap: 10px; }
.rz-blogcard__title { font-weight: var(--fw-bold); line-height: 1.7; }
.rz-blogcard__text { font-size: var(--fs-i-13); line-height: 1.8; color: var(--text-muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 767px) {
  .rz-blogcard { grid-template-columns: 1fr; gap: 14px; padding: 16px; }
}

/* ---- Pardot フォーム（parts/pardot-form.php） ---- */
.rz-pardot { width: 100%; overflow: visible; }
.rz-pardot__iframe { display: block; width: 100%; height: 1050px; min-height: 400px; border: 0; overflow: hidden; background: transparent; }

/* ---- 資料請求詳細（single-document.php） ---- */
/* ヒーロー */
.p-document__subttl { margin-top: 20px; font-family: var(--font-serif); font-size: var(--fs-i-18); font-weight: var(--fw-semibold); line-height: 1.6; color: var(--color-gold-text); }
.p-document__subttl + .p-document__title { margin-top: 8px; }
.p-document__jump { margin-top: 24px; }
/* 2カラム（本文｜フォーム）。フォームは高さがあるため追従させない */
.p-document__layout { grid-template-columns: minmax(0, 1fr) 440px; }
.p-document__side { min-width: 0; scroll-margin-top: calc(var(--header-height) + 16px); }
.p-document__main > * + * { margin-top: 40px; }
.p-document__desc { font-size: var(--fs-i-17); line-height: 2.1; color: var(--navy-600); }
/* この資料でわかること（生成AIページのチェック項目カードと同じ見た目） */
.p-document__features { padding-top: 40px; border-top: 1px solid var(--border-inner); }
.p-document__features-en { font: var(--eyebrow); font-family: var(--font-latin); letter-spacing: var(--ls-eyebrow); color: var(--gold-ink); }
.p-document__features-en::after { content: ""; display: block; width: var(--rule-w); height: var(--rule-h); background: var(--gold-550); margin: var(--rule-gap) 0; }
.p-document__features-title { font-family: var(--font-serif); font-size: var(--fs-h3); font-weight: var(--fw-semibold); line-height: var(--lh-title); }
.p-document__points { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 28px; list-style: none; padding: 0; }
.p-document__point { display: flex; gap: 12px; align-items: flex-start; padding: 18px 20px; background: var(--surface-card); border: 1px solid var(--border-card); border-radius: var(--radius-md); font-size: var(--fs-i-15); line-height: 1.8; color: var(--text-strong); }
.p-document__point-mark { flex: none; font-weight: var(--fw-bold); color: var(--color-gold-400); }
/* フォームカード */
.p-document__form .p-widget__title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.p-document__free { padding: 3px 10px; border-radius: var(--radius-xs); background: var(--grad-gold-cta); font-family: var(--font-sans); font-size: var(--fs-i-12); font-weight: var(--fw-bold); color: var(--text-on-dark); }
.p-document__form-body { padding: 20px 24px 24px; }
/* 案内文（左コンテンツの下。旧テーマと同じ位置） */
.p-document__notes { padding: 16px 20px; background: var(--surface-alt); border-radius: var(--radius-sm); font-size: var(--fs-i-14); line-height: 1.8; color: var(--text-body); }
@media (max-width: 1279px) {
  .p-document__layout { grid-template-columns: minmax(0, 1fr) 380px; }
}
@media (max-width: 1023px) {
  .p-document__layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
  .p-document__main > * + * { margin-top: 28px; }
  .p-document__desc { font-size: var(--fs-i-15); line-height: 2; }
  .p-document__features { padding-top: 28px; }
  .p-document__points { grid-template-columns: 1fr; gap: 10px; margin-top: 20px; }
  .p-document__point { padding: 14px 16px; }
  .p-document__form-body { padding: 16px; }
}

/* ギャラリースライダー（Swiper。旧テーマ .p-document-detail__slider の見た目を新トークンで） */
/* swiper-bundle.min.css（後から読み込まれる）の .swiper { overflow: hidden } に負けないよう詳細度を上げる。
   矢印を画像の外側へはみ出させるため。fade 効果なので他のスライドがはみ出して見えることはない */
.swiper.rz-slider { overflow: visible; }
.rz-slider__item { border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-image); background: var(--surface-card); }
.rz-slider__item img { display: block; width: 100%; height: auto; }
.rz-slider__prev,
.rz-slider__next {
  position: absolute; z-index: 3; top: calc(50% - 22px); transform: translateY(-50%);
  display: flex; align-items: center; justify-content: center; width: 56px; height: 56px;
  border: 0; border-radius: var(--radius-circle); background: rgba(0, 16, 56, .5); color: var(--text-on-dark); cursor: pointer;
  transition: background .2s;
}
.rz-slider__prev:hover,
.rz-slider__next:hover { background: var(--navy-800); }
.rz-slider__prev::after,
.rz-slider__next::after { content: ""; width: 12px; height: 12px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; }
.rz-slider__prev { left: -21px; }
.rz-slider__prev::after { transform: translateX(3px) rotate(-135deg); }
.rz-slider__next { right: -21px; }
.rz-slider__next::after { transform: translateX(-3px) rotate(45deg); }
.rz-slider__prev.swiper-button-disabled,
.rz-slider__next.swiper-button-disabled { opacity: .3; cursor: default; }
.rz-slider .rz-slider__pager { position: static; margin-top: 16px; font-family: var(--font-latin); font-size: var(--fs-i-14); font-weight: var(--fw-semibold); letter-spacing: .08em; color: var(--text-muted); }
.rz-slider .rz-slider__pager .swiper-pagination-current { color: var(--text-strong); }
@media (max-width: 767px) {
  .rz-slider__prev,
  .rz-slider__next { width: 36px; height: 36px; top: calc(50% - 18px); }
  .rz-slider__prev::after,
  .rz-slider__next::after { width: 8px; height: 8px; }
  .rz-slider__prev { left: -12px; }
  .rz-slider__next { right: -12px; }
}

/* ---- ウェビナー詳細（single-webinar.php） ---- */
.p-webinar__when { display: inline-flex; align-items: center; gap: 16px; margin-top: 24px; padding: 14px 22px; background: var(--surface-card); border: var(--border-width-card) solid var(--border-card); border-radius: var(--radius-md); box-shadow: var(--shadow-card); }
.p-webinar__when-label { font-family: var(--font-en); font-size: var(--fs-i-12); font-weight: 600; letter-spacing: .18em; color: var(--color-gold-text); }
.p-webinar__when-value { font-family: var(--font-serif); font-size: var(--fs-i-18); font-weight: var(--fw-semibold); line-height: 1.6; color: var(--text-strong); }
.p-webinar__row { display: grid; grid-template-columns: 88px 1fr; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--color-border-light); font-size: var(--fs-i-13); line-height: 1.7; }
.p-webinar__entry { margin-top: 80px; padding: 52px 56px; text-align: center; background: var(--surface-card); border: var(--border-width-card) solid var(--border-card); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); scroll-margin-top: calc(var(--header-height) + 24px); }
.p-webinar__entry .c-section-head__title { margin-top: 0; padding: 0; border: 0; }
.p-webinar__entry .c-section-head__lead { margin-top: 12px; line-height: 1.9; color: var(--text-muted); }
.p-webinar__entry-action { display: flex; justify-content: center; margin-top: 32px; }
.p-webinar__form { margin-top: 32px; padding-top: 32px; border-top: 1px solid var(--border-inner); text-align: left; scroll-margin-top: calc(var(--header-height) + 24px); }
.p-webinar__form[hidden],
.p-webinar__entry-action[hidden] { display: none; }
/* Marketo フォームの既定スタイルを新デザインに寄せる（幅いっぱい・入力欄・送信ボタン） */
.p-webinar__form .mktoForm { width: 100% !important; font-family: inherit !important; font-size: var(--fs-i-14) !important; color: var(--text-strong) !important; }
.p-webinar__form .mktoForm .mktoFormCol,
.p-webinar__form .mktoForm .mktoFieldWrap,
.p-webinar__form .mktoForm input[type=text],
.p-webinar__form .mktoForm input[type=email],
.p-webinar__form .mktoForm input[type=tel],
.p-webinar__form .mktoForm select,
.p-webinar__form .mktoForm textarea { width: 100% !important; float: none !important; }
.p-webinar__form .mktoForm .mktoOffset,
.p-webinar__form .mktoForm .mktoGutter { display: none !important; }
.p-webinar__form .mktoForm .mktoLabel { width: auto !important; float: none !important; padding: 0 0 6px !important; font-weight: var(--fw-bold) !important; }
.p-webinar__form .mktoForm input[type=text],
.p-webinar__form .mktoForm input[type=email],
.p-webinar__form .mktoForm input[type=tel],
.p-webinar__form .mktoForm select,
.p-webinar__form .mktoForm textarea { min-height: 48px; padding: 10px 14px !important; border: 1px solid var(--color-border-input) !important; border-radius: var(--radius-sm) !important; box-shadow: none !important; background: #fff !important; font-size: var(--fs-i-14) !important; }
.p-webinar__form .mktoForm .mktoButtonRow { display: flex !important; justify-content: center; margin-top: 16px; }
.p-webinar__form .mktoForm .mktoButtonWrap { margin: 0 !important; }
.p-webinar__form .mktoForm .mktoButton { min-height: 56px; min-width: 280px; padding: 0 40px !important; border: 0 !important; border-radius: var(--radius-md) !important; background: var(--grad-gold-cta) !important; box-shadow: var(--shadow-btn) !important; color: var(--text-on-dark) !important; font-size: var(--fs-i-15) !important; font-weight: var(--fw-bold) !important; }
@media (max-width: 767px) {
  .p-webinar__when { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 12px 16px; }
  .p-webinar__entry { margin-top: 56px; padding: 32px 20px; }
  .p-webinar__form .mktoForm .mktoButton { min-width: 0; width: 100%; }
}

/* ---- コラム詳細の関連記事（single-column.php。旧テーマと同じくサムネイル＋タイトル＋タグ） ---- */
.p-related-item { display: grid; grid-template-columns: 88px 1fr; gap: 14px; align-items: start; }
.p-related-item__thumb { display: block; width: 88px; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--radius-sm); background: var(--surface-alt); }
.p-related-item__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.p-related-item__title { font-size: var(--fs-i-13); font-weight: var(--fw-bold); line-height: 1.7; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.p-related-item__tags { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: var(--fs-i-12); color: var(--text-muted); }

/* ---- グローバルナビのメガメニュー（parts/gnavi.php / assets/js/gnavi.js） ----
   旧テーマと同じく PC 幅でホバーするとヘッダー直下に開く。1100px 以下はドロワーなので非表示のまま */
.js-gnavi { align-self: stretch; }
.l-gnavi__item { align-self: stretch; display: flex; align-items: center; }
.l-gnavi__btn { position: relative; display: inline-flex; align-items: center; gap: 6px; height: 100%; }
.l-gnavi__btn::after { content: ""; width: 6px; height: 6px; margin-top: -3px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); transition: transform var(--dur-base), margin var(--dur-base); opacity: .6; }
.l-gnavi__btn::before { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--grad-gold-edge); transform: scaleX(0); transition: transform var(--dur-base); }
.l-gnavi__item.is-open > .l-gnavi__btn { color: var(--gold-ink); }
.l-gnavi__item.is-open > .l-gnavi__btn::after { transform: rotate(-135deg); margin-top: 3px; }
.l-gnavi__item.is-open > .l-gnavi__btn::before { transform: scaleX(1); }

.l-gnavi__panel {
  position: absolute; left: 0; right: 0; top: 100%; z-index: 101;
  background: var(--surface-card); border-top: 1px solid var(--border-hair); box-shadow: var(--shadow-card-lg);
  white-space: normal; font-weight: var(--fw-regular, 400);
  opacity: 0; visibility: hidden; transform: translateY(-8px);
  transition: opacity var(--dur-base), transform var(--dur-base), visibility 0s linear var(--dur-base);
}
.l-gnavi__item.is-open > .l-gnavi__panel { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.l-gnavi__inner { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 56px; max-width: calc(var(--container) + var(--gutter) * 2); margin: 0 auto; padding: 40px var(--gutter) 48px; }
.l-gnavi__en { font-family: var(--font-en); font-size: var(--fs-i-12); font-weight: 600; letter-spacing: .18em; color: var(--color-gold-text); }
.l-gnavi__title { margin-top: 8px; font-family: var(--font-serif); font-size: var(--fs-i-24); font-weight: var(--fw-semibold); line-height: 1.5; color: var(--text-strong); }
.l-header__nav .l-gnavi__more,
.l-header__nav .l-gnavi__head { display: inline-flex; align-items: center; gap: 10px; font-weight: var(--fw-bold); color: var(--text-strong); }
.l-gnavi__more { margin-top: 24px; font-size: var(--fs-i-14); }
.l-gnavi__more span,
.l-gnavi__head span { color: var(--color-gold-text); }
.l-gnavi__tabs { display: flex; flex-direction: column; gap: 8px; margin-top: 24px; }
.l-gnavi__tab { padding: 14px 18px; border: 1px solid var(--border-card); border-radius: var(--radius-md); background: var(--surface-card); font: inherit; font-size: var(--fs-i-13); font-weight: var(--fw-bold); line-height: 1.6; text-align: left; color: var(--text-strong); cursor: pointer; transition: background var(--dur-base), color var(--dur-base), border-color var(--dur-base); }
.l-gnavi__tab.is-active { background: var(--navy-800); border-color: var(--navy-800); color: var(--text-on-dark); }
.l-gnavi__groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 32px 40px; }
.l-gnavi__head { padding-bottom: 12px; margin-bottom: 4px; width: 100%; border-bottom: 1px solid var(--border-inner); font-size: var(--fs-i-15); }
.l-gnavi__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 0 32px; }
.l-gnavi__groups .l-gnavi__list { grid-template-columns: 1fr; }
.l-gnavi__list li { border-bottom: 1px dashed var(--border-inner); }
.l-header__nav .l-gnavi__list a { display: flex; align-items: center; gap: 6px; padding: 12px 0; font-size: var(--fs-i-14); font-weight: var(--fw-medium); color: var(--text-body); }
.l-header__nav .l-gnavi__list a::before { content: "›"; color: var(--color-gold-text); }
.l-header__nav .l-gnavi__list a:hover,
.l-header__nav .l-gnavi__more:hover,
.l-header__nav .l-gnavi__head:hover { color: var(--gold-ink); }
@media (max-width: 1279px) {
  .l-gnavi__inner { grid-template-columns: 220px minmax(0, 1fr); gap: 40px; }
}
@media (max-width: 1100px) {
  .l-gnavi__panel { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .l-gnavi__panel, .l-gnavi__btn::after, .l-gnavi__btn::before { transition: none; }
}

/* ---- ニュース一覧のカテゴリセル（parts/news-item.php） ----
   カテゴリが無い／複数ある場合も 4 列グリッド（日付｜カテゴリ｜タイトル｜矢印）が崩れないよう、タグは 1 セルにまとめる */
.c-news-list__cats { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-width: 0;
  /* 空でもタグ1個分の高さを確保（.c-tag = line-height 1.4 × --fs-micro ＋ padding 4px×2 ＋ border 1px×2）→ 行の高さも揃う */
  min-height: calc(var(--fs-micro) * 1.4 + 10px);
}

/* ---- 下層の共通 CTA 帯（parts/cta.php：現行サイト準拠の「お電話でのご相談」ボタン） ---- */
.c-cta__tel-btn { flex-wrap: wrap; column-gap: 14px; row-gap: 2px; }
.c-cta__tel-btn-num { font-family: var(--font-serif); font-size: 1.25em; font-weight: var(--fw-semibold); letter-spacing: var(--ls-lead); }

/* ---- プロダクトページのタブ：?industry= で開いたときのスクロール位置（固定ヘッダーの下に隠れないように） ---- */
[data-product-filter] { scroll-margin-top: calc(var(--header-height) + 24px); }

/* ---- フッター：プロダクト列を出さないとき（functions.php の RZ_SHOW_PRODUCT = false）は 3 列 ---- */
@media (min-width: 1280px) {
  .l-footer__nav--no-product { grid-template-columns: repeat(3, 1fr); }
}

/* ---- 404（404.php） ---- */
.p-notfound__hero { position: relative; overflow: hidden; }
.p-notfound__inner { position: relative; padding-bottom: 96px; }
.p-notfound__code {
  position: absolute; right: var(--gutter); top: 50%; transform: translateY(-50%);
  font-size: clamp(120px, 16vw, 240px); font-weight: var(--fw-semibold); line-height: 1; letter-spacing: .02em; opacity: .9; pointer-events: none;
}
.p-notfound__title { position: relative; }
.p-notfound__lead { position: relative; }
.p-notfound__actions { position: relative; display: flex; flex-wrap: wrap; gap: 16px; margin-top: 40px; }
.p-notfound__links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 48px; list-style: none; padding: 0; }
.p-notfound__link {
  display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 12px; padding: 24px 28px; height: 100%;
  background: var(--surface-card); border: var(--border-width-card) solid var(--border-card); border-radius: var(--radius-lg); box-shadow: var(--shadow-card);
  color: var(--text-strong); transition: box-shadow var(--dur-base), transform var(--dur-base);
}
.p-notfound__link:hover { box-shadow: var(--shadow-hover); transform: translateY(-2px); color: var(--text-strong); }
.p-notfound__link-en { grid-column: 1; font: var(--eyebrow); font-family: var(--font-latin); letter-spacing: var(--ls-eyebrow); color: var(--gold-ink); }
.p-notfound__link-label { grid-column: 1; font-family: var(--font-serif); font-size: var(--fs-i-18); font-weight: var(--fw-semibold); }
.p-notfound__link-arrow { grid-column: 2; grid-row: 1 / span 2; font-size: 20px; color: var(--gold-ink); }
@media (max-width: 1023px) {
  .p-notfound__links { grid-template-columns: repeat(2, 1fr); }
  .p-notfound__code { font-size: clamp(96px, 18vw, 160px); opacity: .25; }
}
@media (max-width: 767px) {
  .p-notfound__inner { padding-bottom: 56px; }
  .p-notfound__code { position: static; transform: none; margin-top: 24px; font-size: 88px; opacity: 1; }
  .p-notfound__code + .l-hero__en { margin-top: 16px; }
  .p-notfound__actions { flex-direction: column; margin-top: 28px; }
  .p-notfound__actions .c-btn { width: 100%; }
  .p-notfound__links { grid-template-columns: 1fr; gap: 12px; margin-top: 32px; }
  .p-notfound__link { padding: 18px 20px; }
}

/* ---- プロダクトページ内の各製品（id="product{投稿ID}"。メガメニュー・PRODUCT HUB・/product/ から遷移）：固定ヘッダーの下に隠れないように ---- */
.rz-product-card { scroll-margin-top: calc(var(--header-height) + 24px); }
/* 製品一覧カードのロゴ（管理画面の ACF logo） */
.rz-product-card__logo { display: block; height: 56px; width: auto; max-width: 100%; object-fit: contain; object-position: left center; }

/* ==========================================================================
   目次（parts/toc.php。Easy Table of Contents の出力をデザインの INDEX 欄の見た目に）
   項目・番号・開閉ボタンの有無は管理画面の設定のまま（ここでは見た目だけ）
   ========================================================================== */
.rz-toc.rz-toc { padding: 24px 28px; }
/* タブレット・スマホ（1023px 以下）ではアイキャッチの下・本文の上に移す（assets/js/toc.js） */
.rz-toc--in-article.rz-toc--in-article { margin: 0 0 40px; }
.p-article__eyecatch + .rz-toc--in-article.rz-toc--in-article { margin-top: 40px; }
@media (max-width: 767px) {
  .rz-toc--in-article.rz-toc--in-article { margin-bottom: 32px; }
  .p-article__eyecatch + .rz-toc--in-article.rz-toc--in-article { margin-top: 32px; }
}
.rz-toc #ez-toc-container { width: auto; margin: 0; padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none; display: block; }
.rz-toc .ez-toc-title-container { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.rz-toc .ez-toc-title { margin: 0; font-family: var(--font-latin); font-size: var(--fs-i-12); font-weight: var(--fw-semibold); letter-spacing: .18em; text-transform: uppercase; color: var(--color-gold-text); }
.rz-toc .ez-toc-title-toggle a { color: var(--text-muted); }
.rz-toc #ez-toc-container nav { margin-top: 16px; }
.rz-toc #ez-toc-container ul { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0; list-style: none; }
.rz-toc #ez-toc-container ul ul { margin-top: 10px; padding-left: 16px; gap: 8px; }
.rz-toc #ez-toc-container li { margin: 0; padding: 0; font-size: var(--fs-i-13); line-height: 1.7; }
.rz-toc #ez-toc-container li::before { content: none; }
.rz-toc #ez-toc-container a.ez-toc-link { font-size: var(--fs-i-13); line-height: 1.7; color: var(--color-text); text-decoration: none; }
.rz-toc #ez-toc-container ul ul a.ez-toc-link { font-size: var(--fs-i-12); color: var(--text-muted); }
.rz-toc #ez-toc-container a.ez-toc-link:hover { color: var(--gold-ink); }
.rz-toc #ez-toc-container a.ez-toc-link::before { font-family: var(--font-latin); font-weight: 600; color: var(--color-gold-400); }

/* ---- 下層ヒーロー（.l-hero）：リード文の横幅制限（design の max-width: 880px）を外し、コンテナ幅いっぱいに ---- */
.l-hero__lead { max-width: none; }

/* ---- ページ内リンク（#アンカー）：スクロールをアニメーションに。OS の「視差効果を減らす」設定時はアニメーションしない ---- */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
  html:has(body.rz-eztoc-smooth) { scroll-behavior: auto; } /* 目次プラグインのスムーズスクロール有効時はプラグインに任せる（inc/setup.php） */
}
/* 移動先が固定ヘッダーの下に隠れないように（個別に指定しているものはそちらが優先） */
[id] { scroll-margin-top: calc(var(--header-height) + 24px); }

/* ---- 詳細ページのタイトル（.p-article__title）：最大 36px（design は最大 40px）。768px で 28px → 1280px 以上で 36px。767px 以下は design どおり 22px ---- */
@media (min-width: 768px) {
  .p-article__title { font-size: clamp(28px, 1.5625vw + 16px, 36px); }
}

/* ---- TOP ファーストビュー：タブレット幅（768〜1100px）でも地球儀をスマホと同じく右上に表示（design はこの幅で非表示）。
   tech-flow・SVG マーカー・専門分野ラベルはスマホと同じく出さない ---- */
@media (min-width: 768px) and (max-width: 1100px) {
  .p-top-hero__visual { display: block; }
  .p-top-hero__globe-box { right: -150px; top: -80px; width: 460px; height: 460px; opacity: .85; }
  .p-top-hero__flow-box, .p-top-hero__visual > svg, .p-top-hero__fields { display: none; }
}

/* ==========================================================================
   フッター（design02。リンク項目・住所は現行のまま）
   PC … リンクの列＋信頼バッジの列（組みは従来どおり）
   SP … リンクのグループを開閉式（初期は閉じる。assets/js/footer.js）・住所を表示・信頼バッジ3つを1行
   ========================================================================== */
.l-footer .l-footer__tel-number { color: var(--text-on-dark); }
@media (min-width: 768px) { .l-footer__sp.l-footer__sp { display: none; } }
@media (max-width: 767px) {
  .l-footer__pc.l-footer__pc { display: none; }
  .l-footer__main.l-footer__main { padding-top: 40px; }
  .l-footer__desc.l-footer__desc { margin-top: 20px; font-size: 13px; line-height: 1.9; }
  .l-footer__addr.l-footer__addr { display: block; margin-top: 20px; font-size: 12.5px; line-height: 1.9; }

  /* リンクのグループ（開閉式） */
  .l-footer__acc { border-bottom: 1px solid var(--border-on-dark); }
  .l-footer__acc-head { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 48px; padding: 0; border: 0; background: none; color: var(--text-on-dark); font: inherit; font-size: 13.5px; font-weight: 700; text-align: left; cursor: pointer; }
  .l-footer__acc-icon { font-size: 16px; color: var(--gold-250); transition: transform .25s; }
  .l-footer__acc.is-open .l-footer__acc-icon { transform: rotate(90deg); }
  .l-footer__acc-list { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 2px 0 16px; list-style: none; font-size: 12.5px; }
  .l-footer__sp-nav .l-footer__acc-list a { display: inline; min-height: 0; padding: 0; border: 0; font-size: 12.5px; color: rgba(255,255,255,.78); }
  .l-footer__sp-nav .l-footer__acc-list a::after { content: none; }
  .l-footer__sp-nav .l-footer__acc-list a.is-more { color: var(--gold-250); }

  /* 信頼バッジ：3つを1行 */
  .l-footer__badges.l-footer__badges { flex-direction: row; justify-content: space-between; gap: 8px; margin-top: 20px; padding: 10px 12px; border: 1px solid var(--border-on-dark); border-radius: 8px; }
  .l-footer__badge.l-footer__badge { display: flex; flex: 1; min-width: 0; gap: 6px; padding: 0; border: 0; font-size: 9.5px; line-height: 1.4; color: rgba(255,255,255,.85); }
  .l-footer__badge.l-footer__badge img { width: 26px; height: 26px; }

  /* 電話・法務リンク */
  .l-footer__tel.l-footer__tel { gap: 4px; margin-top: 20px; padding: 22px 0 18px; }
  .l-footer__tel-number.l-footer__tel-number { font-size: 24px; }
  .l-footer__tel-note.l-footer__tel-note { font-size: 12px; }
  .l-footer__legal.l-footer__legal { gap: 10px 18px; margin-top: 0; padding-bottom: 22px; font-size: 11.5px; }
  .l-footer__copy.l-footer__copy { margin-top: 0; padding-bottom: 22px; font-size: 11.5px; }
}
