/**
Theme Name: 株式会社Aキャリア
Text Domain: acareer
Template: astra
*/
/* =================================================== /
/ 指定7系統カラーパレット
/ 1. メイン
/ 2. アクセント
/ 3. 文字ベース
/ 4. 中間色
/ 5. 白
/ 6. 黒
/ 7. 線
/ =================================================== */ :root {
  /* 1. メイン */
  --color-main: #31b14f;
  --color-main-light: rgba(49, 177, 79, 0.08);
  --color-logo-dark: #3BA37B;
  --color-logo-light: #60bd9b;
  /* 2. アクセント */
  --color-search: #00b7ee;
  --color-search-hover: #00a3dc;
  --color-reg: #EA7671;
  --color-reg-hover: #de6b6a;
  /* 3. ベース（文字色） */
  --color-base-text: #0b1528;
  /* 4. 中間色 */
  --color-gray-text: #52617a;
  --color-gray-light: #f1f5f9;
  /* 5. 白 */
  --color-white: #ffffff;
  /* 6. 黒 */
  --color-black: #070e1a;
  /* 7. 線 */
  --color-border: #cbd5e1;
  /* 8. グラデーション */
  --grad-cool: linear-gradient(135deg, #3BA37B 0%, #60bd9b 100%);
  --grad-daial: radial-gradient(1240px 400px at 85% -20%, #009944, transparent 60%), radial-gradient(900px 500px at 10% 120%, #23ac39, transparent 60%), linear-gradient(135deg, #2FA88A 0%, #60bd9b 55%, #00b7ee 100%);
  /* Glassmorphism 2.0 デザイントークン */
  --glass-blur: blur(20px) saturate(180%);
  --glass-shadow: 0 8px 32px 0 rgba(7, 14, 26, 0.08);
  /* デジタル庁推奨 高視認性フォーカスインジケータ */
  --focus-outline-color: var(--color-main);
  --focus-outline-width: 3px;
  --focus-outline-offset: 2px;
  --font-family: "Manrope", "Helvetica Neue", Arial, YakuHanJPs, 'Noto Sans JP', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
/* =================================================== /
/ 基本リセット & アクセシビリティ基盤 /
/ =================================================== */
/* CSS :has() によるモーダル展開時の背面スクロール抑制 */
body:has(dialog[open]) {
  overflow: hidden;
}
body {
  font-family: var(--font-family);
  color: var(--color-base-text);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  padding-bottom: 84px; /* スマホ下部固定バーの重なり回避 */
}
@media (min-width: 1140px) {
  body {
    padding-bottom: 0;
  }
}
/* デジタル庁準拠の統一フォーカスインジケータ（JIS 2.4.7） */
.site-header a:focus-visible, .site-header button:not(.circular-menu-trigger):focus-visible, #mobile-nav-dialog a:focus-visible, #mobile-nav-dialog button:focus-visible, .mobile-bottom-bar a:focus-visible {
  outline: var(--focus-outline-width) solid var(--focus-outline-color);
  outline-offset: var(--focus-outline-offset);
  border-radius: 6px;
}
/* 正円メニューボタン専用のフォーカスリング（形状に合わせた正円化） */
.circular-menu-trigger:focus-visible {
  outline: var(--focus-outline-width) solid var(--focus-outline-color) !important;
  outline-offset: var(--focus-outline-offset) !important;
  border-radius: 50% !important;
}
.header-utility-bar a:focus-visible, .header-utility-bar button:focus-visible, .drawer-corp-btn:focus-visible {
  outline: var(--focus-outline-width) solid var(--color-white);
  outline-offset: var(--focus-outline-offset);
}
/* 共通コンテナ */
.header-container {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 1.25rem;
}
.grad-daial {
  background: var(--grad-daial);
}
/* =================================================== /
/ ヘッダー全体構造（Glassmorphism 2.0 レイヤー設計） /
/ =================================================== */
.site-header {
  width: 100%;
  position: relative;
  z-index: 40;
  background: var(--color-white);
}
/* 背景専用ガラスレイヤー（包含ブロック制約を作らない分離設計） */
.header-glass-bg {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.78);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border-bottom: 1px solid var(--color-white);
  box-shadow: var(--glass-shadow);
  pointer-events: none;
  z-index: -1;
}
/* 上段：企業特化＆ユーティリティ（PC専用・黒背景） */
.header-utility-bar {
  display: none;
  /*background: var(--color-gray-light); */
  font-size: 0.82rem;
  border-top: 5px solid var(--color-logo-dark);
  position: relative;
  z-index: 1;
}
@media (min-width: 1140px) {
  .header-utility-bar {
    display: block;
  }
}
.utility-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 48px;
}
.utility-tagline {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 500;
  /* color: var(--color-white); */
}
.utility-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background-color: var(--color-main);
  box-shadow: 0 0 8px var(--color-main);
  flex-shrink: 0;
}
.utility-actions {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}
.utility-nav {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}
.utility-link {
  display: flex;
  align-items: center;
  gap: 0.25em;
  padding: 0.25em 1em;
  background: var(--color-logo-dark);
  border: 1px solid var(--color-logo-dark);
  border-radius: 3px;
  color: var(--color-white);
  font-weight: 600;
}
.utility-link:hover {
  background: var(--color-white);
  color: var(--color-logo-dark);
}
.utility-tel {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 0.4rem;
  padding-right: 1rem;
  border-right: 1px solid var(--color-logo-light);
  color: var(--color-logo-dark);
  line-height: 1.3;
}
.utility-tel-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--color-logo-dark);
  font-size: 1.25rem;
  font-weight: 500;
  font-variation-settings: "wdth"500;
  letter-spacing: 0.03em;
  text-decoration: none;
}
.utility-tel-link:hover {
  /* color: var(--color-white); */
}
.utility-tel-hours {
  flex-basis: auto;
  width: fit-content;
  /*
  padding: 0.25rem 1rem;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: var(--color-white);
	*/
  color: var(--color-logo-dark);
  font-size: 0.8rem;
  font-weight: 400;
}
/* 企業様向けボタン（PC上段） */
.corp-btn-pc {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.15rem 0.85rem;
  min-height: 28px;
  background: var(--color-white);
  border: 1px solid var(--color-gray-text);
  color: var(--color-gray-text);
  font-weight: 700;
  font-size: 0.82rem;
  text-decoration: none;
  transition: all 0.25s ease;
}
.corp-btn-pc:hover {
  background: var(--color-gray-text);
  color: var(--color-white);
}
/* 下段：求職者メインバー */
.header-main-bar {
  position: relative;
  z-index: 1;
  padding: 0.5rem 0;
  background-color: var(--color-gray-light);
}
.main-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  height: 3.5rem;
}
/* ブランドロゴ */
.brand {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.25rem 0;
  text-decoration: none;
}
.brand-logo-mark {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.brand-logo-mark svg, .brand-logo-mark img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}
.brand-text-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25em 0;
}
.brand-sub {
  font-size: 0.6rem;
  font-weight: 700;
  color: var(--color-gray-text);
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.brand-name {
  font-size: 1.32rem;
  font-weight: 900;
  color: var(--color-base-text);
  letter-spacing: 0.1em;
  line-height: 1.2;
}
/* PCナビ ＆ 主要CTA */
.desktop-nav-group {
  display: none;
  align-items: center;
  gap: 1.75rem;
}
@media (min-width: 1140px) {
  .desktop-nav-group {
    display: flex;
    flex: 1;
    justify-content: flex-end;
    margin-left: 2.5rem;
    /* padding-right: 4rem; */
  }
}
.main-nav-links {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}
.main-nav-item {
  font-size: clamp(14.5px, 1.25vw, 16px);
  font-weight: 700;
  color: var(--color-base-text);
  padding: 0.5rem 0.25rem;
  text-decoration: none;
  transition: color 0.2s;
}
.main-nav-item:hover {
  color: var(--color-main);
}
.main-cta-group {
  display: flex;
  align-items: stretch;
  gap: 0.5rem;
  height: 3.5rem;
}
/* CTAボタン共通 */
.btn-cta {
  display: inline-flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0.65rem;
  height: 100%;
  padding: 0.75rem 1.45rem;
  box-sizing: border-box;
  border-radius: 3px;
  color: var(--color-white);
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0.1em;
  line-height: 1 !important;
  text-decoration: none;
  /* transition: all 0.25s ease; */
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}
.btn-cta:hover, .drawer-btn:hover {
  color: var(--color-white);
}
/* お仕事検索ボタン */
.btn-search, .drawer-btn-search {
  background: var(--color-search);
}
.btn-search:hover, .drawer-btn-search:hover {
  background: var(--color-search-hover);
}
/* Web登録ボタン */
.btn-register, .drawer-btn-register {
  background: var(--color-reg);
}
.btn-register:hover, .drawer-btn-register:hover {
  background: var(--color-reg-hover);
}
/* 閲覧履歴せボタン */
.btn-history, .drawer-btn-history {
  align-items: center;
  background: var(--color-logo-light);
}
.btn-history:hover, .drawer-btn-history:hover {
  background: var(--color-logo-dark);
}
/* CTAボタン内の2段テキスト */
.btn-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.25em;
  text-align: left;
  line-height: 1;
}
.btn-sub {
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  opacity: 0.95;
  line-height: 1;
}
/* =================================================== 
   PC用 ドロップダウンサブメニュー（W3C / アクセシブル仕様）
=================================================== */
.pc-nav-list {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pc-nav-item {
  position: relative;
}
.pc-nav-item .main-nav-item {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.dropdown-caret {
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}
/* ドロップダウン本体 */
.pc-dropdown-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  min-width: 210px;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: 0.5rem 0;
  margin: 0;
  list-style: none;
  box-shadow: 0 10px 30px rgba(7, 14, 26, 0.12);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 100;
}
/* ホバー時 または キーボードフォーカス進入時 (:focus-within) に表示 */
.pc-nav-item.has-dropdown:hover .pc-dropdown-menu, .pc-nav-item.has-dropdown:focus-within .pc-dropdown-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.pc-nav-item.has-dropdown:hover .dropdown-caret, .pc-nav-item.has-dropdown:focus-within .dropdown-caret {
  transform: rotate(180deg);
  color: var(--color-main);
}
.pc-dropdown-link {
  display: block;
  padding: 0.65rem 1.15rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--color-base-text);
  text-decoration: none;
  transition: background-color 0.2s, color 0.2s;
}
.pc-dropdown-link:hover, .pc-dropdown-link:focus-visible {
  background-color: var(--color-gray-light);
  color: var(--color-main);
}
/* =================================================== 
   モバイル用 アコーディオンサブメニュー（details / summary）
=================================================== */
.drawer-accordion {
  width: 100%;
  border-radius: 6px;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  overflow: hidden;
}
.drawer-accordion-summary {
  cursor: pointer;
  list-style: none; /* 標準矢印を非表示 */
  user-select: none;
}
.drawer-accordion-summary::-webkit-details-marker {
  display: none; /* Safari向け標準矢印非表示 */
}
.drawer-accordion-caret {
  color: var(--color-gray-text);
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  flex-shrink: 0;
}
/* 開いた状態のアクション */
.drawer-accordion[open] .drawer-accordion-caret {
  transform: rotate(180deg);
  color: var(--color-logo-dark);
}
.drawer-accordion-content {
  display: flex;
  flex-direction: column;
  background: rgba(241, 245, 249, 0.6);
  border-top: 1px solid var(--color-border);
  padding: 0.35rem 0;
}
/* 新しい専用クラス（既存の白文字CSSとの干渉を回避） */
.drawer-accordion-link {
  display: flex;
  align-items: center;
  padding: 0.75rem 1.25rem 0.75rem 2rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--color-base-text); /* 濃い文字色を適用 */
  text-decoration: none;
  transition: background-color 0.2s, color 0.2s;
}
.drawer-accordion-link:hover {
  background-color: var(--color-white);
  color: var(--color-logo-dark);
}
/* =================================================== /
/ 正円レスポンシブメニュー（細線2本線 ＋ 下部極小MENU文字） /
/ =================================================== */
.header-menu-action {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-width: 54px;
  min-height: 54px;
}
@media (min-width: 1140px) {
  .header-menu-action {
    position: fixed;
    right: 1.5rem;
    top: 20px;
    z-index: 1000;
  }
}
.circular-menu-trigger {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: var(--color-white);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1.5px solid var(--color-white);
  box-shadow: 0 4px 16px rgba(7, 14, 26, 0.08);
  color: var(--color-base-text);
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 45;
  padding: 0;
  cursor: pointer;
}
/* スクロール時に右上に固定化（フローティング仕様） */
.circular-menu-trigger.is-floating {
  position: fixed !important;
  top: 1rem !important;
  right: 1.25rem !important;
  z-index: 1000 !important;
  background: var(--color-white) !important;
  backdrop-filter: blur(20px) !important;
  box-shadow: 0 10px 30px rgba(7, 14, 26, 0.16), 0 0 0 1.5px var(--color-white) !important;
  animation: floatInCircle 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@keyframes floatInCircle {
  from {
    opacity: 0;
    transform: translateY(-12px) scale(0.9);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.trigger-lines-svg {
  width: 18px;
  height: 12px;
  display: block;
}
.menu-line-thin {
  stroke: var(--color-base-text);
  stroke-width: 1.4;
  stroke-linecap: round;
  transform-origin: center;
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), stroke 0.2s;
}
.trigger-sub-label {
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-gray-text);
  line-height: 1;
  margin-top: 3px;
  user-select: none;
  transition: color 0.2s;
}
/* 展開中（is-active）時のスタイル */
.circular-menu-trigger.is-active {
  background: var(--color-white);
  border-color: var(--color-main);
}
.circular-menu-trigger.is-active .line-top {
  transform: translateY(3px) rotate(45deg);
  stroke: var(--color-main) !important;
}
.circular-menu-trigger.is-active .line-bottom {
  transform: translateY(-3px) rotate(-45deg);
  stroke: var(--color-main) !important;
}
.circular-menu-trigger.is-active .trigger-sub-label {
  color: var(--color-main) !important;
}
/* ホバー時のスタイル */
.circular-menu-trigger:hover {
  background: var(--color-white);
  border-color: var(--color-main);
  transform: scale(1.05);
}
.circular-menu-trigger:hover .menu-line-thin {
  stroke: var(--color-main) !important;
}
.circular-menu-trigger:hover .trigger-sub-label {
  color: var(--color-main) !important;
}
/* フォーカス時（閉じた直後など）：未展開状態なら通常色を強制維持 */
.circular-menu-trigger:focus:not(.is-active) {
  background: var(--color-white);
  border-color: var(--color-white);
  color: var(--color-base-text) !important;
  transform: none;
}
.circular-menu-trigger:focus:not(.is-active) .menu-line-thin {
  stroke: var(--color-base-text) !important;
}
.circular-menu-trigger:focus:not(.is-active) .trigger-sub-label {
  color: var(--color-gray-text) !important;
}
/* =================================================== /
/ HTML5標準  ネイティブドロワー /
/ =================================================== */
#mobile-nav-dialog {
  position: fixed;
  inset: 0 0 0 auto;
  margin: 0 0 0 auto;
  width: 100%;
  max-width: 410px;
  height: 100%;
  max-height: 100%;
  border: none;
  background: var(--grad-cool);
  backdrop-filter: blur(28px) saturate(190%);
  -webkit-backdrop-filter: blur(28px) saturate(190%);
  color: var(--color-base-text);
  padding: 0;
  box-shadow: -12px 0 40px rgba(7, 14, 26, 0.16);
  outline: none;
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), display 0.35s allow-discrete;
  z-index: 50;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
#mobile-nav-dialog[open] {
  transform: translateX(0);
}
#mobile-nav-dialog::backdrop {
  background: rgba(7, 14, 26, 0.45);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  opacity: 0;
  transition: opacity 0.3s ease;
}
#mobile-nav-dialog[open]::backdrop {
  opacity: 1;
}
/* ドロワーヘッダー */
.drawer-header {
  height: 72px;
  padding: 0 1.5rem;
  border-bottom: 1px solid var(--color-logo-light);
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: transparent;
  flex-shrink: 0;
}
.drawer-header-title .brand-sub, .drawer-header-title .brand-name {
  color: var(--color-white);
}
.drawer-header .drawer-close-btn {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  color: var(--color-base-text);
  background: var(--color-gray-light);
  border: 1px solid var(--color-border);
  cursor: pointer;
  padding: 0;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.15s ease;
}
/* ホバー時のカラー切り替え（既存カラー維持） */
.drawer-header .drawer-close-btn:hover {
  background: var(--color-white);
  color: var(--color-main);
  border-color: var(--color-main);
}
/* クリック・タップ時の微小なスケールダウン（心地よいフィードバック） */
.drawer-header .drawer-close-btn:active {
  transform: scale(0.94);
}
/* バツ印SVGの90度回転アニメーション */
.drawer-header .drawer-close-icon {
  display: block;
  flex-shrink: 0;
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  transform-origin: center;
}
.drawer-header .drawer-close-btn:hover .drawer-close-icon {
  transform: rotate(90deg);
}
/* アイコン下の極小「Close」テキスト */
.drawer-close-label {
  font-size: 0.55rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1;
  color: inherit;
  user-select: none;
}
/* ドロワー内コンテンツ */
.drawer-body {
  flex: 1;
  overflow-y: auto;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  background: url('images/logo-white-trans.svg') no-repeat center bottom;
}
.drawer-nav-section-title {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-gray-text);
  margin-bottom: 0.65rem;
  display: block;
}
/* ドロワー内横並びCTAボタングループ */
.drawer-cta-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.drawer-btn {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.65rem 0.5rem;
  min-height: 48px;
  border-radius: 6px;
  color: var(--color-white);
  font-weight: 600;
  font-size: 0.88rem;
  text-decoration: none;
  letter-spacing: 0.1em;
  transition: all 0.2s ease;
}
.drawer-btn-register-text {
  display: flex;
  flex-direction: column;
  text-align: center;
  line-height: 1.15;
}
.drawer-btn-register-sub {
  font-size: 0.65rem;
  opacity: 0.95;
}
.drawer-btn-icon {
  flex-shrink: 0;
}
.drawer-nav-list {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.drawer-nav-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.95rem 1.25rem;
  min-height: 50px;
  border-radius: 6px;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  font-size: 0.96rem;
  font-weight: 700;
  color: var(--color-base-text);
  text-decoration: none;
}
.drawer-nav-link:hover {
  background: var(--color-white);
  color: var(--color-logo-dark);
}
.drawer-nav-link > span {
  transition: transform 0.2s ease, color 0.2s ease;
}
.drawer-nav-link:hover > span {
  transform: translateX(3px);
}
.drawer-arrow-icon {
  color: var(--color-gray-text);
  transition: transform 0.2s ease, color 0.2s ease;
}
.drawer-nav-link:hover .drawer-arrow-icon {
  transform: translateX(3px);
}
/* ドロワー内 企業様専用独立ボタン */
.drawer-corp-area {
  display: block;
}
.drawer-corp-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 56px;
  padding: 0.85rem 1.25rem;
  border-radius: 6px;
  background: var(--color-gray-text);
  text-decoration: none;
  box-shadow: none;
  transition: all 0.2s ease;
}
.drawer-corp-btn:hover {
  background: var(--color-base-text);
}
.drawer-corp-btn-content {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.drawer-corp-text-group {
  display: flex;
  flex-direction: column;
  text-align: left;
}
.drawer-corp-label {
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: var(--color-white);
  line-height: 1.3;
  transition: transform 0.2s ease, color 0.2s ease;
}
.drawer-corp-arrow {
  color: var(--color-border);
  flex-shrink: 0;
  transition: transform 0.2s ease, color 0.2s ease;
}
.drawer-corp-btn:hover .drawer-corp-label, .drawer-corp-btn:hover .drawer-corp-arrow {
  color: var(--color-white);
  transform: translateX(3px);
}
/* お問い合わせ・電話窓口グループ */
.drawer-contact-group {
  padding: 1.35rem;
  background: var(--color-white);
  border-radius: 6px;
}
.drawer-contact-title {
  font-size: 0.82rem;
  font-weight: 800;
  color: var(--color-base-text);
  margin-bottom: 0.85rem;
  text-align: center;
}
.drawer-inquiry-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  min-height: 48px;
  padding: 0.75rem 1rem;
  border-radius: 6px;
  background: var(--color-logo-dark);
  color: var(--color-white);
  font-weight: 700;
  font-size: 0.92rem;
  margin-bottom: 1rem;
  border: 1px solid var(--color-logo-dark);
  text-decoration: none;
  transition: all 0.2s;
}
.drawer-inquiry-btn:hover {
  color: var(--color-logo-dark);
  background: var(--color-white);
}
.drawer-tel-box {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.drawer-tel-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--color-logo-dark) !important;
  font-size: 1.75rem;
  font-weight: 900;
  letter-spacing: 0.03em;
  min-height: 44px;
  padding: 0.25rem 0.5rem;
  text-decoration: none;
}
.drawer-tel-hours {
  font-size: 0.78rem;
  color: var(--color-gray-text);
  margin-top: 0.2rem;
}
/* 補足ナビゲーション */
.drawer-sub-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding-top: 0.5rem;
  margin-top: auto;
}
.drawer-sub-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px; /* タップ領域の確保（WCAG / モバイル推奨基準） */
  padding: 0.25rem 0.5rem;
  font-size: 0.78rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.8);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.2s ease;
}
.drawer-sub-link:hover {
  color: var(--color-white);
}
/* =================================================== /
/ スマホ画面最下部 固定アクションバー /
/ =================================================== */
.mobile-bottom-bar {
  display: block;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--color-white);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border-top: 1px solid var(--color-white);
  padding: 0.65rem 1rem;
  z-index: 35;
  box-shadow: 0 -8px 24px rgba(7, 14, 26, 0.08);
}
@media (min-width: 1140px) {
  .mobile-bottom-bar {
    display: none;
  }
}
.bottom-bar-grid {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 0.75rem;
  max-width: 500px;
  margin: 0 auto;
}
.btn-search-mobile {
  min-height: 48px;
  padding: 0.6rem 0.5rem;
  border-radius: 6px;
  color: var(--color-white);
  font-weight: 800;
  font-size: 0.9rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  background: var(--color-search);
  box-shadow: none;
  text-decoration: none;
  transition: background-color 0.2s;
}
.btn-search-mobile:active {
  background-color: var(--color-search-hover);
}
.btn-register-mobile {
  min-height: 48px;
  padding: 0.5rem 0.5rem;
  border-radius: 6px;
  background: var(--color-reg);
  color: var(--color-white);
  font-weight: 900;
  font-size: 0.92rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-shadow: none;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color 0.2s;
}
.btn-register-mobile:active {
  background-color: var(--color-reg-hover);
}
.btn-register-mobile-sub {
  font-size: 0.7rem;
  font-weight: 700;
}
.btn-register-mobile-inner {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
/* スマホ固定バーの応募ボタンデザイン */
.mobile-bottom-bar .btn-apply-mobile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #ff6b00 0%, #ff3b30 100%); /* 応募ボタンのメインカラー（必要に応じて調整） */
  color: #ffffff;
  text-decoration: none;
  border-radius: 8px;
  padding: 6px 8px;
  font-weight: bold;
  box-shadow: 0 2px 6px rgba(255, 59, 48, 0.3);
  transition: opacity 0.2s ease;
}
.mobile-bottom-bar .btn-apply-mobile:active {
  opacity: 0.85;
}
.mobile-bottom-bar .btn-apply-mobile-sub {
  font-size: 0.65rem;
  line-height: 1;
  opacity: 0.95;
  margin-bottom: 2px;
}
.mobile-bottom-bar .btn-apply-mobile-inner {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.95rem;
  line-height: 1.2;
}
.mobile-bottom-bar .btn-apply-mobile-inner svg {
  flex-shrink: 0;
}
/* =================================================== /
/ 動きの配慮（WCAG 2.3.3 / prefers-reduced-motion） /
/ =================================================== */
@media (prefers-reduced-motion: reduce) {
  *, ::before, ::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .circular-menu-trigger.is-floating {
    animation: none !important;
  }
}
/* =================================================== /
/ ページヘッダー /
/ =================================================== */
.page-hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(1240px 400px at 85% -20%, #009944, transparent 60%), radial-gradient(900px 500px at 10% 120%, #23ac39, transparent 60%), linear-gradient(135deg, #2FA88A 0%, #60bd9b 55%, #00b7ee 100%);
  color: var(--color-white);
  padding: 42px 50px 50px;
}
.page-hero__inner {
  max-width: 1240px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
.page-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  font-size: 14px;
  /* text-transform: uppercase; */
  padding: 6px 14px;
  border: 1px solid rgba(255, 255, 255, .55);
  border-radius: 999px;
  background: rgba(255, 255, 255, .08);
  backdrop-filter: blur(4px);
}
h1.page-hero__title-jp {
  /* font-weight: 800;
  font-size: clamp(56px, 9vw, 128px); */
  font-size: clamp(32px, 4.5vw, 52px);
  line-height: 1;
  letter-spacing: .1em;
  margin: 22px 0 8px;
  color: var(--color-white);
}
.page-hero__title-en {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: .15em;
  margin: 12px 0 0;
  display: flex;
  align-items: center;
  gap: 16px;
}
.page-hero__title-en::before {
  content: "";
  display: inline-block;
  width: 36px;
  height: 2px;
  background: var(--color-white);
  opacity: .8;
}
.page-hero__breadcrumb {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 40px;
  font-size: 12.5px;
  opacity: .85;
  letter-spacing: .08em;
}
.page-hero__breadcrumb a {
  color: var(--color-white);
  text-decoration: none;
}
.page-hero__breadcrumb .sep {
  opacity: .5;
}
/* ロゴマーク散らし（画像ベース）— 共通 */
.page-hero__mark {
  position: absolute;
  pointer-events: none;
  transform-origin: center;
}
.page-hero__mark img {
  display: block;
  width: 100%;
  height: auto;
}
/* ドットパターン */
.page-hero__dots {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: radial-gradient(rgba(255, 255, 255, .3) 1.2px, transparent 1.2px);
  background-size: 22px 22px;
  mask-image: linear-gradient(90deg, transparent, #000 20%, #000 80%, transparent);
  opacity: .55;
}
/* ロゴマークの大小散らし配置 */
.page-hero__mark--xl {
  width: 720px;
  right: -160px;
  top: -140px;
  opacity: .13;
}
@media (max-width: 768px) {
  .page-hero {
    padding: 24px 16px 28px;
  }
  .page-hero__eyebrow {
    font-size: 11px;
    padding: 3px 10px;
  }
  h1.page-hero__title-jp {
    font-size: 24px;
    margin: 12px 0 4px;
  }
  .page-hero__title-en {
    font-size: 13px;
    margin: 4px 0 0;
    gap: 8px;
  }
  .page-hero__title-en::before {}
  .page-hero__breadcrumb {
    margin-top: 16px;
    font-size: 11px;
  }
  /*
  .page-hero {
    padding: 60px 20px 68px;
  }
  .page-hero__breadcrumb {
    margin-top: 28px;
  }
	*/
}
.ac-page-header {
  background-color: var(--color-logo-dark);
  color: var(--color-white);
  padding: 60px 20px;
}
.ac-page-header-inner {
  max-width: 1240px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}
.page-header-eyebrow {
  display: inline-block;
  padding: 6px 20px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.8);
  border-radius: 9999px;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.2em;
}
.page-header-title {
  font-size: 3.5rem;
  font-weight: 600;
  line-height: 1;
  margin: 0;
  color: var(--color-white);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.page-header-subtitle {
  font-size: 1.1rem;
  font-weight: 600;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  letter-spacing: 0.2em;
}
.page-header-breadcrumb {
  font-size: 0.85rem;
  margin-top: 10px;
  opacity: 0.9;
  letter-spacing: 0.1em;
}
.page-header-breadcrumb a {
  color: var(--color-white);
  text-decoration: none;
}
.page-header-breadcrumb .sep {
  margin: 0 8px;
  opacity: 0.6;
}
/* =================================================== 
   検索フォーム統合デザイン (視認性・アクセシビリティ強化版)
=================================================== */
/* 1. フォーム全体コンテナ */
.feas-searchform {
  margin-bottom: 48px;
  display: flex;
  flex-direction: column;
  gap: 28px;
}
@media (max-width: 768px) {
  .feas-searchform {
    /*
    padding: 20px 16px;
    border-radius: 12px;
	  */
    gap: 20px;
  }
}
/* 2. 各検索グループのカード */
.search-group {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 14px;
  /* background-color: #f8fafc; */
  border: 1px solid var(--color-logo-dark);
  border-radius: 12px;
  padding: 20px;
  box-sizing: border-box;
}
@media (max-width: 600px) {
  .search-group {
    padding: 16px 12px;
  }
}
/* 3. グループタイトル ＆ 項目別アイコン配置 */
.search-group .title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--color-base-text) !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  line-height: 1.3;
}
/* アイコン共通定義 */
.search-group .title::before {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  flex-shrink: 0;
}
/* 項目別SVGアイコン設定 */
/* ① 勤務地：マップピン (パスデータ修正) */
.search-group.job-area .title::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233BA37B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}
/* ② 職種：ブリーフケース */
.search-group.job-style .title::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233BA37B' stroke-width='2'%3E%3Crect x='2' y='7' width='20' height='14' rx='2' ry='2'/%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M16 21V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v16'/%3E%3C/svg%3E");
}
/* ③ 給与：￥マーク */
.search-group:has(#feas_1_2) .title::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233BA37B' stroke-width='2.2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M6 3l6 8 6-8M12 11v10M8 15h8M8 18h8'/%3E%3C/svg%3E");
}
/* ④ 休日：カレンダー */
.search-group:has(#feas_1_3) .title::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233BA37B' stroke-width='2'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
}
/* ⑤ 勤務形態：時計 */
.search-group:has(#feas_1_4) .title::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233BA37B' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E");
}
/* ⑥ キーワード：検索タグ */
.search-group.keyword .title::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233BA37B' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z'/%3E%3C/svg%3E");
}
/* 4. チェックボックス（勤務地・職種）チップス風UI */
.search-checkbox-group {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.search-checkbox-group label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  min-height: 44px;
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--color-base-text);
  cursor: pointer;
  user-select: none;
  transition: all 0.2s ease;
  box-sizing: border-box;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02);
}
.search-checkbox-group label:hover {
  background-color: var(--color-white);
  border-color: var(--color-logo-dark);
  color: var(--color-logo-dark);
  box-shadow: 0 4px 10px rgba(59, 163, 123, 0.12);
}
.search-checkbox-group input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--color-logo-dark);
  cursor: pointer;
  margin: 0;
}
/* 選択（ON）時のスタイル反転 */
.search-checkbox-group label:has(input[type="checkbox"]:checked) {
  background-color: rgba(59, 163, 123, 0.12);
  border-color: var(--color-logo-dark);
  color: var(--color-logo-dark);
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(59, 163, 123, 0.15);
}
/* キーボードフォーカス強調 */
.search-checkbox-group label:focus-within {
  outline: var(--focus-outline-width) solid var(--focus-outline-color);
  outline-offset: 2px;
}
/* --------------------------------------------------
   勤務地エリアの表示制御（富山北部・南部のみ表示 / 高岡エリアで改行）
-------------------------------------------------- */
#feas-searchform-1 .job-area label.feas_clevel_01:not([for="feas_1_0_0"]):not([for="feas_1_0_1"]):not([for="feas_1_0_4"]) {
  display: none !important;
}
#feas-searchform-1 .search-checkbox-group-parent > label[for="feas_1_0_4"] {
  display: block !important;
  width: 100% !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 0 !important;
  line-height: 0 !important;
  overflow: hidden !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  pointer-events: none !important;
}
#feas-searchform-1 .search-checkbox-group-parent > label[for="feas_1_0_4"] * {
  display: none !important;
}
/* 5. フォーム要素（Gridレイアウト構成） */
#feas-searchform-1 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px 16px;
}
#feas-searchform-1 .job-area.search-group, #feas-searchform-1 .job-style.search-group, #feas-searchform-1 .keyword.search-group, #feas-searchform-1 .search-submit-group {
  grid-column: 1 / -1;
}
@media (max-width: 991px) {
  #feas-searchform-1 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  #feas-searchform-1 {
    grid-template-columns: 1fr;
  }
}
/* セレクトボックス（給与・休日・勤務形態）カードデザイン */
#feas-searchform-1 .search-group:has(.search-select-group) {
  background-color: var(--color-white);
  /* border: 1px solid var(--color-border); */
}
/* 6. セレクトボックス ＆ キーワード入力欄 */
.search-select-group, .search-text-input-wrap {
  position: relative;
  width: 100%;
}
.feas_term_dropdown, .feas_archive_freeword {
  width: 100% !important;
  height: 48px;
  padding: 0 16px;
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--color-base-text);
  box-sizing: border-box;
  transition: all 0.2s ease;
}
/* セレクトボックス用矢印 */
.search-select-group::after {
  content: "";
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 10px;
  height: 6px;
  background-color: var(--color-gray-text);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  pointer-events: none;
}
.feas_term_dropdown {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 36px;
  cursor: pointer;
}
.feas_term_dropdown:hover, .feas_archive_freeword:hover {
  border-color: var(--color-logo-dark);
}
.feas_term_dropdown:focus-visible, .feas_archive_freeword:focus-visible {
  outline: var(--focus-outline-width) solid var(--focus-outline-color) !important;
  outline-offset: 2px !important;
  border-color: var(--color-main) !important;
}
/* 7. お仕事検索ボタン (CTA) */
.search-submit-group {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
}
.feas-submit-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  max-width: 440px;
  min-height: 58px;
  padding: 0.85rem 2rem;
  background: linear-gradient(135deg, #00c3ff 0%, #00a3dc 100%) !important;
  color: var(--color-white) !important;
  border: none;
  border-radius: 6px;
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(0, 183, 238, 0.3);
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}
.feas-submit-button:hover {
  background: linear-gradient(135deg, #00b3eb 0%, #008ebf 100%) !important;
  box-shadow: 0 8px 26px rgba(0, 183, 238, 0.42);
  transform: translateY(-2px);
}
.feas-submit-button:focus-visible {
  outline: var(--focus-outline-width) solid var(--focus-outline-color);
  outline-offset: 3px;
}
/* =================================================== /
/ 応募・Web登録・お問い合わせフォーム(Snow Monkey Forms) /
/ =================================================== */
.ast-narrow-container .ast-article-single {
  margin: 48px 0;
  padding: 24px 48px 48px;
}
@media (max-width: 768px) {
  .ast-narrow-container .site .site-content #primary .ast-article-single {
    margin: 0;
    padding: 24px;
  }
}
/* 1. フォーム全体のベースレイアウト */
.smf-form {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
}
/* 各項目行の区切り線と余白 */
.smf-form .smf-item {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-bottom: 20px;
  border-bottom: 1px dashed var(--color-border, #e2e8f0);
}
@media (min-width: 769px) {
  .smf-form .smf-item {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 24px;
    align-items: start;
  }
}
/* 2. ラベル ＆ 必須・任意バッジ（デジタル庁デザインシステム準拠） */
.smf-form .smf-item__label {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--color-base-text, #1e293b);
  line-height: 1.4;
}
/* 必須・任意バッジの共通スタイル */
.smf-form .smf-item__label::after {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem; /* 12px */
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 4px;
  line-height: 1.2;
  white-space: nowrap;
  letter-spacing: 0.05em;
}
/* 【必須】バッジ：赤系・高コントラスト（アクセシビリティ確保） */
.smf-form .smf-item:has([data-validations*="required"]) .smf-item__label::after {
  content: "必須";
  background-color: #d9383a;
  color: #ffffff;
}
/* 【任意】バッジ：落ち着いたグレー系 */
.smf-form .smf-item:not(:has([data-validations*="required"])) .smf-item__label::after {
  content: "任意";
  background-color: #f1f5f9;
  color: #475569;
  border: 1px solid #cbd5e1;
}
/* 補足説明テキスト（ヘルパーテキスト） */
.smf-form .smf-item__description {
  font-size: 0.82rem;
  color: var(--color-gray-text, #64748b);
  margin-top: 4px;
  line-height: 1.5;
}
/* 3. 入力コントロール（テキスト / 日付 / 電話 / テキストエリア） */
.smf-form .smf-text-control__control, .smf-form .smf-textarea-control__control, .smf-form select {
  width: 100%;
  min-height: 48px; /* デジタル庁推奨 タッチターゲットサイズ */
  padding: 10px 14px;
  font-size: 1rem;
  color: var(--color-base-text, #1e293b);
  background-color: #ffffff;
  border: 1px solid var(--color-border, #cbd5e1);
  border-radius: 6px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  box-sizing: border-box;
}
.smf-form .smf-textarea-control__control {
  min-height: 120px;
  padding: 12px 14px;
  line-height: 1.6;
}
/* フォーカス時のアクセシビリティ表示（フォーカスリング） */
.smf-form .smf-text-control__control:focus-visible, .smf-form .smf-textarea-control__control:focus-visible, .smf-form .smf-file-control label:focus-within {
  outline: 3px solid var(--color-logo-dark, #0d9488);
  outline-offset: 1px;
  border-color: var(--color-logo-dark, #0d9488);
}
/* 4. ラジオボタン ＆ チェックボックス（タップ領域の確保） */
.smf-form .smf-radio-buttons-control__control, .smf-form .smf-checkboxes-control__control {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  padding-top: 6px;
}
.smf-form .smf-radio-button-control, .smf-form .smf-checkbox-control {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px; /* 指で押しやすい高さ */
  cursor: pointer;
  font-size: 0.95rem;
}
.smf-form .smf-radio-button-control__control, .smf-form .smf-checkbox-control__control {
  width: 20px;
  height: 20px;
  accent-color: var(--color-logo-dark, #0d9488); /* ブランドカラー反映 */
  cursor: pointer;
}
/* 5. ファイル選択コントロール（履歴書・職務経歴書） */
.smf-form .smf-file-control {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.smf-form .smf-file-control label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
}
.smf-form .smf-file-control__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 18px;
  background-color: #f8fafc;
  border: 1px solid var(--color-border, #cbd5e1);
  border-radius: 6px;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--color-base-text, #1e293b);
  transition: all 0.2s ease;
}
.smf-form .smf-file-control__label:hover {
  background-color: var(--color-main-light, #f0fdf4);
  border-color: var(--color-logo-dark, #0d9488);
  color: var(--color-logo-dark, #0d9488);
}
.smf-form .smf-file-control__filename {
  font-size: 0.85rem;
  color: var(--color-gray-text, #64748b);
}
.smf-form .smf-file-control__clear {
  min-height: 36px;
  padding: 0 12px;
  font-size: 0.82rem;
  background: transparent;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  color: #64748b;
  cursor: pointer;
}
.smf-form .smf-file-control__clear:hover {
  background: #fee2e2;
  color: #dc2626;
  border-color: #fca5a5;
}
/* フォーム外にある要素を消す場合（:has擬似クラスを活用） */
body:has([data-screen="confirm"]) .hide-on-step, body:has([data-screen="complete"]) .hide-on-step, body:has([data-screen="confirm"]) .smf-item__description, body:has([data-screen="complete"]) .smf-item__description {
  display: none !important;
}
/* お仕事No（job_no）フィールドを入力不可っぽく固定する */
.smf-action input[name="job_no"], input[name="job_no"] {
  pointer-events: none !important;
  background-color: #e9ecef !important;
  color: #495057 !important;
  border-color: #ced4da !important;
  cursor: not-allowed !important;
  user-select: none !important;
}
/* =================================================== /
/ ページヘッダー /
/ =================================================== */
.section__head {
  margin-bottom: 56px;
}
.section__eyebrow {
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--color-logo-dark);
  font-size: 12px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.section__eyebrow::before {
  content: "";
  width: 28px;
  height: 2px;
  background: var(--color-logo-dark);
  display: inline-block;
}
h2.section__title {
  font-size: clamp(28px, 3.4vw, 40px);
  font-weight: 700;
  letter-spacing: .02em;
  margin: 20px 0 0 !important;
  line-height: 1.35;
}
/* =================================================== /
/ Entry-content内の共通設定 /
/ =================================================== */
.entry-content {
  line-height: 1.75;
}
.entry-content {
  .message__body h3 {
    font-size: clamp(22px, 2.6vw, 30px);
    margin: 0 0 24px !important;
    font-weight: 700;
  }
  .message__body h3 em {
    font-style: normal;
    color: var(--color-logo-dark);
    background: linear-gradient(transparent 65%, rgba(47, 168, 138, .18) 65%);
    padding: 0 .1em;
  }
  .message__body p {
    margin: 0 0 1.4em;
    line-height: 2.0 !important;
    color: #333;
  }
  .message__sign {
    margin-top: 32px;
    padding-top: 24px !important;
    border-top: 1px solid var(--color-border);
  }
  .message__sign-role {
    font-size: 14px;
    color: var(--color-gray-text);
    letter-spacing: .14em;
  }
  .message__sign-name {
    font-size: 20px;
    font-weight: 700;
    letter-spacing: .06em;
  }
  .profile__table {
    border-top: 2px solid var(--color-main);
    border-left: none;
    th, td {
      text-align: left;
      vertical-align: top;
      padding: 22px 8px;
      border: none;
      border-bottom: 1px solid #ddd;
    }
    th {
      width: 200px;
      font-weight: 700;
      color: var(--color-logo-dark);
      .en {
        display: block;
        font-weight: 600;
        color: var(--color-gray-text);
        font-size: 11px;
        letter-spacing: .14em;
        margin-top: 2px;
      }
      @media (max-width: 860px) {
        width: 130px;
        padding: 18px 8px;
      }
    }
    td {
      color: #333;
      line-height: 1.9;
    }
  }
  .access__info {
    display: flex;
    flex-direction: column;
    gap: 22px;
  }
  .access__row {
    display: grid;
    grid-template-columns: 84px 1fr;
    gap: 20px;
    align-items: start;
  }
  .access__row-label {
    font-weight: 700;
    font-size: 11px;
    letter-spacing: .16em;
    color: var(--color-logo-dark);
    padding-top: 4px;
  }
  .access__row-body {
    font-size: 14.5px;
    line-height: 1.85;
  }
  .access__row-body strong {
    display: block;
    font-size: 16px;
    margin-bottom: 4px;
  }
  .access__row + .access__row {
    border-top: 1px solid var(--color-border);
    padding-top: 22px;
  }
  .access__actions {
    display: flex;
    gap: 10px;
    margin-top: 8px;
    flex-wrap: wrap;
  }
  .access__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    transition: all .2s ease;
  }
  .cta a.elementor-button-link {
    display: block;
    width: 100%;
  }
  @media (min-width: 768px) {
    .cta.cta_tel a.elementor-button-link {
      display: none;
    }
  }
}
/* =================================================== 
   カスタム投稿 job 共通レイアウト設定 (詳細・アーカイブ・検索結果)
=================================================== */
/* --- 1. 全体背景 (#content.site-content) --- */
body:has(#secondary.job-single-sidebar) #content.site-content {
  background-color: var(--color-main-light);
  background-image: url('images/logo-trans.svg');
  background-repeat: no-repeat;
  background-position: top 120px left -40px;
  background-size: 110% auto;
  position: relative;
}
@media (max-width: 991px) {
  body:has(#secondary.job-single-sidebar) #content.site-content {
    /* background-image: url('images/logo.svg'); */
    background-position: top -40px right -80px;
    background-size: 120% auto;
  }
}
/* --- 2. Astraのコンテナ（.ast-container）内で #primary と #secondary を完全2カラム化 --- */
#content .ast-container:has(#secondary.job-single-sidebar) {
  display: flex;
  gap: 36px;
  align-items: flex-start; /* sticky追従の基準領域となる */
  padding-top: 56px;
  padding-bottom: 56px;
}
/* 左カラム: #primary (メインコンテンツ領域：自動拡張) */
#content .ast-container:has(#secondary.job-single-sidebar) #primary {
  flex: 1;
  min-width: 0;
  width: auto;
  margin: 0;
  float: none;
}
/* 右カラム: #secondary (サイドバー領域：320px固定 ＋ Sticky追従) */
#secondary.job-single-sidebar {
  width: 320px;
  flex-shrink: 0;
  margin-top: 0;
  margin-bottom: 0;
  padding: 0;
  position: sticky;
  top: 100px; /* スクロール時に画面上部100pxの位置で追従固定 */
  z-index: 10;
  float: none;
}
body.single-job #secondary.job-single-sidebar {
  margin-top: 35px;
}
/* レスポンシブ対応（画面幅 991px 以下で1列縦並び化） */
@media (max-width: 991px) {
  #content .ast-container:has(#secondary.job-single-sidebar) {
    flex-direction: column;
  }
  #content .ast-container:has(#secondary.job-single-sidebar) #primary {
    width: 100%;
  }
  #secondary.job-single-sidebar {
    width: 100%;
    margin-top: 0;
    position: static; /* スマホ・タブレットでは追従を解除して通常配置 */
    top: auto;
  }
  #secondary.job-single-sidebar .widget-actions {
    display: none;
  }
}
/* --- 3. メイン記事カード (article) スタイル --- */
#primary article.job-single-article {
  background: var(--color-white);
  border-radius: 16px;
  padding: 56px;
  box-shadow: 0 10px 30px rgba(7, 14, 26, 0.06), 0 2px 8px rgba(7, 14, 26, 0.03);
  margin-bottom: 0;
}
@media (max-width: 768px) {
  #primary article.job-single-article {
    padding: 24px;
    border-radius: 12px;
  }
}
/* --- 4. パンくずリスト --- */
.job-breadcrumb {
  font-size: 0.85rem;
  padding: 0 0 1.25rem 0;
  color: var(--color-gray-text);
}
.job-breadcrumb a {
  color: var(--color-gray-text);
  text-decoration: none;
}
.job-breadcrumb a:hover {
  color: var(--color-logo-dark);
}
.job-breadcrumb .sep {
  margin: 0 0.5rem;
  opacity: 0.6;
}
/* --- 5. ヘッダー (タイトル ＆ アイキャッチ右側配置) --- */
.job-single-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: 20px;
}
.job-header-text {
  flex: 1;
  min-width: 0;
}
.job-single-title {
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 700;
  color: var(--color-base-text);
  line-height: 1.4;
  margin: 0 0 12px 0;
}
.job-single-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 0.88rem;
  color: var(--color-gray-text);
}
.job-single-meta span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.job-single-meta svg {
  color: var(--color-logo-dark);
}
/* アイキャッチ画像 */
.job-header-thumb {
  flex-shrink: 0;
  width: 200px;
  height: 130px;
  border-radius: 8px;
  overflow: hidden;
}
.job-header-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
@media (max-width: 600px) {
  .job-single-header.has-thumb {
    flex-direction: column-reverse;
  }
  .job-header-thumb {
    width: 100%;
    height: 180px;
    margin-bottom: 12px;
  }
}
/* --- 6. page-hero風 お仕事No ＆ タームラベルセクション --- */
.job-header-labels-hero {
  position: relative;
  overflow: hidden;
  background: var(--grad-daial);
  border-radius: 12px;
  padding: 20px 24px;
  margin-bottom: 36px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}
.job-labels-dots {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: radial-gradient(rgba(255, 255, 255, 0.35) 1.2px, transparent 1.2px);
  background-size: 18px 18px;
  opacity: 0.6;
}
.job-labels-inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
/* タームタグ・バッジ共通設定 */
.job-header-labels-hero .job-label-tag {
  display: inline-flex;
  align-items: center;
  padding: 7px 16px;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.06em;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
  transition: all 0.2s ease;
  background: rgba(255, 255, 255, 0.18);
  color: var(--color-white);
  border: 1px solid rgba(255, 255, 255, 0.45);
  backdrop-filter: blur(4px);
}
/* お仕事Noタグ */
.job-header-labels-hero .job-label-tag.tag-no {
  background: var(--color-white);
  color: var(--color-base-text);
  border: 1px solid var(--color-white);
  font-weight: 800;
}
/* スマホ表示対応 */
@media (max-width: 600px) {
  .job-header-labels-hero {
    padding: 16px;
  }
  .job-header-labels-hero .job-label-tag {
    font-size: 14px;
    padding: 6px 14px;
  }
  .job-header-labels-hero .job-label-tag.tag-no {
    width: auto;
  }
}
/* --- 7. テーブル ＆ コンテンツ打消し ＆ スタイリング --- */
.job-section-title {
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--color-logo-dark);
  margin: 0 0 16px 0;
  line-height: 1.2;
}
.job-single-content-wrap {
  margin-bottom: 40px;
}
.job-single-article table, .job-single-article table th, .job-single-article table td {
  border: none;
  border-bottom: none;
  margin-bottom: 0;
}
.table-responsive-container {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-bottom: 30px;
  border-radius: 8px;
  border: 1px solid var(--color-border);
}
.job-detail-table {
  width: 100%;
  border-collapse: collapse;
  background-color: var(--color-white);
  font-size: 0.92rem;
  margin-bottom: 0;
}
.job-detail-table tr {
  border-bottom: 1px solid var(--color-border);
  transition: background-color 0.2s ease;
}
.job-detail-table tr:last-child {
  border-bottom: none;
}
.job-detail-table tr:hover {
  background-color: rgba(96, 189, 155, 0.03);
}
.job-detail-table tr td:first-child, .job-detail-table tr th:first-child {
  width: 28%;
  min-width: 130px;
  background-color: #f8fafc;
  color: var(--color-base-text);
  font-weight: 700;
  padding: 14px 18px;
  border-right: 1px solid var(--color-border);
  vertical-align: top;
  line-height: 1.6;
  text-align: left;
}
.job-detail-table tr td:last-child {
  padding: 14px 18px;
  color: var(--color-base-text);
  line-height: 1.75;
  vertical-align: top;
}
@media (max-width: 768px) {
  .table-responsive-container {
    border: none;
	  border-radius:none;
  }
  .job-detail-table tr {
    border-bottom: none;
  }
  .job-detail-table tr td:first-child, .job-detail-table tr th:first-child {
    display: flex;
    width: 100%;
    min-width: 100%;
    padding: 0;
    background: none;
    border-right: none;
  }
  .job-detail-table tr td:first-child br, .job-detail-table tr th:first-child br {
	 display:none;
	}
  .job-detail-table tr td:last-child {
    display: block;
    padding: 0 0 0.5em 0;
    line-height: 1.6;
  }
}
/* --- 8. アクションボタン（共通仕様） --- */
.job-single-article .btn-cta, .job-single-sidebar .btn-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  padding: 0.75rem 1.25rem;
  min-height: 52px;
  border-radius: 3px;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.05em;
  text-decoration: none;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
  cursor: pointer;
  box-sizing: border-box;
  width: 100%;
  border: none;
}
.job-single-article .btn-cta:hover, .job-single-sidebar .btn-cta:hover {
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
  opacity: 0.95;
}
.job-single-article .btn-cta svg, .job-single-sidebar .btn-cta svg {
  flex-shrink: 0;
}
.btn-text {
  display: flex;
  flex-direction: column;
  text-align: left;
  line-height: 1.2;
}
.btn-sub {
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  opacity: 0.9;
  font-weight: 500;
}
/* 1) 応募する（ビビッドオレンジ：ホバー時に沈まず明るく反応） */
.job-single-article .btn-cta.btn-apply, .job-single-sidebar .btn-cta.btn-apply {
  background-color: #ea580c;
  color: var(--color-white);
}
.job-single-article .btn-cta.btn-apply:hover, .job-single-sidebar .btn-cta.btn-apply:hover {
  background-color: #f97316; /* ホバーで少し明るく華やかなオレンジへ */
  opacity: 1; /* 暗く沈むのを防止 */
}
/* 2) WEB登録 (color-reg) */
.job-single-article .btn-cta.btn-register {
  background-color: var(--color-reg);
  color: var(--color-white);
}
.job-single-article .btn-cta.btn-register:hover {
  background-color: var(--color-reg-hover);
}
/* 3) お仕事検索 (color-search) */
.job-single-article .btn-cta.btn-search, .job-single-sidebar .btn-cta.btn-search {
  background-color: var(--color-search);
  color: var(--color-white);
}
.job-single-article .btn-cta.btn-search:hover, .job-single-sidebar .btn-cta.btn-search:hover {
  background-color: var(--color-search-hover);
}
/* 4) 印刷する (グレー枠白背景) */
.job-single-article .btn-cta.btn-print, .job-single-sidebar .btn-cta.btn-print {
  background-color: var(--color-white);
  color: var(--color-base-text);
  border: 1px solid var(--color-border);
}
.job-single-article .btn-cta.btn-print:hover, .job-single-sidebar .btn-cta.btn-print:hover {
  background-color: var(--color-gray-light);
}
/* PC限定：サイドバーの応募・お仕事検索ボタンの高さ2倍（104px）指定 */
@media (min-width: 992px) {
  .sidebar-widget.widget-actions .btn-apply, .sidebar-widget.widget-actions .btn-search, .sidebar-widget.widget-actions .btn-register {
    min-height: 104px;
    padding: 1.25rem 1.5rem;
    gap: 1rem;
  }
  .sidebar-widget.widget-actions .btn-apply svg, .sidebar-widget.widget-actions .btn-search svg, .sidebar-widget.widget-actions .btn-register svg {
    width: 2.5rem;
    height: 2.5rem;
  }
  .sidebar-widget.widget-actions .btn-apply .btn-sub, .sidebar-widget.widget-actions .btn-search .btn-sub, .sidebar-widget.widget-actions .btn-register .btn-sub {
    font-size: 0.78rem;
    margin-bottom: 4px;
  }
  .sidebar-widget.widget-actions .btn-apply .btn-text span:last-child, .sidebar-widget.widget-actions .btn-search .btn-text span:last-child, .sidebar-widget.widget-actions .btn-register .btn-text span:last-child {
    font-size: 1.15rem;
  }
}
/* ボタンレイアウト */
.job-bottom-actions {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 36px;
}
.bottom-actions-primary .btn-cta.btn-large {
  min-height: 60px;
  font-size: 1.15rem;
}
.bottom-actions-secondary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.sidebar-btn-group {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@media (max-width: 768px) {
  .pc-only-btn {
    display: none;
  }
  .bottom-actions-secondary {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 480px) {
  .bottom-actions-secondary {
    grid-template-columns: 1fr;
  }
}
/* --- 9. サイドバーウィジェット（閲覧履歴 ＆ 似ているお仕事共通デザイン） --- */
#secondary .sidebar-widget {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 24px;
  box-shadow: 0 4px 12px rgba(7, 14, 26, 0.03);
}
#secondary .sidebar-widget.widget-actions {
  background: transparent;
  border: none;
  padding: 0;
  box-shadow: none;
}
/* 統合ウィジェット内のセクション間区切り */
.sidebar-job-section + .sidebar-job-section {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px dashed var(--color-border);
}
/* ウィジェットタイトル */
#secondary .sidebar-widget-title, #secondary .sidebar-widget h3 {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--color-logo-dark);
  border-bottom: none;
  padding-bottom: 0;
  margin: 0 0 14px 0;
  display: flex;
  align-items: center;
  gap: 8px;
}
#secondary .sidebar-widget-title svg, #secondary .sidebar-widget h3 svg {
  color: var(--color-logo-dark);
  flex-shrink: 0;
}
/* リスト全体の装飾リセット */
#secondary .job-sidebar-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
#secondary .job-sidebar-item {
  margin: 0;
  padding: 0;
  border: none;
}
/* 1枚の求人カード */
.job-sidebar-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 15px;
  background-color: var(--color-white);
  border: 1px solid var(--color-gray-text);
  border-radius: 8px;
  text-decoration: none;
  transition: border-color 0.22s ease, box-shadow 0.22s ease;
}
/* マウスオーバー時（浮き上がり transform は行わず枠線・シャドウ・色のみ変更） */
.job-sidebar-card:hover {
  border-color: var(--color-logo-dark);
  box-shadow: 0 4px 14px rgba(59, 163, 123, 0.12);
  transform: none;
}
.job-card-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
/* 求人タイトル */
#secondary .job-card-title {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--color-base-text);
  line-height: 1.3;
  margin: 0;
  transition: color 0.2s ease;
}
.job-sidebar-card:hover .job-card-title {
  color: var(--color-logo-dark);
}
/* インラインメタ情報（横つなぎ） */
.job-card-meta-inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 8px;
  font-size: 0.78rem;
  color: var(--color-gray-text);
  line-height: 1.3;
}
.meta-terms {
  color: var(--color-gray-text);
}
/* 給与タグ（赤寄りの濃いピンク #e11d48） */
.meta-salary-tag {
  display: inline-flex;
  align-items: center;
  color: #e11d48;
  font-weight: 700;
  background-color: rgba(225, 29, 72, 0.08);
  padding: 1px 6px;
  border-radius: 4px;
}
/* 矢印アイコン */
.job-card-arrow-wrap {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.job-card-arrow {
  color: var(--color-base-text);
  opacity: 0.75;
  transition: all 0.22s ease;
}
.job-sidebar-card:hover .job-card-arrow {
  color: var(--color-logo-dark);
  opacity: 1;
  transform: translateX(3px);
}
/* --- 10. 印刷用スタイル --- */
@media print {
  .site-header, .page-hero, .mobile-bottom-bar, #secondary, .job-bottom-actions, .job-breadcrumb, footer {
    display: none;
  }
  #content.site-content {
    background-image: none;
  }
  .job-single-article {
    box-shadow: none;
    padding: 0;
  }
  .single-job .site-content .ast-container {
    display: block;
  }
}
/* =================================================== 
   検索結果 ヘッダーコントロール（条件・件数・ソート・展開）
=================================================== */
.search-results-control-panel {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: 20px 24px;
  margin-bottom: 28px;
  box-shadow: 0 4px 16px rgba(7, 14, 26, 0.04);
  display: flex;
  flex-direction: column;
  gap: 16px;
}
/* 1. 検索条件タグエリア */
.search-conditions-bar {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding-bottom: 14px;
  border-bottom: 1px dashed var(--color-border);
}
.conditions-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--color-gray-text);
  white-space: nowrap;
  padding-top: 4px;
}
.conditions-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.condition-chip {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  background-color: var(--color-main-light);
  border: 1px solid rgba(49, 177, 79, 0.25);
  color: var(--color-logo-dark);
  font-size: 0.85rem;
  font-weight: 700;
  border-radius: 6px;
}
.condition-chip.empty {
  background-color: #f8fafc;
  border-color: var(--color-border);
  color: var(--color-gray-text);
  font-weight: 500;
}
/* 2. 件数 ＆ 3. ソート メタバー */
.search-meta-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.search-count-display {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--color-base-text);
}
.search-count-display .count-num {
  font-size: 1.4rem;
  font-weight: 900;
  color: var(--color-logo-dark);
  margin: 0 2px;
}
/* 0件時のテキスト表示 */
.no-jobs-text {
  font-size: 1rem;
  font-weight: 700;
  color: #e53e3e;
}
.search-sort-display {
  display: flex;
  align-items: center;
  gap: 8px;
}
.sort-label {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--color-gray-text);
  white-space: nowrap;
}
.sort-control-inner select {
  height: 40px;
  padding: 0 32px 0 12px;
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 6px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--color-base-text);
  cursor: pointer;
  transition: border-color 0.2s ease;
}
/* 4. パネル下部: 「検索しなおす」開くボタンエリア */
.search-re-search-action {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed var(--color-border);
  display: flex;
  justify-content: flex-end;
}
/* 開くボタン単体の高さ・タップ領域設定 */
.btn-re-search {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 46px; /* 指で押しやすい高さ */
  padding: 10px 20px;
  background-color: var(--color-white);
  border: 1px solid var(--color-logo-dark);
  color: var(--color-logo-dark);
  font-size: 0.88rem;
  font-weight: 700;
  border-radius: 8px;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s ease;
  box-sizing: border-box;
}
.btn-re-search:hover {
  background-color: var(--color-main-light);
  color: var(--color-logo-dark) !important;
}
/* 5. 展開用 検索フォームエリア */
.search-form-accordion[hidden] {
  display: none !important;
}
.search-form-accordion {
  margin-top: 12px;
  padding-top: 16px;
  border-top: 1px dashed var(--color-border);
  animation: fadeInAccordion 0.25s ease-out;
}
@keyframes fadeInAccordion {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* 展開ツールバー: 2つのボタンを左右振り分け (space-between) */
.search-form-tools {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
  padding-bottom: 14px;
  border-bottom: 1px dashed var(--color-border);
}
/* 2つのボタン共通スタイル（高さ・タップ領域統一） */
.btn-form-reset, .btn-re-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 46px; /* 両方の高さを完全一致（タッチターゲット確保） */
  padding: 10px 20px;
  font-size: 0.88rem;
  font-weight: 700;
  border-radius: 8px;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s ease;
  box-sizing: border-box;
}
/* 左側: クリアボタン */
.btn-form-reset {
  background-color: #f1f5f9;
  border: 1px solid var(--color-border);
  color: var(--color-gray-text);
}
.btn-form-reset:hover {
  background-color: #e2e8f0;
  color: var(--color-base-text);
  border-color: var(--color-gray-text);
}
/* 右側: 閉じるボタン */
.btn-re-close {
  background-color: var(--color-white);
  border: 1px solid var(--color-logo-dark);
  color: var(--color-logo-dark);
}
.btn-re-close:hover {
  background-color: var(--color-main-light);
}
/* .feas-searchform 本体の装飾完全除去 */
.feas-searchform {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  margin: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}
/* スマホ対応（768px以下） */
@media (max-width: 768px) {
  .search-results-control-panel {
    padding: 16px;
    gap: 12px;
    margin-bottom: 20px;
  }
  .search-conditions-bar {
    flex-direction: column;
    gap: 8px;
  }
  .search-meta-bar {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .search-sort-display {
    width: 100%;
    justify-content: space-between;
  }
  .sort-control-inner, .sort-control-inner select {
    width: 100%;
  }
  .search-re-search-action {
    justify-content: stretch;
  }
  .btn-re-search {
    width: 100%;
    min-height: 48px;
  }
  /* スマホでの2つのボタン：均等50%幅でタップしやすく配置 */
  .search-form-tools {
    gap: 10px;
  }
  .btn-form-reset, .btn-re-close {
    flex: 1;
    min-height: 48px; /* スマホ用タップサイズ */
    padding: 10px 8px;
    font-size: 0.82rem;
  }
}
/* =================================================== 
   検索結果 0件時（該当なし）のデザイン
=================================================== */
.no-jobs-found-card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 16px;
  padding: 48px 24px;
  text-align: center;
  box-shadow: 0 10px 30px rgba(7, 14, 26, 0.04);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.no-jobs-icon {
  color: var(--color-border);
  margin-bottom: 8px;
}
.no-jobs-message {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--color-base-text);
  margin: 0;
}
.no-jobs-subtext {
  font-size: 0.9rem;
  color: var(--color-gray-text);
  margin: 0 0 12px 0;
}
.no-jobs-actions {
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: 280px;
}
/* =================================================== 
   本文エリア（Elementor / entry-content）内の干渉打ち消し
=================================================== */
/* 1. リストの黒丸・余白のリセット */
.entry-content .job-archive-list, .entry-content .job-sidebar-list, .job-sidebar-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.entry-content .job-sidebar-item, .job-sidebar-item {
  list-style: none;
  margin: 0;
  padding: 0;
  border: none;
  background: none;
}
/* テーマやElementorが自動付与する擬似要素（アイコン・ドット）の消去 */
.entry-content .job-sidebar-item::before, .entry-content .job-sidebar-item::after, .entry-content .job-archive-list article::before {
  content: none;
}
/* 2. タイトルやカード内リンクの下線（underline）干渉を解除 */
.entry-content .job-card-title a, .entry-content .job-sidebar-card, .entry-content .job-sidebar-card * {
  text-decoration: none;
}
/* 3. サイドバー外で使われた場合のカードタイトル色・サイズの補正 */
.job-sidebar-card .job-card-title {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--color-base-text);
  line-height: 1.4;
  margin: 0;
}
/* =================================================== 
   お仕事一覧 ＆ 検索結果 求人カードデザイン (job-card)
=================================================== */
/* --- 1. 基本レイアウト (通常：1列リスト) --- */
.job-archive-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  width: 100%;
}
.job-card-item {
  position: relative;
  padding: 28px;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(7, 14, 26, 0.05);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
  width: 100%;
}
/* アーカイブ・タクソノミー・検索結果用 */
#primary .job-card-item {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  margin-bottom: 0;
  transition: 0.25s ease;
}
/* カード全体のホバー */
#primary .job-card-item:hover {
  background: #EFF9F1;
  border-color: var(--color-logo-dark);
  box-shadow: 0 14px 36px rgba(7, 14, 26, 0.1);
}
/* --- 2. ヘッダーエリア --- */
.job-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
}
.job-card-header-text {
  flex: 1;
  min-width: 0;
}
.job-card-title {
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  font-weight: 700;
  line-height: 1.45;
  margin: 0 0 10px;
}
.job-card-title a {
  color: var(--color-base-text);
  text-decoration: none;
  transition: color 0.2s ease;
}
/* カード全体をクリック領域にするストレッチリンク */
.job-card-title a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
.job-card-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  font-size: 0.85rem;
  color: var(--color-gray-text);
}
.job-card-no {
  font-weight: 800;
  color: var(--color-logo-dark);
}
.job-card-meta span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
/* アイキャッチ画像 */
.job-card-thumb {
  flex-shrink: 0;
  width: 100px;
  height: 100px;
  border-radius: 8px;
  overflow: hidden;
}
.job-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}
.job-card-item:hover .job-card-thumb img {
  transform: scale(1.05);
}
/* --- 3. ヒーローエリア --- */
.job-card-hero {
  position: relative;
  background: var(--grad-daial);
  padding: 16px 28px;
  margin: 20px -28px -28px;
}
.job-hero-dots {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: radial-gradient(rgba(255, 255, 255, 0.35) 1.2px, transparent 1.2px);
  background-size: 18px 18px;
  opacity: 0.6;
}
.job-hero-body {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.job-hero-labels {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  flex: 1;
}
.job-card-hero .job-label-tag {
  display: inline-flex;
  align-items: center;
  padding: 6px 14px;
  border-radius: 6px;
  font-size: 0.88rem;
  font-weight: 700;
  line-height: 1.3;
  background: rgba(255, 255, 255, 0.18);
  color: var(--color-white);
  border: 1px solid rgba(255, 255, 255, 0.45);
  backdrop-filter: blur(4px);
}
.job-card-hero .job-label-tag.tag-salary {
  background: var(--color-white);
  color: #e11d48;
  border-color: var(--color-white);
  font-weight: 800;
}
/* 詳細ボタンエリア */
.job-hero-action a {
  display: inline-flex;
  align-items: center;
  padding: 6px 14px;
  background: var(--color-black);
  border-radius: 6px;
  color: var(--color-white);
  font-size: 0.88rem;
  text-decoration: none;
}
.job-hero-action a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
/* --- 4. 通常表示のレスポンシブ (スマホ) --- */
@media (max-width: 768px) {
  .job-card-item {
    padding: 20px 16px;
    border-radius: 12px;
  }
  .job-card-header {
    gap: 12px;
  }
  .job-card-thumb {
    width: 84px;
    height: 84px;
  }
  .job-card-hero {
    padding: 14px 16px;
    margin: 16px -16px -20px;
    border-radius: 0 0 11px 11px;
  }
  .job-hero-body {
    flex-wrap: nowrap;
    gap: 12px;
  }
  .job-card-meta {
    gap: 4px 12px;
  }
  .job-hero-labels {
    gap: 6px 0;
  }
  .job-card-hero .job-label-tag {
    padding: 4px 10px;
    background: transparent;
    border: none;
    border-right: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 0;
    backdrop-filter: none;
  }
  .job-card-hero .job-label-tag:last-child {
    border-right: none;
  }
  .job-card-hero .job-label-tag.tag-salary {
    background: var(--color-white);
    color: #e11d48;
    border-radius: 4px;
    margin-right: 6px;
  }
  .job-hero-action a {
    padding: 0;
    background: none;
    border-radius: 0;
  }
  .job-hero-action a::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
  }
  .job-hero-action span {
    display: none;
  }
  .job-hero-action svg {
    margin-top: 6px;
  }
}
/* =================================================== 
   トップページ ＆ 閲覧履歴用 (グリッドコンパクト表示)
=================================================== */
/* 1. グリッドレイアウト */ :is(.home, .page-history) .job-archive-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
@media (max-width: 1024px) {
  :is(.home, .page-history) .job-archive-list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 768px) {
  :is(.home, .page-history) .job-archive-list {
    grid-template-columns: 1fr;
  }
}
/* 2. カード・要素のコンパクト化 */ :is(.home, .page-history) .job-card-item {
  padding: 16px !important;
  border-radius: 12px;
  justify-content: space-between;
}
:is(.home, .page-history) .job-card-header {
  gap: 10px;
}
:is(.home, .page-history) .job-card-title {
  font-size: 0.95rem;
  line-height: 1.4;
  margin-bottom: 6px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
:is(.home, .page-history) .job-card-meta {
  font-size: 0.75rem;
  gap: 4px 8px;
  white-space: nowrap;
}
@media (max-width: 768px) {
  :is(.home, .page-history) .job-card-meta {
    flex-wrap: nowrap;
    justify-content: flex-start;
  }
}
:is(.home, .page-history) .job-card-thumb {
  width: 68px;
  height: 68px;
}
/* 3. ヒーローエリアの横並びコンパクト化 */ :is(.home, .page-history) .job-card-hero {
  margin: 12px -16px -16px;
  padding: 8px 12px;
  border-radius: 0 0 11px 11px;
}
:is(.home, .page-history) .job-hero-body, :is(.home, .page-history) .job-hero-labels {
  flex-wrap: nowrap;
  gap: 8px;
}
@media (max-width: 768px) {
  :is(.home, .page-history) .job-hero-body {
    flex-direction: row;
  }
}
:is(.home, .page-history) .job-hero-labels {
  gap: 0;
  overflow: hidden;
  min-width: 0;
}
:is(.home, .page-history) .job-card-hero .job-label-tag {
  padding: 2px 8px;
  font-size: 0.78rem;
  font-weight: 600;
  white-space: nowrap;
  background: transparent;
  border: none;
  border-right: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 0;
  backdrop-filter: none;
  box-shadow: none;
  line-height: 1.2;
}
:is(.home, .page-history) .job-card-hero .job-label-tag:last-child {
  border-right: none;
}
:is(.home, .page-history) .job-card-hero .job-label-tag.tag-salary {
  background: var(--color-white);
  color: #e11d48;
  border: none;
  border-radius: 4px;
  margin-right: 6px;
  font-weight: 800;
}
:is(.home, .page-history) .job-hero-action a {
  padding: 0;
  background: none;
  border-radius: 0;
}
:is(.home, .page-history) .job-hero-action a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
:is(.home, .page-history) .job-hero-action span {
  display: none;
}
:is(.home, .page-history) .job-hero-action svg {
  margin-top: 6px;
}
/* =================================================== 
   トップページFV
=================================================== */
/* ドットパターン */
.top_page-hero__dots {
  background-image: radial-gradient(rgba(255, 255, 255, .3) 1.2px, transparent 1.2px);
  background-size: 22px 22px;
}
/* FV ファーストビュー全体 */
#fv {
  position: relative;
  overflow: hidden; /* 画面外へのはみ出しを防止 */
  width: 100%;
}
/* 中央のコンテンツ（キャッチコピー・検索） */
#fv_cathcopy {
  width: 100%;
  max-width: 768px;
  margin: 0 auto;
}
#fv_search {
  position: relative;
  width: 100%;
  max-width: 768px;
  margin: 0 auto;
  z-index: 50;
}
/* ① オフィス女性（左下） */
#fv_image_1 {
  position: absolute;
  bottom: -24px;
  left: max(0px, calc((100vw - 768px) / 15));
  width: clamp(240px, calc((100vw - 768px) / 2.5), 360px);
  height: auto;
  z-index: 10;
}
/* ② 倉庫（左上） */
#fv_image_2 {
  position: absolute;
  top: 48px;
  left: max(0px, calc((100vw - 768px) / 4));
  width: clamp(240px, calc((100vw - 768px) / 2.5), 360px);
  height: auto;
  z-index: 0;
}
/* ③ オフィス男性（右下） */
#fv_image_3 {
  position: absolute;
  bottom: -48px;
  right: max(0px, calc((100vw - 768px) / 10));
  width: clamp(240px, calc((100vw - 768px) / 2.5), 360px);
  height: auto;
  z-index: 0;
}
/* ④ 工場/クリーンルーム（右上） */
#fv_image_4 {
  position: absolute;
  right: 0;
  top: 24px;
  width: clamp(240px, calc((100vw - 768px) / 2.5), 360px);
  height: auto;
  z-index: 0;
}
/* ⑤ ACアクセント（左） */
#fv_left_ac {
  position: absolute;
  top: 0;
  right: max(0px, calc((100vw - 768px) / 7));
  width: clamp(160px, 24vw, 320px);
  height: auto;
  z-index: 10;
}
/* ⑥ ACアクセント（右） */
#fv_right_ac {
  position: absolute;
  bottom: 0;
  left: max(0px, calc((100vw - 768px) / 8));
  width: clamp(120px, 18vw, 280px);
  height: auto;
  z-index: 10;
}
@media screen and (max-width: 1240px) {
  #fv_right_ac, #fv_left_ac {
    opacity: 0;
  }
}
@media screen and (max-width: 900px) {
  #fv_right_ac, #fv_left_ac {
    opacity: 0;
  }
  #fv_cathcopy {
    max-width: 90%;
  }
  #fv_search {
    max-width: 100%;
  }
}
@media screen and (max-width: 768px) {
  #fv_image_2, #fv_image_3, #fv_image_4 {
    width: 20vw;
  }
  #fv_image_1 {
    bottom: auto;
    top: 112px;
    left: 35vw;
    width: 30vw;
  }
  #fv_image_3 {
    bottom: auto;
    top: 350px;
  }
}
/* =================================================== 
   トップページ用 インスタント検索フォーム (ID: 0)
=================================================== */
/* 1. フォーム全体を1行の横並びにし、右寄せ・下揃え（flex-end）に設定 */
#feas-searchform-0 {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  justify-content: center;
  gap: 16px;
  margin-bottom: 0;
  padding: 0;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
/* 2. 不要なカード装飾を打ち消し、中身を確実に横並びに */
#feas-searchform-0 .search-group {
  display: flex;
  flex-direction: row !important;
  align-items: center;
  gap: 10px;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  width: auto;
}
/* 3. 1つ目のグループ（勤務地）のタイトルとセレクトの一体化 */
#feas-searchform-0 .search-group:nth-child(1) {
  gap: 0 !important; /* 一体化させるため隙間をなくす */
}
/* タイトルを検索ボタンと同じ背景色・白文字にし、右側の角丸をなくす */
#feas-searchform-0 .search-group:nth-child(1) .title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--color-white) !important;
  background: linear-gradient(135deg, #00c3ff 0%, #00a3dc 100%) !important;
  height: 44px;
  padding: 0 16px !important;
  display: flex;
  align-items: center;
  gap: 6px;
  border-radius: 6px 0 0 6px !important; /* 左上と左下のみ角丸 */
  margin: 0 !important;
  white-space: nowrap;
}
/* 勤務地のピンアイコン（線の色を白 %23ffffff に変更） */
#feas-searchform-0 .search-group:nth-child(1) .title::before {
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
/* セレクトボックスの左側の角丸と左線をなくし、タイトルとくっつける */
#feas-searchform-0 .search-group:nth-child(1) .feas_term_dropdown {
  border-radius: 0 6px 6px 0 !important; /* 右上と右下のみ角丸 */
  border-left: none !important; /* 重なった部分の線を消してシームレスに */
}
/* 4. 2つ目のグループ（キーワード）のタイトルを非表示 */
#feas-searchform-0 .search-group:nth-child(2) .title {
  display: none !important;
}
/* 5. 入力欄・セレクトボックスの幅・高さ調整 */
#feas-searchform-0 .search_element_0, #feas-searchform-0 .search-select-group, #feas-searchform-0 .search-text-input-wrap {
  width: 220px; /* PC表示時の入力欄の幅 */
}
#feas-searchform-0 .feas_term_dropdown, #feas-searchform-0 .feas_archive_freeword {
  width: 100% !important;
  height: 44px;
  padding: 0 12px;
  border-radius: 6px;
  font-size: 0.9rem;
  box-sizing: border-box;
}
/* 6. 検索ボタンのサイズ調整 */
#feas-searchform-0 .search-submit-group {
  width: auto;
  margin-top: 0;
}
#feas-searchform-0 #feas-submit-button-0 {
  width: auto;
  min-height: 44px;
  height: 44px;
  padding: 0 24px;
  font-size: 0.92rem;
  white-space: nowrap;
  max-width: none;
  margin: 0;
}
/* 7. スマホ表示対応（縦に並べて幅100%に広げる） */
@media (max-width: 768px) {
  #feas-searchform-0 {
    flex-wrap: wrap;
    justify-content: flex-start;
  }
  #feas-searchform-0 .search-group {
    /* スマホ時もタイトルと入力欄の一体化デザインを維持するため横並びをキープ */
    flex-direction: row !important;
    width: 100%;
  }
  #feas-searchform-0 .search-submit-group {
    width: 100%;
  }
  #feas-searchform-0 .search_element_0, #feas-searchform-0 .search-select-group, #feas-searchform-0 .search-text-input-wrap {
    width: 100%;
    flex: 1;
  }
  #feas-searchform-0 #feas-submit-button-0 {
    width: 100%;
  }
}