/* ページ目次 — フロント（security-himeji.jp/how-to-use/ 風・横長ボタン） */

.arc-page-toc {
  --arc-ptoc-ink: var(--arc-brand-ink);
  --arc-ptoc-radius: clamp(1rem, 3vw, 1.5rem);
  --arc-ptoc-pad-y: clamp(1.25rem, 4vw, 2rem);
  /* モバイル: 黄背景の左右余白（全幅表示だが端に少し息抜き） */
  --arc-ptoc-pad-x: clamp(0.75rem, 3vw, 1.25rem);
  /* モバイル: タップしやすいようボタン間をやや広め */
  --arc-ptoc-gap: clamp(0.875rem, 3.5vw, 1.125rem);
  /* モバイル: 固定幅 18.75rem をやめ、内側いっぱいに横長表示 */
  --arc-ptoc-btn-width: 100%;
  --arc-ptoc-btn-radius: 0.5rem;
  --arc-ptoc-btn-bg: #f5f5f5;
  --arc-ptoc-btn-border: var(--arc-brand-border);
  --arc-ptoc-icon-cell-bg: #e8e8e8;
  --arc-ptoc-icon-size: clamp(1.125rem, 3.6vw, 1.25rem);
  --arc-ptoc-icon-cell-w: clamp(2.25rem, 9vw, 2.5rem);
  --arc-ptoc-arrow-size: clamp(0.75rem, 2.4vw, 0.875rem);
  --arc-ptoc-arrow-pad-x: clamp(0.35rem, 1.2vw, 0.5rem);
  --arc-ptoc-label-pad-y: clamp(0.35rem, 1.2vw, 0.45rem);
  --arc-ptoc-label-pad-x: clamp(0.3rem, 1vw, 0.4rem);
  --arc-ptoc-type-base: clamp(1.21875rem, 4.42vw, 1.38125rem);
  --arc-ptoc-type-min: 0.875rem;
  /* H1 --arc-h1-fade-size と同値（h1-section/style.css と同期） */
  --arc-h1-fade-size-ref: clamp(2.625rem, 10.5vh, 6rem);
  /* 目次ブロック上端 ≒ H1 下辺フェードの中央（h1-section --arc-h1-fade-size の 50%） */
  --arc-ptoc-overlap-h1: calc(var(--arc-h1-fade-size-ref) * 0.5);
  /* テーマのブロック間隙（H1→目次）— PC で微調整 */
  --arc-ptoc-h1-block-gap: 0px;
  width: 100%;
  max-width: 100%;
  margin: 0;
  position: relative;
  z-index: 1;
  padding-top: 0;
  padding-bottom: 0;
  padding-left: var(--arc-ptoc-pad-x);
  padding-right: var(--arc-ptoc-pad-x);
  box-sizing: border-box;
}

/* 背景色を指定したときのみ（未指定＝クリアでは HTML に付与しない） */
.arc-page-toc--has-bg {
  background: var(--arc-ptoc-bg);
  border-radius: var(--arc-ptoc-radius) var(--arc-ptoc-radius) 0 0;
}

.arc-page-toc__inner {
  width: 100%;
  max-width: 100%;
  margin-inline: auto;
  box-sizing: border-box;
  /* ボタン上下の余白（nav ではなく inner に置き、テーマ・H1重ねの上書きを避ける） */
  padding-top: var(--arc-ptoc-pad-y);
  padding-bottom: var(--arc-ptoc-pad-y);
}

.wp-block-arc-editing-page-toc .arc-page-toc__inner {
  padding-top: var(--arc-ptoc-pad-y) !important;
  padding-bottom: var(--arc-ptoc-pad-y) !important;
}

.arc-page-toc__list {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--arc-ptoc-gap);
  margin: 0;
  padding: 0;
  list-style: none;
}

.arc-page-toc__item {
  width: 100%;
  max-width: var(--arc-ptoc-btn-width);
  margin: 0;
  padding: 0;
}

/* 横長・Y方向パディング小（参考ページ準拠） */
.arc-page-toc__button {
  --arc-surface-bg: var(--arc-ptoc-btn-bg);
  --arc-surface-ink: var(--arc-ptoc-ink);
  display: flex;
  align-items: stretch;
  width: 100%;
  min-height: max(2.5rem, calc(var(--arc-ptoc-label-pad-y) * 2 + var(--arc-ptoc-type-base) * 1.35));
  margin: 0;
  padding: 0;
  border: 1px solid var(--arc-ptoc-btn-border);
  border-radius: var(--arc-ptoc-btn-radius);
  background: var(--arc-ptoc-btn-bg);
  color: var(--arc-ptoc-ink);
  font: inherit;
  text-decoration: none;
  box-sizing: border-box;
  overflow: hidden;
  cursor: pointer;
  transition: opacity 0.15s ease;
  -webkit-appearance: none;
  appearance: none;
}

a.arc-page-toc__button:hover,
a.arc-page-toc__button:focus-visible {
  opacity: 0.9;
  text-decoration: none;
  color: var(--arc-ptoc-ink);
}

/* 明るいボタン面 — 暗い親セクションの白リンク指定を上書き（アイコンボタンと同様） */
.arc-page-toc__button[data-arc-surface='light'],
.arc-page-toc__button[data-arc-surface='light'] .arc-page-toc__label,
a.arc-page-toc__button[data-arc-surface='light'],
a.arc-page-toc__button[data-arc-surface='light'] .arc-page-toc__label,
span.arc-page-toc__button[data-arc-surface='light'] .arc-page-toc__label {
  --arc-surface-ink: var(--arc-ptoc-ink);
  color: var(--arc-ptoc-ink) !important;
}

a.arc-page-toc__button[data-arc-surface='light']:hover,
a.arc-page-toc__button[data-arc-surface='light']:focus-visible,
a.arc-page-toc__button[data-arc-surface='light']:hover .arc-page-toc__label,
a.arc-page-toc__button[data-arc-surface='light']:focus-visible .arc-page-toc__label {
  color: var(--arc-ptoc-ink) !important;
}

/* 左：小さなアイコン（参考のグレー枠） */
.arc-page-toc__icon-cell {
  flex: 0 0 var(--arc-ptoc-icon-cell-w);
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--arc-ptoc-icon-cell-w);
  padding: var(--arc-ptoc-label-pad-y) 0.25rem;
  background: var(--arc-ptoc-icon-cell-bg);
  border-right: 1px solid #d8d8d8;
  box-sizing: border-box;
}

.arc-page-toc__icon-preset {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--arc-ptoc-icon-size);
  height: var(--arc-ptoc-icon-size);
  line-height: 0;
}

.arc-page-toc__icon-preset .arc-page-toc__svg,
.arc-page-toc__icon-preset svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* 中央：ラベル（テキスト領域を最大確保） */
.arc-page-toc__label {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  margin: 0;
  padding: var(--arc-ptoc-label-pad-y) var(--arc-ptoc-label-pad-x);
  font-size: var(--arc-ptoc-type-base);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.02em;
  text-align: center;
  white-space: nowrap;
  overflow: visible;
  color: var(--arc-ptoc-ink);
}

/* フィット完了前は非表示（visibility ではなく opacity — 未完了時も必ず表示する JS フォールバックあり） */
.arc-page-toc--fitting .arc-page-toc__label {
  opacity: 0;
}

.arc-page-toc--fitted .arc-page-toc__label {
  opacity: 1;
}

/* 右：↓（最小余白） */
.arc-page-toc__arrow {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  width: calc(var(--arc-ptoc-arrow-size) + var(--arc-ptoc-arrow-pad-x) * 2);
  padding: var(--arc-ptoc-label-pad-y) var(--arc-ptoc-arrow-pad-x);
  line-height: 0;
  box-sizing: border-box;
}

.arc-page-toc__arrow .arc-page-toc__svg,
.arc-page-toc__arrow svg {
  display: block;
  width: var(--arc-ptoc-arrow-size);
  height: var(--arc-ptoc-arrow-size);
}

.arc-page-toc--empty {
  text-align: center;
  padding-top: var(--arc-ptoc-pad-y);
  padding-bottom: var(--arc-ptoc-pad-y);
}

.arc-page-toc__empty-msg {
  margin: 0;
  padding: 0.5rem;
  color: var(--arc-brand-editor-chrome-ink);
  font-size: 0.9375rem;
}

@media (min-width: 900px) {
  .arc-page-toc {
    --arc-ptoc-pad-x: clamp(1rem, 4vw, 2rem);
    --arc-ptoc-gap: clamp(0.5rem, 1.8vw, 0.75rem);
    /* 旧 18.75rem（300px）の 1.5 倍 — 長い見出しラベル用 */
    --arc-ptoc-btn-width: 28.125rem;
    --arc-ptoc-icon-cell-w: 2.5rem;
    --arc-ptoc-label-pad-y: 0.4rem;
    --arc-ptoc-arrow-pad-x: 0.45rem;
    --arc-ptoc-type-base: 1.38125rem;
  }

  .arc-page-toc__button {
    min-height: 2.625rem;
  }

  /* 1行最大2つ・端数行も中央寄せ */
  .arc-page-toc__list {
    flex-flow: row wrap;
    justify-content: center;
    align-items: stretch;
    max-width: calc(var(--arc-ptoc-btn-width) * 2 + var(--arc-ptoc-gap));
    margin-inline: auto;
  }

  .arc-page-toc__item {
    flex: 0 0 var(--arc-ptoc-btn-width);
    width: var(--arc-ptoc-btn-width);
    max-width: var(--arc-ptoc-btn-width);
  }
}

/* ブロックラッパー上の余白（テーマ）をリセット */
.wp-block-arc-editing-page-toc,
.wp-block-arc-editing-page-toc.alignfull,
.wp-block-arc-editing-page-toc.alignwide {
  padding-top: 0 !important;
  margin-top: 0;
}

/* H1セクション直下 — ブロックラッパーのみ上へずらす（黄背景内の padding は維持） */
.wp-block-arc-editing-h1-section + .wp-block-arc-editing-page-toc,
.wp-block-arc-editing-h1-section + .wp-block-arc-editing-page-toc.alignfull,
.wp-block-arc-editing-h1-section + .wp-block-arc-editing-page-toc.alignwide,
.arc-editing-h1-section-host + .wp-block-arc-editing-page-toc,
.arc-editing-h1-section-host + .wp-block-arc-editing-page-toc.alignfull,
.arc-editing-h1-section-host + .wp-block-arc-editing-page-toc.alignwide,
.wp-block-arc-editing-h1-section ~ .wp-block-arc-editing-page-toc,
.arc-editing-h1-section-host ~ .wp-block-arc-editing-page-toc,
.wp-block-arc-editing-page-toc.arc-page-toc-block--overlap-h1 {
  /* ブロック上端をフェード中央へ（ボタン上余白は __inner の padding で確保） */
  margin-top: calc(-1 * (var(--arc-ptoc-overlap-h1) + var(--arc-ptoc-h1-block-gap))) !important;
  padding-top: 0 !important;
  position: relative;
  z-index: 2;
}

/* H1重ね時も inner / 空状態の上下余白を維持 */
.arc-page-toc.arc-page-toc--overlap-h1 .arc-page-toc__inner,
.arc-page-toc--empty.arc-page-toc--overlap-h1 {
  padding-top: var(--arc-ptoc-pad-y) !important;
  padding-bottom: var(--arc-ptoc-pad-y) !important;
}

@media (min-width: 900px) {
  /* PC：フェード中央＋テーマのブロック間隙のみ相殺 */
  .wp-block-arc-editing-h1-section + .wp-block-arc-editing-page-toc,
  .wp-block-arc-editing-h1-section + .wp-block-arc-editing-page-toc.alignfull,
  .wp-block-arc-editing-h1-section + .wp-block-arc-editing-page-toc.alignwide,
  .arc-editing-h1-section-host + .wp-block-arc-editing-page-toc,
  .arc-editing-h1-section-host + .wp-block-arc-editing-page-toc.alignfull,
  .arc-editing-h1-section-host + .wp-block-arc-editing-page-toc.alignwide,
  .wp-block-arc-editing-h1-section ~ .wp-block-arc-editing-page-toc,
  .arc-editing-h1-section-host ~ .wp-block-arc-editing-page-toc,
  .wp-block-arc-editing-page-toc.arc-page-toc-block--overlap-h1 {
    --arc-ptoc-h1-block-gap: clamp(1rem, 2vw, 2rem);
  }
}
