/**
 * Project - Post
 * 投稿系共通
 *
 * 整理方針：
 * - デザイン値は原則変更しない
 * - SP指定は対象コンポーネントの近くに置く
 * - 共通化できるhover / activeなどの重複だけ整理する
 */

/* サイドバー */
.p-postSidebar {
  padding-block: 45px;
  order: 1;
  border-left: 1px solid;

  @media screen and (max-width: 959px) {
    order: 1;
    border-left: none;
    border-top: 1px solid;
  }
}

.p-postSidebarHeader {
  font-size: 18px;
  margin-bottom: 20px;
  padding-left: 15px;
  position: relative;

  &::before {
    content: "";
    display: inline-block;
    width: 8px;
    height: calc(100% - 10px);
    background-color: var(--color-bg-darkBlack);
    position: absolute;
    top: 50%;
    left: 0;
    translate: 0 -50%;
  }
}

.p-postSidebarContainer {
  width: 100%;
  max-width: 300px;
  margin-inline: auto;
  display: grid;
  gap: 30px;

  @media screen and (max-width: 959px) {
    width: 100%;
    max-width: none;
    padding-inline: 24px;
  }

  @media screen and (max-width: 767px) {
    padding-inline: 20px;
  }
}

.p-postSidebarCardList {
  list-style: none;
  display: grid;
  gap: 1.5em;
}

.p-cardListLink {
  border: 1px solid;
  background-color: var(--color-bg-white);
  display: block;
  padding: 10px;
}

.p-cardListDate {
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 8px;
}

.p-cardListTitle {
  font-size: 1rem;
  font-weight: bold;
  margin-bottom: 8px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

.p-cardListTags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  list-style: none;
}

.p-postSidebarBottom {
  border-top: 1px solid;
  padding-top: 24px;
}

.p-postSidebarBottomTitle {
  font-size: 18px;
  margin-bottom: 10px;
}

.p-postSidebarBottomText {
  line-height: 1.7;
}

.p-sidebarCtaList {
  list-style: none;
  display: grid;
  margin-top: 20px;
  gap: 20px;
}

.p-sidebarCta {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 8px;
  padding-block: 16px;
  padding-inline: 11px;

  &.--black {
    background-color: var(--color-bg-black);
    border: 1px solid rgb(0 0 0 / 10%);
  }

  &.--yellow {
    background-color: var(--color-bg-white);
    border: 5px solid var(--color-accent-darkYellow);
    padding-block: 11px;
  }
}

.p-sidebarCtaText {
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 0.02em;
  text-align: center;

  .p-sidebarCta.--black & {
    color: var(--color-text-light);
  }
}

.p-sidebarCtaLink {
  font-size: 14px;
  font-weight: 700;
  min-height: 32px;
  padding-inline: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 40px;

  &::after {
    content: "";
    display: inline-block;
    width: 1rem;
    height: 1rem;
    background-image: url("../../../images/icon_arrow_right_black.svg");
    background-size: contain;
    background-position: center;
  }

  .p-sidebarCta.--black & {
    background-color: var(--color-bg-white);
    border: 1px solid #949494;
  }

  .p-sidebarCta.--yellow & {
    background-color: var(--color-accent-yellow);
  }
}

/* 記事 */
.p-postListSection {
  padding-block: 96px 40px;
}

.p-postListHeading {
  text-align: center;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.01em;
  border-bottom: 1px solid;
  padding-bottom: 1.5rem;

  @media screen and (max-width: 767px) {
    font-size: 32px;
  }
}

.p-postListCategories {
  margin-bottom: 70px;

  @media screen and (max-width: 767px) {
    margin-bottom: 40px;
  }
}

.p-sliderSection {
  padding-block: 90px 98px;
  border-bottom: 1px solid;

  @media screen and (max-width: 767px) {
    padding-block: 80px;
    padding-inline: 20px;
  }
}

/* 投稿詳細（共通：通常投稿・カスタム投稿どちらでも使用） */
.p-postArticle {
  padding-block: 0 96px;
}

.p-postContent.entry-content {
  font-size: 1rem;
  line-height: 1.8;
  letter-spacing: 0.02em;
  color: var(--color-text-dark);
}

.p-postContent.entry-content > * + * {
  margin-top: 2.5em;
  margin-bottom: 2.5em;
}

/* 投稿詳細：ヘッダー */
.p-postHeader {
  margin-bottom: 48px;
}

.p-postHeaderMeta {
  display: grid;
  gap: 12px;
  margin-bottom: 24px;
}

.p-postHeaderDate {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--color-text-dark);
}

.p-postHeaderTitle {
  margin: 0;
  color: var(--color-text-dark);
  font-size: clamp(24px, 3.5vw, 42px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.02em;
}

.p-postHeaderThumbnail {
  margin-top: 40px;
}

.p-postHeaderThumbnailImage {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  height: auto;
  display: block;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border-lightGray);
}

@media screen and (max-width: 767px) {
  .p-postHeader {
    margin-bottom: 40px;
  }

  .p-postHeaderTitle {
    font-size: 28px;
  }

  .p-postHeaderThumbnail {
    margin-top: 32px;
  }
}

.p-postContent.entry-content p {
  margin-block: 2.5em;
}

/* 見出し */
.p-postContent.entry-content h1 {
  font-size: clamp(24px, 3.5vw, 42px);
}

.p-postContent.entry-content h2 {
  font-size: clamp(22px, 3vw, 36px);
  font-weight: 700;
  line-height: 1.5;
  padding-bottom: 1rem;
  margin-top: 1.5em;
  margin-bottom: 30px;
  position: relative;
  border-bottom: 3px solid #333;

  @media screen and (max-width: 767px) {
    padding-left: 20px;
  }
}

.p-postContent.entry-content h2:first-child {
  margin-top: 0;
}

.p-postContent.entry-content h3 {
  font-size: clamp(20px, 2.3vw, 28px);
  font-weight: 700;
  line-height: 1.5;
  padding-bottom: 0.5em;
  margin-top: 1.5em;
  margin-bottom: 0.5em;
  position: relative;
  border-bottom: 1px solid #333;

  @media screen and (max-width: 767px) {
    padding-left: 16px;
  }
}

.p-postContent.entry-content.--simple h3 {
  padding: 0;
  font-size: 20px;

  &::before {
    display: none;
  }
}

.p-postContent.entry-content h4 {
  font-size: clamp(18px, 2vw, 24px);
  font-weight: 700;
  padding-left: 21px;
  margin-top: 1.5em;
  margin-bottom: 0.5em;
  position: relative;

  @media screen and (max-width: 767px) {
    font-size: 16px;
    padding-left: 14px;
  }

  &::before {
    content: "";
    display: inline-block;
    width: 9px;
    height: calc(100% - 12px);
    background-color: var(--color-bg-darkBlack);
    position: absolute;
    top: 50%;
    left: 0;
    translate: 0 -50%;
  }
}

.p-postContent.entry-content h5 {
  font-size: 17px;
  font-weight: 700;
  padding-left: 21px;
  margin-top: 1.5em;
  margin-bottom: 0.5em;
  position: relative;

  @media screen and (max-width: 767px) {
    padding-left: 14px;
  }

  &::before {
    content: "■";
    display: inline-block;
    width: 9px;
    position: absolute;
    top: 1rem;
    left: 0;
    translate: 0 -50%;
    font-size: 12px;
  }
}
.p-postContent.entry-content h2.none-style,
.p-postContent.entry-content h3.none-style {
  border: none;
  padding-left: 0;
}

.p-postContent.entry-content h4.none-style::before,
.p-postContent.entry-content h5.none-style::before {
  content: none;
}

.p-seminarSingle .p-postContent.entry-content h2.none-style,
.p-seminarSingle .p-postContent.entry-content h3.none-style {
  margin-bottom: 0;
  padding-bottom: 0;
}

/* 文字サイズ：global-styles-inline-css の !important 対策 */
.p-postContent.entry-content .has-small-font-size {
  font-size: 12px !important;
}

.p-postContent.entry-content .has-medium-font-size {
  font-size: 14px !important;
}

.p-postContent.entry-content .has-large-font-size {
  font-size: 1rem !important;
}

.p-postContent.entry-content .has-x-large-font-size {
  font-size: 18px !important;
}

/* Table of Contents Plus（目次） */
.p-postContent.entry-content #toc_container {
  width: 100% !important;
  margin-block: 48px;
  padding: 0;
  background-color: #f5f5f5;
  border: none;
}

.p-postContent.entry-content #toc_container .toc_title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0;
  padding: 8px 16px;
  background-color: #000;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

.p-postContent.entry-content #toc_container .toc_title::before {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  background-image: url("../../../images/icon_bookmark_white.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  flex-shrink: 0;
}

.p-postContent.entry-content #toc_container .toc_number {
  display: none;
}

.p-postContent.entry-content #toc_container .toc_toggle {
  display: none;
}

.p-postContent.entry-content #toc_container .toc_list {
  margin: 0;
  padding: 24px;
  list-style: none;
}

.p-postContent.entry-content #toc_container .toc_list > li {
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-postContent.entry-content #toc_container .toc_list > li + li {
  margin-top: 16px;
}

.p-postContent.entry-content #toc_container .toc_list > li > a {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  color: var(--color-text-dark);
  font-weight: 700;
  text-decoration: none;
}

.p-postContent.entry-content #toc_container .toc_list > li > a::before {
  content: "▼";
  font-size: 0.8em;
  line-height: 1;
}

.p-postContent.entry-content #toc_container .toc_list > li > ul {
  margin-top: 10px;
  margin-left: 1.75em;
  padding-left: 1.2em;
  list-style: disc;
}

.p-postContent.entry-content #toc_container .toc_list > li > ul > li {
  list-style: disc;
}

.p-postContent.entry-content #toc_container .toc_list > li > ul > li + li {
  margin-top: 8px;
}

.p-postContent.entry-content #toc_container .toc_list > li > ul > li > a {
  color: var(--color-text-dark);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.p-postContent.entry-content #toc_container a {
  color: var(--color-text-dark);
}

.p-postContent.entry-content #toc_container a:hover {
  opacity: 0.75;
}

@media screen and (max-width: 767px) {
  .p-postContent.entry-content #toc_container {
    margin-block: 40px;
  }

  .p-postContent.entry-content #toc_container .toc_title {
    font-size: 16px;
  }

  .p-postContent.entry-content #toc_container .toc_list {
    padding: 20px;
  }
}

/* 目次のtoggle */
/* TOC：高さ制限＋もっと見る */
#toc_container {
  --toc-bg-color: #f5f5f5; /* 目次の背景色に合わせて調整 */
  position: relative;
  background-color: var(--toc-bg-color);
}

#toc_container .toc_list {
  max-height: 400px;
  overflow: hidden;
  transition: max-height 0.35s ease;
}

/* 展開時 */
#toc_container.is-expanded .toc_list {
  overflow: hidden;
}

/* グラデーション */
#toc_container.is-collapsible:not(.is-expanded)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 83px;
  height: 80px;
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    rgba(245, 245, 245, 0),
    var(--toc-bg-color)
  );
  z-index: 1;
}

/* ボタン外側 */
.toc-more-button-wrap {
  display: none;
  position: relative;
  z-index: 2;
  text-align: center;
  background-color: var(--toc-bg-color);
  padding: 20px;
}

/* 目次が400pxを超える場合だけ表示 */
#toc_container.is-collapsible .toc-more-button-wrap {
  display: block;
}

/* ボタン */
.toc-more-button {
  display: inline-block;
  width: auto;
  min-width: 180px;
  padding: 10px 24px;
  border: 1px solid #333;
  border-radius: 999px;
  background-color: var(--toc-bg-color);
  color: #333;
  font: inherit;
  font-weight: 700;
  line-height: 1.4;
  cursor: pointer;
  text-align: center;
  appearance: none;
  -webkit-appearance: none;
}

.toc-more-button:hover {
  opacity: 0.75;
}

/* 記事本文内：YouTube埋め込み */
.p-postContent.entry-content figure.is-provider-youtube.wp-block-embed-youtube,
.p-postContent.entry-content
  .wp-block-embed.is-provider-youtube.wp-block-embed-youtube {
  width: min(100%, 500px);
  margin-inline: auto;
  display: block;
  overflow: hidden;
  border: 1px solid var(--color-border-gray);
}

.p-postContent.entry-content
  figure.is-provider-youtube.wp-block-embed-youtube
  iframe,
.p-postContent.entry-content
  .wp-block-embed.is-provider-youtube.wp-block-embed-youtube
  iframe {
  display: block;
  width: 100%;
}

/* -----------------------------------------
  本文内
----------------------------------------- */
.p-requestFormBox--main {
  width: min(100%, 900px);
  margin: 64px auto;
  padding: 40px 24px 28px;
}

.p-requestFormBox--main .p-requestFormBox__inner {
  width: min(100%, 530px);
  margin-top: 28px;
  padding-block: 32px 36px;
  padding-inline: clamp(16px, 2vw, 40px);
}

/* -----------------------------------------
  サイドバー
----------------------------------------- */
.p-requestFormBox--sidebar {
  position: relative;
  width: 100%;
  margin: 0 auto;
  padding: 64px 18px 24px;
}

.p-requestFormBox--sidebar .p-requestFormBox__title {
  font-size: 1.15rem;
  line-height: 1.55;
  text-align: center;
}

.p-requestFormBox--sidebar .p-requestFormBox__inner {
  width: 100%;
  margin-top: 18px;
  padding: 22px 14px 24px;
}

.p-requestFormBox__badge {
  position: absolute;
  top: -18px;
  left: 50%;
  transform: translateX(-50%) rotate(-8deg);
  width: 100px;
}

.p-requestFormBox__badge img {
  display: block;
  width: 100%;
  height: auto;
}

/* -----------------------------------------
  ラッパー内のフォーム見た目微調整
----------------------------------------- */
.p-requestFormBox .cf7-field label {
  color: #333;
}

.p-requestFormBox .cf7-note,
.p-requestFormBox .cf7-privacy {
  color: #333;
}

.p-requestFormBox .cf7-note ul {
  margin: 0.5em 0 0;
  padding-left: 1.4em;
}

.p-requestFormBox input[type="text"],
.p-requestFormBox input[type="email"],
.p-requestFormBox input[type="tel"],
.p-requestFormBox input[type="url"],
.p-requestFormBox select,
.p-requestFormBox textarea {
  width: 100%;
  box-sizing: border-box;
}

/* 本文内・サイドバーとも白箱の中に収める */
.p-requestFormBox .wpcf7-form-control-wrap {
  display: block;
}

/* -----------------------------------------
  SP
----------------------------------------- */
@media screen and (max-width: 767px) {
  .p-requestFormBox--main {
    margin: 40px auto;
    padding: 28px 16px 20px;
  }

  .p-requestFormBox--main .p-requestFormBox__inner {
    width: 100%;
    margin-top: 20px;
    padding: 24px 16px 24px;
  }

  .p-requestFormBox__lead {
    font-size: 0.95rem;
  }

  .p-requestFormBox__title {
    font-size: 1.5rem;
  }

  .p-requestFormBox--sidebar {
    padding: 56px 14px 18px;
  }

  .p-requestFormBox--sidebar .p-requestFormBox__inner {
    padding: 20px 12px 20px;
  }

  .p-requestFormBox__badge {
    width: 86px;
    top: -14px;
  }
}

/* 記事内CTAボタン */
.p-postCtaButtons {
  display: grid;
  gap: 20px;
  width: min(100%, 320px);
  margin: 48px auto;
}

.p-postCtaButton {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 320px;
  min-height: 72px;
  padding: 16px 40px 16px 20px;
  border-radius: 5px;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.4;
  text-align: center;
  text-decoration: none !important;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    background-position 0.35s ease;
}

.p-postCtaButton::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 22px;
  width: 10px;
  height: 10px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
}

.p-postCtaButton--yellow {
  color: #111 !important;
  border: 2px solid #fff;
  background: linear-gradient(135deg, #f1c800 0%, #ffe56b 45%, #fff1a8 100%);
  background-size: 200% 100%;
  background-position: left center;
  box-shadow: 0 12px 24px rgb(0 0 0 / 24%);
}

.p-postCtaButton--yellow:hover {
  color: #111 !important;
  opacity: 1;
  background-position: right center;
  transform: translateY(4px);
  box-shadow: 0 4px 10px rgb(0 0 0 / 18%);
}

.p-postContent.entry-content a.p-postCtaButton {
  text-decoration: none;
}

@media screen and (max-width: 767px) {
  .p-postCtaButtons {
    width: 100%;
  }

  .p-postCtaButton {
    width: 100%;
    min-height: 60px;
    font-size: 16px;
  }
  .p-postContent.entry-content .p-postCtaButtons {
    width: 100%;
    max-width: 450px;
    margin-inline: auto;
    box-sizing: border-box;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .p-postContent.entry-content .p-postCtaButton {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    padding-inline: clamp(16px, 5vw, 40px);
  }

  .p-postContent.entry-content .p-postPageBack {
    width: 100%;
    max-width: 320px;
    margin-inline: auto;
    box-sizing: border-box;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .p-postContent.entry-content .p-postPageBack .c-buttonPrimary {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    padding-inline: clamp(16px, 5vw, 32px);
    text-align: center;
  }
}

/* =========================================
  資料DLフォーム：本文内 画像＋テキストCTA
========================================= */
.p-requestFormBox__inner.p-requestFormBox__inner--flex_wrap {
  width: 100%;
}

.p-requestFormBox--main .p-requestFormBox__inner--flex {
  display: flex;
  align-items: start;
  gap: clamp(15px, 1.5vw, 20px);
}

.p-requestFormBox--main .p-requestFormBox__image {
  flex: 0 0 clamp(96px, 18vw, 180px);
  width: clamp(96px, 18vw, 180px);
  max-width: 100%;
  margin-block: 1em;
}

.p-requestFormBox--main .p-requestFormBox__image img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  border: none;
  border-radius: 0;
}

.p-requestFormBox--main .p-requestFormBox__inner--flex-main {
  flex: 1;
  min-width: 0;
}

.p-requestFormBox--main .p-requestFormBox__text {
  margin-block: 0 24px !important;
  line-height: 1.8;
}

.p-requestFormBox--main .p-postCtaButtons,
.p-requestFormBox--main .p-postCtaButtons--docs-dll {
  width: 100%;
  margin: 0;
}

.p-requestFormBox--main .p-postCtaButtons--docs-dll {
  margin-top: 16px;
}

.p-requestFormBox--main .p-postCtaButton {
  width: 100%;
  min-width: 0;
}

.p-requestFormBox--main .p-postCtaButton--docs-dll {
  position: relative;
  display: block;
  width: 100%;
  min-height: 56px;
  padding: 16px 24px;
  border: 2px solid #222 !important;
  border-radius: 4px;
  overflow: hidden;
  background: #222;
  color: #fff !important;
  font-weight: 800;
  line-height: 1.4;
  font-size: 16px;
  text-align: center;
  cursor: pointer;
  transition: color 0.3s ease;
}

/* 黄色背景 */
.p-requestFormBox--main .p-postCtaButton--docs-dll::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #ffd60b;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.35s ease;
  z-index: 0;
  pointer-events: none;
}

/* 文字を背景より前に出す */
.p-requestFormBox--main .p-postCtaButton--docs-dll span {
  position: relative;
  z-index: 1;
}

/* hover時 */
.p-requestFormBox--main .p-postCtaButton--docs-dll:hover {
  color: #222 !important;
  opacity: 1 !important;
}

/* hover時に黄色背景を広げる */
.p-requestFormBox--main .p-postCtaButton--docs-dll:hover::before {
  transform: scaleX(1);
}

@media screen and (max-width: 767px) {
  .p-requestFormBox--main .p-requestFormBox__inner--flex {
    flex-direction: column;
    align-items: stretch;
    gap: 24px;
  }

  .p-requestFormBox--main .p-requestFormBox__image {
    flex: none;
    width: min(100%, 240px);
    margin-inline: auto;
  }

  .p-requestFormBox--main .p-postCtaButtons,
  .p-requestFormBox--main .p-postCtaButtons--docs-dll {
    width: 100%;
  }
}

.p-requestFormBox--main .p-requestFormBox__inner {
  container-type: inline-size;
}

@container (max-width: 500px) {
  .p-requestFormBox--main .p-requestFormBox__inner--flex {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .p-requestFormBox--main .p-requestFormBox__image {
    flex: none;
    width: min(100%, 240px);
    margin-inline: auto;
  }

  .p-requestFormBox--main .p-requestFormBox__inner--flex-main {
    width: 100%;
  }

  .p-requestFormBox--main .p-postCtaButtons,
  .p-requestFormBox--main .p-postCtaButtons--docs-dll {
    width: 100%;
  }

  .p-requestFormBox--main .p-postCtaButton {
    min-width: 0;
    width: 100%;
  }
}

/* 記事内：関連記事リンクcard　横型 */
.p-postContent.entry-content .p-relatedHorizontalCard {
  width: min(720px, 100%);
  margin-inline: auto;

  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 20px;
  padding: 20px;
  border: 1px solid var(--color-border-black);
  background-color: var(--color-bg-white);
  color: inherit;
  text-decoration: none;
}

.p-postContent.entry-content .p-relatedHorizontalCard:hover {
  opacity: 0.8;
}

.p-postContent.entry-content .p-relatedHorizontalCard__thumb {
  margin: 0;
}

.p-postContent.entry-content .p-relatedHorizontalCard__thumb img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--radius-sm);
  border: none;
}

.p-postContent.entry-content .p-relatedHorizontalCard__body {
  min-width: 0;
}

.p-postContent.entry-content .p-relatedHorizontalCard__title {
  margin: 0 0 1rem;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.6;
}

.p-postContent.entry-content .p-relatedHorizontalCard__text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 2;
  overflow: hidden;
  margin-top: 8px;
  font-size: 0.9375rem;
  line-height: 1.7;
}

.p-postContent.entry-content .p-relatedHorizontalCard__moreLink {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  font-weight: 700;
}

.p-postContent.entry-content .p-relatedHorizontalCard__moreLink::after {
  content: "";
  display: inline-block;
  width: 0.45em;
  height: 0.45em;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  rotate: 45deg;
  translate: 0 -0.03em;
}

.p-postContent.entry-content .p-relatedHorizontalCard__moreLink:hover {
  opacity: 0.75;
}

@media screen and (max-width: 767px) {
  .p-postContent.entry-content .p-relatedHorizontalCard {
    grid-template-columns: 1fr;
  }
}
/* 記事内：関連記事リンクcard 縦型 */
.p-postContent.entry-content .p-relatedLinkCard {
  width: min(450px, 100%);
  margin-inline: auto;
  display: block;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  border: 1px solid var(--color-border-gray);
  background-color: var(--color-bg-white);
  padding: 20px;
}

.p-postContent.entry-content .p-relatedLinkCard:hover {
  opacity: 0.8;
}

.p-postContent.entry-content .p-relatedLinkCard__thumb {
  margin: 0;
}

.p-postContent.entry-content .p-relatedLinkCard__thumb img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--radius-sm);
  border: none;
}

.p-postContent.entry-content .p-relatedLinkCard__body {
  min-width: 0;
}

.p-postContent.entry-content .p-relatedLinkCard__title {
  margin: 1rem 0;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.6;
}

.p-postContent.entry-content .p-relatedLinkCard__text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  margin-top: 8px;
  font-size: 0.9375rem;
  line-height: 1.7;
}

.p-postContent.entry-content .p-relatedLinkCard__site {
  margin-top: 12px;
  font-size: 1rem;
  color: var(--color-text-gray);
  font-weight: 700;
}

.p-postContent.entry-content .p-relatedLinkCard__site,
.p-relatedHorizontalCard__more {
  margin: 0 !important;
}

@media screen and (max-width: 767px) {
  .p-postContent.entry-content .p-relatedLinkCard {
    grid-template-columns: 1fr;
  }
}

/* -- 打消し系 -- */

/* 本文内リンク：通常リンクだけデフォルト寄り */
.p-postContent.entry-content
  a:not(.c-buttonPrimary):not(.p-relatedLinkCard):not(
    .p-relatedHorizontalCard
  ):not(.p-profileCard__snsLink):not(.editor-cta-button):not(
    .wp-block-button__link
  ):not(.p-relatedHorizontalCard__moreLink) {
  color: #0000ee;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.p-postContent.entry-content
  a:not(.c-buttonPrimary):not(.p-relatedLinkCard):not(
    .p-relatedHorizontalCard
  ):not(.p-profileCard__snsLink):not(.editor-cta-button):not(
    .wp-block-button__link
  ):not(.p-relatedHorizontalCard__moreLink):hover {
  opacity: 0.8;
}

.p-postContent.entry-content ul,
.p-postContent.entry-content ol {
  margin: 0;
  padding-inline-start: 1.5em;
}

.p-postContent.entry-content li + li {
  margin-top: 0.5em;
}

.p-postContent.entry-content ul.wp-block-list,
.p-postContent.entry-content ol.wp-block-list {
  width: min(100%, 500px);
  margin-inline: auto;
  margin: 2.5em auto !important;
}

.p-postContent.entry-content figure {
  margin-top: 2.5em;
  margin-bottom: 2.5em;
}

@media screen and (max-width: 767px) {
  .p-postContent.entry-content figure {
    margin-top: 1rem;
    margin-bottom: 1rem;
  }

  .single-seminar .p-profileCardBlock {
    padding: 1rem 0;
  }
}

.p-postContent.entry-content figcaption {
  font-size: 0.875rem;
  color: var(--color-text-dark);
  margin-top: 0.5rem;
  text-align: left;
}

.p-postContent.entry-content img {
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border-lightGray);
}

.p-postContent.entry-content blockquote {
  margin: 1.5em 0;
  padding: 1rem 1.5rem;
  border-inline-start: 4px solid var(--color-border-gray);
  background-color: var(--color-bg-lightGray);
  color: var(--color-text-dark);
  font-style: italic;
}

.p-postContent.entry-content strong {
  font-weight: 700;
}

.p-postContent.entry-content code {
  font-size: 0.9em;
  padding: 0.2em 0.4em;
  background-color: var(--color-bg-lightGray);
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border-lightGray);
}

.p-postContent.entry-content section:not(:first-child) {
  margin-top: 80px;
}

.p-postEmphasisBox {
  background-color: var(--color-bg-white);
  padding-block: 1rem;
  padding-inline: 10px;
  margin-block: 24px;

  ul {
    font-weight: bold;

    ul {
      font-weight: normal;
      list-style: disc;
    }

    p {
      margin-block: 0 !important;
      font-weight: normal;
    }
  }
}

.p-postColumn {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 350px;

  @media screen and (max-width: 959px) {
    grid-template-columns: 1fr;
  }
}

.p-postMainContents {
  order: 0;
  min-width: 0;
  padding-block: 64px;
  padding-inline: clamp(24px, 7vw, 96px);
  margin-block: 45px;
  margin-inline: clamp(24px, 5vw, 94px);
  background-color: var(--color-bg-white);

  &.--single {
    max-width: 1248px;
    padding-inline: 24px;
    margin-inline: auto;

    @media screen and (max-width: 767px) {
      padding-inline: 1rem;
    }
  }

  @media screen and (max-width: 959px) {
    order: 1;
    padding-inline: 24px;
    margin-inline: 24px;
  }

  @media screen and (max-width: 767px) {
    padding-block: 40px;
    padding-inline: 20px;
    margin-block: 0;
    margin-inline: 0;
  }
}

.p-postPageBack {
  width: fit-content;
  margin-inline: auto;
  margin-top: 80px !important;
}

.p-postContent.entry-content .p-postPageBack {
  display: flex;
  justify-content: center;
  flex-flow: column;
}

.p-postPageBack a {
  margin: 1.5em 0;
}
@media screen and (max-width: 767px) {
  .p-postBottomCard {
    height: 100%;
  }

  .p-postBottomCard__body {
    display: flex;
    flex-direction: column;
    min-width: 0;
  }

  .p-postBottomCard__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 8px;
    margin-bottom: 8px;
    min-height: 31px;
  }

  .p-postBottomCard__meta .p-cardListDate {
    margin: 0;
    flex-shrink: 0;
    font-size: 12px;
  }

  .p-postBottomCard__meta .p-cardListTags {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 11px;
  }

  .p-postBottomCard__meta .c-tag {
    line-height: 1.4;
  }
}

.p-postBottomCard__meta {
  display: flex;
  align-items: center;
  gap: 4px 8px;
  min-height: 24px;
  margin-bottom: 8px;
  min-width: 0;
}

.p-postBottomCard__meta .p-cardListDate {
  flex-shrink: 0;
  margin: 0;
  font-size: 14px;
  line-height: 1.4;
}

.p-postBottomCard__meta .p-cardListTags {
  display: flex;
  min-width: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-postBottomCard__meta .c-tag {
  display: inline-block;
  max-width: 8em;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  padding: 2px 8px;
  font-size: 12px;
  line-height: 1.4;
}

@media screen and (max-width: 767px) {
  .p-postBottomCardList--horizontal .p-postBottomCard__meta {
    gap: 4px 6px;
    min-height: 22px;
    margin-bottom: 6px;
  }

  .p-postBottomCardList--horizontal .p-cardListDate {
    font-size: 12px;
  }

  .p-postBottomCardList--horizontal .c-tag {
    max-width: 10em;
    padding: 2px 6px;
    font-size: 11px;
  }
}

/* ページネーション */
.navigation.pagination {
  margin-top: 56px;
  display: flex;
  justify-content: center;

  @media screen and (max-width: 767px) {
    margin-top: 40px;
  }
}

.navigation.pagination .nav-links {
  display: flex;
  align-items: center;
  gap: 8px;
}

.navigation.pagination .page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  background-color: #fff;
  font-size: 14px;
  color: var(--color-text-main);
  text-decoration: none;
  transition: var(--hover);

  &:hover {
    border-color: var(--color-text-main);
  }
}

.navigation.pagination .page-numbers.current {
  border: 1px solid var(--color-text-main);
  font-weight: bold;
}

.navigation.pagination .page-numbers.dots {
  border: none;
  background: none;
  pointer-events: none;
}

.navigation.pagination .page-numbers.prev,
.navigation.pagination .page-numbers.next {
  font-size: 0;
  background-image: url("../../../images/icon_arrow_left_simple_black.svg");
  background-repeat: no-repeat;
  background-size: 16px;
  background-position: center;
}

.navigation.pagination .page-numbers.next {
  background-image: url("../../../images/icon_arrow_right_simple_black.svg");
}

/* カテゴリ */
.c-categories {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 16px;

  &.--row {
    flex-direction: row;
    flex-wrap: wrap;
  }
}

.c-categoryLink {
  color: #806300;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding-block: 4px;
  padding-inline: 8px;
  border: 1px solid currentColor;
  border-radius: 4px;
  transition: var(--hover);

  &::before {
    content: "";
    display: inline-block;
    width: 24px;
    height: 24px;
    background-image: url("../../../images/icon_arrow_right_brown.svg");
    background-size: contain;
    background-position: center;
    transition: var(--hover);
  }

  &:hover,
  &.is-active {
    background-color: #806300;
    color: #fff;
    border-color: #806300;
  }

  &:hover::before,
  &.is-active::before {
    filter: brightness(0) invert(1);
  }
}

/* 記事下部：お役立ち資料カード */
.p-postBottomCardList {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  row-gap: 2.5em;
  column-gap: 16px;
  margin-top: 40px;
}

.p-postBottomCard {
  height: 100%;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.p-postBottomCard:hover {
  opacity: 0.8;
}

.p-postBottomCard__figure {
  margin: 0 0 10px;
}

.p-postBottomCard__figure img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border: none;
  border-radius: 0;
}

@media screen and (max-width: 1199px) {
  .p-postBottomCardList {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media screen and (max-width: 767px) {
  .p-postBottomCardList {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .p-postDocsSection .p-postBottomCardList {
    grid-template-columns: 1fr;
  }
}

/* 投稿下部CTA */
.p-serviceCta--post {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-block: 40px;
  padding-inline: 24px;
  background-color: rgb(0 0 0 / 5%);
  margin-top: 0;
  border-top: 1px solid #333;
}

.p-serviceCta--post .c-ctaActions {
  padding: 0;
  background-color: transparent;
  max-width: 1120px;
  margin-inline: auto;
}

@media screen and (max-width: 767px) {
  .p-serviceCta--post {
    margin-top: 48px;
    padding-block: 48px;
    padding-inline: 16px;
  }
}

/* =========================================
  投稿下部カード：レイアウト切り替え
========================================= */

/* 共通：カード内の右側ラッパー */
.p-postBottomCard__body {
  min-width: 0;
}

/* SP時だけレイアウト切り替え */
@media screen and (max-width: 767px) {
  /* お役立ち資料など：SPでは1カラム */
  .p-postBottomCardList--vertical {
    grid-template-columns: 1fr;
  }

  /* 関連記事・新着記事・よく読まれている記事：SPでは画像左/本文右 */
  .p-postBottomCardList--horizontal {
    grid-template-columns: 1fr;
  }

  .p-postBottomCardList--horizontal .p-postBottomCard {
    display: grid;
    grid-template-columns: clamp(96px, 32vw, 140px) minmax(0, 1fr);
    align-items: start;
    gap: 12px;
  }

  .p-postBottomCardList--horizontal .p-postBottomCard__figure {
    margin: 0;
  }

  .p-postBottomCardList--horizontal .p-postBottomCard__figure img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    overflow: hidden;
  }

  .p-postBottomCardList--horizontal .p-cardListDate {
    margin: 0;
    font-size: 12px;
  }

  .p-postBottomCardList--horizontal .p-cardListTitle {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    min-height: 4rem;
  }

  .p-postBottomCardList--horizontal .p-cardListTags {
    margin-top: 0;
  }
}

/* ==============================
   サイドバー追従フォーム
============================== */

.p-postSidebar {
  position: relative;
}

.p-postSidebarContainer {
  position: relative;
}

/* JSで固定中 */
.p-requestFormBox--sidebar.is-fixed {
  position: fixed;
  top: 100px;
  z-index: 20;
}

/* サイドバー下端で止める */
.p-requestFormBox--sidebar.is-stopped {
  position: absolute;
  top: auto;
  bottom: 0;
  z-index: 20;
}

/* サイドバー追従フォーム：フォーム部分だけスクロール */
.p-requestFormBox--sidebar .p-requestFormBox__inner {
  max-height: calc(100vh - 280px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.p-requestFormBox--sidebar .p-requestFormBox__inner {
  scrollbar-width: thin;
}

.p-requestFormBox--sidebar .p-requestFormBox__inner::-webkit-scrollbar {
  width: 8px;
}

.p-requestFormBox--sidebar .p-requestFormBox__inner::-webkit-scrollbar-thumb {
  background-color: rgb(0 0 0 / 25%);
  border-radius: 999px;
}

.p-requestFormBox--sidebar .p-requestFormBox__inner::-webkit-scrollbar-track {
  background-color: rgb(0 0 0 / 8%);
}
.p-requestFormBox--sidebar {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* ==============================
   サイドバー固定フォーム：横はみ出し最終対策
============================== */

.p-postSidebar,
.p-postSidebarContainer,
.p-requestFormBox--sidebar,
.p-requestFormBox--sidebar * {
  box-sizing: border-box;
  min-width: 0;
}

.p-requestFormBox--sidebar {
  max-width: 100% !important;
  /*  overflow: hidden;*/
}

.p-requestFormBox--sidebar .p-requestFormBox__inner {
  width: 100%;
  max-width: 100%;
  /*  overflow-x: hidden;*/
}

.p-requestFormBox--sidebar .wpcf7,
.p-requestFormBox--sidebar .wpcf7 form,
.p-requestFormBox--sidebar .wpcf7-form,
.p-requestFormBox--sidebar .cf7-step-form,
.p-requestFormBox--sidebar .cf7-step,
.p-requestFormBox--sidebar .cf7-field,
.p-requestFormBox--sidebar .cf7-buttons,
.p-requestFormBox--sidebar .cf7-submit-wrap {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.p-requestFormBox--sidebar input,
.p-requestFormBox--sidebar select,
.p-requestFormBox--sidebar textarea,
.p-requestFormBox--sidebar button {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.p-requestFormBox--sidebar .cf7-submit-wrap .cf7-submit {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 14px 32px 14px 14px;
  white-space: normal;
  word-break: keep-all;
}

.p-requestFormBox--sidebar .cf7-prev {
  width: 100%;
  min-width: 0;
}

/* SP/タブレットでは追従しない */
@media screen and (max-width: 959px) {
  .p-requestFormBox--sidebar.is-fixed,
  .p-requestFormBox--sidebar.is-stopped {
    position: static;
    top: auto;
    bottom: auto;
    width: auto !important;
  }
}

/* ==============================
  AIO-Lab：SP〜Tablet サイドバー内ピックアップ記事
============================== */

/* 959px以下：サイドバーを本文下で横幅いっぱいにして、縦型カード3枚並び */
@media screen and (max-width: 959px) {
  .p-postSidebarCardList--spHorizontal {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
  }

  .p-postSidebarCardList--spHorizontal .p-postSidebarCard {
    height: 100%;
  }

  .p-postSidebarCardList--spHorizontal .p-postSidebarCard__figure {
    margin: 0 0 10px;
  }

  .p-postSidebarCardList--spHorizontal .p-postSidebarCard__figure img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border: none;
    border-radius: 0;
  }

  .p-postSidebarCardList--spHorizontal .p-postSidebarCard__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 8px;
    min-height: 24px;
    margin-bottom: 8px;
  }

  .p-postSidebarCardList--spHorizontal .p-cardListDate {
    margin: 0;
    flex-shrink: 0;
    font-size: 12px;
    line-height: 1.4;
  }

  .p-postSidebarCardList--spHorizontal .p-cardListTags {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .p-postSidebarCardList--spHorizontal .c-tag {
    max-width: 10em;
    padding: 2px 6px;
    font-size: 11px;
    line-height: 1.4;
  }

  .p-postSidebarCardList--spHorizontal .p-cardListTitle {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
  }

  .p-postSidebarHeader {
    text-align: center;
    font-weight: 700;
    font-size: 32px;
    line-height: 1.4;
    letter-spacing: 0.01em;
    border-bottom: 1px solid;
    padding-bottom: 1.5rem;
  }
  .p-postSidebarHeader:before {
    display: none;
  }
  .c-categories {
    flex-direction: row;
    flex-wrap: wrap;
  }
}

/* ==============================
  SP：サイドバーのピックアップ記事を横型カード化
============================== */
/* 767px以下：関連記事と同じく、画像左・本文右の横型カード */
@media screen and (max-width: 767px) {
  .p-postSidebarCardList--spHorizontal {
    grid-template-columns: 1fr;
    gap: 2.5em;
  }

  .p-postSidebarCardList--spHorizontal .p-postSidebarCard {
    display: grid;
    grid-template-columns: clamp(96px, 32vw, 140px) minmax(0, 1fr);
    align-items: start;
    gap: 12px;
  }

  .p-postSidebarCardList--spHorizontal .p-postSidebarCard__figure {
    margin: 0;
  }

  .p-postSidebarCardList--spHorizontal .p-postSidebarCard__meta {
    gap: 4px 6px;
    min-height: 22px;
    margin-bottom: 6px;
  }

  .p-postSidebarCardList--spHorizontal .p-cardListTitle {
    font-size: 14px;
    line-height: 1.5;
    min-height: 4rem;
  }
}

/* ==========================
資料請求ページ
========================== */

.p-postColumn.p-postColumn--docs-layout,
.p-postColumn.p-postColumn--seminar-layout {
  grid-template-columns: 1fr;
}
.p-docsSingle,
.p-seminarSingle {
  margin-top: 76px;
}

@media screen and (max-width: 1279px) {
  .p-docsSingle,
  .p-seminarSingle {
    margin-top: 64px;
  }
}

/* ==========================
  資料請求・セミナー詳細：本文内2カラム
========================== */

.p-docsSingleContents__layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(32px, 4vw, 56px);
  align-items: start;
}

.p-seminarSingleContents__layout {
  display: grid;
  grid-template-columns: minmax(0, 11fr) minmax(0, 9fr);
  gap: clamp(32px, 4vw, 56px);
  align-items: start;
}

.p-docsSingleContents__main,
.p-docsSingleContents__form,
.p-seminarSingleContents__main,
.p-seminarSingleContents__form {
  min-width: 0;
}

.p-docsSingleContents__form,
.p-seminarSingleContents__form {
  position: relative;
  align-self: stretch;
}

.p-docsSingleContents__formInner,
.p-seminarSingleContents__formInner {
  width: 100%;
}

@media screen and (max-width: 959px) {
  .p-docsSingleContents__layout,
  .p-seminarSingleContents__layout {
    grid-template-columns: 1fr;
  }

  .p-docsSingleContents__formInner,
  .p-seminarSingleContents__formInner {
    position: static;
  }
}

/* ==========================
  資料詳細：関連する支援事例
========================== */

.p-docsRelatedCases {
  margin-top: clamp(48px, 6vw, 80px);
}

.p-docsRelatedCases__title {
  margin: 0 0 32px;
  color: var(--color-text-dark);
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 700;
  line-height: 1.5;
}

.p-docsRelatedCases__list {
  display: grid;
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-docsRelatedCases__item {
  min-width: 0;
}

.p-caseCard--docsRelated {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  align-items: start;
  gap: 24px;
  padding: 20px;
  border: 1px solid #333;
  background-color: var(--color-bg-white);
  color: inherit;
  text-decoration: none !important;
}

.p-caseCard--docsRelated:hover {
  opacity: 0.8;
}

.p-caseCard--docsRelated__figure {
  margin: 0;
}

.p-caseCard--docsRelated__image {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border: none !important;
  border-radius: 0 !important;
}

.p-caseCard--docsRelated__body {
  min-width: 0;
}

.p-caseCard--docsRelated__title {
  margin: 0 0 8px;
  color: var(--color-text-dark);
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 700;
  line-height: 1.5;
}

.p-caseCard--docsRelated__text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  margin: 0 !important;
  color: var(--color-text-dark);
  font-size: 15px;
  line-height: 1.7;
}

.p-caseCard--docsRelated__more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 20px;
  color: var(--color-text-dark);
  font-weight: 700;
  line-height: 1.5;
}

.p-caseCard--docsRelated__more::after {
  content: "";
  display: inline-block;
  width: 0.45em;
  height: 0.45em;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  rotate: 45deg;
}

/* ==========================
  詳細ページ：右フォーム追従
========================== */

.p-docsSingleContents__formInner.is-fixed,
.p-seminarSingleContents__formInner.is-fixed {
  position: fixed;
  top: 100px;
  z-index: 20;
}

.p-docsSingleContents__formInner.is-stopped,
.p-seminarSingleContents__formInner.is-stopped {
  position: absolute;
  top: auto;
  bottom: 0;
  z-index: 20;
}

@media screen and (max-width: 959px) {
  .p-docsSingleContents__formInner.is-fixed,
  .p-docsSingleContents__formInner.is-stopped,
  .p-seminarSingleContents__formInner.is-fixed,
  .p-seminarSingleContents__formInner.is-stopped {
    position: static;
    top: auto;
    bottom: auto;
    width: auto !important;
    left: auto !important;
  }
}
/* 資料一覧だけフォームのアイコンを外す */
.single-docs .p-requestFormBox__badge img,
.single-seminar .p-requestFormBox__badge img {
  display: none;
}
.single-docs .p-requestFormBox__title {
  display: none;
}
.single-docs .p-requestFormBox--sidebar,
.single-seminar .p-requestFormBox--sidebar {
  padding: 24px 18px;
}

@media screen and (max-width: 767px) {
  .p-caseCard--docsRelated {
    grid-template-columns: 1fr;
  }
}

/* =============================
資料一覧
==============================*/
/* download用Hero */
.c-childHero--download {
  min-height: 430px;
  padding-block: 1rem;
  display: flex;
  justify-content: center;
  align-items: center;
  background-image: url(../../../images/bg_child_hero.png);
  background-size: cover;
  background-position: center;
}

/* ==========================
  資料一覧ページ
========================== */

.p-docsArchive {
  background-color: #f5f5f5;
}

/* ==============================
  投稿本文内：プロフィールカードの余白調整
============================== */

.p-postContent.entry-content > .p-profileCardBlock {
  margin-top: 0;
  margin-bottom: 0;
}

.p-postContent.entry-content > .p-profileCardBlock + .p-profileCardBlock {
  margin-top: 0;
}

/* --------------------------
  ページヘッダー
-------------------------- */

.p-ArchiveHeader {
  padding-block: 80px 56px;
  padding-inline: clamp(20px, 5vw, 80px);
  background-color: #f5f5f5;
}

.p-ArchiveHeader__inner {
  max-width: 1120px;
  margin-inline: auto;
}

.p-ArchiveHeader__body {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid #333;
}

.p-ArchiveHeader__title {
  margin: 0;
  color: var(--color-text-dark);
  font-size: clamp(36px, 5vw, 64px);
  font-family: "Poppins", sans-serif;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: 0.01em;
}

.p-ArchiveHeader__label {
  margin: 0;
  color: var(--color-text-dark);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
}

.p-ArchiveHeader__text {
  margin: 20px 0 0;
  color: var(--color-text-dark);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.8;
}

/* --------------------------
  ヒーロー
-------------------------- */

.p-docsArchiveHero {
  padding-inline: 0;
}

.p-docsArchiveHero__inner {
  display: grid;
  grid-template-columns: minmax(280px, 420px) minmax(0, 1fr);
  align-items: center;
  gap: clamp(32px, 5vw, 72px);
  max-width: 1120px;
  min-height: 320px;
  margin-inline: auto;
  padding-block: clamp(40px, 6vw, 64px);
  padding-inline: clamp(20px, 5vw, 80px);
  color: #fff;
}

.p-docsArchiveHero__image {
  margin: 0;
}

.p-docsArchiveHero__image img {
  display: block;
  width: 100%;
  height: auto;
  border: none;
  border-radius: 0;
}

.p-docsArchiveHero__body {
  min-width: 0;
}

.p-docsArchiveHero__title {
  margin: 0;
  color: #fff;
  font-size: clamp(22px, 3vw, 36px);
  font-weight: 700;
  line-height: 1.5;
}

.p-docsArchiveHero__text {
  margin: 20px 0 0;
  color: #fff;
  font-size: 15px;
  line-height: 1.8;
}

.p-docsArchiveHero__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 24px;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
}

.p-docsArchiveHero__link::after {
  content: "";
  display: inline-block;
  width: 0.45em;
  height: 0.45em;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  rotate: 45deg;
}

.p-docsArchiveHero__link:hover {
  opacity: 0.75;
}

/* --------------------------
  資料一覧：タブ
-------------------------- */

.p-docsArchiveTabs {
  width: 100%;
  margin-block: clamp(50px, 7vw, 100px);
  margin-top: 0;
}

.p-docsArchiveTabs__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  width: min(100%, 760px);
  margin-inline: auto;
  padding: 0;
  list-style: none;
  border: none;
}

.p-docsArchiveTabs__item {
  min-width: 0;
}

.p-docsArchiveTabs__item + .p-docsArchiveTabs__item {
  border-left: none;
}

.p-docsArchiveTabs__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  min-height: 56px;
  padding: 12px 24px;
  color: #111;
  font: inherit;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  border: 1px solid #111;
  background-color: #fff;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition:
    color 0.2s ease,
    background-color 0.2s ease;
}

.p-docsArchiveTabs__link:hover {
  opacity: 1;
  background-color: #f3f3f3;
}

.p-docsArchiveTabs__link.is-active {
  color: #fff;
  background-color: #111;
}

/* ==========================
  資料一覧：タブパネル
========================== */

.p-docsArchivePanel {
  display: none;
}

.p-docsArchivePanel.is-active {
  display: block;
}
/* --------------------------
  資料カード一覧
-------------------------- */
.p-memberArchiveHeader {
  background: #000;
}
.p-memberArchiveHeader__body {
  border-bottom: 1px solid rgb(255 255 255);
}
.p-memberArchiveHeader__text {
  color: var(--color-text-light);
}
.p-memberArchiveHeader__title {
  color: var(--color-text-light);
}
.p-memberArchiveHeader__label {
  color: var(--color-text-light);
}

.p-ArchiveSection {
  padding-block: 80px 96px;
  padding-inline: clamp(20px, 5vw, 80px);
  background-color: #f5f5f5;
}

.p-ArchiveSection__inner {
  max-width: 1120px;
  margin-inline: auto;
}

.p-ArchiveList {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-ArchiveList__item {
  min-width: 0;
}

.p-ArchiveCard {
  position: relative;
  display: block;
  height: 100%;
  padding: 16px;
  color: inherit;
  text-decoration: none;
  background-color: #fff;
  border: 1px solid #333;
  transition: opacity 0.2s ease;
}

.p-ArchiveCard:hover {
  opacity: 0.8;
}

.p-ArchiveCard__label {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding-inline: 8px;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  background-color: #111;
}

.p-ArchiveCard__figure {
  margin: 0 0 16px;
}

.p-ArchiveCard__figure img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border: none;
  border-radius: 0;
}

.p-ArchiveCard__title {
  margin: 0;
  color: var(--color-text-dark);
  font-size: clamp(18px, 2vw, 24px);
  font-weight: 700;
  line-height: 1.4;
}

.p-ArchiveCard__text {
  margin: 16px 0 0;
  color: var(--color-text-dark);
  font-size: 14px;
  line-height: 1.7;
}

.p-ArchiveCard__linkText {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 20px;
  color: var(--color-text-dark);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
}

.p-ArchiveCard__linkText::after {
  content: "";
  display: inline-block;
  width: 0.45em;
  height: 0.45em;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  rotate: 45deg;
}

/* --------------------------
  レスポンシブ
-------------------------- */

@media screen and (max-width: 959px) {
  .p-ArchiveHero__inner {
    grid-template-columns: 1fr;
  }

  .p-ArchiveHero__image {
    max-width: 480px;
  }

  .p-ArchiveList {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 767px) {
  .p-ArchiveHeader {
    padding-block: 40px 24px;
    padding-inline: 20px;
  }

  .p-ArchiveHeader__body {
    display: block;
  }

  .p-ArchiveHeader__label {
    margin-top: 12px;
  }

  .p-ArchiveHero__inner {
    min-height: 0;
    padding-block: 40px;
    padding-inline: 20px;
  }

  .p-ArchiveTabs {
    padding-block: 32px 24px;
    padding-inline: 20px;
  }

  .p-ArchiveTabs__list {
    gap: 12px;
  }

  .p-ArchiveTabs__link {
    min-height: 44px;
    padding: 10px 12px;
    font-size: 14px;
  }

  .p-ArchiveSection {
    padding-block: 24px 64px;
    padding-inline: 20px;
  }

  .p-ArchiveList {
    grid-template-columns: 1fr;
  }

  .p-ArchiveCard {
    padding: 14px;
  }
}

/* ==========================
  資料ダウンロードCTAボタン
========================== */

.p-postCtaButton.p-postCtaButton--docs-dll {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  min-height: 56px;
  padding: 16px 40px 16px 24px;
  border: 2px solid #222 !important;
  border-radius: 4px;
  overflow: hidden;
  background: #222;
  color: #fff !important;
  font-weight: 800;
  line-height: 1.4;
  font-size: 16px;
  text-align: center;
  text-decoration: none !important;
  cursor: pointer;
  transition: color 0.3s ease;
}

.p-postCtaButton.p-postCtaButton--docs-dll::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #ffd60b;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.35s ease;
  z-index: 0;
  pointer-events: none;
}

.p-postCtaButton.p-postCtaButton--docs-dll span {
  position: relative;
  z-index: 1;
}

.p-postCtaButton.p-postCtaButton--docs-dll::after {
  z-index: 1;
}

.p-postCtaButton.p-postCtaButton--docs-dll:hover {
  color: #222 !important;
  opacity: 1 !important;
}

.p-postCtaButton.p-postCtaButton--docs-dll:hover::before {
  transform: scaleX(1);
}

/* imgのborder打消し */
.p-postContent.entry-content ul img,
.p-postContent.entry-content ol img {
  border: none;
}

/* ==========================
  セミナー詳細：開催情報
========================== */

.p-seminarInfo {
  display: grid;
  gap: 12px;
  margin-block: 24px 40px;
}

.p-seminarInfo__item {
  display: grid;
  grid-template-columns: 7em minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.p-seminarInfo__heading {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  line-height: 1.6;
  white-space: nowrap;
}

.p-seminarInfo__icon {
  flex-shrink: 0;
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  position: relative;
  translate: 0 0.08em;
}

.p-seminarInfo__body {
  min-width: 0;
  line-height: 1.7;
  display: flex;
  flex-wrap: wrap;
}

.p-seminarInfo__body p {
  margin: 0 !important;
}

.p-seminarInfo__date,
.p-seminarInfo__time,
.p-seminarInfo__text {
  color: var(--color-text-dark);
}

@media screen and (max-width: 767px) {
  .p-seminarInfo {
    gap: 10px;
    margin-block: 24px 32px;
  }

  .p-seminarInfo__item {
    grid-template-columns: 7em minmax(0, 1fr);
    gap: 10px;
    font-size: 14px;
  }
}

/* ==========================
  セミナーのアイコン
========================== */

.p-seminarInfo__icon {
  flex-shrink: 0;
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  translate: 0 0.08em;
}

.p-seminarInfo__icon--date {
  background-image: url("../../../images/time-icon.svg");
}

.p-seminarInfo__icon--fee {
  background-image: url("../../../images/price-icon.svg");
}

.p-seminarInfo__icon--location {
  background-image: url("../../../images/map-icon.svg");
}

/* ==========================
  SP専用：資料DLボタン 無料ラベル付き
========================== */
.p-postCtaButtons--spOnly {
  display: none;
}

@media screen and (max-width: 959px) {
  .p-postCtaButtons--spOnly {
    display: block;
  }
  .p-postCtaButton--docsSpDownload {
    gap: 10px;
    padding-block: 14px;
    padding-inline: 10px 30px;
    font-size: 14px;
    white-space: nowrap;
  }

  .p-postCtaButton--docsSpDownload .p-postCtaButton__label {
    flex-shrink: 0;
    min-width: auto;
    padding: 3px 8px;
    font-size: 12px;
    line-height: 1.2;
    white-space: nowrap;
    background-color: #ffd60b;
    color: #111;
    border-radius: 999px;
  }

  .p-postCtaButton--docsSpDownload .p-postCtaButton__text {
    min-width: 0;
    white-space: nowrap;
    padding-right: 1rem;
  }
}

/* ==========================
  SP専用：セミナー申込ボタン
========================== */

.p-postCtaButtons--spOnly {
  display: none;
}

@media screen and (max-width: 959px) {
  .p-postCtaButtons--spOnly {
    display: grid;
  }

  .p-postCtaButton.p-postCtaButton--seminarEntry {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    min-height: 56px;
    padding: 16px 40px 16px 24px;
    border: 2px solid #222 !important;
    border-radius: 4px;
    overflow: hidden;
    background: #ffd60b;
    color: #222 !important;
    font-weight: 800;
    line-height: 1.4;
    font-size: 16px;
    text-align: center;
    text-decoration: none !important;
    cursor: pointer;
    transition: color 0.3s ease;
  }

  .p-postCtaButton.p-postCtaButton--seminarEntry::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #fff;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.35s ease;
    z-index: 0;
    pointer-events: none;
  }

  .p-postCtaButton.p-postCtaButton--seminarEntry span {
    position: relative;
    z-index: 1;
  }

  .p-postCtaButton.p-postCtaButton--seminarEntry::after {
    z-index: 1;
  }

  .p-postCtaButton.p-postCtaButton--seminarEntry:hover {
    color: #222 !important;
    opacity: 1 !important;
  }

  .p-postCtaButton.p-postCtaButton--seminarEntry:hover::before {
    transform: scaleX(1);
  }
}

/* ==========================
  セミナー：受付終了表示
========================== */

.p-seminarSidebar__closed {
  padding: 24px 16px;
  border: 1px solid #ccc;
  background-color: #f5f5f5;
  color: #333;
  text-align: center;
}

.p-seminarSidebar__closedTitle {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
}

.p-seminarSidebar__closedText {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
}

/* ==========================
  セミナー申込ボタン：受付終了時
========================== */

.p-postCtaButton--seminarEntry.is-disabled {
  pointer-events: none;
  cursor: default;
  background: #777;
  border-color: #777 !important;
  color: #fff !important;
  box-shadow: none;
}

.p-postCtaButton--seminarEntry.is-disabled::before,
.p-postCtaButton--seminarEntry.is-disabled::after {
  display: none;
  content: none;
}

.p-postCtaButton--seminarEntry.is-disabled:hover {
  color: #fff !important;
  opacity: 1 !important;
  transform: none;
}

/* ==========================
  セミナーカード：追加要素
========================== */

.p-seminarCard__figure {
  position: relative;
}

.p-seminarCard.is-ended .p-seminarCard__figure img {
  filter: grayscale(100%) opacity(60%);
}

.p-seminarCard__status {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 64px;
  padding: 4px 10px;
  background-color: #ffd60b;
  color: #111;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
}

.p-seminarCard__status.is-ended {
  background-color: #666;
  color: #fff;
}

.p-seminarCard__category {
  display: inline-flex;
  width: fit-content;
  margin: 0 0 12px;
  padding: 4px 10px;
  background-color: #fff8d9;
  color: #806300;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
}

.p-seminarCard__metaList {
  display: grid;
  gap: 6px;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}

.p-seminarCard__metaItem {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
}

.p-seminarCard__metaIcon {
  flex-shrink: 0;
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.p-seminarCard__metaItem--date .p-seminarCard__metaIcon {
  background-image: url("../../../images/time-icon.svg");
}

.p-seminarCard__metaItem--location .p-seminarCard__metaIcon {
  background-image: url("../../../images/price-icon.svg");
}

.p-seminarCard__time {
  margin-left: 0.75em;
}

.p-seminarCard__title a {
  color: inherit;
  text-decoration: none;
}

.p-seminarCard__title a:hover {
  opacity: 0.75;
}
.p-seminarArchiveSection {
  padding-block: 0;
  padding-bottom: 80px;
}
.p-seminarArchiveList {
  margin: 0;
}
.p-seminarCard__footer {
  margin-top: 1em;
}

/* ==============================
  メンバー詳細
============================== */

.p-memberSingleContents {
  max-width: 1248px;
  margin-inline: auto;
}

.p-memberSingleContents__layout {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) 2fr;
  gap: clamp(32px, 5vw, 72px);
  align-items: start;
}

.p-memberSingleContents__figure {
  margin: 0;
}

.p-memberSingleContents__image {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border-lightGray);
}

.p-memberSingleHeader {
  margin-bottom: 32px;
}

.p-memberSingleContent > *:first-child {
  margin-top: 0;
}

.p-memberSingleHeader__position {
  margin: 0 0 12px;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.6;
  color: #6e5600;
}

.p-memberSingleHeader__title {
  margin: 0;
}

.p-memberSingleHeader__nameRow {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 12px 20px;
}

.p-memberSingleHeader__nameEn {
  margin: 0;
  color: var(--color-text-gray);
  font-size: 1.375rem;
  line-height: 1.6;
  letter-spacing: 0.04em;
}

.p-memberSingleHeader__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}

.p-memberSingleHeader__tag {
  color: #767676;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
}

@media screen and (max-width: 767px) {
  .p-memberSingleContents__layout {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .p-memberSingleContents__thumb {
    max-width: 420px;
    margin-inline: auto;
  }
}

/* ==============================
  メンバー詳細：プロフィールテーブル
============================== */

.p-memberSingleContent .wp-block-table.member-profile-table {
  margin-block: 32px;
  overflow-x: visible;
}

.p-memberSingleContent .wp-block-table.member-profile-table table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.p-memberSingleContent .wp-block-table.member-profile-table tr {
  border-bottom: 1px solid #333;
}

.p-memberSingleContent .wp-block-table.member-profile-table th,
.p-memberSingleContent .wp-block-table.member-profile-table td {
  padding: 18px 0;
  border: none;
  vertical-align: top;
  line-height: 1.8;
}

.p-memberSingleContent .wp-block-table.member-profile-table th:first-child,
.p-memberSingleContent .wp-block-table.member-profile-table td:first-child {
  width: 6.5em;
  padding-right: 24px;
  font-weight: 700;
  white-space: nowrap;
}

.p-memberSingleContent .wp-block-table.member-profile-table th:last-child,
.p-memberSingleContent .wp-block-table.member-profile-table td:last-child {
  word-break: break-word;
  overflow-wrap: anywhere;
}

/* ボタン */

.p-postContent.entry-content .p-memberNext {
  display: flex;
  justify-content: center;
  flex-flow: column;
  width: fit-content;
  margin-inline: auto;
  margin-top: 0 !important;
}

.p-memberNext a {
  margin: 1.5em 0;
}

/* ==============================
  メンバー詳細：ボタン
============================== */

.p-memberSingleButtons {
  display: grid;
  gap: 2rem;
  width: fit-content;
  margin-top: 40px;
}

@media screen and (max-width: 767px) {
  .p-memberSingleButtons {
    width: 100%;
  }

  .p-memberSingleButtons .c-buttonPrimary {
    width: 100%;
  }
}

/* memberアーカイブ */
.p-memberArchiveHeader {
  background: #000;
  padding: 150px 56px;
}

@media screen and (max-width: 767px) {
  .p-memberArchiveHeader {
    padding: 50px 24px;
  }
  .p-memberArchiveSection {
    padding-block: 80px 96px;
    padding-inline: 0;
  }
}
