@charset "utf-8";
/* ==========================================================================
   カスタムスタイルシート
   ========================================================================== */

/* ===============================================
   CSS変数定義
   ============================================ */

:root {
  /* カテゴリカラー */
  --category-compass: #FF0090;
  --category-citizen: #FF5C00;
  --category-company: #02AAAA;
  --category-community: #00D4FF;
  --category-culture: #0059FF;
  --category-column: #9000FF;
}

/* ===============================================
   基本フォント設定
   ============================================ */

body,
html body {
  font-family: "Zen Kaku Gothic New", sans-serif !important;
}
a {
  font-family: "Zen Kaku Gothic New", sans-serif !important;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: "Zen Kaku Gothic New", sans-serif !important;
}

/* ===============================================
   ヘッダーレイアウト カスタマイズ（上下2段構造）
   ============================================ */

/* ヘッダー全体の構造 */
#header {
  z-index: 300;
  position: sticky;
  top: 0px;
  left: 0px;
  width: 100%;
  height: auto;
  border-bottom: 1px solid #ddd;
  background: #fff;
  transform: translate3d(0,0,0);
  transition: transform 0.5s ease, opacity 0.7s ease 0.1s;
}
#header {
  position: relative !important;
  background: #fff;
  border: none;
}

sup {
  padding-right: 0.5em;
}
/* header_inner は header 直下のみに適用 */
#header > .header_inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 20px 20px 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* 上段エリア（ロゴ + キャッチフレーズ） */
#header > .header_inner > .header_top {
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
  gap: 40px;
  padding: 10px 0 5px;
}

/* ロゴ */
#header_logo {
  position: static !important;
  margin: 0 !important;
  padding: 0 !important;
  flex-shrink: 0;
}

#header_logo a {
  display: block;
  line-height: 1;
}

#header_logo img {
  height: 40px;
  width: auto;
  display: block;
}

/* キャッチフレーズ */
.site_catchphrase {
  font-size: 12px;
  line-height: 1.6;
  color: #111;
  margin: 0;
  font-weight: 500;
}

/* 下段エリア（ナビゲーション + 検索） */
#header > .header_inner > .header_bottom {
  display: flex;
  align-items: center;
  gap: 20px;
  justify-content: space-between;
  padding: 10px 0;
}
#header .header_bottom {
  border-top: 1px solid #D3D3D3;
  border-bottom: 2px solid #111;
}

/* グローバルメニュー */
#global_menu {
  position: static !important;
  display: flex !important;
  align-items: center;
  flex-grow: 1;
  height: auto;
}

#global_menu ul {
  display: flex;
  align-items: center;
  gap: 32px;
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
  justify-content: flex-start;
}

#global_menu ul li {
  position: relative;
  margin: 0;
  padding: 0;
  transform: translateY(3px);
}

#global_menu ul li a {
  display: block;
  height: auto;
  padding: 5px 0;
  font-size: 16px;
  font-family: itc-american-typewriter, serif !important;
  font-style: normal;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.01em;
  color: #333;
  text-decoration: none;
  transition: all 0.3s ease;
  white-space: nowrap;
  border-bottom: 5px solid transparent;
}

body #global_menu ul li a:hover {
  color: #111 !important;
  border-bottom-color: #ECFE00;
}

body #global_menu ul li.current-menu-item a {
  color: #111 !important;
  border-bottom-color: #ECFE00;
  font-weight: 500;
}

/* サブメニュー非表示（階層なしの要件に対応） */
#global_menu ul li ul {
  display: none !important;
}

/* 検索ボックス */
#header_search {
  position: static !important;
  flex-shrink: 0;
  height: 40px;
}
body #header_search .input_area input {
  height: 32px;
}

#header_searchform {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-direction: row;
  justify-content: flex-end;
}

#header_search .input_area {
  position: relative;
  top: auto;
  right: auto;
  width: auto;
  height: auto;
}

/* input_areaのホバー効果を完全無効化 */
#header_search .input_area,
#header_search:hover .input_area,
#header_search.active .input_area,
#header_search:hover form .input_area,
#header_search.active form .input_area {
  width: 300px !important;
  background: #ebebeb !important;
  transform: none !important;
  box-shadow: none !important;
  opacity: 1 !important;
  transition: none !important;
  animation: none !important;
  border-radius: 20px !important;
  overflow: visible !important;
}
#header_search .search_button {
  position: relative;
}
#header_search .search_button:before {
  display: block;
  font-family: 'design_plus';
  color: #000;
  font-size: 22px;
  content: '\e94c';
  pointer-events: none;
  font-weight: 600;
  left: auto;
  right: -8px;
  top: calc(50% + 0px);
  transform: translate(-50%, -50%);
  position: absolute;
  transition: color 0.2s ease;
}

/* より強力に：すべてのホバー効果とアニメーションを無効化 */
#header_search .input_area,
#header_search .input_area * {
  pointer-events: auto !important;
  height: 32px;
}

#header_search .input_area:hover,
#header_search .input_area:hover * {
  animation: none !important;
  transition: none !important;
}

/* inputだけはポインターイベントを有効に */
#header_search_input {
  pointer-events: auto !important;
}

#header_search_input {
  width: 200px;
  padding: 8px 12px;
  border: 1px solid #ddd;
  border-radius: 20px;
  font-size: 14px;
  transition: border-color 0.3s ease;
}

#header_search_input:focus {
  outline: none;
  border-color: #ff4000;
}

#header_search .search_button {
  flex-shrink: 0;
}

#header_search_button {
  width: 36px;
  height: 36px;
  background: #ff4000;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  position: relative;
  transition: background 0.3s ease;
}
#header_search .search_button input {
  width: 30px;
  height: 40px;
}

#header_search_button:hover {
  background: #0056b3;
}

#header_search_button::before {
  content: "🔍";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 16px;
}

/* ドロワーメニューボタン（モバイル用） */
#drawer_menu_button {
  display: none;
}


/* ===============================================
   レスポンシブ対応
   ============================================ */

/* タブレット */
@media screen and (max-width: 1100px) {
  #header > .header_inner {
    padding: 15px 30px 0;
    gap: 15px;
  }
  
  #header > .header_inner > .header_top {
    gap: 16px;
    padding-bottom: 15px;
  }
  
  #header_logo img {
    height: 40px;
  }
  
  .site_catchphrase {
    font-size: 12px;
  }
  
  #global_menu ul {
    gap: 24px;
  }
  
  #global_menu ul li a {
    font-size: 14px;
    padding: 12px 0;
  }
  
  #header_search_input {
    width: 160px;
  }
}

/* スマートフォン */
@media screen and (max-width: 768px) {
  #header > .header_inner {
    padding: 12px 20px 0;
    gap: 0px;
  }
  
  #header > .header_inner > .header_top {
    padding-bottom: 12px;
    width: 100%;
    justify-content: space-between;
  }
  
  /* キャッチフレーズをモバイルでは非表示 */
  .site_catchphrase {
    display: none;
  }
  
  #header_logo img {
    height: 24px;
  }
  
  #header > .header_inner > .header_bottom {
    padding: 0px 0 3px;
    border-top: none;
  }
  
  /* デスクトップメニューを非表示 */
  #global_menu {
    display: none !important;
  }
  
  /* 検索ボックスを簡略化 */
  #header_search {
    position: static;
    flex-grow: 1;
  }
  
  #header_search_input {
    width: 100%;
    padding: 8px 12px;
    font-size: 14px;
  }
  
  #header_search_button {
    width: 36px;
    height: 36px;
  }
  
  /* ドロワーメニューボタンを表示 */
  #drawer_menu_button {
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    width: 30px;
    height: 24px;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 100;
    top: 3px;
    right: 20px;
  }
  
  #drawer_menu_button span {
    display: block;
    width: 100%;
    height: 3px;
    background: #333;
    border-radius: 2px;
    transition: all 0.3s ease;
  }
  
  #drawer_menu_button:hover span {
    background: #ff4000;
  }
}


/* ===============================================
   2カラムレイアウト
   ============================================ */

/* メインコンテンツエリア - 全ページ共通 */
body.home #main_content,
body.page #main_content,
body.single #main_content,
body.archive #main_content,
body.search #main_content {
  max-width: 1400px !important;
  margin: 0 auto !important;
  padding: 0px 20px 120px !important;
  display: flex !important;
  flex-direction: row !important;
  gap: 60px !important;
  align-items: flex-start !important;
}

body.home #main_content {
  padding-top: 40px !important;
}


/* メインカラム（左側・メインコンテンツ） */
body.home #main_col,
body.page #main_col,
body.single #main_col,
body.archive #main_col,
body.search #main_col {
  flex: 1 !important;
  min-width: 0 !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}

/* サイドバー（右側） */
body.home #side_col,
body.page #side_col,
body.single #side_col,
body.archive #side_col,
body.search #side_col {
  width: 340px !important;
  flex-shrink: 0 !important;
  max-width: 340px !important;
  margin: 0 !important;
  display: block !important;
}


/* ===============================================
   2カラムレイアウト - レスポンシブ対応
   ============================================ */

/* タブレット：サイドバーをメインの下へ（縦積み） */
@media screen and (max-width: 1100px) {
  body.home #main_content,
  body.page #main_content,
  body.single #main_content,
  body.archive #main_content,
  body.search #main_content {
    flex-direction: column !important;
    align-items: stretch !important;
    padding: 0 30px 100px !important;
    gap: 40px !important;
  }

  body.home #main_col,
  body.page #main_col,
  body.single #main_col,
  body.archive #main_col,
  body.search #main_col {
    width: 100% !important;
    flex: 1 1 auto !important;
    order: 1;
    padding-top: 0;
  }

  body.home #side_col,
  body.page #side_col,
  body.single #side_col,
  body.archive #side_col,
  body.search #side_col {
    width: 100% !important;
    max-width: none !important;
    flex-shrink: 0 !important;
    order: 2;
    /* 親 responsive と揃え、ウィジェット内レイアウト用（上の display:block はデスクトップのみ） */
    display: flex !important;
    flex-wrap: wrap !important;
  }
}

/* スマートフォン - 1カラムに変更 */
@media screen and (max-width: 768px) {
  body.home #main_content,
  body.page #main_content,
  body.single #main_content,
  body.archive #main_content,
  body.search #main_content {
    display: block !important;
    padding: 0 20px 60px !important;
  }
  
  body.home #main_col,
  body.page #main_col,
  body.single #main_col,
  body.archive #main_col,
  body.search #main_col {
    width: 100% !important;
    margin-bottom: 80px !important;
  }
  
  body.home #side_col,
  body.page #side_col,
  body.single #side_col,
  body.archive #side_col,
  body.search #side_col {
    width: 100% !important;
    max-width: none !important;
    display: block !important;
  }

  /*
   * 親 responsive.css が ~800px まで .widget_content を 50% 幅にしているため、
   * 768px 以下はサイドバー内ウィジェット（Category 等）を 1 列・幅いっぱいにする。
   */
  #side_col .widget_content {
    width: 100% !important;
    max-width: 100% !important;
    flex: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box;
  }
}


/* ===============================================
   トップページ 最新記事スライダー
   ============================================ */

#front_latest_slider {
  margin-bottom: 60px;
}

.susup_latest_swiper {
  position: relative;
  width: 100%;
  /* 画像エリアの高さ（16:9）に合わせてナビ位置を決める */
  container-type: inline-size;
  container-name: susup-front-slider;
}

/* スライダー画像の手前・右下（右16px・下12px） */
.susup_slider_nav {
  position: absolute;
  right: 16px;
  top: calc(56.25cqw - 12px);
  transform: translateY(-100%);
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  z-index: 10;
}

.susup_slider_nav_btn {
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  line-height: 0;
  -webkit-appearance: none;
  appearance: none;
}

.susup_slider_nav_btn img {
  display: block;
  width: 48px;
  height: 22px;
}

.susup_slider_nav_btn.swiper-button-disabled {
  opacity: 0.35;
  cursor: default;
  pointer-events: none;
}

.susup_slider_nav_btn:focus-visible {
  outline: 2px solid #111;
  outline-offset: 2px;
}

.susup_latest_swiper .swiper-slide {
  height: auto;
}

.slider_item {
  display: block;
  text-decoration: none;
  color: inherit;
  transition: opacity 0.3s ease;
}

.slider_item:hover {
  opacity: 0.85;
}

.slider_image {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 aspect ratio */
  background: #f0f0f0;
  overflow: hidden;
  margin-bottom: 20px;
}

.slider_image .slide_img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.slider_content {
  padding: 0;
}

.slider_category {
  display: inline-block;
  padding: 4px 12px;
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  background: #ff4000;
  margin-bottom: 10px;
  text-decoration: none;
}

.slider_date {
  display: block;
  font-size: 13px;
  color: #111;
  margin-bottom: 10px;
}

/* スライダー：meta-1 / meta-2（カテゴリ＋日付の div.slider_meta とは別） */
p.slider_meta {
  font-size: 16px;
  color: #606060;
  font-weight: 400;
  margin: 0 0 8px 0;
  line-height: 1.4;
}

p.slider_meta .slider_meta2 {
  margin-left: 1em;
}

.slider_title {
  font-size: 24px;
  font-weight: 500;
  line-height: 1.5;
  color: #333;
  margin-bottom: 12px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.slider_lead {
  font-size: 16px;
  line-height: 1.7;
  color: #111;
  margin: 0 0 15px 0;
}

.slider_tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 15px;
  margin-left: -8px;
}

.slider_tag {
  display: inline-block;
  padding: 4px 12px;
  font-size: 12px;
  color: #111;
  background: #f5f5f5;
  border-radius: 3px;
  text-decoration: none;
  transition: all 0.3s ease;
}

.slider_tag:hover {
  background: #e0e0e0;
  color: #333;
}

/* カテゴリ + 日付のメタ情報エリア */
div.slider_meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 20px;
}

.slider_category {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 500;
  color: #000;
  text-decoration: none;
  margin: 0;
  padding: 0;
  background: none;
  position: relative;
  padding-left: 18px;
  font-family: itc-american-typewriter, serif;
}

/* カテゴリ前のカラーバー（12px × 3px） - 疑似要素化 */
.slider_category::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
  width: 12px;
  height: 3px;
  background: #666;
  border-radius: 2px;
}

/* カテゴリ別カラー */
.slider_category.category-compass::before { background: var(--category-compass); }
.slider_category.category-citizen::before { background: var(--category-citizen); }
.slider_category.category-company::before { background: var(--category-company); }
.slider_category.category-community::before { background: var(--category-community); }
.slider_category.category-culture::before { background: var(--category-culture); }
.slider_category.category-column::before { background: var(--category-column); }

.slider_date {
  display: inline-block;
  font-size: 12px;
  color: #111;
  margin: 0;
}

/* Swiperページネーション（ドット） */
.susup_slider_pagination {
  position: relative !important;
  margin-top: 30px !important;
  bottom: auto !important;
}

.susup_slider_pagination .swiper-pagination-bullet {
  width: 12px;
  height: 12px;
  background: #fff;
  border: 1px solid #111;
  opacity: 1;
  margin: 0 6px;
}

.susup_slider_pagination .swiper-pagination-bullet-active {
  border: 1px solid #111;
  background: #111;
}


/* ===============================================
   スライダー - レスポンシブ対応
   ============================================ */

@media screen and (max-width: 1100px) {
  #front_latest_slider {
    margin-bottom: 40px;
  }
  
  .slider_title {
    font-size: 16px;
  }
  
  .slider_lead {
    font-size: 13px;
  }
}

@media screen and (max-width: 768px) {
  #front_latest_slider {
    margin-bottom: 50px;
  }
  
  .slider_image {
    margin-bottom: 15px;
  }
  
  .slider_content {
    padding: 0 5px;
  }
  
  .slider_title {
    font-size: 15px;
  }
  
  .slider_lead {
    font-size: 12px;
  }
  
  .susup_slider_pagination {
    margin-top: 20px !important;
  }

  .susup_slider_nav {
    display: none !important;
  }
}


/* ===============================================
   シングル投稿ページ
   ============================================ */

/* メタ情報（meta-1・meta-2）のコンテナ */
.single_meta_info {
  font-size: 16px;
  color: #111;
  font-weight: 400;
  margin: 0 0 15px 0;
  line-height: 1.4;
}

.single_meta1 {
  margin-right: 1em;
}

.single_name {
  margin-right: 1em;
}

#single_post_header {
  margin-bottom: 58px;
  width: 100%;
}
#single_post_header_image {
  border-radius: 0;
  aspect-ratio: 16 / 9 !important;
}
.post_content h2 {
  font-size: 20px;
  text-align: left;
}
#single_post_header .title {
  font-size: 24px;
}
@media screen and (max-width: 1100px) {
  #single_post_header {
    max-width: 100%;
  }
}
@media screen and (max-width: 800px) {
  #single_post_header_image {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
}
@media screen and (max-width: 768px) {
  #single_post_header_image {
    width: 100%;
  }
}

/* カテゴリ + 日付のメタ情報エリア */
.single_meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
  margin-bottom: 20px;
}

.single_category {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 500;
  color: #000;
  text-decoration: none;
  margin: 0;
  padding: 0;
  background: none;
  position: relative;
  padding-left: 18px;
  font-family: itc-american-typewriter, serif;
}

.p-toc ul {
  gap: 8px;
  margin-left: 1em !important;
}

/* カテゴリ前のカラーバー（12px × 3px） - 疑似要素化 */
.single_category::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
  width: 12px;
  height: 3px;
  background: #666;
  border-radius: 0px;
}

/* カテゴリ別カラー */
.single_category.category-compass::before { background: var(--category-compass); }
.single_category.category-citizen::before { background: var(--category-citizen); }
.single_category.category-company::before { background: var(--category-company); }
.single_category.category-community::before { background: var(--category-community); }
.single_category.category-culture::before { background: var(--category-culture); }
.single_category.category-column::before { background: var(--category-column); }

.single_date {
  display: inline-block;
  font-size: 14px;
  color: #666;
  margin: 0;
}

/* 目次コンテナ */
#toc_container {
  margin: 40px 0;
}

#toc_container .p-toc {
  margin-bottom: 0;
}

/* 本文のwrapper */
.post_content_wrapper {
  /* 本文コンテンツのスタイル */
}

.p-toc {
  background: none;
  border-radius: 0;
  border: 1px solid #ccc;
  border-right: none;
  border-left: none;
  margin-bottom: 100px;
}
.p-toc-headline {
  text-align: left;
}

.post_content p {
  line-height: 1.8;
  margin: 0 0 1em 0;
}

/* 本文インライン「注釈」（公開ページは 14px／エディタでは 12px で区別） */
.post_content .susup-text-annotation,
.post_content_wrapper .susup-text-annotation {
  font-size: 14px;
  line-height: 1.6;
}

/* ===============================================
   PICK UPセクション
   ============================================ */

#front_pickup {
  margin-top: 60px;
  margin-bottom: 100px;
}

.pickup_heading {
  font-size: 32px;
  font-family: itc-american-typewriter, serif !important;
  font-weight: 700;
  color: #333;
  margin-bottom: 40px;
  padding-bottom: 20px;
  border-bottom: 2px solid #111;
  letter-spacing: 0.05em;
}

.pickup_container {
  display: flex;
  flex-direction: column;
  gap: 60px;
}

.pickup_item {
  background: #fff;
  display: flex;
  gap: 0;
  transition: all 0.3s ease;
}

.pickup_item:hover {
  opacity: 0.9;
}

.pickup_link {
  display: flex;
  gap: 30px;
  text-decoration: none;
  color: inherit;
  width: 60%;
  align-items: flex-end;
}

.pickup_image {
  position: relative;
  width: 100%;
  flex-shrink: 0;
  overflow: hidden;
  background: #f0f0f0;
}

.pickup_image::before {
  content: '';
  display: block;
  padding-top: 56.25%; /* 16:9 aspect ratio */
}

.pickup_img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.pickup_item:hover .pickup_img {
  transform: scale(1.05);
}

.pickup_content {
  width: 40%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0 0 0 30px;
}

.pickup_category {
  display: inline-block;
  background: #ff4000;
  color: #fff;
  padding: 6px 16px;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  margin-bottom: 12px;
  width: fit-content;
  transition: background 0.3s;
  letter-spacing: 0.05em;
}

.pickup_category_old {
  display: none !important;
}

.pickup_category:hover {
  background: #0056b3;
}

.pickup_date {
  display: block;
  font-size: 13px;
  color: #999;
  margin-bottom: 15px;
  font-weight: 400;
}

.pickup_date_old {
  display: none !important;
}

/* meta-1 / meta-2（カテゴリ＋日付の div.pickup_meta とは別要素） */
p.pickup_meta {
  font-size: 15px;
  color: #606060;
  font-weight: 400;
  margin: 0 0 10px 0;
  line-height: 1.4;
}

p.pickup_meta .pickup_meta1 {
  margin-right: 1em;
}

.pickup_name {
  margin-right: 1em;
}

.pickup_title {
  font-size: 22px;
  font-weight: 500;
  color: #111;
  line-height: 1.4;
  margin-bottom: 18px;
  letter-spacing: 0.02em;
}

.pickup_lead {
  font-size: 16px;
  color: #111;
  line-height: 1.7;
  letter-spacing: 0.02em;
  margin-bottom: 10px;
}

.pickup_tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.pickup_tag {
  display: inline-block;
  padding: 4px 12px;
  font-size: 12px;
  color: #111;
  background: #f5f5f5;
  border-radius: 3px;
  text-decoration: none;
  transition: all 0.3s ease;
}

.pickup_tag:hover {
  background: #e0e0e0;
  color: #333;
}

/* カテゴリ + 日付のメタ情報エリア */
div.pickup_meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
}

.pickup_category {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 500;
  color: #000;
  text-decoration: none;
  margin: 0;
  padding: 0;
  background: none;
  position: relative;
  padding-left: 18px;
  font-family: itc-american-typewriter, serif;
}

.pickup_category:hover {
  opacity: 0.7;
}

/* カテゴリ前のカラーバー（12px × 3px） - 疑似要素化 */
.pickup_category::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
  width: 12px;
  height: 3px;
  background: #666;
  border-radius: 2px;
}

/* カテゴリ別カラー */
.pickup_category.category-compass::before { background: var(--category-compass); }
.pickup_category.category-citizen::before { background: var(--category-citizen); }
.pickup_category.category-company::before { background: var(--category-company); }
.pickup_category.category-community::before { background: var(--category-community); }
.pickup_category.category-culture::before { background: var(--category-culture); }
.pickup_category.category-column::before { background: var(--category-column); }

.pickup_date {
  display: inline-block;
  font-size: 12px;
  color: #111;
  margin: 0;
}


/* ===============================================
   PICK UP - レスポンシブ対応
   ============================================ */

@media screen and (max-width: 1100px) {
  #front_pickup {
    margin-top: 40px;
    margin-bottom: 40px;
  }
  
  .pickup_heading {
    font-size: 28px;
    margin-bottom: 30px;
  }
  
  .pickup_container {
    gap: 40px;
  }
  
  .pickup_title {
    font-size: 18px;
  }
  
  .pickup_lead {
    font-size: 13px;
  }
}

@media screen and (max-width: 768px) {
  #front_pickup {
    margin-top: 30px;
    margin-bottom: 30px;
  }
  
  .pickup_heading {
    font-size: 24px;
    margin-bottom: 40px;
  }
  .pickup_container {
    gap: 50px;
  }

  /* スマホ：画像の下にテキスト（縦積み） */
  #front_pickup .pickup_item {
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
  }

  #front_pickup .pickup_link {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    max-width: 100% !important;
    align-items: stretch !important;
    align-self: stretch !important;
    gap: 0 !important;
  }

  #front_pickup .pickup_image {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
  }

  #front_pickup .pickup_content {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    padding: 20px 0 0 0 !important;
    justify-content: flex-start !important;
  }
  
  .pickup_category {
    margin-bottom: 10px;
  }
  
  .pickup_date {
    margin-bottom: 10px;
  }
  
  .pickup_title {
    font-size: 16px;
    margin-bottom: 15px;
    font-weight: 500;
  }
  
  .pickup_lead {
    font-size: 13px;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
  }
}


/* ===============================================
   最新記事リスト
   ============================================ */

#front_latest_posts {
  margin-top: 80px;
  margin-bottom: 60px;
}

.latest_heading {
  font-size: 32px;
  font-family: itc-american-typewriter, serif !important;
  font-weight: 700;
  color: #333;
  margin-bottom: 40px;
}
.latest_posts_grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 50px 40px;
}

.latest_post_item {
  background: #fff;
  transition: opacity 0.3s ease;
}

.latest_post_item:hover {
  opacity: 0.9;
}

.latest_post_link {
  display: block;
  text-decoration: none;
  color: inherit;
}

.latest_post_image {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 aspect ratio */
  overflow: hidden;
  background: #f0f0f0;
  margin-bottom: 20px;
}

.latest_post_img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.latest_post_item:hover .latest_post_img {
  transform: scale(1.05);
}

.latest_post_content {
  padding: 0;
}

.latest_post_category {
  display: inline-block;
  background: #ff4000;
  color: #fff;
  padding: 4px 12px;
  font-size: 11px;
  font-weight: 600;
  margin-bottom: 8px;
  letter-spacing: 0.05em;
}

.latest_post_date {
  display: block;
  font-size: 12px;
  color: #999;
  margin-bottom: 10px;
}

/* 新着グリッド：meta-1 / meta-2（カテゴリ＋日付の div.latest_post_meta とは別） */
p.latest_post_meta {
  font-size: 13px;
  color: #111;
  font-weight: 400;
  margin: 0 0 8px 0;
  line-height: 1.4;
}

p.latest_post_meta .latest_post_meta2 {
  margin-left: 1em;
}

.latest_post_title {
  font-size: 16px;
  font-weight: 700;
  color: #333;
  line-height: 1.6;
  margin-bottom: 12px;
  letter-spacing: 0.02em;
}

.latest_post_lead {
  font-size: 13px;
  color: #111;
  line-height: 1.7;
  letter-spacing: 0.02em;
  margin: 0 0 10px 0;
}

.latest_post_tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.latest_post_tag {
  display: inline-block;
  padding: 3px 10px;
  font-size: 11px;
  color: #111;
  background: #f5f5f5;
  border-radius: 3px;
  text-decoration: none;
  transition: all 0.3s ease;
}

.latest_post_tag:hover {
  background: #e0e0e0;
  color: #333;
}

/* カテゴリ + 日付のメタ情報エリア */
div.latest_post_meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
}

.latest_post_category {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 500;
  color: #000;
  text-decoration: none;
  margin: 0;
  padding: 0;
  background: none;
  position: relative;
  padding-left: 18px;
  font-family: itc-american-typewriter, serif;
}

/* カテゴリ前のカラーバー（12px × 3px） - 疑似要素化 */
.latest_post_category::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
  width: 12px;
  height: 3px;
  background: #666;
  border-radius: 2px;
}

/* カテゴリ別カラー */
.latest_post_category.category-compass::before { background: var(--category-compass); }
.latest_post_category.category-citizen::before { background: var(--category-citizen); }
.latest_post_category.category-company::before { background: var(--category-company); }
.latest_post_category.category-community::before { background: var(--category-community); }
.latest_post_category.category-culture::before { background: var(--category-culture); }
.latest_post_category.category-column::before { background: var(--category-column); }

.latest_post_date {
  display: inline-block;
  font-size: 12px;
  color: #111;
  margin: 0;
}

/* さらに表示ボタン */
.load_more_wrapper {
  text-align: center;
  margin-top: 50px;
}

.load_more_button {
  background: #111;
  color: #fff;
  border: none;
  padding: 15px 60px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.3s ease;
  letter-spacing: 0.1em;
}

.load_more_button:hover {
  background: #555;
}

.load_more_button:disabled {
  background: #ccc;
  cursor: not-allowed;
}


/* ===============================================
   最新記事リスト - レスポンシブ対応
   ============================================ */

@media screen and (max-width: 1100px) {
  #front_latest_posts {
    margin-top: 60px;
    margin-bottom: 40px;
  }
  
  .latest_posts_grid {
    gap: 30px 20px;
  }
}

@media screen and (max-width: 768px) {
  #front_latest_posts {
    margin-top: 40px;
    margin-bottom: 30px;
  }
  .latest_heading {
    font-size: 24px;
    margin-bottom: 40px;
    padding-bottom: 20px;
    border-bottom: 2px solid #111;
  }
  

  .latest_posts_grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  
  .load_more_wrapper {
    margin-top: 40px;
  }
  
  .load_more_button {
    padding: 12px 50px;
    font-size: 13px;
  }
}


/* ===============================================
   カスタム最新記事ウィジェット
   ============================================ */

.widget_susup_recent_posts .widget_recent_entries_list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-bottom: 2px solid #111;
}

.widget_susup_recent_posts .widget_recent_entries_list li {
  margin-bottom: 0px;
  border-bottom: 1px solid #e5e5e5;
}
.widget_susup_recent_posts .widget_recent_entries_list li a {
  padding: 20px 0;
}
.widget_susup_recent_posts .widget_recent_entries_list li a:hover {
  background: #fbfbfb;
}

.widget_susup_recent_posts .widget_recent_entries_list li:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.widget_susup_recent_posts .recent_post_link {
  display: flex;
  gap: 15px;
  text-decoration: none;
  color: inherit;
  transition: opacity 0.3s ease;
}

.widget_susup_recent_posts .recent_post_link:hover {
  opacity: 0.7;
}

.widget_susup_recent_posts .recent_post_thumbnail {
  position: relative;
  width: 96px;
  height: 54px; /* 16:9 aspect ratio */
  flex-shrink: 0;
  overflow: hidden;
  background: #f0f0f0;
}

.widget_susup_recent_posts .recent_post_thumbnail img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.widget_susup_recent_posts .recent_post_content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.widget_susup_recent_posts .recent_post_series {
  font-size: 14px;
  color: #606060;
  font-weight: 400;
  margin: 0;
  line-height: 1.4;
  display: none;
}

.widget_susup_recent_posts .recent_post_title {
  font-size: 16px;
  font-weight: 500;
  color: #333;
  line-height: 1.5;
  letter-spacing: 0.02em;
  margin: 0;
}

.widget_susup_recent_posts .recent_post_meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: auto;
}

.widget_susup_recent_posts .recent_post_category {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 500;
  color: #000;
  text-decoration: none;
  margin: 0;
  padding: 0;
  background: none;
  position: relative;
  padding-left: 14px;
  font-family: itc-american-typewriter, serif;
}

.widget_susup_recent_posts .recent_post_category::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
  width: 8px;
  height: 2px;
  background: #666;
  border-radius: 1px;
}

/* カテゴリ別カラー */
.widget_susup_recent_posts .category-compass .recent_post_category::before,
.widget_susup_recent_posts .recent_post_category.category-compass::before { background: var(--category-compass); }
.widget_susup_recent_posts .category-citizen .recent_post_category::before,
.widget_susup_recent_posts .recent_post_category.category-citizen::before { background: var(--category-citizen); }
.widget_susup_recent_posts .category-company .recent_post_category::before,
.widget_susup_recent_posts .recent_post_category.category-company::before { background: var(--category-company); }
.widget_susup_recent_posts .category-community .recent_post_category::before,
.widget_susup_recent_posts .recent_post_category.category-community::before { background: var(--category-community); }
.widget_susup_recent_posts .category-culture .recent_post_category::before,
.widget_susup_recent_posts .recent_post_category.category-culture::before { background: var(--category-culture); }
.widget_susup_recent_posts .category-column .recent_post_category::before,
.widget_susup_recent_posts .recent_post_category.category-column::before { background: var(--category-column); }

.widget_susup_recent_posts .recent_post_date {
  font-size: 11px;
  color: #666;
  margin: 0;
}

.widget_headline {
  height: auto !important;
  line-height: 1.01 !important;
  margin-bottom: 0;
  padding: 0 0 20px !important;
  background: none !important;
  color: #111 !important;
  font-size: 32px !important;
  font-weight: 600 !important;
  font-family: itc-american-typewriter, serif;
  border-bottom: 2px solid #111 !important;
}

/* モバイル */
@media screen and (max-width: 768px) {
  .widget_headline {
    font-size: 24px !important;
    padding: 0 0 10px !important;
  }
}

/* ===============================================
   カスタム人気記事ウィジェット（ランキング）
   ============================================ */

.widget_susup_popular_posts .widget_popular_list {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: ranking;
}

.widget_susup_popular_posts .popular_item {
  border-bottom: 1px solid #e5e5e5;
}

.widget_susup_popular_posts .popular_item:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.widget_susup_popular_posts .popular_link {
  display: flex;
  padding: 15px 0 10px;
  gap: 15px;
  text-decoration: none;
  color: inherit;
  transition: opacity 0.3s ease;
}

.widget_susup_popular_posts .popular_link:hover {
  opacity: 0.7;
}

.widget_susup_popular_posts .popular_rank {
  width: 38px;
  height: 38px;
  margin-top: 13px;
  flex-shrink: 0;
  background: #111;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  font-weight: 500;
  font-family: itc-american-typewriter, serif;
}

.widget_susup_popular_posts .popular_content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.widget_susup_popular_posts .popular_series {
  font-size: 14px;
  color: #606060;
  font-weight: 400;
  margin: 0;
  line-height: 1.4;
  display: none;
}

.widget_susup_popular_posts .popular_title {
  font-size: 16px;
  font-weight: 500;
  color: #333;
  line-height: 1.4;
  letter-spacing: 0.02em;
  margin: 0;
}

.widget_susup_popular_posts .popular_meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: auto;
}

.widget_susup_popular_posts .popular_category {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 500;
  color: #000;
  text-decoration: none;
  margin: 0;
  padding: 0;
  background: none;
  position: relative;
  padding-left: 14px;
  font-family: itc-american-typewriter, serif;
}

.widget_susup_popular_posts .popular_category::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
  width: 8px;
  height: 2px;
  background: #666;
  border-radius: 1px;
}

/* カテゴリ別カラー */
.widget_susup_popular_posts .category-compass .popular_category::before,
.widget_susup_popular_posts .popular_category.category-compass::before { background: var(--category-compass); }
.widget_susup_popular_posts .category-citizen .popular_category::before,
.widget_susup_popular_posts .popular_category.category-citizen::before { background: var(--category-citizen); }
.widget_susup_popular_posts .category-company .popular_category::before,
.widget_susup_popular_posts .popular_category.category-company::before { background: var(--category-company); }
.widget_susup_popular_posts .category-community .popular_category::before,
.widget_susup_popular_posts .popular_category.category-community::before { background: var(--category-community); }
.widget_susup_popular_posts .category-culture .popular_category::before,
.widget_susup_popular_posts .popular_category.category-culture::before { background: var(--category-culture); }
.widget_susup_popular_posts .category-column .popular_category::before,
.widget_susup_popular_posts .popular_category.category-column::before { background: var(--category-column); }

.widget_susup_popular_posts .popular_date {
  font-size: 11px;
  color: #666;
  margin: 0;
}


/* ===============================================
   カスタムカテゴリーウィジェット
   ============================================ */

.widget_content {
  margin-bottom: 80px;
}
.widget_susup_categories .widget_categories_list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.widget_categories_list { 
  border-bottom: 2px solid #111;
}
.widget_susup_categories .widget_categories_list li {
  margin-bottom: 0px;
  padding-bottom: 0px;
  border-bottom: 1px solid #e5e5e5;
}
.widget_susup_categories .widget_categories_list li a {
}

.widget_susup_categories .widget_categories_list li:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.widget_susup_categories .widget_categories_list a {
  display: block;
  text-decoration: none;
  color: #111;
  font-size: 20px;
  font-weight: 500;
  font-family: itc-american-typewriter, serif;
  transition: color 0.3s ease;
  letter-spacing: 0.02em;
  padding: 15px 0px 15px 8px;
  position: relative;
}
.widget_susup_categories .widget_categories_list a:hover {
  background: #fbfbfb;
}


.widget_susup_categories .category-name {
  display: block;
  padding-left: 23px;
  position: relative;
  font-family: itc-american-typewriter, serif;
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
}

.widget_susup_categories .category-name::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
  width: 16px;
  height: 4px;
  background: var(--category-compass);
}

/* カテゴリ別カラー */
.widget_susup_categories .category-compass .category-name::before { background: var(--category-compass); }
.widget_susup_categories .category-citizen .category-name::before { background: var(--category-citizen); }
.widget_susup_categories .category-company .category-name::before { background: var(--category-company); }
.widget_susup_categories .category-community .category-name::before { background: var(--category-community); }
.widget_susup_categories .category-culture .category-name::before { background: var(--category-culture); }
.widget_susup_categories .category-column .category-name::before { background: var(--category-column); }

.widget_susup_categories .category-count {
  color: #999;
  font-size: 13px;
  font-weight: 400;
  margin-left: 4px;
}

.widget_susup_categories .category-description {
  display: block;
  margin-top: 4px;
  padding-left: 22px;
  font-size: 14px;
  color: #111;
  line-height: 1.6;
  letter-spacing: 0.02em;
  font-weight: 400;
}

.widget_susup_categories .category-description p {
  margin: 0;
}
@media screen and (max-width: 768px) {
  .widget_categories_list ,
  .widget_susup_recent_posts .widget_recent_entries_list {
    border-bottom: none;
  }
}

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

#bread_crumb , body.single #bread_crumb {
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
  margin-top: 0;
  margin-bottom: 5px;
  box-sizing: border-box;
}
@media screen and (max-width: 1100px) {
  #bread_crumb {
    padding-left: 30px !important;
    padding-right: 30px !important;
  }
}

/* 親テーマの 1455px（.show_sidebar.normal_content_width）を 1400px に統一 */
body.page.show_sidebar.normal_content_width #bread_crumb,
body.page-template-default.show_sidebar.normal_content_width #bread_crumb {
  max-width: 1400px !important;
}

#bread_crumb li {
  font-size: 10px !important;
}

/*
 * 2番目の項目を隠すのは「投稿一覧へのリンク」が続くブログ系画面のみ。
 * 固定ページ・添付・CPTアーカイブ等では2番目が現在地または必須リンクのため非表示にしない。
 */
body.single-post #bread_crumb li:nth-child(2),
body.category #bread_crumb li:nth-child(2),
body.tag #bread_crumb li:nth-child(2),
body.date #bread_crumb li:nth-child(2),
body.author #bread_crumb li:nth-child(2),
body.blog #bread_crumb li:nth-child(2),
body.single-news #bread_crumb li:nth-child(2),
body.single-service #bread_crumb li:nth-child(2) {
  display: none !important;
}

/* サイドバーなし固定ページ：#page_contents .post_content と横位置を揃える（親 responsive の padding に合わせる） */
body.page.hide_sidebar #bread_crumb {
  max-width: none !important;
  width: 100%;
  padding-left: 60px;
  padding-right: 60px;
}

@media screen and (max-width: 1100px) {
  body.page.hide_sidebar #bread_crumb {
    padding-left: 40px;
    padding-right: 40px;
  }
  
}

@media screen and (max-width: 800px) {
  body.page.hide_sidebar #bread_crumb {
    padding-left: 20px;
    padding-right: 20px;
  }
}


/* ===============================================
   アーカイブページ - 2カラムレイアウト対応
   ============================================ */

/* カテゴリソートを非表示 */
#news_category_sort_wrap {
  display: none;
}

/* アーカイブページの記事リストを2カラムに（gap:30px と幅を一致させ右端の空きを出さない） */
.blog_list .item {
  width: calc((100% - 30px) / 2);
  max-width: calc((100% - 30px) / 2);
  box-sizing: border-box;
}

/* 画像のアスペクト比を16:9に統一 */
.blog_list .image_link {
  aspect-ratio: 16 / 9 !important;
  border-radius: 0px !important;
}

/* 最初の記事だけ1カラム（100%幅） */
.blog_list .item.first-post {
  width: 100%;
  max-width: 100%;
  display: flex;
  flex-direction: row;
  gap: 20px;
}
.blog_list .item.first-post .image_link {
  width: 70%;
}
.blog_list .item.first-post .content {
  width: 30%;
}

@media screen and (max-width: 768px) {
  .blog_list .item.first-post {
    flex-direction: column;
    align-items: stretch;
  }

  .blog_list .item.first-post .image_link {
    width: 100%;
    max-width: 100%;
    flex: 0 0 auto;
  }

  .blog_list .item.first-post .content {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    flex: 1 1 auto;
  }
}

#archive_blog .date {
  margin-bottom: 20px;
}
/* アーカイブ一覧：meta-1 / meta-2 行（カテゴリ＋日付の div.archive_meta とは別） */
p.archive_meta {
  font-size: 14px;
  color: #111;
  font-weight: 600;
  margin: 0 0 10px 0;
  line-height: 1.4;
}

p.archive_meta .archive_meta2 {
  margin-left: 1em;
}

.archive_lead {
  font-size: 14px;
  color: #111;
  line-height: 1.7;
  margin: 12px 0 10px 0;
  letter-spacing: 0.02em;
}

.archive_tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.archive_tag {
  display: inline-block;
  padding: 3px 10px;
  font-size: 11px;
  color: #111;
  background: #f5f5f5;
  border-radius: 3px;
  text-decoration: none;
  transition: all 0.3s ease;
}

.archive_tag:hover {
  background: #e0e0e0;
  color: #333;
}

/* カテゴリ + 日付のメタ情報エリア */
div.archive_meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
}

.archive_category {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 500;
  color: #000;
  text-decoration: none;
  margin: 0;
  padding: 0;
  background: none;
  position: relative;
  padding-left: 18px;
  font-family: itc-american-typewriter, serif;
}

/* カテゴリ前のカラーバー（12px × 3px） - 疑似要素化 */
.archive_category::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
  width: 12px;
  height: 3px;
  background: #666;
  border-radius: 2px;
}

/* カテゴリ別カラー */
.archive_category.category-compass::before { background: var(--category-compass); }
.archive_category.category-citizen::before { background: var(--category-citizen); }
.archive_category.category-company::before { background: var(--category-company); }
.archive_category.category-community::before { background: var(--category-community); }
.archive_category.category-culture::before { background: var(--category-culture); }
.archive_category.category-column::before { background: var(--category-column); }

.archive_date {
  display: inline-block;
  font-size: 12px;
  color: #111;
  margin: 0;
}

/* 投稿日・更新日のアイコンを削除 */
html body time::before,
html body time:before,
html body .date::before,
html body .date:before,
html body .update::before,
html body .update:before,
html body .updated::before,
html body .updated:before {
  display: none !important;
  content: "" !important;
  background: none !important;
  background-image: none !important;
}

/* 更新日を非表示にする（投稿日は表示） */
html body time.update,
html body time.updated,
html body .update,
html body .updated {
  display: none !important;
}

/* 投稿記事（single）のリード */
.single_lead {
  font-size: 16px;
  color: #333;
  line-height: 1.8;
  margin: 20px 0 15px 0;
  letter-spacing: 0.05em;
}

.single_tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 15px 0 20px 0;
}

.single_tag {
  display: inline-block;
  padding: 5px 14px;
  font-size: 13px;
  color: #111;
  background: #f5f5f5;
  border-radius: 3px;
  text-decoration: none;
  transition: all 0.3s ease;
}

.single_tag:hover {
  background: #e0e0e0;
  color: #333;
}


/* ===============================================
   目次の見出しを「INDEX」に変更
   ============================================ */

.p-toc-headline {
  font-size: 0 !important;
  font-family: itc-american-typewriter, serif;
  font-weight: 500 !important;
}

.p-toc-headline::before {
  content: 'INDEX' !important;
  font-size: 18px !important;
  font-weight: 500 !important;
}

/* 目次のリストマーカーを「・」に変更 */
.p-toc li::marker {
  content: '・' !important;
  font-size: 16px !important;
}


/* ===============================================
   画像キャプションのスタイル
   ============================================ */

/* キャプションの枠を削除 */
.wp-caption,
.wp-caption-text,
figure.wp-caption {
  border: none !important;
  background: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* キャプションテキストを左寄せ */
.wp-caption-text,
figcaption,
.wp-caption figcaption {
  text-align: left !important;
  padding-top: 8px !important;
  font-size: 13px !important;
  color: #111 !important;
}


/* ===============================================
   カスタムタグ：2カラムレイアウト（テキスト＋画像）
   ============================================ */

/* エディタ用「削除」ボタンが本文に混入した場合の保険（the_content 除去と併用） */
.two-col-delete-btn {
  display: none !important;
  visibility: hidden !important;
  position: absolute !important;
  width: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
}

/* ユーザー指定の2カラムレイアウト：画像右専用 */
.two-column-img_right {
  margin: 80px 0;
}

/* 後方互換：古い構造（.two-col-contentなし）の場合 */
.two-column-img_right:not(:has(.two-col-content)) {
  display: flex;
  flex-direction: row;
  gap: 30px;
  align-items: flex-start;
}

.two-column-img_right:not(:has(.two-col-content)) > .two-col-text {
  width: 60%;
}

.two-column-img_right:not(:has(.two-col-content)) > .two-col-image {
  width: 40%;
}

/* 新しい構造（.two-col-contentあり）の場合 */

/* グリッドレイアウトで見出しと本文を分離、画像は本文と同じ行に配置 */
.two-column-img_right .two-col-content {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  grid-template-rows: auto 1fr;
  gap: 20px 70px;
}

.two-column-img_right .two-col-header {
  grid-column: 1; /* 1列目 */
  grid-row: 1; /* 1行目 */
  margin: 0;
}

.two-column-img_right .two-col-header h2,
.two-column-img_right .two-col-header h3,
.two-column-img_right .two-col-header h4,
.two-column-img_right .two-col-header h5,
.two-column-img_right .two-col-header h6 {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.6 !important;
}

.two-column-img_right .two-col-text {
  grid-column: 1; /* 1列目 */
  grid-row: 2; /* 2行目 */
  min-width: 0;
}

.two-column-img_right .two-col-text h2,
.two-column-img_right .two-col-text h3,
.two-column-img_right .two-col-text h4,
.two-column-img_right .two-col-text h5,
.two-column-img_right .two-col-text h6 {
  margin: 0 0 1em 0 !important;
  padding: 0 !important;
  line-height: 1.6 !important;
}

.two-column-img_right .two-col-text p {
  margin: 0 0 1em 0 !important;
  line-height: 1.8 !important;
  color: #111 !important;
}

.two-column-img_right .two-col-text p:last-child {
  margin-bottom: 0 !important;
}

.two-column-img_right .two-col-image {
  grid-column: 2; /* 2列目 */
  grid-row: 2; /* 2行目（本文と同じ行） */
  align-self: start; /* 2行目の上端に揃える */
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}

.two-column-img_right .two-col-image p {
  margin: 0 !important;
  padding: 0 !important;
  max-width: 100%;
  box-sizing: border-box;
}
.two-col-image p.wp-caption-text {
  padding-top: 10px !important;
  padding-bottom: 30px !important;
}
.two-col-image p img {
  margin-bottom: 20px !important;
}


.two-col-image img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 !important;
}

/* キャプション付き画像の対応（インライン width 付き .wp-caption も列内に収める） */
.two-column-img_right .two-col-image .wp-caption,
.two-column-img_right .two-col-image figure {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.two-column-img_right .two-col-image .wp-caption img,
.two-column-img_right .two-col-image figure img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}

/* ユーザー指定の2カラムレイアウト：画像左専用 */
.two-column-img_left {
  margin: 40px 0;
}

/* 後方互換：古い構造（.two-col-contentなし）の場合 */
.two-column-img_left:not(:has(.two-col-content)) {
  display: flex;
  flex-direction: row;
  gap: 30px;
  align-items: flex-start;
}

.two-column-img_left:not(:has(.two-col-content)) > .two-col-text {
  width: 60%;
  order: 2;
}

.two-column-img_left:not(:has(.two-col-content)) > .two-col-image {
  width: 40%;
  order: 1;
}


/* 新しい構造（.two-col-contentあり）の場合 */

/* グリッドレイアウトで見出しと本文を分離、画像は本文と同じ行に配置 */
.two-column-img_left .two-col-content {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  grid-template-rows: auto 1fr;
  gap: 20px 70px;
}

.two-column-img_left .two-col-header {
  grid-column: 2; /* 2列目 */
  grid-row: 1; /* 1行目 */
  margin: 0;
}

.two-column-img_left .two-col-header h2,
.two-column-img_left .two-col-header h3,
.two-column-img_left .two-col-header h4,
.two-column-img_left .two-col-header h5,
.two-column-img_left .two-col-header h6 {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.6 !important;
}

.two-column-img_left .two-col-text {
  grid-column: 2; /* 2列目 */
  grid-row: 2; /* 2行目 */
  min-width: 0;
}

.two-column-img_left .two-col-text h2,
.two-column-img_left .two-col-text h3,
.two-column-img_left .two-col-text h4,
.two-column-img_left .two-col-text h5,
.two-column-img_left .two-col-text h6 {
  margin: 0 0 1em 0 !important;
  padding: 0 !important;
  line-height: 1.6 !important;
}

.two-column-img_left .two-col-text p {
  margin: 0 0 1em 0 !important;
  line-height: 1.8 !important;
}

.two-column-img_left .two-col-text p:last-child {
  margin-bottom: 0 !important;
}

.two-column-img_left .two-col-image {
  grid-column: 1; /* 1列目 */
  grid-row: 2; /* 2行目（本文と同じ行） */
  align-self: start; /* 2行目の上端に揃える */
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}
/* 
.two-column-img_left .two-col-image p {
  margin: 0 !important;
  padding: 0 !important;
  padding-top: 25px !important;
  max-width: 100%;
  box-sizing: border-box;
}

.two-column-img_left .two-col-image img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 !important;
} */

/* キャプション付き画像の対応 */
.two-column-img_left .two-col-image .wp-caption,
.two-column-img_left .two-col-image figure {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.two-column-img_left .two-col-image .wp-caption img,
.two-column-img_left .two-col-image figure img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}

/* レスポンシブ対応 */
@media screen and (max-width: 768px) {
  /* 古い構造の場合 */
  .two-column-img_right:not(:has(.two-col-content)),
  .two-column-img_left:not(:has(.two-col-content)) {
    flex-direction: column;
    gap: 20px;
  }
  
  .two-column-img_right:not(:has(.two-col-content)) > .two-col-text,
  .two-column-img_right:not(:has(.two-col-content)) > .two-col-image,
  .two-column-img_left:not(:has(.two-col-content)) > .two-col-text,
  .two-column-img_left:not(:has(.two-col-content)) > .two-col-image {
    width: 100%;
    order: unset;
  }
  
  /* 新しい構造の場合（グリッドレイアウト） */
  .two-column-img_right .two-col-content,
  .two-column-img_left .two-col-content {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    gap: 20px;
  }
  
  .two-column-img_right .two-col-header,
  .two-column-img_right .two-col-text,
  .two-column-img_right .two-col-image,
  .two-column-img_left .two-col-header,
  .two-column-img_left .two-col-text,
  .two-column-img_left .two-col-image {
    grid-column: 1;
  }
  
  .two-column-img_right .two-col-header,
  .two-column-img_left .two-col-header {
    grid-row: 1;
  }
  
  .two-column-img_right .two-col-text,
  .two-column-img_left .two-col-text {
    grid-row: 2;
  }
  
  .two-column-img_right .two-col-image,
  .two-column-img_left .two-col-image {
    grid-row: 3;
  }
}


/* ===============================================
   投稿内画像スライダー
   ============================================ */

.post-image-slider {
  position: relative;
  width: 100%;
  max-width: 100%;
  margin: 40px 0;
  overflow: hidden !important;
}

/* 記事本文カラム内で 60% 幅・中央（モバイルは全面） */
.post-image-slider.post-image-slider--narrow {
  width: 60%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

@media screen and (max-width: 768px) {
  .post-image-slider.post-image-slider--narrow {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
}

.post-image-slider .swiper-wrapper {
  display: flex;
  align-items: stretch;
}

.post-image-slider .swiper-slide {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: none;
  min-height: auto;
  width: 100%;
}

.post-image-slider .swiper-slide img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/* キャプション付き画像の幅を強制 */
.post-image-slider .swiper-slide .wp-caption,
.post-image-slider .swiper-slide figure,
.post-image-slider .swiper-slide .wp-caption-dt,
.post-image-slider .post-slider-figure {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
}

/* インラインstyle属性も強制上書き */
.post-image-slider .wp-caption[style],
.post-image-slider figure[style] {
  width: 100% !important;
  max-width: 100% !important;
}

.post-image-slider .swiper-slide .wp-caption img,
.post-image-slider .swiper-slide figure img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  display: block !important;
}

.post-image-slider .post-slider-caption,
.post-image-slider figcaption,
.post-image-slider .wp-caption-text {
  width: 100%;
  padding: 15px 20px;
  background: rgba(0, 0, 0, 0.7);
  color: #fff;
  font-size: 14px;
  line-height: 1.6;
  text-align: left;
  margin: 0;
}

/* サムネイルスライダー */
.post-slider-thumbs {
  margin-top: 15px;
  padding: 10px 0;
  overflow: hidden;
}

.post-slider-thumbs .swiper-wrapper {
  display: flex;
}

.post-slider-thumbs .swiper-slide {
  width: 80px !important;
  height: 60px;
  opacity: 0.4;
  cursor: pointer;
  transition: all 0.3s ease;
  border: 2px solid transparent;
  border-radius: 4px;
  overflow: hidden;
}

.post-slider-thumbs .swiper-slide:hover {
  opacity: 0.7;
}

.post-slider-thumbs .swiper-slide-thumb-active {
  opacity: 1;
  border-color: #ff4000;
}

.post-slider-thumbs .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ページネーション（ドット）- 画像の外に配置 */
.post-image-slider .swiper-pagination {
  bottom: -40px !important;
  position: relative !important;
  left: 0 !important;
  transform: none !important;
  z-index: 10 !important;
  width: 100% !important;
  text-align: center !important;
  margin-top: 20px !important;
}

.post-image-slider .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  background: #999;
  opacity: 1;
  transition: all 0.3s ease;
  margin: 0 4px !important;
}

.post-image-slider .swiper-pagination-bullet-active {
  background: #ff4000;
  width: 24px;
  border-radius: 5px;
}

/* ナビゲーションボタン（PREV/NEXT）- 画像の上に重ねる */
.post-image-slider .swiper-button-prev,
.post-image-slider .swiper-button-next {
  width: 50px;
  height: 50px;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 50%;
  transition: all 0.3s ease;
  z-index: 11 !important;
  overflow: hidden !important;
  position: absolute;
  top: 50%;
  margin-top: 0;
  opacity: 0;
  visibility: hidden;
}

/* ホバー時にボタンを表示 */
.post-image-slider:hover .swiper-button-prev,
.post-image-slider:hover .swiper-button-next {
  opacity: 1;
  visibility: visible;
}

/* ボタンの縦位置を画像の中央に */
.post-image-slider .swiper-slide {
  position: relative;
}

.post-image-slider .swiper {
  position: relative;
}

.post-image-slider .swiper-button-prev {
  left: 20px;
}

.post-image-slider .swiper-button-next {
  right: 20px;
}

/* ボタン内の全ての子要素を完全に非表示 */
.post-image-slider .swiper-button-prev > *,
.post-image-slider .swiper-button-next > * {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
}

.post-image-slider .swiper-button-prev img,
.post-image-slider .swiper-button-next img,
.post-image-slider .swiper-button-prev figure,
.post-image-slider .swiper-button-next figure,
.post-image-slider .swiper-button-prev div,
.post-image-slider .swiper-button-next div {
  display: none !important;
  visibility: hidden !important;
}

.post-image-slider .swiper-button-prev:hover,
.post-image-slider .swiper-button-next:hover {
  background: rgba(255, 255, 255, 0.95);
  transform: translateY(-50%) scale(1.1);
}

.post-image-slider .swiper-button-prev::after,
.post-image-slider .swiper-button-next::after {
  content: '' !important;
  font-family: 'swiper-icons' !important;
  font-size: 22px !important;
  color: #333 !important;
  font-weight: bold !important;
  display: block !important;
  visibility: visible !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  opacity: 1 !important;
  width: auto !important;
  height: auto !important;
}

.post-image-slider .swiper-button-prev::after {
  content: 'prev' !important;
}

.post-image-slider .swiper-button-next::after {
  content: 'next' !important;
}

/* レスポンシブ対応 */
@media screen and (max-width: 768px) {
  .post-image-slider .swiper-button-prev,
  .post-image-slider .swiper-button-next {
    width: 40px;
    height: 40px;
  }
  
  .post-image-slider .swiper-button-prev {
    left: 10px;
  }
  
  .post-image-slider .swiper-button-next {
    right: 10px;
  }
  
  .post-image-slider .swiper-button-prev::after,
  .post-image-slider .swiper-button-next::after {
    font-size: 18px;
  }
  
  .post-image-slider .swiper-pagination {
    margin-top: 15px !important;
  }
  
  .post-image-slider .post-slider-caption,
  .post-image-slider figcaption,
  .post-image-slider .wp-caption-text {
    padding: 12px 15px;
    font-size: 13px;
  }
  
  .post-slider-thumbs .swiper-slide {
    width: 60px !important;
    height: 45px;
  }
}


/* 標準の2カラムレイアウト */
.two-column-layout {
  display: flex;
  gap: 40px;
  margin: 40px 0;
  align-items: flex-start;
}

.two-column-layout .text-column {
  flex: 1;
  min-width: 0;
}

.two-column-layout .image-column {
  flex: 1;
  min-width: 0;
}

.two-column-layout .image-column img {
  width: 100%;
  height: auto;
  display: block;
}

/* テキスト左・画像右 */
.two-column-layout.text-left .text-column {
  order: 1;
}

.two-column-layout.text-left .image-column {
  order: 2;
}

/* 画像左・テキスト右 */
.two-column-layout.image-left .image-column {
  order: 1;
}

.two-column-layout.image-left .text-column {
  order: 2;
}

/* シンプル版：画像とテキストを自動2カラム化 */
.two-column-auto {
  display: flex;
  gap: 40px;
  margin: 40px 0;
  align-items: flex-start;
  flex-wrap: wrap;
}

.two-column-auto > p,
.two-column-auto > ul,
.two-column-auto > ol,
.two-column-auto > h2,
.two-column-auto > h3,
.two-column-auto > h4 {
  flex: 1 1 45%;
  min-width: 300px;
  margin: 0 0 1em 0;
}

.two-column-auto > img {
  flex: 1 1 45%;
  min-width: 300px;
  max-width: 100%;
  height: auto;
  object-fit: cover;
}

/* 全ての段落をまとめて左側に配置 */
.two-column-auto.text-group {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}

.two-column-auto.text-group > :not(img) {
  grid-column: 1;
}

.two-column-auto.text-group > img {
  grid-column: 2;
  grid-row: 1 / -1;
  width: 100%;
  height: fit-content;
}

/* レスポンシブ対応 */
@media screen and (max-width: 768px) {
  .two-column-layout,
  .two-column-auto {
    flex-direction: column;
    gap: 20px;
  }
  
  .two-column-layout .text-column,
  .two-column-layout .image-column {
    order: unset !important;
  }
  
  .two-column-auto > p,
  .two-column-auto > ul,
  .two-column-auto > ol,
  .two-column-auto > img {
    flex: 1 1 100%;
    min-width: 100%;
  }
  
  .two-column-auto.text-group {
    grid-template-columns: 1fr;
  }
  
  .two-column-auto.text-group > :not(img),
  .two-column-auto.text-group > img {
    grid-column: 1;
    grid-row: auto;
  }
  .two-column-img_right {
    margin: 40px 0;
  }
  .two-col-image {
    margin-top: 30px;
  }
  .two-column-img_left {
    margin: 40px 0;
  }
}


/* カテゴリキャッチコピー */
.category_catchphrase {
  font-size: 18px;
  color: #333;
  font-weight: 600;
  line-height: 1.6;
  margin-top: 20px;
  letter-spacing: 0.05em;
}

.category_catchphrase span {
  display: inline-block;
}

.category_button {
  border-radius: 0;
}

/* 関連記事：カテゴリをシングル記事メタ等と同じカラーバー付きラベルに */
#related_post .category_button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 500;
  color: #000 !important;
  text-decoration: none;
  margin: 0 0 12px 0;
  padding: 0 0 0 18px;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  min-width: 0 !important;
  height: auto !important;
  line-height: 1.4 !important;
  position: relative;
  font-family: itc-american-typewriter, serif !important;
  text-align: left;
  box-shadow: none !important;
}

#related_post .category_button::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
  width: 12px;
  height: 3px;
  background: #666;
  border-radius: 0;
}

#related_post .category_button.category-compass::before {
  background: var(--category-compass);
}
#related_post .category_button.category-citizen::before {
  background: var(--category-citizen);
}
#related_post .category_button.category-company::before {
  background: var(--category-company);
}
#related_post .category_button.category-community::before {
  background: var(--category-community);
}
#related_post .category_button.category-culture::before {
  background: var(--category-culture);
}
#related_post .category_button.category-column::before {
  background: var(--category-column);
}

#related_post .category_button:hover {
  color: #000 !important;
  opacity: 0.7;
}
/* アーカイブページのメインコンテンツとサイドバーの調整 */
body.archive #main_content,
body.blog #main_content,
body.search #main_content {
  display: flex;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

body.archive #main_col,
body.blog #main_col,
body.search #main_col {
  flex: 1;
  min-width: 0;
}

body.archive #side_col,
body.blog #side_col,
body.search #side_col {
  width: 320px;
  flex-shrink: 0;
}
#archive_header {
  display: flex;
  max-width: 100%;
  padding: 0;
}
#archive_header .title_area {
  width: 100%;
  padding-right: 50px;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 40px;
}
#archive_header .sub_title {
  font-size: 24px;
}
#archive_header .desc {
  width: 100%;
  padding: 30px 0 0;
}


/* アーカイブページのブログリストの幅調整 */
body.archive #archive_blog,
body.blog #archive_blog,
body.search #archive_blog {
  width: 100%;
}

#archive_blog {
  width: 100%;
  padding: 0;
}
.blog_list {
  gap: 30px;
  justify-content: flex-start;
}
.blog_list .item {
  margin: 0;
}

/* 1000px以下：2カラムは列間だけ 30px gap（幅は gap を差し引いて半分＝右端の余白を出さない） */
@media screen and (max-width: 1000px) {
  #archive_blog .blog_list,
  .blog_list {
    gap: 50px 30px; /* 行間 50px / 列間 30px（センターのみ） */
    justify-content: flex-start;
  }

  #archive_blog .blog_list .item,
  .blog_list .item {
    width: calc((100% - 30px) / 2) !important;
    max-width: calc((100% - 30px) / 2);
    margin: 0 !important;
  }

  #archive_blog .blog_list .item.first-post,
  .blog_list .item.first-post {
    width: 100% !important;
    max-width: 100%;
  }

  /* 親テーマの 3 カラム用 #archive_blog ... :nth-child(3n) と競合しないよう明示 */
  #archive_blog .blog_list .item:nth-child(3n),
  #archive_blog .blog_list .item:nth-child(2n + 3) {
    margin-right: 0 !important;
  }
}

/* レスポンシブ対応 */
@media screen and (max-width: 1100px) {
  body.archive #main_content,
  body.blog #main_content,
  body.search #main_content {
    gap: 30px;
  }
  
  body.archive #side_col,
  body.blog #side_col,
  body.search #side_col {
    width: 280px;
    margin-top: 100px !important;
  }
}

@media screen and (max-width: 768px) {
  body.archive #main_content,
  body.blog #main_content,
  body.search #main_content {
    flex-direction: column;
    padding-top: 0px !important;
  }
  
  body.archive #side_col,
  body.blog #side_col,
  body.search #side_col {
    width: 100%;
  }
}

/* ===============================================
   プロフィールセクション（カスタムフィールド）
   ============================================ */
.post-profile {
  background: #f5f5f5;
  padding: 30px 40px;
  margin: 60px 0 80px !important;
  border-radius: 8px;
}

.post-profile .profile-title {
  font-size: 14px;
  font-weight: 500;
  margin: 0 0 20px 0;
  line-height: 1.6;
}

.post-profile .profile-text p {
  margin: 0 0 1em 0;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  color: #333;
}

.post-profile .profile-text p:last-child {
  margin-bottom: 0;
}

/* レスポンシブ対応 */
@media screen and (max-width: 768px) {
  .post-profile {
    padding: 20px 25px;
    margin: 40px 0 30px;
  }
  
  .post-profile .profile-title {
    font-size: 1.2em;
  }
}

/* ===============================================
   検索結果ページ
   ============================================ */

/* アーカイブヘッダー */
body.search #archive_header {
  max-width: 1400px;
  margin: 0 auto 60px;
  padding: 40px 20px;
}

body.search .archive_title {
  font-size: 1.4em;
  font-weight: 500;
  margin: 0 0 10px 0;
  color: #111;
}

body.search .archive_subtitle {
  font-size: 1.2em;
  color: #666;
  font-weight: 400;
  margin: 0 0 10px 0;
}

/* メインコンテンツ */
body.search #main_content {
  display: flex;
  gap: 50px;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
}

body.search #main_col {
  flex: 1;
  min-width: 0;
}

body.search #side_col {
  width: 320px;
  flex-shrink: 0;
}

/* アーカイブリスト（2カラムグリッド） */
body.search .archive_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px 30px;
  margin-bottom: 60px;
}

body.search .archive_item {
  display: block;
}

body.search .archive_link {
  display: block;
  text-decoration: none;
  color: inherit;
  transition: opacity 0.3s;
}

body.search .archive_link:hover {
  opacity: 0.7;
}

body.search .archive_image_wrap {
  width: 100%;
  aspect-ratio: 770 / 520;
  overflow: hidden;
  margin-bottom: 20px;
  border-radius: 4px;
}

body.search .archive_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.search .archive_content {
  padding: 0;
}

body.search .archive_meta1 {
  font-size: 14px;
  color: #666;
  margin: 0 0 10px 0;
}

body.search .archive_item_title {
  font-size: 1.2em;
  font-weight: bold;
  margin: 0 0 15px 0;
  line-height: 1.6;
  color: #111;
}

body.search .archive_lead {
  font-size: 0.9em;
  color: #666;
  margin: 0 0 15px 0;
  line-height: 1.8;
}

body.search .archive_date {
  font-size: 0.85em;
  color: #999;
  display: block;
}

/* レスポンシブ */
@media screen and (max-width: 1100px) {
  body.search #main_content {
    gap: 30px;
  }
  
  body.search #side_col {
    width: 280px;
  }
}

@media screen and (max-width: 768px) {
  body.search #main_content {
    flex-direction: column;
  }
  
  body.search #side_col {
    width: 100%;
  }
  
  body.search .archive_list {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  
  body.search #archive_header {
    margin-bottom: 40px;
    padding: 30px 0;
  }
  
  body.search .archive_title {
    font-size: 1.5em;
  }
  
  body.search .archive_subtitle {
    font-size: 1em;
  }
  #archive_header .title_area {
    flex-direction: column;
    gap:5px;
    align-items: flex-start;
  }
  #archive_header.animate .desc {
    padding-top: 0;
  }
  #archive_blog .blog_list .item {
    width: 100% !important;
    min-width: 100% !important;
    margin-bottom: 50px !important;
  }
  #related_post {
    padding: 40px 20px;
  }
  #footer_inner {
    margin: 0 auto;
    padding: 20px 20px 20px !important;
  }
  #copyright {
    padding: 40px 20px !important;
  }
}

.page .design_header .large_headline {
  font-size: 26px !important;
  text-align: left !important;
  font-weight: 500 !important;
}
#page_header .design_header {
  margin: 0 auto 40px;
  padding: 0 0 21px 0;
  border-bottom: 2px solid #111;
}

#footer {
  background-color: #111;
}
#footer_inner {
  max-width: 1700px;
  margin: 0 auto;
  padding: 40px 100px 20px;
}
#footer_nav li a {
  font-family: itc-american-typewriter, "Zen Kaku Gothic New", sans-serif !important;
  color: #fff;
  font-size: 14px;
}
#footer_nav {
  border-top: none;
}
#footer_address {
  color: #fff;
  font-size: 14px;
  font-family: "Zen Kaku Gothic New", sans-serif !important;
}

/* フッター住所：ロゴと本文を横並び */
#footer_address.footer_address_with_logo {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  gap: 24px;
}

#footer_address .footer_address_logo {
  width: 180px;
  max-width: 180px;
  height: auto;
  flex-shrink: 0;
  display: block;
}

#footer_address .footer_address_content {
  flex: 1;
  min-width: 0;
}
#footer_address .footer_address_content p {
  line-height: 1.1;
  font-size: 12px;
}

@media screen and (max-width: 768px) {
  /* 縦並び時 align-items:flex-start だと本文が intrinsic 幅まで縮み、1文字幅に近くなる */
  #footer_address.footer_address_with_logo {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }
  #footer_address .footer_address_content {
    align-self: stretch;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  /* フッターメニュー：Swiper の横一列をやめ、コンテンツ幅内で折り返す */
  #footer_nav.swiper {
    overflow: visible;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  #footer_nav .swiper-wrapper {
    display: flex;
    flex-wrap: wrap;
    transform: none !important;
    width: 100% !important;
  }
  #footer_nav .swiper-slide {
    width: auto !important;
    flex: 0 0 auto !important;
    margin-right: 20px;
    margin-bottom: 4px;
  }
  #footer_nav .swiper-slide:last-child {
    margin-right: 0;
  }
  #footer_nav li a {
    height: auto;
    line-height: 1.35;
    padding: 6px 0;
    white-space: normal;
  }
}
#footer_inner {
    max-width: 1700px;
    margin: 0 auto;
    padding: 40px 100px 20px;
}
#copyright {
  background: #111 !important;
}

/* ページトップへ：ネストした矢印ではなく topofpage.svg を1枚表示 */
#return_top a.return_top__link {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  width: auto !important;
  height: auto !important;
  max-width: none !important;
  line-height: 0 !important;
  overflow: visible !important;
  padding: 0 !important;
  box-shadow: none !important;
}

#return_top a .return_top__icon {
  display: block;
  width: 60px;
  height: auto;
  transition: opacity 0.2s ease;
}

@media (hover: hover) {
  #return_top a.return_top__link:hover .return_top__icon {
    opacity: 0.88;
  }
}

@media screen and (max-width: 1100px) {
  #return_top a.return_top__link {
    width: auto !important;
    height: auto !important;
    line-height: 0 !important;
  }

  #return_top a .return_top__icon {
    width: 50px;
  }
}

#next_prev_post , #tag_list  {
  display: none;
}