@charset "UTF-8";

/* ==========================================================================
   共通CSS（common.css）
   全ページに読み込まれる。functions.php の wp_enqueue_scripts でエンキュー。
   ========================================================================== */

/* TOPページのSEO用h1（見た目は変えず、視覚的には非表示。読み上げ・クローラーには渡す） */
#site_wrap > h1.title {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ==========================================================================
   グローバル設定
   ========================================================================== */

html {
  scroll-behavior: smooth; /* ページ内リンクをスムーズスクロール */
}

.c-comment__form-submit:hover,
.p-pagetop a,
.slick-dots li.slick-active button,
.slick-dots li:hover button {
  background-color: #313131 !important;
}

/* パンくずリストの文字色・太さ（区切り矢印含む。
   functions/head.php のインライン content_color / responsive.css より詳細度を上げて上書き） */
html .p-breadcrumb,
html .p-breadcrumb a,
.p-breadcrumb .p-breadcrumb__item + .p-breadcrumb__item::before {
  color: #8a6f45;
}
.p-breadcrumb__inner,
.p-breadcrumb__inner a,
.p-breadcrumb__item {
  font-weight: 500;
}

/* PCロゴ（ヘッダーなし版） */
.p-site-logo--pc {
  padding: 20px 0;
  text-align: center;
  margin-bottom: 25px;
}
.p-site-logo--pc img {
  height: auto;
  max-height: 90px;
  width: auto;
}
@media (max-width: 767px) {
  .p-site-logo--pc {
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: 9000;
    padding: 0;
    min-height: 110px;
    display: flex;
    align-items: center;
  }
  .p-site-logo--pc img {
    max-height: 65px;
  }
}
.p-site-logo--text a {
  font-size: 20px;
  font-weight: bold;
  color: #1a1a1a;
  text-decoration: none;
}

/* SPヘッダー分コンテンツを押し下げ（固定ヘッダーバー body::before / ロゴの min-height と揃える） */
@media (max-width: 767px) {
  .l-main {
    padding-top: 110px;
  }
}

/* SP固定ヘッダー背景バー */
@media (max-width: 767px) {
  body::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    min-height: 110px;
    background: #fff;
    z-index: 8999;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
  }
}

/* ハンバーガー（SP固定・右寄せ） */
.p-hamburger {
  display: none;
}
@media (max-width: 767px) {
  .p-hamburger {
    display: block;
    position: fixed;
    top: 25px;
    right: 12px;
    z-index: 9000;
    width: 45px;
    height: 45px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
  }
  .p-hamburger::before {
    content: "";
    background: url(../img/icon-menu.svg) no-repeat center center;
    width: 35px;
    height: 35px;
    display: block;
  }
}

/* カテゴリモーダル（全ページ共通） */
.p-category-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  visibility: hidden;
  opacity: 0;
  transition:
    opacity 0.25s,
    visibility 0.25s;
}
.p-category-modal.is-open {
  visibility: visible;
  opacity: 1;
}
.p-category-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  cursor: pointer;
}
.p-category-modal__inner {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.3s ease;
}
.p-category-modal.is-open .p-category-modal__inner {
  transform: translateX(0);
}
.p-category-modal__header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  border-bottom: 1px solid #eee;
  flex-shrink: 0;
}
.p-category-modal__logo img {
  height: 60px;
  width: auto;
  display: block;
}
.p-category-modal__close {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  font-size: 40px;
  font-weight: 300;
  cursor: pointer;
  color: #333;
  padding: 4px 8px;
  line-height: 1;
}
.p-category-modal__body {
  flex: 1;
  overflow-y: auto;
  padding: 20px 16px;
  -webkit-overflow-scrolling: touch;
}
.p-category-modal__footer {
  flex-shrink: 0;
  background: #1a1a1a;
}
.p-category-modal__footer-close {
  display: block;
  width: 100%;
  padding: 16px;
  background: #313131;
  border: none;
  color: #fff;
  font-size: 14px;
  letter-spacing: 0;
  cursor: pointer;
  text-align: center;
}

/* テキストカラー上書き（パンくずは別色にするため除外。下の html .p-breadcrumb 参照） */
.p-entry__date,
.p-entry__body,
.p-author__desc {
  color: #333 !important;
}

/* 記事本文 ul をカスタム箇条書きに */
.p-entry__body ul {
  list-style: none !important;
}
.p-entry__body ul li::before {
  content: "●";
  font-size: 0.7em;
  margin-right: 4px;
  vertical-align: middle;
  line-height: 1;
}

/* 記事本文（Gutenbergの見出し）の h2 にだけ下線ボーダー。
   FAQタイトル・ピックアップ見出しなど本文外のh2は対象外 */
.p-entry__body h2:not(.p-entry__faq-title):not(.p-pickup-section__title) {
  padding-bottom: 20px;
  border-bottom: 2px solid #333;
  margin-bottom: 40px;
}

/* 見出しの「直前の段落」だけ下の余白を広げる。段落どうしの間隔（.wp-block-paragraph の
   margin-bottom）とは別に、ここだけで調整（h3 が inline-flex でマージン相殺しないため
   :has() で狙い撃ち）。数値はここ1箇所（SPは下のメディアクエリ） */
.single .p-entry__body .wp-block-paragraph:has(+ h2),
.single .p-entry__body .wp-block-paragraph:has(+ h3) {
  margin-bottom: 40px;
}

/* 記事本文の見出し（h3）はテキストの左に少し長めの縦線。
   プロフィールボックスの見出し（.p-author__title）は対象外 */
.p-entry__body h3:not(.p-author__title) {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.p-entry__body h3:not(.p-author__title)::before {
  content: "";
  display: inline-block;
  flex-shrink: 0;
  width: 2px;
  height: 3em;
  background: #333;
}

/* 記事本文内の画像（Gutenbergの画像ブロック）はアイキャッチと同じ比率（770:423）に統一。
   物件バナー等ショートコードで挿入された画像（.wp-block-image で囲まれない）は対象外 */
.p-entry__body figure.wp-block-image img {
  width: 100%;
  aspect-ratio: 770 / 423;
  object-fit: cover;
}
/* 本文画像の上下余白（TOPのアイキャッチ以外は全部ここで共通調整） */
.p-entry__body figure.wp-block-image {
  margin-top: 0;
  margin-bottom: 40px;
}

/* ==========================================================================
   記事ページ（single.php）
   ========================================================================== */

/* タイトルボックス（テキストを画像の上に配置・右寄せ） */
.p-entry__title-box {
  margin-bottom: 50px;
}
.p-entry__title-inner {
  padding: 0 0 55px;
  text-align: left;
}
.p-entry__title-box .p-entry__title {
  font-size: 38px;
  line-height: 1.5;
  margin: 0;
  padding: 0;
  color: #333;
  font-weight: bold;
}
/* TOPのアイキャッチ画像の上下余白は個別調整：
   上（タイトルテキストとの間）＝ .p-entry__title-inner の padding-bottom
   下（画像〜本文の間）      ＝ .p-entry__title-box の margin-bottom */
.p-entry__title-bg {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 770 / 423;
  object-fit: cover;
}
@media (max-width: 767px) {
  /* SPのfont-sizeは responsive.css の .p-entry__title（!important）が唯一の指定元。
     ここでは重複させない */
  .p-entry__title-inner {
    padding: 0 0 20px;
  }
  /* アイキャッチ画像だけ画面幅いっぱいに（テキストはコンテンツ幅のまま）。比率はSPだけ 400:220 */
  .p-entry__title-bg {
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    aspect-ratio: 400 / 220;
  }

  .p-entry__title-box {
    margin-bottom: 20px;
  }
}

/* タイトル下メタ（カテゴリ ＋ 公開日/更新日）。タイトルの下・左寄せ */
.p-entry__head-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 8px 10px;
  margin-top: 14px;
  font-size: 13px;
  color: #333;
}
.p-entry__head-category {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  flex-shrink: 1;
  min-width: 0;
}
.p-entry__head-category span {
  background: #f4f1ea;
  color: #333;
  padding: 4px 10px;
  font-size: 13px;
  display: inline-block;
  transition:
    background 0.2s,
    color 0.2s;
}
.p-entry__head-category span a {
  color: #333;
  text-decoration: none;
  font-weight: bold;
}
.p-entry__head-category span:hover {
  background: #000;
  color: #fff;
}
.p-entry__head-category span:hover a {
  color: #fff;
  opacity: 1;
}
.p-entry__head-meta-right {
  display: flex;
  align-items: center;
  gap: 12px;
  font-weight: 500;
  white-space: nowrap;
  text-decoration: none;
  color: inherit;
}

/* メタのアイコン（公開日・更新日）。ランキングと同じ画像を使用 */
.p-entry__head-date::before,
.p-entry__head-modified::before {
  content: "";
  display: inline-block;
  flex-shrink: 0;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  vertical-align: middle;
  margin-right: 4px;
  filter: brightness(0);
  opacity: 0.85;
}
.p-entry__head-date::before {
  width: 15px;
  height: 13px;
  background-image: url("../img/public_icon.png");
}
.p-entry__head-modified::before {
  width: 13px;
  height: 13px;
  background-image: url("../img/update_icon.png");
}
.p-entry__head-author::before {
  display: none;
}
/* 著者名はタイトル下メタでは非表示（下部の著者ボックスに表示されるため） */
.p-entry__head-author {
  display: none;
}

/* リード文 */
.p-entry__lead {
  font-size: 16px;
  line-height: 2;
  color: #333;
  margin-bottom: 50px;
  font-weight: 500;
}

/* 目次（TOC） */
.p-entry__toc {
  margin-bottom: 50px;
  border: 1px solid #f4f1ea;
}
.p-entry__toc-header {
  width: 100%;
  border: none;
  font: inherit;
  text-align: left;
  cursor: pointer;
  background: #f4f1ea;
  color: #333;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 15px 16px;
  transition: background 0.2s ease;
}
.p-entry__toc-header:hover {
  background: #ede7db;
}
.p-entry__toc-label {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0;
}
.p-entry__toc-toggle {
  position: relative;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
}
.p-entry__toc-toggle::before,
.p-entry__toc-toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 2px;
  background: #333;
  transform: translate(-50%, -50%);
  transition: transform 0.35s ease;
}
/* 展開時は縦棒を横棒に重ねて「−」、折りたたみ時は 90°回転して「＋」 */
.p-entry__toc.is-collapsed .p-entry__toc-toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
/* 開閉は grid-template-rows のアニメーションで滑らかに */
.p-entry__toc-body {
  display: grid;
  grid-template-rows: 1fr;
  transition: grid-template-rows 0.35s ease;
}
.p-entry__toc-inner {
  min-height: 0;
  overflow: hidden;
  padding: 20px 30px;
  transition: padding 0.35s ease;
}
.p-entry__toc.is-collapsed .p-entry__toc-body {
  grid-template-rows: 0fr;
}
.p-entry__toc.is-collapsed .p-entry__toc-inner {
  padding-top: 0;
  padding-bottom: 0;
}
.p-entry__toc-list {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: none;
}
.p-entry__toc-h2 {
  margin-bottom: 0;
}
.p-entry__toc-h2 > a {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  font-size: 16px;
  color: #333;
  text-decoration: none;
  line-height: 1.6;
  padding: 12px 0;
  border-top: 1px solid #ece8e1;
}
.p-entry__toc-h2 > a:hover {
  text-decoration: none;
}
/* 一番上の行にだけは区切り線を付けない */
.p-entry__toc-list > li:first-child > a {
  border-top: none;
}
.p-entry__toc-sub {
  margin: 0 0 0 16px;
  padding: 0;
  list-style: none;
}
.p-entry__toc-h3 {
  margin-bottom: 0;
}
.p-entry__toc-h3 a {
  display: flex;
  align-items: flex-start;
  gap: 4px;
  font-size: 13px;
  color: #313131;
  text-decoration: none;
  line-height: 1.6;
  padding: 14px 0;
  border-top: 1px solid #ece8e1;
}
.p-entry__toc-h3 a:hover {
  text-decoration: none;
}
.p-entry__toc-text {
  flex: 1;
  font-weight: bold;
}
/* 4つ目以降のH2（初期非表示 → JSで展開） */
.p-entry__toc-h2--extra {
  display: none;
}
.p-entry__toc-more {
  margin-top: 30px;
  text-align: center;
}
.p-entry__toc-more-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #333;
  border: 1px solid #333;
  color: #fff;
  padding: 12px 50px;
  font-size: 14px;
  letter-spacing: 0;
  cursor: pointer;
  transition:
    background 0.2s,
    color 0.2s;
  border-radius: 0;
  font-weight: bold;
}
.p-entry__toc-more-btn:hover {
  background: #000;
  color: #fff;
}
.p-entry__toc-more-btn span::before {
  content: "+";
  display: inline-block;
  font-size: 18px;
  line-height: 1;
  font-weight: bold;
}

/* よくある質問（FAQ） */
.p-entry__faq {
  margin: 40px 0 75px;
}
.p-entry__faq-title {
  text-align: center;
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 20px;
  line-height: 1.5;
}
.p-entry__faq-item {
  margin-bottom: 9px;
}
.p-entry__faq-q {
  background: #ece8e1;
  color: #333;
  padding: 20px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  font-size: 16px;
  line-height: 1.6;
  font-weight: normal;
}
.p-entry__faq-q-inner {
  display: flex;
  align-items: flex-start;
  flex: 1;
  min-width: 0;
}
.p-entry__faq-q-label {
  font-weight: bold;
  flex-shrink: 0;
  margin-right: 4px;
  font-size: 18px;
}
.p-entry__faq-q-text {
  flex: 1;
}
.p-entry__faq-icon {
  position: relative;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-left: 16px;
}
.p-entry__faq-icon::before,
.p-entry__faq-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: #333;
  transform: translate(-50%, -50%);
  transition: transform 0.3s;
}
.p-entry__faq-icon::before {
  width: 100%;
  height: 2px;
}
.p-entry__faq-icon::after {
  width: 2px;
  height: 100%;
}
/* 開いたときは縦線を90度回して横線に重ね、マイナスに見せる */
.p-entry__faq-item.is-open .p-entry__faq-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
/* 回答パネルは grid-template-rows で滑らかに開閉（他のアコーディオンと同じ方式） */
.p-entry__faq-a {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s ease;
  font-size: 14px;
  line-height: 1.8;
  color: #333;
}
.p-entry__faq-item.is-open .p-entry__faq-a {
  grid-template-rows: 1fr;
}
/* A. と本文をフレックスで並べ、長文時に A. の下にテキストが回り込まないようにする */
.p-entry__faq-a-inner {
  min-height: 0;
  overflow: hidden;
  display: flex;
  align-items: flex-start;
  padding: 0 15px;
  transition: padding 0.3s ease;
}
.p-entry__faq-item.is-open .p-entry__faq-a-inner {
  padding: 15px;
}
.p-entry__faq-a-label {
  flex-shrink: 0;
  margin-right: 4px;
  font-weight: bold;
  font-size: 18px;
}
.p-entry__faq-a p {
  flex: 1;
  margin: 0;
}

/* ピックアップ記事（記事ページ下部・3カラムグリッド） */
.p-pickup-section {
  margin: 0 0 110px;
}
.p-pickup-section__inner {
  max-width: 1170px;
  margin: 0 auto;
}
h2.p-pickup-section__title {
  text-align: center;
  font-size: 25px;
  font-weight: bold;
  margin-bottom: 40px;
}
.p-pickup-section__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, auto);
  grid-auto-flow: column;
  gap: 30px 20px;
}
.p-pickup-section__item {
  width: 100%;
}
.p-pickup-section__item a {
  display: block;
  text-decoration: none;
  color: #1a1a1a;
}
.p-pickup-section__thumb {
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: #ddd;
  margin-bottom: 5px;
}
.p-pickup-section__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-pickup-section .p-pickup-section__item-title {
  font-size: 13px;
  line-height: 1.6;
  margin: 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
}

/* 引用ショートコード（[quote]） */
.p-entry__body .p-quote p {
  line-height: 1.9;
  margin-bottom: 0;
}
.p-quote {
  margin: 32px 0 40px;
  padding: 32px 15px 0;
  position: relative;
  border-left: 1px solid #666666;
}
.p-quote::before {
  content: "\201C";
  font-size: 50px;
  line-height: 1;
  color: #666666;
  position: absolute;
  top: 8px;
  left: 16px;
  font-family: Georgia, serif;
}
.p-quote::after {
  content: "\201D";
  font-size: 50px;
  line-height: 1;
  color: #666;
  position: absolute;
  bottom: 5px;
  right: 16px;
  font-family: Georgia, serif;
}
.p-quote__body {
  font-size: 16px;
  line-height: 1.5;
  margin-bottom: 50px;
  font-weight: 500;
}
.p-quote__source,
.p-entry__body .p-quote__source {
  text-align: right;
  font-size: 14px;
  margin-top: 12px;
  margin-bottom: 0;
  font-weight: 500;
}

/* 関連記事ショートコード（[related_posts]） */
.p-entry__body .p-related-posts p {
  line-height: 2;
  margin-bottom: 5px;
  font-size: 13px;
  font-weight: bold;
}
.p-related-posts {
  position: relative;
  margin: 70px 0 40px;
  border-bottom: 1px solid #d9d9d9;
  border-top: 1px solid #d9d9d9;
}
.p-related-posts__label {
  position: absolute;
  top: -33px;
  left: -2px;
  background: #ece8e1;
  font-size: 13px;
  font-weight: bold;
  padding: 10px 30px;
  line-height: 1;
}
.p-related-posts__item {
  border: none;
}
.p-related-posts__link {
  display: flex;
  align-items: stretch;
  text-decoration: none;
  padding: 15px 30px;
  gap: 20px;
  transition: opacity 0.2s;
}
.p-related-posts__link:hover {
  opacity: 0.4;
}
.p-related-posts__thumbnail img {
  width: 223px;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
}
.p-related-posts__body {
  flex: 1;
}
.p-related-posts__title {
  font-size: 14px;
  font-weight: bold;
  line-height: 1.6;
  margin-bottom: 8px;
  color: #1a1a1a;
}
.p-related-posts__excerpt {
  font-size: 14px;
  line-height: 1.7;
  color: #6d6d6d;
  flex: 1;
  margin-bottom: 8px;
}
.p-related-posts__more {
  display: block;
  text-align: right;
  font-size: 13px;
  font-weight: 500;
  color: #333;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.p-related-posts__link:hover .p-related-posts__more {
  text-decoration: none;
}

/* 監修者スピーチバブル */
.p-supervisor-bubble {
  border: 1px solid #ddd;
  border-radius: 4px;
  padding: 20px;
  margin: 24px 0;
  background: #fff;
}
.p-supervisor-bubble__info {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid #eee;
}
.p-supervisor-bubble__avatar {
  flex-shrink: 0;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  overflow: hidden;
}
.p-supervisor-bubble__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-supervisor-bubble__meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.p-supervisor-bubble__label {
  font-size: 13px;
  color: #888;
}
.p-supervisor-bubble__name {
  font-size: 15px;
  font-weight: bold;
  color: #1a1a1a;
}
.p-supervisor-bubble__title {
  font-size: 13px;
  color: #666;
}
.p-supervisor-bubble__speech {
  font-size: 14px;
  line-height: 1.8;
  color: #333;
}

/* 前後記事ナビゲーション */
.p-entry__nav.c-entry-nav {
  list-style: none;
  padding: 0;
  display: flex;
  margin-bottom: 80px;
}
.p-entry__nav .c-entry-nav__item {
  border-top: none;
  flex: 1;
}
.p-entry__nav .c-entry-nav__item--prev {
  border-right: none;
  position: relative;
}
.p-entry__nav .c-entry-nav__item--prev::after {
  content: "";
  position: absolute;
  right: 0;
  top: 30px;
  bottom: 30px;
  width: 1px;
  background: #000;
}
.p-entry__nav .c-entry-nav__item--empty {
  border: none;
}
.p-entry__nav .c-entry-nav__item a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 30px 16px;
  height: auto;
  text-decoration: none;
  color: #333;
  font-size: 13px;
  line-height: 1.5;
  position: static;
}
.p-entry__nav .c-entry-nav__item--prev a {
  padding-left: 0;
}
.p-entry__nav .c-entry-nav__item--next a {
  padding-right: 0;
}
.p-entry__nav .c-entry-nav__item a span {
  flex: 1;
}
.p-entry__nav .c-entry-nav__item--prev a::before,
.p-entry__nav .c-entry-nav__item--next a::after {
  position: static;
  width: 25px;
  height: 25px;
  min-width: 25px;
  background: #1a1a1a;
  border-radius: 50%;
  color: #fff;
  font-family: "design_plus";
  font-size: 15px;
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.p-entry__nav .c-entry-nav__item--prev a::before {
  content: "\e90f";
}

.p-entry__nav .c-entry-nav__item--next a::after {
  content: "\e910";
}

.p-entry__tag {
  color: #8a6f45 !important;
  font-weight: 500;
}
.p-entry__tag:hover {
  text-decoration: none;
  opacity: 0.4;
}

/* テーブル */
.p-entry__body table {
  margin-bottom: 0;
}
.p-entry__body p.p-table-scroll-hint {
  display: none;
}
.p-entry__body .wp-block-table {
  margin-bottom: 40px;
}
.p-entry__body .wp-block-table table {
  width: 78%;
}
.p-entry__body tbody td,
.p-entry__body tbody th {
  background: #fff;
  border-color: #ece8e1;
}
.p-entry__body .wp-block-table thead {
  border-bottom: none;
}
.p-entry__body thead th {
  background: #f4f1ea;
  color: #1a1a1a;
  border-color: #ece8e1;
  font-weight: bold;
  font-size: 15px;
}
.p-entry__body tbody td {
  font-weight: 500;
}
/* 行ヘッダーあり（エディタで .row-header クラスを付与） */
.p-entry__body .wp-block-table.row-header table {
  table-layout: fixed;
  width: 78%;
}
.p-entry__body .wp-block-table.row-header thead tr th {
  background: #f4f1ea !important;
  color: #1a1a1a !important;
  border-color: #ece8e1 !important;
}
.p-entry__body .wp-block-table.row-header thead tr th:first-child {
  background: #fff !important;
  border-top-color: transparent !important;
  border-left-color: transparent !important;
  border-bottom-color: #ece8e1 !important;
  border-right-color: #ece8e1 !important;
  width: 27%;
}
.p-entry__body .wp-block-table.row-header tbody tr td,
.p-entry__body .wp-block-table.row-header tbody tr th {
  background: #fff !important;
}
.p-entry__body .wp-block-table.row-header tbody tr td:first-child {
  width: 25%;
}

/* カードリンクショートコード */
.cardlink_more {
  display: table;
  margin-left: auto;
  font-size: 14px;
  color: #333;
  border-bottom: 1px solid #000;
}
.cardlink_more::after {
  content: ">";
  margin-left: 4px;
}
.cardlink:hover .cardlink_more {
  border-bottom-color: transparent;
}

/* ==========================================================================
   記事一覧（index.php / カテゴリ / タグ / 検索 / アーカイブ）
   ========================================================================== */

/* カテゴリ・投稿者アーカイブ一覧：カード分割（サムネイル / 本文 / メタ）
   TOPページのランキング（.p-ranking__item）と同じ考え方で、
   カテゴリ・投稿者を実リンクにするため記事全体を1つの<a>で覆わず分割する */
.p-blog-list__item--archive {
  display: grid;
  grid-template-columns: 32.4136% 1fr;
  column-gap: 3.0696%;
  align-items: start;
}
.p-blog-list__item--archive .p-blog-list__item-thumb-link,
.p-blog-list__item--archive .p-blog-list__item-body-link {
  display: block;
}
.p-blog-list__item--archive .p-blog-list__item-thumb-link {
  grid-column: 1;
}
/* サムネイルは 200×150（4:3） */
.p-blog-list__item--archive .p-blog-list__item-thumbnail_inner {
  padding-top: 75%;
}
/* 右カラム：カテゴリ → タイトル → メタ を上寄せで縦積み（TOPの人気記事ランキングと同じ） */
.p-blog-list__item-col {
  grid-column: 2;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.p-blog-list__item-col > .p-blog-list__item-category {
  margin-bottom: 10px;
}
.p-blog-list__item-col .p-blog-list__item-body-link {
  min-width: 0;
}
.p-blog-list__item--archive .p-blog-list__item-body-link:hover {
  opacity: 0.4;
}
.p-blog-list__item--archive .p-blog-list__item-thumb-link:hover {
  opacity: 0.6;
}

/* 記事メタ（カテゴリ・日付・更新日。TOPの人気記事ランキングと同じ見た目・左寄せ） */
.p-blog-list__item-meta.p-article__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  align-self: stretch;
  margin-top: 12px;
  gap: 8px 14px;
}
.p-article__category {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  flex-shrink: 1;
  min-width: 0;
}
.p-article__category span,
.p-article__category a {
  background: #f4f1ea;
  color: #666666;
  border-radius: 0;
  padding: 5px 8px;
  font-size: 13px;
  font-weight: bold;
  display: inline-block;
  text-decoration: none;
  transition:
    background 0.2s,
    color 0.2s;
}
.p-article__category a:hover {
  background: #000;
  color: #fff;
  opacity: 1;
}
.p-article__meta-right {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  white-space: nowrap;
  text-decoration: none;
  color: inherit;
}

/* 記事メタ：アイコン（公開日・更新日）。ランキングと同じ画像を使用 */
.p-article__date::before,
.p-article__modified::before {
  content: "";
  display: inline-block;
  flex-shrink: 0;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  vertical-align: middle;
  margin-right: 4px;
  filter: brightness(0);
  opacity: 0.85;
}
.p-article__date::before {
  width: 15px;
  height: 13px;
  background-image: url("../img/public_icon.png");
}
.p-article__modified::before {
  width: 13px;
  height: 13px;
  background-image: url("../img/update_icon.png");
}

/* 「さらに読み込む」ボタン（7件目以降を初期非表示 → JSで展開） */
.p-blog-list__extra {
  display: none;
}
.p-load-more {
  text-align: center;
  margin-top: 30px;
}
.p-load-more__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #333;
  border: 1px solid #333;
  color: #fff;
  padding: 12px 50px;
  font-size: 16px;
  letter-spacing: 0;
  cursor: pointer;
  transition:
    background 0.2s,
    color 0.2s;
  border-radius: 0;
  font-weight: 500;
}
.p-load-more__btn:hover {
  background: #000;
  color: #fff;
}
.p-load-more__btn span::before {
  content: "+";
  display: inline-block;
  font-size: 20px;
  line-height: 1;
  font-weight: bold;
}

/* アーカイブ/カテゴリ/検索ページのタイトル */
.p-archive-title {
  font-size: 25px;
  font-weight: bold;
  margin: 0 0 40px;
  text-align: left;
}

/* ==========================================================================
   執筆者・監修者（author_profile CPT）共通
   single-author_profile.php / page-authors.php / single.php で使用

   .p-author__box は下記2箇所から出力されており、今は同じ見た目を共有：
   - 記事下に自動表示（single.php）… 親に .p-author__boxes が付く
     → 個別に変えたい場合は「.p-author__boxes .p-author__box」で上書き
   - [supervisor_bubble] ショートコード（本文中に手動挿入・監修者のみ）
     → 個別に変えたい場合は「.p-author__box--bubble」で上書き
   ========================================================================== */

/* [supervisor_bubble]：PCは従来レイアウト（サムネfloat左＋情報カラム）。
   .p-author__desc / .p-social-nav は .p-author__info の外に出したので、
   PCでは情報カラムと同じ margin-left を付けて見た目を元の位置に戻す。
   縦積み（写真＋名前/役職 → 説明フル幅）は下のSP用ブロックだけで行う。 */
.p-author__box--bubble .p-author__desc,
.p-author__box--bubble .p-social-nav {
  margin-left: 110px;
}

/* プロフィール写真サイズ：上（本文中の[supervisor_bubble]）と下（記事下の自動表示）で
   個別に調整できるよう分離。値は現状と同じ（見た目は変わらない）。 */
.p-author__box--bubble .p-author__thumbnail {
  width: 90px;
  height: 90px;
}
.p-author__boxes .p-author__box .p-author__thumbnail {
  width: 80px;
  height: 80px;
}
@media (max-width: 767px) {
  .p-article__category span,
  .p-article__category a {
    font-size: 13px;
  }
  /* SPは従来どおり（下＝親幅の20%。上＝既存の 50px ルールが有効） */
  .p-author__boxes .p-author__box .p-author__thumbnail {
    width: 19%;
    height: 100%;
  }
}

/* 記事下の執筆者/監修者ボックス：項目の「間」だけ区切り線（先頭・末尾は無し。件数可変対応） */
.p-author__boxes .p-author__box + .p-author__box {
  border-top: 1px solid #ece8e1;
  padding-top: 20px;
}

/* ロールラベル（執筆者 / 監修者） */
.p-author__role {
  display: inline-block;
  font-weight: bold;
  color: #333;
  margin-right: 8px;
}
.p-author__role::before {
  content: "";
  display: inline-block;
  width: 15px;
  height: 15px;
  background-image: url("../img/pen_icon.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  vertical-align: middle;
  margin-right: 4px;
}
.p-author__role--supervisor::before {
  background-image: url("../img/Supervision.png");
}

/* 肩書 */
.p-author__position {
  font-size: 14px;
  color: #333;
  margin: 2px 0 8px;
  line-height: 1.5;
  font-weight: 500;
}
.p-author__box:not(.is-supervisor) .p-author__position {
  display: none;
}

/* 保有資格 */
.p-author__qualification {
  font-size: 14px;
  color: #333;
  margin-top: 8px;
}

/* ==========================================================================
   執筆者・監修者 詳細ページ（single-author_profile.php）
   ========================================================================== */

.p-cat-section,
.p-tag-section {
  display: none;
}
.single .p-cat-section,
.single .p-tag-section {
  display: block;
}

/* SP：TOP以外はカテゴリ・タグセクションを表示 */
@media (max-width: 767px) {
  .category .p-cat-section,
  .category .p-tag-section,
  .tag .p-cat-section,
  .tag .p-tag-section,
  .archive .p-cat-section,
  .archive .p-tag-section,
  .search .p-cat-section,
  .search .p-tag-section,
  .page .p-cat-section,
  .page .p-tag-section,
  .blog .p-cat-section,
  .blog .p-tag-section {
    display: block;
  }
}

/* プロフィールボックス見出し */
.p-author__profile-heading {
  flex-basis: 100%;
  width: 100%;
  font-size: 25px;
  font-weight: bold;
  text-align: center;
  margin: 0 0 20px;
  line-height: 2;
}

/* プロフィールボックス（SP: フレックス折り返し） */
.p-author__box--profile {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0 20px;
  padding: 20px 10px;
  float: none;
}
.p-author__box--profile .p-author__thumbnail {
  flex-shrink: 0;
  float: none;
  margin: 0;
  width: 100px;
  height: 100px;
}
.p-author__box--profile .p-author__info {
  flex: 1;
  min-width: 0;
  margin-left: 0;
}
.p-author__box--profile .p-author__desc,
.p-author__box--profile .p-author__qualification {
  flex-basis: 100%;
  width: 100%;
  margin-left: 120px;
  margin-top: 16px;
  display: block;
  -webkit-line-clamp: unset;
  line-clamp: unset;
  overflow: visible;
}
.p-author__box--profile .p-author__qualification {
  display: flex;
  flex-wrap: wrap;
  margin-top: 15px;
}
/* 保有資格を2列表示 */
.p-author__box--profile .p-author__qualification-item {
  width: 50%;
}
.p-author__box--profile .p-author__site {
  margin-top: 6px;
  font-size: 15px;
  line-height: 1.6;
}
.p-author__box--profile .p-author__site a {
  color: inherit;
  text-decoration: none;
  word-break: break-all;
}

/* プロフィールボックス（PC: CSSグリッド。画像100px固定・右側に情報縦並び） */
@media (min-width: 768px) {
  .p-author__box--profile {
    display: grid;
    grid-template-columns: 100px 1fr;
    column-gap: 20px;
  }
  .p-author__box--profile .p-author__profile-heading {
    grid-column: 1 / -1;
    grid-row: 1;
  }
  .p-author__box--profile .p-author__thumbnail {
    grid-column: 1;
    grid-row: 2 / 5;
    align-self: start;
  }
  .p-author__box--profile .p-author__info {
    grid-column: 2;
    grid-row: 2;
  }
  .p-author__box--profile .p-author__desc {
    grid-column: 2;
    grid-row: 3;
    width: auto;
    margin-left: 0;
    margin-top: 12px;
  }
  .p-author__box--profile .p-author__qualification {
    grid-column: 2;
    grid-row: 4;
    width: auto;
    margin-left: 0;
  }
}

/* 執筆者詳細：記事一覧（記事一覧ページ .p-blog-list__item--archive と同じレイアウト） */
.p-author-article {
  margin-bottom: 50px;
  display: grid;
  grid-template-columns: 260px 1fr;
  column-gap: 24px;
  align-items: start;
}
.p-author-article--hidden {
  display: none; /* 初期7件超分。JSで展開 */
}
.p-author-article__thumb-link,
.p-author-article__body-link {
  display: block;
  text-decoration: none;
  color: inherit;
}
.p-author-article__thumb-link {
  grid-column: 1;
}
.p-author-article__thumb-link:hover {
  opacity: 0.6;
}
/* 右カラム：カテゴリ → タイトル → メタ を上寄せで縦積み */
.p-author-article__col {
  grid-column: 2;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.p-author-article__col > .p-author-article__category {
  margin-bottom: 10px;
}
.p-author-article__body-link {
  min-width: 0;
}
.p-author-article__body-link:hover {
  opacity: 0.4;
}
.p-author-article__thumb {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
.p-author-article__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-author-article__body {
  min-width: 0;
}
.p-author-article__title {
  font-size: 17px;
  line-height: 1.4;
  margin: 0;
  color: #1a1a1a;
  font-weight: bold;
}
.p-author-article__excerpt {
  font-size: 13px;
  line-height: 2;
  margin-top: 10px;
  color: #a2a2a2;
}
.p-author-article__meta.p-article__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  align-self: stretch;
  margin-top: 12px;
  gap: 8px 14px;
}
.p-author-article__meta .p-article__meta-right {
  flex-shrink: 0;
}

/* ==========================================================================
   執筆者・監修者 一覧ページ（page-authors.php）
   ========================================================================== */

.p-authors-list {
  margin-bottom: 60px;
}
.p-authors-list .p-author__box {
  margin-bottom: 10px;
}

/* ソートボタン（現在HTMLコメントアウト中・未使用） */
.p-authors-sort {
  display: flex;
  gap: 8px;
  margin-bottom: 24px;
}
.p-authors-sort__btn {
  padding: 6px 16px;
  font-size: 13px;
  border: 1px solid #ccc;
  background: #fff;
  cursor: pointer;
  color: #666;
}
.p-authors-sort__btn.is-active {
  border-color: #1a1a1a;
  background: #1a1a1a;
  color: #fff;
}

/* SP表示見出し（.p-headline--sp-only は一覧ページのH1にのみ使用） */
.p-headline--sp-only {
  display: none;
}

/* ==========================================================================
   サイドバー（sidebar.php 経由。サイドバーが表示される全ページ）
   ========================================================================== */

/* フリーワード検索 */
.p-sidebar-search {
  margin-bottom: 35px;
}
.p-sidebar-search__label {
  font-size: 13px;
  font-weight: bold;
  margin-bottom: 8px;
  letter-spacing: 0;
}
.p-sidebar-search__form {
  display: flex;
  align-items: center;
  background: #fff;
  border: 1px solid #ece8e1;
}
.p-sidebar-search__input {
  flex: 1;
  min-width: 0;
  padding: 20px 12px 20px 0;
  font-size: 13px;
  font-weight: bold;
  color: #a19a90;
  border: none;
  outline: none;
  background: transparent;
}
.p-sidebar-search__input::placeholder {
  color: #a19a90;
  font-weight: bold;
  opacity: 1;
}
.p-sidebar-search__btn {
  order: -1;
  flex-shrink: 0;
  width: auto;
  padding: 0 6px 0 12px;
  background: transparent;
  color: #333;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-sidebar-search__btn::before {
  content: "";
  display: inline-block;
  width: 25px;
  height: 25px;
  background-image: url("../img/serch-icon.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.p-sidebar-search__btn:hover {
  color: #333;
}

/* カテゴリアコーディオン（JSで開閉制御・排他） */
.p-sidebar-category {
  margin-bottom: 40px;
}
.p-sidebar-category__label {
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 12px;
  letter-spacing: 0;
  border-bottom: 1px solid #333;
  padding-bottom: 14px;
}

.p-sidebar-category__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.p-sidebar-category__item {
  border-bottom: 1px solid #ece8e1;
}
.p-sidebar-category__parent {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 0;
  min-height: 44px;
  text-decoration: none;
  transition: opacity 0.2s;
}
.p-sidebar-category__parent:hover {
  opacity: 0.6;
}
.p-sidebar-category__parent-name {
  font-size: 13px;
  font-weight: bold;
  color: #333;
}
/* サイドバーのカテゴリアコーディオン（子カテゴリを縦並びで開閉・排他） */
.p-sidebar .p-sidebar-category__head {
  display: flex;
  align-items: stretch;
}
.p-sidebar .p-sidebar-category__head .p-sidebar-category__parent {
  flex: 1;
  min-width: 0;
}
.p-sidebar .p-sidebar-category__toggle {
  flex-shrink: 0;
  width: 44px;
  align-self: stretch;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  position: relative;
}
.p-sidebar .p-sidebar-category__toggle::before,
.p-sidebar .p-sidebar-category__toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 2px;
  background: #333;
  transform: translate(-50%, -50%);
  transition: transform 0.3s ease;
}
.p-sidebar .p-sidebar-category__toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.p-sidebar .p-sidebar-category__item.is-open .p-sidebar-category__toggle::after {
  transform: translate(-50%, -50%) rotate(0deg);
}
.p-sidebar .p-sidebar-category__children {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.p-sidebar .p-sidebar-category__child {
  display: block;
  padding: 13px 0 13px 16px;
  border-top: 1px solid #ece8e1;
  font-size: 13px;
  font-weight: 500;
  color: #666;
  text-decoration: none;
  transition: opacity 0.2s;
}
.p-sidebar .p-sidebar-category__item.is-open .p-sidebar-category__children {
  padding-bottom: 8px;
}
.p-sidebar .p-sidebar-category__child:hover {
  opacity: 0.6;
}

/* カテゴリ検索モーダル内はアコーディオン維持（サイドバーとクラス共有のため .p-category-modal でスコープ） */
.p-category-modal .p-sidebar-category__parent {
  padding: 20px 4px;
}
.p-category-modal .p-sidebar-category__parent:hover {
  opacity: 1;
}

.p-category-modal .p-sidebar-category__toggle {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  align-self: stretch;
  padding: 4px 8px;
  cursor: pointer;
  position: relative;
}
.p-category-modal .p-sidebar-category__toggle::before,
.p-category-modal .p-sidebar-category__toggle::after {
  content: "";
  position: absolute;
  right: 8px;
  top: 50%;
  width: 14px;
  height: 2px;
  background: #333;
  transform: translateY(-50%);
  transition: transform 0.3s ease;
}
.p-category-modal .p-sidebar-category__toggle::after {
  transform: translateY(-50%) rotate(90deg);
}
.p-category-modal .p-sidebar-category__item.is-open .p-sidebar-category__toggle::after {
  transform: translateY(-50%) rotate(0deg);
}
/* 子カテゴリはサイドバーと同じ縦並びテキスト（インデント・区切り線） */
.p-category-modal .p-sidebar-category__children {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.p-category-modal .p-sidebar-category__item.is-open .p-sidebar-category__children {
  padding-bottom: 8px;
}
.p-category-modal .p-sidebar-category__child {
  display: block;
  padding: 13px 0 13px 16px;
  border-top: 1px solid #ece8e1;
  font-size: 13px;
  font-weight: 500;
  color: #333;
  text-decoration: none;
  transition: opacity 0.2s;
}
.p-category-modal .p-sidebar-category__child:hover {
  opacity: 0.6;
}

/* 人気タグ */
.p-sidebar-tags {
  margin-bottom: 40px;
}
.p-sidebar-tags__label {
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 12px;
  letter-spacing: 0;
  border-bottom: 1px solid #333;
  padding-bottom: 12px;
}
.p-sidebar-tags__list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  justify-content: center;
  justify-content: flex-start;
}
.p-sidebar-tags__tag {
  font-size: 13px;
  color: #8a6f45;
  text-decoration: none;
  line-height: 1.8;
  font-weight: bold;
}

.p-sidebar-tags__tag:hover {
  text-decoration: none;
}

/* 人気記事ランキング（記事ページのみ表示。is_single() で制御） */
.p-sidebar-ranking {
  margin-bottom: 32px;
}
.p-sidebar-ranking__title {
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 16px;
  letter-spacing: 0;
  border-bottom: 1px solid #333;
  padding-bottom: 16px;
}
.p-sidebar-ranking__list {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  width: 90%;
}
.p-sidebar-ranking__item {
  margin-bottom: 16px;
}
.p-sidebar-ranking__link {
  display: block;
  text-decoration: none;
  color: #1a1a1a;
}
.p-sidebar-ranking__thumb {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #ddd;
  margin-bottom: 8px;
}
.p-sidebar-ranking__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-sidebar-ranking__num {
  position: absolute;
  top: 0;
  left: 0;
  background: #333;
  color: #fff;
  font-size: 14px;
  font-weight: bold;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.p-sidebar-ranking__cat {
  position: absolute;
  bottom: 0;
  right: 0;
  background: #fff;
  color: #333;
  font-size: 13px;
  padding: 5px 10px;
  font-weight: 500;
}
.p-sidebar-ranking__item-title {
  font-size: 13px;
  line-height: 1.6;
  margin: 0;
  color: #333;
  font-weight: bold;
}
/* 6件超分は初期非表示。JSで展開 */
.p-sidebar-ranking__item--hidden {
  display: none;
}
.p-sidebar-ranking__more {
  display: block;
  margin: 12px auto 0;
  width: 100%;
  text-align: center;
  font-size: 13px;
  color: #fff;
  background: #333;
  margin-top: 12px;
  padding: 15px 8px;
  border: 1px solid #333;
  cursor: pointer;
}
.p-sidebar-ranking__more:hover {
  background: #000;
  color: #fff;
}

/* ==========================================================================
   ページ下部共通パーツ（template-parts/page-bottom.php）
   single / page / index / author / 404 / page-authors / single-author_profile で使用
   ========================================================================== */

/* カテゴリセクション（PC非表示・SP表示は下のメディアクエリで制御） */
.p-cat-section {
  display: none;
}

/* カテゴリーセクション（ページ下部・サイドバーと同デザイン） */
.p-cat-section {
  margin: 40px 0 0;
}
.p-cat-section__inner {
  max-width: 1170px;
  margin: 0 auto;
}
.p-cat-section__label {
  font-size: 25px;
  font-weight: bold;
  text-align: center;
  margin-bottom: 30px;
  letter-spacing: 0;
}
.p-cat-section__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.p-cat-section__item {
  border-bottom: 1px solid #ece8e1;
}
.p-cat-section__parent {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 10px;
  min-height: 44px;
  user-select: none;
}
.p-cat-section__parent-name {
  font-size: 16px;
  font-weight: bold;
  color: #333;
  text-decoration: none;
}
.p-cat-section__toggle {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  align-self: stretch;
  padding: 4px 8px;
  cursor: pointer;
  position: relative;
}
.p-cat-section__toggle::before,
.p-cat-section__toggle::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 15px;
  height: 2px;
  background: #333;
  border-radius: 1px;
  transform: translateY(-50%);
}
.p-cat-section__toggle::after {
  transform: translateY(-50%) rotate(90deg);
  transition: transform 0.3s ease;
}
.p-cat-section__item.is-open .p-cat-section__toggle::after {
  transform: translateY(-50%) rotate(0deg);
}
.p-cat-section__children {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.p-cat-section__item.is-open .p-cat-section__children {
  padding-bottom: 8px;
}
.p-cat-section__child-tag {
  display: block;
  padding: 13px 0 13px 16px;
  border-top: 1px solid #ece8e1;
  font-size: 16px;
  font-weight: 500;
  color: #333;
  text-decoration: none;
  transition: opacity 0.2s;
}
.p-cat-section__child-tag:hover {
  opacity: 0.6;
}

/* タグセクション */
.p-tag-section {
  margin: 0 0 40px;
  padding: 60px 0;
}
/* 記事詳細ページのタグセクション下余白は、ここだけで個別調整 */
.single-post .p-tag-section {
  margin-bottom: 0;
}
.p-tag-section__inner {
  max-width: 1170px;
  width: 90%;
  margin: 0 auto;
  text-align: center;
}
.p-tag-section__title {
  font-size: 25px;
  font-weight: bold;
  margin-bottom: 24px;
}
.p-tag-section__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
}
.p-tag-section__item {
  font-size: 15px;
  color: #8a6f45;
  text-decoration: none;
  font-weight: 500;
}
.p-tag-section__item:hover {
  text-decoration: none;
}

/* ==========================================================================
   私たちについてセクション（template-parts/about-section.php）
   ページ下部に表示
   ========================================================================== */

.p-about {
  padding: 40px 0 35px;
  background: #fff;
}
.p-about__inner {
  max-width: 1128px;
  width: 90%;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 210px 1fr;
  grid-template-areas:
    "logo heading"
    "logo desc";
  column-gap: 145px;
  row-gap: 12px;
}
.p-about__heading {
  grid-area: heading;
  font-size: 13px;
  font-weight: bold;
  margin: 0;
  color: #1a1a1a;
  align-self: end;
}
.p-about__logo-col {
  grid-area: logo;
  text-align: center;
  align-self: center;
}
.p-about__text-col {
  grid-area: desc;
  align-self: start;
}
.p-about__caption {
  font-size: 13px;
  letter-spacing: 0;
  color: #999;
  margin: 0 0 8px;
}
.p-about__logo-link {
  display: block;
  text-decoration: none;
}
.p-about__logo-img {
  max-width: 360px;
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}
.p-about__name {
  font-size: 13px;
  letter-spacing: 0;
  color: #888;
  margin: 10px 0 0;
}
.p-about__desc {
  font-size: 13px;
  line-height: 2;
  color: #333;
  margin: 0;
  letter-spacing: 0;
}

/* ==========================================================================
   ブランドサイトバナー（[brand_site_banner] / [brand_site_banner_side]）
   ページ下部・サイドバーに表示
   ========================================================================== */

/* メインエリア用（PC横長 / SP 2分割） */
.p-brand-cta {
  width: 100%;
  overflow: hidden;
  margin: 0 auto 60px;
}
.p-brand-cta__link {
  display: block;
  position: relative;
  text-decoration: none;
  transition: opacity 0.2s;
}
a.p-brand-cta__link:hover {
  opacity: 0.4;
}
.p-brand-cta__img {
  width: 100%;
  height: auto;
  display: block;
}
.p-brand-cta__img--sp {
  display: none; /* PCでは非表示（SPメディアクエリで表示） */
}
/* 「詳しくはこちら」ボタン：
   - .l-main 直下（フッター付近の自動表示）→ PCは非表示・SPのみ（下のSPメディアクエリで解除）
   - 記事本文中に手動挿入したもの（.p-entry__body 内）→ PCでも表示 */
.p-brand-cta__btn-wrap {
  display: none;
}
.p-entry__body .p-brand-cta .p-brand-cta__btn-wrap {
  display: block;
}
.p-brand-cta__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 100%;
  background: #333;
  color: #fff;
  font-size: 16px;
  letter-spacing: 0;
  padding: 14px;
  line-height: 1;
  font-weight: bold;
}

/* サイドバー用（正方形） */
.p-brand-cta-side {
  margin-bottom: 20px;
}
.p-brand-cta-side > a,
.p-brand-cta-side > div {
  display: block;
  position: relative;
  text-decoration: none;
  transition: opacity 0.2s;
}
.p-brand-cta-side > a:hover {
  opacity: 0.4;
}
.p-brand-cta-side img {
  width: 100%;
  height: auto;
  display: block;
}
.p-brand-cta-side__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  background: #313131;
  color: #fff;
  padding: 18px 14px;
  font-size: 13px;
  letter-spacing: 0;
  line-height: 1;
  font-weight: bold;
}

/* ==========================================================================
   物件バナー（[bukken_banner] / [bukken_banner_side]）
   ページ下部・サイドバーに表示
   ========================================================================== */

/* メインエリア用（PC: グリッド2カラム） */
.p-bukken-banner {
  display: flex;
  justify-content: center;
  max-width: 1170px;
  width: 90%;
  margin: 0 auto 55px;
}
/* 記事詳細ページだけ：物件バナーの下に区切り線（SPは線なし） */
.single-post .p-bukken-banner {
  padding-bottom: 40px;
  border-bottom: 1px solid #eae6df;
}
@media (max-width: 767px) {
  .single-post .p-bukken-banner {
    padding-bottom: 0;
    border-bottom: none;
  }
}
.p-bukken-banner__card {
  display: grid;
  grid-template-columns: 51% 1fr;
  width: 100%;
  background: #fff;
  border: 1px solid #e6e1d8;
  padding: 10px 0;
}
.p-bukken-banner__left {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  justify-content: center;
  position: relative;
  padding: 0 40px;
}
.p-bukken-banner__left .p-bukken-banner__media {
  flex: 0 0 auto;
  height: auto;
  background: none;
}
.p-bukken-banner__media {
  width: 100%;
  aspect-ratio: 538 / 210; /* 写真の実寸比 */
  height: auto;
  overflow: hidden;
  flex-shrink: 0;
  background: #eee;
}
.p-bukken-banner__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-bukken-banner__video {
  height: 168px;
  overflow: hidden;
}
.p-bukken-banner__video iframe {
  width: 100%;
  height: 100%;
  border: none;
}
.p-bukken-banner__right {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  flex-direction: column;
}
.p-bukken-banner__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 17px 20px 10px;
  text-align: center;
}
.p-bukken-banner__tagline {
  font-size: 13px;
  margin: 0 0 15px;
  letter-spacing: 0;
  font-weight: 500;
}
.p-bukken-banner__name {
  font-size: 23px;
  font-weight: 500;
  color: #1a1a1a;
  margin: 0 0 20px;
  line-height: 1;
}
.p-bukken-banner__access {
  font-size: 13px;
  color: #6d6d6d;
  margin: 0;
  line-height: 1;
}
.p-bukken-banner__catch {
  display: none; /* PC は非表示。SP のみ表示（レスポンシブ側で解除） */
  font-size: 15px;
  font-weight: bold;
  color: #1a1a1a;
  text-align: center;
  line-height: 1.5;
  margin: 14px 20px 0;
}
.p-bukken-banner__link-bar {
  align-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #313131;
  color: #fff;
  font-size: 13px;
  font-weight: bold;
  padding: 14px 25px;
  margin: 8px 20px 20px;
  border-radius: 0;
  text-decoration: none;
}
.p-bukken-banner__link-bar:hover {
  opacity: 0.4;
}
/* スライダー矢印は画像の外（左右のガター）に配置。
   slick の appendArrows で .p-bukken-banner__left 直下に出す */
/* 矢印はCSSで山形を描画（テキスト記号やアイコンフォントに依存せず円の中央に置く） */
.p-bukken-banner__left > .slick-prev,
.p-bukken-banner__left > .slick-next {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: #333333;
  border-radius: 100px;
  font-size: 0;
  transform: translateY(-50%);
}
.p-bukken-banner__left > .slick-prev::before,
.p-bukken-banner__left > .slick-next::before {
  content: "";
  display: block;
  width: 4px;
  height: 4px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
}
.p-bukken-banner__left > .slick-prev::before {
  transform: translateX(2px) rotate(-135deg);
}
.p-bukken-banner__left > .slick-next::before {
  transform: translateX(-2px) rotate(45deg);
}
.p-bukken-banner__left > .slick-prev {
  left: 4px;
}
.p-bukken-banner__left > .slick-next {
  right: 4px;
}
.p-bukken-banner__left > .slick-prev:hover,
.p-bukken-banner__left > .slick-next:hover {
  background: #000 !important;
}
/* 写真スクロール（slick 初期化後） */
.p-bukken-banner__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-bukken-banner__slider .slick-list,
.p-bukken-banner__slider .slick-track,
.p-bukken-banner__slider .slick-slide {
  height: 100%;
}
.p-bukken-banner__slider .slick-slide {
  line-height: 0;
}
/* 値段バナー：金額 */
.p-bukken-banner__price {
  font-size: 20px;
  font-weight: bold;
  color: #1a1a1a;
  line-height: 1;
  margin: 16px 0 0;
}

/* サイドバー用 */
.p-bukken-banner-side {
  margin: 0 0 40px;
  background-color: #fbfaf7;
  border: 1px solid #e6e1d8;
  overflow: hidden;
}
.p-bukken-banner-side__media {
  width: 100%;
  height: 168px;
  overflow: hidden;
  background: #eee;
}
.p-bukken-banner-side__media img {
  width: 100%;
  height: 168px;
  object-fit: cover;
  display: block;
}
/* サイド写真スクロール（slick） */
.p-bukken-banner-side__slide img {
  width: 100%;
  height: 168px;
  object-fit: cover;
  display: block;
}
.p-bukken-banner-side__media.slick-slider .slick-list,
.p-bukken-banner-side__media.slick-slider .slick-track,
.p-bukken-banner-side__media.slick-slider .slick-slide {
  height: 168px;
}
.p-bukken-banner-side__media.slick-slider .slick-slide {
  line-height: 0;
}
/* 矢印は画像の下・中央に横並び */
.p-bukken-banner-side__arrows {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 15px;
  padding: 10px 0 2px;
}
.p-bukken-banner-side__arrows .slick-prev,
.p-bukken-banner-side__arrows .slick-next {
  position: static;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin: 0;
  background: #333333;
  border-radius: 100px;
  font-size: 0;
  transform: none;
}
.p-bukken-banner-side__arrows .slick-prev::before,
.p-bukken-banner-side__arrows .slick-next::before {
  content: "";
  display: block;
  width: 4px;
  height: 4px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
}
.p-bukken-banner-side__arrows .slick-prev::before {
  transform: translateX(1px) rotate(-135deg);
}
.p-bukken-banner-side__arrows .slick-next::before {
  transform: translateX(-1px) rotate(45deg);
}
.p-bukken-banner-side__arrows .slick-prev:hover,
.p-bukken-banner-side__arrows .slick-next:hover {
  background: #000 !important;
}
.p-bukken-banner-side__video {
  height: 168px;
  overflow: hidden;
}
.p-bukken-banner-side__video iframe {
  width: 100%;
  height: 100%;
  border: none;
}
.p-bukken-banner-side__tagline {
  font-size: 16px;
  margin: 0 0 8px;
  letter-spacing: 0;
  color: #666;
}
.p-bukken-banner-side__name {
  font-size: 18px;
  color: #333;
  margin: 0 0 10px;
  line-height: 1;
  font-weight: bold;
  letter-spacing: 0;
}
.p-bukken-banner-side__access {
  font-size: 16px;
  color: #666;
  margin: 0;
  line-height: 1;
}
.p-bukken-banner-side__body {
  display: block;
  padding: 10px 0px 12px;
  text-align: center;
  text-decoration: none;
}
.p-bukken-banner-side__link {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #313131;
  color: #fff;
  font-size: 14px;
  letter-spacing: 0;
  padding: 24px 0;
  text-decoration: none;
  transition: opacity 0.2s;
  font-weight: bold;
}
.p-bukken-banner-side__link:hover {
  opacity: 0.4;
}

/* ==========================================================================
   SNSセクション（template-parts/sns-section.php）
   全ページのフッター直前に表示
   ========================================================================== */

.p-sns-section {
  padding: 0px 20px 25px;
  background: #fff;
  text-align: center;
}
.p-sns-section__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: inline-flex;
  gap: 20px;
  align-items: center;
}
.p-sns-section__link {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: #313131;
  font-size: 13px;
  letter-spacing: 0;
  transition: opacity 0.2s;
  font-weight: bold;
}
.p-sns-section__link:hover {
  opacity: 0.4;
}
.p-sns-section__link::before {
  content: "";
  display: inline-block;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.p-sns-section__link--instagram::before {
  width: 40px;
  aspect-ratio: 1 / 1;
  background-image: url("../img/instagram.png");
}
.p-sns-section__link--youtube::before {
  width: 55px;
  aspect-ratio: 55 / 40;
  background-image: url("../img/youtube.png");
}

/* ==========================================================================
   物件バナー／about／ブランドサイトバナーは全ページ共通で .l-main 直下に出力し、
   width: 90% / max-width: 1128px / 中央寄せ で横幅いっぱいに表示
   （サイドバーの有無に関わらず .l-primary の幅制限を受けない）
   ========================================================================== */
.l-main > .p-bukken-banner,
.l-main > .p-about,
.l-main > .p-brand-cta {
  width: 90%;
  max-width: 1128px;
  margin-left: auto;
  margin-right: auto;
}
/* 上下マージンは要素ごとに個別調整（横センターだけ共通） */
.l-main > .p-bukken-banner {
  margin-top: 0;
  margin-bottom: 0;
}
.l-main > .p-about {
  margin-top: 0;
  margin-bottom: 0;
}
.l-main > .p-brand-cta {
  margin-top: 0;
  margin-bottom: 0;
}
.l-main > .p-about .p-about__inner {
  width: 100%;
  max-width: 1128px;
}

/* フッターは横幅いっぱい（内側の .l-inner の 1170px 制限を解除） */
.l-footer .l-inner {
  max-width: none;
  width: 100%;
}

/* Google口コミウィジェット */
.ti-widget.ti-goog {
  text-align: left;
  margin-bottom: 40px;
}

/* ==========================================================================
   レスポンシブ（max-width: 767px）
   ※ 各セクションのSP上書きをまとめて記述
   ========================================================================== */

@media (max-width: 767px) {
  /* --- グローバル --- */
  .l-secondary {
    display: none;
  }
  .p-cat-section__parent-name {
    font-size: 16px;
  }
  .p-headline--sp-only {
    display: block;
  }

  /* --- 私たちについて --- */
  .p-about__inner {
    display: flex;
    flex-direction: column;
    gap: 20px;
    text-align: center;
    width: 88%;
  }

  .l-main > .p-about {
    margin-bottom: 45px;
  }
  /* SP：見出しは非表示（PCのみ表示） */
  .p-about__heading {
    display: none;
  }
  .p-about__logo-col {
    order: 2;
    width: 100%;
    align-self: auto;
  }
  .p-about__name {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    white-space: nowrap;
    margin-top: 12px;
  }
  .p-about__name::before,
  .p-about__name::after {
    content: "";
    flex: 1;
    border-top: 1px solid #ccc;
  }
  .p-about__text-col {
    order: 3;
    align-self: auto;
  }
  .p-about__desc {
    text-align: left;
    font-size: 13px;
    line-height: 1.8;
  }
  .p-about {
    padding: 50px 0 0;
  }

  /* --- ブランドサイトバナー --- */
  .p-brand-cta__img--pc {
    display: none;
  }
  /* SP画像は縦並び（1枚なら全幅、2枚なら上下に） */
  .p-brand-cta__img--sp {
    display: block;
    width: 100%;
  }
  .p-brand-cta__img--sp + .p-brand-cta__img--sp {
    margin-top: 8px;
  }
  .p-brand-cta__btn-wrap {
    display: block;
  }
  .p-brand-cta__btn {
    font-size: 16px;
    padding: 20px 16px;
  }

  /* --- 物件バナー --- */
  .p-bukken-banner {
    gap: 12px;
    margin: 0 auto 40px;
  }
  /* SP：縦積み（情報 → 写真 → キャッチ → ボタン） */
  .p-bukken-banner__card {
    display: flex;
    flex-direction: column;
    width: 100%;
    box-shadow: none;
    border: 1px solid #e6e1d8;
    padding: 0;
  }
  .p-bukken-banner__right {
    display: contents;
  }
  .p-bukken-banner__content {
    order: 1;
    flex: none;
    padding: 22px 20px 14px;
  }
  /* SP：矢印は画像の外・左右ガターではなく画像の下に横並び中央 */
  .p-bukken-banner__left {
    order: 2;
    flex-wrap: wrap;
    justify-content: center;
    gap: 15px 30px;
    padding: 0;
  }
  .p-bukken-banner__catch {
    display: block;
    order: 3;
    margin: 10px 20px 0;
  }
  .p-bukken-banner__link-bar {
    order: 4;
    align-self: center;
    margin: 15px auto 20px;
    border-radius: 0;
    width: 90%;
    padding: 22px 30px;
  }
  .p-bukken-banner__left .p-bukken-banner__media {
    order: 0;
    flex: 0 0 100%;
    width: 100%;
    max-width: none;
    aspect-ratio: 350 / 170;
    height: auto;
  }
  /* slick は prev を先頭・next を末尾に挿入するため、order で両方を画像の下へ */
  .p-bukken-banner__left > .slick-prev,
  .p-bukken-banner__left > .slick-next {
    order: 1;
    position: static;
    transform: none;
    margin: 0 0 4px;
  }
  .p-bukken-banner__tagline {
    font-size: 13px;
    margin-bottom: 12px;
  }
  .p-bukken-banner__name {
    font-size: 20px;
    margin: 0 0 12px;
  }
  .p-bukken-banner__access {
    font-size: 13px;
  }
  .p-bukken-banner__catch {
    font-size: 14px;
  }

  /* --- SNSセクション --- */
  .p-sns-section {
    padding: 0 20px 20px;
  }

  /* --- サイドバー --- */
  .p-sidebar-search__input {
    padding: 14px 15px 14px 4px;
  }

  /* --- 記事ページ --- */
  .p-entry__head-meta {
    row-gap: 8px;
    gap: 6px 10px;
    font-size: 13px;
  }
  .p-entry__head-meta-right {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 4px 8px;
  }
  .p-entry__head-category span {
    font-size: 13px;
  }

  .p-entry__toc-header {
    padding: 10px 16px;
  }
  .p-entry__body figure.wp-block-image {
    margin-bottom: 20px;
  }

  .p-entry__toc-inner {
    padding: 15px 10px;
  }
  .p-entry__toc {
    margin-bottom: 40px;
  }
  .p-entry__lead {
    font-size: 15px;
    margin-bottom: 50px;
    padding: 0;
  }
  .p-entry__body h2 {
    font-size: 22px;
  }
  .p-entry__body h3 {
    font-size: 22px;
  }
  .p-entry__body h4 {
    font-size: 15px;
  }

  .p-entry__body h3:not(.p-author__title)::before {
    height: 3em;
  }
  .p-entry__body li,
  .p-entry__body dt,
  .p-entry__body dd {
    font-size: 15px;
    font-weight: 500;
  }
  .single .p-entry__body p.p-table-title {
    font-size: 15px;
    margin-bottom: 15px;
  }
  .p-entry__tags {
    margin-bottom: 40px;
  }

  /* --- 目次 --- */
  .p-entry__toc-label {
    font-size: 14px;
  }
  .p-entry__toc-h2 > a {
    font-size: 13px;
  }
  .p-entry__toc-h3 a {
    font-size: 13px;
  }

  /* --- FAQ --- */
  .p-entry__faq-title {
    font-size: 18px;
  }
  .p-entry__faq-q {
    font-size: 15px;
  }

  /* --- ピックアップ（SPは1列・縦並び。各カードは写真左＋テキスト右の横並び） --- */
  .p-pickup-section {
    margin: 0 0 40px;
  }
  .p-pickup-section__item {
    width: 100%;
  }
  .p-pickup-section__inner {
    width: 100%;
  }
  .p-pickup-section__grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    grid-auto-flow: row;
    gap: 16px;
  }
  .p-pickup-section__item a {
    display: flex;
    align-items: flex-start;
    gap: 12px;
  }
  .p-pickup-section__thumb {
    flex-shrink: 0;
    width: 40%;
    margin-bottom: 0;
  }
  .p-pickup-section__item-title {
    flex: 1;
    min-width: 0;
  }
  .single .p-pickup-section__item-title {
    font-size: 14px;
    line-height: 1.5;
  }

  /* --- 引用ショートコード --- */
  .p-quote__body {
    font-size: 15px;
  }
  .p-entry__body .p-quote p {
    font-size: 13px;
    font-weight: normal;
  }

  /* --- 関連記事 --- */
  .p-related-posts__excerpt,
  .p-related-posts__more {
    display: none;
  }
  .p-related-posts__link {
    padding: 10px 0px;
    gap: 20px;
    align-items: center;
  }
  .p-related-posts {
    margin: 80px 0 45px;
  }
  .p-entry__body ul,
  .p-entry__body ol,
  .p-entry__body dl {
    margin-bottom: 20px;
  }
  .p-related-posts__thumbnail img {
    width: 80px;
    aspect-ratio: 2 / 2;
  }
  .p-quote {
    margin: 50px 0 55px;
  }
  .p-quote::before,
  .p-quote::after {
    font-size: 40px;
  }
  .cardlink_thumbnail img {
    width: 80px;
    aspect-ratio: 2 / 2;
  }
  .p-cat-section__label {
    font-size: 18px;
    margin-bottom: 20px;
  }
  /* --- カードリンク --- */
  .cardlink {
    display: flex;
    align-items: center;
    margin-bottom: 40px;
    padding: 15px 0;
  }
  .cardlink_thumbnail {
    width: 190px;
    margin-right: 0px;
  }
  .cardlink_title {
    font-size: 15px;
    font-weight: 500;
  }
  .cardlink_excerpt,
  .cardlink_more {
    display: none;
  }
  .ti-widget.ti-goog .ti-review-item {
    margin-bottom: 65px !important;
  }

  /* --- テーブル横スクロール --- */
  .p-table-scroll-wrap {
    position: relative;
  }
  .p-entry__body p.p-table-scroll-hint {
    display: block;
    position: absolute;
    bottom: -20px;
    right: 4px;
    font-size: 13px;
    color: #999;
    margin: 0;
  }
  .p-entry__body .wp-block-table {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 5px;
    margin-bottom: 40px;
    scrollbar-width: thin;
    scrollbar-color: #999 #e0e0e0;
  }
  .p-entry__body .wp-block-table table {
    margin-bottom: 0 !important;
    table-layout: auto !important;
    width: 100% !important;
  }
  /* 項目列ありのテーブルは内容が短くても必ず少しはみ出るようにする */
  .p-entry__body .wp-block-table.row-header table {
    width: auto !important;
    min-width: calc(100% + 60px) !important;
  }
  .p-entry__body .wp-block-table::-webkit-scrollbar {
    height: 5px;
  }
  .p-entry__body .wp-block-table::-webkit-scrollbar-track {
    background: #e0e0e0;
    border-radius: 4px;
  }
  .p-entry__body .wp-block-table::-webkit-scrollbar-thumb {
    background: #999;
    border-radius: 4px;
  }
  .p-entry__body .wp-block-table th,
  .p-entry__body .wp-block-table td {
    white-space: nowrap;
    font-size: 14px;
    padding: 5px 15px;
  }

  .p-entry__body .wp-block-table.row-header thead tr th:first-child {
    width: 24%;
  }

  /* --- 前後記事ナビ --- */
  .p-entry__nav .c-entry-nav__item {
    height: auto !important;
  }
  .p-entry__nav .c-entry-nav__item--prev {
    text-align: left;
  }
  .p-entry__nav .c-entry-nav__item--next {
    text-align: right;
  }
  .p-entry__nav .c-entry-nav__item a span {
    display: block !important;
  }
  .p-entry__nav .c-entry-nav__item--prev a::after {
    content: none !important;
  }
  .p-entry__nav .c-entry-nav__item--next a::before {
    content: none !important;
  }

  /* --- 記事一覧 --- */
  .p-archive-title {
    padding-left: 0;
    text-align: left;
    font-size: 18px;
    margin-bottom: 20px;
  }

  .p-tag-section {
    padding: 50px 0;
    margin: 0;
  }
  .p-tag-section__title {
    font-size: 16px;
  }

  /* --- 執筆者・監修者 共通 ---
     style.css の .p-entry__body .p-author__box .p-author__title 等（メディアクエリ無し・詳細度が高い）に
     SPでも勝てるよう、同じ詳細度のセレクタも一緒に指定する */
  .p-author__position,
  .p-entry__body .p-author__position {
    font-size: 13px;
    line-height: 1;
  }
  .single .p-entry__body .wp-block-paragraph {
    margin-bottom: 35px;
  }

  .p-entry__body h3:not(.p-author__title) {
    margin: 0 0 15px;
  }
  .single .p-entry__body .wp-block-paragraph:has(+ h2),
  .single .p-entry__body .wp-block-paragraph:has(+ h3) {
    margin-bottom: 30px;
  }
  .p-author__title,
  .p-entry__body .p-author__box .p-author__title {
    font-size: 14px;
    color: #333;
  }
  .p-author__desc,
  .p-entry__body .p-author__desc {
    margin-top: 0;
    font-size: 13px;
  }
  .p-author__boxes .p-author__desc {
    line-height: 1.7;
  }
  .p-author__link {
    font-size: 13px;
    letter-spacing: 0;
    color: #8a6f45;
    border-bottom: 1px solid #8a6f45;
  }
  .p-entry__body h2:not(.p-entry__faq-title):not(.p-pickup-section__title) {
    margin-bottom: 15px;
  }
  .p-author__link-wrap {
    margin-top: 0;
  }

  /* --- 著者ボックス（記事ページ） --- */
  .p-entry .p-author__box {
    display: flex;
    align-items: flex-start;
    gap: 10px;
  }

  .p-author__role::before {
    width: 15px;
    height: 15px;
  }
  .p-entry .p-author__thumbnail,
  .p-authors-list .p-author__thumbnail {
    flex-shrink: 0;
    float: none;
    margin-left: 0;
    width: 20%;
    height: 100%;
  }
  .p-entry .p-author__info,
  .p-authors-list .p-author__info {
    flex: 1;
    min-width: 0;
    margin-left: 0;
  }
  .p-entry .p-author__boxes {
    margin-bottom: 70px;
  }

  /* 著者ボックスをSPだけ個別に変えたい場合、ここに
     ".p-author__boxes .p-author__box"（自動表示だけ）
     ".p-author__box--bubble"（[supervisor_bubble]だけ）
     を追記。 */

  /* [supervisor_bubble] だけ：SPでは「写真＋名前/役職」→「説明文フル幅」の縦積みに。
     上の .p-entry .p-author__box の flex 指定を打ち消す */
  .p-entry__body .p-author__box.is-supervisor {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 12px;
    row-gap: 10px;
    align-items: center;
    margin-bottom: 50px;
  }
  .p-entry .p-author__box--bubble .p-author__thumbnail {
    float: none;
    margin: 0;
    width: 50px;
    height: 50px;
  }
  .p-entry .p-author__box--bubble .p-author__info {
    margin: 0;
    min-width: 0;
  }
  .p-entry .p-author__box--bubble .p-author__desc,
  .p-entry .p-author__box--bubble .p-social-nav {
    grid-column: 1 / -1;
    margin: 0;
  }

  /* --- 著者ボックス（一覧ページ） --- */
  .p-authors-list .p-author__box {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 15px;
    padding: 15px;
  }
  .p-authors-list .p-author__desc {
    font-size: 13px;
  }

  /* --- 執筆者詳細ページ --- */
  .p-author__profile-heading {
    font-size: 18px;
  }
  .p-author__box--profile .p-author__qualification-item {
    width: 100%;
  }
  .p-author__box--profile .p-author__desc,
  .p-author__box--profile .p-author__qualification {
    margin-left: 0;
  }
  /* サイトURLは「サイト」ラベル下に改行・「：」を非表示 */
  .p-author__site-sep {
    display: none;
  }
  .p-author__site a {
    display: block;
  }
  .p-author__blog-list__inner .p-headline {
    font-size: 18px;
    margin-bottom: 30px;
  }

  /* --- 執筆者詳細：記事一覧（記事一覧ページと同じ・SPはサムネイル正方形） --- */
  .p-author-article {
    grid-template-columns: 30% 1fr;
    column-gap: 12px;
  }
  .p-author-article__col > .p-author-article__category {
    margin-bottom: 6px;
  }
  .p-author-article__thumb {
    aspect-ratio: 1 / 1;
  }
  .p-author-article__title {
    font-size: 15px;
  }
  .p-author-article__excerpt {
    display: none;
  }
  .p-author-article__meta.p-article__meta {
    row-gap: 6px;
  }

  /* --- サードパーティ --- */
  .ti-load-more-reviews-button {
    border-radius: 50px;
  }
}

/* ==========================================================================
   サードパーティプラグイン上書き
   ========================================================================== */

/* Trustindex「もっと読み込む」ボタン：カテゴリタグと同じホバー配色に（プラグイン側の !important 込みルールに勝てるよう詳細度を強化） */
.ti-widget
  .ti-load-more-reviews-container
  .ti-load-more-reviews-button.ti-load-more-reviews-button:hover {
  background: #000 !important;
  color: #fff !important;
  border-color: #000 !important;
}

/* プロフィールページではカテゴリ・タグセクションを非表示（PC） */
.page-template-page-authors .p-cat-section,
.page-template-page-authors .p-tag-section,
.single-author_profile .p-cat-section,
.single-author_profile .p-tag-section {
  display: none;
}
/* SPでは表示 */
@media (max-width: 767px) {
  .page-template-page-authors .p-cat-section,
  .page-template-page-authors .p-tag-section,
  .single-author_profile .p-cat-section,
  .single-author_profile .p-tag-section {
    display: block;
  }
}

/* Trustindex レビューウィジェット */
html body .ti-widget.ti-goog .ti-review-item > .ti-inner,
html body .ti-widget.ti-goog .ti-review-item .ti-inner {
  border-radius: 0 !important;
  border-color: #d9d9d9 !important;
  border-width: 2px !important;
  transition: none !important;
}
html body .ti-widget.ti-goog .ti-review-item,
html body .ti-widget.ti-goog .ti-review-item > .ti-inner {
  transition: none !important;
}
html body .ti-widget.ti-goog .ti-review-item:hover,
html body .ti-widget.ti-goog .ti-review-item:hover > .ti-inner,
html body .ti-widget.ti-goog .ti-review-item:hover .ti-inner {
  transform: none !important;
  box-shadow: none !important;
  border-color: #d9d9d9 !important;
}
/* 口コミは1件だけ表示し「もっと読み込む」は非表示に（強制的にCSSで制御） */
html body .ti-widget.ti-goog .ti-review-item:not(:first-of-type) {
  display: none !important;
}
html body .ti-widget.ti-goog .ti-load-more-reviews-container {
  display: none !important;
}

/* ============================================================
   サイト全体フォント統一：Noto Sans JP（予備フォント付き）
   ・使用ウェイト: 300(細) / 400(標準) / 500(ミディアム) / 700(ボールド)
     ※ functions.php で Google Fonts から 300;400;500;700 を読み込み
   ・アイコンフォント(design_plus)・等幅(code/pre)は対象外
   ・テーマの動的CSS(functions/head.php)や style.css の !important 指定を上書き
   ============================================================ */
body,
input,
button,
select,
textarea,
optgroup,
h1,
h2,
h3,
h4,
h5,
h6,
.p-logo,
.p-entry__title,
.p-article__title,
.p-article__title__overlay,
.p-headline,
.p-page-header__title,
.p-widget__title,
.p-widget-list__item-title,
.p-sidemenu .p-siteinfo__title,
.p-index-slider__item-catch,
.p-header-video__caption-catch,
.p-footer-blog__catch,
.p-footer-cta__catch,
.p-quote::before,
.p-quote::after {
  font-family:
    "Noto Sans JP",
    "Hiragino Sans",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    YuGothic,
    Meiryo,
    "MS PGothic",
    system-ui,
    -apple-system,
    "Segoe UI",
    sans-serif !important;
}
