/*
Theme Name: jobcon
Theme URI: https://example.com
Author: ドドドッ
Author URI: https://dododo.biz/
Description: 採用サイト向けWordPressテーマ。求人情報CPT、Indeedフィード、Googleしごと検索（JSON-LD）に対応したクラシックテーマです。
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: jobcon
*/

/* ==========================================================================
   ベーススタイル
   ========================================================================== */

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, sans-serif;
  /* 全ページ共通：求人詳細と同じボディ背景 */
  background-color: #fbfbfb;
  font-size: 16px;
  line-height: 1.6;
  color: #333;
}

a {
  color: #0073aa;
  text-decoration: none;
  transition: color 0.3s ease;
}

a:hover {
  text-decoration: none;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

/* ==========================================================================
   レイアウト
   ========================================================================== */

/* 共通ヘッダー（single-job_listing と同デザインを全ページに適用） */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  width: 100%;
  padding: 0;
  border-bottom: 1px solid #e0e0e0;
  background-color: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.site-header-inner {
  max-width: 1152px;
  width: 100%;
  margin: 0 auto;
  padding: 1rem 1rem 1.25rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  align-content: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: 4.5rem;
  box-sizing: border-box;
}

@media (min-width: 640px) {
  .site-header-inner {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

@media (min-width: 768px) {
  .site-header-inner {
    padding: 1.25rem 2rem;
    min-height: 5rem;
  }
}

.site-header-nav-wrap {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.site-branding {
  margin: 0;
  font-size: 1rem;
}

.site-branding .site-title-link,
.site-branding a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: #333;
  text-decoration: none;
  font-weight: 700;
  font-size: 1.125rem;
  transition: color 0.3s ease;
}

.site-branding .site-title-link:hover,
.site-branding a:hover {
  color: var(--jobcon-primary, #0073aa);
}

.site-branding .site-description {
  margin: 0.25rem 0 0;
  font-size: 0.875rem;
  font-weight: 400;
  color: #666;
}

.site-header-nav-wrap .primary-menu,
.site-header-nav-wrap .main-navigation ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-header-nav-wrap .primary-menu a,
.site-header-nav-wrap .main-navigation a {
  font-size: 0.875rem;
  font-weight: 500;
  color: #666;
  text-decoration: none;
}

.site-header-nav-wrap .primary-menu a:hover,
.site-header-nav-wrap .main-navigation a:hover {
  color: #333;
}

.site-header-entry-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.625rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: #fff;
  background: var(--jobcon-primary, #0073aa);
  border: none;
  border-radius: 0.5rem;
  text-decoration: none;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
  transition: opacity 0.3s ease, filter 0.3s ease, box-shadow 0.3s ease;
}

.site-header-entry-btn .jlp-icon,
.site-header-entry-btn .jlp-icon--lucide,
.site-header-entry-btn [class*="ri-"] {
  flex-shrink: 0;
  display: inline-block;
  color: inherit;
}

.site-header-entry-btn:hover {
  opacity: 1;
  filter: brightness(0.95);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  color: #fff;
}

/* ヘッダー：お問い合わせボタン（カスタマイザーでURL設定時・求人詳細では非表示） */
.site-header-contact-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.625rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: #333;
  background-color: #fbfbfb;
  border: 1px solid #e0e0e0;
  border-radius: 0.5rem;
  text-decoration: none;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
  transition: opacity 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease, filter 0.3s ease;
  cursor: pointer;
}

.site-header-contact-btn:hover,
.site-header-contact-btn:focus {
  text-decoration: none;
  opacity: 1;
}

.site-header-contact-btn .jlp-icon,
.site-header-contact-btn .jlp-icon--lucide,
.site-header-contact-btn [class*="ri-"] {
  flex-shrink: 0;
  display: inline-block;
  color: inherit;
  pointer-events: none;
}

.site-header-contact-btn:hover {
  opacity: 1;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  border-color: #ccc;
  filter: brightness(0.97);
}

/* グローバルメニュー：PC / SP 切り替え */
.global-nav-pc {
  display: none;
}

@media (min-width: 768px) {
  .global-nav-pc {
    display: block;
  }
}

/* SP用：ハンバーガーボタン（768px未満で表示） */
.site-header-sp-nav-btn {
  display: none;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  margin: 0;
  border: none;
  border-radius: 0.375rem;
  background: transparent;
  color: #333;
  font-size: 1.5rem;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.site-header-sp-nav-btn:hover,
.site-header-sp-nav-btn:focus {
  background: #f0f0f0;
  color: var(--jobcon-primary, #0073aa);
}
.site-header-sp-nav-btn i {
  font-size: 1.5rem;
}
.site-header-sp-nav-btn {
  position: relative;
  z-index: 60;
}

@media (max-width: 767px) {
  .site-header-sp-nav-btn {
    display: flex;
  }
  .site-header-nav-wrap {
    display: none;
  }
}

@media (min-width: 768px) {
  .site-header-sp-nav-btn {
    display: none;
  }
}

/* SP用：右からスライドする全画面ドロワー */
.sp-nav-drawer {
  position: fixed;
  inset: 0;
  z-index: 100;
  visibility: hidden;
  pointer-events: none;
  transition: visibility 0.3s ease;
}
.sp-nav-drawer.is-open {
  visibility: visible;
  pointer-events: auto;
}
.sp-nav-drawer-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.sp-nav-drawer.is-open .sp-nav-drawer-overlay {
  opacity: 1;
}
.sp-nav-drawer-panel {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);
  transform: translateX(100%);
  transition: transform 0.3s ease;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.sp-nav-drawer.is-open .sp-nav-drawer-panel {
  transform: translateX(0);
}
.sp-nav-drawer-close {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0.5rem 0.5rem 0 auto;
  padding: 0;
  border: none;
  border-radius: 0.375rem;
  background: transparent;
  color: #333;
  font-size: 1.5rem;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.sp-nav-drawer-close:hover,
.sp-nav-drawer-close:focus {
  background: #f0f0f0;
  color: var(--jobcon-primary, #0073aa);
}
.sp-nav-drawer-inner {
  flex: 1;
  overflow-y: auto;
  padding: 0 1rem 2rem;
}
.sp-nav-drawer-list {
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0;
}
.sp-nav-drawer-list li {
  margin: 0;
  border-bottom: 1px solid #eee;
}
.sp-nav-drawer-list a {
  display: block;
  padding: 0.875rem 0.5rem;
  font-size: 1rem;
  font-weight: 500;
  color: #333;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.sp-nav-drawer-list a:hover {
  background: #f5f5f5;
  color: var(--jobcon-primary, #0073aa);
}
.sp-nav-drawer-actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: auto;
  padding-top: 1rem;
}
.sp-nav-drawer-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.875rem 1rem;
  font-size: 1rem;
  font-weight: 600;
  color: #fff;
  background: var(--jobcon-primary, #0073aa);
  border-radius: 0.375rem;
  text-decoration: none;
  transition: opacity 0.2s ease, background-color 0.2s ease;
  text-align: center;
  justify-content: center;
}
.sp-nav-drawer-link:hover {
  opacity: 0.95;
  color: #fff;
  background: color-mix(in srgb, var(--jobcon-primary, #0073aa) 85%, #000);
}
.sp-nav-drawer-link .jlp-icon,
.sp-nav-drawer-link [class*="ri-"] {
  flex-shrink: 0;
}

@media (min-width: 768px) {
  .sp-nav-drawer {
    display: none;
  }
}

body.sp-nav-open {
  overflow: hidden;
  position: fixed;
  width: 100%;
}

/* コンテンツ＋サイドバーラップ（1152px・左右パディングは .site-main で一元化） */
.site-content-wrap {
  max-width: 1152px;
  width: 100%;
  margin: 0 auto;
  padding: 2rem 0;
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  box-sizing: border-box;
}

.site-content-wrap.sidebar-right {
  flex-direction: row;
}

.site-content-wrap.sidebar-left {
  flex-direction: row;
}

.site-content-wrap.sidebar-none {
  display: block;
}

.site-main {
  min-width: 0;
  flex: 1 1 0;
  padding: 0 1rem;
  box-sizing: border-box;
}

@media (min-width: 640px) {
  .site-main {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

@media (min-width: 768px) {
  .site-main {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

.site-content-wrap.sidebar-none .site-main {
  max-width: none;
}

/* サイドバー（ウィジェットエリア）・PCは幅280pxのみ、SPは左右パディングを .site-main と同様に */
.site-content-wrap .widget-area.sidebar,
#secondary.widget-area.sidebar {
  width: 280px;
  flex-shrink: 0;
}

/* ウィジェット各ブロックの下にマージン */
#secondary .widget,
#secondary .widget_block {
  margin-bottom: 2rem;
}
#secondary .widget:last-child,
#secondary .widget_block:last-child {
  margin-bottom: 0;
}

/* 検索ウィジェット：タイトル・ラベル（「検索」の文字）を非表示 */
#secondary .widget_search .widget-title,
#secondary .widget_block.widget_search .widget-title,
#secondary .widget_search h2,
#secondary .widget_search h3,
#secondary .widget_search .widget-title,
#secondary .widget_block.widget_search h2,
#secondary .widget_block.widget_search h3,
#secondary .wp-block-search label,
#secondary .wp-block-search .wp-block-search__label,
aside#secondary section[class*="search"] .widget-title,
aside#secondary section[class*="search"] h2,
aside#secondary section[class*="search"] h3,
aside#secondary div[class*="search"] .widget-title,
aside#secondary div[class*="search"] h2,
aside#secondary div[class*="search"] h3 {
  display: none !important;
}

/* 検索ウィジェット：参照サイト（旅とラン）風UI・四隅角丸・入力に罫線 */
#secondary .search-form,
#secondary .wp-block-search__form {
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  margin: 0;
  background: #fff;
}
#secondary .search-form .search-field,
#secondary .search-form input[type="search"],
#secondary .wp-block-search__input {
  flex: 1;
  min-width: 0;
  margin: 0;
  padding: 0.5rem 0.75rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: #333;
  border: 1px solid #e0e0e0;
  border-right: none;
  border-radius: 0.3rem 0 0 0.3rem;
  background: #fff;
  box-shadow: none;
}
#secondary .search-form .search-field:focus,
#secondary .search-form input[type="search"]:focus,
#secondary .wp-block-search__input:focus {
  outline: none;
  border-color: var(--jobcon-primary, #0073aa);
}
#secondary .search-form .search-submit,
#secondary .search-form input[type="submit"],
#secondary .search-form button[type="submit"],
#secondary .wp-block-search__button {
  flex-shrink: 0;
  margin: 0;
  padding: 0.5rem 1rem;
  font-size: 0.9375rem;
  font-weight: 500;
  color: #fff;
  border: 1px solid var(--jobcon-primary, #0073aa);
  border-radius: 0 0.3rem 0.3rem 0;
  background: var(--jobcon-primary, #0073aa);
  cursor: pointer;
  transition: opacity 0.2s ease, background-color 0.2s ease;
}
#secondary .search-form .search-submit:hover,
#secondary .search-form input[type="submit"]:hover,
#secondary .search-form button[type="submit"]:hover,
#secondary .wp-block-search__button:hover {
  opacity: 0.9;
  background: var(--jobcon-primary, #0073aa);
}
/* ブロック：ボタン内側レイアウト */
#secondary .wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper {
  display: flex;
  flex-wrap: nowrap;
  border-radius: 0.3rem;
  overflow: hidden;
  border: 1px solid #e0e0e0;
}
#secondary .wp-block-search.wp-block-search__button-inside .wp-block-search__input {
  border: none;
  border-radius: 0;
}
#secondary .wp-block-search.wp-block-search__button-inside .wp-block-search__button {
  border-radius: 0 0.3rem 0.3rem 0;
}
/* ブロック：ボタン外側レイアウト */
#secondary .wp-block-search:not(.wp-block-search__button-inside) .wp-block-search__input {
  border-radius: 0.3rem 0 0 0.3rem;
}
#secondary .wp-block-search:not(.wp-block-search__button-inside) .wp-block-search__button {
  border-radius: 0 0.3rem 0.3rem 0;
}

/* サイドバー見出し＝投稿詳細・固定ページと同じデザイン（h2〜h6） */

/* 大見出し h2：背景＋左ボーダー（角丸なし） */
#secondary h2,
#secondary .widget_block h2 {
  margin: 1.5rem 0 0.75rem;
  padding: 0.75rem 1rem;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.35;
  color: #333;
  background: color-mix(in srgb, var(--jobcon-primary, #0073aa) 10%, #fff);
  border-left: 4px solid var(--jobcon-primary, #0073aa);
}
#secondary h2:first-child,
#secondary .widget_block h2:first-child {
  margin-top: 0;
}

/* 中見出し h3・ウィジェットタイトル：左ボーダーのみ */
#secondary .widget-title,
#secondary h3,
#secondary .widget_block h3 {
  margin: 1.25rem 0 0.5rem;
  padding: 0.5rem 0 0.5rem 1rem;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.4;
  color: #333;
  border-left: 4px solid var(--jobcon-primary, #0073aa);
}
#secondary .widget-title:first-child,
#secondary h3:first-child,
#secondary .widget_block h3:first-child {
  margin-top: 0;
}

/* 小見出し h4：アンダーライン・左一部キーカラー */
#secondary h4,
#secondary .widget_block h4 {
  margin: 1rem 0 0.35rem;
  padding: 0 0 0.4rem;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
  color: #333;
  border-bottom: 2px solid #e0e0e0;
  position: relative;
}
#secondary h4::after,
#secondary .widget_block h4::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 2.5em;
  height: 2px;
  background: var(--jobcon-primary, #0073aa);
}
#secondary h4:first-child,
#secondary .widget_block h4:first-child {
  margin-top: 0;
}

/* h5：太字＋キーカラー・ボーダーなし */
#secondary h5,
#secondary .widget_block h5 {
  margin: 0.75rem 0 0.35rem;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.45;
  color: var(--jobcon-primary, #0073aa);
}
#secondary h5:first-child,
#secondary .widget_block h5:first-child {
  margin-top: 0;
}

/* h6：少しだけ強調 */
#secondary h6,
#secondary .widget_block h6 {
  margin: 0.5rem 0 0.25rem;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.5;
  color: #555;
}
#secondary h6:first-child,
#secondary .widget_block h6:first-child {
  margin-top: 0;
}

/* サイドバーリスト（参照：旅とラン風・すっきりリスト） */
#secondary .widget ul,
#secondary .widget_block ul {
  list-style: none;
  margin: 0 0 0.5rem;
  padding: 0;
}
#secondary .widget ul:first-of-type,
#secondary .widget_block ul:first-of-type {
  margin-top: 0;
}
#secondary .widget li,
#secondary .widget_block li {
  margin: 0;
  padding: 0.75rem 0 0.75rem 0.3rem;
  border-bottom: 1px solid #e8e8e8;
  font-size: 0.9375rem;
  line-height: 1.5;
}
#secondary .widget li:last-child,
#secondary .widget_block li:last-child {
  border-bottom: none;
}
#secondary .widget li a,
#secondary .widget_block li a {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: #666;
  text-decoration: none;
  transition: color 0.2s ease;
}
/* 左側の「＞」：Remix Icon（ri-arrow-right-s-line = \ea6e） */
#secondary .widget li a::before,
#secondary .widget_block li a::before {
  font-family: "remixicon" !important;
  font-style: normal;
  content: "\ea6e";
  font-size: 0.875em;
  color: #888;
  transition: color 0.2s ease, transform 0.25s ease;
}
#secondary .widget li a:hover,
#secondary .widget_block li a:hover {
  color: var(--jobcon-primary, #0073aa);
}
#secondary .widget li a:hover::before,
#secondary .widget_block li a:hover::before {
  color: var(--jobcon-primary, #0073aa);
  transform: translateX(0.2em);
}
/* 子カテゴリ・入れ子リストのインデント */
#secondary .widget .children,
#secondary .widget ul.children,
#secondary .widget_block .children,
#secondary .widget_block ul.children {
  margin: 0;
  padding-left: 1rem;
  border-top: none;
}
#secondary .widget .children li,
#secondary .widget_block .children li {
  padding: 0.75rem 0 0.75rem 0.5rem;
  font-size: 0.875rem;
}
/* カテゴリ・タグの件数表示 */
#secondary .widget .cat-item .count,
#secondary .widget .tagcloud a {
  font-size: 0.8125rem;
  color: #888;
}
#secondary .widget .tagcloud a {
  display: inline-block;
  margin: 0 0.25rem 0.25rem 0;
  padding: 0.2rem 0.5rem;
  background: #f0f0f0;
  border-radius: 3px;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}
#secondary .widget .tagcloud a:hover {
  background: color-mix(in srgb, var(--jobcon-primary, #0073aa) 15%, #fff);
  color: var(--jobcon-primary, #0073aa);
}

@media (max-width: 767px) {
  .site-content-wrap.sidebar-right,
  .site-content-wrap.sidebar-left {
    flex-direction: column;
  }

  .site-content-wrap .widget-area.sidebar,
  #secondary.widget-area.sidebar {
    width: 100%;
    padding-left: 1rem;
    padding-right: 1rem;
    box-sizing: border-box;
  }
}

@media (max-width: 767px) and (min-width: 640px) {
  .site-content-wrap .widget-area.sidebar,
  #secondary.widget-area.sidebar {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

/* 共通フッター（single-job_listing と同デザインを全ページに適用） */
.site-footer {
  margin-top: 0;
  padding: 0;
  border-top: 1px solid #e0e0e0;
  background: #333;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.875rem;
}

.site-footer-inner {
  max-width: 1152px;
  width: 100%;
  margin: 0 auto;
  padding: 3rem 1rem 0;
}

@media (min-width: 640px) {
  .site-footer-inner {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

@media (min-width: 768px) {
  .site-footer-inner {
    padding: 3rem 2rem 0;
  }
}

.site-footer-content {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr;
  margin-bottom: 1.5rem;
}

@media (min-width: 768px) {
  .site-footer-content {
    grid-template-columns: 1fr 1fr;
  }
}

.site-footer-title {
  margin: 0 0 1rem;
  font-size: 1.125rem;
  font-weight: 700;
  color: #fff;
}

.footer-nav-heading {
  margin: 0 0 1rem;
  font-size: 1.125rem;
  font-weight: 700;
  color: #fff;
}

/* フッターウィジェット（PC）1・2・3：登録数に応じて幅を振り分け */
.footer-widgets {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  max-width: 1200px;
  margin: 0 auto 2rem;
  padding: 0;
}

.footer-widgets-cols-1 .footer-widget-area {
  flex: 1 1 100%;
  min-width: 0;
}

.footer-widgets-cols-2 .footer-widget-area,
.footer-widgets-cols-3 .footer-widget-area {
  flex: 1 1 0;
  min-width: 0;
}

/* フッター会社情報ウィジェット（レイアウトだけ軽く整える） */
.jobcon-footer-company {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  align-items: flex-start;
}

.jobcon-footer-company-logo {
  flex-shrink: 0;
}

.jobcon-footer-company-logo img {
  max-width: 100%;
  height: auto;
  display: block;
}

.jobcon-footer-company-body {
  font-size: 0.875rem;
}

.jobcon-footer-company-name {
  margin: 0 0 0.5rem;
  font-weight: 700;
}

.jobcon-footer-company-tel,
.jobcon-footer-company-email,
.jobcon-footer-company-address,
.jobcon-footer-company-hours {
  margin: 0.25rem 0;
}

.jobcon-footer-company-map {
  margin: 0.5rem 0;
}

.jobcon-footer-company-links {
  margin-top: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.jobcon-footer-sns-link .jobcon-footer-sns-icon,
.jobcon-footer-sns-link .jlp-icon,
.jobcon-footer-sns-link .jlp-icon--lucide {
  font-size: 1.1rem;
  vertical-align: middle;
}

/* 記事・ページ（固定ページ見出し：背景・アンダーラインなし） */
.entry-header {
  margin-bottom: 1.5rem;
  background: none;
  border: none;
  border-bottom: none;
}

.entry-title {
  margin: 0 0 0.5rem;
  font-size: 2rem;
}

/* 投稿詳細：タイトル下メタ（カテゴリー・最終更新）＝求人詳細と同じ見た目 */
.single .entry-header .jlp-meta-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0;
}
.single .entry-header .jlp-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.25rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  border-radius: 9999px;
  text-decoration: none;
  cursor: pointer;
  transition: opacity 0.3s ease, background-color 0.3s ease;
  background: color-mix(in srgb, var(--jobcon-primary, #0073aa) 12%, #fff);
  color: var(--jobcon-primary, #0073aa);
}
.single .entry-header .jlp-tag:hover {
  opacity: 1;
  background: color-mix(in srgb, var(--jobcon-primary, #0073aa) 20%, #fff);
}
.single .entry-header .jlp-tag .jlp-icon {
  font-size: 0.9em;
  flex-shrink: 0;
}
.single .entry-header .jlp-date {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.875rem;
  color: #666;
}
.single .entry-header .jlp-date .jlp-icon {
  font-size: 0.9em;
  flex-shrink: 0;
}

/* 投稿詳細：アイキャッチ画像を横幅いっぱい・下に余白 */
.single .post-thumbnail {
  width: 100%;
  margin: 0 0 2.5rem;
  overflow: hidden;
}
.single .post-thumbnail img {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: middle;
}

/* 固定ページ・アーカイブ・404・検索結果見出し：大文字英字＋斜め線（キーカラー・corto heading05 風） */
.entry-title.page-heading-en-line,
.page-title.page-heading-en-line {
  position: relative;
  padding-bottom: 3rem;
  text-align: center;
}

.entry-title.page-heading-en-line[data-en]::before,
.page-title.page-heading-en-line[data-en]::before {
  content: attr(data-en);
  display: block;
  margin-bottom: 0.5rem;
  color: var(--jobcon-primary, #0073aa);
  font-size: 1.25rem;
  font-style: italic;
  text-transform: uppercase;
}

/* 斜めラインは英字の有無にかかわらず表示 */
.entry-title.page-heading-en-line::after,
.page-title.page-heading-en-line::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%) rotate(30deg);
  width: 1px;
  height: 2.5rem;
  background-color: var(--jobcon-primary, #0073aa);
}

.entry-content {
  margin-bottom: 2rem;
}

/* 投稿詳細・固定ページ（フロント除外）：見出しメリハリ（大→小 h2〜h6） */
/* 大見出し h2：求人詳細のセクションタイトル風・背景＋左ボーダー（角丸なし） */
body.single .entry-content h2,
body.page:not(.home) .entry-content h2 {
  margin: 2.5rem 0 1rem;
  padding: 0.75rem 1rem;
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.35;
  color: #333;
  background: color-mix(in srgb, var(--jobcon-primary, #0073aa) 10%, #fff);
  border-left: 4px solid var(--jobcon-primary, #0073aa);
}
body.single .entry-content h2:first-child,
body.page:not(.home) .entry-content h2:first-child {
  margin-top: 0;
}
@media (min-width: 768px) {
  body.single .entry-content h2,
  body.page:not(.home) .entry-content h2 {
    font-size: 1.5rem;
  }
}

/* 中見出し h3：左ボーダー太め・余白でメリハリ */
body.single .entry-content h3,
body.page:not(.home) .entry-content h3 {
  margin: 2rem 0 0.75rem;
  padding: 0.5rem 0 0.5rem 1rem;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.4;
  color: #333;
  border-left: 4px solid var(--jobcon-primary, #0073aa);
}
body.single .entry-content h3:first-child,
body.page:not(.home) .entry-content h3:first-child {
  margin-top: 0;
}
@media (min-width: 768px) {
  body.single .entry-content h3,
  body.page:not(.home) .entry-content h3 {
    font-size: 1.375rem;
  }
}

/* 小見出し h4：アンダーライン・左一部キーカラー */
body.single .entry-content h4,
body.page:not(.home) .entry-content h4 {
  margin: 1.5rem 0 0.5rem;
  padding: 0 0 0.4rem;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.4;
  color: #333;
  border-bottom: 2px solid #e0e0e0;
  position: relative;
}
body.single .entry-content h4::after,
body.page:not(.home) .entry-content h4::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 2.5em;
  height: 2px;
  background: var(--jobcon-primary, #0073aa);
}
body.single .entry-content h4:first-child,
body.page:not(.home) .entry-content h4:first-child {
  margin-top: 0;
}

/* h5：太字＋キーカラー・ボーダーなし */
body.single .entry-content h5,
body.page:not(.home) .entry-content h5 {
  margin: 1.25rem 0 0.5rem;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.45;
  color: var(--jobcon-primary, #0073aa);
}
body.single .entry-content h5:first-child,
body.page:not(.home) .entry-content h5:first-child {
  margin-top: 0;
}

/* h6：少しだけ強調・本文に近いサイズ */
body.single .entry-content h6,
body.page:not(.home) .entry-content h6 {
  margin: 1rem 0 0.35rem;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.5;
  color: #555;
}
body.single .entry-content h6:first-child,
body.page:not(.home) .entry-content h6:first-child {
  margin-top: 0;
}

.entry-content p {
  margin: 0 0 1rem;
}

/* 投稿詳細・固定ページ：ul/ol のリストマーカー（・や 1 など）にキーカラー */
body.single .entry-content ul li::marker,
body.page:not(.home) .entry-content ul li::marker {
  color: var(--jobcon-primary, #0073aa);
}
body.single .entry-content ol li::marker,
body.page:not(.home) .entry-content ol li::marker {
  color: var(--jobcon-primary, #0073aa);
}

/* 投稿詳細：前の記事・次の記事ナビ（パンくず同様の背景でエリア分け） */
.entry-post-nav {
  margin-top: 5rem;
  margin-bottom: 200px;
  background: #f5f5f5;
  padding: 1.25rem 1rem;
  border-radius: 0.3rem;
}
.entry-post-nav-inner {
  display: flex;
  align-items: stretch;
}

@media (min-width: 640px) {
  .entry-post-nav {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

@media (min-width: 768px) {
  .entry-post-nav {
    padding: 1.5rem;
  }
}
.entry-post-nav-link {
  display: flex;
  flex: 1;
  min-width: 0;
  flex-direction: column;
  padding: 0;
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}
.entry-post-nav-link:hover {
  color: inherit;
}
.entry-post-nav-link.entry-post-nav-empty {
  cursor: default;
  pointer-events: none;
}
.entry-post-nav-body {
  display: block;
  padding: 0.75rem 1rem;
}
.entry-post-nav-prev .entry-post-nav-body {
  padding-left: 0;
}
.entry-post-nav-next .entry-post-nav-body {
  padding-right: 0;
}
.entry-post-nav-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 0.75rem 0.25rem;
  color: #888;
  font-size: 1.25rem;
  transition: color 0.2s ease;
}
.entry-post-nav-link:hover .entry-post-nav-icon {
  color: var(--jobcon-primary, #0073aa);
}
.entry-post-nav-icon i {
  font-size: 1em;
}
.entry-post-nav-prev .entry-post-nav-icon {
  padding-left: 0;
  margin-right: 0.75rem;
}
.entry-post-nav-next .entry-post-nav-body {
  min-width: 0;
}
.entry-post-nav-next .entry-post-nav-icon {
  padding-right: 0;
  margin-left: auto;
}
.entry-post-nav-title {
  display: block;
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.4;
  color: #555;
}
.entry-post-nav-link:hover .entry-post-nav-title {
  color: var(--jobcon-primary, #0073aa);
}
.entry-post-nav-divider {
  flex: 0 0 1px;
  align-self: stretch;
  background: #ccc;
  min-height: 2rem;
}

/* 前の記事のみ・次の記事のみのときは罫線を非表示 */
.entry-post-nav-inner:has(.entry-post-nav-empty) .entry-post-nav-divider {
  display: none;
}

@media (min-width: 768px) {
  .entry-post-nav-divider {
    align-self: center;
    height: 2.5rem;
    min-height: 0;
  }
}

/* SP：段組レイアウト（前・次を縦並び）、境界は横線（半分幅・中央） */
/* タイトル領域は「＜」「＞」の間いっぱいに伸ばす（アイコン幅を揃えてタイトル列を共通化） */
@media (max-width: 767px) {
  .entry-post-nav-inner {
    flex-direction: column;
  }
  .entry-post-nav-divider {
    flex: none;
    width: 50%;
    min-height: 0;
    height: 0;
    margin: 1rem auto;
    border-top: 1px solid #ccc;
    background: none;
  }
  .entry-post-nav-link {
    flex-direction: row;
    width: 100%;
  }
  .entry-post-nav-icon {
    width: 2.5rem;
    min-width: 2.5rem;
    flex-shrink: 0;
  }
  .entry-post-nav-body {
    flex: 1;
    min-width: 0;
  }
}

@media (min-width: 768px) {
  .entry-post-nav-link {
    flex-direction: row;
  }
  .entry-post-nav-body {
    flex: 1;
    padding: 1rem 1.25rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .entry-post-nav-prev .entry-post-nav-body {
    padding-left: 0;
  }
  .entry-post-nav-next .entry-post-nav-body {
    padding-right: 0;
  }
  .entry-post-nav-title {
    font-size: 0.875rem;
  }
}

/* ナビゲーション */
.main-navigation ul {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.main-navigation a {
  display: block;
  padding: 0.25rem 0;
}

/* フッターメニュー */
.footer-navigation {
  margin-bottom: 1rem;
}

.footer-navigation ul,
.footer-menu {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-navigation a {
  display: block;
  padding: 0.25rem 0;
}

/* パンくず（ヘッダー直下、トップ以外） */
.site-breadcrumb {
  background: #f5f5f5;
  font-size: 0.7rem;
  color: #666;
}

.site-breadcrumb-inner {
  max-width: 1152px;
  width: 100%;
  margin: 0 auto;
  padding: 0.5rem 1rem;
}

@media (min-width: 640px) {
  .site-breadcrumb-inner {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

@media (min-width: 768px) {
  .site-breadcrumb-inner {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

.site-breadcrumb-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-breadcrumb-list li {
  display: inline-flex;
  align-items: center;
}

.site-breadcrumb-sep {
  margin: 0 0.25rem 0 0;
  color: #aaa;
}

.site-breadcrumb-list a {
  color: inherit;
  text-decoration: none;
  transition: color 0.3s ease, opacity 0.3s ease;
}

.site-breadcrumb-list a:hover {
  text-decoration: none;
  opacity: 0.65;
}

.site-breadcrumb .site-breadcrumb-icon,
.site-breadcrumb .site-breadcrumb-icon.jlp-icon--lucide {
  vertical-align: -0.1em;
  margin-right: 0.25rem;
  width: 1em;
  height: 1em;
  flex-shrink: 0;
}

/* フッター・コピーライト：上の罫線を画面幅いっぱいに */
.site-footer .site-info {
  position: relative;
  padding: 1rem 0;
  margin: 0;
  text-align: center;
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.5);
}

.site-footer .site-info::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

/* ページトップへ戻るボタン（ある程度スクロールしたときだけ表示） */
.pagetop-btn {
  position: fixed;
  right: 1.5rem;
  bottom: 1.5rem;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: var(--jobcon-primary, #0073aa);
  color: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
.pagetop-btn.pagetop-btn-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.pagetop-btn:hover {
  opacity: 1;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}
.pagetop-btn:focus {
  outline: 2px solid var(--jobcon-primary, #0073aa);
  outline-offset: 2px;
}
.pagetop-btn-icon {
  width: 1.25rem;
  height: 1.25rem;
  display: block;
}

/* フッターナビ共通スタイル（色はフッターに合わせて上書き） */

/* ==========================================================================
   求人アーカイブ・タクソノミー
   ========================================================================== */

.page-header.archive-job-header,
.page-header.taxonomy-job-header {
  margin-bottom: 2rem;
  padding-bottom: 0;
  padding-left: 1rem;
  padding-right: 1rem;
  background: none;
  border: none;
  border-bottom: none;
  box-sizing: border-box;
}

@media (min-width: 640px) {
  .page-header.archive-job-header,
  .page-header.taxonomy-job-header {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

@media (min-width: 768px) {
  .page-header.archive-job-header,
  .page-header.taxonomy-job-header {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

.page-header .page-title {
  margin: 0 0 0.5rem;
  font-size: 1.75rem;
}

.archive-description,
.taxonomy-description {
  margin-top: 0.5rem;
  font-size: 0.9375rem;
  color: #666;
}

/* ページャー（シンプル・モダン）・アーカイブ全般でページャー下に余白 */
.navigation.pagination {
  margin-top: 2.5rem;
  margin-bottom: 200px;
}

.navigation.pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
}

.navigation.pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  height: 2.5rem;
  padding: 0 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #374151;
  text-decoration: none;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  transition: border-color 0.3s ease, background-color 0.3s ease, color 0.3s ease;
}

.navigation.pagination .page-numbers:hover {
  border-color: var(--jobcon-primary, #0073aa);
  color: var(--jobcon-primary, #0073aa);
  background: rgba(0, 115, 170, 0.04);
}

.navigation.pagination .page-numbers.current {
  border-color: var(--jobcon-primary, #0073aa);
  background: var(--jobcon-primary, #0073aa);
  color: #fff;
  pointer-events: none;
}

.navigation.pagination .page-numbers.prev,
.navigation.pagination .page-numbers.next {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.navigation.pagination .page-numbers.dots {
  border: none;
  background: transparent;
  min-width: auto;
  color: #9ca3af;
}

.navigation.pagination .page-numbers.dots:hover {
  background: transparent;
  color: #9ca3af;
}

.navigation.pagination span.page-numbers:not(.current):not(.dots) {
  opacity: 0.6;
  cursor: default;
}

.navigation.pagination span.page-numbers:not(.current):not(.dots):hover {
  border-color: #e5e7eb;
  background: #fff;
  color: #374151;
}

.job-listings-archive {
  list-style: none;
  margin: 0;
  padding: 0;
}

.job-listing-item {
  margin-bottom: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid #eee;
}

.job-listing-item:last-child {
  border-bottom: none;
}

.job-listing-card .entry-title {
  font-size: 1.25rem;
}

.job-listing-card .job-company {
  margin: 0 0 0.5rem;
  font-size: 0.9375rem;
  color: #666;
}

.job-listing-card .entry-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  margin-bottom: 0.75rem;
  font-size: 0.875rem;
  color: #666;
}

.job-listing-card .entry-meta .job-employment,
.job-listing-card .entry-meta .job-salary {
  font-weight: 500;
  color: #333;
}

.job-listing-card .entry-content {
  margin-bottom: 1rem;
}

/* 一覧・タクソノミー：掲載画像を登録時の縦横比で表示 */
.job-listing-thumbnail {
  margin-bottom: 1rem;
  overflow: hidden;
}
.job-listing-thumbnail a {
  display: block;
  line-height: 0;
}
.job-listing-thumbnail img {
  max-width: 100%;
  width: auto;
  height: auto;
  max-height: 200px;
  object-fit: contain;
  vertical-align: middle;
}

/* 求人詳細：掲載画像を登録時の縦横比で表示 */
.job-listing .post-thumbnail {
  margin-bottom: 1.5rem;
}
.job-listing .post-thumbnail img {
  max-width: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  vertical-align: middle;
}

.job-listing-card .job-link {
  margin: 0;
}

.job-listing-card .read-more {
  font-weight: 500;
}

.no-jobs {
  margin: 2rem 0;
  color: #666;
}

/* ==========================================================================
   お知らせ（投稿）一覧：シンプルデザイン・カテゴリータブ・ページャー
   ========================================================================== */
.news-archive-header {
  margin-bottom: 1.5rem;
}

.news-archive-tabs {
  margin-bottom: 2.5rem;
}

.news-archive-tabs-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* カプセル型タブ（未選択＝キーカラー薄め、選択＝キーカラー） */
.news-archive-tab {
  display: inline-block;
  padding: 0.5rem 1.25rem;
  font-size: 0.875rem;
  color: var(--jobcon-primary, #0073aa);
  text-decoration: none;
  background-color: rgba(var(--jobcon-primary-rgb, 0, 115, 170), 0.12);
  border-radius: 9999px;
  transition: color 0.3s ease, background-color 0.3s ease;
}

.news-archive-tab:hover {
  color: var(--jobcon-primary, #0073aa);
  background-color: rgba(var(--jobcon-primary-rgb, 0, 115, 170), 0.2);
  text-decoration: none;
}

.news-archive-tab.is-current {
  color: #fff;
  font-weight: 500;
  background-color: var(--jobcon-primary, #0073aa);
}

.news-archive-tab.is-current:hover {
  color: #fff;
  background-color: var(--jobcon-primary, #0073aa);
  text-decoration: none;
}

.news-archive-list-wrap {
  margin-top: 0;
}

/* ページャーがないとき（1ページのみ）：コンテンツ下部に余白 */
.news-archive-list-wrap.news-archive-list-wrap--no-pager {
  padding-bottom: 200px;
}

.news-archive-list {
  margin: 0 0 2.5rem;
  padding: 0;
  list-style: none;
}

/* 記事ごとの上余白：構造変更前（リンク padding 1.25rem 0）と同等に */
.news-archive-item {
  margin-top: 1.25rem;
  border-bottom: 1px solid #e5e7eb;
  transition: border-color 0.4s ease;
}

.news-archive-item:has(.news-archive-item-link:hover) {
  border-bottom-color: rgba(var(--jobcon-primary-rgb, 0, 115, 170), 0.35);
}

.news-archive-item-link {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.5rem 0 1.25rem;
  color: inherit;
  text-decoration: none;
  transition: color 0.2s;
}

.news-archive-item-link:hover {
  text-decoration: none;
  opacity: 1;
}

.news-archive-item-body {
  flex: 1;
  min-width: 0;
}

.news-archive-item-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin: 0 0 0.5rem;
  font-size: 0.8125rem;
  color: #6b7280;
}

/* 記事のカテゴリー：カプセル型・キーカラー薄め（クリックでカテゴリー一覧へ） */
.news-archive-item-cat {
  display: inline-block;
  padding: 0.15rem 0.5rem;
  font-size: 0.75rem;
  color: var(--jobcon-primary, #0073aa);
  background-color: rgba(var(--jobcon-primary-rgb, 0, 115, 170), 0.12);
  border-radius: 9999px;
  text-decoration: none;
  transition: background-color 0.3s ease;
}

a.news-archive-item-cat:hover {
  background-color: rgba(var(--jobcon-primary-rgb, 0, 115, 170), 0.2);
  text-decoration: none;
}

.news-archive-item-title {
  margin: 0 0 0.5rem;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.4;
  transition: color 0.2s, text-decoration 0.2s;
}

.news-archive-item-link:hover .news-archive-item-title {
  color: var(--jobcon-primary, #0073aa);
}

.news-archive-item-excerpt {
  margin: 0;
  font-size: 0.875rem;
  color: #6b7280;
  line-height: 1.5;
}

.news-archive-item-link:hover .news-archive-item-excerpt {
  color: #6b7280;
}

/* 右端の矢印：Remix Icon・キーカラー・ホバーで右にスライド（余白を確保） */
.news-archive-item-arrow {
  flex-shrink: 0;
  display: inline-block;
  width: 1.25rem;
  margin-left: 0.25rem;
  font-size: 1.25rem;
  line-height: 1;
  color: var(--jobcon-primary, #0073aa);
  text-align: right;
  transition: transform 0.2s ease;
}

.news-archive-item-link:hover .news-archive-item-arrow {
  transform: translateX(4px);
}

.news-archive-empty {
  margin: 2rem 0;
  color: #6b7280;
}

/* お知らせ一覧のページャーは共通 .navigation.pagination を利用 */

/* 求人詳細ページ：各セクション下の罫線なし */
.job-details dl,
.job-details dl dt,
.job-details dl dd {
  border: none;
  border-bottom: none;
}
