/* ======================================
second.css
下層ページ共通のスタイル
====================================== */
body{
  background: var(--bg-gray-color);
}

main > section{
  padding-top: 1rem;
}

/* 3・17追加　イベント詳細ページのレイアウト */
/* ======================================
   イベント詳細ページのレイアウト
====================================== */

[data-page="cms"] img{
  display: block;
  width: 100%;
}

[data-page="cms"] h1{
  margin-bottom: 1rem;
  line-height: 1.5;
}

[data-page="cms"] h3{
  margin-bottom: 1rem;
}

[data-page="cms"] main > section,
[data-page="cms"].toc_layout{
  padding: 2rem 0 5rem;
}

[data-page="cms"] main > section#footer_contact{
  margin-bottom: 0;
}

[data-page="cms"] .toc_main_area > section{
  margin: 3rem 0;
}

[data-page="cms"] main li{
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--font-color);
  text-decoration: none;
  margin-bottom: 0.5rem;
}

[data-page="cms"] main .list li{
  position: relative;
  padding-left: 1.3rem;
}

[data-page="cms"] main .list li::before{
  content: "";
  width: 0.8rem;
  height: 0.8rem;
  border: solid 0.15rem var(--accent-color);
  border-radius: 50%;
  flex-shrink: 0;
  position: absolute;
  top: 0.5rem;
  left: 0;
}


.toc_layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  grid-template-areas:
    "head"
    "toc"
    "detail";
    margin-top: 2rem;
}
@media (min-width: 768px) {
  .toc_layout {
    grid-template-columns: minmax(0, 1fr) 18rem;
    grid-template-areas:
      "head toc"
      "detail toc";
  }

  .toc_area {
    padding-bottom: 3rem;
  }
}

.toc_area {
  grid-area: toc;
}
.toc_main_area {
  grid-area: detail;
  background: var(--white-color);
  padding: 0 1.5rem;
  margin-bottom: 3rem;
  border-radius: var(--border-radius);
}

@media (min-width: 768px) {
  .toc_main_area {
    padding: 0 2rem;
  }
}
/* リッチ本文列のみ：大きい画像で grid 子の min-width:auto が効き SP で縮まないのを防ぐ */
[data-page="cms"] .toc_main_area:has(.rich-text) {
  min-width: 0;
}

.event_detail_head{
  grid-area: head;
}

.toc_accordion > summary.toc_accordion_summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  box-sizing: border-box;
  padding: 1rem 1.25rem;
  border: 2px solid var(--accent-color);
  border-radius: var(--border-radius);
  background: var(--white-color);
  font: inherit;
  font-weight: 700;
  color: var(--font-color);
  text-align: left;
  gap: 1rem;
  line-height: 1.4;
}

.toc_accordion > summary.toc_accordion_summary .overview_accordion_toggle__label {
  font-size: 1.15rem;
}

.toc_accordion > summary.toc_accordion_summary:hover {
  opacity: 0.92;
}

.toc_accordion > summary.toc_accordion_summary:focus-visible {
  outline: 2px solid var(--accent-color);
  outline-offset: 2px;
}

.toc_accordion > summary::-webkit-details-marker {
  display: none;
}

.toc_accordion[open] > summary.toc_accordion_summary .overview_accordion_toggle__glyph--plus {
  display: none;
}

.toc_accordion[open] > summary.toc_accordion_summary .overview_accordion_toggle__glyph--minus {
  display: block;
}

/* SP：目次トグルと本文を1枚のパネルに見せる（モバイルファースト） */
.toc_accordion {
  border: 1px solid var(--gray-color);
  border-radius: var(--border-radius);
  background: var(--white-color);
  overflow: hidden;
}

.toc_accordion > summary.toc_accordion_summary {
  border: none;
  border-radius: 0;
  background: transparent;
}

.toc_accordion > .toc {
  margin-top: 0;
  border-radius: 0;
  background: transparent;
  padding-top: 0.75rem;
}

.toc_accordion > .toc ol {
  margin-top: 0.5rem;
}

.event_detail_head .meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.event_detail_head .meta .status {
  color: #e34848;
  font-weight: 700;
}

.event_detail_head .meta .date {
  margin-left: auto;
}

.event_detail_lead {
  padding: 1rem;
  margin-top: 1rem;
  background: var(--white-color);
  border-radius: var(--border-radius);
}

/* 空DOMやプレビュー由来の空ブロックを非表示（中身ゼロなら枠も出さない） */
.event_detail_lead:empty {
  display: none;
  margin: 0;
  padding: 0;
  background: transparent;
}

/* 目次 */
.toc {
  background: var(--white-color);
  border-radius: var(--border-radius);
  padding: 1rem;
  margin-top: 0.75rem;
}
.toc_pc {
  display: none;
}

/* SPは追従させない（デフォルトは通常フロー） */
.toc_area { position: static; top: auto; align-self: auto; z-index: auto; }
@media (min-width: 768px) {
  .toc_accordion {
    border: none;
    border-radius: 0;
    background: transparent;
    overflow: visible;
  }

  .toc_accordion_sp {
    display: none;
  }

  .toc_pc {
    display: block;
  }

  .toc_accordion > summary {
    display: none;
  }

  .toc_accordion > .toc {
    display: block;
    background: var(--white-color);
    border-radius: var(--border-radius);
  }

  .toc_area {
    position: sticky;
    /* fixed 化後は headerRef の高さが sub だけに縮み --header-h が小さくなるため、メインバー高さと max を取る */
    top: calc(
      max(var(--header-h, 80px), var(--header-main-h, 0px)) + 1rem
    );
    align-self: start;
  }

  /*
   * 上スクロールで .header_sub が固定表示されると、両バーが position:fixed で <header> の高さがほぼ 0 になり
   * --header-h がサブ分を含まない。目次の sticky top に sub + main を明示する（main は common.css で -1px 重ねている分を反映）。
   */
  body.header-sub-visible .toc_area {
    top: calc(
      var(--header-sub-h, 0px) + var(--header-main-h, 0px) - 1px + 1rem
    );
  }

  .toc {
    padding: 1.5rem;
    margin-top: 0;
    position: static;
  }
}

.toc h2 {
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: 0;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.2;
  display: none;
}

.toc ol {
  list-style: none;
  display: grid;
  gap: 0.5rem;
  margin-top: 1rem;
}

.toc li a {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--font-color);
  font-weight: 700;
  text-decoration: none;
}

.toc li a::before {
  content: "";
  width: 0.8rem;
  height: 0.8rem;
  border: solid 0.15rem var(--accent-color);
  border-radius: 50%;
  flex-shrink: 0;
}

.toc p {
  margin-top: 2.25rem;
}

.toc p a {
  display: block;
  width: 100%;
  text-align: center;
  background: var(--accent-color);
  color: var(--white-color);
  font-weight: 700;
  border-radius: var(--border-radius);
  padding: 1.25rem 1rem;
  text-decoration: none;
}
@media (min-width: 768px) {
  .toc h2 {
    display: block;
    font-size: 1.25rem;
    margin-bottom: 1.5rem;
  }

  .toc p a {
    padding: 1rem 0.8rem;
  }
}


.event_overview > div{
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}
@media (min-width: 768px) {
  .event_overview > div{
    grid-template-columns: 9rem 1fr;
  }
}

.event_overview dt,
.event_overview dd{
  padding: 0.5rem;
}
.event_overview dt{
  background: var(--bg-B-color);
  font-weight: 700;
  text-align: left;
}

/*
 * 開催概要：CMS ページは静的セミナーと同じ dl.event_overview 構造。
 * ラベル無し行は dd のみ → 2カラム時は全幅にする。
 */
[data-page="cms"] .event_overview_row > dd:only-child {
  grid-column: 1 / -1;
}

[data-page="cms"] .event_overview dd p {
  margin: 0 0 1rem;
  line-height: 1.8;
}

[data-page="cms"] .event_overview dd p:last-child {
  margin-bottom: 0;
}

[data-page="cms"] .event_overview dd h3,
[data-page="cms"] .event_overview dd h4 {
  margin: 1.25rem 0 0.75rem;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.4;
}

[data-page="cms"] .event_overview dd h3:first-child,
[data-page="cms"] .event_overview dd h4:first-child {
  margin-top: 0;
}

[data-page="cms"] .event_overview dd ul,
[data-page="cms"] .event_overview dd ol {
  margin: 0.5rem 0 1rem;
  line-height: 1.8;
}

[data-page="cms"] .event_overview dd li {
  display: list-item;
  align-items: unset;
  gap: unset;
  margin-bottom: 0.35rem;
}

[data-page="cms"] .event_overview dd li::before {
  content: none;
}

[data-page="cms"] .event_overview dd table {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  table-layout: fixed;
  border-collapse: collapse;
  margin: 1rem 0;
  font-size: 0.95rem;
}

[data-page="cms"] .event_overview dd th,
[data-page="cms"] .event_overview dd td {
  border: 1px solid var(--gray2-color, #ccc);
  padding: 0.6rem 0.75rem;
  vertical-align: top;
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}

[data-page="cms"] .event_overview dd th {
  background: var(--bg-B-color, #f0f4f8);
  font-weight: 700;
  text-align: left;
}

/* 開催概要：レポート記事公開時はアコーディオン（目次SPと同様、トグル＋本文を1枚のパネルに） */
.event_section--overview-accordion > h2 {
  margin-top: 0.35rem;
}

.overview_accordion_wrap {
  border: 1px solid var(--gray-color);
  border-radius: var(--border-radius);
  background: var(--white-color);
  overflow: hidden;
  margin-top: 1.25rem;
}

.overview_accordion_toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin-top: 0;
  padding: 1rem 1.25rem;
  border: none;
  border-radius: 0;
  background: transparent;
  font: inherit;
  font-weight: 700;
  color: var(--font-color);
  cursor: pointer;
  text-align: left;
  gap: 1rem;
  line-height: 1.4;
}

.overview_accordion_toggle:hover {
  opacity: 0.92;
}

.overview_accordion_toggle:focus-visible {
  outline: 2px solid var(--accent-color);
  outline-offset: 2px;
}

.overview_accordion_toggle__icon {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: var(--font-color);
  color: var(--white-color);
  display: grid;
  place-items: center;
}

.overview_accordion_toggle__glyph {
  display: block;
  grid-area: 1 / 1;
}

.overview_accordion_toggle__glyph--minus {
  display: none;
}

.overview_accordion_toggle[aria-expanded="true"] .overview_accordion_toggle__glyph--plus {
  display: none;
}

.overview_accordion_toggle[aria-expanded="true"] .overview_accordion_toggle__glyph--minus {
  display: block;
}

.overview_accordion_panel {
  margin-top: 0;
  padding: 0.75rem 1.25rem 1rem;
  border-top: none;
  background: transparent;
}

.overview_accordion_panel[hidden] {
  display: none !important;
}

/* お話を伺った方 */
.person_area {
  display: grid;
  gap: 1.5rem;
}

.person_area article {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  align-items: center;
}

.person_area article img {
  width: min(7rem, 60vw);
  margin-inline: auto;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  object-fit: cover;
  background: var(--gray2-color);
}

.person_area article h3 {
  margin-bottom: 0.75rem;
  font-size: 1.25rem;
  line-height: 1.3;
  text-align: center;
}

.person_area article p {
  margin: 0;
}

.person_area article p:first-of-type {
  margin-bottom: 0.75rem;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
}

.person_area article p:last-of-type {
  line-height: 1.8;
}

@media (min-width: 768px) {
  .person_area {
    gap: 2rem;
  }

  .person_area article {
    grid-template-columns: 7rem 1fr;
    gap: 1.5rem;
  }

  .person_area article img {
    width: 7rem;
    margin-inline: 0;
  }

  .person_area article h3,
  .person_area article p:first-of-type {
    text-align: left;
  }
}

/* 導入前後の変化 */
.before_after {
  display: grid;
  gap: 1.8rem;
}

.before_after > p {
  display: none;
}

.before_after > div {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  align-items: center;
  justify-items: center;
  padding: 1rem;
  border-radius: 0.25rem;
  border: 1px solid var(--gray2-color);
}

.before_after > div:first-of-type {
  margin-bottom: 1.2rem;
}

.before_after > div:first-of-type::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -2.5rem;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 4rem solid transparent;
  border-right: 4rem solid transparent;
  border-top: 2rem solid var(--accent-color);
}

.before_after > div:last-of-type {
  border-color: var(--accent-color);
}

.before_after h3 {
  width: 5.5rem;
  height: 5.5rem;
  margin: 0;
  border-radius: 50%;
  color: var(--white-color);
  font-size: 1.5rem;
  line-height: 1;
  display: grid;
  place-items: center;
}

.before_after > div:first-of-type h3 {
  background: var(--gray2-color);
}

.before_after > div:last-of-type h3 {
  background: var(--accent-color);
}

.before_after ul {
  margin: 0;
  padding: 0;
  width: 100%;
  align-self: center;
}

.before_after li {
  position: relative;
  display: block;
  padding-left: 1.8rem;
  margin-bottom: 0.9rem;
  font-size: 1rem;
  line-height: 1.7;
}

.before_after li:last-child {
  margin-bottom: 0;
}

.before_after li::before {
  content: "";
  position: absolute;
  top: 0.5rem;
  left: 0;
  width: 0.85rem;
  height: 0.85rem;
  border-radius: 50%;
  border: 2px solid var(--font-color);
}

.before_after > div:last-of-type li::before {
  border-color: var(--accent-color);
}

@media (min-width: 768px) {
  .before_after {
    gap: 2rem;
  }

  .before_after > div {
    grid-template-columns: 9.5rem 1fr;
    gap: 1.6rem;
    justify-items: stretch;
    padding: 1.6rem 1.8rem;
  }

  .before_after h3 {
    width: 7.8rem;
    height: 7.8rem;
    font-size: 1.5rem;
  }
}

@media (min-width: 768px) {
  .event_overview dt{
    text-align: center;
  }
}



main h2 {
  font-size: 1.75rem;
  border-bottom: solid 1px var(--gray-color);
  padding-bottom: 1rem;
}

/* セミナー詳細：SNS シェア直上の CTA（余白・背景はブロック本体に集約。body の data-page は SSR で無いため main で指定） */
main .toc_main_area > section.seminar_mid_cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 2rem 1.5rem 1.75rem;
  gap: 1rem;
  text-align: center;
  background-color: var(--bg-gray-color);
  background-image: none;
  border-radius: var(--border-radius);
}

main .toc_main_area > section.seminar_mid_cta h2.seminar_mid_cta__title {
  border-bottom: none;
  padding-bottom: 0;
  margin: 0;
  font-size: 1.25rem;
  line-height: 1.5;
  text-align: center;
}

main .toc_main_area > section.seminar_mid_cta .seminar_mid_cta__lead {
  margin: 0;
  max-width: 36rem;
  font-size: 1rem;
  line-height: 1.75;
  text-align: center;
}

main .toc_main_area > section.seminar_mid_cta .cta_btn {
  margin: 0;
}

/* SNSシェア */
.sns_share .sns_share_inner {
  margin-top: 0;
  border-top: solid 1px var(--gray-color);
  border-bottom: solid 1px var(--gray-color);
  padding: 1rem 0;
}

.sns_share_row {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.sns_share h2 {
  margin: 0;
  padding: 0;
  border-bottom: none;
  font-size: 14px;
}

.sns_share_list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}
main .sns_share_list li{
  margin-bottom: 0;
}

.sns_share_list .sns_share_line {
  display: flex;
  align-items: center;
  line-height: 0;
}

/* 目次・チェックリスト用の main li（flex + gap）が SNS 行に乗り LINE 埋め込みを崩すのを打ち消す */
[data-page="cms"] main .sns_share .sns_share_list > li {
  gap: 0;
  margin-bottom: 0;
  padding-left: 0;
  list-style: none;
  flex-shrink: 0;
  color: inherit;
  text-decoration: none;
}

.sns_share_btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 4px;
  color: var(--white-color);
  text-decoration: none;
  font-weight: 700;
  line-height: 1;
  padding: 0.6rem 0.9rem;
  font-size: 14px;
}

.sns_share_btn.x,
.sns_share_btn.fb {
  background: transparent;
  border: none;
  padding: 0;
  color: inherit;
}

.sns_share_btn_icon {
  padding: 0;
  gap: 0;
  min-width: 0;
  min-height: 0;
  line-height: 0;
}

.sns_share_btn.x:focus-visible,
.sns_share_btn.fb:focus-visible {
  outline: 2px solid var(--main-color);
  outline-offset: 3px;
  border-radius: 2px;
}

.sns_share_logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.sns_share_logo img {
  display: block;
  width: 32px;
  height: auto;
  vertical-align: top;
}

.sns_share_icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  font-size: 1.25rem;
  font-family: var(--font-family-en);
  font-weight: 700;
  line-height: 1;
}

/* 執筆者 */
.writer_profile_card {
  background: var(--bg-gray-color);
  border-radius: 6px;
  padding: 1.5rem;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  justify-items: stretch;
}

.writer_profile_image {
  width: 9rem;
  margin-inline: auto;
}

.writer_profile_image img {
  display: block;
  width: 100%;
  height: auto;
}

.writer_profile_body h3 {
  margin: 0 0 0.75rem;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
  text-align: left;
}

.writer_profile_body h2 {
  margin: 0 0 0.75rem;
  padding: 0;
  border-bottom: none;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.writer_profile_body h2::before {
  content: "";
  display: inline-block;
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 10rem;
  flex-shrink: 0;
  padding: 2px;
  background: var(--gradation-color);
  -webkit-mask: radial-gradient(circle, transparent 52%, black 53%);
  mask: radial-gradient(circle, transparent 52%, black 53%);
}

.writer_profile_body p {
  margin: 0;
  text-align: left;
}

@media (min-width: 768px) {
  .writer_profile_card {
    grid-template-columns: 9rem 1fr;
    align-items: center;
    justify-items: stretch;
    gap: 1.5rem;
    padding: 2rem;
  }

  .writer_profile_image {
    margin-inline: 0;
  }

  .writer_profile_body h2 {
    margin: 0 0 0.75rem;
  }

  .writer_profile_body h3,
  .writer_profile_body p {
    text-align: left;
  }
}

@media (min-width: 768px) {

  .sns_share_row {
    display: flex;
    align-items: center;
    gap: 2rem;
  }

  .sns_share h2 {
    flex: 0 0 auto;
    font-size: 14px;
    padding-right: 2rem;
    border-right: solid 1px #bcbcbc;
  }
}



main .en_title{
  display: inline-block;
  font-weight: bold;
  background: var(--gradation-color);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  font-family: var(--font-family-en);
  font-size: 1rem;
}

main .en_title.center{
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}



/* 3・17追加　イベント詳細ページのレイアウト ここまで*/


#FV_second {
  text-align: center;
  padding: calc(var(--header-h) + 2rem) 2rem 2rem;
  background: var(--white-color);
  border-bottom: solid 2px;
  border-image:var(--gradation-color) 1;
}
@media (min-width: 768px) {
  #FV_second {
    padding: 2rem;
  }
}
/* 3/17追加 */
#FV_second .title{
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
}

#FV_second .en_title{
  display: inline-block;
  font-size: 1rem;
  font-family: var(--font-family-en);
  font-weight: 700;
}

/* 下層ページはh2をトップより少し小さくする */
@media (min-width: 768px) {
  main h2 {
    font-size: 1.75rem;
  }
}


/* ======================================
   パンくずリスト
====================================== */

/* 基本は通常余白。SP でヘッダー分を足すのは「ヘッダー直下がパンくずだけ」のときのみ（#FV_second があるページは FV 側で既に --header-h を取るため二重にしない） */
[data-page="cms"] .breadcrumb {
  padding: 1rem 0;
}
.breadcrumb {
  padding: 1rem 0;
}

/* ヘッダー直下がパンくずだけの CMS ページ：SP でヘッダー分の余白（モバイルファースト） */
[data-page="cms"] > header + nav.breadcrumb {
  padding: 1rem 0;
  padding-top: calc(var(--header-h) + 1rem);
}

@media (min-width: 768px) {
  [data-page="cms"] > header + nav.breadcrumb {
    padding-top: 1rem;
  }
}
.breadcrumb ol {
  display: block;
  list-style: none;
  padding: 0;
  margin: 0;
}
.breadcrumb ol li {
  list-style: none;
  font-size: 0.75rem;
  display: inline;
}

.breadcrumb ol li::after {
  content: ">";
  margin-left: 0.5rem;
  margin-right: 0.5rem;
  color: var(--font-color);
  font-size: 0.75rem;
}
.breadcrumb ol li:last-child::after {
  content: "";
  margin-left: 0;
  margin-right: 0;
}

.breadcrumb ol li a {
  text-decoration: underline;
  color: var(--font-color);
}
.breadcrumb ol li a:hover {
  text-decoration: none;
}

/* ======================================
   ページネーション
====================================== */
/* .pagination {
  display: none;
  margin-top: 4rem;
  padding-top: 2rem;
}

.pagination_list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  list-style: none;
  padding: 0;
  margin: 0;
  flex-wrap: wrap;
}

.pagination_item {
  list-style: none;
}

.pagination_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  height: 2.5rem;
  padding: 0 0.75rem;
  border: solid 1px var(--gray-color);
  background: var(--white-color);
  color: var(--font-color);
  font-size: 0.875rem;
  font-weight: 700;
  border-radius: var(--border-radius);
  cursor: pointer;
  transition: all 0.3s ease;
  font-family: var(--font-family);
}

.pagination_btn:hover:not(:disabled):not(.active) {
  border-color: var(--main-color);
  background: var(--bg-C-color);
  color: var(--font-color);
}

.pagination_btn:disabled,
.pagination_btn.disabled {
  opacity: 0.5;
  cursor: not-allowed;
  background: var(--bg-gray-color);
}

.pagination_btn.active {
  background: var(--main-color);
  border-color: var(--main-color);
  color: var(--white-color);
  cursor: default;
}

.pagination_prev .pagination_btn,
.pagination_next .pagination_btn {
  padding: 0 1rem;
}

.pagination_numbers_list {
  display: flex;
  gap: 0.5rem;
  list-style: none;
  padding: 0;
  margin: 0;
  align-items: center;
}

.pagination_ellipsis {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  height: 2.5rem;
  color: var(--font-color);
  font-size: 0.875rem;
  font-weight: 700;
  padding: 0;
}

@media (min-width: 768px) {
  .pagination {
    margin-top: 5rem;
    padding-top: 3rem;
  }
  
  .pagination_list {
    gap: 0.75rem;
  }
  
  .pagination_numbers_list {
    gap: 0.75rem;
  }
  
  .pagination_btn {
    min-width: 3rem;
    height: 3rem;
    font-size: 1rem;
  }
  
  .pagination_ellipsis {
    min-width: 3rem;
    height: 3rem;
    font-size: 1rem;
  }
} */


.article_area{
  padding-top: 0;
}

.event_current {
  margin-bottom: 4rem;
}

/*  rich-text のスタイル */
/* グリッド子要素の min-width:auto や、スペース無し長文で横にはみ出すのを防ぐ */
[data-page="cms"] .rich-text {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: break-word;
  /* 本文ブロックはヘッダーより背面のスタックに（Iframely 等の z-index 対策の補助） */
  position: relative;
  z-index: 0;
}

[data-page="cms"] .rich-text h3 {
  margin: 2.5rem 0 1.5rem;
}
[data-page="cms"] .rich-text h4 {
  font-size: 1.25rem;
}

[data-page="cms"] .rich-text h5 {
  font-size: 1.125rem;
}

[data-page="cms"] .rich-text figure {
  max-width: 100%;
}

/* SP は親いっぱい＋縦長は max-height。768px 以上は横幅 80% 上限・左寄せ */
[data-page="cms"] .rich-text img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: min(75vh, 900px);
  object-fit: contain;
  box-sizing: border-box;
}

@media (min-width: 768px) {
  [data-page="cms"] .rich-text img {
    max-width: 80%;
  }
}

[data-page="cms"] .rich-text dd img {
  width: auto;
  max-width: 100%;
  max-height: min(75vh, 900px);
  height: auto;
  margin: 0;
}

[data-page="cms"] .rich-text a {
  text-decoration: underline;
}
[data-page="cms"] .rich-text a:hover {
  text-decoration: none;
}

[data-page="cms"] .rich-text ul li{
  padding-left: 1.5em;
  position: relative;
  display: block;
}
[data-page="cms"] .rich-text ul li:before{
  content: "";
  width: 0.8rem;
  height: 0.8rem;
  border: solid 0.15rem var(--font-color);
  border-radius: 50%;
  flex-shrink: 0;
  position: absolute;
  top: 0.5rem;
  left: 0;
}
[data-page="cms"] .rich-text ol {
  list-style-type: decimal;
  list-style-position: outside;
  padding-left: 1.2rem;
}
[data-page="cms"] .rich-text ol li {
  display: list-item;
  padding-left: 0.25rem;
}
[data-page="cms"] .rich-text ol li::marker {
  font-family: var(--font-family-en);
  font-weight: 700;
}

[data-page="cms"] .rich-text strong {
  font-weight: 700;
  color: var(--font-color);
}

[data-page="cms"] .rich-text code,
[data-page="cms"] .rich-text pre {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow-wrap: anywhere;
  word-break: break-word;
  white-space: pre-wrap;
}

[data-page="cms"] .rich-text code {
  background: var(--white-color);
  padding: 0.25rem 0.5rem;
  border-radius: var(--border-radius);
  border: 1px solid var(--gray-color);
  display: block;
}

[data-page="cms"] .rich-text pre {
  background: var(--white-color);
  padding: 0.75rem 1rem;
  border-radius: var(--border-radius);
  border: 1px solid var(--gray-color);
  overflow-x: auto;
}

[data-page="cms"] .rich-text pre code {
  margin-bottom: 0;
  padding: 0;
  border: none;
  background: transparent;
}

/* common.css の hr は legacy 相当 4rem。本文内だけ詰める */
[data-page="cms"] .rich-text hr {
  margin: 1.5rem 0;
}

[data-page="cms"] .rich-text table {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  table-layout: fixed;
  border-collapse: collapse;
  margin-bottom: 1.5rem;
  display: table;
}
[data-page="cms"] .rich-text table th,
[data-page="cms"] .rich-text table td {
  border: 1px solid var(--gray-color);
  padding: 0.5rem;
  vertical-align: top;
  background: var(--white-color);
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}
[data-page="cms"] .rich-text table th {
  background: var(--bg-gray-color);
  font-weight: 700;
  text-align: left;
}

[data-page="cms"] .rich-text h4,
[data-page="cms"] .rich-text h5,
[data-page="cms"] .rich-text p,
[data-page="cms"] .rich-text img,
[data-page="cms"] .rich-text figure,
[data-page="cms"] .rich-text ul,
[data-page="cms"] .rich-text ol,
[data-page="cms"] .rich-text code,
[data-page="cms"] .rich-text pre,
[data-page="cms"] .rich-text div:has(> iframe),
[data-page="cms"] .rich-text .iframely-embed {
  margin-bottom: 1.5rem;
  display: block;
}

/* Iframely が親 DOM に付与する z-index を本文内に閉じる（iframe 要素は親ページの重ね合わせに参加する） */
[data-page="cms"] .rich-text .iframely-embed,
[data-page="cms"] .rich-text [class*="iframely"] {
  position: relative;
  z-index: 0;
  isolation: isolate;
}

[data-page="cms"] .rich-text iframe {
  position: relative;
  z-index: 0;
}

[data-page="cms"] .rich-text blockquote {
  max-width: 100%;
  min-width: 0;
  overflow-wrap: break-word;
}

[data-page="cms"] .rich-text blockquote p {
  border-left: 2px solid var(--font-color);
  padding-left: 0.5rem;
  overflow-wrap: break-word;
  word-break: break-word;
}
