/* ============================================
   カラーテーマ：青/ティール → オレンジ/ウォーム
   全ページに最後に読み込んで元CSSを上書き
   ============================================ */

:root {
  --color-primary: #F28B30;
  --color-primary-dark: #D97706;
  --color-primary-light: #F9B75C;
  --color-primary-bg: #FFFBF5;
  --color-primary-bg-light: #FFFAF3;
  --color-primary-bg-medium: #FFF3E0;
  --color-primary-bg-alt: #FEF3E2;
  --color-secondary: #E8741E;
  --color-secondary-light: #F5A623;
  --color-accent: #6BAF8D;
  --color-accent-dark: #5A9A7A;
  --color-accent-bg: #F0F7F3;
  --color-bg: #FAFAF7;
  --color-text: #333333;
  --color-text-sub: #888580;
  --color-border: #F1F1F1;
  --color-accent: #EA580C;
  --color-dark: #9A3412;
  --color-gradient-start: #F28B30;
  --color-gradient-end: #F9B75C;
  --color-cta: #1E8449;
  --color-cta-dark: #176437;
  --color-cta-light: #27AE60;
}

.section-job.is-search .job-title {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/**
 * WordPress コアの補助テキスト用クラス（the_posts_pagination の見出し、get_search_form 等）。
 * functions.php で wp-block-library を外しているため、コア付属の .screen-reader-text 定義をここで補完する。
 */
.screen-reader-text {
  border: 0;
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}

.screen-reader-text:focus {
  background-color: #ddd;
  clip-path: none;
  color: #444;
  display: block;
  font-size: 1em;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

/* ============================================
   Global overrides
   ============================================ */

/* ---------- Background color ---------- */

.btn-common:hover,
.btn-common.is-primary,
.header .btn-search,
.common-pagination .number:hover,
.common-pagination .number.is-current,
.section-top-filter .btn-search,
.modal .result-button,
.footer .footer-top,
.footer .footer-policy,
.btn-scroll-top,
.news-tabs a.is-active,
.faq-tabs a.is-active,
.section-top-filter .filter-count,
.job-note .note-button,
.job-card .card-button,
.section-detail-entry .btn-entry,
.list-qa .qa-label.is-a,
.section-faq-search .btn-search,
.section-job-recommend .btn-common,
.block-sidebar .sidebar-button {
  background-color: var(--color-primary) !important;
}

/* ---------- Text color ---------- */

.heading-section .heading-en,
.heading-section .heading-ja,
.btn-common.is-primary:hover,
.btn-common:not(:hover):not(.is-primary):not(.is-dark):not(.is-orange),
.header .contact-text,
.header .contact-phone,
.header .btn-search:hover,
.section-top-filter .filter-result,
.section-top-filter .item-content:hover,
.section-top-filter .btn-search:hover,
.modal .result-button:hover,
.footer .footer-link:hover,
.section-detail-info .info-heading,
.section-detail-info .info-label,
.breadcrumb a:hover,
.news-tabs a:hover,
.faq-tabs a:hover,
.list-qa .qa-label.is-q,
.block-sidebar .sidebar-heading,
.block-sidebar .sidebar-link:hover,
.section-faq-list .faq-link:hover,
.common-pagination .number,
.section-job-list .job-card .card-link:hover,
.section-top-qa .section-heading,
.section-top-news .heading-en,
.section-top-about .heading-en,
.section-top-about .heading-ja,
a.trans:hover {
  color: var(--color-primary) !important;
}

/* ---------- Border color ---------- */

.btn-common:not(.is-dark):not(.is-orange),
.common-pagination .number:hover,
.common-pagination .number.is-current,
.section-top-filter .btn-search,
.modal .result-button,
.header .btn-search,
.header .header-contact .contact-tel,
.list-qa .qa-item,
.block-sidebar .sidebar-button,
.job-note .note-button {
  border-color: var(--color-primary) !important;
}

/* ============================================
   Gradients
   ============================================ */

.section-treatment-important,
.section-top-filter .filter-item {
  background: linear-gradient(to left, var(--color-gradient-end) 0%, var(--color-gradient-start) 100%) !important;
}

.section-top-filter .filter-line {
  background: linear-gradient(to left, var(--color-gradient-end) 0%, var(--color-gradient-start) 100%) !important;
}

/* ============================================
   Background: light tint areas
   ============================================ */

/* #ECF7FD → warm light orange bg */
body {
  background-color: var(--color-primary-bg) !important;
}

/* Sections with light teal/blue bg */
.section-top-about,
.section-top-search,
.section-job-recommend,
.section-detail-related,
.section-faq-search,
.block-sidebar {
  background-color: var(--color-primary-bg) !important;
}

/* TOP page alternating section backgrounds */
.section-top-message { background-color: #fff !important; }
.section-top-benefits { background-color: #fff !important; }
.section-top-story { background-color: var(--color-primary-bg) !important; }
.section-top-job { background-color: #fff !important; }
.section-top-qa { background-color: var(--color-primary-bg) !important; }
.section-top-news { background-color: #fff !important; }
.section-top-instagram { background-color: var(--color-primary-bg) !important; }
.section-top-qa,
.section-top-news {
  border-top: none !important;
}
.section-top-qa > .wrapper,
.section-top-news > .wrapper {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}
.section-top-qa > .wrapper > .column-left,
.section-top-news > .wrapper > .column-left,
body.is-top .section-top-qa .column-left,
body.is-top .section-top-news .column-left {
  width: 100% !important;
  text-align: center !important;
  margin-bottom: 20px !important;
  display: block !important;
  float: none !important;
}
body.is-top .section-top-qa .column-left *,
body.is-top .section-top-news .column-left * {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.section-top-qa > .wrapper > .column-right,
.section-top-news > .wrapper > .column-right {
  width: 100% !important;
  max-width: 700px !important;
}

/* TOP：共感メッセージ */
.section-top-message {
  position: relative !important;
  z-index: 1 !important;
  overflow: hidden;
  background: #fff !important;
  background-color: #fff !important;
  padding: 24px 0 26px;
  margin-top: 0 !important;
}

/* ---------- コンテンツ ---------- */
.section-top-message .top-message-inner {
  position: relative;
  z-index: 1;
  max-width: 520px;
  margin: 0 auto;
  padding: 0 24px;
  text-align: left;
  box-sizing: border-box;
}

.top-message-lead {
  margin: 0 0 20px;
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #333;
  line-height: 1.5;
}
.top-message-lead::before,
.top-message-lead::after {
  display: none !important;
}

.top-message-body {
  font-size: 16px;
  line-height: 1.8;
  color: #555;
  letter-spacing: 0.04em;
}
.top-message-body p {
  margin: 0 0 0.7em;
}
.top-message-body p:last-child {
  margin-bottom: 0;
}
.top-message-stress {
  font-weight: inherit;
  color: inherit;
  letter-spacing: inherit;
}
.top-message-wish {
  display: inline-block;
  font-size: 15px;
  font-weight: 600;
  color: #333;
  letter-spacing: 0.03em;
}
/* --- CTA line (その想い...) --- */
.top-message-cta {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #333 !important;
  margin-top: 1em !important;
  line-height: 1.6 !important;
}
.top-message-brand {
  position: relative;
  font-weight: 800;
  font-size: inherit;
  letter-spacing: inherit;
  color: #333;
}
.top-message-brand::after {
  display: none !important;
}

/* --- Typing animation --- */
.js-typing-target,
.js-typing-target2,
.js-typing-target3 {
  min-height: 1.5em;
}
.js-typing-target .typing-cursor,
.js-typing-target2 .typing-cursor,
.js-typing-target3 .typing-cursor {
  display: inline-block;
  width: 2px;
  height: 1em;
  background: #555;
  margin-left: 2px;
  vertical-align: text-bottom;
  animation: typing-blink 0.6s steps(2) infinite;
}
@keyframes typing-blink {
  0% { opacity: 1; }
  100% { opacity: 0; }
}
.js-typing-target .typing-stress,
.js-typing-target2 .typing-stress,
.js-typing-target3 .typing-stress {
  font-weight: inherit;
  color: inherit;
}

@media print, (min-width: 768px) {
  .section-top-message {
    padding: 28px 0 30px;
  }
  .section-top-message .top-message-inner {
    max-width: 520px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center;
  }
  .top-message-lead {
    font-size: 36px;
  }
  .top-message-lead::before,
  .top-message-lead::after {
    display: none !important;
  }
  .top-message-body {
    font-size: 19px;
  }
  .top-message-wish {
    font-size: 20px !important;
  }
  .top-message-cta {
    font-size: 24px !important;
  }
}

/* ============================================
   4. 数字で見るたいよう
   ============================================ */
.section-top-numbers {
  background: #fff !important;
  padding: 40px 0 44px;
}
.top-numbers-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  max-width: 800px;
  margin: 0 auto;
}
.top-number-card {
  background: var(--color-primary-bg);
  border-radius: 4px;
  padding: 24px 20px 20px;
  text-align: center;
}
.top-number-value {
  margin: 0;
  font-size: 48px;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1.1;
}
.top-number-unit {
  font-size: 16px;
  font-weight: 700;
  color: var(--color-primary);
  margin-left: 2px;
}
.top-number-label {
  margin: 4px 0 12px;
  font-size: 13px;
  font-weight: 600;
  color: #555;
  letter-spacing: 0.06em;
}
.top-number-compare { max-width: 280px; margin: 0 auto; }
.compare-bar {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.compare-fill {
  height: 22px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  padding: 0 8px;
  min-width: 60px;
  box-sizing: border-box;
}
.compare-fill span {
  font-size: 10px;
  font-weight: 600;
  white-space: nowrap;
}
.compare-industry {
  background: #e0ddd8;
  color: #777;
}
.compare-taiyo {
  background: var(--color-primary);
  color: #fff;
}

@media print, (min-width: 768px) {
  .section-top-numbers { padding: 56px 0 60px; }
  .top-numbers-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
  .top-number-value { font-size: 52px; }
}

/* ============================================
   たいようで働くママの1日（タイムライン）
   ============================================ */
/* ============================================
   Section headings - larger size
   ============================================ */
.common-title {
  margin-bottom: 28px !important;
  text-align: center !important;
}
body.is-top h2.common-title,
body.is-top .common-title {
  text-align: center !important;
}
.common-title .text-en,
.text-en {
  display: none !important;
}
.common-title .text-jp {
  display: block !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  color: #333 !important;
}
@media only screen and (max-width: 767.98px) {
  body.is-top h2.common-title .text-jp,
  body.is-top .common-title .text-jp {
    font-size: 17px !important;
    letter-spacing: 0.04em !important;
  }
}
@media print, (min-width: 768px) {
  .common-title .text-jp {
    font-size: 28px !important;
  }
}

/* ============================================
   Instagram section (Elfsight widget)
   ============================================ */
.section-top-instagram {
  padding: 40px 0 44px;
}
.eapps-instagram-feed-title { display: none !important; }
[id^="eapps-instagram-feed"] > a[href*="elfsight"] { display: none !important; }
.insta-lead {
  text-align: center;
  font-size: 14px;
  color: #666;
  margin: -8px 0 20px;
  letter-spacing: 0.04em;
}
.insta-follow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 20px;
  font-size: 14px;
  font-weight: 700;
  color: #555;
  text-decoration: none;
  letter-spacing: 0.04em;
}
.insta-follow:hover {
  color: #c13584;
}
.insta-follow svg {
  flex-shrink: 0;
}

.section-top-timeline {
  background: #fff !important;
  padding: 40px 0 44px;
}
.timeline-tabs {
  display: flex;
  justify-content: center;
  gap: 0;
  margin-bottom: 24px;
  border-bottom: 2px solid #eee;
  max-width: 400px;
  margin-left: auto;
  margin-right: auto;
}
.timeline-tab {
  flex: 1;
  padding: 10px 4px;
  font-size: 14px;
  font-weight: 600;
  color: #999;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  cursor: pointer;
  transition: color 0.2s, border-color 0.2s;
  letter-spacing: 0.04em;
}
.timeline-tab.is-active {
  color: var(--color-primary);
  border-bottom-color: var(--color-primary);
}

.timeline-panel {
  display: none;
  max-width: 420px;
  margin: 0 auto;
}
.timeline-panel.is-active { display: block; }

/* Timeline legend */
.tl-legend {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-bottom: 20px;
}
.tl-legend-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #888;
  letter-spacing: 0.04em;
}
.tl-legend-item::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
}
.tl-legend-private::before { background: #b8d4ce; }
.tl-legend-work::before { background: var(--color-primary); }

/* Timeline list */
.tl-list {
  position: relative;
  max-width: 400px;
  margin: 0 auto;
}
.tl-list::before {
  content: "";
  position: absolute;
  left: 62px;
  top: 0;
  bottom: 0;
  width: 1px;
  background: #e0dcd6;
}
.tl-row {
  display: flex;
  align-items: center;
  padding: 11px 0;
  position: relative;
}
.tl-time {
  width: 48px;
  text-align: right;
  font-size: 14px;
  font-weight: 700;
  color: #444;
  flex-shrink: 0;
  line-height: 1;
}
.tl-dot {
  position: relative;
  width: 28px;
  flex-shrink: 0;
  display: flex;
  justify-content: center;
}
.tl-dot::before {
  content: "";
  display: block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #b8d4ce;
  z-index: 1;
}
.tl-is-work .tl-dot::before {
  background: var(--color-primary);
}
.tl-is-accent .tl-dot::before {
  background: #b8d4ce;
  width: 11px;
  height: 11px;
  box-shadow: 0 0 0 3px rgba(184,212,206,0.3);
}
.tl-is-work.tl-is-accent .tl-dot::before {
  background: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(242,139,48,0.15);
}
.tl-label {
  font-size: 14px;
  font-weight: 500;
  color: #333;
  letter-spacing: 0.02em;
  line-height: 1.4;
}
.tl-label small {
  display: inline;
  font-size: 12px;
  font-weight: 400;
  color: #999;
  margin-left: 6px;
}
.tl-is-accent .tl-label {
  font-weight: 700;
  color: #333;
}
.tl-is-block {
  background: var(--color-primary-bg);
  border-radius: 6px;
  margin: 2px 0;
  padding: 14px 0 14px 0;
}
.tl-is-block .tl-label {
  font-weight: 700;
  color: var(--color-primary);
  letter-spacing: 0.06em;
}
.tl-is-block .tl-label small {
  color: var(--color-primary-light);
}
.timeline-note {
  margin: 20px auto 0;
  max-width: 380px;
  font-size: 12px;
  color: #777;
  text-align: center;
  line-height: 1.8;
  letter-spacing: 0.03em;
}

@media print, (min-width: 768px) {
  .section-top-timeline { padding: 56px 0 60px; }
}

/* 職種別ハイライト（独立セクション） */
.section-top-highlights {
  background: #fff !important;
  padding: 28px 0 20px;
}
.top-numbers-highlights {
  max-width: 600px;
  margin: 0 auto;
  background: var(--color-primary-bg);
  border-radius: 4px;
  padding: 18px 20px 14px;
}
.highlights-lead {
  font-size: 12px;
  font-weight: 700;
  color: var(--color-primary);
  letter-spacing: 0.06em;
  margin: 0 0 10px;
  text-align: center;
}
.highlights-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.highlights-list li {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-size: 13px;
  line-height: 1.6;
  padding: 5px 0;
  border-bottom: 1px solid rgba(0,0,0,0.04);
}
.highlights-list li:last-child { border-bottom: none; }
.highlights-list li strong {
  flex-shrink: 0;
  width: 72px;
  font-size: 12px;
  font-weight: 700;
  color: #333;
  letter-spacing: 0.03em;
}
.highlights-list li span {
  color: #555;
  font-size: 13px;
  letter-spacing: 0.02em;
}

@media print, (min-width: 768px) {
  .section-top-highlights { padding: 36px 0 28px; }
  .top-numbers-highlights {
    padding: 20px 28px 16px;
  }
  .highlights-list {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0;
  }
  .highlights-list li {
    flex: 0 0 50%;
    box-sizing: border-box;
    padding: 6px 8px;
    border-bottom: none;
    border-right: 1px solid rgba(0,0,0,0.06);
  }
  .highlights-list li:nth-child(2n) { border-right: none; }
  .highlights-list li:last-child { border-right: none; }
}

/* ============================================
   5. スタッフの声
   ============================================ */
.section-top-voices {
  background: var(--color-primary-bg) !important;
  padding: 40px 0 44px;
}
.top-voices-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 800px;
  margin: 0 auto;
}
.voice-card {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  display: flex;
  gap: 16px;
  align-items: flex-start;
  box-shadow: 0 1px 6px rgba(0,0,0,0.04);
}
.voice-photo {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
}
.voice-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.voice-body { flex: 1; min-width: 0; }
.voice-quote {
  margin: 0 0 10px;
  font-size: 14px;
  font-weight: 600;
  color: #333;
  line-height: 1.8;
  letter-spacing: 0.02em;
}
.voice-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.voice-tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  color: var(--color-primary);
  border: 1px solid var(--color-primary);
  border-radius: 3px;
  padding: 2px 8px;
  letter-spacing: 0.03em;
}
.voice-info {
  font-size: 12px;
  color: #888;
  letter-spacing: 0.03em;
}

@media print, (min-width: 768px) {
  .section-top-voices { padding: 56px 0 60px; }
  .top-voices-list {
    flex-direction: row;
    gap: 20px;
  }
  .voice-card {
    flex: 1;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 28px 20px;
  }
  .voice-photo { width: 80px; height: 80px; }
  .voice-meta { justify-content: center; }
}

/* ============================================
   6. たいようの3つの安心
   ============================================ */
.section-top-benefits {
  background: #fff !important;
  padding: 48px 0 52px;
}
.top-benefits-grid {
  display: flex;
  flex-direction: column;
  gap: 0;
  max-width: 700px;
  margin: 0 auto;
  counter-reset: benefit;
}
.benefit-card {
  padding: 20px 0;
  border-bottom: 1px solid #eae6e1;
  text-align: left;
}
.benefit-card:last-child {
  border-bottom: none;
}
.benefit-num {
  display: none;
}
.benefit-title {
  font-size: 17px;
  font-weight: 700;
  color: #333;
  margin: 0 0 8px;
  letter-spacing: 0.02em;
  line-height: 1.4;
}
.benefit-title::before {
  counter-increment: benefit;
  content: counter(benefit) ". ";
  color: var(--color-primary, #ef8200);
  font-weight: 700;
}
.benefit-text {
  font-size: 14px;
  line-height: 1.8;
  color: #666;
  margin: 0;
  letter-spacing: 0.01em;
}

/* benefit card scroll animation */
.js-benefit-item {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.js-benefit-item.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media print, (min-width: 768px) {
  .section-top-benefits { padding: 64px 0 68px; }
  .top-benefits-grid {
    max-width: 800px;
  }
  .benefit-card {
    padding: 24px 0;
  }
  .benefit-title {
    font-size: 18px;
    margin-bottom: 10px;
  }
  .benefit-text {
    font-size: 14.5px;
  }
}

/* ============================================
   8. 施設を探す
   ============================================ */
.section-top-facilities {
  background: #fff !important;
  padding: 40px 0 36px;
  border-top: 1px solid #eee;
}
.top-facilities-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  max-width: 600px;
  margin: 0 auto;
}
.facility-area-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 18px 8px;
  background: #f9f9f9;
  border: 1px solid #e8e4df;
  border-radius: 4px;
  text-decoration: none !important;
  transition: background 0.2s;
}
.facility-area-card:hover {
  background: #f3f0ec;
}
.area-name {
  font-size: 14px;
  font-weight: 700;
  color: #333;
  letter-spacing: 0.04em;
}
.area-count {
  font-size: 11px;
  color: var(--color-primary);
  font-weight: 600;
  margin-top: 4px;
  letter-spacing: 0.03em;
}
.facilities-note {
  text-align: center;
  font-size: 12px;
  color: #999;
  margin-top: 16px;
  letter-spacing: 0.04em;
}

@media print, (min-width: 768px) {
  .section-top-facilities { padding: 56px 0 48px; }
  .top-facilities-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
  }
  .facility-area-card { padding: 24px 12px; }
}

/* ============================================
   CEO Story video
   ============================================ */
.section-top-story {
  padding: 40px 0 44px;
}
.story-video {
  max-width: 640px;
  margin: 0 auto;
}
.story-video-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 0;
  overflow: hidden;
}
.story-video-wrap.js-yt-facade {
  cursor: pointer;
}
.story-video-poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.story-video-play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.story-video-desc {
  max-width: 640px;
  margin: 0 auto 28px;
  padding: 0 16px;
  font-size: 15px;
  line-height: 2;
  color: #333;
  text-align: left;
  letter-spacing: 0.04em;
}
.story-video-wrap iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: none;
}

/* ============================================
   9. かんたん応募3ステップ
   ============================================ */
.section-top-flow {
  background: #fff !important;
  padding: 32px 0 36px;
  border-top: 1px solid #eee;
}
.top-flow-rows {
  display: flex;
  flex-direction: column;
  gap: 0;
  max-width: 500px;
  margin: 0 auto;
}
.flow-row {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid #eee;
}
.flow-row:last-child {
  border-bottom: none;
}
.flow-num {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: none;
  border: 2px solid #ccc;
  color: #999;
  font-size: 13px;
  font-weight: 700;
}
.flow-title {
  font-size: 15px;
  font-weight: 700;
  color: #333;
  margin: 0 0 2px;
  letter-spacing: 0.04em;
}
.flow-desc {
  font-size: 13px;
  color: #777;
  line-height: 1.6;
  margin: 0;
  letter-spacing: 0.03em;
}
.top-flow-cta {
  text-align: center;
  margin-top: 24px;
}
.top-flow-cta .btn-common {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 360px;
  padding: 14px 24px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  border-radius: 4px !important;
  border: none !important;
  height: auto !important;
  line-height: normal !important;
}

/* ============================================
   12. フッター前CTA
   ============================================ */
.section-top-final-cta {
  background: linear-gradient(135deg, var(--color-primary) 0%, #E07520 100%) !important;
  padding: 48px 16px;
  text-align: center;
}
.final-cta-text {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  line-height: 1.7;
  margin: 0 0 24px;
  letter-spacing: 0.06em;
}
.final-cta-btn {
  display: inline-block !important;
  min-width: 280px;
  padding: 16px 36px !important;
  font-size: 16px !important;
  background: #fff !important;
  color: var(--color-primary) !important;
  border: none !important;
  border-radius: 4px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em;
  box-shadow: 0 4px 16px rgba(0,0,0,0.15);
  transition: transform 0.2s, box-shadow 0.2s;
}
.final-cta-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(0,0,0,0.2);
  background: #fff !important;
  color: var(--color-primary-dark) !important;
}
.final-cta-sub {
  font-size: 12px;
  color: rgba(255,255,255,0.85);
  margin-top: 16px;
  letter-spacing: 0.05em;
}

@media print, (min-width: 768px) {
  .section-top-final-cta { padding: 64px 24px; }
  .final-cta-text { font-size: 22px; }
  .final-cta-btn {
    min-width: 340px;
    font-size: 17px !important;
    padding: 18px 48px !important;
  }
}

/* Even lighter backgrounds */
.section-treatment-important .wrapper {
  background-color: var(--color-primary-bg-light) !important;
}
/* ===== Flip Cards ===== */

/* ===== Staggered reveal (TOP: FV + message) ===== */
body.is-top .js-reveal-item {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
body.is-top .js-reveal-item.is-revealed {
  opacity: 1;
  transform: translateY(0);
  will-change: auto;
}
@media (prefers-reduced-motion: reduce) {
  body.is-top .js-reveal-item {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    will-change: auto !important;
  }
}

/* ===== Keyvisual（レガシー・keyvisual--recruit-five 以外）===== */
.section-top-keyvisual:not(.keyvisual--recruit-five) {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
  position: relative !important;
  background: #fff !important;
}
.section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-wrapper {
  padding: 0 !important;
  margin: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  position: relative !important;
  overflow: visible !important;
  background: none !important;
  background-image: none !important;
  pointer-events: auto !important;
  display: block !important;
}
.section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-wrapper::before,
.section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-wrapper::after,
.section-top-keyvisual:not(.keyvisual--recruit-five)::before,
.section-top-keyvisual:not(.keyvisual--recruit-five)::after {
  display: none !important;
}
/* --- Text area (overlay on image) レガシーFVのみ --- */
.section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-text {
  position: absolute !important;
  top: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 2 !important;
  padding: 24px 20px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  order: unset !important;
}
.section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-en {
  font-family: 'Lato', sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  color: rgba(255,255,255,0.85) !important;
  margin: 0 !important;
  letter-spacing: 0.04em !important;
  order: 2 !important;
}
.section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-title {
  position: static !important;
  font-size: clamp(28px, 7vw, 56px) !important;
  font-weight: 700 !important;
  line-height: 1.55 !important;
  color: #fff !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.4) !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  z-index: auto !important;
}
.section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-title .keyvisual-title-line {
  display: block !important;
}
.section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-facility {
  margin: 10px 0 0 !important;
  padding: 0 !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  font-size: clamp(14px, 3.5vw, 18px) !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.04em !important;
  color: rgba(255, 255, 255, 0.88) !important;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.35) !important;
}
/* --- Image area (full width) レガシーFVのみ --- */
.section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-image {
  width: 100% !important;
  height: 42vh !important;
  min-height: 220px !important;
  max-height: 50vh !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  display: block !important;
  position: relative !important;
  line-height: 0 !important;
  border-radius: 12px !important;
  order: unset !important;
  max-width: 100% !important;
}
.section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-image img,
.section-top-keyvisual:not(.keyvisual--recruit-five) .picture-responsive img {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: cover !important;
  object-position: center center !important;
  position: static !important;
  aspect-ratio: unset !important;
}
.section-top-keyvisual:not(.keyvisual--recruit-five) .picture-responsive {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  line-height: 0 !important;
}
/* --- FV 複数枚（Swiper フェード＋Ken Burns）--- */
.section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-image--gallery .keyvisual-swiper {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  position: relative !important;
}
.section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-image--gallery .swiper-wrapper {
  height: 100% !important;
}
.section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-image--gallery .swiper-slide {
  height: 100% !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
.section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-image--gallery .keyvisual-slide-img {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: cover !important;
  object-position: center center !important;
  transform: scale(1);
  transform-origin: center center;
  will-change: transform;
}
.section-top-keyvisual:not(.keyvisual--recruit-five)
  .keyvisual-image--gallery
  .swiper-slide-active
  .keyvisual-slide-img {
  animation: taiyou-kv-kenburns var(--kv-zoom-duration, 5.6s) ease-out forwards;
}
.section-top-keyvisual:not(.keyvisual--recruit-five)
  .keyvisual-image--gallery
  .swiper-slide:not(.swiper-slide-active)
  .keyvisual-slide-img {
  animation: none !important;
  transform: scale(1) !important;
}
@keyframes taiyou-kv-kenburns {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.08);
  }
}
@media (prefers-reduced-motion: reduce) {
  .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-image--gallery .keyvisual-slide-img {
    animation: none !important;
  }
}
/* --- PC layout レガシーFVのみ --- */
@media (min-width: 768px) {
  .section-top-keyvisual:not(.keyvisual--recruit-five) {
    padding: 0 !important;
  }
  /* FVのみやや狭め（本文 .wrapper より細いカラム） */
  .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-wrapper {
    width: 100% !important;
    max-width: 1040px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0.2rem !important;
    padding-right: 0.2rem !important;
    box-sizing: border-box !important;
  }
  .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-text {
    width: auto !important;
    padding: 0 60px 60px !important;
    justify-content: flex-end !important;
    order: unset !important;
  }
  .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-en {
    font-size: 16px !important;
    margin: 0 !important;
  }
  .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-title {
    margin: 0 !important;
    font-size: clamp(40px, 4.8vw, 76px) !important;
    line-height: 1.45 !important;
  }
  .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-image {
    width: 100% !important;
    max-width: 100% !important;
    border-radius: 14px !important;
    order: unset !important;
    overflow: hidden !important;
    height: min(64vh, 840px) !important;
    min-height: 480px !important;
    max-height: none !important;
  }
  .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-image img,
  .section-top-keyvisual:not(.keyvisual--recruit-five) .picture-responsive img {
    height: 100% !important;
    width: 100% !important;
    aspect-ratio: unset !important;
    object-fit: cover !important;
    object-position: center 48% !important;
    min-height: unset !important;
    max-height: unset !important;
    border-radius: 14px !important;
  }
  .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-image--gallery .keyvisual-slide-img {
    object-position: center 48% !important;
    border-radius: 14px !important;
  }
}

@media only screen and (max-width: 767.98px) {
  /* FV画像：画面幅いっぱい（ラッパーの max-width / 横余白を解除） */
  body.is-top .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-wrapper {
    max-width: none !important;
    width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  /* FV画像：縦をやや短く（全幅時は角丸なしで端まで） */
  .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-image {
    height: 34vh !important;
    min-height: 180px !important;
    max-height: 40vh !important;
    border-radius: 0 !important;
  }
  .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-image img,
  .section-top-keyvisual:not(.keyvisual--recruit-five) .picture-responsive img,
  .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-image--gallery .keyvisual-slide-img {
    border-radius: 0 !important;
  }
  .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-text {
    justify-content: center !important;
    padding-top: 170px !important;
  }
  body.is-top .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-text {
    justify-content: flex-end !important;
    align-items: flex-start !important;
    padding: 0 12px 16px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  section.section-top-filter {
    padding: 0 !important;
    margin: 0 !important;
  }
  .section-top-message {
    margin-top: 0 !important;
  }
}

/* #E7EEF6 areas */
.section-job-filter,
.section-faq-tabs,
.news-tabs-wrapper {
  background-color: var(--color-primary-bg-alt) !important;
}

/* Container background */
.container {
  background-color: #fff !important;
  overflow-x: hidden !important;
}

/* 求人一覧：カードが主役なのでページ背景も白に統一（クリーム色の二重感をなくす） */
body.is-job-list {
  background-color: #fff !important;
}
.section-job.is-list {
  background-color: #fff !important;
}

/* ============================================
   Sticky Header (全ページ共通 — 非詳細ページ)
   ============================================ */
body:not(.is-detail) .header {
  position: sticky !important;
  top: 0 !important;
  z-index: 900 !important;
  background: #fff !important;
  box-shadow: 0 1px 6px rgba(0,0,0,0.06);
}
/* 詳細ページ：PCのみ追従（モバイルはタブバーが代替） */
@media print, (min-width: 768px) {
  body.is-detail .header {
    position: sticky !important;
    top: 0 !important;
    z-index: 900 !important;
    background: #fff !important;
    box-shadow: 0 1px 6px rgba(0,0,0,0.06);
  }
}

/* ============================================
   Header
   ============================================ */

.header .btn-search {
  background-color: var(--color-cta) !important;
  border-color: var(--color-cta) !important;
  color: #fff !important;
}

.header .btn-search:hover {
  background-color: var(--color-cta-dark) !important;
  border-color: var(--color-cta-dark) !important;
  color: #fff !important;
}

.header .contact-text,
.header .contact-phone,
.header .contact-info {
  color: var(--color-primary) !important;
}

.header .header-contact .contact-tel {
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

/* ============================================
   Footer
   ============================================ */

.footer {
  background-color: #FAEBD7 !important;
  padding: 0 !important;
  position: relative !important;
}
.footer-top-band {
  height: 1px;
  background: #e5e5e5;
}
.footer .wrapper {
  max-width: 800px !important;
}
.footer-main {
  display: flex;
  gap: 60px;
  padding: 48px 0 40px;
  align-items: flex-start;
}
.footer-brand {
  flex-shrink: 0;
  min-width: 200px;
}
.footer .footer-logo {
  display: inline-block;
  margin-bottom: 12px;
}
.footer .footer-logo img {
  height: 48px !important;
  width: auto !important;
  filter: none !important;
}
.footer-tagline {
  font-size: 13px;
  color: #888;
  letter-spacing: 0.04em;
  margin: 0 0 20px;
  line-height: 1.6;
}
.footer-contact-box {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 10px;
  padding: 14px 18px;
  text-align: center;
}
.footer-contact-label {
  font-size: 11px;
  color: #999;
  letter-spacing: 0.05em;
  margin: 0 0 4px;
}
.footer-phone {
  display: block;
  font-size: 22px;
  font-weight: 700;
  color: var(--color-primary) !important;
  letter-spacing: 0.04em;
  line-height: 1.3;
  font-family: 'Lato', sans-serif;
}
.footer-contact-hours {
  font-size: 11px;
  color: #aaa;
  margin: 4px 0 0;
}
.footer-line-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  padding: 10px 24px;
  background: #06C755;
  color: #fff !important;
  font-size: 14px;
  font-weight: 600;
  border-radius: 8px;
  text-decoration: none !important;
  letter-spacing: 0.03em;
  transition: opacity 0.2s;
}
.footer-line-btn:hover {
  opacity: 0.85;
}
.footer-line-btn svg {
  flex-shrink: 0;
}
.footer-nav {
  display: flex;
  gap: 48px;
  flex: 1;
  padding-top: 4px;
}
.footer-nav-col {
  min-width: 0;
}
.footer-nav-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.footer-nav-title {
  font-size: 13px;
  font-weight: 700;
  color: #333;
  margin: 0 0 12px;
  letter-spacing: 0.04em;
  position: relative;
  padding-bottom: 8px;
}
.footer-nav-title::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 20px;
  height: 2px;
  background: var(--color-primary);
  border-radius: 1px;
}
.footer-nav-col li {
  margin-bottom: 8px;
}
.footer-nav-col a {
  font-size: 13px;
  color: #666 !important;
  letter-spacing: 0.03em;
  transition: color 0.2s;
  text-decoration: none;
}
.footer-nav-col a:hover {
  color: var(--color-primary) !important;
}
.footer-external {
  display: flex;
  gap: 12px;
  justify-content: center;
  padding: 0 16px 32px;
  flex-wrap: wrap;
}
.footer-ext-link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  border: 1px solid #ddd;
  border-radius: 8px;
  background: #fff;
  text-decoration: none !important;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.footer-ext-link::after {
  content: '';
  display: inline-block;
  width: 12px;
  height: 12px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23999'%3E%3Cpath d='M14 1H9v1.5h3.44L6.22 8.72l1.06 1.06L13.5 3.56V7H15V2a1 1 0 0 0-1-1zM13 14H3V4h5V2.5H3A1.5 1.5 0 0 0 1.5 4v10A1.5 1.5 0 0 0 3 15.5h10a1.5 1.5 0 0 0 1.5-1.5V9H13z'/%3E%3C/svg%3E") center/contain no-repeat;
  flex-shrink: 0;
  margin-left: 4px;
}
.footer-ext-link:hover {
  border-color: var(--color-primary);
  box-shadow: 0 2px 8px rgba(242,139,48,0.12);
}
.footer-ext-link:hover::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23F28B30'%3E%3Cpath d='M14 1H9v1.5h3.44L6.22 8.72l1.06 1.06L13.5 3.56V7H15V2a1 1 0 0 0-1-1zM13 14H3V4h5V2.5H3A1.5 1.5 0 0 0 1.5 4v10A1.5 1.5 0 0 0 3 15.5h10a1.5 1.5 0 0 0 1.5-1.5V9H13z'/%3E%3C/svg%3E");
}
.footer-ext-label {
  font-size: 10px;
  color: #999;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.footer-ext-name {
  font-size: 13px;
  font-weight: 600;
  color: #333 !important;
  letter-spacing: 0.03em;
  white-space: nowrap;
}
.footer-bottom {
  border-top: 1px solid #e8e2dc;
  padding: 16px 0;
  text-align: center;
}
.footer .footer-copyright {
  display: block !important;
  text-align: center !important;
  color: #bbb !important;
  font-size: 11px !important;
  margin: 0 !important;
  letter-spacing: 0.04em;
}

@media (max-width: 767px) {
  .footer-main {
    flex-direction: column;
    gap: 32px;
    padding: 32px 0 28px;
  }
  .footer-brand {
    text-align: center;
    min-width: 0;
    width: 100%;
  }
  .footer-tagline {
    text-align: center;
  }
  .footer-contact-box {
    max-width: 260px;
    margin: 0 auto;
  }
  .footer-nav {
    flex-wrap: wrap;
    gap: 28px 32px;
    justify-content: center;
  }
  .footer-nav-col {
    min-width: 120px;
  }
  .footer-nav-title::after {
    left: 50%;
    transform: translateX(-50%);
  }
  .footer-nav-col {
    text-align: center;
  }
}

/* ============================================
   Buttons
   ============================================ */

.btn-common {
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

.btn-common:hover,
.btn-common.is-primary {
  background-color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  color: #fff !important;
}

.btn-common.is-primary:hover {
  background-color: #fff !important;
  color: var(--color-primary) !important;
}

.btn-common.is-arrow {
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
  background-image: none !important;
  position: relative;
}
.btn-common.is-arrow::after {
  content: '→';
  position: absolute;
  right: 0.3rem;
  color: var(--color-primary);
}
.btn-common.is-arrow:hover {
  background-color: var(--color-primary) !important;
  background-image: none !important;
  color: #fff !important;
}
.btn-common.is-arrow:hover::after {
  color: #fff;
}

.btn-common.is-orange {
  border-color: var(--color-cta) !important;
  background-color: var(--color-cta) !important;
  color: #fff !important;
}
.btn-common.is-orange:hover {
  background-color: var(--color-cta-dark) !important;
  border-color: var(--color-cta-dark) !important;
  color: #fff !important;
}

/* ============================================
   Form / Search elements
   ============================================ */

/* Form elements - keep original teal colors */

.section-top-filter {
  padding: 0 !important;
  margin: 0 !important;
}
.section-top-filter {
  padding: 0 !important;
  margin: 0 !important;
  height: auto !important;
  min-height: 0 !important;
}
.section-top-filter .wrapper,
.section-top-filter > .wrapper,
.section-top-filter > div,
.section-top-filter > div.wrapper {
  padding: 10px 16px !important;
  margin: 0 auto !important;
  min-height: 0 !important;
  height: auto !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
}
.section-top-filter {
  display: flex !important;
  justify-content: center !important;
  background: #fff !important;
  position: relative !important;
  z-index: 1 !important;
}
.section-top-filter .btn-search-popup {
  margin: 0 auto !important;
}
.section-top-filter .filter-count {
  background-color: var(--color-primary) !important;
}

.section-top-filter .btn-search {
  background-color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}

.section-top-filter .btn-search:hover {
  background-color: #fff !important;
  color: var(--color-primary) !important;
}

/* ============================================
   Section headings
   ============================================ */

.heading-section .heading-en {
  color: var(--color-primary) !important;
}

/* ============================================
   Top page specific
   ============================================ */


/* Filter area */
.section-top-filter .filter-result {
  color: var(--color-primary) !important;
}

.section-top-filter .item-content:hover {
  color: var(--color-primary) !important;
}

/* About / Work style */
.section-top-about .block-card .card-heading {
  color: var(--color-primary) !important;
}

/* ============================================
   Job pages
   ============================================ */

.job-card .card-button {
  background-color: var(--color-cta) !important;
  color: #fff !important;
}
.job-card .card-tag {
  background-color: var(--color-primary) !important;
  color: #fff !important;
}

.job-card .card-link:hover .card-title {
  color: var(--color-primary) !important;
}

.job-note {
  position: fixed !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 800 !important;
  transition: transform 0.3s ease, opacity 0.3s ease !important;
  background-color: rgba(51, 51, 51, 0.8) !important;
}
.job-note.hidden {
  transform: translateY(100%) !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.job-note .job-note-bar {
  display: flex !important;
  flex-direction: row !important;
  align-items: stretch !important;
  gap: 10px !important;
  width: 100% !important;
  max-width: 520px !important;
  margin: 0 auto !important;
  padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px)) !important;
  box-sizing: border-box !important;
}
.job-note .job-note-share {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  display: inline-flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 2px !important;
  margin: 0 !important;
  padding: 10px 8px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  color: #555 !important;
  background: #fff !important;
  border: 1.5px solid #d8d8d8 !important;
  border-radius: 10px !important;
  cursor: pointer !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06) !important;
  transition: background 0.2s, border-color 0.2s !important;
  -webkit-tap-highlight-color: transparent;
}
.job-note .job-note-share:active {
  background: #f3f3f3 !important;
  border-color: #bbb !important;
}
.job-note .job-note-share-svg {
  flex-shrink: 0;
  color: #777 !important;
}
.job-note .job-note-share-label {
  line-height: 1.2;
  color: #555 !important;
}
.job-note .job-note-cv {
  flex: 3 1 0 !important;
  min-width: 0 !important;
  width: auto !important;
  max-width: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  margin: 0 !important;
  height: auto !important;
  min-height: 48px !important;
  padding: 12px 10px !important;
  box-sizing: border-box !important;
  border-radius: 10px !important;
}

.job-share-toast {
  position: fixed;
  left: 50%;
  bottom: calc(76px + env(safe-area-inset-bottom, 0px));
  z-index: 850;
  max-width: calc(100vw - 32px);
  padding: 12px 22px;
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  text-align: center;
  background: rgba(40, 40, 40, 0.94);
  border-radius: 10px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
  pointer-events: none;
  opacity: 0;
  transform: translate3d(-50%, 8px, 0);
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.job-share-toast.is-visible {
  opacity: 1;
  transform: translate3d(-50%, 0, 0);
}

/* 共有フォールバック（Web Share 非対応・エラー時） */
.job-share-sheet {
  position: fixed;
  inset: 0;
  z-index: 900;
}
.job-share-sheet[hidden] {
  display: none !important;
}
.job-share-sheet-backdrop {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgba(0, 0, 0, 0.45);
  cursor: pointer;
}
.job-share-sheet-panel {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  max-height: min(85vh, 520px);
  overflow-y: auto;
  background: #fff;
  border-radius: 16px 16px 0 0;
  padding: 18px 16px calc(16px + env(safe-area-inset-bottom, 0px));
  box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.12);
  box-sizing: border-box;
}
.job-share-sheet-title {
  margin: 0 0 8px;
  font-size: 17px;
  font-weight: 800;
  color: #222;
  text-align: center;
}
.job-share-sheet-lead {
  margin: 0 0 14px;
  font-size: 12px;
  color: #888;
  line-height: 1.5;
  text-align: center;
}
.job-share-sheet-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.job-share-sheet-item {
  display: flex;
  align-items: center;
  width: 100%;
  margin: 0 0 8px;
  padding: 14px 16px;
  font-size: 15px;
  font-weight: 600;
  color: #333 !important;
  text-align: center;
  text-decoration: none !important;
  background: #f7f7f7;
  border: 1px solid #e8e8e8;
  border-radius: 10px;
  box-sizing: border-box;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
  -webkit-tap-highlight-color: transparent;
}
.job-share-sheet-item:hover {
  background: #efefef;
  border-color: #ddd;
}
.job-share-sheet-item:active {
  background: #e8e8e8;
}
.job-share-sheet-close {
  display: block;
  width: 100%;
  margin-top: 8px;
  padding: 12px;
  font-size: 14px;
  font-weight: 700;
  color: #666 !important;
  background: transparent !important;
  border: none;
  cursor: pointer;
}

.block-sidebar .sidebar-heading {
  color: var(--color-primary) !important;
}

.block-sidebar .sidebar-button {
  background-color: var(--color-cta) !important;
  border-color: var(--color-cta) !important;
}

.block-sidebar .sidebar-link:hover {
  color: var(--color-primary) !important;
}

/* ============================================
   Detail page
   ============================================ */

.section-detail-info .info-heading {
  color: var(--color-primary) !important;
}

.section-detail-info .info-label {
  color: var(--color-primary) !important;
}

.section-detail-entry .btn-entry {
  background-color: var(--color-cta) !important;
  border-color: var(--color-cta) !important;
}

.section-detail-entry .btn-entry:hover {
  background-color: var(--color-cta-dark) !important;
  border-color: var(--color-cta-dark) !important;
  color: #fff !important;
}

.section-detail-gallery .swiper-pagination-bullet-active {
  background-color: var(--color-primary) !important;
}

.section-detail-info .info-tag {
  background-color: var(--color-primary) !important;
  color: #fff !important;
}

.info-emp-tag {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  color: var(--color-primary) !important;
  border: 1.5px solid var(--color-primary);
  border-radius: 4px;
  padding: 3px 10px;
  letter-spacing: 0.06em;
  margin-bottom: 8px;
}

.section-detail-info .info-block .block-heading {
  border-color: var(--color-primary) !important;
}

.section-detail-flow .flow-step .step-number {
  background-color: var(--color-primary) !important;
}

/* ============================================
   FAQ page
   ============================================ */

.list-qa .qa-label.is-q {
  color: var(--color-primary) !important;
}

.list-qa .qa-label.is-a {
  background-color: var(--color-primary) !important;
}

.faq-tabs a.is-active {
  background-color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}

.faq-tabs a:hover {
  color: var(--color-primary) !important;
}

.section-faq-search .btn-search {
  background-color: var(--color-primary) !important;
}

.section-faq-list .faq-category {
  color: var(--color-primary) !important;
}

.section-faq-list .faq-link:hover {
  color: var(--color-primary) !important;
}

/* ============================================
   News / Topics
   ============================================ */

.news-tabs a.is-active {
  background-color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}

.news-tabs a:hover {
  color: var(--color-primary) !important;
}

.section-news-list .news-category {
  background-color: var(--color-primary) !important;
}

.section-news-detail .detail-category {
  background-color: var(--color-primary) !important;
}

/* ============================================
   Treatment page
   ============================================ */

.section-treatment-important {
  background: linear-gradient(to left, var(--color-gradient-end) 0%, var(--color-gradient-start) 100%) !important;
}

.section-treatment-content .content-heading {
  color: var(--color-primary) !important;
}

.section-treatment-content .content-number {
  color: var(--color-primary) !important;
}

/* ============================================
   Pagination
   ============================================ */

.common-pagination .number:hover,
.common-pagination .number.is-current {
  background-color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  color: #fff !important;
}

.common-pagination .number {
  color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}

/* WordPress default pagination */
.navigation.pagination {
  margin: 32px 0 0;
}
.navigation.pagination .nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.navigation.pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 10px;
  border: 1.5px solid #ddd;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  font-family: 'Lato', sans-serif;
  color: #555;
  text-decoration: none;
  background: #fff;
  transition: all 0.2s ease;
  line-height: 1;
}
.navigation.pagination .page-numbers:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
  background: #fff;
}
.navigation.pagination .page-numbers.current {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}
.navigation.pagination .page-numbers.dots {
  border: none;
  background: none;
  min-width: 24px;
  padding: 0;
  color: #aaa;
  pointer-events: none;
}
.navigation.pagination .page-numbers.prev,
.navigation.pagination .page-numbers.next {
  font-size: 18px;
  color: var(--color-primary);
  border-color: var(--color-primary);
}
.navigation.pagination .page-numbers.prev:hover,
.navigation.pagination .page-numbers.next:hover {
  background: var(--color-primary);
  color: #fff;
}
@media only screen and (max-width: 767.98px) {
  .navigation.pagination .page-numbers {
    min-width: 36px;
    height: 36px;
    font-size: 13px;
  }
}

/* ============================================
   Breadcrumb
   ============================================ */

.breadcrumb a:hover {
  color: var(--color-primary) !important;
}

/* ============================================
   Scroll to top
   ============================================ */

.btn-scroll-top {
  background-color: var(--color-primary) !important;
}

/* ============================================
   Swiper
   ============================================ */

.swiper-pagination-bullet-active {
  background-color: var(--color-primary) !important;
}

/* ============================================
   Links
   ============================================ */

a.is-link,
.content-body a,
.section-news-detail .detail-body a,
.section-policy-content a {
  color: var(--color-primary) !important;
}

a.is-link:hover,
.content-body a:hover,
.section-news-detail .detail-body a:hover,
.section-policy-content a:hover {
  color: var(--color-primary-dark) !important;
}

/* ============================================
   Mobile menu
   ============================================ */

.header-navbar .navbar-block .block-title {
  background-color: var(--color-primary) !important;
}
.header-navbar .navbar-block .block-link {
  color: #333 !important;
}

/* ============================================
   SP Menu — Full Redesign (right-slide, thumb-friendly)
   ============================================ */
@media only screen and (max-width: 767.98px) {
  /* Right-slide panel */
  .header .header-navbar {
    display: block !important;
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    left: auto !important;
    width: 82vw !important;
    max-width: 320px !important;
    height: 100vh !important;
    height: 100dvh !important;
    background: #fff !important;
    z-index: 200 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    padding: 0 !important;
    box-shadow: -4px 0 24px rgba(0,0,0,0.12);
    transform: translateX(100%);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    visibility: hidden;
  }
  .header .header-navbar.is-active {
    transform: translateX(0) !important;
    visibility: visible !important;
  }

  /* Overlay behind menu */
  .header .header-navbar::before {
    content: '' !important;
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    left: auto !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    background: rgba(0,0,0,0.4) !important;
    z-index: -1 !important;
    opacity: 0;
    transition: opacity 0.3s;
    pointer-events: none !important;
  }
  .header .header-navbar.is-active::before {
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  /* Header bar inside menu panel */
  .header .header-close {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    padding: 0 6px !important;
    height: 54px !important;
    border-bottom: 1px solid #f0eeeb !important;
    background: #fff !important;
    box-sizing: border-box !important;
  }
  .header .header-close::before {
    content: none !important;
  }
  .header .header-close span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    cursor: pointer !important;
  }
  .header .header-close img {
    width: 20px !important;
    height: 20px !important;
    opacity: 0.5;
  }

  /* Reset list-navbar for mobile */
  .header .list-navbar.sm {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    min-height: calc(100vh - 54px) !important;
    min-height: calc(100dvh - 54px) !important;
    width: 100% !important;
    box-sizing: border-box !important;
    background: #fff !important;
  }
}

/* SP Menu — CTA (top of menu) */
.sp-menu-cta {
  padding: 16px 20px !important;
}
.sp-menu-cta-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  width: 100% !important;
  padding: 14px 0 !important;
  background: var(--color-primary) !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  border-radius: 10px !important;
  text-decoration: none !important;
  letter-spacing: 0.04em !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1) !important;
  transition: opacity 0.2s;
  box-sizing: border-box !important;
}
.sp-menu-cta-btn:active { opacity: 0.85; }
.sp-menu-cta-btn svg { stroke: #fff !important; }

/* SP Menu — Nav Links */
.sp-menu-nav {
  display: flex !important;
  flex-direction: column !important;
  padding: 0 !important;
}
.sp-menu-link {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  padding: 15px 20px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #333 !important;
  text-decoration: none !important;
  border-bottom: 1px solid #f2f2f2 !important;
  transition: background 0.15s;
  position: relative !important;
  line-height: 1.4 !important;
}
.sp-menu-link:first-child {
  border-top: 1px solid #f2f2f2 !important;
}
.sp-menu-link svg {
  color: var(--color-primary) !important;
  flex-shrink: 0 !important;
  width: 18px !important;
  height: 18px !important;
}
.sp-menu-link::after {
  content: '' !important;
  position: absolute !important;
  right: 18px !important;
  top: 50% !important;
  width: 6px !important;
  height: 6px !important;
  border-right: 2px solid #ccc !important;
  border-bottom: 2px solid #ccc !important;
  transform: translateY(-50%) rotate(-45deg) !important;
}
.sp-menu-link:active {
  background: #f7f7f7 !important;
}

/* SP Menu — Bottom Actions (thumb zone) */
.sp-menu-bottom {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  padding: 24px 20px !important;
  margin-top: auto !important;
}
.sp-menu-line,
.sp-menu-tel {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 13px 0 !important;
  border-radius: 10px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  transition: opacity 0.2s;
  box-sizing: border-box !important;
}
.sp-menu-line {
  background: #06C755 !important;
  color: #fff !important;
  box-shadow: 0 2px 6px rgba(6,199,85,0.25) !important;
  border: none !important;
}
.sp-menu-line svg {
  flex-shrink: 0 !important;
}
.sp-menu-tel {
  background: #fff !important;
  color: var(--color-primary) !important;
  border: 2px solid var(--color-primary) !important;
}
.sp-menu-tel svg {
  stroke: var(--color-primary) !important;
  flex-shrink: 0 !important;
}
.sp-menu-line:active,
.sp-menu-tel:active { opacity: 0.8; }

.header-navbar .navbar-footer .footer-contact {
  background-color: var(--color-primary) !important;
}
.header-navbar .navbar-footer .contact-text {
  color: #fff !important;
}
.header-navbar .navbar-footer .contact-label {
  color: #333 !important;
  border-color: #333 !important;
}
.header-navbar .navbar-footer .contact-time {
  color: #333 !important;
}

/* ============================================
   Modal
   ============================================ */

.modal .result-button {
  background-color: var(--color-cta) !important;
  border-color: var(--color-cta) !important;
}

.modal .result-button:hover {
  background-color: var(--color-cta-dark) !important;
  border-color: var(--color-cta-dark) !important;
  color: #fff !important;
}

/* ============================================
   Misc overrides for secondary blues
   ============================================ */

/* #1B84CE → dark orange */
.section-top-filter .filter-item .item-number {
  color: var(--color-secondary) !important;
}

/* ============================================
   SVG icon color overrides via CSS filter
   Green/teal SVGs → Orange hue
   hue-rotate: teal(~170deg) to orange(~30deg) = -140deg
   ============================================ */

.btn-common.is-arrow img,
.btn-common.is-arrow svg,
img[src*="icon-arrow-link-green"],
img[src*="icon-arrow-right-green"],
img[src*="icon-arrow-prev-green"],
img[src*="icon-check-green"] {
  filter: hue-rotate(-140deg) saturate(1.5) !important;
}

/* ============================================
   Detail page - custom sections
   ============================================ */

/* セクション間の余白 */
.section-job-detail.detail-custom-section {
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}
.section-job-detail.detail-custom-section .job-body {
  padding-bottom: 0 !important;
  gap: 0 !important;
}
@media (min-width: 768px) {
  .section-job-detail.detail-custom-section {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }
}

.detail-cta-bar {
  padding-top: 0.16rem;
  padding-bottom: 0.16rem;
}
@media only screen and (max-width: 767.98px) {
  .detail-cta-bar {
    padding-top: 0.12rem;
    padding-bottom: 0.12rem;
  }
}
/* 応募フォームブロック：ベースのグレー背景を有効化 */
.section-job-detail.detail-custom-section.section-job-flow {
  padding-top: 0.32rem;
  padding-bottom: 0.32rem;
}

.section-job-detail--hero {
  padding-top: 0.77rem;
}
.section-job-detail--hero .job-body {
  padding-bottom: 0 !important;
}
@media only screen and (max-width: 767.98px) {
  .section-job-detail--hero {
    padding-top: 0.11rem;
  }
}

/* PC: 本文カラム幅 */
@media print, (min-width: 768px) {
  .single-job .section-job-detail .wrapper {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* ヒーロー求人タイトル */
.section-job-detail .detail-title {
  color: #333 !important;
  font-size: 20px !important;
  line-height: 1.5 !important;
  letter-spacing: 0.02em !important;
}
@media (min-width: 768px) {
  .section-job-detail .detail-title {
    font-size: 24px !important;
  }
}

/* ヒーロー雇用形態タグ */
.hero-emp-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 0 0 0.12rem 0;
}
.hero-emp-tags li {
  display: inline-block;
  padding: 3px 12px;
  border: 1.5px solid var(--color-primary);
  border-radius: 4px;
  color: var(--color-primary);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.6;
  background: #fff;
}

/* ヒーローCTAボタン */
.hero-cta {
  margin-top: 0.2rem;
}
.section-job-detail .hero-cta .btn-common.is-primary,
.section-job-detail--hero .hero-cta .btn-common.is-primary,
.hero-cta .btn-common.is-primary {
  display: block;
  width: 100%;
  text-align: center;
  background-color: var(--color-cta) !important;
  border-color: var(--color-cta) !important;
  color: #fff !important;
  font-size: 0.15rem;
  font-weight: 700;
  padding: 0.14rem 0.2rem;
  border-radius: 0.04rem;
  letter-spacing: 0.06em;
  transition: background-color 0.2s ease;
}
.section-job-detail .hero-cta .btn-common.is-primary:hover,
.section-job-detail--hero .hero-cta .btn-common.is-primary:hover,
.hero-cta .btn-common.is-primary:hover {
  background-color: var(--color-cta-dark) !important;
  border-color: var(--color-cta-dark) !important;
  color: #fff !important;
}

/* ヒーロー施設名（職種名の下） */
.section-job-detail--hero .job-hero-facility {
  margin: 8px 0 0;
  padding: 0;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.03em;
  line-height: 1.5;
  color: #555;
}

/* ヒーロー画像 */
.section-job-detail .heading-slider {
  border-radius: 0.08rem;
  overflow: hidden;
}
.section-job-detail .heading-slider img,
.section-job-detail .heading-slider .heading-slider-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 0.08rem;
  vertical-align: middle;
}

/* PC：FVは横長（画像列を広め）、右カラムは職種名＋施設名＋CTAを同じ高さに収める */
@media print, (min-width: 768px) {
  .section-job-detail--hero .job-heading:not(.job-heading--no-thumb) {
    display: grid !important;
    grid-template-columns: minmax(280px, 1.22fr) minmax(0, 1fr);
    grid-template-rows: auto;
    gap: 0 28px;
    align-items: stretch;
    margin-bottom: 0.3rem;
    /* 横長バランス（幅に対してやや低めの高さ）＋施設名1行分 */
    --job-hero-fv-h: clamp(186px, 21vw, 248px);
  }
  .section-job-detail--hero .job-heading:not(.job-heading--no-thumb) .heading-slider {
    grid-column: 1;
    grid-row: 1;
    width: 100% !important;
    max-width: 100%;
    align-self: stretch;
    height: var(--job-hero-fv-h);
    max-height: var(--job-hero-fv-h);
    margin: 0 !important;
    box-sizing: border-box;
  }
  .section-job-detail--hero .job-heading:not(.job-heading--no-thumb) .heading-slider img,
  .section-job-detail--hero .job-heading:not(.job-heading--no-thumb) .heading-slider .heading-slider-img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    object-position: center;
  }
  .section-job-detail--hero .job-heading:not(.job-heading--no-thumb) .job-hero-aside {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 6px;
    min-width: 0;
    min-height: 0;
    height: var(--job-hero-fv-h);
    max-height: var(--job-hero-fv-h);
    box-sizing: border-box;
  }
  .section-job-detail--hero .job-hero-aside .job-detail.is-table {
    flex: 0 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 0 !important;
    background: none !important;
    box-sizing: border-box;
  }
  .section-job-detail--hero .job-hero-aside .hero-emp-tags {
    flex-shrink: 0;
    margin-bottom: 4px !important;
  }
  .section-job-detail--hero .job-hero-aside .detail-title {
    flex: 0 1 auto;
    min-height: 0;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    overflow: hidden;
    font-size: 0.22rem;
    line-height: 1.45;
    margin-bottom: 0 !important;
  }
  .section-job-detail--hero .job-hero-aside .job-hero-facility {
    flex-shrink: 0;
    margin: 8px 0 0 !important;
    font-size: 19px !important;
    font-weight: 600 !important;
    letter-spacing: 0.03em !important;
    line-height: 1.4 !important;
    color: #5a5a5a !important;
  }
  .section-job-detail--hero .job-hero-aside .hero-cta {
    flex-shrink: 0;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  /* FV画像なし: Grid解除 → 左揃えブロック */
  .section-job-detail--hero .job-heading.job-heading--no-thumb {
    display: block !important;
  }
  .section-job-detail--hero .job-heading.job-heading--no-thumb .job-detail.is-table {
    max-width: 600px;
    padding-bottom: 0 !important;
  }
  .section-job-detail--hero .job-heading.job-heading--no-thumb .hero-cta {
    margin-top: 0.2rem !important;
  }
}

/* モバイル：ヒーロー縦並び（FVありは display:contents で タイトル→画像→CTA） */
@media only screen and (max-width: 767.98px) {
  .section-job-detail .job-heading {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.14rem;
  }
  .section-job-detail--hero .job-heading:not(.job-heading--no-thumb) {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.14rem;
  }
  .section-job-detail--hero .job-heading:not(.job-heading--no-thumb) .job-hero-aside {
    display: contents;
  }
  .section-job-detail--hero .job-heading:not(.job-heading--no-thumb) .job-detail.is-table {
    grid-row: 1;
  }
  .section-job-detail--hero .job-heading:not(.job-heading--no-thumb) .heading-slider {
    grid-row: 2;
    width: 100% !important;
    max-width: 100%;
    height: auto !important;
    max-height: none !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  .section-job-detail--hero .job-heading:not(.job-heading--no-thumb) .heading-slider img,
  .section-job-detail--hero .job-heading:not(.job-heading--no-thumb) .heading-slider .heading-slider-img {
    height: auto;
    object-fit: initial;
  }
  .section-job-detail--hero .job-heading:not(.job-heading--no-thumb) .hero-cta {
    grid-row: 3;
    margin-top: 0 !important;
  }
  .section-job-detail--hero .job-hero-aside .detail-title {
    display: block !important;
    -webkit-line-clamp: unset !important;
    line-clamp: unset !important;
    overflow: visible !important;
  }
  .section-job-detail .job-heading .heading-slider {
    width: 100% !important;
    max-width: 100%;
  }
}

/* 募集要項：base-detail の .job-table と同じ罫線・字組 */
.section-job-detail .requirements-table {
  width: 100%;
  border-top: 1px solid #e8e4df;
  font-size: 15px;
  letter-spacing: 0.02em;
  line-height: 1.85;
}
.section-job-detail .requirements-table tr:last-child th,
.section-job-detail .requirements-table tr:last-child td {
  border-bottom: none;
}
.section-job-detail .requirements-table th,
.section-job-detail .requirements-table td {
  border-bottom: 1px solid #e8e4df;
  font-size: 15px;
  letter-spacing: 0.02em;
  line-height: 1.85;
  padding: 14px 0;
  vertical-align: text-top;
}
.section-job-detail .requirements-table th {
  width: 2.5rem;
  padding-right: 0.2rem;
  font-weight: 700;
  color: #333;
}
.section-job-detail .requirements-table td {
  color: var(--color-text-sub);
}
.section-job-detail .requirements-table td > p {
  margin: 0 0 0.5em;
}
.section-job-detail .requirements-table td > p:last-child {
  margin-bottom: 0;
}
.section-job-detail .requirements-table .list-category {
  margin: 0;
}
.section-job-detail .list-category li {
  height: auto;
  min-height: 0.24rem;
  padding: 0.03rem 0.12rem;
  white-space: normal;
  word-break: break-all;
}
@media only screen and (max-width: 767.98px) {
  .section-job-detail .requirements-table th,
  .section-job-detail .requirements-table td {
    font-size: 0.14rem;
  }
  .section-job-detail .requirements-table th {
    width: 1.15rem;
  }
  .req-clamp-wrap {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .req-clamp-wrap.is-expanded {
    display: block;
    -webkit-line-clamp: unset;
    overflow: visible;
  }
  .req-read-more {
    display: inline-block;
    font-size: 0.12rem;
    color: var(--color-primary);
    margin-top: 4px;
    cursor: pointer;
    font-weight: 600;
    letter-spacing: 0.03em;
  }
}

/* 仕事内容・研修：募集要項と同じ表線 */
.section-job-detail .job-detail .taiyou-jt-desc-table {
  margin-top: 0;
  width: 100%;
  border-top: 0.01rem solid #f1f1f1;
  font-size: 0.15rem;
  letter-spacing: 0.05em;
  line-height: 1.8666666667;
}
.section-job-detail .taiyou-jt-desc-table tr:last-child th,
.section-job-detail .taiyou-jt-desc-table tr:last-child td {
  border-bottom: none;
}
.section-job-detail .taiyou-jt-desc-table th,
.section-job-detail .taiyou-jt-desc-table td {
  border-bottom: 0.01rem solid #f1f1f1;
  padding: 0.18rem 0;
  vertical-align: text-top;
}
.section-job-detail .taiyou-jt-desc-table th {
  width: 2.2rem;
  padding-right: 0.2rem;
  font-weight: 700;
  color: #333;
}
.section-job-detail .taiyou-jt-desc-table td {
  color: var(--color-text-sub);
}
.section-job-detail .taiyou-jt-desc-table td > p {
  margin: 0 0 0.5em;
}
.section-job-detail .taiyou-jt-desc-table td > p:last-child {
  margin-bottom: 0;
}
@media only screen and (max-width: 767.98px) {
  .section-job-detail .taiyou-jt-desc-table th,
  .section-job-detail .taiyou-jt-desc-table td {
    font-size: 0.14rem;
  }
  .section-job-detail .taiyou-jt-desc-table th {
    width: 1.1rem;
  }
}

/* 1日の流れ：時刻→ドット→本文 */
.section-job-detail .tl-list.tl-list--job-schedule {
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  position: relative;
}
.section-job-detail .tl-list.tl-list--job-schedule::before {
  display: none !important;
}
.section-job-detail .tl-list.tl-list--job-schedule .tl-row {
  display: flex;
  align-items: flex-start;
  gap: 0.1rem;
  padding: 0.08rem 0;
  position: relative;
}
.section-job-detail .tl-list.tl-list--job-schedule .tl-time {
  min-width: 0.48rem;
  width: 0.48rem;
  text-align: right;
  font-size: 0.14rem;
  font-weight: 700;
  color: #444;
  line-height: 1.4;
  flex-shrink: 0;
  padding-top: 0.01rem;
}
.section-job-detail .tl-list.tl-list--job-schedule .tl-dot {
  display: none !important;
}
.section-job-detail .tl-list.tl-list--job-schedule .tl-text {
  flex: 1;
  min-width: 0;
  font-size: 14px;
  line-height: 1.75;
  letter-spacing: 0.02em;
  color: #555;
}

/* 仕事内容・研修：左アイコン列 */
.section-job-detail .taiyou-jt-desc-table--icons .jt-desc-icon-cell {
  width: 0.56rem;
  padding: 0.16rem 0.14rem 0.16rem 0;
  vertical-align: middle;
  border-bottom: 0.01rem solid #f1f1f1;
}
.section-job-detail .taiyou-jt-desc-table--icons tr:last-child .jt-desc-icon-cell {
  border-bottom: none;
}
.section-job-detail .taiyou-jt-desc-table--icons .jt-desc-icon-cell img {
  display: block;
  width: 0.42rem;
  height: 0.42rem;
  object-fit: contain;
}
.section-job-detail .taiyou-jt-desc-table--icons .jt-desc-icon-cell svg {
  display: block;
  width: 0.36rem;
  height: 0.36rem;
}
.section-job-detail .taiyou-jt-desc-table--icons th {
  width: auto;
  white-space: nowrap;
  vertical-align: middle;
  padding: 0.16rem 0.14rem 0.16rem 0;
}
.section-job-detail .taiyou-jt-desc-table--icons td {
  vertical-align: middle;
  padding: 0.16rem 0;
}
@media only screen and (max-width: 767.98px) {
  .section-job-detail .taiyou-jt-desc-table--icons .jt-desc-icon-cell {
    width: 0.44rem;
    padding: 0.12rem 0.08rem 0.12rem 0;
  }
  .section-job-detail .taiyou-jt-desc-table--icons .jt-desc-icon-cell img {
    width: 0.34rem;
    height: 0.34rem;
  }
  .section-job-detail .taiyou-jt-desc-table--icons th {
    width: auto;
    white-space: nowrap;
  }
}

/* 本文のみの仕事内容／研修 */
.section-job-detail .job-detail .entry-content {
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: 0.03em;
  color: #555;
}
.section-job-detail .job-detail .entry-content p {
  margin: 0 0 1em;
}
.section-job-detail .job-detail .entry-content p:last-child {
  margin-bottom: 0;
}

/* 施設写真グリッド（テンプレ名に合わせて追加） */
.facility-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.08rem;
  width: 100%;
}
.facility-gallery-grid .gallery-item {
  cursor: pointer;
  overflow: hidden;
  border-radius: 0.06rem;
  line-height: 0;
}
.facility-gallery-grid .gallery-item img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  display: block;
  transition: opacity 0.15s;
}
@media (hover: hover) and (pointer: fine) {
  .facility-gallery-grid .gallery-item:hover img {
    opacity: 0.88;
  }
}
/* Gallery Preview (single image + button) */
.gallery-preview {
  border-radius: 10px;
  overflow: hidden;
  line-height: 0;
}
.gallery-preview-img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
}

/* PC gallery grid: 3 cols x 2 rows */
.gallery-pc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.gallery-pc-item {
  border-radius: 8px;
  overflow: hidden;
  line-height: 0;
}
.gallery-pc-item img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

/* SP/PC visibility */
.gallery-pc-only { display: none; }
.gallery-sp-only { display: block; }
@media print, (min-width: 768px) {
  .gallery-pc-only { display: grid; }
  .gallery-sp-only { display: none; }
  .gallery-sp-only-btn { display: none !important; }
}
.gallery-more-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  margin-top: 12px;
  padding: 12px 0;
  background: #fff;
  color: #555;
  font-size: 13px;
  font-weight: 700;
  border: 2px solid #ddd;
  border-radius: 10px;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
  letter-spacing: 0.02em;
}
.gallery-more-btn svg {
  flex-shrink: 0;
  stroke: #888;
}
.gallery-more-btn:active {
  background: #f5f5f5;
  border-color: #bbb;
}

/* Gallery Modal */
.gallery-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  align-items: flex-end;
  justify-content: center;
}
.gallery-modal.is-open {
  display: flex;
}
.gallery-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  z-index: 1;
}
.gallery-modal-body {
  position: relative;
  z-index: 2;
  background: #fff;
  width: 100%;
  max-width: 600px;
  max-height: 85vh;
  border-radius: 16px 16px 0 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.gallery-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid #eee;
  flex-shrink: 0;
}
.gallery-modal-title {
  font-size: 16px;
  font-weight: 700;
  color: #333;
  margin: 0;
}
.gallery-modal-close {
  background: none;
  border: none;
  font-size: 28px;
  line-height: 1;
  color: #999;
  cursor: pointer;
  padding: 0 4px;
}
.gallery-modal-scroll {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 16px;
  flex: 1;
}
.gallery-modal-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.gallery-modal-item {
  border-radius: 8px;
  overflow: hidden;
  line-height: 0;
}
.gallery-modal-item img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

@media only screen and (max-width: 767.98px) {
  .facility-gallery-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.06rem;
  }
}

/* Instagram 埋め込み枠 */
.facility-instagram-embed iframe {
  border-radius: 0.08rem;
  display: block;
}

/* 勤務地マップ */
.requirements-map-embed {
  margin-top: 0.12rem;
  overflow: hidden;
  border-radius: 0.08rem;
  line-height: 0;
}
.requirements-map-embed iframe {
  display: block;
  width: 100%;
  border: 0;
  border-radius: 0.08rem;
  min-height: 2.8rem;
}
.requirements-map-embed--full {
  margin-left: -0.6rem;
  margin-right: -0.6rem;
  width: calc(100% + 1.2rem);
  border-radius: 0;
  margin-bottom: -0.35rem;
}
.requirements-map-embed--full iframe {
  border-radius: 0;
}
@media only screen and (max-width: 767.98px) {
  .requirements-map-embed--full {
    margin-left: -0.15rem;
    margin-right: -0.15rem;
    width: calc(100% + 0.3rem);
    margin-bottom: -0.08rem;
  }
}

/* 施設長 */
.section-job-detail .director-name {
  font-size: 0.18rem;
  font-weight: 700;
  margin: 0 0 0.12rem;
  letter-spacing: 0.05em;
  color: #333;
}
.section-job-detail .director-message {
  font-size: 0.14rem;
  line-height: 1.87;
  letter-spacing: 0.05em;
  color: var(--color-text-sub);
}
.section-job-detail .director-message p {
  margin: 0 0 0.5em;
}
.section-job-detail .director-message p:last-child {
  margin-bottom: 0;
}

/* 入職者インタビュー */
.section-job-detail .interview-name {
  font-size: 17px;
  font-weight: 700;
  color: #333;
  margin: 0 0 4px;
  letter-spacing: 0.03em;
}
.section-job-detail .interview-role {
  font-size: 12px;
  color: #999;
  margin: 0 0 12px;
  letter-spacing: 0.03em;
}
.section-job-detail .interview-content {
  font-size: 14px;
  line-height: 1.85;
  color: #555;
  letter-spacing: 0.02em;
}
.section-job-detail .interview-content p {
  margin: 0 0 0.8em;
}
.section-job-detail .interview-content p:last-child {
  margin-bottom: 0;
}

/* CTA バー（インライン除去） */
.detail-cta-bar-inner {
  text-align: center;
}

.section-job-detail .wrapper-inner { overflow: hidden; }
.section-job-detail .job-detail.is-table { overflow: hidden; }

/* h2 section heading — varied per section context */
.section-job-detail .table-title {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #222 !important;
  letter-spacing: 0.06em !important;
  padding-left: 0 !important;
  padding-bottom: 0 !important;
  margin-bottom: 28px !important;
  border-bottom: none !important;
  text-align: left !important;
  position: relative !important;
  line-height: 1.4 !important;
}
/* baito の ::before（左オレンジ短線）と旧 ::after を表示しない */
.section-job-detail .table-title::before,
.section-job-detail .table-title::after {
  display: none !important;
  content: none !important;
}
#sec-numbers .table-title,
#sec-director .table-title,
#sec-interview .table-title {
  text-align: center !important;
}
#sec-numbers .table-title {
  font-size: 17px !important;
  font-weight: 600 !important;
  color: #666 !important;
}
@media (min-width: 768px) {
  .section-job-detail .table-title {
    font-size: 22px !important;
    margin-bottom: 36px !important;
  }
  #sec-numbers .table-title {
    font-size: 18px !important;
  }
}

/* ============================================
   仕事内容 #sec-work — rem 連動バグ回避・アイコン右に見出し（Grid）
   ============================================ */
#sec-work .job-detail.is-table {
  overflow-x: hidden;
  box-sizing: border-box;
}
#sec-work .taiyou-jt-desc-table {
  width: 100% !important;
  max-width: 100%;
  font-size: 15px !important;
  line-height: 1.75 !important;
  letter-spacing: 0.03em !important;
  border-top: 1px solid #e8e6e1 !important;
  box-sizing: border-box;
}
#sec-work .taiyou-jt-desc-table th,
#sec-work .taiyou-jt-desc-table td {
  padding: 14px 10px 14px 0 !important;
  border-bottom: 1px solid #e8e6e1 !important;
  vertical-align: top !important;
}
#sec-work .taiyou-jt-desc-table tr:last-child th,
#sec-work .taiyou-jt-desc-table tr:last-child td,
#sec-work .taiyou-jt-desc-table tr:last-child .jt-desc-icon-cell {
  border-bottom: none !important;
}
#sec-work .taiyou-jt-desc-table th {
  font-weight: 700 !important;
  color: #333 !important;
}
#sec-work .taiyou-jt-desc-table td {
  color: #555 !important;
}
#sec-work .taiyou-jt-desc-table td > p {
  margin: 0 0 0.5em !important;
}
#sec-work .taiyou-jt-desc-table td > p:last-child {
  margin-bottom: 0 !important;
}

/* アイコン付き行：テーブル表示をやめ Grid で「[アイコン][見出し]／本文」 */
#sec-work .taiyou-jt-desc-table--icons {
  display: block !important;
  border-collapse: separate;
  border-spacing: 0;
}
#sec-work .taiyou-jt-desc-table--icons tbody {
  display: block !important;
  width: 100%;
}
#sec-work .taiyou-jt-desc-table--icons tbody tr {
  display: grid !important;
  align-items: start;
  column-gap: 12px;
  row-gap: 6px;
  padding: 10px 0 14px;
  margin: 0;
  border-bottom: 1px solid #e8e6e1;
  box-sizing: border-box;
}
#sec-work .taiyou-jt-desc-table--icons tbody tr:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
/* 見出しあり：1行目＝アイコン＋th、2行目＝本文（全幅） */
#sec-work .taiyou-jt-desc-table--icons tbody tr:has(th) {
  grid-template-columns: 48px minmax(0, 1fr);
  grid-template-rows: auto auto;
}
#sec-work .taiyou-jt-desc-table--icons tbody tr:has(th) .jt-desc-icon-cell {
  grid-column: 1;
  grid-row: 1 / -1;
  width: 48px !important;
  max-width: 48px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  align-self: stretch;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
#sec-work .taiyou-jt-desc-table--icons tbody tr:has(th) th {
  grid-column: 2;
  grid-row: 1;
  width: auto !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  font-size: 15px !important;
  line-height: 1.45 !important;
  white-space: normal !important;
  text-align: left !important;
  align-self: center;
}
/* 本文：見出し th と同じ列（2列目）から始め、行頭を th の文字頭に揃える */
#sec-work .taiyou-jt-desc-table--icons tbody tr:has(th) th + td {
  grid-column: 2;
  grid-row: 2;
  padding: 0 !important;
  border: none !important;
  font-size: 14px !important;
  line-height: 1.75 !important;
}
/* 見出しなし：アイコン＋本文を1行 */
#sec-work .taiyou-jt-desc-table--icons tbody tr:not(:has(th)) {
  grid-template-columns: 48px minmax(0, 1fr);
  grid-template-rows: auto;
}
#sec-work .taiyou-jt-desc-table--icons tbody tr:not(:has(th)) .jt-desc-icon-cell {
  grid-column: 1;
  grid-row: 1;
  width: 48px !important;
  max-width: 48px !important;
  padding: 2px 0 0 0 !important;
  border: none !important;
  align-self: start;
}
#sec-work .taiyou-jt-desc-table--icons tbody tr:not(:has(th)) td[colspan="2"] {
  grid-column: 2;
  grid-row: 1;
  padding: 0 !important;
  border: none !important;
  font-size: 14px !important;
  line-height: 1.75 !important;
}
#sec-work .taiyou-jt-desc-table--icons .jt-desc-icon-cell svg {
  width: 36px !important;
  height: 36px !important;
  display: block;
}

@media only screen and (max-width: 767.98px) {
  #sec-work .taiyou-jt-desc-table--icons tbody {
    border-top: 1px solid #e8e6e1;
    padding-top: 2px;
  }
  #sec-work .taiyou-jt-desc-table--icons tbody tr:has(th) .jt-desc-icon-cell,
  #sec-work .taiyou-jt-desc-table--icons tbody tr:not(:has(th)) .jt-desc-icon-cell {
    width: 44px !important;
    max-width: 44px !important;
  }
  #sec-work .taiyou-jt-desc-table--icons tbody tr:has(th) {
    grid-template-columns: 44px minmax(0, 1fr);
  }
  #sec-work .taiyou-jt-desc-table--icons tbody tr:not(:has(th)) {
    grid-template-columns: 44px minmax(0, 1fr);
  }
  #sec-work .taiyou-jt-desc-table--icons .jt-desc-icon-cell svg {
    width: 32px !important;
    height: 32px !important;
  }
}

/* ============================================
   研修の流れ — training-flow
   ============================================ */
.training-flow {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.training-flow-item {
  display: flex;
  align-items: center;
  gap: 16px;
  position: relative;
  padding-bottom: 28px;
}
.training-flow-item:last-child {
  padding-bottom: 0;
}
.training-flow-item:not(:last-child)::after {
  content: "";
  display: block;
  width: 14px;
  height: 10px;
  position: absolute;
  bottom: 8px;
  left: 17px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10'%3E%3Cpath d='M1 1l7 8 7-8' fill='none' stroke='%23F28B30' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* 左カラム：丸＋番号 */
.training-flow-icon {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  width: 48px;
}
.training-flow-circle {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 2px solid #F28B30;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.training-flow-num {
  font-size: 18px;
  font-weight: 800;
  color: #F28B30;
  line-height: 1;
}

/* 右カラム：期間＋内容 */
.training-flow-content {
  flex: 1;
  min-width: 0;
}
.training-flow-step {
  display: block;
  font-size: 15px;
  font-weight: 800;
  color: #F28B30;
  letter-spacing: 0.04em;
  line-height: 1.4;
  margin-bottom: 4px;
}

/* 求人詳細「研修の流れ」：期間ラベルを黒太字で強調 */
#sec-training .training-flow-step {
  color: #1a1a1a !important;
  font-weight: 700 !important;
}
.training-flow-body {
  font-size: 14px;
  line-height: 1.85;
  color: #555;
  letter-spacing: 0.02em;
}
.training-flow-body p {
  margin: 0 0 0.3em;
}
.training-flow-body p:last-child {
  margin-bottom: 0;
}

/* PC */
@media print, (min-width: 768px) {
  .training-flow-icon {
    width: 56px;
  }
  .training-flow-circle {
    width: 56px;
    height: 56px;
  }
  .training-flow-num {
    font-size: 20px;
  }
  .training-flow-step {
    font-size: 16px;
  }
  .training-flow-body {
    font-size: 15px;
  }
  .training-flow-item {
    gap: 20px;
    padding-bottom: 32px;
  }
  .training-flow-item:not(:last-child)::after {
    left: 20px;
    bottom: 10px;
    width: 16px;
    height: 12px;
  }
}

/* ============================================
   Entry Form (ef-*) — full redesign
   ============================================ */
.ef-card {
  background: #fff !important;
  border-radius: 16px !important;
  box-shadow: 0 4px 32px rgba(0,0,0,0.07) !important;
  padding: 32px 24px 24px !important;
  max-width: 480px !important;
  margin: 0 auto !important;
}
/* (flow-section-title removed — title is now inside flow-inner) */
/* ステップインジケータ */
.ef-card .flow-step {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  list-style: none;
  padding: 0 0 0.2rem;
  margin: 0 0 0.2rem;
  border-bottom: 1px solid #f0ece7;
}
.ef-card .flow-step li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  position: relative;
  flex: 1;
  color: #ccc;
  font-size: 11px;
  font-weight: 600;
}
.ef-card .flow-step li .step-num {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #e0dcd6;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  font-family: 'Lato', sans-serif;
  position: relative;
  z-index: 2;
}
.ef-card .flow-step li + li::after {
  content: "";
  position: absolute;
  top: 14px;
  right: 50%;
  width: 100%;
  height: 2px;
  background: #e0dcd6;
  z-index: 1;
}
.ef-card .flow-step li.is-active {
  color: var(--color-primary);
}
.ef-card .flow-step li.is-active .step-num {
  background: var(--color-primary);
}
.ef-card .flow-step li.is-done {
  color: var(--color-primary);
}
.ef-card .flow-step li.is-done .step-num {
  background: var(--color-primary);
}
.ef-card .flow-step li.is-active + li::after,
.ef-card .flow-step li.is-done + li::after {
  background: var(--color-primary);
}
.ef-header { text-align: center; margin-bottom: 24px; }
.ef-title {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #222 !important;
  letter-spacing: 0.04em !important;
  margin: 0 0 6px !important;
}
.ef-sub {
  font-size: 13px !important;
  color: #888 !important;
  letter-spacing: 0.02em !important;
  margin: 0 !important;
}

/* Progress bar */
.ef-progress { margin-bottom: 28px; }
.ef-progress-bar {
  height: 4px;
  background: #EDEBE8;
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 10px;
}
.ef-progress-fill {
  height: 100%;
  background: var(--color-primary);
  border-radius: 2px;
  transition: width 0.4s cubic-bezier(.4,0,.2,1);
}
.ef-steps {
  display: flex;
  justify-content: space-between;
}
.ef-step {
  font-size: 11px;
  color: #bbb;
  font-weight: 600;
  transition: color 0.3s;
}
.ef-step.is-active {
  color: var(--color-primary);
}
.ef-step.is-done {
  color: #666;
}

/* Form pages */
.ef-page { display: none; }
.ef-page.is-active { display: block; animation: efFadeIn 0.35s ease; }
@keyframes efFadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

/* Fields */
.ef-field { margin-bottom: 20px; }
.ef-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 600;
  color: #333;
  margin-bottom: 8px;
}
.ef-req {
  font-size: 10px;
  font-weight: 700;
  color: #fff;
  background: #E87340;
  padding: 1px 6px;
  border-radius: 3px;
  line-height: 1.5;
}
.ef-opt {
  font-size: 10px;
  font-weight: 700;
  color: #999;
  background: #F0EDEA;
  padding: 1px 6px;
  border-radius: 3px;
  line-height: 1.5;
}
.ef-input,
.ef-textarea {
  display: block !important;
  width: 100% !important;
  padding: 14px 16px !important;
  font-size: 16px !important;
  color: #222 !important;
  background: #FAFAF9 !important;
  border: 1.5px solid #DDD8D2 !important;
  border-radius: 10px !important;
  outline: none !important;
  transition: border-color 0.2s, box-shadow 0.2s, background 0.2s !important;
  box-sizing: border-box !important;
  -webkit-appearance: none !important;
}
.ef-input:focus,
.ef-textarea:focus {
  border-color: var(--color-primary) !important;
  background: #fff !important;
  box-shadow: 0 0 0 3px rgba(232,115,64,0.12) !important;
}
.ef-input::placeholder,
.ef-textarea::placeholder {
  color: #C0BBB4 !important;
  font-size: 14px !important;
}
.ef-textarea {
  resize: vertical !important;
  min-height: 80px !important;
  line-height: 1.6 !important;
}
.ef-hint {
  display: block;
  font-size: 11px;
  color: #aaa;
  margin-top: 5px;
  padding-left: 2px;
}

/* Policy box (accordion) */
.ef-policy { margin: 20px 0 24px; }
.ef-policy-box {
  margin-bottom: 12px;
  border: 1px solid #EBE7E2;
  border-radius: 10px;
  overflow: hidden;
  background: #FAF9F7;
}
.ef-policy-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 12px 14px;
  font-size: 13px;
  font-weight: 600;
  color: #555;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: color 0.2s;
}
.ef-policy-toggle:hover { color: #333; }
.ef-policy-arrow {
  transition: transform 0.3s ease;
  flex-shrink: 0;
}
.ef-policy-toggle[aria-expanded="true"] .ef-policy-arrow {
  transform: rotate(180deg);
}
.ef-policy-content {
  border-top: 1px solid #EBE7E2;
}
.ef-policy-scroll {
  max-height: 200px;
  overflow-y: auto;
  padding: 14px 16px;
  font-size: 11px;
  line-height: 1.75;
  color: #555;
  -webkit-overflow-scrolling: touch;
}
.ef-policy-scroll h4 {
  font-size: 13px;
  font-weight: 700;
  color: #333;
  margin: 0 0 12px;
}
.ef-policy-scroll p {
  margin: 0 0 10px;
}
.ef-policy-scroll strong {
  color: #333;
}

/* Policy scroll box */
.ef-policy-box {
  border: 1px solid #ddd;
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 16px;
}
.ef-policy-box-title {
  font-size: 12px !important;
  font-weight: 700 !important;
  padding: 8px 12px !important;
  margin: 0 !important;
  background: #fafafa;
  border-bottom: 1px solid #ddd;
  color: #333 !important;
}
.ef-policy-box-scroll {
  max-height: 2.8em;
  overflow-y: auto;
  padding: 8px 12px;
  font-size: 11px !important;
  line-height: 1.6 !important;
  color: #555 !important;
  -webkit-overflow-scrolling: touch;
}
.ef-policy-box-scroll h2,
.ef-policy-box-scroll h3,
.ef-policy-box-scroll h4 {
  font-size: 11px !important;
  font-weight: 700 !important;
  margin: 0.8em 0 0.3em !important;
  color: #333 !important;
}
.ef-policy-box-scroll p {
  margin: 0 0 0.4em !important;
  font-size: 11px !important;
  line-height: 1.6 !important;
}
.ef-policy-box-scroll ol,
.ef-policy-box-scroll ul {
  padding-left: 1.2em !important;
  margin: 0 0 0.5em !important;
}
.ef-policy-box-scroll li {
  font-size: 11px !important;
  line-height: 1.6 !important;
  margin-bottom: 0.3em !important;
}

/* Agree area */
.ef-agree-area {
  margin-top: 12px;
  margin-bottom: 4px;
  border: 1px solid #E0DCD7;
  border-radius: 8px;
  padding: 12px 16px;
  background: #FAFAF8;
}
.ef-agree-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  color: #444;
  line-height: 1.4;
}
.ef-pp-footer {
  text-align: center;
  margin-top: 14px;
}
.ef-pp-open {
  display: inline-block;
  font-size: 11px;
  color: #aaa !important;
  text-decoration: underline !important;
  letter-spacing: 0.02em;
}
.ef-pp-open:hover {
  color: #666 !important;
}

/* Checkbox (legacy wrapper compat) */
.ef-checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  cursor: pointer;
  padding: 10px 12px;
  min-width: 0;
  font-size: 12px;
  white-space: nowrap;
  background: #FAF9F7;
  border: 1px solid #EBE7E2;
  border-radius: 10px;
  transition: border-color 0.2s, background 0.2s;
}
.ef-checkbox-label:hover {
  border-color: #D0CBC4;
  background: #F5F3F0;
}
.ef-checkbox {
  position: absolute !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
}
.ef-checkbox-ui {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-top: 1px;
  border: 2px solid #CCC7BF;
  border-radius: 5px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}
.ef-checkbox:checked + .ef-checkbox-ui {
  background: var(--color-primary);
  border-color: var(--color-primary);
}
.ef-checkbox:checked + .ef-checkbox-ui::after {
  content: "";
  display: block;
  width: 6px;
  height: 10px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  margin-top: -2px;
}
.ef-checkbox-text {
  font-size: 13px;
  color: #555;
  line-height: 1.5;
  min-width: 0;
  word-break: break-all;
  overflow-wrap: break-word;
  padding-top: 1px;
}
.ef-checkbox-text a {
  color: var(--color-cta);
  text-decoration: underline;
  font-weight: 600;
}
.ef-pp-link {
  display: inline-block;
  font-size: 11px !important;
  font-weight: 400 !important;
  margin-left: 6px;
  color: #888 !important;
  text-decoration: underline !important;
}

/* Privacy Policy Modal */
.pp-modal {
  display: none;
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 9999;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.pp-modal.is-open {
  display: flex;
}
.pp-modal-overlay {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.5);
}
.pp-modal-body {
  position: relative;
  background: #fff;
  border-radius: 12px;
  width: 100%;
  max-width: 560px;
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 8px 40px rgba(0,0,0,0.18);
  overflow: hidden;
}
.pp-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  border-bottom: 1px solid #eee;
  flex-shrink: 0;
}
.pp-modal-title {
  font-size: 15px !important;
  font-weight: 700 !important;
  margin: 0 !important;
  color: #333 !important;
}
.pp-modal-close {
  background: none;
  border: none;
  font-size: 24px;
  color: #999;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background 0.15s;
}
.pp-modal-close:hover {
  background: #f0f0f0;
  color: #333;
}
.pp-modal-scroll {
  overflow-y: auto;
  padding: 20px;
  font-size: 13px;
  line-height: 1.8;
  color: #444;
  -webkit-overflow-scrolling: touch;
}
.pp-modal-scroll h2,
.pp-modal-scroll h3,
.pp-modal-scroll h4 {
  font-size: 14px !important;
  font-weight: 700 !important;
  margin: 1.2em 0 0.4em !important;
  color: #333 !important;
}
.pp-modal-scroll p {
  margin: 0 0 0.8em !important;
}
.pp-modal-scroll ol,
.pp-modal-scroll ul {
  padding-left: 1.4em !important;
  margin: 0 0 0.8em !important;
}

/* Done page */
.ef-page-done {
  padding: 24px 0 16px !important;
}
.ef-done-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 20px 16px 8px;
}
.ef-done-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--color-cta);
  margin-bottom: 20px;
}
.ef-done-heading {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #333 !important;
  margin: 0 0 12px !important;
  letter-spacing: 0.04em;
  line-height: 1.5;
}
.ef-done-text {
  font-size: 14px !important;
  color: #666 !important;
  line-height: 1.8 !important;
  margin: 0 !important;
}

/* Buttons */
.ef-btn-next {
  display: block !important;
  width: 100% !important;
  padding: 16px !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #fff !important;
  background: var(--color-cta) !important;
  border: none !important;
  border-radius: 12px !important;
  cursor: pointer !important;
  transition: background 0.2s, transform 0.1s !important;
  letter-spacing: 0.04em !important;
  margin-top: 4px !important;
}
.ef-btn-next:hover { background: var(--color-cta-dark, #D06020) !important; }
.ef-btn-next:active { transform: scale(0.98) !important; }

.ef-actions {
  display: flex;
  gap: 10px;
  align-items: center;
}
.ef-btn-back {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  padding: 14px 16px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #888 !important;
  background: none !important;
  border: 1.5px solid #DDD !important;
  border-radius: 10px !important;
  cursor: pointer !important;
  transition: border-color 0.2s, color 0.2s !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}
.ef-btn-back:hover { border-color: #bbb !important; color: #555 !important; }
.ef-btn-submit {
  flex: 1 !important;
  padding: 16px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #fff !important;
  background: var(--color-cta) !important;
  border: none !important;
  border-radius: 12px !important;
  cursor: pointer !important;
  transition: background 0.2s, transform 0.1s !important;
  letter-spacing: 0.02em !important;
  white-space: nowrap !important;
}
.ef-btn-submit:hover { background: var(--color-cta-dark, #D06020) !important; }
.ef-btn-submit:active { transform: scale(0.98) !important; }

/* Bottom note */
.ef-note {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  font-size: 12px;
  color: #aaa;
  margin: 6px 0 0;
  text-align: center;
}
.ef-note svg { stroke: #bbb; flex-shrink: 0; }

/* Mobile tweaks */
@media only screen and (max-width: 767.98px) {
  .ef-card { padding: 24px 18px 20px !important; border-radius: 14px !important; }
  .ef-title { font-size: 18px !important; }
}

/* PC tweaks */
@media print, (min-width: 768px) {
  .ef-card { padding: 40px 36px 32px !important; }
  .ef-title { font-size: 22px !important; }
}

/* flow-title: show inside white card */
#section-job-flow .flow-title,
.section-job-flow .flow-title {
  display: block !important;
  font-size: 0.2rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  color: #333 !important;
  border: none !important;
  background: none !important;
  position: relative !important;
  padding: 0 0 0.12rem 0 !important;
  margin-bottom: 0.36rem !important;
  text-align: center !important;
}
#section-job-flow .flow-title::before,
.section-job-flow .flow-title::before {
  content: "" !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 40px !important;
  height: 3px !important;
  background: var(--color-primary) !important;
  border-radius: 2px !important;
}
#section-job-flow .flow-title::after {
  display: none !important;
}
.flow-subtitle {
  text-align: center !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--color-primary) !important;
  margin: -20px 0 24px !important;
  letter-spacing: 0.03em;
}
#section-job-flow .flow-title span {
  background: none !important;
  padding: 0 !important;
}

/* 求人詳細：応募フォーム（項目・入力の幅・高さは維持、ラベル・区切り・枠線・フォーカスのみ） */
#section-job-flow .flow-inner {
  background: #fff !important;
  border-radius: 12px !important;
  box-shadow: 0 2px 24px rgba(0, 0, 0, 0.06) !important;
  border: 1px solid #ede8e2 !important;
  padding-left: 0.16rem !important;
  padding-right: 0.16rem !important;
  padding-bottom: 0.08rem !important;
}
@media only screen and (max-width: 767.98px) {
  #section-job-flow .flow-inner {
    padding-left: 0.12rem !important;
    padding-right: 0.12rem !important;
  }
}
#section-job-flow .form-application .form-row:not(.form-submit):not(.form-policy) {
  border-bottom: 1px solid #f0ece7 !important;
  padding-top: 0.12rem !important;
  padding-bottom: 0.12rem !important;
  margin: 0 !important;
}
#section-job-flow .form-application .tab-content > .form-row:first-child {
  padding-top: 0.08rem !important;
}
#section-job-flow .form-label span {
  color: #444 !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  letter-spacing: 0.04em !important;
}
#section-job-flow .form-input-text,
#section-job-flow input.form-input-text,
#section-job-flow textarea.form-textarea {
  border-color: #d8d3cc !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}
#section-job-flow .form-input-text:focus,
#section-job-flow input.form-input-text:focus,
#section-job-flow textarea.form-textarea:focus {
  border-color: var(--color-primary) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(242, 139, 48, 0.18) !important;
}
#section-job-flow .form-row.form-policy {
  background: #faf8f5 !important;
  border: 1px solid #efe9e2 !important;
  border-radius: 8px !important;
  padding: 14px 12px !important;
  margin-top: 0.1rem !important;
  margin-bottom: 0.06rem !important;
}
#section-job-flow .form-row.form-policy .form-input-wrapper {
  width: 100% !important;
}
#section-job-flow .form-row.form-policy .checkbox-text,
#section-job-flow .form-row.form-policy .checkbox-text a {
  font-size: 13px !important;
  color: #555 !important;
}
#section-job-flow .form-row.form-submit {
  border-bottom: none !important;
  padding-top: 0.16rem !important;
}
#section-job-flow .form-row.form-submit .back-btn {
  border: 1px solid #ccc !important;
  background: #fff !important;
  color: #555 !important;
  border-radius: 8px !important;
}

/* 募集要項: 項目名を太字に */
.section-job-detail .job-table th {
  font-weight: 700 !important;
}

/* Detail page base colors — intentional per-section backgrounds */
.section-job-detail {
  background-color: #fff !important;
}
#sec-workplace.section-job-detail {
  background-color: #fafaf8 !important;
}
#sec-schedule.section-job-detail,
#sec-daily.section-job-detail,
#sec-facility.section-job-detail {
  background-color: #faf8f5 !important;
}
#sec-numbers.section-job-detail {
  background-color: #fff !important;
}
#sec-interview.section-job-detail {
  background-color: #faf8f5 !important;
}
.section-job-detail .job-detail,
.section-job-detail .job-detail.is-step {
  background-color: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Accent green: badges & soft highlights */
.badge-accent { display: inline-block; background: var(--color-accent); color: #fff; font-size: 0.11rem; font-weight: bold; padding: 0.03rem 0.1rem; border-radius: 2px; letter-spacing: 0.05em; }
.badge-accent-outline { display: inline-block; border: 1px solid var(--color-accent); color: var(--color-accent); font-size: 0.11rem; font-weight: bold; padding: 0.03rem 0.1rem; border-radius: 2px; letter-spacing: 0.05em; }

/* Tour CTA: warm outline */
.btn-common.is-tour {
  background-color: #fff !important;
  border: 2px solid var(--color-primary) !important;
  color: var(--color-primary) !important;
}
@media (hover: hover) and (pointer: fine) {
  .btn-common.is-tour:hover { background-color: var(--color-primary) !important; color: #fff !important; }
  .insta-item:hover video { opacity: 0.85; }
}
.btn-common.is-tour:active { background-color: var(--color-primary) !important; color: #fff !important; }

/* Form section background — 薄いグレー */
.section-job-flow,
section.section-job-flow,
section.section-job-flow#section-job-flow {
  background: #F5F5F5 !important;
  padding: 0.4rem 0 0.6rem !important;
}
@media print, (min-width: 768px) {
  section.section-job-flow#section-job-flow {
    padding-top: 0.8rem !important;
    padding-bottom: 1.4rem !important;
  }
  section.section-job-flow#section-job-flow .flow-inner {
    padding-top: 0.54rem !important;
    padding-bottom: 0.16rem !important;
    max-width: 340px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* Form submit button */
.btn-common.btn-submit,
.btn-common.btn-submit:link,
.btn-common.btn-submit:visited,
.btn-common.btn-submit:hover,
.btn-common.btn-submit:active,
button.btn-common.btn-submit,
button.btn-submit,
.btn-submit,
.btn-submit:hover {
  background-color: var(--color-cta) !important;
  border-color: var(--color-cta) !important;
  color: #fff !important;
}

/* CTA buttons: unified size across detail page */
.is-detail .btn-common,
.detail-cta-bar .btn-common,
.section-job-detail .btn-common,
.section-job-flow .btn-common,
#section-job-flow .btn-common {
  min-height: 52px !important;
  height: auto !important;
  font-size: 16px !important;
  padding: 14px 24px !important;
  border-radius: 4px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
}

/* Flow step indicators */
#section-job-flow .flow-step,
.section-job-flow .flow-step {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  border: none !important;
  background: none !important;
  margin-bottom: 28px !important;
  padding: 0 !important;
  list-style: none !important;
}
#section-job-flow .flow-step li {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative !important;
  padding: 0 !important;
  flex: 1 !important;
  overflow: visible !important;
  background: none !important;
  border: none !important;
  width: auto !important;
  height: auto !important;
  border-radius: 0 !important;
  color: #bbb !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}
#section-job-flow .flow-step li::before {
  content: "" !important;
  display: block !important;
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  background: #E8E4DF !important;
  margin-bottom: 6px !important;
  position: relative !important;
  z-index: 2 !important;
}
#section-job-flow .flow-step li .step-num {
  position: absolute !important;
  top: 0 !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 36px !important;
  height: 36px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #fff !important;
  z-index: 3 !important;
  font-family: 'Lato', sans-serif !important;
}
#section-job-flow .flow-step li .step-label {
  font-size: 11px !important;
  letter-spacing: 0 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  color: inherit !important;
}
#section-job-flow .flow-step li + li::after {
  content: "" !important;
  position: absolute !important;
  top: 18px !important;
  right: 50% !important;
  width: 100% !important;
  height: 2px !important;
  background: #E8E4DF !important;
  z-index: 1 !important;
  display: block !important;
}
#section-job-flow .flow-step li.is-active {
  color: var(--color-primary) !important;
  background: none !important;
}
#section-job-flow .flow-step li.is-active::before {
  background: var(--color-primary) !important;
  box-shadow: 0 0 0 4px rgba(242,139,48,0.18) !important;
}
#section-job-flow .flow-step li.is-done {
  color: var(--color-primary) !important;
  background: none !important;
}
#section-job-flow .flow-step li.is-done::before {
  background: var(--color-primary) !important;
}
#section-job-flow .flow-step li.is-active + li::after,
#section-job-flow .flow-step li.is-done + li::after {
  background: var(--color-primary) !important;
}
#section-job-flow .step-content {
  position: relative !important;
  overflow: visible !important;
  min-height: auto !important;
  max-width: none !important;
  background: none !important;
}

/* Form input: taller */
#section-job-flow .form-input-text,
#section-job-flow input.form-input-text {
  height: 48px !important;
  min-height: 48px !important;
  font-size: 15px !important;
  padding: 0 14px !important;
}
#section-job-flow .form-text-wrapper {
  min-height: 48px !important;
}

/* Submit next button: bright white text */
#section-job-flow .btn-submit,
#section-job-flow button.btn-submit,
#section-job-flow .btn-common.btn-submit {
  color: #fff !important;
  opacity: 1 !important;
  min-height: 48px !important;
}

/* Tap feedback */
.btn-common.is-orange:active { opacity: 0.85; }
.btn-common:active { opacity: 0.85; }

/* Outline gray: subdued button */
.btn-common.is-outline-gray {
  background-color: #fff !important;
  border: 1px solid #ccc !important;
  color: #666 !important;
}
@media (hover: hover) and (pointer: fine) {
  .btn-common.is-outline-gray:hover { border-color: #999 !important; color: #333 !important; }
}

/* Tour reception note */
.tour-reception { font-size: 0.11rem; color: #999; text-align: center; margin-top: 0.08rem; letter-spacing: 0.05em; }

/* ============================================
   Quick summary chips (mobile focused)
   ============================================ */
.quick-summary {
  display: flex;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  gap: 8px;
  padding: 12px 16px;
  background: #fff;
}
.quick-summary::-webkit-scrollbar { display: none; }
.summary-chip {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 10px 16px;
  background: var(--color-primary-bg);
  border-radius: 8px;
  text-decoration: none;
  min-width: 100px;
  transition: background .2s;
}
.summary-chip:active { background: var(--color-primary-bg-medium); }
.chip-value {
  font-size: 13px;
  font-weight: 700;
  color: #333;
  white-space: nowrap;
  letter-spacing: 0.02em;
}
.chip-label {
  font-size: 10px;
  color: #999;
  margin-top: 2px;
  letter-spacing: 0.04em;
}

/* ============================================
   Collapsible sections (mobile)
   ============================================ */
.collapse-fade {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 0.6rem;
  background: linear-gradient(to bottom, rgba(255,255,255,0), #fff);
  pointer-events: none;
}
.collapse-toggle {
  display: block;
  width: 100%;
  padding: 10px 0;
  border: none;
  background: none;
  color: var(--color-primary);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  cursor: pointer;
  text-align: center;
  position: relative;
}
.collapse-toggle::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-right: 2px solid var(--color-primary);
  border-bottom: 2px solid var(--color-primary);
  transform: rotate(45deg);
  margin-left: 6px;
  vertical-align: 2px;
  transition: transform .25s;
}
.collapse-toggle.is-open::after {
  transform: rotate(-135deg);
  vertical-align: -2px;
}

/* Inline CTA between sections */
.detail-cta-bar {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0.16rem 0.2rem;
  gap: 0.1rem;
  background: var(--color-bg) !important;
}
.detail-cta-bar .btn-common {
  width: 100%;
  max-width: 360px;
  text-align: center;
}
.cta-sub-link {
  font-size: 0.12rem;
  color: var(--color-text-sub);
  text-decoration: none;
  letter-spacing: 0.05em;
  transition: color .2s;
}
@media (hover: hover) and (pointer: fine) {
  .cta-sub-link:hover { color: var(--color-primary); }
}
.cta-sub-link:active { color: var(--color-primary); }

/* Work content cards */
.work-cards { display: flex; flex-wrap: wrap; gap: 0.12rem; margin-bottom: 0; }
.work-card { flex: 1; min-width: 240px; padding: 0.2rem; border: 0.01rem solid #F1F1F1; border-radius: 0.06rem; }
.work-card .card-icon { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; margin-bottom: 0.1rem; }
.work-card .card-icon svg { width: 24px; height: 24px; color: var(--color-primary); }
.work-card .card-title { font-weight: bold; font-size: 0.15rem; margin-bottom: 0.08rem; color: var(--color-primary); letter-spacing: 0.05em; }
.work-card .card-text { font-size: 0.13rem; line-height: 1.87; color: var(--color-text-sub); letter-spacing: 0.05em; }

/* Schedule */
.schedule-tabs { display: flex; gap: 0; margin-bottom: 0.2rem; border-bottom: 0.01rem solid #F1F1F1; justify-content: center; }
.schedule-tabs--single { display: flex; margin-bottom: 0.2rem; border-bottom: 0.01rem solid #F1F1F1; justify-content: center; }
.schedule-tab { padding: 0.1rem 0.25rem; font-size: 0.14rem; font-weight: bold; cursor: pointer; border: none; background: none; color: #999; letter-spacing: 0.05em; position: relative; transition: color .2s; }
.schedule-tab.is-active { color: #6AC7BF; }
.schedule-tab.is-active::after { content: ""; position: absolute; bottom: -1px; left: 0; right: 0; height: 2px; background: #6AC7BF; }
.schedule-tab-label { display: inline-block; padding: 0.1rem 0.25rem; font-size: 0.14rem; font-weight: bold; color: #6AC7BF; letter-spacing: 0.05em; position: relative; }
.schedule-tab-label.is-active::after { content: ""; position: absolute; bottom: -1px; left: 0; right: 0; height: 2px; background: #6AC7BF; }
.schedule-timeline { max-width: 100%; width: 100%; box-sizing: border-box; }
.schedule-timeline::before { display: none; }
.schedule-item { display: flex; align-items: baseline; gap: 0.15rem; padding: 0.1rem 0; border-bottom: 0.01rem solid #F1F1F1; }
.schedule-item:last-child { border-bottom: none; }
.schedule-item::before { display: none; }
.schedule-item .item-time { min-width: 60px; font-size: 0.15rem; font-weight: 700; color: #333; font-family: 'Lato', sans-serif; letter-spacing: 0.02em; }
.schedule-item .item-task { font-size: 0.14rem; color: var(--color-text-sub); line-height: 1.87; letter-spacing: 0.05em; flex: 1; }
.schedule-item.is-rest .item-time { color: var(--color-primary); }
.schedule-item.is-rest .item-task { color: var(--color-primary); }

/* Numbers / stats section */
.numbers-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border: none; width: 100%; box-sizing: border-box; }
.number-item { text-align: center; padding: 20px 8px; box-sizing: border-box; border-right: 1px solid #e8e4df; }
.number-item:last-child { border-right: none; }
.number-item .num-icon { display: none; }
.number-item .num-value { font-family: 'Lato', sans-serif; font-size: 0.34rem; font-weight: 700; color: var(--color-primary); line-height: 1.2; letter-spacing: 0.02em; }
.number-item .num-unit { font-size: 0.14rem; font-weight: 700; color: var(--color-primary); }
.number-item .num-label { font-size: 0.12rem; color: var(--color-text); margin-top: 0.06rem; line-height: 1.5; letter-spacing: 0.05em; }
.number-item .num-sub { font-size: 0.1rem; color: var(--color-text-sub); margin-top: 0.03rem; letter-spacing: 0.05em; }
@media only screen and (max-width: 767.98px) {
  .numbers-grid { grid-template-columns: repeat(4, 1fr); }
  .number-item .num-value { font-size: 0.22rem; }
  .number-item .num-unit { font-size: 0.11rem; }
  .number-item .num-label { font-size: 0.1rem; }
  .number-item .num-sub { font-size: 0.09rem; }
  .number-item { padding: 0.12rem 0.04rem; }
}

/* 求人詳細「数字で見る」：PCは4列1行（job-detail-baito の auto-fit を上書き） */
@media (min-width: 768px) {
  #sec-numbers .numbers-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;
    padding: 0 !important;
    width: 100%;
    box-sizing: border-box;
  }
  #sec-numbers .number-item {
    padding: 18px 6px !important;
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    border-right: 1px solid #e8e4df !important;
    text-align: center;
    min-width: 0;
  }
  #sec-numbers .number-item:last-child {
    border-right: none !important;
  }
  #sec-numbers .number-item .num-value {
    font-size: clamp(22px, 2.4vw, 32px) !important;
    line-height: 1.15 !important;
  }
  #sec-numbers .number-item .num-unit {
    font-size: 12px !important;
    font-weight: 700 !important;
    color: var(--color-primary, #f28b30) !important;
    margin-left: 2px !important;
  }
  #sec-numbers .number-item .num-label {
    font-size: 11px !important;
    line-height: 1.35 !important;
    margin-top: 8px !important;
    color: var(--color-text, #333) !important;
    letter-spacing: 0.03em !important;
    word-break: keep-all;
    overflow-wrap: anywhere;
  }
  #sec-numbers .number-item .num-sub {
    font-size: 10px !important;
    margin-top: 4px !important;
  }
}

/* Workplace traits slider */
.traits-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; border-top: 0.01rem solid #F1F1F1; border-left: 0.01rem solid #F1F1F1; width: 100%; box-sizing: border-box; }
.trait-row { padding: 0.18rem 0.2rem; border-bottom: 0.01rem solid #F1F1F1; border-right: 0.01rem solid #F1F1F1; box-sizing: border-box; overflow: hidden; }
.trait-label { font-size: 0.14rem; font-weight: bold; color: #333; margin-bottom: 0.12rem; letter-spacing: 0.05em; }
.trait-bar { display: flex; align-items: center; gap: 0; position: relative; }
.trait-bar .bar-end { font-size: 0.11rem; color: var(--color-text-sub); white-space: nowrap; min-width: 52px; letter-spacing: 0.05em; }
.trait-bar .bar-end.is-left { text-align: right; padding-right: 0.12rem; }
.trait-bar .bar-end.is-right { text-align: left; padding-left: 0.12rem; }
.trait-track { flex: 1; position: relative; height: 3px; background: #E5E5E5; border-radius: 0; }
.trait-dots { position: absolute; top: 50%; left: 0; right: 0; display: flex; justify-content: space-between; transform: translateY(-50%); padding: 0; pointer-events: none; }
.trait-dots .dot { width: 12px; height: 12px; border-radius: 50%; background: #D9D9D9; border: none; box-shadow: none; }
.trait-dots .dot.is-active { background: var(--color-primary); }
.trait-scale { display: flex; justify-content: space-between; padding: 0 52px; margin-top: 0.06rem; }
.trait-scale span { font-size: 0.1rem; color: #999; min-width: 20px; text-align: center; letter-spacing: 0.05em; }
@media only screen and (max-width: 767.98px) {
  .traits-grid { grid-template-columns: 1fr; }
  .trait-row { padding: 0.14rem 0.15rem; }
  .trait-bar .bar-end { min-width: 44px; font-size: 0.1rem; }
}

/* Training steps - reuse original step-list styling */
.training-steps { counter-reset: training-counter; }
.training-step { display: flex; align-items: flex-start; gap: 0.15rem; padding: 0.12rem 0; border-bottom: 1px solid #f1f1f1; }
.training-step:last-child { border-bottom: none; }
.training-step .step-badge { min-width: 80px; text-align: center; padding: 0.05rem 0.08rem; border-radius: 4px; font-weight: bold; font-size: 0.1rem; color: #fff; background: var(--color-primary); flex-shrink: 0; }
.training-step .step-body { flex: 1; }
.training-step .step-title { font-weight: bold; font-size: 0.13rem; margin-bottom: 0.04rem; color: #333; }
.training-step .step-desc { font-size: 0.11rem; color: #666; line-height: 1.7; }

/* Director profile — 小さめの円形アバター＋横並び（採用LP・SNSプロフィールで一般的な「顔＋文」） */
.director-profile {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 16px;
}
.director-photo {
  width: 104px;
  height: 104px;
  flex-shrink: 0;
  border-radius: 50%;
  overflow: hidden;
  line-height: 0;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}
.director-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  border-radius: 50%;
}
.director-photo .photo-name { font-weight: bold; font-size: 0.15rem; margin-top: 0.1rem; color: #333; text-align: center; letter-spacing: 0.05em; }
.director-photo .photo-role { font-size: 0.11rem; color: #999; text-align: center; letter-spacing: 0.05em; }
@media print, (min-width: 768px) {
  .director-profile {
    gap: 22px;
  }
  .director-photo {
    width: 128px;
    height: 128px;
  }
}
.director-body { flex: 1; min-width: 0; }
.director-body .body-quote { font-size: 0.17rem; font-weight: bold; color: var(--color-primary); margin-bottom: 0.15rem; line-height: 1.7; letter-spacing: 0.05em; }
.director-body .body-text { font-size: 0.14rem; line-height: 1.87; color: var(--color-text-sub); letter-spacing: 0.05em; }

/* (Instagram grid styles defined in top section) */

/* Interview video */
.interview-video { margin-bottom: 0.25rem; padding-bottom: 0.25rem; border-bottom: 0.01rem solid #F1F1F1; }
.video-player { position: relative; width: 100%; }
.video-placeholder { position: relative; width: 100%; aspect-ratio: 16/9; overflow: hidden; cursor: pointer; }
.video-placeholder img { width: 100%; height: 100%; object-fit: cover; display: block; }
.video-play-btn {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 56px; height: 56px; border-radius: 50%;
  background: rgba(255,255,255,0.9);
  display: flex; align-items: center; justify-content: center;
}
.video-play-btn::after {
  content: ""; display: block;
  width: 0; height: 0;
  border-style: solid; border-width: 10px 0 10px 18px;
  border-color: transparent transparent transparent var(--color-primary);
  margin-left: 3px;
}
.video-meta { margin-top: 0.12rem; }
.video-name { font-weight: bold; font-size: 0.15rem; color: #333; letter-spacing: 0.05em; }
.video-career { font-size: 0.11rem; color: #999; margin-top: 0.03rem; letter-spacing: 0.05em; }

/* Interview cards（入職者インタビュー — 顔写真 160px / SP 108px） */
.interview-card { display: flex; gap: 14px; align-items: flex-start; padding: 0.22rem 0; border-bottom: 0.01rem solid #F1F1F1; }
.interview-card:last-child { border-bottom: none; }
.interview-photo { width: 160px; flex-shrink: 0; text-align: center; }
.interview-photo img { width: 160px; height: 160px; border-radius: 50%; object-fit: cover; }
.interview-photo .photo-name { font-weight: bold; font-size: 0.13rem; margin-top: 0.08rem; color: #333; letter-spacing: 0.05em; }
.interview-photo .photo-meta { font-size: 0.1rem; color: #999; line-height: 1.5; letter-spacing: 0.05em; }
.interview-body { flex: 1; min-width: 0; }
.interview-body .body-title { font-size: 0.15rem; font-weight: bold; color: var(--color-primary); margin-bottom: 0.1rem; line-height: 1.6; letter-spacing: 0.05em; }
.interview-body .body-text { font-size: 0.13rem; line-height: 1.87; color: var(--color-text-sub); letter-spacing: 0.05em; }

/* Interview card v2 */
.interview-card-v2 {
  padding: 0.22rem 0;
  border-bottom: 1px solid #F1F1F1;
}
.interview-card-v2:last-child { border-bottom: none; }

.iv2-header {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 14px;
}
.iv2-photo {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
.iv2-meta {
  flex: 1;
  min-width: 0;
  padding-top: 2px;
}
.iv2-name {
  font-size: 14px;
  font-weight: 700;
  color: #333;
  letter-spacing: 0.04em;
  line-height: 1.4;
}
.iv2-role {
  font-size: 11px;
  color: #9a8e82;
  letter-spacing: 0.04em;
  margin-top: 1px;
}
.iv2-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1.6;
  margin-top: 8px;
  letter-spacing: 0.03em;
}
.iv2-text {
  font-size: 13px;
  line-height: 1.9;
  color: var(--color-text-sub);
  letter-spacing: 0.04em;
}

/* Initiative articles */
.initiative-list { display: flex; flex-direction: column; gap: 0; }
.initiative-item {
  display: flex;
  gap: 0.18rem;
  padding: 0.2rem 0;
  border-bottom: 0.01rem solid #F1F1F1;
  align-items: center;
}
.initiative-item:last-child { border-bottom: none; }
.initiative-thumb {
  width: 140px;
  flex-shrink: 0;
}
.initiative-thumb img {
  width: 100%;
  aspect-ratio: 5/3;
  object-fit: cover;
  border-radius: 4px;
  display: block;
}
.initiative-body { flex: 1; min-width: 0; }
.initiative-tag {
  display: inline-block;
  font-size: 0.1rem;
  color: var(--color-primary);
  border: 1px solid var(--color-primary);
  padding: 0.02rem 0.08rem;
  border-radius: 2px;
  letter-spacing: 0.04em;
  margin-bottom: 0.06rem;
}
.initiative-title {
  font-size: 0.14rem;
  font-weight: 700;
  color: #333;
  line-height: 1.6;
  margin-top: 0.08rem;
  margin-bottom: 0.08rem;
  letter-spacing: 0.03em;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  overflow-wrap: break-word;
  word-break: break-word;
}
.initiative-text {
  font-size: 0.12rem;
  line-height: 1.8;
  color: var(--color-text-sub);
  letter-spacing: 0.04em;
}
.initiative-read-more {
  display: inline-block;
  float: right;
  margin-top: 0.08rem;
  font-size: 0.11rem;
  font-weight: 600;
  color: var(--color-primary) !important;
  text-decoration: none !important;
  background: none !important;
  letter-spacing: 0.03em;
  transition: opacity 0.2s ease;
  position: relative;
  padding-bottom: 8px;
}
.initiative-read-more::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: calc(100% + 16px);
  height: 1px;
  background: var(--color-primary);
}
.initiative-read-more .read-more-arrow {
  display: none;
}
.initiative-read-more::before {
  content: "";
  position: absolute;
  right: -16px;
  bottom: 0;
  width: 12px;
  height: 1px;
  background: var(--color-primary);
  transform: rotate(40deg);
  transform-origin: right center;
}
.initiative-read-more:hover {
  opacity: 0.7;
  color: var(--color-primary-dark) !important;
  background: none !important;
}
@media only screen and (max-width: 767.98px) {
  .initiative-thumb { width: 100px; }
  .initiative-title { font-size: 0.13rem; }
  .initiative-text { display: none; }
  .initiative-read-more { margin-top: 0.04rem; font-size: 0.1rem; }
}

/* Facility gallery: main + thumbs */
.facility-gallery-main { margin-bottom: 0.08rem; overflow: hidden; }
.facility-gallery-main img { width: 100%; aspect-ratio: 3/2; object-fit: cover; display: block; }
.facility-caption {
  text-align: center;
  font-size: 0.12rem;
  color: #666;
  margin: 0.06rem 0 0.1rem;
  letter-spacing: 0.05em;
}
.facility-gallery-thumbs { overflow: hidden; }
.facility-gallery-thumbs .swiper-slide {
  cursor: pointer;
  opacity: 0.5;
  border: 2px solid transparent;
  box-sizing: border-box;
  transition: opacity .2s, border-color .2s;
}
.facility-gallery-thumbs .swiper-slide-thumb-active {
  opacity: 1;
  border-color: var(--color-primary);
}
.facility-gallery-thumbs img { width: 100%; aspect-ratio: 3/2; object-fit: cover; display: block; }
.facility-tags { display: flex; flex-wrap: wrap; gap: 0.06rem; margin-top: 0.15rem; }
.facility-tag { display: inline-block; background: var(--color-accent-bg); border: 1px solid var(--color-accent); padding: 0.04rem 0.12rem; border-radius: 2px; font-size: 0.11rem; color: var(--color-accent-dark); letter-spacing: 0.05em; }

/* Facility grid (PC: grid, Mobile: horizontal scroll) */
.facility-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
}
.facility-grid-item {
  cursor: pointer;
  overflow: hidden;
  border-radius: 4px;
}
.facility-grid-item img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  display: block;
  transition: opacity 0.15s;
}
@media (hover: hover) and (pointer: fine) {
  .facility-grid-item:hover img { opacity: 0.8; }
}

@media only screen and (max-width: 767.98px) {
  .facility-grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 8px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 4px;
  }
  .facility-grid::-webkit-scrollbar { display: none; }
  .facility-grid-item {
    flex: 0 0 75%;
    scroll-snap-align: center;
  }
}

/* Lightbox */
.facility-lightbox {
  display: none;
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 9999;
  align-items: center;
  justify-content: center;
}
.facility-lightbox.is-open {
  display: flex;
}
.lb-overlay {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.85);
}
.lb-content {
  position: relative;
  max-width: 90vw;
  max-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lb-image {
  max-width: 85vw;
  max-height: 80vh;
  object-fit: contain;
  display: block;
  border-radius: 4px;
}
.lb-close {
  position: fixed;
  top: 16px; right: 20px;
  background: none;
  border: none;
  color: #fff;
  font-size: 36px;
  cursor: pointer;
  z-index: 10;
  line-height: 1;
  padding: 8px;
}
.lb-prev,
.lb-next {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255,255,255,0.15);
  border: none;
  color: #fff;
  font-size: 32px;
  line-height: 1;
  cursor: pointer;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  padding: 0 0 2px 0;
}
.lb-prev { left: 16px; }
.lb-next { right: 16px; }
@media (hover: hover) and (pointer: fine) {
  .lb-prev:hover, .lb-next:hover { background: rgba(255,255,255,0.3); }
  .lb-close:hover { color: #ccc; }
}
.lb-caption {
  position: fixed;
  bottom: 48px;
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  font-size: 14px;
  letter-spacing: 0.05em;
  text-align: center;
}
.lb-counter {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,0.5);
  font-size: 12px;
  font-family: 'Lato', sans-serif;
}

/* Seminar / tour section */
.tour-box { padding: 0.2rem 0; border-bottom: 0.01rem solid #F1F1F1; }
.tour-box .box-title { font-size: 0.16rem; font-weight: bold; color: #333; margin-bottom: 0.15rem; letter-spacing: 0.05em; }
.tour-box .box-note { font-size: 0.12rem; color: #999; line-height: 1.87; margin-top: 0.12rem; letter-spacing: 0.05em; }
/* Requirement tags */
.req-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.req-tag {
  display: inline-block;
  padding: 4px 12px;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary);
  background: rgba(232,116,30,0.08);
  border: 1px solid rgba(232,116,30,0.25);
  border-radius: 20px;
  letter-spacing: 0.02em;
}

/* Salary accordion in 募集要項 */
.salary-highlights {
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--color-primary) !important;
  margin: 6px 0 8px !important;
  letter-spacing: 0.02em !important;
}
.salary-details {
  margin-top: 10px !important;
  border: 1px solid #EBE7E2 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
}
.salary-details summary {
  padding: 10px 14px !important;
  font-size: 0.92em !important;
  font-weight: 600 !important;
  color: #555 !important;
  cursor: pointer !important;
  background: #FAF9F7 !important;
  list-style: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  transition: background 0.2s !important;
}
.salary-details summary::-webkit-details-marker { display: none !important; }
.salary-details summary::after {
  content: "▼" !important;
  font-size: 10px !important;
  color: #aaa !important;
  transition: transform 0.3s !important;
}
.salary-details[open] summary::after {
  transform: rotate(180deg) !important;
}
.salary-details summary:hover { background: #F5F3F0 !important; }
.salary-details-body {
  padding: 14px !important;
  font-size: 0.92em !important;
  line-height: 1.8 !important;
  color: #555 !important;
  border-top: 1px solid #EBE7E2 !important;
}
.salary-details-body .block-title {
  font-weight: 700 !important;
  color: #333 !important;
  margin-top: 12px !important;
  margin-bottom: 4px !important;
}
.salary-details-body .block-title:first-child { margin-top: 0 !important; }
.salary-details-body p { margin: 0 0 8px !important; }

.tour-buttons { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-top: 0.18rem; }
.tour-buttons .btn-common { min-width: 200px; text-align: center; }
.tour-phone-link {
  display: inline-block !important;
  font-size: 13px !important;
  color: #666 !important;
  text-decoration: underline !important;
  white-space: nowrap !important;
  padding: 4px 0 !important;
  letter-spacing: 0.02em !important;
  text-align: center !important;
}
.tour-phone-link:hover {
  color: var(--color-primary) !important;
}

.online-box { padding: 0.2rem 0 0; }
.online-box .box-title { font-size: 0.16rem; font-weight: bold; color: #333; margin-bottom: 0.15rem; letter-spacing: 0.05em; }

@media only screen and (max-width: 767.98px) {
  .work-cards { flex-direction: column; gap: 0.1rem; }
  .work-card { display: flex; gap: 0.12rem; align-items: flex-start; min-width: 0; }
  .work-card .card-icon { margin-bottom: 0; flex-shrink: 0; }
  .work-card .card-content { flex: 1; }
  .director-profile { gap: 0.14rem; }
  .director-body .body-quote { font-size: 0.14rem; }
  .insta-grid { grid-template-columns: repeat(3, 1fr); }
  .interview-card { flex-direction: row; align-items: flex-start; gap: 12px; }
  .interview-photo { width: 108px; }
  .interview-photo img { width: 108px; height: 108px; }
  .facility-gallery { flex-direction: column; }
  .schedule-item .item-time { min-width: 45px; font-size: 0.11rem; }
}

/* パンくず（実HTMLは ol.breadcrumb-list — wrapper/item 用セレクタは未使用のためここで統一） */
.breadcrumb {
  padding: 0.18rem 0 !important;
  overflow: hidden;
}
.breadcrumb .breadcrumb-list {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  gap: 0;
}
.breadcrumb .breadcrumb-list::-webkit-scrollbar {
  display: none;
}
.breadcrumb .breadcrumb-list > li {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding-right: 0.34rem;
  font-size: 0.12rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #333;
  white-space: nowrap;
  background: url("../img/common/icon-arrow-breadcrumb.svg") right 0.14rem top 55% / 0.05rem auto no-repeat;
}
.breadcrumb .breadcrumb-list > li:last-child {
  background: none;
  padding-right: 0;
}
.breadcrumb .breadcrumb-list > li a {
  font-size: inherit !important;
  line-height: inherit;
  letter-spacing: inherit;
  color: #333 !important;
  white-space: nowrap;
}
.breadcrumb .breadcrumb-list > li a:hover {
  color: var(--color-primary) !important;
  text-decoration: underline;
}
@media only screen and (max-width: 767.98px) {
  .breadcrumb {
    padding: 0.14rem 0 !important;
  }
  .breadcrumb .breadcrumb-list > li {
    font-size: 0.11rem;
    padding-right: 0.23rem;
    background-position: right 0.09rem top 55%;
    background-size: 0.04rem auto;
  }
}

/* Detail FV: PC用のヒーローレイアウトは上部で Grid 定義済み */

/* PC: narrow content & offset for left nav */
@media print, (min-width: 768px) {
  .section-job-detail .wrapper-inner,
  .section-job-flow .wrapper {
    max-width: 800px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .detail-cta-bar {
    max-width: 100% !important;
    width: 100% !important;
  }
  .detail-cta-bar .wrapper {
    max-width: 800px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* ============================================
   Mobile section tab bar
   ============================================ */
/* Mobile section tab bar */
.mobile-section-tabs {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 200;
  background: #fff;
  box-shadow: 0 1px 6px rgba(0,0,0,.08);
  transform: translateY(-100%);
  transition: transform .3s cubic-bezier(.4,0,.2,1);
  will-change: transform;
}
.mobile-section-tabs.is-visible {
  transform: translateY(0);
}
@media only screen and (max-width: 767.98px) {
  .mobile-section-tabs { display: block; }
}

/* Progress bar inside tab bar */
.mob-progress {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: #f0eee9;
  z-index: 1;
}
.mob-progress-bar {
  height: 100%;
  width: 0%;
  background: var(--color-primary);
  transition: width .05s linear;
}

/* Tab scroll container */
.mobile-tabs-inner {
  display: flex;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  gap: 0;
  padding: 0 4px;
}
.mobile-tabs-inner::-webkit-scrollbar { display: none; }

/* Individual tabs */
.mob-tab {
  flex-shrink: 0;
  padding: 11px 14px;
  font-size: 12px;
  font-weight: 500;
  color: #999;
  text-decoration: none;
  white-space: nowrap;
  position: relative;
  letter-spacing: 0.03em;
  transition: color .2s;
}
.mob-tab.is-active {
  color: var(--color-primary);
  font-weight: 700;
}
.mob-tab.is-active::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 8px;
  right: 8px;
  height: 2px;
  background: var(--color-primary);
  border-radius: 1px;
}

/* Page left nav (PC only, wide screens) */
.page-left-nav {
  display: none;
}
@media print, (min-width: 1200px) {
  .page-left-nav {
    display: block;
    position: fixed;
    left: calc((100vw - 800px) / 2 - 220px);
    top: 50%;
    transform: translateY(-50%);
    z-index: 100;
    width: 190px;
  }
  .page-left-nav ul {
    list-style: none;
    margin: 0;
    padding: 20px 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    background: rgba(255,255,255,0.95);
    border-radius: 4px;
    box-shadow: 0 2px 16px rgba(0,0,0,0.06);
    backdrop-filter: blur(6px);
  }
  .page-left-nav li {
    border-left: 3px solid transparent;
  }
  .page-left-nav li.is-active {
    border-left-color: var(--color-primary);
    background: rgba(232,116,30,0.04);
  }
  .page-left-nav a {
    display: block;
    padding: 12px 20px;
    font-size: 14px;
    font-weight: 500;
    color: #999;
    text-decoration: none;
    letter-spacing: 0.03em;
    line-height: 1.5;
    transition: color .2s;
    white-space: nowrap;
  }
  .page-left-nav li.is-active a {
    color: #333;
    font-weight: 700;
  }
  .page-left-nav a:hover {
    color: #555;
  }
}

/* Nearby / other card title: smaller */
.nearby-item .item-title {
  font-size: 0.13rem !important;
  line-height: 1.5 !important;
}

/* Header logo - use as-is (local PNG) */
.header-logo img {
  filter: none !important;
}

/* Header mobile: menu icon bigger, search button left */
@media only screen and (max-width: 767.98px) {
  .header .btn-menu {
    width: 44px !important;
    height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
  }
  .header .btn-menu img {
    width: 28px !important;
    height: auto !important;
  }
  .header .btn-search {
    margin-right: auto !important;
    margin-left: 0 !important;
    position: relative;
    right: auto;
    width: auto !important;
    height: 0.36rem !important;
    font-size: 0.12rem !important;
    padding: 0 0.16rem !important;
    border-radius: 0.18rem !important;
    white-space: nowrap !important;
  }
  .header .wrapper {
    gap: 8px;
  }
}

/* ============================================
   Header LINE button
   ============================================ */
.header-line-btn {
  display: none !important;
}
.header-line-btn--DISABLED {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 16px;
  background: #06C755;
  color: #fff !important;
  font-size: 13px;
  font-weight: 700;
  border-radius: 6px;
  text-decoration: none;
  letter-spacing: 0.04em;
  transition: opacity 0.2s;
}
.header-line-btn:hover {
  opacity: 0.85;
}
.header-line-btn svg {
  flex-shrink: 0;
}
@media (max-width: 767px) {
  .header-line-btn {
    display: none;
  }
}

.navbar-line-btn-legacy {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 24px;
  background: #06C755;
  color: #fff !important;
  font-size: 13px;
  font-weight: 700;
  border-radius: 50px;
  text-decoration: none;
  letter-spacing: 0.04em;
  margin-bottom: 12px;
}
.navbar-footer {
  text-align: center !important;
}
.navbar-line-btn svg {
  width: 18px;
  height: 18px;
}
.navbar-line-btn:hover {
  opacity: 0.85;
}
.navbar-line-btn svg {
  flex-shrink: 0;
}

/* ============================================
   Header contact - black text
   ============================================ */

.header .header-contact {
  display: none !important;
}
.header .contact-text {
  color: #333 !important;
  text-align: left !important;
}

.header .contact-phone {
  color: #333 !important;
  background: none !important;
  padding-left: 0.3rem !important;
  position: relative !important;
  text-align: left !important;
}
.header .contact-phone::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 0.25rem;
  height: 0.18rem;
  background-color: var(--color-primary);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M6.62 10.79a15.05 15.05 0 006.59 6.59l2.2-2.2a1 1 0 011.01-.24 11.36 11.36 0 003.58.57 1 1 0 011 1V20a1 1 0 01-1 1A17 17 0 013 4a1 1 0 011-1h3.5a1 1 0 011 1 11.36 11.36 0 00.57 3.58 1 1 0 01-.25 1.01l-2.2 2.2z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M6.62 10.79a15.05 15.05 0 006.59 6.59l2.2-2.2a1 1 0 011.01-.24 11.36 11.36 0 003.58.57 1 1 0 011 1V20a1 1 0 01-1 1A17 17 0 013 4a1 1 0 011-1h3.5a1 1 0 011 1 11.36 11.36 0 00.57 3.58 1 1 0 01-.25 1.01l-2.2 2.2z'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* ============================================
   Filter count - original green/teal restored
   ============================================ */

.section-top-filter .filter-count {
  background-color: #6AC7BF !important;
}

/* ============================================
   Filter icons & scroll-top - orange tint
   ============================================ */

/* ============================================
   募集職種：エディトリアル（非インタラクティブ／カード・影なし）
   ============================================ */
.section-top-job--recruit .job-type-editorial {
  max-width: min(100%, 900px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 4px !important;
  box-sizing: border-box !important;
}

.section-top-job--recruit .job-list--editorial {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  gap: 0 !important;
  /* rem は html の vw 連動（1rem≈100px）のため clamp 内では px+vw を使用 */
  margin: clamp(40px, 6vw, 60px) 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.section-top-job--recruit .job-item--editorial {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

/* 行：グリッド・アシンメトリー・クリック不可の見た目 */
.section-top-job--recruit .job-editorial-row {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr) !important;
  gap: clamp(28px, 4vw, 56px) !important;
  align-items: start !important;
  padding: clamp(36px, 5vw, 64px) 0 !important;
  margin: 0 !important;
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  cursor: default !important;
}

.section-top-job--recruit .job-item--editorial:nth-child(even) .job-editorial-row {
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr) !important;
}

.section-top-job--recruit .job-item--editorial:nth-child(even) .job-editorial-figure {
  grid-column: 2 !important;
  grid-row: 1 !important;
}

.section-top-job--recruit .job-item--editorial:nth-child(even) .job-editorial-copy {
  grid-column: 1 !important;
  grid-row: 1 !important;
  text-align: left !important;
}

.section-top-job--recruit .job-item--editorial:nth-child(even) .job-editorial-desc,
.section-top-job--recruit .job-item--editorial:nth-child(even) .job-editorial-title {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.section-top-job--recruit .job-item--editorial:nth-child(even) .job-editorial-rule {
  margin-left: 0 !important;
  margin-right: auto !important;
}

/* 連番デコは非表示（以前の ::before 大数字） */
.section-top-job--recruit .job-editorial-row::before {
  content: none !important;
  display: none !important;
}

/* PC：奇数行＝ブロック全体を右寄せ、偶数行＝左寄せ（非対称のリズム） */
@media (min-width: 768px) {
  .section-top-job--recruit .job-item--editorial:nth-child(odd) .job-editorial-row {
    margin-left: auto !important;
    margin-right: 0 !important;
    max-width: min(100%, 820px) !important;
  }
  .section-top-job--recruit .job-item--editorial:nth-child(even) .job-editorial-row {
    margin-left: 0 !important;
    margin-right: auto !important;
    max-width: min(100%, 820px) !important;
  }

  /* 写真と見出しのすき間・職種ブロック間の縦余白を詰める。本文を画像の縦中央に */
  .section-top-job--recruit .job-editorial-row {
    gap: clamp(16px, 2vw, 32px) !important;
    padding: clamp(18px, 2.4vw, 36px) 0 !important;
    align-items: center !important;
  }
  .section-top-job--recruit .job-list--editorial {
    margin: clamp(24px, 3.5vw, 42px) 0 0 !important;
  }
  .section-top-job--recruit .job-editorial-copy {
    padding-top: 0 !important;
    align-self: center !important;
  }
}

.section-top-job--recruit .job-editorial-figure {
  position: relative !important;
  z-index: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  box-shadow: none !important;
  max-width: min(100%, 320px) !important;
}

.section-top-job--recruit .job-item--editorial:nth-child(even) .job-editorial-figure {
  margin-left: 0 !important;
  margin-right: auto !important;
  justify-self: start !important;
}

.section-top-job--recruit .job-editorial-img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 5 / 4 !important;
  object-fit: cover !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 58% 42% 48% 52% / 46% 44% 56% 52% !important;
  filter: saturate(0.94) contrast(0.98) !important;
  -webkit-mask-image: radial-gradient(ellipse 82% 88% at 50% 46%, #000 58%, transparent 100%) !important;
  mask-image: radial-gradient(ellipse 82% 88% at 50% 46%, #000 58%, transparent 100%) !important;
}

.section-top-job--recruit .job-editorial-copy {
  position: relative !important;
  z-index: 1 !important;
  min-width: 0 !important;
  padding-top: clamp(4px, 1vw, 12px) !important;
}

.section-top-job--recruit .job-editorial-title {
  margin: 0 0 10px !important;
  padding: 0 !important;
  border: none !important;
  font-family: inherit !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  line-height: 1.4 !important;
  color: var(--color-text) !important;
}

@media (min-width: 768px) {
  .section-top-job--recruit .job-editorial-title {
    font-size: 19px !important;
  }
}

.section-top-job--recruit .job-editorial-desc {
  margin: 0 !important;
  padding: 0 !important;
  max-width: 36em !important;
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.85 !important;
  letter-spacing: 0.05em !important;
  color: #666 !important;
}

/* 繊細な区切り（横ライン） */
.section-top-job--recruit .job-editorial-rule {
  width: 48px !important;
  height: 1px !important;
  margin: 26px 0 0 !important;
  border: none !important;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(242, 139, 48, 0.35) 45%,
    transparent 100%
  ) !important;
}

.section-top-job--recruit .job-item--editorial:nth-child(even) .job-editorial-rule {
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(242, 139, 48, 0.35) 45%,
    transparent 100%
  ) !important;
}

@media only screen and (max-width: 767.98px) {
  /* 偶数行は desktop 用の 2 カラム指定の詳細度が高く、ここで必ず 1 カラムに戻す */
  .section-top-job--recruit .job-item--editorial:nth-child(odd) .job-editorial-row,
  .section-top-job--recruit .job-item--editorial:nth-child(even) .job-editorial-row {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    padding: 28px 0 !important;
  }

  /* 奇数：画像＋テキストを右側にまとめる（本文は読みやすく左揃えのまま） */
  .section-top-job--recruit .job-item--editorial:nth-child(odd) .job-editorial-row {
    justify-items: end !important;
  }
  .section-top-job--recruit .job-item--editorial:nth-child(odd) .job-editorial-figure,
  .section-top-job--recruit .job-item--editorial:nth-child(odd) .job-editorial-copy {
    grid-column: 1 !important;
    grid-row: auto !important;
    justify-self: end !important;
    width: min(100%, 300px) !important;
    max-width: min(100%, 300px) !important;
    text-align: left !important;
  }

  /* 偶数：左寄せ */
  .section-top-job--recruit .job-item--editorial:nth-child(even) .job-editorial-row {
    justify-items: start !important;
  }
  .section-top-job--recruit .job-item--editorial:nth-child(even) .job-editorial-figure,
  .section-top-job--recruit .job-item--editorial:nth-child(even) .job-editorial-copy {
    grid-column: 1 !important;
    grid-row: auto !important;
    text-align: left !important;
    justify-self: start !important;
    width: min(100%, 300px) !important;
    max-width: min(100%, 300px) !important;
  }

  .section-top-job--recruit .job-item--editorial:nth-child(even) .job-editorial-desc,
  .section-top-job--recruit .job-item--editorial:nth-child(even) .job-editorial-title {
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
  }

  .section-top-job--recruit .job-item--editorial:nth-child(odd) .job-editorial-desc,
  .section-top-job--recruit .job-item--editorial:nth-child(odd) .job-editorial-title {
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
  }

  .section-top-job--recruit .job-item--editorial:nth-child(even) .job-editorial-rule {
    margin-left: 0 !important;
    margin-right: auto !important;
  }

  .section-top-job--recruit .job-item--editorial:nth-child(odd) .job-editorial-rule {
    margin-left: 0 !important;
    margin-right: auto !important;
  }

  .section-top-job--recruit .job-editorial-figure {
    width: 100% !important;
    max-width: min(100%, 300px) !important;
  }

  .section-top-job--recruit .job-editorial-copy {
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }

  .section-top-job--recruit .job-editorial-desc {
    max-width: 100% !important;
    font-size: 12.5px !important;
    line-height: 1.75 !important;
  }
}

/* TOP：募集職種セクション全体 */
body.is-top #sec-jobtype.section-top-job--recruit {
  background-color: #fafaf8 !important;
  background-image: none !important;
}

@media (min-width: 768px) {
  body.is-top #sec-jobtype.section-top-job--recruit {
    padding-top: 72px !important;
    padding-bottom: 72px !important;
  }
}

/* 他セクションの body.is-top .common-title と同じ英字・日本語見出しトーンに揃える */
body.is-top #sec-jobtype .job-type-section-heading.common-title .text-en {
  display: block !important;
  font-family: 'Lato', sans-serif !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.25em !important;
  color: var(--color-text-sub) !important;
  text-transform: uppercase !important;
  margin-bottom: 10px !important;
}

body.is-top #sec-jobtype .job-type-section-heading.common-title .text-jp {
  display: block !important;
  font-family: inherit !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  line-height: 1.4 !important;
  color: var(--color-text) !important;
}

body.is-top #sec-jobtype .job-type-section-heading.common-title {
  margin-bottom: 36px !important;
}

@media only screen and (max-width: 767.98px) {
  body.is-top #sec-jobtype .job-type-section-heading.common-title .text-jp {
    font-size: 17px !important;
    letter-spacing: 0.04em !important;
  }
}

@media (min-width: 768px) {
  body.is-top #sec-jobtype .job-type-section-heading.common-title {
    margin-bottom: 36px !important;
  }
  body.is-top #sec-jobtype .job-type-section-heading.common-title .text-en {
    font-size: 11px !important;
    letter-spacing: 0.28em !important;
    margin-bottom: 12px !important;
  }
  body.is-top #sec-jobtype .job-type-section-heading.common-title .text-jp {
    font-size: 32px !important;
    letter-spacing: 0.06em !important;
  }
}

body.is-top #sec-jobtype .section-top-job-search {
  margin-top: clamp(32px, 5vw, 48px) !important;
}

@media (min-width: 768px) {
  body.is-top #sec-jobtype .section-top-job-search {
    margin-top: clamp(28px, 4vw, 44px) !important;
  }
}

/* link-common buttons (掲示板一覧など) */
.link-common {
  color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  filter: hue-rotate(-140deg) saturate(1.8) !important;
}

.link-common:hover {
  color: var(--color-primary-dark) !important;
}

/* Q icon in QA sections */
.section-top-qa .heading-content::before,
.list-qa .qa-label.is-q,
.qa-common .heading-content::before,
.section-faq .heading-content::before {
  color: var(--color-primary) !important;
}
/* FAQ question & answer text size */
.section-faq .heading-content {
  font-size: 16px !important;
  line-height: 1.6 !important;
  /* Q（::before）を絶対座標ではなく flex で並べ、本文と縦位置を揃える */
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 10px !important;
  padding-left: 0 !important;
}
.section-faq .heading-content::before {
  position: static !important;
  flex: 0 0 auto !important;
  top: auto !important;
  left: auto !important;
  padding-bottom: 0 !important;
  line-height: 1 !important;
}
.section-faq .heading-content::after {
  top: 50% !important;
  transform: translateY(-50%) rotate(180deg) !important;
}
.section-faq .qa-block.is-active .heading-content::after,
.section-faq .js-accordion-block.is-active .heading-content::after {
  transform: translateY(-50%) rotate(0) !important;
}
.section-faq .block-content {
  font-size: 15px !important;
  line-height: 1.8 !important;
}
@media only screen and (max-width: 767.98px) {
  .section-faq .page-title {
    font-size: 18px;
    line-height: 1.4;
  }
  .section-faq .heading-content {
    font-size: 15px !important;
  }
  .section-faq .block-content {
    font-size: 14px !important;
    line-height: 1.75 !important;
  }
}

/* News/topic labels */
.item-label,
.news-label,
.section-news-list .news-category,
.section-news-detail .detail-category {
  background-color: var(--color-primary) !important;
  color: #fff !important;
}

/* Filter inner - remove all borders */
.section-top-filter .filter-inner {
  border: none !important;
  border-top: none !important;
  border-bottom: none !important;
  border-left: none !important;
  border-right: none !important;
}
.section-top-filter .filter-inner::before,
.section-top-filter .filter-inner::after {
  display: none !important;
  border: none !important;
}
.section-top-filter .filter-heading {
  border: none !important;
  border-top: none !important;
  border-bottom: none !important;
}
.section-top-filter .filter-heading::before,
.section-top-filter .filter-heading::after {
  display: none !important;
}
.section-top-filter .filter-title {
  color: var(--color-primary) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F28B30' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.5' cy='10.5' r='7'/%3E%3Cline x1='21' y1='21' x2='15.5' y2='15.5'/%3E%3C/svg%3E") !important;
}
.section-top-filter .filter-title::before,
.section-top-filter .filter-title img,
.section-top-filter .filter-heading img,
.section-top-filter h2.filter-title::before {
  filter: hue-rotate(-140deg) saturate(1.8) brightness(1.1) !important;
}
.section-top-filter .filter-title svg,
.section-top-filter .filter-heading svg {
  color: var(--color-primary) !important;
  fill: var(--color-primary) !important;
}
.section-top-filter .filter-list li {
  border-bottom: 1px solid #ddd !important;
}
.section-top-filter .filter-list li:last-child {
  border-bottom: none !important;
}

/* Filter item dropdown arrows / select icons */
.section-top-filter .filter-item::after,
.section-top-filter .filter-item .item-content::after {
  filter: hue-rotate(-140deg) saturate(1.8) brightness(1.1) !important;
}

/* Filter search button icon area */
.section-top-filter .filter-result {
  filter: hue-rotate(-140deg) saturate(1.5) !important;
}

/* FAQ/accordion arrow icons - orange */
.section-top-qa .heading-content::after,
.qa-common .block-heading::after,
.section-top-qa .js-accordion-heading::after,
.section-faq .heading-content::after,
.section-faq .js-accordion-heading::after {
  filter: hue-rotate(-140deg) saturate(1.8) !important;
}

/* TOP QA & News text size */
.section-top-qa .heading-content {
  font-size: 15px !important;
  line-height: 1.6 !important;
}
.section-top-qa .block-content {
  font-size: 14px !important;
  line-height: 1.75 !important;
}
.section-top-news .item-text {
  font-size: 15px !important;
  line-height: 1.6 !important;
}
@media only screen and (max-width: 767.98px) {
  .section-top-qa .heading-content {
    font-size: 14px !important;
  }
  .section-top-qa .block-content {
    font-size: 13px !important;
  }
  .section-top-news .item-text {
    font-size: 14px !important;
  }
}

/* Inline links in content areas (QA answers, detail body, etc.) */
.section-top-qa .block-content a,
.qa-common .block-content a,
.section-faq-list .block-content a,
.list-qa .qa-answer a,
.content-body a,
.section-news-detail .detail-body a,
.section-policy-content a,
.block-content a {
  color: var(--color-primary) !important;
}

.section-top-qa .block-content a:hover,
.qa-common .block-content a:hover,
.block-content a:hover {
  color: var(--color-primary-dark) !important;
}

/* Arrow icon next to QA links - override background SVG */
.section-top-qa .block-content a,
.qa-common .block-content a {
  background-image: none !important;
  padding-right: 0.18rem !important;
  position: relative !important;
}

.section-top-qa .block-content a::after,
.qa-common .block-content a::after {
  content: ">" !important;
  display: inline-block !important;
  margin-left: 0.06rem !important;
  color: var(--color-primary) !important;
  font-weight: bold !important;
}

/* Search icon in filter heading - covered above */

.section-top-filter .filter-item img,
.section-top-filter .item-content img {
  filter: hue-rotate(-140deg) saturate(1.8) brightness(1.1) !important;
}

.btn-scroll-top img,
.btn-scroll-top .scroll-to-top {
  filter: hue-rotate(-140deg) saturate(1.5) !important;
}


.section-job-detail .table-contact .contact-link {
  color: var(--color-primary) !important;
}

/* ===== Detail Job Cards: この施設の他の求人・近隣施設の求人 ===== */
.detail-job-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}
@media (min-width: 768px) {
  .detail-job-cards {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
}
.detail-job-card {
  display: flex !important;
  flex-direction: column;
  gap: 0;
  padding: 14px 16px;
  border-radius: 6px;
  background: #fff;
  text-decoration: none !important;
  color: #333 !important;
  position: relative;
  border: 1px solid #eae7e3;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.detail-job-card:hover {
  border-color: var(--color-primary);
  box-shadow: 0 3px 12px rgba(0,0,0,0.07);
}
.djc-heading {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-bottom: 6px;
  line-height: 1.45;
}
.djc-emp {
  font-size: 10px;
  font-weight: 600;
  color: var(--color-primary) !important;
  letter-spacing: 0.06em;
  flex-shrink: 0;
}
.djc-title {
  font-size: 14px;
  font-weight: 700;
  color: #333 !important;
  line-height: 1.45;
}
.detail-job-card:hover .djc-title {
  color: var(--color-primary) !important;
}
.djc-salary {
  font-size: 12px;
  font-family: 'Lato', 'Noto Sans JP', sans-serif;
  color: #666 !important;
  font-weight: 500;
  letter-spacing: 0.01em;
}
.djc-arrow {
  position: absolute;
  right: 14px;
  top: 50%;
  width: 7px;
  height: 7px;
  border-right: 2px solid #ccc;
  border-bottom: 2px solid #ccc;
  transform: translateY(-50%) rotate(-45deg);
  transition: border-color 0.2s, right 0.2s;
}
.detail-job-card:hover .djc-arrow {
  border-color: var(--color-primary);
  right: 12px;
}

.nearby-facility-block {
  margin-bottom: 18px;
}
.nearby-facility-block:last-child {
  margin-bottom: 0;
}
.nearby-facility-block-header {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
  padding-bottom: 8px;
  margin-bottom: 10px;
  border-bottom: 1px solid #ebe8e4;
}
.nfb-label {
  font-size: 10px;
  font-weight: 700;
  color: var(--color-primary);
  border: 1.5px solid var(--color-primary);
  border-radius: 3px;
  padding: 1px 7px;
  letter-spacing: 0.06em;
  flex-shrink: 0;
}
.nfb-name {
  font-size: 14px;
  font-weight: 600;
  color: #333;
  line-height: 1.4;
}
.nfb-addr {
  flex: 1 0 100%;
  font-size: 11px;
  color: #9a928a;
  margin-top: 2px;
}

@media only screen and (max-width: 767.98px) {
  .detail-job-card {
    padding: 12px 14px;
    padding-right: 32px;
  }
  .djc-heading {
    gap: 5px;
  }
  .djc-title {
    font-size: 13px;
  }
  .djc-salary {
    font-size: 11px;
  }
  .djc-arrow {
    width: 6px;
    height: 6px;
    right: 12px;
  }
}

/* ===== Vertical Job List：求人詳細ページ下部のみ（一覧のカードとは分離） ===== */
#section-job-other .job-list-vertical,
#section-job-nearby .job-list-vertical {
  display: flex;
  flex-direction: column;
}

#section-job-other a.job-list-row,
#section-job-other a.job-list-row:link,
#section-job-other a.job-list-row:visited,
#section-job-other a.job-list-row:hover,
#section-job-other a.job-list-row:active,
#section-job-nearby a.job-list-row,
#section-job-nearby a.job-list-row:link,
#section-job-nearby a.job-list-row:visited,
#section-job-nearby a.job-list-row:hover,
#section-job-nearby a.job-list-row:active,
.section-job.is-list a.job-list-row,
.section-job.is-list a.job-list-row:link,
.section-job.is-list a.job-list-row:visited,
.section-job.is-list a.job-list-row:hover,
.section-job.is-list a.job-list-row:active {
  display: grid !important;
  grid-template-columns: auto 1fr auto;
  align-items: baseline;
  gap: 0 12px;
  padding: 14px 0;
  border-bottom: 1px solid #f0eeeb;
  text-decoration: none !important;
  color: #333 !important;
  line-height: 1.5;
  position: relative;
  background: none !important;
  background-image: none !important;
}

#section-job-other a.job-list-row .row-emp,
#section-job-nearby a.job-list-row .row-emp,
.section-job.is-list a.job-list-row .row-emp {
  grid-column: 1;
  grid-row: 1 / 3;
  align-self: center;
  font-size: 10.5px;
  color: #9a8e82 !important;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

#section-job-other a.job-list-row .row-type,
#section-job-nearby a.job-list-row .row-type,
.section-job.is-list a.job-list-row .row-type {
  grid-column: 2;
  grid-row: 1;
  font-size: 13.5px;
  font-weight: 600;
  color: #333 !important;
  min-width: 0;
}

#section-job-other a.job-list-row .row-salary,
#section-job-nearby a.job-list-row .row-salary,
.section-job.is-list a.job-list-row .row-salary {
  grid-column: 2;
  grid-row: 2;
  font-size: 12px;
  font-family: 'Lato', 'Noto Sans JP', sans-serif;
  color: #7a7268 !important;
  margin-top: 2px;
  letter-spacing: 0.02em;
}

#section-job-other a.job-list-row::after,
#section-job-nearby a.job-list-row::after,
.section-job.is-list a.job-list-row::after {
  content: "詳細を見る ›" !important;
  grid-column: 3;
  grid-row: 1 / 3;
  align-self: center;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: var(--color-primary) !important;
  white-space: nowrap;
  border: 1.5px solid var(--color-primary) !important;
  border-radius: 100px;
  padding: 7px 16px !important;
  background: #fff !important;
  background-image: none !important;
  transform: none;
  width: auto;
  height: auto;
  letter-spacing: 0.04em;
}

@media (hover: hover) and (pointer: fine) {
  #section-job-other a.job-list-row:hover .row-type,
  #section-job-nearby a.job-list-row:hover .row-type,
  .section-job.is-list a.job-list-row:hover .row-type {
    color: var(--color-primary) !important;
  }
  #section-job-other a.job-list-row:hover::after,
  #section-job-nearby a.job-list-row:hover::after,
  .section-job.is-list a.job-list-row:hover::after {
    background: var(--color-primary) !important;
    color: #fff !important;
    border-color: var(--color-primary) !important;
  }
}
#section-job-other a.job-list-row:active .row-type,
#section-job-nearby a.job-list-row:active .row-type,
.section-job.is-list a.job-list-row:active .row-type {
  color: var(--color-primary) !important;
}
#section-job-other a.job-list-row:active::after,
#section-job-nearby a.job-list-row:active::after,
.section-job.is-list a.job-list-row:active::after {
  background: var(--color-primary) !important;
  color: #fff !important;
  border-color: var(--color-primary) !important;
}

/* ===== Nearby Facility Group ===== */
.nearby-facility-list {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 0;
  border: none !important;
  box-shadow: none !important;
  background: none !important;
}

.facility-group-header {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: 4px;
  padding: 8px 0 8px 14px;
  border-left: 3px solid var(--color-primary) !important;
  border-bottom: none !important;
  margin-bottom: 12px;
  border-bottom: 2px solid #333;
  margin-bottom: 0;
}
.facility-group-info {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
  min-width: 0;
}
.facility-group-label {
  font-size: 10px !important;
  font-weight: 700 !important;
  color: var(--color-primary) !important;
  border: 1.5px solid var(--color-primary);
  border-radius: 2px;
  padding: 1px 6px !important;
  letter-spacing: 0.08em;
  line-height: 1.4;
  white-space: nowrap;
  flex-shrink: 0;
}
.facility-group-name {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #333 !important;
  line-height: 1.4 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  background: none !important;
}
.facility-group-addr {
  font-size: 11px !important;
  font-weight: 400 !important;
  color: #9a8e82 !important;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.facility-group-addr::before {
  display: none !important;
}
a.facility-group-link,
a.facility-group-link:link,
a.facility-group-link:visited {
  font-size: 11px !important;
  color: #9a8e82 !important;
  text-decoration: none !important;
  white-space: nowrap;
  flex-shrink: 0;
  background: none !important;
  background-image: none !important;
  letter-spacing: 0.03em;
  padding: 4px 0 !important;
  border-bottom: 1px solid #cbc5bc;
  transition: none;
}
@media (hover: hover) and (pointer: fine) {
  a.facility-group-link:hover {
    color: var(--color-primary) !important;
    border-bottom-color: var(--color-primary) !important;
  }
}

/* 求人詳細：近隣施設のみ — h2「近隣施設の求人」と施設名の役割が被らないよう一段下げる */
#section-job-nearby .facility-group-header {
  border-left: none !important;
  padding: 10px 0 12px 0 !important;
  margin-bottom: 10px !important;
  border-bottom: 1px solid #ebe8e4 !important;
  background: transparent !important;
}
#section-job-nearby .facility-group-name {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #6b6560 !important;
  letter-spacing: 0.03em !important;
  line-height: 1.45 !important;
}
#section-job-nearby .facility-group-label {
  font-size: 9px !important;
  padding: 2px 7px !important;
  border-radius: 3px !important;
  background: #fff8f0 !important;
}
#section-job-nearby .facility-group-addr {
  font-size: 11px !important;
  color: #9a928a !important;
}

/* 求人一覧ページのみ：施設見出しを近隣施設と同じ（左オレンジ縦棒なし） */
.section-job.is-list .compact-job-list .facility-group-header {
  border-left: none !important;
  padding: 10px 0 12px 0 !important;
  margin-bottom: 10px !important;
  border-bottom: 1px solid #ebe8e4 !important;
  background: transparent !important;
}
.section-job.is-list .compact-job-list .facility-group-name {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #333 !important;
  letter-spacing: 0.03em !important;
  line-height: 1.45 !important;
}
.section-job.is-list .compact-job-list .facility-group-label {
  font-size: 9px !important;
  padding: 2px 7px !important;
  border-radius: 3px !important;
  background: #fff8f0 !important;
}
.section-job.is-list .compact-job-list .facility-group-addr {
  font-size: 11px !important;
  color: #9a928a !important;
}

@media only screen and (max-width: 767.98px) {
  /* 詳細ページ下部＆一覧：スマホも横並び＋右側「詳細を見る」 */
  #section-job-other a.job-list-row,
  #section-job-other a.job-list-row:link,
  #section-job-other a.job-list-row:visited,
  #section-job-nearby a.job-list-row,
  #section-job-nearby a.job-list-row:link,
  #section-job-nearby a.job-list-row:visited,
  .section-job.is-list a.job-list-row,
  .section-job.is-list a.job-list-row:link,
  .section-job.is-list a.job-list-row:visited {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: baseline !important;
    gap: 0 !important;
    padding: 12px 0 !important;
    position: relative;
    padding-right: 90px !important;
  }
  #section-job-other a.job-list-row .row-type,
  #section-job-nearby a.job-list-row .row-type,
  .section-job.is-list a.job-list-row .row-type {
    width: 100%;
    font-size: 13px;
    order: 1;
    margin-bottom: 4px;
    font-weight: 600;
  }
  #section-job-other a.job-list-row .row-emp,
  #section-job-nearby a.job-list-row .row-emp,
  .section-job.is-list a.job-list-row .row-emp {
    font-size: 10px;
    order: 2;
    color: #9a8e82 !important;
  }
  #section-job-other a.job-list-row .row-salary,
  #section-job-nearby a.job-list-row .row-salary,
  .section-job.is-list a.job-list-row .row-salary {
    font-size: 11px;
    margin-top: 0;
    margin-left: 8px;
    order: 3;
    color: #7a7268 !important;
    font-weight: 400;
  }
  #section-job-other a.job-list-row::after,
  #section-job-nearby a.job-list-row::after,
  .section-job.is-list a.job-list-row::after {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 11px !important;
    padding: 6px 12px !important;
  }
  .facility-group-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
  .facility-group-info {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
  }
  .facility-group-label {
    flex-shrink: 0;
  }
  .facility-group-name {
    flex: 1;
    min-width: 0;
  }
  .facility-group-addr {
    flex: 1 0 100%;
    display: block;
    margin-left: 0;
    margin-top: 0;
    white-space: normal;
  }
  .facility-group-addr::before {
    display: none;
  }
}

/* ============================================
   Sidebar – Jobs List Page
   ============================================ */

/* Override btn-change to orange theme */
.section-job.is-list .btn-change {
  color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  text-decoration: none !important;
  background-image: none !important;
}
.section-job.is-list .btn-change:hover {
  background-color: var(--color-primary) !important;
  color: #fff !important;
}

/* Detail heading: no bottom border when detail body follows */
.aside-item-heading--detail {
  border-bottom: none !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Detail body under 詳細条件 */
.aside-detail-body {
  padding-top: 0.08rem;
}

/* Accordion groups */
.aside-accordion {
  border-bottom: 1px solid #f1f1f1;
  padding-bottom: 0.1rem;
  margin-bottom: 0.1rem;
}
.aside-accordion:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.aside-accordion-heading {
  font-size: 0.13rem;
  font-weight: bold;
  letter-spacing: 0.04em;
  color: #333;
  margin-bottom: 0.08rem;
  cursor: pointer;
  position: relative;
  padding-right: 0.2rem;
}
.aside-accordion-heading::after {
  content: "";
  display: block;
  width: 0.08rem;
  height: 0.08rem;
  border-right: 2px solid #999;
  border-bottom: 2px solid #999;
  position: absolute;
  right: 0.04rem;
  top: 50%;
  transform: translateY(-70%) rotate(45deg);
  transition: transform 0.3s ease;
}
.aside-accordion.is-open .aside-accordion-heading::after {
  transform: translateY(-30%) rotate(-135deg);
}
.aside-accordion-content {
  display: none;
}
.aside-accordion.is-open .aside-accordion-content {
  display: block;
}

/* Checkbox list */
.aside-checkbox-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.06rem;
}
.aside-checkbox-list li.is-hidden {
  display: none;
}
.aside-checkbox-list li.is-hidden.is-shown {
  display: list-item;
}
.aside-checkbox-list label {
  display: flex;
  align-items: center;
  gap: 0.08rem;
  font-size: 0.12rem;
  letter-spacing: 0.03em;
  color: #333;
  cursor: pointer;
  padding: 0.04rem 0;
}
.aside-checkbox-list input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  border: 2px solid #ccc;
  border-radius: 4px;
  flex-shrink: 0;
  position: relative;
  cursor: pointer;
  transition: all 0.2s ease;
  background: #fff;
}
.aside-checkbox-list input[type="checkbox"]:checked {
  background-color: var(--color-primary);
  border-color: var(--color-primary);
}
.aside-checkbox-list input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 2px;
  width: 5px;
  height: 9px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

/* Toggle more button */
.aside-btn-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  border: none;
  background: none;
  font-size: 0.11rem;
  font-weight: bold;
  letter-spacing: 0.04em;
  color: var(--color-primary);
  cursor: pointer;
  padding: 0.08rem 0 0.02rem;
}
.aside-btn-toggle span {
  position: relative;
  padding-right: 0.18rem;
}
.aside-btn-toggle span::after {
  content: "";
  display: block;
  width: 0.06rem;
  height: 0.06rem;
  border-right: 2px solid var(--color-primary);
  border-bottom: 2px solid var(--color-primary);
  position: absolute;
  right: 0.03rem;
  top: 50%;
  transform: translateY(-70%) rotate(45deg);
  transition: transform 0.3s ease;
}
.aside-btn-toggle.is-expanded span::after {
  transform: translateY(-30%) rotate(-135deg);
}

/* Bottom bar */
.aside-bottom {
  padding-top: 0.15rem;
  border-top: 1px solid #f1f1f1;
  margin-top: 0.1rem;
  text-align: center;
}
.aside-result-count {
  font-size: 0.13rem;
  font-weight: bold;
  letter-spacing: 0.04em;
  color: #333;
  margin-bottom: 0.1rem;
}
.aside-result-count span {
  font-size: 0.2rem;
  font-weight: 700;
  color: var(--color-primary);
  font-family: 'Lato', sans-serif;
  margin: 0 0.04rem;
}
.aside-btn-search {
  display: block;
  width: 100%;
  padding: 0.12rem 0;
  background: var(--color-cta) !important;
  color: #fff !important;
  font-size: 0.12rem;
  font-weight: bold;
  letter-spacing: 0.05em;
  border-radius: 0.06rem;
  text-align: center;
  text-decoration: none !important;
  transition: opacity 0.3s ease;
}
.aside-btn-search:hover {
  opacity: 0.85;
}

/* ============================================
   Search page
   ============================================ */

.section-job.is-search .block-title img,
.section-job.is-search .search-label img {
  filter: hue-rotate(-140deg) saturate(1.5) !important;
}

.section-job.is-search .search-button {
  color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}
.section-job.is-search .search-button svg {
  fill: var(--color-primary);
}

.section-job.is-search .accordion-heading,
.section-job.is-search .block-accordion .accordion-heading,
.section-job.is-search .form-section .accordion-heading.js-accordion-heading,
.section-job .block-accordion .accordion-heading {
  color: var(--color-primary) !important;
}
.section-job.is-search .accordion-heading::after,
.section-job.is-search .block-accordion .accordion-heading::after,
.section-job .block-accordion .accordion-heading::after {
  border-color: var(--color-primary) !important;
}

.sticky-result .result-button.submit-search {
  background-color: var(--color-cta) !important;
  border-color: var(--color-cta) !important;
  color: #fff !important;
}
.sticky-result .result-button.submit-search:hover {
  background-color: var(--color-cta-dark) !important;
}

.sticky-result .result-text .count {
  color: var(--color-primary) !important;
}

.section-job.is-search .form-checkbox:checked {
  background-color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}

.search-category-block {
  margin-bottom: 0;
}
.search-category-block + .search-category-block {
  margin-top: 6px;
}
@media (min-width: 768px) {
  .section-job.is-search .search-block {
    padding: 20px 24px !important;
  }
  .section-job.is-search .form-section {
    padding: 0 !important;
    gap: 0 !important;
  }
  .section-job.is-search .block-title {
    margin-bottom: 12px !important;
    padding-bottom: 10px !important;
  }
  .search-category-block + .search-category-block {
    margin-top: 4px;
  }
  h3.search-category-heading,
  .search-category-heading {
    padding: 8px 14px !important;
    font-size: 12px !important;
  }
}
h3.search-category-heading,
.search-category-heading {
  background-color: #f5f3f0 !important;
  color: #444 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  padding: 10px 40px 10px 14px !important;
  border-radius: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  cursor: pointer !important;
  position: relative !important;
  border: none !important;
  border-bottom: 1px solid #e8e4df !important;
  line-height: 1.3 !important;
}
.search-category-heading .sch-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 22px !important;
  height: 22px !important;
  margin-right: 7px !important;
  flex-shrink: 0 !important;
  color: var(--color-primary) !important;
}
.search-category-heading .sch-icon svg {
  display: block !important;
  width: 16px !important;
  height: 16px !important;
}
.search-category-heading .filter-arrow {
  position: absolute !important;
  right: 14px !important;
  top: 50% !important;
  width: 7px !important;
  height: 7px !important;
  border-right: 2px solid #aaa !important;
  border-bottom: 2px solid #aaa !important;
  border-left: none !important;
  border-top: none !important;
  background: none !important;
  transform: translateY(-70%) rotate(45deg) !important;
  transition: transform 0.2s !important;
  display: block !important;
}
.search-category-heading.is-open .filter-arrow {
  transform: translateY(-30%) rotate(-135deg) !important;
}
.search-category-heading img {
  filter: brightness(0) invert(1);
}
.search-category-block .form-row {
  padding: 10px !important;
  margin: 0 !important;
  border: 1px solid #eee !important;
  border-top: none !important;
  border-radius: 0 0 4px 4px !important;
  display: none !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  list-style: none !important;
}
.search-category-block .form-row.is-open {
  display: flex !important;
}
.search-category-block .form-row .form-item {
  flex: 0 0 calc(50% - 4px) !important;
  min-width: 0 !important;
  max-width: calc(50% - 4px) !important;
  width: calc(50% - 4px) !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}
@media (min-width: 768px) {
  .search-category-block .form-row .form-item {
    flex: 0 0 calc(25% - 6px) !important;
    max-width: calc(25% - 6px) !important;
    width: calc(25% - 6px) !important;
  }
}
.search-category-block .form-checkbox-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #ddd;
  border-radius: 20px;
  padding: 7px 8px;
  cursor: pointer;
  transition: all 0.15s ease;
  background: #fff;
  user-select: none;
  white-space: nowrap;
  width: 100%;
  box-sizing: border-box;
  font-size: 13px;
}
.search-category-block .form-checkbox {
  position: absolute !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  pointer-events: none;
}
.search-category-block .form-checkbox-text {
  padding-left: 0 !important;
}
.search-category-block .form-checkbox-text::before,
.search-category-block .form-checkbox-text::after {
  display: none !important;
  content: none !important;
}
.search-category-block .form-checkbox-wrapper:hover {
  border-color: var(--color-primary);
  background: var(--color-primary-bg);
}
.search-category-block .form-checkbox-wrapper:has(.form-checkbox:checked) {
  border-color: var(--color-primary-light);
  background: var(--color-primary-bg-medium);
  color: var(--color-primary-dark);
}
.search-category-block .form-checkbox:checked + .form-checkbox-text {
  color: var(--color-primary-dark);
  font-weight: 700;
}

/* facility-group-jobs inside compact list */
.facility-group {
  margin-bottom: 16px;
}
.facility-group-jobs {
  border-top: 1px solid #f0eeeb;
}

/* Show compact list (nearby facility design), hide old card view */
.compact-job-list {
  display: block !important;
}
.section-job.is-list ul.list-detail {
  display: none !important;
}
body.is-job-list,
body.is-job-list .container,
body.is-job-list main,
.section-job.is-search,
.section-job.is-list,
.section-job.is-list .wrapper,
.section-job.is-list .list-content,
.section-job.is-list .compact-job-list {
  background-color: #fff !important;
}
.section-job.is-list #load-more-btn {
  display: none !important;
}
.section-job.is-list .content-heading {
  margin-bottom: 0 !important;
  padding: 20px 16px !important;
}
.section-job.is-list .list-result {
  font-size: 14px !important;
  margin: 0 !important;
  display: flex !important;
  align-items: baseline !important;
  gap: 2px !important;
}
.section-job.is-list .list-result span {
  font-size: 20px !important;
  font-weight: 700 !important;
  font-family: 'Lato', sans-serif !important;
  color: var(--color-primary) !important;
  line-height: 1 !important;
}
.section-job.is-list .table-label img {
  filter: hue-rotate(-140deg) saturate(1.5) !important;
}
.section-job.is-list .item-category {
  color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}

.section-job.is-list .search-block {
  margin-bottom: 20px;
}
.section-job.is-list .search-block .block-list {
  display: block !important;
}
.section-job.is-list .search-block .block-item {
  width: 100% !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
}
.section-job.is-list .search-block .form-section {
  padding: 0 !important;
  margin: 0 !important;
}
.section-job.is-list .search-category-block .form-row {
  padding: 10px !important;
  margin: 0 !important;
  border: 1px solid #eee !important;
  border-top: none !important;
  border-radius: 0 0 4px 4px !important;
  display: none !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  list-style: none !important;
}
.section-job.is-list .search-category-block .form-row.is-open {
  display: flex !important;
}
.section-job.is-list .search-category-block .form-row .form-item {
  flex: 0 0 calc(25% - 6px) !important;
  max-width: calc(25% - 6px) !important;
  width: calc(25% - 6px) !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}
.section-job.is-list .search-category-heading {
  background-color: #fff !important;
  color: #333 !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  padding: 12px 40px 12px 16px !important;
  border-radius: 4px 4px 0 0 !important;
  border-bottom: 2px solid var(--color-primary) !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  cursor: pointer !important;
  position: relative !important;
}
.section-job.is-list .sch-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-right: 10px !important;
  color: var(--color-primary) !important;
  flex-shrink: 0 !important;
}
.section-job.is-list .sch-icon svg {
  display: block !important;
}
.section-job.is-list .filter-arrow {
  position: absolute !important;
  right: 16px !important;
  top: 50% !important;
  width: 8px !important;
  height: 8px !important;
  border-right: 2px solid var(--color-primary) !important;
  border-bottom: 2px solid var(--color-primary) !important;
  transform: translateY(-70%) rotate(45deg) !important;
  transition: transform 0.2s !important;
  display: block !important;
}
.section-job.is-list .search-category-heading.is-open .filter-arrow {
  transform: translateY(-30%) rotate(-135deg) !important;
}
.section-job.is-list .search-category-heading.is-open {
  border-radius: 0 !important;
  border-bottom: none !important;
}
.section-job.is-list .search-category-heading:not(.is-open) {
  border-radius: 0 !important;
  border-bottom: 1px solid #e8e4df !important;
}
.section-job.is-list .search-category-heading img {
  filter: hue-rotate(-140deg) saturate(1.5) brightness(0.9) !important;
}
.section-job.is-list .search-category-block .form-checkbox-wrapper {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 2px solid #ddd !important;
  border-radius: 20px !important;
  padding: 7px 8px !important;
  cursor: pointer !important;
  background: #fff !important;
  white-space: nowrap !important;
  width: 100% !important;
  box-sizing: border-box !important;
  font-size: 13px !important;
}
.section-job.is-list .search-category-block .form-checkbox {
  position: absolute !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  pointer-events: none !important;
}
.section-job.is-list .search-category-block .form-checkbox-text {
  padding-left: 0 !important;
}
.section-job.is-list .search-category-block .form-checkbox-text::before,
.section-job.is-list .search-category-block .form-checkbox-text::after {
  display: none !important;
  content: none !important;
}
.section-job.is-list .search-category-block .form-checkbox-wrapper:hover {
  border-color: var(--color-primary) !important;
  background: var(--color-primary-bg) !important;
}
.section-job.is-list .search-category-block .form-checkbox-wrapper:has(.form-checkbox:checked) {
  border-color: var(--color-primary-light) !important;
  background: var(--color-primary-bg-medium) !important;
}
.section-job.is-list .search-category-block .form-checkbox:checked + .form-checkbox-text {
  color: var(--color-primary-dark) !important;
  font-weight: 700 !important;
}
.section-job.is-list .facility-select-block .facility-area-items .form-item {
  flex: 0 0 calc(20% - 4.8px) !important;
  max-width: calc(20% - 4.8px) !important;
  width: calc(20% - 4.8px) !important;
}
.section-job.is-list .facility-select-block .form-checkbox-wrapper {
  padding: 6px 4px !important;
  font-size: 12px !important;
}
.section-job.is-list .facility-select-block .form-checkbox-text {
  font-size: 12px !important;
}

/* Facility select block: area-grouped layout */
.facility-select-block .form-row.facility-area-groups {
  display: none !important;
  flex-direction: column !important;
  gap: 0 !important;
  padding: 14px 12px 6px !important;
}
.facility-select-block .form-row.facility-area-groups.is-open {
  display: flex !important;
}
.facility-area-group {
  margin-bottom: 12px;
}
.facility-area-group:last-child {
  margin-bottom: 4px;
}
.facility-area-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0 0 6px;
  padding-bottom: 4px;
  border-bottom: 1px solid #f0ece7;
}
.facility-area-items {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  list-style: none;
  padding: 0;
  margin: 0 0 4px;
}
.facility-select-block .facility-area-items .form-item {
  flex: 0 0 calc(33.333% - 4px) !important;
  max-width: calc(33.333% - 4px) !important;
  width: calc(33.333% - 4px) !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}
@media (min-width: 768px) {
  .facility-select-block .facility-area-items .form-item {
    flex: 0 0 calc(20% - 4.8px) !important;
    max-width: calc(20% - 4.8px) !important;
    width: calc(20% - 4.8px) !important;
  }
  .facility-area-label {
    font-size: 14px;
    margin-bottom: 8px;
    padding-bottom: 6px;
  }
}
.facility-select-block .form-checkbox-wrapper {
  padding: 5px 2px !important;
  font-size: 11px !important;
  justify-content: center !important;
}
.facility-select-block .form-checkbox-text {
  font-size: 11px !important;
}

/* Compact list: prefecture group title */
.compact-pref-group {
  margin-bottom: 0.3rem;
  padding: 0;
  border: none !important;
  box-shadow: none !important;
  background: none !important;
}
.compact-pref-body {
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background: none !important;
}
.compact-pref-title {
  display: none !important;
}

/* ============================================
   Sticky Search Bar (top page)
   ============================================ */
.sticky-search-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 800;
  display: flex;
  justify-content: center;
  padding: 10px 16px;
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 -2px 12px rgba(0,0,0,0.08);
  transform: translateY(100%);
  opacity: 0;
  transition: transform 0.3s ease, opacity 0.3s ease;
  pointer-events: none;
}
.sticky-search-bar.is-visible {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.sticky-search-bar .sticky-search-btn {
  max-width: 320px;
  padding: 12px 20px;
  font-size: 14px;
}

/* ============================================
   Search Popup Button & Modal
   ============================================ */

.btn-search-popup {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 360px;
  padding: 14px 24px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #fff;
  background: var(--color-cta);
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.btn-search-popup:hover {
  background: var(--color-cta-dark);
}
.btn-search-popup svg {
  color: #fff;
  fill: #fff;
}

.search-popup-overlay {
  display: none;
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 10000;
  background: rgba(0,0,0,0.5);
  align-items: center;
  justify-content: center;
}
.search-popup-overlay.is-open {
  display: flex;
}

.search-popup-modal {
  background: #fff;
  border-radius: 4px;
  width: 92%;
  max-width: 440px;
  max-height: 85vh;
  overflow-y: auto;
  padding: 24px 20px 20px;
  position: relative;
  box-shadow: 0 8px 32px rgba(0,0,0,0.18);
  animation: popup-in 0.25s ease;
}
@keyframes popup-in {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

.search-popup-close {
  position: absolute;
  top: 12px; right: 16px;
  background: none;
  border: none;
  font-size: 28px;
  color: #999;
  cursor: pointer;
  line-height: 1;
  padding: 4px;
}
.search-popup-close:hover { color: #333; }

.search-popup-steps {
  margin-bottom: 20px;
}
.search-step-indicators {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
}
.step-dot {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #e5e5e5;
  color: #999;
  font-size: 13px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Lato', sans-serif;
  transition: all 0.2s;
}
.step-dot.is-active {
  background: var(--color-primary);
  color: #fff;
}
.step-dot.is-done {
  background: var(--color-primary-light);
  color: #fff;
}
.step-line {
  width: 40px;
  height: 2px;
  background: #e5e5e5;
}

.search-step-title {
  font-size: 16px;
  font-weight: 700;
  color: #333;
  margin-bottom: 16px;
  text-align: center;
  letter-spacing: 0.04em;
}

.search-step-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 20px;
}
.search-option {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  border: 1px solid #ddd;
  border-radius: 4px;
  padding: 10px 4px;
  cursor: pointer;
  transition: all 0.15s;
  background: #fff;
  text-align: center;
  box-sizing: border-box;
}
.search-option input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}
.search-option span {
  font-size: 13px;
  font-weight: 500;
  color: #333;
  letter-spacing: 0.01em;
  white-space: nowrap;
}
.search-option:hover {
  border-color: var(--color-primary);
  background: var(--color-primary-bg);
}
.search-option.is-selected {
  border-color: var(--color-primary);
  background: var(--color-primary-bg-medium);
}
.search-option.is-selected span {
  color: var(--color-primary-dark);
  font-weight: 700;
}

.search-options-3col {
  grid-template-columns: 1fr 1fr 1fr;
}
.search-options-3col .search-option {
  padding: 8px 2px;
}
.search-options-3col .search-option span {
  font-size: 11px;
}

.search-step-nav {
  display: flex;
  gap: 10px;
}
.search-step-next,
.search-step-submit {
  flex: 1;
  padding: 14px 16px;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  background: var(--color-cta);
  border: none;
  border-radius: 4px;
  cursor: pointer;
  letter-spacing: 0.04em;
  transition: opacity 0.2s;
}
.search-step-next:hover,
.search-step-submit:hover {
  background: var(--color-cta-dark);
}
.search-step-back {
  flex: 0 0 auto;
  padding: 14px 20px;
  font-size: 14px;
  font-weight: 600;
  color: #666;
  background: #f0f0f0;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.search-step-back:hover {
  background: #e0e0e0;
}
.search-step-back-only {
  display: block;
  margin-top: 8px;
  width: auto;
}

/* ============================================
   CTA Green Override (all action buttons)
   ============================================ */

.header .btn-search,
.modal .result-button,
.job-card .card-button,
.section-detail-entry .btn-entry,
.section-faq-search .btn-search,
.block-sidebar .sidebar-button,
.section-job-recommend .btn-common,
.btn-common.is-orange,
.btn-common.btn-submit,
button.btn-submit,
.btn-submit,
.aside-btn-search,
.sticky-result .result-button.submit-search,
.btn-search-popup,
.search-step-next,
.search-step-submit {
  background-color: var(--color-cta) !important;
  border-color: var(--color-cta) !important;
  color: #fff !important;
}

.job-note .note-button {
  background-color: #fff !important;
  color: var(--color-cta) !important;
  border-color: var(--color-cta) !important;
}

.section-top-filter .btn-search {
  background-color: var(--color-cta) !important;
  border-color: var(--color-cta) !important;
  color: #fff !important;
}
.section-top-filter .btn-search:hover {
  background-color: var(--color-cta-dark) !important;
  border-color: var(--color-cta-dark) !important;
  color: #fff !important;
}

/* ============================================
   Job Card V2（求人一覧：余白・読みやすさ優先）
   ============================================ */

.job-card-v2 {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  border: 1px solid #e8e4df;
  border-radius: 12px;
  padding: 18px 16px 16px;
  margin-bottom: 12px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

/* サムネあり：1行目＝本文＋右上サムネ、2行目＝ボタンはカード全幅 */
.job-card-v2.has-thumb {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "body thumb"
    "actions actions";
  column-gap: 12px;
  row-gap: 14px;
  align-items: start;
}

.job-card-v2:not(.has-thumb) .jcv2-body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.jcv2-thumb {
  grid-area: thumb;
  flex-shrink: 0;
  width: 110px;
  height: 68px;
  border-radius: 10px;
  overflow: hidden;
  background: #f2f0ec;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}
.jcv2-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.job-card-v2.has-thumb .jcv2-body {
  grid-area: body;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-width: 0;
}

.jcv2-title {
  font-size: clamp(15px, 4vw, 17px) !important;
  font-weight: 700 !important;
  color: #222 !important;
  line-height: 1.45 !important;
  margin: 0 0 12px 0 !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  white-space: normal !important;
  text-overflow: unset !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

.jcv2-info {
  margin-bottom: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}

.jcv2-dl {
  display: flex;
  align-items: baseline;
  gap: 8px 10px;
  margin: 0;
  padding: 0;
  font-size: 12px;
  line-height: 1.3;
}
.jcv2-dl dt {
  flex: 0 0 auto;
  min-width: 5em;
  max-width: 36%;
  font-size: 11px;
  font-weight: 600;
  color: #888;
  letter-spacing: 0.02em;
  line-height: 1.3;
  white-space: normal;
}
.jcv2-dl dd {
  flex: 1;
  min-width: 0;
  margin: 0;
  font-size: 12px;
  color: #333;
  font-weight: 500;
  line-height: 1.35;
  text-align: left;
  white-space: normal;
  overflow: visible;
  word-break: normal;
  overflow-wrap: break-word;
}
.jcv2-salary {
  color: #333 !important;
  font-weight: 500 !important;
  font-size: 12px !important;
  letter-spacing: 0.01em;
  white-space: nowrap !important;
  overflow: visible !important;
}

.jcv2-actions {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  align-self: stretch;
}

.job-card-v2.has-thumb .jcv2-actions {
  grid-area: actions;
  margin-top: 0;
}

.job-card-v2:not(.has-thumb) .jcv2-actions {
  margin-top: auto;
}

/* 一覧カードは「求人詳細を見る」のみ・横幅いっぱい（主CTA） */
.jcv2-btn-detail {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  flex: none;
  min-width: 0;
  min-height: 44px;
  box-sizing: border-box;
  padding: 11px 14px;
  font-size: clamp(13px, 3.5vw, 15px);
  font-weight: 700;
  white-space: normal;
  text-align: center;
  line-height: 1.35;
  color: #fff !important;
  background: var(--color-cta) !important;
  border: 1.5px solid var(--color-cta) !important;
  border-radius: 10px;
  text-decoration: none !important;
  letter-spacing: 0.04em;
  transition: background-color 0.2s, border-color 0.2s, color 0.2s;
  background-image: none !important;
}
.jcv2-btn-detail:hover {
  background: var(--color-cta-dark) !important;
  border-color: var(--color-cta-dark) !important;
  color: #fff !important;
}

/* Back to top */
.back-to-top-wrap {
  text-align: center;
  padding: 24px 0 8px;
}
.back-to-top-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 24px;
  font-size: 13px;
  font-weight: 600;
  color: #888;
  background: #f5f3f0;
  border: 1px solid #e8e4df;
  border-radius: 24px;
  cursor: pointer;
  transition: all 0.2s;
  font-family: inherit;
}
.back-to-top-btn:hover {
  color: #555;
  background: #eceae6;
  border-color: #d8d4cf;
}
.back-to-top-btn svg {
  flex-shrink: 0;
}

/* ============================================
   Entry Form Modal (求人一覧用)
   ============================================ */
.entry-modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(0,0,0,0.5);
  justify-content: center;
  align-items: center;
  padding: 20px;
}
.entry-modal-overlay.is-open {
  display: flex;
}
.entry-modal {
  position: relative;
  background: #fff;
  border-radius: 16px;
  padding: 32px 24px;
  width: 100%;
  max-width: 440px;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 8px 32px rgba(0,0,0,0.18);
  -webkit-overflow-scrolling: touch;
}
.entry-modal-close {
  position: absolute;
  top: 12px;
  right: 16px;
  background: none;
  border: none;
  font-size: 28px;
  color: #999;
  cursor: pointer;
  line-height: 1;
  padding: 4px;
}
.entry-modal-close:hover {
  color: #333;
}
.entry-modal-title {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #333 !important;
  margin: 0 0 4px !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  text-align: center !important;
}
.entry-modal-job {
  font-size: 12px;
  color: #888;
  text-align: center;
  margin: 0 0 20px;
}

/* PC: 2列グリッド＋サムネは右上のまま少しだけ大きく */
@media print, (min-width: 768px) {
  .nearby-facility-group + .nearby-facility-group {
    margin-top: 24px;
  }
  .facility-group-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }
  .job-card-v2 {
    margin-bottom: 0;
    padding: 20px 20px 18px;
  }
  .job-card-v2.has-thumb {
    column-gap: 14px;
    row-gap: 16px;
  }
  .jcv2-thumb {
    width: 132px;
    height: 80px;
    border-radius: 10px;
  }
  .job-card-v2.has-thumb .jcv2-body {
    padding-top: 2px;
  }
  .jcv2-title {
    font-size: 16px !important;
    margin-bottom: 10px !important;
  }
  .jcv2-info {
    margin-bottom: 14px;
    gap: 8px;
  }
  .jcv2-dl dt {
    min-width: 5.5em;
    max-width: 34%;
    font-size: 11px;
  }
  .jcv2-dl dd {
    font-size: 13px;
  }
  .jcv2-salary {
    font-size: 13px !important;
  }
  .jcv2-actions {
    flex-wrap: nowrap;
    gap: 0;
  }
  .jcv2-btn-detail {
    width: 100%;
    min-height: 42px;
    font-size: 14px;
    padding: 10px 14px;
  }
}

/* ============================================
   Parallax Gallery — infinite marquee
   ============================================ */
@keyframes marquee-scroll-left {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
@keyframes marquee-scroll-right {
  0%   { transform: translateX(-50%); }
  100% { transform: translateX(0); }
}
.section-parallax-gallery {
  position: relative;
  overflow: hidden;
  padding: 40px 0;
  background: #fff;
  max-width: 100vw;
}
.parallax-gallery-outer {
  display: flex;
  flex-direction: column;
  gap: 14px;
  overflow: hidden;
}
.marquee-track {
  overflow: hidden;
  width: 100%;
}
.marquee-track-inner {
  display: flex;
  gap: 14px;
  width: max-content;
  will-change: transform;
}
.marquee-track--left .marquee-track-inner {
  animation: marquee-scroll-left 48s linear infinite;
}
.marquee-track--right .marquee-track-inner {
  animation: marquee-scroll-right 48s linear infinite;
}
.marquee-img {
  display: block;
  width: 220px;
  height: 150px;
  object-fit: cover;
  border-radius: 12px;
  flex-shrink: 0;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}
@media (hover: hover) {
  .marquee-track:hover .marquee-track-inner {
    animation-play-state: paused;
  }
}
@media (prefers-reduced-motion: reduce) {
  .marquee-track-inner {
    animation: none !important;
  }
}

/* TOP: フォトギャラリー（管理画面で指定した4枚・2列） */
.section-top-photo-grid {
  padding: 36px 0 28px;
  background: #fff;
}
.section-top-photo-grid .wrapper {
  max-width: 560px;
}
.top-photo-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 0;
  padding: 0 20px;
  list-style: none;
}
.top-photo-grid-item {
  margin: 0;
  padding: 0;
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}
.top-photo-grid-img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  vertical-align: middle;
}
@media (min-width: 768px) {
  .section-top-photo-grid {
    padding: 48px 0 40px;
  }
  .section-top-photo-grid .wrapper {
    max-width: 900px;
  }
  .top-photo-grid {
    gap: 16px;
    padding: 0 40px;
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
  }
  .top-photo-grid-item {
    border-radius: 14px;
  }
}

/* 求人検索：0件メッセージ */
.job-search-empty {
  width: 100%;
  list-style: none;
  margin: 24px 0;
  padding: 0;
}
.job-search-empty-message {
  margin: 0;
  padding: 24px 20px;
  text-align: center;
  font-size: 15px;
  line-height: 1.7;
  color: #555;
  background: #faf8f5;
  border: 1px solid #ece8e2;
  border-radius: 12px;
}
.job-search-empty-sub {
  display: block;
  margin-top: 8px;
  font-size: 13px;
  color: #888;
}
@media (min-width: 768px) {
  .section-parallax-gallery {
    padding: 64px 0;
  }
  .section-parallax-gallery > .wrapper {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .parallax-gallery-outer {
    gap: 18px;
  }
  .marquee-track-inner {
    gap: 18px;
  }
  .marquee-img {
    width: 280px;
    height: 180px;
    border-radius: 14px;
  }
}

/* ============================================
   TOP page: PC layout with side margins + nav
   ============================================ */
@media print, (min-width: 768px) {
  body:not(.is-detail) main > section:not(.section-top-final-cta) > .wrapper {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
  }
  .header .wrapper {
    max-width: 800px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
  .footer .wrapper {
    max-width: 800px !important;
  }
}

/* ============================================
   TOPICS Archive
   ============================================ */
.section-topics-archive {
  padding: 40px 0 60px;
}
.section-topics-archive .page-title {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 24px;
}
/* 2-column grid layout */
.topics-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
.topics-card {
  display: block;
  text-decoration: none;
  color: inherit;
  transition: opacity 0.2s;
}
.topics-card:hover {
  opacity: 0.75;
}
.topics-card-thumb {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  border-radius: 6px;
  background: #f0ede8;
}
.topics-card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.topics-card-noimg {
  display: block;
  width: 100%;
  height: 100%;
  background: #e8e4df;
}
.topics-card-title {
  margin: 10px 0 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  color: #333;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (min-width: 768px) {
  .topics-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 28px 24px;
  }
  .topics-card-title {
    font-size: 15px;
    margin-top: 12px;
  }
}

/* Legacy list styles (kept for compatibility) */
.topics-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.topics-list-item {
  border-bottom: 1px solid #e8e8e8;
}
.topics-list-item:first-child {
  border-top: 1px solid #e8e8e8;
}
.topics-list-link {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  padding: 16px 8px;
  text-decoration: none;
  color: var(--txt);
}
.topics-list-link:hover {
  background: #faf6f2;
}
.topics-badge-new {
  display: inline-block;
  background: var(--accent, #e8553a);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 3px;
  letter-spacing: 0.04em;
}
.topics-date {
  color: #888;
  font-size: 13px;
  white-space: nowrap;
}
.topics-facility {
  display: inline-block;
  font-size: 11px;
  color: var(--accent, #e8553a);
  border: 1px solid var(--accent, #e8553a);
  border-radius: 3px;
  padding: 1px 6px;
  white-space: nowrap;
}
.topics-title {
  font-size: 14px;
  font-weight: 500;
  flex: 1 1 100%;
}
@media (min-width: 768px) {
  .topics-title {
    flex: 1 1 0;
  }
}
.topics-empty {
  text-align: center;
  padding: 60px 0;
  color: #888;
  font-size: 14px;
}

/* ============================================
   TOPICS Single
   ============================================ */
.section-topics-single {
  padding: 40px 0 20px;
}
.section-topics-single .wrapper {
  max-width: 800px;
  margin: 0 auto;
  box-sizing: border-box;
}
.topics-article {
  max-width: 720px;
  margin: 0 auto;
}
.news-category {
  display: inline-block;
  background-color: var(--color-primary);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  padding: 3px 12px;
  border-radius: 3px;
  margin-bottom: 10px;
}
.topics-fv {
  margin-bottom: 24px;
}
.topics-fv-img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
  /* 一覧カード（.topics-card-thumb）と同じ 3:2 で少し縦を確保（旧 16:9 より） */
  aspect-ratio: 3 / 2;
  object-fit: cover;
}
.topics-article-title {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.45;
  margin-bottom: 8px;
}
.topics-article-date {
  display: block;
  color: #888;
  font-size: 13px;
  margin-bottom: 32px;
}
.topics-article-body {
  font-size: 14px;
  line-height: 1.95;
  color: #333;
  word-break: break-word;
  overflow-wrap: break-word;
}
.topics-article-body span[style] {
  font-size: inherit !important;
  font-weight: inherit !important;
  color: inherit !important;
}
.topics-article-body b,
.topics-article-body strong {
  font-weight: 700;
}
.topics-article-body h2 {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: 0.04em;
  color: #222;
  margin: 2em 0 0.65em;
  padding: 0 0 9px;
  background: none;
  border: none;
  border-radius: 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.topics-article-body h2:first-child {
  margin-top: 0;
}
.topics-article-body h3 {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: 0.03em;
  color: #333;
  margin: 1.6em 0 0.5em;
  padding: 0;
}
.topics-article-body p {
  margin-bottom: 12px;
}
.topics-article-body p:empty,
.topics-article-body p br:only-child {
  margin-bottom: 0;
}
.topics-article-body img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  margin: 16px 0;
}

/* CTA */
.section-topics-cta {
  padding: 40px 0;
}
.topics-cta-card {
  max-width: 720px;
  margin: 0 auto;
  background: #faf6f2;
  border-radius: 16px;
  padding: 32px 24px;
  text-align: center;
}
.topics-cta-title {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 8px;
}
.topics-cta-sub {
  font-size: 13px;
  color: #666;
  margin-bottom: 24px;
}
.topics-cta-card .ef-card {
  max-width: 480px;
  margin: 0 auto;
  text-align: left;
}
.topics-cta-phone {
  margin-top: 16px;
  font-size: 13px;
  color: #666;
}
.topics-cta-phone a {
  color: var(--accent, #e8553a);
  font-weight: 700;
  text-decoration: none;
}
.ef-opt {
  display: inline-block;
  font-size: 11px;
  color: #888;
  border: 1px solid #ccc;
  border-radius: 3px;
  padding: 0 4px;
  margin-left: 4px;
  vertical-align: middle;
}

/* Related / Latest */
.section-topics-related,
.section-topics-latest {
  padding: 40px 0;
  background: #f8f8f8;
}
.section-topics-latest {
  background: #fff;
}
.topics-related-heading {
  max-width: 720px;
  margin: 0 auto 24px;
  font-size: 16px;
  font-weight: 700;
}
.topics-related-label {
  display: inline-block;
  background: var(--accent, #e8553a);
  color: #fff;
  font-size: 11px;
  padding: 2px 10px;
  border-radius: 3px;
  margin-right: 10px;
  vertical-align: middle;
  letter-spacing: 0.06em;
}
.topics-related-grid {
  max-width: 720px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 640px) {
  .topics-related-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 960px) {
  .topics-related-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.topics-related-card {
  display: block;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none;
  color: var(--txt);
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.topics-related-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,0.1);
}
.section-topics-latest .topics-related-card {
  background: #f8f8f8;
}
.topics-related-thumb {
  aspect-ratio: 16/10;
  overflow: hidden;
}
.topics-related-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.topics-related-title {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  padding: 12px 14px 4px;
}
.topics-related-date {
  display: block;
  font-size: 12px;
  color: #999;
  padding: 0 14px 12px;
}

/* 資格リスト */
.qualification-list {
  margin: 0 0 4px;
  padding: 0 0 0 1.2em;
  list-style: disc;
}
.qualification-list li {
  margin-bottom: 2px;
}
.qualification-note {
  margin: 4px 0 0;
  font-size: 0.88em;
  color: #333;
  font-weight: 600;
}

/* 職種メタ：仕事内容・研修（上書きは .section-job-detail .taiyou-jt-desc-table 参照） */
.job-detail .taiyou-jt-desc-table {
  width: 100%;
}
.job-detail .requirements-table .taiyou-jt-allowance-table {
  font-size: 0.92em;
}
.job-detail .requirements-table .taiyou-jt-allowance-table th,
.job-detail .requirements-table .taiyou-jt-allowance-table td {
  border-bottom: none;
  font-weight: normal;
  padding-top: 0.02rem;
  padding-bottom: 0.02rem;
  line-height: 1.4;
  color: var(--color-text-sub);
}
.job-detail .requirements-table .taiyou-jt-allowance-table th {
  width: 42%;
}

/* ============================================
   職場の特徴 — 5段階ドット＋見出し「職場」下線アクセント
   ============================================ */
#sec-workplace .workplace-title.table-title::before,
#sec-workplace .workplace-title.table-title::after {
  display: none !important;
}
#sec-workplace .workplace-title.table-title {
  padding-bottom: 0 !important;
  margin-bottom: 28px !important;
}
#sec-workplace .workplace-title__udl {
  display: inline;
  border-bottom: 4px solid var(--color-primary, #f28b30);
  padding-bottom: 2px;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
#sec-workplace .workplace-title__rest {
  display: inline;
}

#sec-workplace .workplace-culture {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding: 4px 0 8px;
  max-width: 100%;
  box-sizing: border-box;
}

#sec-workplace .workplace-culture-row {
  padding: 0 0 28px;
  margin: 0 0 28px;
  border: none !important;
  border-bottom: 1px solid rgba(42, 42, 42, 0.08) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

#sec-workplace .workplace-culture-row:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none !important;
}

#sec-workplace .workplace-culture-head {
  margin: 0 0 12px;
}

#sec-workplace .workplace-culture-label {
  margin: 0;
  padding: 0;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.45;
  color: #1a1a1a;
}

#sec-workplace .workplace-culture-axis {
  display: flex;
  flex-direction: row;
  align-items: center;
  width: 100%;
  gap: 0;
}

#sec-workplace .workplace-culture-pole {
  flex: 0 1 22%;
  max-width: 5.5em;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.02em;
  color: #888;
  align-self: center;
}

#sec-workplace .workplace-culture-pole--low {
  text-align: right;
  padding-right: 12px;
}

#sec-workplace .workplace-culture-pole--high {
  text-align: left;
  padding-left: 12px;
}

#sec-workplace .workplace-culture-scale {
  flex: 1 1 auto;
  min-width: 0;
}

#sec-workplace .workplace-culture-dots {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  align-items: center;
  position: relative;
  width: 100%;
  min-height: 28px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#sec-workplace .workplace-culture-dots::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 2px;
  margin-top: -1px;
  background: #d9d9d6;
  border-radius: 1px;
  z-index: 0;
}

#sec-workplace .workplace-culture-dot {
  position: relative;
  z-index: 1;
  justify-self: center;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #c5c5c2;
  box-sizing: border-box;
}

#sec-workplace .workplace-culture-dot.is-active {
  width: 16px;
  height: 16px;
  margin-top: 0;
  background: var(--color-primary, #f28b30);
  box-shadow:
    0 0 0 3px rgba(242, 139, 48, 0.22),
    0 2px 8px rgba(242, 139, 48, 0.35);
}

#sec-workplace .workplace-culture-tick-row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  margin-top: 6px;
  min-height: 1.15em;
}

#sec-workplace .workplace-culture-tick-row[hidden] {
  display: none !important;
}

#sec-workplace .workplace-culture-tick-cell {
  font-size: 12px;
  line-height: 1.3;
  color: #888;
  text-align: center;
}

@media print, (min-width: 768px) {
  #sec-workplace .workplace-title.table-title {
    margin-bottom: 36px !important;
  }

  #sec-workplace .workplace-culture {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 48px;
    row-gap: 8px;
    padding-top: 0;
  }

  #sec-workplace .workplace-culture-row:nth-child(1) {
    grid-column: 1;
    grid-row: 1;
  }
  #sec-workplace .workplace-culture-row:nth-child(2) {
    grid-column: 1;
    grid-row: 2;
  }
  #sec-workplace .workplace-culture-row:nth-child(3) {
    grid-column: 1;
    grid-row: 3;
  }
  #sec-workplace .workplace-culture-row:nth-child(4) {
    grid-column: 2;
    grid-row: 1;
  }
  #sec-workplace .workplace-culture-row:nth-child(5) {
    grid-column: 2;
    grid-row: 2;
  }

  #sec-workplace .workplace-culture-row {
    margin-bottom: 0;
    padding-bottom: 32px;
    border-bottom: none !important;
  }

  #sec-workplace .workplace-culture-label {
    font-size: 17px;
  }
}

@media only screen and (max-width: 767.98px) {
  #sec-workplace .workplace-culture {
    padding: 4px 0 4px;
  }

  #sec-workplace .workplace-culture-row {
    padding-bottom: 22px;
    margin-bottom: 22px;
  }

  #sec-workplace .workplace-culture-head {
    margin-bottom: 10px;
  }

  #sec-workplace .workplace-culture-label {
    font-size: 15px;
  }

  #sec-workplace .workplace-culture-pole {
    font-size: 11px;
    max-width: 6.2em;
  }

  #sec-workplace .workplace-culture-pole--low {
    padding-right: 8px;
  }

  #sec-workplace .workplace-culture-pole--high {
    padding-left: 8px;
  }

  #sec-workplace .workplace-culture-dot {
    width: 8px;
    height: 8px;
  }

  #sec-workplace .workplace-culture-dot.is-active {
    width: 14px;
    height: 14px;
  }
}

/* ============================================
   施設の日常 — Instagram埋め込み
   ============================================ */
.facility-instagram-embed {
  padding: 12px 0;
}
.facility-instagram-embed iframe {
  border-radius: 8px;
}
.facility-instagram-link {
  text-align: center;
  padding: 24px 0;
}
.facility-instagram-link .btn-common {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

/* ============================================
   施設の取り組み — Topics記事カード
   ============================================ */
.facility-topics-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 4px 0 0;
}
.facility-topics-card {
  display: flex;
  align-items: stretch;
  gap: 16px;
  padding: 18px 0;
  border-bottom: 1px solid #e8e6e2;
  background: transparent;
  text-decoration: none !important;
  color: #333 !important;
  transition: background 0.2s ease;
}
.facility-topics-card:first-child {
  border-top: 1px solid #e8e6e2;
}
.facility-topics-card:hover {
  background: #faf8f5;
}
.topics-card-image {
  flex-shrink: 0;
  width: 100px;
  height: 75px;
  border-radius: 6px;
  overflow: hidden;
  background: #f0eeeb;
  display: flex;
  align-items: center;
  justify-content: center;
}
.topics-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.topics-card-num {
  font-size: 28px;
  font-weight: 700;
  color: #ccc;
}
.topics-card-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 60px;
}
.topics-card-title {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.45;
  color: #333;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.topics-card-link {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  color: var(--color-primary, #E8811A);
  align-self: flex-end;
}
.topics-card-link::after {
  content: ' →';
}
@media (min-width: 768px) {
  .topics-card-image {
    width: 120px;
    height: 90px;
  }
  .topics-card-body {
    height: 90px;
  }
  .topics-card-title {
    font-size: 15px;
    -webkit-line-clamp: 3;
  }
  .topics-card-link {
    font-size: 12px;
  }
}
@media only screen and (max-width: 767.98px) {
  .facility-topics-card {
    gap: 12px;
    padding: 14px 0;
  }
  .topics-card-image {
    width: 80px;
    height: 60px;
  }
}

/* ============================================
   汎用固定ページ (.section-page / .section-policy)
   ============================================ */
.section-page,
.section-policy {
  padding: 0.3rem 0 0.6rem;
  background: #f8f7f5;
}
@media only screen and (max-width: 767.98px) {
  .section-page,
  .section-policy {
    padding: 0.1rem 0 0.3rem;
  }
}

.section-page .page-title,
.section-policy .page-title {
  font-size: 0.24rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #333;
  margin-bottom: 0.3rem;
  line-height: 1.4;
}
@media only screen and (max-width: 767.98px) {
  .section-page .page-title,
  .section-policy .page-title {
    font-size: 0.18rem;
    margin-bottom: 0.16rem;
  }
}

.section-page .entry-content,
.section-policy .policy-content {
  background: #fff;
  border-radius: 0.1rem;
  padding: 0.4rem 0.5rem;
  font-size: 0.15rem;
  line-height: 1.85;
  letter-spacing: 0.04em;
  color: #444;
  word-break: break-all;
  overflow-wrap: break-word;
}
@media only screen and (max-width: 767.98px) {
  .section-page .entry-content,
  .section-policy .policy-content {
    padding: 0.18rem 0.16rem;
    font-size: 0.13rem;
    border-radius: 0.06rem;
  }
}

/* 見出し */
.section-page .entry-content h1,
.section-page .entry-content h2,
.section-page .entry-content h3,
.section-page .entry-content h4,
.section-policy .policy-content h1,
.section-policy .policy-content h2,
.section-policy .policy-content h3,
.section-policy .policy-content h4 {
  color: #333;
  font-weight: 700;
  line-height: 1.5;
  margin-top: 1.8em;
  margin-bottom: 0.6em;
}
.section-page .entry-content h1:first-child,
.section-page .entry-content h2:first-child,
.section-page .entry-content h3:first-child,
.section-policy .policy-content h1:first-child,
.section-policy .policy-content h2:first-child,
.section-policy .policy-content h3:first-child {
  margin-top: 0;
}
.section-page .entry-content h2,
.section-policy .policy-content h2 {
  font-size: 1.25em;
  padding-bottom: 0.35em;
  border-bottom: 2px solid var(--color-primary);
}
.section-page .entry-content h3,
.section-policy .policy-content h3 {
  font-size: 1.1em;
  padding-left: 0.6em;
  border-left: 3px solid var(--color-primary);
}
.section-page .entry-content h4,
.section-policy .policy-content h4 {
  font-size: 1em;
}

/* 段落 */
.section-page .entry-content p,
.section-policy .policy-content p {
  margin: 0 0 1em;
  line-height: 1.85;
}
.section-page .entry-content p:last-child,
.section-policy .policy-content p:last-child {
  margin-bottom: 0;
}

/* リスト */
.section-page .entry-content ul,
.section-page .entry-content ol,
.section-policy .policy-content ul,
.section-policy .policy-content ol {
  margin: 0 0 1em;
  padding-left: 1.6em;
}
.section-page .entry-content li,
.section-policy .policy-content li {
  margin-bottom: 0.4em;
  line-height: 1.75;
}
.section-page .entry-content li:last-child,
.section-policy .policy-content li:last-child {
  margin-bottom: 0;
}
.section-page .entry-content ul li,
.section-policy .policy-content ul li {
  list-style-type: disc;
}
.section-page .entry-content ol li,
.section-policy .policy-content ol li {
  list-style-type: decimal;
}
.section-page .entry-content ol ol,
.section-policy .policy-content ol ol {
  margin-top: 0.4em;
}

/* テーブル */
.section-page .entry-content table,
.section-policy .policy-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 1em 0;
  font-size: 0.95em;
}
.section-page .entry-content th,
.section-page .entry-content td,
.section-policy .policy-content th,
.section-policy .policy-content td {
  border: 1px solid #e0e0e0;
  padding: 0.6em 0.8em;
  text-align: left;
  line-height: 1.6;
}
.section-page .entry-content th,
.section-policy .policy-content th {
  background: #f8f7f5;
  font-weight: 700;
  color: #333;
}

/* 引用 */
.section-page .entry-content blockquote,
.section-policy .policy-content blockquote {
  margin: 1.2em 0;
  padding: 1em 1.2em;
  border-left: 4px solid var(--color-primary);
  background: #faf9f7;
  color: #555;
  font-style: normal;
}
.section-page .entry-content blockquote p:last-child,
.section-policy .policy-content blockquote p:last-child {
  margin-bottom: 0;
}

/* リンク */
.section-page .entry-content a,
.section-policy .policy-content a {
  color: var(--color-primary);
  text-decoration: underline;
}
.section-page .entry-content a:hover,
.section-policy .policy-content a:hover {
  color: var(--color-primary-dark);
}

/* 区切り線 */
.section-page .entry-content hr,
.section-policy .policy-content hr {
  border: none;
  border-top: 1px solid #e0e0e0;
  margin: 2em 0;
}

/* 画像 */
.section-page .entry-content img,
.section-policy .policy-content img {
  max-width: 100%;
  height: auto;
  border-radius: 6px;
}

/* strong / em */
.section-page .entry-content strong,
.section-policy .policy-content strong {
  font-weight: 700;
  color: #333;
}

/* ============================================
   最終オーバーライド（詳細度で確実に勝つ）
   ============================================ */
.section-job-detail.section-job-detail--hero .job-heading .hero-cta .btn-common.is-primary {
  background-color: var(--color-cta) !important;
  border-color: var(--color-cta) !important;
  color: #fff !important;
}
.section-job-detail.section-job-detail--hero .job-heading .hero-cta .btn-common.is-primary:hover {
  background-color: var(--color-cta-dark) !important;
  border-color: var(--color-cta-dark) !important;
}
/* ============================================
   TOP PAGE REDESIGN v4
   色はそのまま。余白・タイポグラフィ・レイアウト・装飾を大幅改善
   ============================================ */

/* --- 1. セクション見出し：英語表示 + サイズ差を極端に --- */
body.is-top .common-title {
  margin-bottom: 36px !important;
  text-align: center !important;
}
body.is-top .common-title .text-en {
  display: block !important;
  font-family: 'Lato', sans-serif !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.25em !important;
  color: var(--color-text-sub) !important;
  text-transform: uppercase !important;
  margin-bottom: 10px !important;
}
body.is-top .common-title .text-jp {
  display: block !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  color: var(--color-text) !important;
  line-height: 1.4 !important;
}
body.is-top .common-title::after {
  content: '';
  display: block;
  width: 28px;
  height: 2px;
  background: var(--color-primary);
  margin: 16px auto 0;
  border-radius: 1px;
}
@media (min-width: 768px) {
  body.is-top .common-title {
    margin-bottom: 56px !important;
  }
  body.is-top .common-title .text-en {
    font-size: 11px !important;
    letter-spacing: 0.28em !important;
    margin-bottom: 12px !important;
  }
  body.is-top .common-title .text-jp {
    font-size: 32px !important;
  }
  body.is-top .common-title::after {
    width: 32px;
    margin-top: 20px;
  }
}

/* --- 2. セクション余白：大胆に広げる --- */
body.is-top .section-top-message {
  padding: 64px 0 48px !important;
  /* .section-top-qa（#sec-qa）と同じウォーム背景 */
  background: var(--color-primary-bg) !important;
  background-color: var(--color-primary-bg) !important;
  color: var(--color-text) !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
}
body.is-top .section-top-benefits {
  padding: 64px 0 !important;
}
body.is-top .section-top-story {
  padding: 64px 0 !important;
}
body.is-top .section-top-job {
  padding: 64px 0 !important;
}
body.is-top .section-top-qa {
  padding: 64px 0 !important;
}
body.is-top .section-top-news {
  padding: 56px 0 !important;
}
body.is-top .section-top-instagram {
  padding: 64px 0 !important;
}
body.is-top .section-parallax-gallery {
  padding: 40px 0 !important;
}

@media (min-width: 768px) {
  body.is-top .section-top-message {
    padding: 100px 0 80px !important;
  }
  body.is-top .section-top-benefits {
    padding: 100px 0 !important;
  }
  body.is-top .section-top-story {
    padding: 100px 0 !important;
  }
  body.is-top .section-top-job {
    padding: 100px 0 !important;
  }
  body.is-top .section-top-qa {
    padding: 100px 0 !important;
  }
  body.is-top .section-top-news {
    padding: 80px 0 !important;
  }
  body.is-top .section-top-instagram {
    padding: 100px 0 !important;
  }
  body.is-top .section-parallax-gallery {
    padding: 56px 0 !important;
  }
}

/* --- 3. 共感メッセージ：参考LP .ref-fv-inner の幅・字組。背景は #sec-qa と同じ --color-primary-bg --- */
/* main > .wrapper の横余白（PC 24px 等）を無しにし、余白は ref-fv-inner 同様 .top-message-inner のみ */
body.is-top .section-top-message > .wrapper {
  max-width: 100% !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

body.is-top .section-top-message .top-message-inner {
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 18px !important;
  padding-right: 18px !important;
  text-align: left !important;
  box-sizing: border-box !important;
}

body.is-top .top-message-lead {
  font-family: "Zen Kurenaido", "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Yu Gothic Medium", "Yu Gothic UI", sans-serif !important;
  font-size: clamp(26px, 7.5vw, 38px) !important;
  font-weight: 600 !important;
  letter-spacing: 0.085em !important;
  line-height: 1.65 !important;
  color: var(--color-text) !important;
  margin-bottom: 22px !important;
  transform: rotate(-0.9deg);
  transform-origin: 0 55%;
  text-shadow: 0 0.05em 0 rgba(255, 255, 255, 0.55);
}
body.is-top .top-message-body {
  font-family: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Yu Gothic Medium", "Yu Gothic UI", sans-serif !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  line-height: 1.95 !important;
  letter-spacing: 0.025em !important;
  color: #4a4a4a !important;
}
body.is-top .top-message-body p {
  color: #4a4a4a !important;
  margin: 0 0 1.6em !important;
}
body.is-top .top-message-body p:last-child {
  margin-bottom: 0 !important;
}
body.is-top .top-message-wish {
  font-family: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Yu Gothic Medium", "Yu Gothic UI", sans-serif !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  letter-spacing: 0.025em !important;
  line-height: 1.95 !important;
  color: var(--color-text) !important;
  transform: none;
}
body.is-top .top-message-cta {
  margin-top: 1em !important;
  font-family: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Yu Gothic Medium", "Yu Gothic UI", sans-serif !important;
  font-size: 19px !important;
  font-weight: 700 !important;
  line-height: 1.75 !important;
  letter-spacing: 0.02em !important;
  color: var(--color-text) !important;
  transform: none;
}
body.is-top .top-message-brand {
  color: var(--color-text) !important;
  font-weight: 700 !important;
}
body.is-top .top-message-body .js-typing-target {
  transform: none;
}
body.is-top .top-message-body .js-typing-target .typing-stress {
  font-weight: 700 !important;
  color: #333 !important;
  letter-spacing: 0.02em !important;
}
body.is-top .section-top-message .typing-cursor {
  background: #444 !important;
  width: 2px !important;
  border-radius: 1px !important;
  opacity: 0.85 !important;
}

@media (max-width: 767.98px) {
  body.is-top .top-message-body .js-typing-target {
    font-size: 16px !important;
  }
  body.is-top .top-message-body .top-message-wish {
    font-size: 16px !important;
  }
  body.is-top .top-message-cta {
    font-size: 20px !important;
    line-height: 1.65 !important;
  }
}

@media (min-width: 768px) {
  body.is-top .section-top-message .top-message-inner {
    max-width: 640px !important;
    padding-left: 28px !important;
    padding-right: 28px !important;
    text-align: left !important;
  }
  body.is-top .top-message-lead {
    font-size: clamp(32px, 3.8vw, 44px) !important;
  }
  body.is-top .top-message-body {
    font-size: 21px !important;
    line-height: 1.95 !important;
  }
  body.is-top .top-message-wish {
    font-size: 21px !important;
    line-height: 1.95 !important;
  }
  body.is-top .top-message-cta {
    font-size: 26px !important;
    line-height: 1.65 !important;
  }
  /* CTA 内の改行はスマホのみ（JS が挿入する br） */
  body.is-top .top-message-cta-br {
    display: none !important;
  }
}

/* --- 4. たいようの3つの安心：丸と同じ側にテキストを重ねる（奇数＝左・偶数＝右）--- */
body.is-top .section-top-benefits {
  overflow: hidden !important;
}
body.is-top .top-benefits-grid {
  display: flex !important;
  flex-direction: column !important;
  gap: 24px !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  counter-reset: benefit !important;
}
body.is-top .benefit-card {
  position: relative !important;
  background: transparent !important;
  border: none !important;
  border-bottom: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  text-align: left !important;
  overflow: visible !important;
  box-shadow: none !important;
  transition: none !important;
  z-index: 1 !important;
  display: flex !important;
  align-items: center !important;
  min-height: 240px !important;
}
body.is-top .benefit-card:last-child {
  border-bottom: none !important;
}
body.is-top .benefit-card:hover {
  transform: none !important;
  box-shadow: none !important;
}

body.is-top .benefit-card::before {
  content: '';
  position: absolute;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  /* 従来のオレンジ丸を、レイアウトはそのまま太陽イラスト（SVG）に */
  background-color: var(--color-primary-bg-medium, #FFF3E0);
  background-image: url('../images/benefit-sun-bg.svg');
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
  z-index: 0;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}

body.is-top .benefit-card:nth-child(odd)::before {
  left: -100px;
}
body.is-top .benefit-card:nth-child(even)::before {
  right: -100px;
  left: auto;
}

/* 奇数（01・03）：丸が左 → テキストも左寄せで丸に重なる */
body.is-top .benefit-card:nth-child(odd) {
  justify-content: flex-start !important;
}
/* 偶数（02）：丸が右 → テキストも右寄せで丸に重なる */
body.is-top .benefit-card:nth-child(even) {
  justify-content: flex-end !important;
}

body.is-top .benefit-card .benefit-image {
  display: none !important;
}

body.is-top .benefit-card .benefit-body {
  padding: 0 !important;
  position: relative;
  z-index: 2;
  max-width: 72%;
  box-sizing: border-box;
}
body.is-top .benefit-card:nth-child(odd) .benefit-body {
  text-align: left !important;
  margin-left: -12px !important;
  margin-right: auto !important;
}
/* ブロックは右寄せのまま、中身は左揃えで本文の行頭と 02・見出しを揃える */
body.is-top .benefit-card:nth-child(even) .benefit-body {
  text-align: left !important;
  margin-right: -12px !important;
  margin-left: auto !important;
}

body.is-top .benefit-num {
  display: block !important;
  position: static !important;
  font-family: 'Lato', sans-serif !important;
  font-size: 36px !important;
  font-weight: 800 !important;
  color: var(--color-primary) !important;
  letter-spacing: 0.02em !important;
  margin-bottom: 10px !important;
  line-height: 1 !important;
  opacity: 0.2;
}
body.is-top .benefit-title {
  font-size: 19px !important;
  font-weight: 700 !important;
  margin-bottom: 10px !important;
  color: var(--color-text) !important;
  line-height: 1.4 !important;
}
body.is-top .benefit-title::before {
  display: none !important;
}
body.is-top .benefit-text {
  font-size: 13px !important;
  line-height: 1.85 !important;
  color: #666 !important;
}
body.is-top .benefit-card:nth-child(1)::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  background: var(--color-primary);
  opacity: 0.15;
  border-radius: 3px;
  transform: rotate(30deg);
  top: 12%;
  left: 40%;
}
body.is-top .benefit-card:nth-child(2)::after {
  content: '';
  position: absolute;
  width: 12px;
  height: 12px;
  background: var(--color-primary);
  opacity: 0.18;
  border-radius: 50%;
  bottom: 15%;
  right: 40%;
}
body.is-top .benefit-card:nth-child(3)::after {
  content: '';
  position: absolute;
  width: 18px;
  height: 18px;
  background: var(--color-primary);
  opacity: 0.12;
  border-radius: 3px;
  transform: rotate(45deg);
  top: 18%;
  left: 35%;
}

@media (max-width: 767px) {
  body.is-top .top-benefits-grid {
    gap: 16px !important;
    padding: 0 20px !important;
  }
  body.is-top .benefit-card {
    min-height: 200px !important;
  }
  body.is-top .benefit-card::before {
    width: 240px;
    height: 240px;
  }
  body.is-top .benefit-card:nth-child(odd)::before {
    left: -80px;
  }
  body.is-top .benefit-card:nth-child(even)::before {
    right: -80px;
  }
  body.is-top .benefit-card .benefit-body {
    max-width: 78%;
  }
  body.is-top .benefit-card:nth-child(odd) .benefit-body {
    margin-left: -16px !important;
  }
  body.is-top .benefit-card:nth-child(even) .benefit-body {
    margin-right: -16px !important;
  }
  body.is-top .benefit-num {
    font-size: 28px !important;
  }
  body.is-top .benefit-title {
    font-size: 17px !important;
  }
  body.is-top .benefit-text {
    font-size: 12.5px !important;
    line-height: 1.75 !important;
    /* 本文のみ 行長を調整（実フォントに合わせて段階的に拡張） */
    max-width: 13.33em !important;
    line-break: strict !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
  }
}

@media (min-width: 768px) {
  /* PC：セクション全体の上下余白を詰め、カード間も詰める */
  body.is-top .section-top-benefits {
    padding: 56px 0 !important;
  }
  body.is-top .top-benefits-grid {
    gap: 14px !important;
    max-width: 900px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0 22px !important;
  }
  body.is-top .benefit-card {
    min-height: 188px !important;
    align-items: center !important;
  }
  body.is-top .benefit-card::before {
    width: 340px;
    height: 340px;
  }
  body.is-top .benefit-card:nth-child(odd)::before {
    left: -110px;
  }
  body.is-top .benefit-card:nth-child(even)::before {
    right: -110px;
  }
  body.is-top .benefit-card .benefit-body {
    max-width: 46%;
  }
  body.is-top .benefit-card:nth-child(odd) .benefit-body {
    margin-left: -36px !important;
  }
  body.is-top .benefit-card:nth-child(even) .benefit-body {
    margin-right: -36px !important;
  }
  body.is-top .benefit-num {
    font-size: 44px !important;
    margin-bottom: 8px !important;
  }
  body.is-top .benefit-title {
    font-size: 21px !important;
    margin-bottom: 8px !important;
  }
  body.is-top .benefit-text {
    font-size: 14px !important;
    line-height: 1.85 !important;
  }
}





/* --- 5. ギャラリー画像 --- */
body.is-top .marquee-img {
  border-radius: 12px !important;
}

/* --- 6. 社長の想い（Story）--- */
body.is-top .story-video {
  max-width: 700px !important;
}
body.is-top .story-video-wrap {
  border-radius: 12px !important;
  overflow: hidden !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08) !important;
}
body.is-top .story-video-desc {
  margin: 0 auto 32px !important;
  font-size: 15px !important;
  line-height: 2 !important;
  color: #333 !important;
  text-align: left !important;
  letter-spacing: 0.04em !important;
}

/* 職種セクション末尾の「求人を検索する」（section-top-filter と同系の .btn-search-popup） */
body.is-top .section-top-job-search {
  text-align: center !important;
  margin-top: 28px !important;
  padding-bottom: 2px !important;
}
@media (min-width: 768px) {
  body.is-top .section-top-job-search {
    margin-top: 36px !important;
  }
}

/* --- 8. Q&A：Qラベル + 余白改善 --- */
body.is-top .section-top-qa .qa-block {
  border-bottom-color: #e8e4df !important;
}
body.is-top .section-top-qa .block-heading {
  padding: 18px 0 !important;
}
body.is-top .section-top-qa .heading-content {
  padding-left: 32px !important;
  position: relative !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.6 !important;
}
body.is-top .section-top-qa .heading-content::before {
  content: 'Q';
  position: absolute;
  left: 0;
  top: 0;
  font-family: 'Lato', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1.6;
}
body.is-top .section-top-qa .block-content {
  padding-left: 32px !important;
  font-size: 14px !important;
  line-height: 1.85 !important;
  color: #777 !important;
}

@media (min-width: 768px) {
  body.is-top .section-top-qa > .wrapper > .column-right {
    max-width: 640px !important;
    margin: 0 auto !important;
  }
}

/* --- 9. ニュース：タイムライン感を出す --- */
body.is-top .section-top-news .news-list li {
  border-bottom: 1px solid #f0ede8 !important;
}
body.is-top .section-top-news .news-list a {
  padding: 18px 0 !important;
}
body.is-top .section-top-news .item-time {
  font-family: 'Lato', sans-serif !important;
  font-size: 12px !important;
  color: var(--color-text-sub) !important;
  letter-spacing: 0.06em !important;
}
body.is-top .section-top-news .item-text {
  font-size: 14px !important;
  line-height: 1.6 !important;
}

@media (min-width: 768px) {
  body.is-top .section-top-news > .wrapper > .column-right {
    max-width: 640px !important;
    margin: 0 auto !important;
  }
}

/* --- 10. Instagram --- */
body.is-top .insta-lead {
  font-size: 13px !important;
  color: #999 !important;
  margin-bottom: 24px !important;
}

/* --- 11. 検索ボタン --- */
body.is-top .section-top-filter {
  padding: 8px 0 !important;
}
body.is-top .btn-search-popup {
  border-radius: 60px !important;
  padding: 16px 40px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}
body.is-top .btn-search-popup:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(30, 132, 73, 0.18);
}

/* --- 12. スクロールアニメーション：全セクションに適用 --- */
body.is-top .js-section-reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
body.is-top .js-section-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* 個別アイテムのスタガード */
body.is-top .js-fade-item {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}
body.is-top .js-fade-item.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* --- 13. FVメインコピー：極太・skew（translateY なしで写真エリア内に収める）--- */
body.is-top .section-top-keyvisual:not(.keyvisual--recruit-five) {
  background: #fff !important;
}
/* PC のみ：FVを本文カラム幅に。スマホは下記 @media (max-width:767.98px) の全幅ブリードを上書きしないこと */
@media (min-width: 768px) {
  body.is-top .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-wrapper {
    overflow: visible !important;
    width: 100% !important;
    max-width: 1040px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0.2rem !important;
    padding-right: 0.2rem !important;
    box-sizing: border-box !important;
  }
}

/* メイン見出し：各行同じ字組（Noto Sans JP・白・影） */
body.is-top .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-title .keyvisual-title-line {
  display: block !important;
  max-width: 100% !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
}

body.is-top .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-title {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0.1em !important;
  max-width: 100% !important;
  font-family: "Noto Sans JP", sans-serif !important;
  font-size: clamp(20px, 7vmin, 42px) !important;
  font-weight: 700 !important;
  line-height: 1.28 !important;
  letter-spacing: 0.04em !important;
  color: #fff !important;
  text-align: left !important;
  text-shadow:
    0 2px 14px rgba(0, 0, 0, 0.45),
    0 1px 4px rgba(0, 0, 0, 0.35) !important;
  pointer-events: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.is-top .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-facility {
  pointer-events: none !important;
  margin: 12px 0 0 !important;
  font-family: "Noto Sans JP", sans-serif !important;
  font-size: clamp(14px, 1.55vw, 19px) !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  letter-spacing: 0.06em !important;
  color: rgba(245, 245, 245, 0.82) !important;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.4) !important;
}

@media (max-width: 767.98px) {
  body.is-top .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-text {
    left: 0 !important;
    right: 0 !important;
    width: auto !important;
    max-width: none !important;
    box-sizing: border-box !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
  body.is-top .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-title {
    width: 100% !important;
    box-sizing: border-box !important;
  }
  body.is-top .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-title .keyvisual-title-line {
    font-size: clamp(18px, 5.2vw, 32px) !important;
    line-height: 1.3 !important;
  }
  body.is-top .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-facility {
    font-size: clamp(13px, 3.6vw, 17px) !important;
    margin-top: 10px !important;
  }
}

@media (min-width: 768px) {
  body.is-top .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-text {
    padding: 0 40px 48px 44px !important;
    justify-content: flex-end !important;
    align-items: flex-start !important;
    max-width: none !important;
    width: auto !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  body.is-top .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-title {
    font-size: clamp(32px, 3.15vw, 44px) !important;
    line-height: 1.32 !important;
    gap: 0.08em !important;
  }
  body.is-top .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-title .keyvisual-title-line {
    font-size: inherit !important;
    line-height: inherit !important;
  }
  body.is-top .section-top-keyvisual:not(.keyvisual--recruit-five) .keyvisual-facility {
    margin: 16px 0 0 !important;
    font-size: 19px !important;
    font-weight: 500 !important;
    letter-spacing: 0.07em !important;
    color: rgba(235, 235, 235, 0.92) !important;
  }
}

/* --- 14. 検索ポップアップ --- */
body.is-top .search-popup-modal {
  border-radius: 16px !important;
  box-shadow: 0 16px 60px rgba(0, 0, 0, 0.18) !important;
}

/* --- 15. フッター仕上げ --- */
body.is-top .footer {
  border-top: none !important;
}
body.is-top .footer-top-band {
  height: 2px !important;
  background: var(--color-primary) !important;
  opacity: 0.3;
}

/* --- 16. Sticky検索バー --- */
body.is-top .sticky-search-bar {
  border-top: 1px solid rgba(0,0,0,0.06) !important;
  box-shadow: 0 -2px 12px rgba(0,0,0,0.04) !important;
}

/* --- 17. btn-common のhover改善 --- */
body.is-top .btn-common.trans {
  transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease !important;
}
body.is-top .btn-common.trans:hover {
  transform: translateY(-1px);
}

/* --- 18. セクション間の区切りをなくす（余白で語る） --- */
body.is-top .section-top-benefits,
body.is-top .section-top-story,
body.is-top .section-top-job,
body.is-top .section-top-qa,
body.is-top .section-top-news,
body.is-top .section-top-instagram {
  border-top: none !important;
}

/* ============================================
   LINE 案内モーダル（滞在 60 秒・同一タブ内累計）
   ============================================ */
body.taiyou-line-popup-open {
  overflow: hidden;
}

.taiyou-line-popup {
  position: fixed;
  inset: 0;
  z-index: 100050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
  box-sizing: border-box;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.28s ease, visibility 0.28s ease;
}

.taiyou-line-popup.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.taiyou-line-popup__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(30, 35, 40, 0.45);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}

.taiyou-line-popup__box {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 400px;
  padding: 28px 24px 28px;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(6, 199, 85, 0.12);
  text-align: center;
  box-sizing: border-box;
}

.taiyou-line-popup__close {
  position: absolute;
  top: 10px;
  right: 12px;
  width: 40px;
  height: 40px;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  font-size: 26px;
  line-height: 1;
  color: #888;
  cursor: pointer;
  border-radius: 8px;
}

.taiyou-line-popup__close:hover {
  background: rgba(0, 0, 0, 0.06);
  color: #333;
}

.taiyou-line-popup__eyebrow {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: #06c755;
  text-transform: uppercase;
}

.taiyou-line-popup__title {
  margin: 0 0 12px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 19px;
  font-weight: 700;
  line-height: 1.45;
  color: #222;
}

.taiyou-line-popup__lead {
  margin: 0 0 24px;
  font-size: 14px;
  line-height: 1.75;
  color: #555;
  text-align: center;
}

/* LINE ブランド緑の CTA（サイトのオレンジ primary を上書き） */
.taiyou-line-popup__cta.btn-common,
.taiyou-line-popup__cta.btn-common.is-primary {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 52px !important;
  padding: 16px 24px !important;
  box-sizing: border-box !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.03em !important;
  border-radius: 999px !important;
  background-color: #06c755 !important;
  border: 2px solid #06c755 !important;
  color: #fff !important;
  text-decoration: none !important;
  transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease !important;
  box-shadow: 0 2px 8px rgba(6, 199, 85, 0.25) !important;
}

.taiyou-line-popup__cta.btn-common:hover,
.taiyou-line-popup__cta.btn-common.is-primary:hover,
.taiyou-line-popup__cta:hover {
  opacity: 1 !important;
  background-color: #05b04c !important;
  border-color: #05b04c !important;
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(6, 199, 85, 0.35) !important;
}

/* ============================================
   最近チェックした求人（近隣求人と同じ .detail-job-card、画像なし、最大3件）
   ============================================ */
.section-recent-jobs {
  padding: 24px 0 20px;
  background: var(--color-bg, #FAFAF7);
}
.section-recent-jobs .wrapper {
  max-width: 1120px;
}
.recent-jobs-heading {
  font-size: 20px;
  font-weight: 700;
  color: #222;
  letter-spacing: 0.06em;
  margin: 0 0 18px;
  line-height: 1.4;
  text-align: left;
  border-bottom: none;
  padding-left: 0;
}
@media (min-width: 768px) {
  .recent-jobs-heading {
    font-size: 22px;
    margin-bottom: 22px;
  }
}
body.is-top .section-recent-jobs {
  background: #fff;
  padding: 16px 0 32px;
}

/* ============================================
   求人シェア（応募フォーム直上・追従バー共通）
   ============================================ */
.job-share-cta {
  text-align: center;
  margin: 20px 0 10px;
  padding: 0 4px;
}
.job-share-microcopy {
  margin: 0 0 14px;
  font-size: 15px;
  font-weight: 800;
  color: #2b2b2b;
  letter-spacing: 0.02em;
  line-height: 1.45;
}
@media (min-width: 768px) {
  .job-share-microcopy {
    font-size: 16px;
  }
}
.job-share-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  max-width: 400px;
  margin: 0 auto;
  padding: 14px 22px;
  font-size: 14px;
  font-weight: 700;
  color: #666 !important;
  background: #fff !important;
  border: 1.5px solid #d5d5d5 !important;
  border-radius: 999px;
  cursor: pointer;
  line-height: 1.3;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
  -webkit-tap-highlight-color: transparent;
  box-sizing: border-box;
}
.job-share-ghost:hover {
  background: #fafafa !important;
  border-color: #bdbdbd !important;
  color: #444 !important;
}
.job-share-ghost:active {
  transform: scale(0.98);
}
.job-share-ghost-icon {
  font-size: 1.05em;
  line-height: 1;
}
@media (max-width: 600px) {
  .job-share-cta {
    margin: 16px 0 8px;
  }
  .job-share-microcopy {
    font-size: 14px;
    margin-bottom: 12px;
  }
  .job-share-ghost {
    padding: 12px 18px;
    font-size: 13px;
    max-width: 100%;
  }
}

