/**
 * 求人詳細ページ（single job_listing）— job-listing-page-ui（v0）デザイン反映
 * キーカラーは CSS 変数 --jobcon-primary で指定（カスタマイザー「キーカラー」から注入）
 */

/* --- ボディ背景 --- */
body.single-job_listing {
  background-color: #fbfbfb;
}

/* エントリーするボタンなどアンカーリンクをスムーズにスクロール */
html {
  scroll-behavior: smooth;
}

/* --- 変数（フォールバック）・アーカイブでもカード用変数を有効にするため :root に定義 --- */
:root {
  --jlp-border: #e0e0e0;
  --jlp-card: #fff;
  --jlp-muted: #f5f5f5;
  --jlp-muted-text: #666;
  --jlp-radius: 0.5rem;
  --jlp-radius-lg: 0.75rem;
}

.jlp-wrap {
  --jlp-primary: var(--jobcon-primary, #0073aa);
  --jlp-primary-rgb: var(--jobcon-primary-rgb, 0, 115, 170);
  --jlp-primary-foreground: #fff;
  --jlp-muted: #f5f5f5;
  --jlp-muted-text: #666;
  --jlp-border: #e0e0e0;
  --jlp-card: #fff;
  --jlp-radius: 0.5rem;
  --jlp-radius-lg: 0.75rem;
}

/* アーカイブ・関連求人カードで --jlp-primary を使うため */
.jlp-related-wrap {
  --jlp-primary: var(--jobcon-primary, #0073aa);
}

/* --- アイコン（キーカラーに合わせる・Remix Icon / Lucide インライン SVG） --- */
.jlp-wrap .jlp-icon,
.jlp-wrap [class*="ri-"] {
  color: var(--jlp-primary);
}

/* Lucide インライン SVG（v0 デザイン再現） */
.jlp-icon--lucide {
  display: inline-block;
  vertical-align: middle;
  flex-shrink: 0;
}

body.single-job_listing .site-header .jlp-icon,
body.single-job_listing .site-header [class*="ri-"] {
  color: var(--jobcon-primary);
}

/* ==========================================================================
   ヘッダー・フッター（v0 デザイン・求人詳細ページで反映）
   ========================================================================== */

/* --- ヘッダー（キーカラーは :root の --jobcon-primary を使用） --- */
body.single-job_listing .site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  width: 100%;
  padding: 0;
  border-bottom: 1px solid var(--jlp-border);
  background-color: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

body.single-job_listing .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) {
  body.single-job_listing .site-header-inner {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

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

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

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

body.single-job_listing .site-branding .site-title-link,
body.single-job_listing .site-branding a {
  transition: color 0.3s ease;
}

body.single-job_listing .site-branding .site-title-link:hover,
body.single-job_listing .site-branding a:hover {
  color: var(--jobcon-primary);
}

body.single-job_listing .site-branding .site-description {
  margin: 0.25rem 0 0;
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--jlp-muted-text);
}

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

body.single-job_listing .site-header-nav-wrap .primary-menu,
body.single-job_listing .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;
}

body.single-job_listing .site-header-nav-wrap .primary-menu a,
body.single-job_listing .site-header-nav-wrap .main-navigation a {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--jlp-muted-text);
  text-decoration: none;
  transition: color 0.3s ease;
}

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

body.single-job_listing .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);
  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;
}

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

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

/* SPではヘッダーの「エントリーする」は非表示（ハンバーガーメニュー内のみ表示） */
@media (max-width: 767px) {
  body.single-job_listing .site-header-entry-btn {
    display: none;
  }
}

body.single-job_listing .global-nav-pc {
  display: none;
}

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

body.single-job_listing .global-nav-sp {
  display: block;
  width: 100%;
  order: 3;
  margin-top: 0.25rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--jlp-border);
}

body.single-job_listing .global-nav-sp .menu {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.single-job_listing .global-nav-sp .menu a {
  display: block;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #333;
  text-decoration: none;
  border-radius: 0.375rem;
  transition: background-color 0.3s ease;
}

body.single-job_listing .global-nav-sp .menu a:hover {
  background: var(--jlp-muted);
}

@media (min-width: 768px) {
  body.single-job_listing .global-nav-sp {
    display: none;
  }
}

/* --- フッター --- */
body.single-job_listing .site-footer {
  margin-top: 0;
  padding: 0;
  border-top: 1px solid var(--jlp-border);
  background: #333;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.875rem;
}

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

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

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

body.single-job_listing .site-footer-content {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr;
}

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

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

body.single-job_listing .footer-navigation .footer-menu,
body.single-job_listing .footer-navigation ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

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

body.single-job_listing .footer-navigation .footer-menu a,
body.single-job_listing .footer-navigation .menu a {
  display: block;
  padding: 0.25rem 0;
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  transition: color 0.3s ease;
}

body.single-job_listing .footer-navigation .footer-menu a:hover,
body.single-job_listing .footer-navigation .menu a:hover {
  color: #fff;
}

body.single-job_listing .footer-navigation .footer-menu li,
body.single-job_listing .footer-navigation .menu li {
  margin: 0;
}

body.single-job_listing .footer-widgets {
  margin-bottom: 2rem;
}

/* コピーライト（会社名）：他ページと同様にフッターの文字色を継承 */
body.single-job_listing .site-footer .site-info {
  position: relative;
  padding: 1rem 0;
  margin: 0;
  text-align: center;
  font-size: 0.75rem;
  color: inherit;
}

/* コピーライト上の罫線を画面幅いっぱいに */
body.single-job_listing .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.2);
}

body.single-job_listing .site-footer .site-info a {
  color: inherit;
  text-decoration: none;
  transition: color 0.3s ease, opacity 0.3s ease;
}

body.single-job_listing .site-footer .site-info a:hover {
  opacity: 0.85;
}

/* --- コンテナ（左右パディングは .jlp-container で一元化しメイン幅を確保） --- */
.jlp-wrap {
  padding: 0.25rem 0 2rem;
}

/* 求人詳細：フッターとの隙間をなくす＋左右パディングを外してメイン幅を確保 */
body.single-job_listing .site-content-wrap {
  padding-bottom: 0;
  padding-left: 0;
  padding-right: 0;
}

/* 求人詳細・アーカイブ・タクソノミー：.jlp-container でパディングを持つため .site-main の左右は 0 */
body.single-job_listing .site-main,
body.post-type-archive-job_listing .site-main,
body.tax-job_category .site-main,
body.tax-job_location .site-main {
  padding-left: 0;
  padding-right: 0;
}

/* アーカイブ・タクソノミー：下のグレー領域を出さない */
body.post-type-archive-job_listing .site-content-wrap,
body.tax-job_category .site-content-wrap,
body.tax-job_location .site-content-wrap {
  padding-bottom: 0;
}

body.single-job_listing .site-main {
  margin-bottom: 0;
  padding-bottom: 0;
}

body.single-job_listing .jlp-wrap {
  padding-bottom: 0 !important;
}

body.single-job_listing .jlp-wrap > *:last-child {
  margin-bottom: 0;
}

/* 関連求人なしのとき：コンテナ内の最後のブロックの下マージンも打ち消し、エントリーとフッターの間に白い余白を出さない */
body.single-job_listing .jlp-wrap > .jlp-container:last-child > *:last-child {
  margin-bottom: 0;
}

/* 関連求人なし：フォーム下にグレー背景が伸びる余白を確保 */
body.single-job_listing .jlp-wrap.jlp-wrap--no-related {
  padding-bottom: 200px !important;
}

@media (max-width: 767px) {
  body.single-job_listing .jlp-wrap {
    padding-bottom: 5rem !important; /* FAB用 */
  }

  body.single-job_listing .jlp-wrap.jlp-wrap--no-related {
    padding-bottom: calc(200px + 5rem) !important; /* グレー余白200px＋FAB用 */
  }
}

.jlp-container {
  max-width: 1152px;
  width: 100%;
  margin: 0 auto;
  padding: 0 1rem;
  box-sizing: border-box;
}

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

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

/* --- パンくず --- */
.jlp-breadcrumb {
  padding: 0.75rem 0 1.25rem;
}

.jlp-breadcrumb-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.875rem;
  color: var(--jlp-muted-text);
}

.jlp-breadcrumb-list li {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}

/* パンくずアイコン：フォントサイズに合わせる＋テキストと縦位置を揃える */
.jlp-breadcrumb .jlp-icon--lucide {
  width: 1em;
  height: 1em;
  vertical-align: 0em;
}

.jlp-breadcrumb-sep .jlp-icon--lucide {
  width: 1em;
  height: 1em;
  vertical-align: 0em;
}

/* パンくずホームアイコンの右に少し余白 */
.jlp-breadcrumb .jlp-breadcrumb-icon {
  margin-right: 0.3rem;
}

.jlp-breadcrumb-sep {
  display: inline-flex;
  align-items: center;
  margin: 0 0.25rem;
  font-size: 0.65em;
  opacity: 0.7;
}

.jlp-breadcrumb-list .jlp-icon {
  font-size: 0.9em;
}

/* パンくず内のアイコンはテキストと同色（キーカラー不要） */
.jlp-breadcrumb .jlp-icon {
  color: inherit;
}

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

.jlp-breadcrumb-list a:hover {
  color: var(--jlp-primary);
  text-decoration: none;
  opacity: 0.65;
}

.jlp-breadcrumb-list [aria-current="page"] {
  color: #333;
}

/* --- タイトル・メタ --- */
.jlp-meta {
  margin-bottom: 1.5rem;
}

.jlp-title {
  margin: 0 0 1rem;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.25;
  color: #333;
}

@media (min-width: 768px) {
  .jlp-title {
    font-size: 1.875rem;
  }
}

@media (min-width: 1024px) {
  .jlp-title {
    font-size: 2.25rem;
  }
}

.jlp-meta-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
}

.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;
  cursor: default;
}

a.jlp-tag {
  text-decoration: none;
  cursor: pointer;
  transition: opacity 0.3s ease, background-color 0.3s ease;
}

a.jlp-tag:hover {
  opacity: 1;
  background-color: var(--jlp-primary-tint-20, #c5e0f7);
}

.jlp-tag .jlp-icon {
  font-size: 0.9em;
  flex-shrink: 0;
}

.jlp-tag--primary {
  background: var(--jlp-primary-tint-12, #e0effb);
  color: var(--jlp-primary);
}

.jlp-tag--outline {
  border: 1px solid var(--jlp-border);
  background: var(--jlp-card);
  color: #333;
}

.jlp-date {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.875rem;
  color: var(--jlp-muted-text);
}

.jlp-date .jlp-icon {
  font-size: 0.9em;
  flex-shrink: 0;
}

/* --- セクション共通 --- */
.jlp-section {
  margin-bottom: 2.5rem;
}

.jlp-section-title {
  margin: 0 0 1.5rem;
  padding: 0.75rem 1rem;
  font-size: 1.25rem;
  font-weight: 700;
  color: #333;
  background: var(--jlp-primary-tint-6, #eff8fc);
  border-left: 4px solid var(--jlp-primary);
  border-radius: 0 var(--jlp-radius) var(--jlp-radius) 0;
}

.jlp-section-title--large {
  font-size: 1.5rem;
  margin-bottom: 2rem;
}

@media (min-width: 768px) {
  .jlp-section-title {
    font-size: 1.5rem;
  }
  .jlp-section-title--large {
    font-size: 1.5rem;
  }
}

/* --- カード --- */
.jlp-card {
  border: 1px solid var(--jlp-border);
  border-radius: var(--jlp-radius-lg);
  background: var(--jlp-card);
}

.jlp-card--pad {
  padding: 1.5rem;
}

@media (min-width: 768px) {
  .jlp-card--pad {
    padding: 2rem;
  }
}

/* --- 画像スライダー --- */
.jlp-slider-wrap {
  margin-bottom: 2.5rem;
}

.jlp-slider {
  position: relative;
  overflow: hidden;
  border-radius: var(--jlp-radius-lg);
  background: var(--jlp-muted);
}

.jlp-slider-track {
  display: flex;
  transition: transform 0.4s ease;
}

.jlp-slider-item {
  flex: 0 0 100%;
  width: 100%;
}

.jlp-slider-img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  aspect-ratio: 1.618 / 1; /* 黄金比（幅 : 高さ = 1.618 : 1） */
}

.jlp-slider-prev,
.jlp-slider-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  color: #333;
  transition: background 0.3s ease, box-shadow 0.3s ease;
}

.jlp-slider-prev:hover,
.jlp-slider-next:hover {
  background: #fff;
}

.jlp-slider-prev {
  left: 0.75rem;
}

.jlp-slider-next {
  right: 0.75rem;
}

.jlp-slider-dots {
  position: absolute;
  bottom: 0.75rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 0.5rem;
}

.jlp-slider-dot {
  width: 0.625rem;
  height: 0.625rem;
  border: none;
  border-radius: 50%;
  padding: 0;
  background: rgba(255, 255, 255, 0.6);
  cursor: pointer;
  transition: background 0.3s ease;
}

.jlp-slider-dot:hover {
  background: rgba(255, 255, 255, 0.9);
}

.jlp-slider-dot.is-active {
  background: var(--jlp-primary);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.jlp-thumb {
  border-radius: var(--jlp-radius-lg);
  overflow: hidden;
  background: var(--jlp-muted);
}

.jlp-thumb img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/* --- 魅力リスト --- */
.jlp-appeal-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.jlp-appeal-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #333;
  background: var(--jlp-card);
  border: 1px solid var(--jlp-border);
  border-radius: 0.5rem;
  /* v0 カットイン風アニメーション用の初期状態（左から右へ） */
  opacity: 0;
  transform: translateX(-16px);
  transition:
    opacity 0.4s ease-out,
    transform 0.4s ease-out,
    box-shadow 0.3s ease;
}

/* スクロールイン後に表示（js で .is-visible を付与） */
.jlp-appeal-item.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.jlp-appeal-item:hover {
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

@media (min-width: 768px) {
  .jlp-appeal-item {
    font-size: 1rem;
  }
}

.jlp-appeal-icon {
  flex-shrink: 0;
  font-size: 1.1rem;
  color: var(--jlp-primary);
}

/* --- PR・動画・タグ --- */
.jlp-pr-content {
  font-size: 0.875rem;
  line-height: 1.75;
  color: #333;
}

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

.jlp-pr-content p:last-child {
  margin-bottom: 0;
}

@media (min-width: 768px) {
  .jlp-pr-content {
    font-size: 1rem;
    line-height: 1.8;
  }
}

.jlp-video-wrap {
  overflow: hidden;
  border-radius: var(--jlp-radius-lg);
  border: 1px solid var(--jlp-border);
  background: var(--jlp-card);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.jlp-video-inner {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
}

.jlp-video-inner iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.jlp-tags-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

/* --- 募集の詳細 --- */
.jlp-content-block {
  margin-bottom: 2.5rem;
}

.jlp-content-block:last-child {
  margin-bottom: 0;
}

.jlp-content-heading {
  margin: 0 0 1.5rem;
  font-size: 1.125rem;
  font-weight: 700;
  color: #333;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.jlp-content-heading::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 1.5rem;
  border-radius: 2px;
  background: var(--jlp-primary);
  flex-shrink: 0;
}

.jlp-content-heading .jlp-icon {
  flex-shrink: 0;
  font-size: 1rem;
}

@media (min-width: 768px) {
  .jlp-content-heading {
    font-size: 1.25rem;
  }
}

.jlp-content-text {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.75;
  color: #333;
}

.jlp-content-text ul {
  margin: 0.75rem 0 0;
  padding-left: 1.25rem;
}

.jlp-content-text li {
  margin-bottom: 0.25rem;
}

@media (min-width: 768px) {
  .jlp-content-text {
    font-size: 1rem;
    line-height: 1.8;
  }
}

/* 1日の流れ（v0: 時刻の右寄りに縦線） --- */
.jlp-daily-flow {
  position: relative;
  padding-left: 0;
}

/* 時刻列の右寄りに縦線（v0 の Timeline line と同じ位置） */
.jlp-daily-flow::before {
  content: "";
  position: absolute;
  /* v0: left-[39px] / 時刻バッジ幅 50px 相当 */
  left: 2.4375rem;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--jlp-border);
  z-index: 0;
}

@media (min-width: 768px) {
  .jlp-daily-flow::before {
    /* v0: md:left-[47px] / 時刻バッジ幅 60px 相当 */
    left: 2.9375rem;
  }
}

.jlp-daily-flow-row {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.jlp-daily-flow-row:last-child {
  margin-bottom: 0;
}

.jlp-daily-flow-time {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.125rem;   /* 50px 相当（v0: w-[50px]） */
  min-width: 3.125rem;
  padding: 0.25rem 0.5rem;
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--jlp-primary-foreground);
  background: var(--jlp-primary);
  border-radius: 9999px;
}

@media (min-width: 768px) {
  .jlp-daily-flow-time {
    width: 3.75rem;  /* 60px 相当（v0: md:w-[60px]） */
    min-width: 3.75rem;
    padding: 0.3rem 0.6rem;
    font-size: 0.8rem;
  }
}

.jlp-daily-flow-text {
  flex: 1;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  line-height: 1.6;
  color: #333;
  background: var(--jlp-primary-tint-8, #eaf5fc);
  border-radius: 0.5rem;
}

.jlp-daily-flow-row:nth-child(even) .jlp-daily-flow-text {
  background: var(--jlp-card);
}

/* 先輩の声 --- */
.jlp-staff-voice-list {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.jlp-staff-voice-card {
  padding: 1.5rem;
  transition: box-shadow 0.3s ease;
}

.jlp-staff-voice-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

@media (min-width: 768px) {
  .jlp-staff-voice-card {
    padding: 2rem;
  }
}

.jlp-staff-voice-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.jlp-staff-voice-avatar {
  flex-shrink: 0;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  overflow: hidden;
  background: var(--jlp-primary-tint-12, #e0effb);
}

.jlp-staff-voice-avatar--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--jlp-primary-tint-12, #e0effb);
}

.jlp-staff-voice-avatar--placeholder .jlp-icon,
.jlp-staff-voice-avatar--placeholder [class*="ri-"] {
  font-size: 1.5rem;
  color: var(--jlp-primary);
}

.jlp-staff-voice-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
}

.jlp-staff-voice-name {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
  color: #333;
}

@media (min-width: 768px) {
  .jlp-staff-voice-name {
    font-size: 1rem;
  }
}

.jlp-staff-voice-position {
  margin: 0.25rem 0 0;
  font-size: 0.75rem;
  color: var(--jlp-muted-text);
}

@media (min-width: 768px) {
  .jlp-staff-voice-position {
    font-size: 0.875rem;
  }
}

.jlp-staff-voice-quote {
  position: relative;
  padding-left: 1rem;
  font-size: 0.875rem;
  line-height: 1.75;
  color: #333;
  border-left: 3px solid var(--jlp-primary-tint-35, #a5ccf0);
  border-radius: 0 2px 2px 0;
}

@media (min-width: 768px) {
  .jlp-staff-voice-quote {
    font-size: 1rem;
    line-height: 1.8;
  }
}

/* --- 募集条件・待遇 --- */
/* 募集条件・待遇（v0 デザイン: 角丸カード・行はラベル＋値） */
.jlp-details {
  overflow: hidden;
  border-radius: var(--jlp-radius-lg);
  border: 1px solid var(--jlp-border);
  background: var(--jlp-card);
}

.jlp-details-row {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--jlp-border);
}

.jlp-details-row:first-child {
  border-top: none;
}

@media (min-width: 768px) {
  .jlp-details-row {
    flex-direction: row;
  }
}

.jlp-details-label {
  flex-shrink: 0;
  display: flex;
  align-items: flex-start;
  padding: 1rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #333;
  background: color-mix(in srgb, #000 4%, transparent);
}

.jlp-details-row--group .jlp-details-label {
  /* グループ行も他と同じグレー背景に統一 */
  background: color-mix(in srgb, #000 4%, transparent);
}

@media (min-width: 768px) {
  .jlp-details-label {
    width: 12rem;
    min-width: 12rem;
  }
}

.jlp-details-value {
  flex: 1;
  padding: 1rem 1.25rem;
  font-size: 0.9375rem;
  line-height: 1.7;
  color: #333;
}

.jlp-details-value p {
  margin: 0 0 0.25rem;
}

.jlp-details-value p:last-child {
  margin-bottom: 0;
}

.jlp-details-sub {
  margin-top: 0.5rem !important;
  font-size: 0.8125rem;
  color: var(--jlp-muted-text);
}

/* グループ行内のサブ行（v0 の SubRow 相当） */
.jlp-details-group {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.jlp-details-subrow {
  display: flex;
  flex-direction: column;
  padding: 0.4rem 0;
  border-top: 1px dashed color-mix(in srgb, var(--jlp-border) 80%, transparent);
}

.jlp-details-subrow:first-child {
  border-top: none;
  padding-top: 0;
}

@media (min-width: 768px) {
  .jlp-details-subrow {
    flex-direction: row;
    align-items: flex-start;
    gap: 0.75rem;
  }
}

.jlp-details-subrow-label {
  display: inline-block;
  margin-bottom: 0.15rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--jlp-muted-text);
}

@media (min-width: 768px) {
  .jlp-details-subrow-label {
    margin-bottom: 0;
    width: 7rem;
    min-width: 7rem;
  }
}

.jlp-details-subrow-body {
  flex: 1;
  font-size: 0.9375rem;
}

.jlp-map {
  margin-top: 0.5rem;
  max-width: 28rem;
  border-radius: 0.5rem;
  overflow: hidden;
  border: 1px solid var(--jlp-border);
  background: var(--jlp-muted);
  min-height: 12rem; /* 地図領域をあらかじめ確保 */
}

.jlp-map iframe,
.jobcon-map-container {
  display: block;
  width: 100%;
  height: 14rem;
  min-height: 14rem;
}

/* APIキー未設定時：Google マップで開くリンク */
.jlp-map-fallback {
  padding: 1rem;
  min-height: 0;
}

.jlp-map-fallback-link {
  font-weight: 500;
}

.jlp-map-fallback-note {
  display: block;
  margin-top: 0.5rem;
  font-size: 0.8125rem;
  color: var(--jlp-muted-text);
}

.jlp-map:has(.jlp-map-fallback) {
  min-height: 0;
}

/* --- 採用までの流れ --- */
.jlp-flow {
  display: grid;
  gap: 0;
  grid-template-columns: 1fr;
  max-width: 56rem;
  margin: 0 auto; /* セクション中央に配置 */
}

@media (min-width: 768px) {
  .jlp-flow {
    grid-auto-flow: column; /* 横方向に並べる（要素数分のカラム） */
    grid-auto-columns: minmax(0, 1fr); /* 各ステップを均等幅に */
    justify-content: center; /* ステップ全体を中央寄せ */
  }
}

.jlp-flow-item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding-bottom: 2rem;
}

@media (min-width: 768px) {
  .jlp-flow-item {
    padding-bottom: 0;
  }
}

.jlp-flow-item:not(:last-child)::after {
  content: "\203a";
  position: absolute;
  right: 0;
  top: 2rem;
  font-size: 1.25rem;
  color: var(--jlp-muted-text);
}

@media (max-width: 767px) {
  .jlp-flow-item:not(:last-child)::after {
    display: none;
  }
  .jlp-flow-item::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: 1.5rem;
    background: var(--jlp-border);
  }
}

.jlp-flow-badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background: var(--jlp-primary);
  color: var(--jlp-primary-foreground);
  font-size: 0.5rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.1;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
  gap: 0.1rem;
}

/* STEP の下に数字を大きく表示（デザイン準拠） */
.jlp-flow-badge::after {
  content: attr(data-step);
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1;
}

.jlp-flow-title {
  margin: 0.75rem 0 0.25rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: #333;
}

.jlp-flow-desc {
  margin: 0 0 0;
  max-width: 12.5rem;
  font-size: 0.75rem;
  line-height: 1.5;
  color: var(--jlp-muted-text);
}

@media (min-width: 768px) {
  .jlp-flow-desc {
    margin-bottom: 0;
  }
}

/* --- エントリー --- */
.jlp-apply-lead {
  margin: 0 0 1rem;
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--jlp-muted-text);
}

.jlp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--jlp-primary-foreground);
  background: var(--jlp-primary);
  border: none;
  border-radius: 0.5rem;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  transition: box-shadow 0.3s ease, filter 0.3s ease;
}

.jlp-btn:hover {
  filter: brightness(0.95);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.jlp-btn .jlp-icon,
.jlp-btn [class*="ri-"] {
  color: inherit;
}

.jlp-btn--primary {
  margin-right: 0.5rem;
  margin-bottom: 0.5rem;
}

.jlp-entry-content {
  font-size: 0.9375rem;
  line-height: 1.7;
}

/* --- エントリーフォーム（v0デザイン） --- */
.jlp-entry-section .jlp-entry-form-wrap {
  border-radius: var(--jlp-radius-lg);
  border: 1px solid var(--jlp-border);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.jlp-entry-form-inner {
  max-width: 42rem;
  width: 100%;
  padding: 0;
}

.jlp-entry-form-inner .wpcf7-form {
  padding: 0;
  margin: 0;
}

.jlp-entry-form-inner > p:first-of-type,
.jlp-entry-form-inner .wpcf7-form > p:first-of-type,
.jlp-entry-form-inner .mw_wp_form .form-message,
.jlp-entry-form-inner .mw-wp-form .form-message {
  margin-bottom: 1.5rem;
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--jlp-muted-text);
}

.jlp-entry-form-inner form,
.jlp-entry-form-inner .wpcf7-form,
.jlp-entry-form-inner .mw_wp_form .mw_wp_form_form,
.jlp-entry-form-inner .mw-wp-form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  width: 100%;
  max-width: 100%;
}

/* フォーム行：横幅いっぱい・左右マージンなし（右余白をなくす） */
.jlp-entry-form-inner .wpcf7-form p,
.jlp-entry-form-inner .form-row {
  width: 100%;
  max-width: 100%;
  margin: 0 0 1.25rem;
  padding: 0;
  box-sizing: border-box;
}

.jlp-entry-form-inner .wpcf7-form p:last-child,
.jlp-entry-form-inner .form-row:last-child {
  margin-bottom: 0;
}

.jlp-entry-form-inner p:not([class]),
.jlp-entry-form-inner .wpcf7-form p,
.jlp-entry-form-inner .mw_wp_form .mw_wp_form_form .form-table th,
.jlp-entry-form-inner .mw-wp-form__list dt,
.jlp-entry-form-inner .mw-wp-form .form-table th {
  margin: 0 0 0.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: inherit;
}

/* ラベル：アイコン＋項目名を横並び（参考v0：flex + align-items: center のみ） */
.jlp-entry-form-inner label {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  margin-bottom: 0.375rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: inherit;
}

.jlp-entry-form-inner label .jlp-icon,
.jlp-entry-form-inner label .label-icon,
.jlp-entry-form-inner label [class*="ri-"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.25em;
  line-height: 1;
  font-size: 1em;
  color: var(--jlp-muted-text);
  transform: translateY(-0.06em);
}

/* 入力欄：横幅いっぱい・背景色あり */
.jlp-entry-form-inner input[type="text"],
.jlp-entry-form-inner input[type="email"],
.jlp-entry-form-inner input[type="tel"],
.jlp-entry-form-inner input[type="number"],
.jlp-entry-form-inner input[type="url"],
.jlp-entry-form-inner input[type="search"],
.jlp-entry-form-inner textarea,
.jlp-entry-form-inner select,
.jlp-entry-form-inner .wpcf7-form-control:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.jlp-entry-form-inner .mw_wp_form input[type="text"],
.jlp-entry-form-inner .mw_wp_form input[type="email"],
.jlp-entry-form-inner .mw_wp_form input[type="tel"],
.jlp-entry-form-inner .mw_wp_form input[type="number"],
.jlp-entry-form-inner .mw_wp_form textarea,
.jlp-entry-form-inner .mw_wp_form select,
.jlp-entry-form-inner .mw-wp-form input[type="text"],
.jlp-entry-form-inner .mw-wp-form input[type="email"],
.jlp-entry-form-inner .mw-wp-form input[type="tel"],
.jlp-entry-form-inner .mw-wp-form input[type="number"],
.jlp-entry-form-inner .mw-wp-form textarea,
.jlp-entry-form-inner .mw-wp-form select {
  display: block;
  width: 100%;
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: inherit;
  background: var(--jlp-muted);
  border: 1px solid var(--jlp-border);
  border-radius: var(--jlp-radius);
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  box-sizing: border-box;
}

.jlp-entry-form-inner input::placeholder,
.jlp-entry-form-inner textarea::placeholder {
  color: var(--jlp-muted-text);
}

.jlp-entry-form-inner input:focus,
.jlp-entry-form-inner textarea:focus,
.jlp-entry-form-inner select:focus,
.jlp-entry-form-inner .wpcf7-form-control:focus {
  border-color: var(--jlp-primary);
  box-shadow: 0 0 0 2px var(--jlp-primary-tint-20, #cce3f8);
}

.jlp-entry-form-inner textarea {
  min-height: 6rem;
  resize: vertical;
}

.jlp-entry-form-inner input[type="checkbox"],
.jlp-entry-form-inner input[type="radio"] {
  width: 1rem;
  height: 1rem;
  margin-right: 0.5rem;
  accent-color: var(--jlp-primary);
  vertical-align: middle;
}

/* 送信ボタン：アイコンフォント＋中央配置 */
.jlp-entry-form-inner input[type="submit"],
.jlp-entry-form-inner button[type="submit"],
.jlp-entry-form-inner .wpcf7-submit,
.jlp-entry-form-inner .mw_wp_form input[type="submit"],
.jlp-entry-form-inner .mw_wp_form button[type="submit"],
.jlp-entry-form-inner .mw-wp-form input[type="submit"],
.jlp-entry-form-inner .mw-wp-form button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  max-width: 20rem;
  margin-top: 0.5rem;
  padding: 1rem 1.5rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--jlp-primary-foreground);
  background: var(--jlp-primary);
  border: none;
  border-radius: var(--jlp-radius);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  cursor: pointer;
  transition: filter 0.3s ease, box-shadow 0.3s ease;
}

.jlp-entry-form-inner input[type="submit"] .jlp-icon,
.jlp-entry-form-inner input[type="submit"] [class*="ri-"],
.jlp-entry-form-inner .wpcf7-submit .jlp-icon,
.jlp-entry-form-inner .wpcf7-submit [class*="ri-"] {
  color: inherit;
}

.jlp-entry-form-inner input[type="submit"]:hover,
.jlp-entry-form-inner button[type="submit"]:hover,
.jlp-entry-form-inner .wpcf7-submit:hover,
.jlp-entry-form-inner .mw_wp_form input[type="submit"]:hover,
.jlp-entry-form-inner .mw_wp_form button[type="submit"]:hover,
.jlp-entry-form-inner .mw-wp-form input[type="submit"]:hover,
.jlp-entry-form-inner .mw-wp-form button[type="submit"]:hover {
  filter: brightness(0.95);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* 送信ボタン行を中央配置 */
.jlp-entry-form-inner p:has(.wpcf7-submit),
.jlp-entry-form-inner p:has([type="submit"]),
.jlp-entry-form-inner .form-row--submit {
  display: flex;
  justify-content: center;
}

@media (min-width: 768px) {
  .jlp-entry-form-inner input[type="submit"],
  .jlp-entry-form-inner button[type="submit"],
  .jlp-entry-form-inner .wpcf7-submit,
  .jlp-entry-form-inner .mw_wp_form input[type="submit"],
  .jlp-entry-form-inner .mw_wp_form button[type="submit"],
  .jlp-entry-form-inner .mw-wp-form input[type="submit"],
  .jlp-entry-form-inner .mw-wp-form button[type="submit"] {
    width: auto;
  }
}

/* MW WP Form: テーブルレイアウトをブロック化 */
.jlp-entry-form-inner .mw_wp_form .form-table,
.jlp-entry-form-inner .mw-wp-form .form-table {
  display: block;
  margin: 0;
}

.jlp-entry-form-inner .mw_wp_form .form-table tr,
.jlp-entry-form-inner .mw-wp-form__list > div {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin-bottom: 1rem;
}

.jlp-entry-form-inner .mw_wp_form .form-table th,
.jlp-entry-form-inner .mw-wp-form .form-table th {
  padding: 0;
  border: none;
  font-weight: 500;
}

.jlp-entry-form-inner .mw_wp_form .form-table td,
.jlp-entry-form-inner .mw-wp-form .form-table td {
  display: block;
  padding: 0;
  border: none;
}

/* ==========================================
   Contact Form 7 — v0デザイン再現CSS（参考CSS準拠）
   ========================================== */

/* フォーム全体・フォーム行：横幅100%・左右余白なし */
.entry-form-fields,
.entry-form-fields .wpcf7-form {
  width: 100%;
  max-width: 100%;
}

/* こちらの…の1文下にマージン */
.entry-form-fields > *:first-child {
  margin-bottom: 1.5rem;
}

.entry-form-fields .form-row,
.entry-form-fields .wpcf7-form p {
  margin: 0 0 2rem;
  padding: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.entry-form-fields .form-row:last-child,
.entry-form-fields .wpcf7-form p:last-child {
  margin-bottom: 0;
}

/* ラベル（flex + align-items: center） */
.entry-form-fields .form-row > label,
.entry-form-fields .wpcf7-form p > label {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.875rem;
  font-weight: 500;
  margin-bottom: 0.375rem;
  color: #1d2327;
  line-height: 1.25;
}

/* ラベル内アイコン：Remix Icon のベースラインずれを打ち消し */
.entry-form-fields .label-icon,
.entry-form-fields .form-row > label .jlp-icon,
.entry-form-fields .form-row > label [class*="ri-"],
.entry-form-fields .wpcf7-form p > label .jlp-icon,
.entry-form-fields .wpcf7-form p > label [class*="ri-"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.25em;
  line-height: 1;
  font-size: 1em;
  color: var(--jlp-muted-text);
  /* アイコンフォントがテキストより下にずれるのを補正 */
  transform: translateY(-0.06em);
}

/* 必須マーク（ラベル内・「* は必須項目です。」の * に適用） */
.entry-form-fields .required {
  color: #d63638;
  font-size: 0.75rem;
  font-weight: 600;
}

.jlp-entry-form-inner .required {
  color: #d63638;
  font-size: 0.75rem;
  font-weight: 600;
}

/* テキスト系 input / textarea 共通（参考v0：width: 100% のみ） */
.entry-form-fields input[type="text"],
.entry-form-fields input[type="email"],
.entry-form-fields input[type="tel"],
.entry-form-fields textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  border-radius: 0.5rem;
  border: 1px solid var(--jlp-border);
  background: var(--jlp-muted);
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  color: #1d2327;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.entry-form-fields input[type="text"]:focus,
.entry-form-fields input[type="email"]:focus,
.entry-form-fields input[type="tel"]:focus,
.entry-form-fields textarea:focus {
  border-color: var(--jlp-primary);
  box-shadow: 0 0 0 2px var(--jlp-primary-tint-20, #cce3f8);
}

/* プレースホルダー（デザインに合わせて薄いグレー） */
.entry-form-fields input::placeholder,
.entry-form-fields textarea::placeholder {
  color: #a0a0a0;
}

.jlp-entry-form-inner input::placeholder,
.jlp-entry-form-inner textarea::placeholder {
  color: #a0a0a0;
}

/* textarea リサイズ */
.entry-form-fields textarea {
  resize: vertical;
}

/* プライバシー同意行：アウトラインなし・背景色なし・チェックボックスは他要素と左揃え */
.entry-form-fields .form-row--consent,
.entry-form-fields .form-row--consent .wpcf7-list-item,
.entry-form-fields .form-row--consent .wpcf7-list-item-label,
.entry-form-fields .form-row--consent label,
.entry-form-fields .form-row--consent span,
.entry-form-fields p:has(input[type="checkbox"]):not(.form-row--submit),
.entry-form-fields p:has(input[type="checkbox"]):not(.form-row--submit) span,
.entry-form-fields p:has(input[type="checkbox"]):not(.form-row--submit) label {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}

.entry-form-fields .form-row--consent {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin: 0 0 1.25rem;
  padding: 0 !important;
  outline: none;
}

/* プライバシー行を他要素と左揃え（余白・padding をゼロに） */
.entry-form-fields .form-row--consent .wpcf7-form-control-wrap,
.entry-form-fields .form-row--consent .wpcf7-form-control,
.entry-form-fields .form-row--consent .wpcf7-acceptance,
.entry-form-fields .form-row--consent .wpcf7-list-item,
.entry-form-fields .form-row--consent .wpcf7-list-item-label {
  margin-left: 0;
  margin-right: 0;
  padding: 0;
}

.entry-form-fields .form-row--consent .wpcf7-list-item,
.entry-form-fields .form-row--consent .wpcf7-list-item-label {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin: 0;
  padding: 0 !important;
  background: transparent;
}

.entry-form-fields .form-row--consent .wpcf7-list-item label {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--jlp-muted-text);
  margin-bottom: 0;
  background: transparent;
}

.entry-form-fields .form-row--consent input[type="checkbox"] {
  margin: 0;
  margin-top: 0.2rem;
  flex-shrink: 0;
  height: 1rem;
  width: 1rem;
  accent-color: var(--jlp-primary);
  background-color: #fff;
}

.entry-form-fields .form-row--consent a {
  color: var(--jlp-primary);
  text-decoration: underline;
}

.entry-form-fields .form-row--consent a:hover {
  text-decoration: none;
}

/* 同意行（.form-row なしのCF7デフォルト）も左余白を詰める */
.entry-form-fields p:has(input[type="checkbox"]):not(.form-row--submit),
.entry-form-fields p:has(input[type="checkbox"]) .wpcf7-form-control-wrap,
.entry-form-fields p:has(input[type="checkbox"]) .wpcf7-acceptance {
  margin-left: 0;
  padding-left: 0;
}

.entry-form-fields p:has(input[type="checkbox"]):not(.form-row--submit) {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  border: none;
  outline: none;
}

.entry-form-fields p:has(input[type="checkbox"]) input[type="checkbox"] {
  margin-top: 0.2rem;
  flex-shrink: 0;
}

/* 送信ボタン：アイコンフォント＋中央配置 */
.entry-form-fields .form-row--submit {
  margin-top: 1.5rem;
  display: flex;
  justify-content: center;
}

.entry-form-fields .wpcf7-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  max-width: 20rem;
  border-radius: 0.5rem;
  background: var(--jlp-primary);
  padding: 1rem 1.5rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--jlp-primary-foreground);
  border: none;
  cursor: pointer;
  box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
  transition: filter 0.3s ease, box-shadow 0.3s ease;
}

.entry-form-fields .wpcf7-submit .jlp-icon,
.entry-form-fields .wpcf7-submit [class*="ri-"] {
  color: inherit;
}

.entry-form-fields .wpcf7-submit:hover {
  filter: brightness(0.95);
  box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
}

@media (min-width: 768px) {
  .entry-form-fields .wpcf7-submit {
    width: auto;
    padding-left: 4rem;
    padding-right: 4rem;
  }
}

/* バリデーションエラー */
.entry-form-fields .wpcf7-not-valid-tip {
  display: block;
  margin-top: 0.375rem;
  font-size: 0.75rem;
  color: #d63638;
}

/* 送信後メッセージ */
.entry-form-fields .wpcf7-response-output {
  margin-top: 1rem;
  padding: 0.75rem 1rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
}

.entry-form-fields .wpcf7-form.sent .wpcf7-response-output {
  border: 1px solid hsl(173 58% 39%);
  background: hsl(173 58% 39% / 0.1);
  color: hsl(173 58% 30%);
}

.entry-form-fields .wpcf7-form.failed .wpcf7-response-output,
.entry-form-fields .wpcf7-form.invalid .wpcf7-response-output {
  border: 1px solid #d63638;
  background: rgb(214 54 56 / 0.1);
  color: #d63638;
}

/* CF7 スピナー非表示（任意） */
.entry-form-fields .wpcf7-spinner {
  display: none;
}

/* --- 関連求人（エリア背景白・横幅貫通） --- */
.jlp-related-wrap {
  margin-top: 2rem;
  padding: 0 0 4.5rem;
  position: relative;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  margin-bottom: 0;
  background: #fff;
  /* ヘッダー境界と同様のシャドウ（上端にぼかし） */
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

/* 求人詳細のみ：関連する求人の上余白を確保（アーカイブは padding: 0 0 4.5rem のまま） */
body.single-job_listing .jlp-related-wrap {
  padding-top: 2.5rem;
}

/* モニタ幅いっぱいに罫線を引く（関連求人セクションのみ・アーカイブでは非表示） */
.jlp-related-wrap::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  border-top: 1px solid var(--jlp-border);
  pointer-events: none;
}

.jlp-archive-wrap::before {
  display: none;
}

/* アーカイブ：横幅貫通の白背景は使わず、求人一覧の背景色を表示 */
.jlp-archive-wrap {
  width: 100%;
  margin-left: 0;
  margin-right: 0;
  background: transparent;
  box-shadow: none;
}

@media (max-width: 767px) {
  .jlp-related-wrap {
    padding-bottom: 2.5rem;
    margin-bottom: 0;
  }

  .jlp-archive-wrap {
    padding-bottom: 2.5rem;
    margin-bottom: 0;
  }
}

.jlp-related-wrap .jlp-container {
  padding: 0 1rem;
}

@media (min-width: 640px) {
  .jlp-related-wrap .jlp-container {
    padding: 0 1.5rem;
  }
}

.jlp-related-wrap .jlp-section-title {
  margin-bottom: 1.5rem;
}

.jlp-related-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .jlp-related-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .jlp-related-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.jlp-related-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 0.75rem; /* 角丸をカードに直接指定（アーカイブでも有効に） */
  border: 1px solid var(--jlp-border);
  background: #fbfbfb; /* ボディ背景色と同じ */
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.3s ease, background 0.3s ease, color 0.3s ease;
}

.jlp-related-card:hover {
  background: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  text-decoration: none;
}

.jlp-related-card:hover * {
  text-decoration: none;
}

.jlp-related-card:hover .jlp-related-title {
  color: var(--jlp-primary);
}

.jlp-related-thumb {
  flex-shrink: 0;
  height: 11rem;
  overflow: hidden;
  background: var(--jlp-muted);
  display: flex;
  align-items: center;
  justify-content: center;
}

.jlp-related-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.3s;
}

/* カスタマイザー NO IMAGE 画像をセンタリング配置 */
.jlp-related-thumb .jobcon-no-image-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.jlp-related-thumb .jobcon-no-image {
  width: 100%;
  height: 100%;
  min-height: 11rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--jlp-muted);
  color: var(--jlp-muted-text);
  font-size: 0.875rem;
}

.jlp-related-card:hover .jlp-related-thumb img {
  transform: scale(1.05);
}

.jlp-related-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 1rem;
}

.jlp-related-title {
  margin: 0 0 0.5rem;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.35;
  color: #333;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color 0.3s ease;
}

.jlp-related-meta {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.75rem;
  color: var(--jlp-muted-text);
}

.jlp-related-meta span {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}

.jlp-related-meta .jlp-icon {
  font-size: 0.85em;
  flex-shrink: 0;
}

.jlp-related-salary {
  font-weight: 600;
  color: inherit; /* 赤で強調しない */
}

.jlp-related-link {
  margin: 1.5rem 0 0;
  padding-bottom: 0.5rem;
  text-align: center;
}

.jlp-related-link a {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--jlp-primary);
  text-decoration: none;
  transition: opacity 0.3s ease, color 0.3s ease;
}

.jlp-related-link a:hover {
  text-decoration: none;
  opacity: 0.65;
}

/* --- スマホ固定応募ボタン --- */
.jlp-fab {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 50;
  padding: 0.75rem 1rem;
  border-top: 1px solid var(--jlp-border);
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.08);
}

@media (max-width: 767px) {
  .jlp-fab {
    display: block;
  }
}

.jlp-fab-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0.875rem 1.5rem;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  background: var(--jobcon-primary, #0073aa);
  border: none;
  border-radius: 0.5rem;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  transition: filter 0.3s ease, color 0.3s ease, background-color 0.3s ease;
}

.jlp-fab-btn .jlp-icon,
.jlp-fab-btn .jlp-icon--lucide {
  color: inherit;
}

.jlp-fab-btn:hover {
  filter: brightness(0.95);
  color: #fff;
  background: color-mix(in srgb, var(--jobcon-primary, #0073aa) 85%, #000);
}

/* 固定ボタン分の余白（SP） */
@media (max-width: 767px) {
  .jlp-wrap {
    padding-bottom: 5rem;
  }
}
