/**
 * uniken.css
 * UNIKEN 求人検索アプリ フロントエンド専用スタイルシート
 * 管理パネルには影響しません
 * @push('styles') で読み込み: <link rel="stylesheet" href="{{ asset('css/uniken.css') }}">
 */

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700;900&family=Montserrat:wght@300;400;600;700;900&display=swap');

/* ==========================================
   CSS変数
   ========================================== */
:root {
  --uk-navy: #1a252f;
  --uk-navy2: #05347b;
  --uk-gold: #a07d5a;
  --uk-gold2: #ccb09b;
  --uk-white: #ffffff;
  --uk-light: #f8f9fa;
  --uk-gray: #6c757d;
  --uk-border: #dee2e6;
  /* 検索アイコン画像パス（Laravelのasset()で生成するURLをインラインstyleで上書きも可） */
  --uk-search-icon-url: url('/images/search.png');
}

/* ==========================================
   ページ基本
   ========================================== */
.uniken-page {
  font-family: 'Noto Sans JP', sans-serif;
  background: var(--uk-light);
}

.uniken-btn {
  background-color: var(--uk-navy) !important;
  transition: 0.15s;
}

.uniken-btn:hover {
  opacity: 0.85;
}

.uniken-btn-danger {
  background-color: #d90421 !important;
  transition: 0.15s;
}

.uniken-btn-danger:hover {
  background-color: #b8031c !important;
  border-color: #ae031a;
}

/* ==========================================
   全ページラッパー（フッター常時最下部）
   #app.uniken-wrapper を flex 縦積みにして
   main を flex:1 で伸縮させることでフッターが
   コンテンツ量に関係なく常に最下部に収まる
   ========================================== */
#app.uniken-wrapper {
  display: flex !important;
  flex-direction: column !important;
  min-height: 100vh !important;
}

/* ==========================================
   全ページ共通：固定ヘッダー分のオフセット
   app.blade.php の <main class="uniken-main"> に対して適用
   管理者側は条件分岐でクラスを付与しないため影響なし
   ========================================== */
main.uniken-main {
  padding-top: 70px;
  /* ヘッダー実寸: ロゴ42px + padding14px×2 = 70px */
  flex: 1 0 auto;
  /* フッター押し下げ用：残り高さを全部使う */
}

/* 管理者側 main もフレックス伸縮対象にする */
#app.uniken-wrapper>main:not(.uniken-main) {
  flex: 1 0 auto;
}

/* 後方互換（個別ページで使っている場合の保険） */
.uniken-page-body,
body.uniken-body {
  padding-top: 70px !important;
}

.uniken-content-top {
  padding-top: 70px;
}

/* ==========================================
   アンカーリンクのスクロールオフセット補正
   固定ヘッダー(90px)分だけ余裕を持って 100px に設定
   例: <a href="#job-search"> で飛んだとき
       <div id="job-search"> がヘッダーに隠れなくなる
   ========================================== */
#job-search,
#features,
#new-works,
#hero,
[id^="area-"],
[id^="line-"] {
  scroll-margin-top: 70px;
  /* ヘッダー実寸に合わせる */
}

/* ==========================================
   HEADER
   ========================================== */
.uniken-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 100 !important;
  padding: 14px 0 !important;
  /* 上下14px → ロゴ42px + 14×2 = 実高さ約70px */
  background: rgba(255, 255, 255, 0.97) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border-bottom: 1px solid var(--uk-border) !important;
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.09) !important;
}

/* コンテナ */
.uniken-container {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding-left: 32px !important;
  padding-right: 32px !important;
  max-width: 100% !important;
}

@media (min-width: 601px) {
  .uniken-container {
    padding-left: 72px !important;
    padding-right: 72px !important;
  }
}

/* 管理者ロゴ（Bootstrap navbar-brand 拡張） */
.uniken-app-name {
  font-family: 'Noto Sans JP', sans-serif !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  color: var(--uk-navy) !important;
  text-decoration: none !important;
  letter-spacing: 0.05em !important;
}

.uniken-app-name:hover {
  color: var(--uk-navy2) !important;
}

.uniken-logo {
  height: 34px !important;
  width: auto !important;
  margin-right: 8px !important;
  object-fit: contain !important;
}

/* ロゴ */
.uniken-logo-wrap {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  text-decoration: none !important;
}

.uniken-logo-badge {
  width: 42px !important;
  height: 42px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  border: none !important;
}

.uniken-logo-badge img,
.uniken-logo-img {
  width: 42px !important;
  height: 42px !important;
  display: block !important;
  border-radius: 10px !important;
  object-fit: cover !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}

.uniken-logo-text {
  display: flex !important;
  flex-direction: column !important;
  line-height: 1 !important;
  gap: 3px !important;
}

.uniken-logo-main {
  font-family: 'Noto Sans JP', sans-serif !important;
  font-weight: 900 !important;
  font-size: 17px !important;
  color: var(--uk-navy) !important;
  letter-spacing: 1px !important;
  text-decoration: none !important;
}

.uniken-logo-sub {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 8px !important;
  color: var(--uk-gold) !important;
  letter-spacing: 3px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}

/* ナビゲーション */
.uniken-nav {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
}

.uniken-nav-icon-btn {
  width: 38px !important;
  height: 38px !important;
  border-radius: 50% !important;
  background: var(--uk-light) !important;
  border: 1px solid var(--uk-border) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--uk-navy) !important;
  text-decoration: none !important;
  transition: all 0.2s !important;
}

.uniken-nav-icon-btn:hover {
  background: var(--uk-navy) !important;
  color: var(--uk-white) !important;
  border-color: var(--uk-navy) !important;
}

.uniken-nav-login-btn {
  padding: 8px 20px !important;
  border: 1px solid var(--uk-navy) !important;
  border-radius: 2px !important;
  color: var(--uk-navy) !important;
  text-decoration: none !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.05em !important;
  transition: all 0.2s !important;
  background: transparent !important;
}

.uniken-nav-login-btn:hover {
  background: var(--uk-navy) !important;
  color: var(--uk-white) !important;
}

.uniken-nav-register-btn {
  padding: 8px 20px !important;
  background: var(--uk-navy) !important;
  border: 1px solid var(--uk-navy) !important;
  border-radius: 2px !important;
  color: var(--uk-white) !important;
  text-decoration: none !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  transition: all 0.2s !important;
}

.uniken-nav-register-btn:hover {
  background: var(--uk-navy2) !important;
  border-color: var(--uk-navy2) !important;
}

/* Bootstrap navbar のユニケン用上書き */
.uniken-header .navbar-nav {
  align-items: center !important;
  gap: 6px !important;
}

.uniken-header .navbar-nav .nav-item {
  position: relative !important;
}

/* ログインボタン・アイコンを縦中央に揃えるためのflex（ドロップダウン以外、かつd-md-none以外のli用） */
@media (min-width: 768px) {
  .uniken-header .navbar-nav .nav-item:not(.dropdown) {
    display: flex !important;
    align-items: center !important;
  }
}

.uniken-header .navbar-nav .nav-link {
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--uk-navy) !important;
  padding: 6px 12px !important;
  letter-spacing: 0.03em !important;
}

.uniken-header .navbar-nav .nav-link:hover {
  color: var(--uk-navy2) !important;
}

/* ログイン済みユーザー ドロップダウン */
.uniken-header .nav-item.dropdown {
  position: relative !important;
}

.uniken-header .dropdown-menu {
  position: absolute !important;
  top: 100% !important;
  right: 0 !important;
  left: auto !important;
  display: none !important;
  flex-direction: column !important;
  border: 1px solid var(--uk-border) !important;
  border-radius: 2px !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1) !important;
  padding: 8px 0 !important;
  min-width: 200px !important;
  background: #fff !important;
  z-index: 9999 !important;
}

.uniken-header .dropdown-menu.show {
  display: block !important;
}

.uniken-header .dropdown-item {
  font-size: 13px !important;
  color: var(--uk-navy) !important;
  padding: 8px 16px !important;
  letter-spacing: 0.02em !important;
}

.uniken-header .dropdown-item:hover {
  background: var(--uk-light) !important;
  color: var(--uk-navy2) !important;
}

.uniken-header .dropdown-divider {
  border-color: var(--uk-border) !important;
  margin: 4px 0 !important;
}

/* Bootstrap ハンバーガーボタン */
.uniken-header .navbar-toggler {
  border: 1px solid var(--uk-border) !important;
  border-radius: 2px !important;
  padding: 6px 10px !important;
}

.uniken-header .navbar-toggler:focus {
  box-shadow: none !important;
}

/* 閉じるボタン（×） */
.uniken-header .navbar-close-btn {
  background: none !important;
  border: none !important;
  font-size: 1.4rem !important;
  color: var(--uk-navy) !important;
  cursor: pointer !important;
  padding: 4px 8px !important;
  line-height: 1 !important;
}

.uniken-header .navbar-close-btn:hover {
  color: var(--uk-navy2) !important;
}

/* ========================================
   スマホ用オーバーレイメニュー
   ======================================== */
#mobile-menu-overlay {
  display: none;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  background: rgba(255, 255, 255, 0.98) !important;
  z-index: 9999 !important;
  padding: 70px 32px 32px !important;
  overflow-y: auto !important;
  box-sizing: border-box !important;
}

#mobile-menu-close {
  position: absolute !important;
  top: 16px !important;
  right: 20px !important;
  background: none !important;
  border: none !important;
  font-size: 1.8rem !important;
  color: var(--uk-navy) !important;
  line-height: 1 !important;
  cursor: pointer !important;
}

#mobile-menu-overlay ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

#mobile-menu-overlay ul li {
  border-bottom: 1px solid var(--uk-border) !important;
  display: block !important;
}

#mobile-menu-overlay ul li a {
  display: block !important;
  padding: 14px 0 !important;
  color: var(--uk-navy) !important;
  text-decoration: none !important;
  font-size: 15px !important;
  font-family: 'Noto Sans JP', sans-serif !important;
}

#mobile-menu-overlay ul li a:hover {
  color: var(--uk-gold) !important;
}

/* ========================================
   スマホ用ナビ（767px以下）
   ======================================== */
@media (max-width: 767px) {

  /* 閉じているとき非表示（Bootstrapのデフォルトを補強） */
  .uniken-header .navbar-collapse {
    display: none;
  }

  /* 開いているとき：全画面オーバーレイ */
  .uniken-header .navbar-collapse.show {
    display: block !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background: rgba(255, 255, 255, 0.98) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    z-index: 200 !important;
    padding: 80px 32px 32px !important;
    overflow-y: auto !important;
  }

  /* メニューリストを縦並びに */
  .uniken-header .navbar-collapse.show .navbar-nav {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0 !important;
    width: 100% !important;
  }

  /* 各リンク */
  .uniken-header .navbar-collapse.show .nav-link {
    font-size: 15px !important;
    padding: 14px 0 !important;
    border-bottom: 1px solid var(--uk-border) !important;
    width: 100% !important;
    display: block !important;
  }

  /* ログイン・登録ボタン */
  .uniken-header .uniken-nav-login-btn,
  .uniken-header .uniken-nav-register-btn {
    width: 100% !important;
    text-align: center !important;
    display: block !important;
    padding: 12px 20px !important;
    margin: 4px 0 !important;
  }

  /* お気に入りアイコン */
  .uniken-header .uniken-nav-icon-btn {
    width: auto !important;
    height: auto !important;
    border-radius: 0 !important;
    background: none !important;
    border: none !important;
    border-bottom: 1px solid var(--uk-border) !important;
    padding: 14px 0 !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    font-size: 15px !important;
  }

  .uniken-header .uniken-nav-icon-btn::after {
    content: 'お気に入り' !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    color: var(--uk-navy) !important;
  }
}

/* ==========================================
   HERO
   ========================================== */
.hero,
.uk-hero {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: visible;
  /* SCROLLインジケーターが切れないよう */
  background: #ffffff;
  padding-top: 0;
  /* main.uniken-main の padding-top:90px で吸収済み */
  padding-bottom: 80px;
  /* SCROLL分の余白 */
  box-sizing: border-box;
}

.hero::before,
.uk-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(#dee2e6 1px, transparent 1px);
  background-size: 30px 30px;
  z-index: 0;
}

.hero::after,
.uk-hero::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 55%;
  height: 100%;
  background: linear-gradient(135deg, rgba(26, 37, 47, 0.03) 0%, rgba(160, 125, 90, 0.06) 100%);
  z-index: 0;
}

.hero-inner,
.uk-hero-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 60px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 60px;
  flex: 1;
  /* hero がflex-column のとき縦空間を使い切る */
}

/* ヒーロー左 */
.hero-left,
.uk-hero-left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 32px;
}

.hero-tag,
.uk-hero-tag {
  font-size: 0.7rem;
  color: var(--uk-gold);
  letter-spacing: 0.4em;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 12px;
}

.hero-tag::before,
.uk-hero-tag::before {
  content: '';
  display: block;
  width: 30px;
  height: 1px;
  background: var(--uk-gold);
}

.hero-title,
.uk-hero-title {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.hero-title-line,
.uk-hero-title-line {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: clamp(2.4rem, 4vw, 3.2rem);
  color: var(--uk-navy);
  line-height: 1.3;
  letter-spacing: 0.05em;
}

.hero-title-line .gold,
.uk-hero-title-line .gold {
  color: var(--uk-gold);
}

.hero-title-en,
.uk-hero-title-en {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--uk-gray);
  letter-spacing: 0.3em;
  margin-top: 8px;
}

.hero-desc,
.uk-hero-desc {
  font-size: 0.9rem;
  color: var(--uk-gray);
  line-height: 1.9;
  max-width: 420px;
}

.hero-cta,
.uk-hero-cta {
  display: flex;
  align-items: center;
  gap: 16px;
}

.btn-primary-hero,
.uk-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 32px;
  background: var(--uk-navy);
  color: var(--uk-white);
  text-decoration: none;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.1em;
  border: none;
  transition: all 0.25s;
}

.btn-primary-hero:hover,
.uk-btn-primary:hover {
  background: var(--uk-navy2);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(26, 37, 47, 0.2);
  color: var(--uk-white);
}

/* 研修バナー */
.training-banner,
.uk-training-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 20px;
  background: var(--uk-light);
  border: 1px solid var(--uk-border);
  border-left: 3px solid var(--uk-gold);
  text-decoration: none;
  transition: all 0.2s;
  width: 100%;
  /* 親幅に合わせる */
  max-width: 420px;
  /* hero-desc と揃える */
  box-sizing: border-box;
  align-self: flex-start;
}

.training-banner:hover,
.uk-training-banner:hover {
  border-left-color: var(--uk-navy);
  background: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.training-pill,
.uk-training-pill {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--uk-white);
  background: var(--uk-gold);
  padding: 3px 8px;
  white-space: nowrap;
}

.training-text,
.uk-training-text {
  font-size: 0.82rem;
  color: var(--uk-navy);
  font-weight: 500;
  letter-spacing: 0.03em;
}

/* ヒーロー右 */
.hero-right,
.uk-hero-right {
  position: relative;
  height: 560px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.char-wrap,
.uk-char-wrap {
  position: relative;
  width: 100%;
  height: 100%;
}

.char-main,
.uk-char-main {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 280px;
  z-index: 3;
  animation: ukFloatMain 4s ease-in-out infinite;
  filter: drop-shadow(0 20px 30px rgba(0, 0, 0, 0.08));
}

.char-left,
.uk-char-left {
  position: absolute;
  bottom: 20px;
  left: 0;
  width: 150px;
  z-index: 2;
  animation: ukFloatSub 4.5s ease-in-out infinite 0.5s;
  filter: drop-shadow(0 12px 20px rgba(0, 0, 0, 0.07));
  opacity: 0.9;
}

.char-right,
.uk-char-right {
  position: absolute;
  bottom: 20px;
  right: 0;
  width: 145px;
  z-index: 2;
  animation: ukFloatSub 5s ease-in-out infinite 1s;
  filter: drop-shadow(0 12px 20px rgba(0, 0, 0, 0.07));
  opacity: 0.9;
}

/* フローティングバッジ */
.float-badge,
.uk-float-badge {
  position: absolute;
  background: var(--uk-white);
  border: 1px solid var(--uk-border);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  padding: 10px 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  z-index: 10;
  min-width: 160px;
}

.float-badge-1,
.uk-float-badge-1 {
  top: 60px;
  left: -10px;
  animation: ukFloatBadge 3s ease-in-out infinite;
  border-left: 3px solid var(--uk-gold);
}

.float-badge-2,
.uk-float-badge-2 {
  top: 160px;
  right: -10px;
  animation: ukFloatBadge 3.5s ease-in-out infinite 0.5s;
  border-left: 3px solid var(--uk-navy2);
}

.float-badge-3,
.uk-float-badge-3 {
  bottom: 80px;
  left: 10px;
  animation: ukFloatBadge 4s ease-in-out infinite 1s;
  border-left: 3px solid var(--uk-gold2);
}

.badge-icon,
.uk-badge-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.badge-icon-1,
.uk-badge-icon-1 {
  background: rgba(160, 125, 90, 0.12);
  color: var(--uk-gold);
}

.badge-icon-2,
.uk-badge-icon-2 {
  background: rgba(5, 52, 123, 0.1);
  color: var(--uk-navy2);
}

.badge-icon-3,
.uk-badge-icon-3 {
  background: rgba(204, 176, 155, 0.2);
  color: var(--uk-gold2);
}

.badge-label,
.uk-badge-label {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: var(--uk-gray);
  display: block;
}

.badge-value,
.uk-badge-value {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--uk-navy);
  display: block;
  letter-spacing: 0.02em;
}

/* スクロールインジケーター */
.scroll-indicator,
.uk-scroll-indicator {
  /* absolute→relative に変更し、hero内で自然に最下部へ */
  position: relative;
  left: auto;
  transform: none;
  margin-top: 40px;
  /* hero-inner との間隔 */
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  z-index: 5;
  align-self: center;
  /* flex子要素として水平中央 */
}

.scroll-text,
.uk-scroll-text {
  font-size: 0.6rem;
  color: var(--uk-gray);
  letter-spacing: 0.2em;
  font-family: 'Montserrat', sans-serif;
}

.scroll-line,
.uk-scroll-line {
  width: 1px;
  height: 40px;
  background: linear-gradient(to bottom, var(--uk-gold), transparent);
  animation: ukScrollLine 1.5s ease-in-out infinite;
}

/* ==========================================
   タグストリップ
   ========================================== */
.tag-strip,
.uk-tag-strip {
  background: var(--uk-navy);
  padding: 14px 0;
  overflow: hidden;
}

.tag-track,
.uk-tag-track {
  display: flex;
  gap: 0;
  animation: ukTagScroll 30s linear infinite;
  width: max-content;
}

.tag-item,
.uk-tag-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 28px;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  color: rgba(255, 255, 255, 0.6);
  white-space: nowrap;
  border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.tag-dot,
.uk-tag-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--uk-gold);
  flex-shrink: 0;
}

/* ==========================================
   選ばれる理由
   ========================================== */
.features,
.uk-features {
  background: var(--uk-white);
  padding: 100px 60px;
  position: relative;
}

.features::before,
.uk-features::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(#dee2e6 1px, transparent 1px);
  background-size: 30px 30px;
  opacity: 0.4;
}

.features-inner,
.uk-features-inner {
  max-width: 1100px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.section-header,
.uk-section-header {
  text-align: center;
  margin-bottom: 60px;
}

.section-tag,
.uk-section-tag {
  font-size: 0.7rem;
  color: var(--uk-gold);
  letter-spacing: 0.4em;
  font-weight: 700;
  display: block;
  margin-bottom: 12px;
}

.section-title,
.uk-section-title {
  font-size: clamp(1.4rem, 3vw, 1.9rem);
  font-weight: 800;
  color: var(--uk-navy);
  letter-spacing: 0.05em;
}

.section-line,
.uk-section-line {
  width: 40px;
  height: 1px;
  background: var(--uk-gold);
  margin: 16px auto 0;
}

.feature-grid,
.uk-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}

.feature-card,
.uk-feature-card {
  background: var(--uk-white);
  border: 1px solid var(--uk-border);
  padding: 36px 28px;
  position: relative;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.5s ease, transform 0.5s ease, box-shadow 0.3s;
}

.feature-card.visible,
.uk-feature-card.visible {
  opacity: 1;
  transform: translateY(0);
}

.feature-card:hover,
.uk-feature-card:hover {
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
  transform: translateY(-4px) !important;
}

.feature-card::before,
.uk-feature-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 3px;
  height: 0;
  background: var(--uk-gold);
  transition: height 0.3s ease;
}

.feature-card:hover::before,
.uk-feature-card:hover::before {
  height: 100%;
}

.feature-number,
.uk-feature-number {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  color: var(--uk-gold);
  letter-spacing: 0.2em;
  display: block;
  margin-bottom: 20px;
}

.feature-icon,
.uk-feature-icon {
  width: 48px;
  height: 48px;
  margin-bottom: 20px;
  color: var(--uk-navy);
}

.feature-title,
.uk-feature-title {
  font-size: 1rem;
  font-weight: 800;
  color: var(--uk-navy);
  margin-bottom: 12px;
  letter-spacing: 0.05em;
}

.feature-sub,
.uk-feature-sub {
  font-size: 0.75rem;
  color: var(--uk-gold);
  font-weight: 700;
  letter-spacing: 0.1em;
  margin-bottom: 14px;
  display: block;
}

.feature-desc,
.uk-feature-desc {
  font-size: 0.82rem;
  color: var(--uk-gray);
  line-height: 1.85;
}

/* ==========================================
   JOB SEARCH セクション
   ========================================== */

/* 検索ボックス本体 */
.uniken-job-search {
  background: #2c3e50 !important;
  border-radius: 12px !important;
  padding: 48px 52px !important;
  border: none !important;
  overflow: hidden !important;
  position: relative !important;
}

.uniken-job-search::before {
  content: none !important;
}

/* 検索アイコン画像 */
.uniken-search-icon-img {
  width: 36px !important;
  height: 36px !important;
  object-fit: contain !important;
  vertical-align: middle !important;
  /* flex外（JOB SEARCH h2等）での使用時の保険 */
  margin-right: 10px !important;
  filter: brightness(0) invert(1) !important;
}

/* 検索フォーム全体ラッパー */
.uniken-user-search-box {
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
}

/* 各検索ブロック（エリア・詳細条件・キーワード） */
.search-inner-box {
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: 8px !important;
  padding: 20px 24px !important;
  backdrop-filter: blur(4px) !important;
}

.search-inner-box h5 {
  color: rgba(255, 255, 255, 0.9) !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  margin-bottom: 16px !important;
  font-family: 'Noto Sans JP', sans-serif !important;
}

.search-inner-box h5 i {
  margin-right: 8px !important;
  color: #a07d5a !important;
}

/* 各ラベルグループ */
.item-label-group {
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  color: rgba(255, 255, 255, 0.65) !important;
  letter-spacing: 0.08em !important;
  margin-bottom: 10px !important;
  font-family: 'Noto Sans JP', sans-serif !important;
}

.item-label-group i {
  margin-right: 6px !important;
  color: #a07d5a !important;
}

/* フォームコントロールのスタイル上書き */
.uniken-user-search-box .form-select,
.uniken-user-search-box .form-control {
  background: rgba(255, 255, 255, 0.9) !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  border-radius: 4px !important;
  font-size: 0.85rem !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  color: #1a252f !important;
  padding: 8px 12px !important;
}

.uniken-user-search-box .form-select:focus,
.uniken-user-search-box .form-control:focus {
  background: #ffffff !important;
  border-color: #a07d5a !important;
  box-shadow: 0 0 0 3px rgba(160, 125, 90, 0.2) !important;
  outline: none !important;
}

.uniken-user-search-box .form-select:disabled {
  opacity: 0.45 !important;
}

/* チェックボックス */
.uniken-user-search-box .form-check-input {
  border-color: rgba(255, 255, 255, 0.4) !important;
  background-color: rgba(255, 255, 255, 0.1) !important;
}

.uniken-user-search-box .form-check-input:checked {
  background-color: #a07d5a !important;
  border-color: #a07d5a !important;
}

.uniken-user-search-box .form-check-label {
  color: rgba(255, 255, 255, 0.85) !important;
  font-size: 0.82rem !important;
  font-family: 'Noto Sans JP', sans-serif !important;
}

/* 検索ボタン */
.btn-search-main {
  background: #a07d5a !important;
  border: 2px solid #a07d5a !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  letter-spacing: 0.08em !important;
  padding: 12px 24px !important;
  border-radius: 4px !important;
  transition: all 0.25s !important;
  font-family: 'Noto Sans JP', sans-serif !important;
}

.btn-search-main:hover {
  background: #8a6a48 !important;
  border-color: #8a6a48 !important;
  color: #ffffff !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 16px rgba(160, 125, 90, 0.4) !important;
}

/* リセットボタン */
.btn-reset-main {
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
  color: rgba(255, 255, 255, 0.7) !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.05em !important;
  padding: 12px 24px !important;
  border-radius: 4px !important;
  transition: all 0.2s !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  text-align: center !important;
  display: block !important;
}

.btn-reset-main:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.5) !important;
}

/* 新規掲載セクション */
.title-line {
  width: 40px;
  height: 2px;
  background: #a07d5a;
  margin: 12px auto 0;
}

/* 求人カード */
.job-card {
  border-radius: 6px !important;
  border: 1px solid #dee2e6 !important;
  transition: transform 0.2s, box-shadow 0.2s !important;
  overflow: hidden !important;
}

.job-card:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1) !important;
}

/* タイトルブロック */
.title-block {
  background: #2c3e4d;
  /* 旧 #1a252f より2段階明るいネイビー */
  padding: 14px 16px 12px;
  min-height: 72px;
}

.title-text {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.85rem;
  /* 0.9rem → 0.85rem に縮小 */
  font-weight: 500;
  /* 700 → 500 に軽量化 */
  color: rgba(255, 255, 255, 0.88);
  /* 純白でなくやや柔らかく */
  line-height: 1.55;
  letter-spacing: 0.02em;
}

.job-code {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.62rem;
  color: rgba(255, 255, 255, 0.35);
  letter-spacing: 0.1em;
  margin-top: 4px;
}

/* ENTRYバー */
.entry-bar {
  display: block;
  background: #a07d5a;
  color: #ffffff;
  text-align: center;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.3em;
  padding: 10px;
  text-decoration: none;
  transition: background 0.2s;
}

.entry-bar:hover {
  background: #8a6a48;
  color: #ffffff;
}

/* スマホ用 JOB SEARCH 調整 */
@media (max-width: 600px) {
  .uniken-job-search {
    padding: 28px 20px !important;
  }

  .search-inner-box {
    padding: 16px 14px !important;
  }
}

/* ==========================================
   フッター（footer.blade.php 完全対応版）
   ========================================== */

/* ----------------------------------------
   フッター本体  <footer class="uniken-footer">
   ---------------------------------------- */
footer.uniken-footer {
  background-color: #1a252f !important;
  background: #1a252f !important;
  border-top: 3px solid #a07d5a !important;
  padding: 52px 60px 32px !important;
  color: rgba(255, 255, 255, 0.75) !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  display: block !important;
  /* Bootstrap flex上書き防止 */
}

/* ----------------------------------------
   ロゴ＋キャッチエリア
   <div class="uniken-footer-top">
   ---------------------------------------- */
footer.uniken-footer .uniken-footer-top {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 24px !important;
  text-align: center !important;
}

/* ----------------------------------------
   ブランドリンク
   <a class="uniken-footer-brand">
   ---------------------------------------- */
footer.uniken-footer .uniken-footer-brand {
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  text-decoration: none !important;
}

/* ----------------------------------------
   ロゴバッジ（画像コンテナ）
   <div class="uniken-logo-badge"> ← フッター内
   ---------------------------------------- */
footer.uniken-footer .uniken-logo-badge {
  width: 42px !important;
  height: 42px !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  padding: 0 !important;
}

footer.uniken-footer .uniken-logo-badge img {
  width: 42px !important;
  height: 42px !important;
  border-radius: 10px !important;
  object-fit: cover !important;
  display: block !important;
  border: none !important;
  box-shadow: none !important;
}

/* ----------------------------------------
   ロゴテキスト群
   <div class="uniken-logo-text">
   ---------------------------------------- */
footer.uniken-footer .uniken-logo-text {
  display: flex !important;
  flex-direction: column !important;
  gap: 3px !important;
  line-height: 1 !important;
}

/* ロゴ：会社名（<span class="uniken-logo-main">） */
footer.uniken-footer .uniken-logo-main {
  font-family: 'Noto Sans JP', sans-serif !important;
  font-weight: 900 !important;
  font-size: 17px !important;
  color: #ffffff !important;
  letter-spacing: 1px !important;
  text-decoration: none !important;
}

/* ロゴ：サブテキスト（<span class="uniken-logo-sub">） */
footer.uniken-footer .uniken-logo-sub {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 8px !important;
  font-weight: 700 !important;
  color: #a07d5a !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
}

/* ----------------------------------------
   キャッチコピー
   <p class="uniken-footer-catch">
   ---------------------------------------- */
footer.uniken-footer .uniken-footer-catch {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 0.65rem !important;
  font-weight: 600 !important;
  color: rgba(255, 255, 255, 0.28) !important;
  letter-spacing: 0.4em !important;
  text-transform: uppercase !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ----------------------------------------
   仕切り線（ゴールド細線）
   <div class="uniken-footer-divider">
   ---------------------------------------- */
footer.uniken-footer .uniken-footer-divider {
  width: 40px !important;
  height: 1px !important;
  background-color: #a07d5a !important;
  border: none !important;
  margin: 0 auto 28px !important;
  opacity: 0.55 !important;
  display: block !important;
}

/* ----------------------------------------
   リンク群ラッパー
   <div class="uniken-footer-links">
   ---------------------------------------- */
footer.uniken-footer .uniken-footer-links {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 0 !important;
  margin-bottom: 32px !important;
  padding: 0 !important;
  list-style: none !important;
  background: none !important;
  border: none !important;
}

/* ----------------------------------------
   個別リンク
   <a class="uniken-footer-link">
   ---------------------------------------- */
footer.uniken-footer .uniken-footer-link {
  font-family: 'Noto Sans JP', sans-serif !important;
  font-size: 0.78rem !important;
  font-weight: 400 !important;
  color: rgba(255, 255, 255, 0.5) !important;
  text-decoration: none !important;
  letter-spacing: 0.04em !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  padding: 4px 16px !important;
  transition: color 0.2s !important;
  background: none !important;
  border: none !important;
}

footer.uniken-footer .uniken-footer-link:hover {
  color: #a07d5a !important;
  text-decoration: none !important;
}

footer.uniken-footer .uniken-footer-link i {
  font-size: 0.66rem !important;
  opacity: 0.55 !important;
}

/* ----------------------------------------
   区切り文字「・」
   <span class="uniken-footer-sep">
   ---------------------------------------- */
footer.uniken-footer .uniken-footer-sep {
  color: rgba(255, 255, 255, 0.15) !important;
  font-size: 0.85rem !important;
  user-select: none !important;
  display: inline !important;
}

/* ----------------------------------------
   コピーライト
   <p class="uniken-footer-copy">
   ---------------------------------------- */
footer.uniken-footer .uniken-footer-copy {
  text-align: center !important;
  font-family: 'Montserrat', sans-serif !important;
  font-size: 0.66rem !important;
  font-weight: 400 !important;
  color: rgba(255, 255, 255, 0.2) !important;
  letter-spacing: 0.18em !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ----------------------------------------
   スマホ（max-width: 767px）
   Bootstrap md ブレークポイントに統一
   ---------------------------------------- */
@media (max-width: 767px) {
  footer.uniken-footer {
    padding: 28px 16px 16px !important;
    /* PC: 52px 60px 32px → スマホ縮小 */
  }

  footer.uniken-footer .uniken-footer-top {
    gap: 6px !important;
    margin-bottom: 16px !important;
  }

  footer.uniken-footer .uniken-footer-divider {
    margin: 0 auto 16px !important;
  }

  footer.uniken-footer .uniken-footer-links {
    gap: 2px 0 !important;
    margin-bottom: 16px !important;
  }

  footer.uniken-footer .uniken-footer-link {
    font-size: 0.72rem !important;
    padding: 3px 10px !important;
  }

  footer.uniken-footer .uniken-footer-catch {
    font-size: 0.58rem !important;
  }

  footer.uniken-footer .uniken-logo-main {
    font-size: 15px !important;
  }

  footer.uniken-footer .uniken-footer-copy {
    font-size: 0.60rem !important;
  }
}

/* ==========================================
   エリア検索・路線検索 共通ラッパー
   ========================================== */

/* ページ背景 */
.uniken-search-page {
  background: var(--uk-light);
  min-height: 100vh;
}

/* 検索ラッパー（ネイビー外枠）：area / line 共通 */
.uniken-area-search-wrapper,
.uniken-line-search-wrapper {
  background: #2c3e50 !important;
  padding: 48px 40px !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18) !important;
  position: relative !important;
  overflow: hidden !important;
}

.uniken-area-search-wrapper::before,
.uniken-line-search-wrapper::before {
  content: none !important;
}

/* 検索ページ タイトル
   display:table を使い、img と span を確実に縦中央揃え
   <h2 class="uniken-search-page-title mb-5">
       <img class="uniken-search-icon-img" ...>
       <span>タイトル文字</span>
   </h2>
*/
/* タイトルラッパー */
.uniken-search-page-title {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
}

/* img＋テキストを横並び縦中央 */
.uniken-title-inner {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  font-size: 1.05rem !important;
  font-weight: 900 !important;
  color: #ffffff !important;
  letter-spacing: 0.25em !important;
  /* フォントの上下余白を潰す */
  line-height: 1 !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* imgタグ：自身の上下余白をゼロにする */
.uniken-title-inner .uniken-search-icon-img,
.uniken-title-inner>img {
  display: block !important;
  width: 32px !important;
  height: 32px !important;
  flex-shrink: 0 !important;
  object-fit: contain !important;
  margin: 0 !important;
  padding: 0 !important;
  /* 画像内余白を吸収: object-positionで中央固定 */
  object-position: center center !important;
  filter: brightness(0) invert(1) !important;
  /* inline要素の下余白(descender)を消す */
  vertical-align: top !important;
}

/* テキストspan */
.uniken-title-inner>span {
  display: block !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* パンくずリスト */
.uniken-breadcrumb .breadcrumb-item a {
  color: var(--uk-navy) !important;
  font-size: 0.78rem !important;
  text-decoration: none !important;
}

.uniken-breadcrumb .breadcrumb-item a:hover {
  color: var(--uk-gold) !important;
}

.uniken-breadcrumb .breadcrumb-item.active {
  color: var(--uk-gray) !important;
  font-size: 0.78rem !important;
}

.uniken-breadcrumb .breadcrumb-item+.breadcrumb-item::before {
  color: var(--uk-gray) !important;
}

/* ==========================================
   エリア検索専用
   ========================================== */

/* カテゴリーアイテム（アコーディオン1枚） */
.uk-category-item {
  border-radius: 6px !important;
  border: none !important;
  margin-bottom: 14px !important;
  overflow: hidden !important;
  background: #ffffff !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.07) !important;
}

/* カテゴリーヘッダー（クリック行） */
.uk-category-header {
  background: #ffffff !important;
  border: none !important;
  border-bottom: 1px solid var(--uk-border) !important;
  padding: 16px 20px !important;
  cursor: pointer !important;
  transition: background 0.2s !important;
  display: flex !important;
  align-items: center !important;
  user-select: none !important;
}

.uk-category-header:hover {
  background: #f4f6f8 !important;
}

/* 開閉アイコン */
.uk-category-header .uk-toggle-icon {
  transition: transform 0.25s ease !important;
  color: var(--uk-gray) !important;
  font-size: 1rem !important;
  flex-shrink: 0 !important;
}

.uk-category-header[aria-expanded="true"] .uk-toggle-icon {
  transform: rotate(45deg) !important;
  color: var(--uk-gold) !important;
}

/* カテゴリー名 */
.uk-category-name {
  font-family: 'Noto Sans JP', sans-serif !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  color: var(--uk-navy) !important;
  letter-spacing: 0.05em !important;
  flex-grow: 1 !important;
}

/* カテゴリー展開部分（市区町村一覧） */
.uk-category-body {
  background: #ffffff !important;
  border-top: none !important;
  padding: 4px 20px 20px !important;
}

/* 市区町村アイテム1行 */
.uk-area-item {
  padding-top: 18px !important;
}

/* 町名トリガーリンク */
.uk-town-toggle {
  color: var(--uk-gold) !important;
  text-decoration: none !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.05em !important;
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
  transition: color 0.2s !important;
}

.uk-town-toggle:hover {
  color: var(--uk-gold2) !important;
  text-decoration: none !important;
}

/* 町名展開ボックス */
.uk-town-box {
  background: var(--uk-light) !important;
  border-left: 3px solid var(--uk-gold) !important;
  padding: 16px 20px !important;
  border-radius: 0 4px 4px 0 !important;
  margin-top: 10px !important;
}

/* ==========================================
   路線検索専用
   ========================================== */

/* 白い検索内ボックス */
.uk-line-inner-box {
  background: #ffffff !important;
  border-radius: 6px !important;
  padding: 28px 32px !important;
  margin-bottom: 20px !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07) !important;
}

/* 路線グループのヘッダー */
.uk-line-header {
  background: var(--uk-light) !important;
  border-left: 4px solid var(--uk-gold) !important;
  padding: 12px 16px !important;
  margin-bottom: 16px !important;
  border-radius: 0 4px 4px 0 !important;
  display: flex !important;
  align-items: center !important;
}

/* 路線カテゴリバッジ */
.uk-line-badge {
  background: var(--uk-navy) !important;
  color: #ffffff !important;
  font-family: 'Montserrat', sans-serif !important;
  font-size: 0.62rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  padding: 3px 10px !important;
  border-radius: 3px !important;
  margin-right: 10px !important;
  flex-shrink: 0 !important;
}

/* 路線名 */
.uk-line-name {
  font-family: 'Noto Sans JP', sans-serif !important;
  font-weight: 700 !important;
  font-size: 0.92rem !important;
  color: var(--uk-navy) !important;
}

/* 区切り線 */
.uk-custom-divider {
  border: none !important;
  border-top: 1px solid var(--uk-border) !important;
  margin: 28px 0 !important;
}

/* ==========================================
   エリア・路線 共通フォームパーツ上書き
   ========================================== */

/* チェックボックス */
.uniken-area-search-wrapper .form-check-input,
.uniken-line-search-wrapper .form-check-input,
.uk-category-body .form-check-input,
.uk-line-inner-box .form-check-input {
  border-radius: 2px !important;
  cursor: pointer !important;
  border-color: #adb5bd !important;
}

.uniken-area-search-wrapper .form-check-input:checked,
.uniken-line-search-wrapper .form-check-input:checked,
.uk-category-body .form-check-input:checked,
.uk-line-inner-box .form-check-input:checked {
  background-color: var(--uk-gold) !important;
  border-color: var(--uk-gold) !important;
}

/* チェックラベル */
.uk-category-body .form-check-label,
.uk-line-inner-box .form-check-label {
  font-family: 'Noto Sans JP', sans-serif !important;
  font-size: 0.83rem !important;
  color: var(--uk-navy) !important;
  cursor: pointer !important;
  font-weight: 500 !important;
}

.uk-town-box .form-check-label {
  font-size: 0.78rem !important;
  color: var(--uk-gray) !important;
  font-weight: 400 !important;
}

/* 検索ボタン（ゴールドアクセント） */
.uk-btn-search {
  background: var(--uk-gold) !important;
  border: 2px solid var(--uk-gold) !important;
  color: #ffffff !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  font-weight: 700 !important;
  font-size: 0.88rem !important;
  letter-spacing: 0.12em !important;
  padding: 13px 24px !important;
  border-radius: 4px !important;
  transition: all 0.2s !important;
  width: 100% !important;
}

.uk-btn-search:hover {
  background: #8a6a48 !important;
  border-color: #8a6a48 !important;
  color: #ffffff !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 16px rgba(160, 125, 90, 0.35) !important;
}

/* リセットボタン */
.uk-btn-reset {
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, 0.35) !important;
  color: rgba(255, 255, 255, 0.75) !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  font-size: 0.83rem !important;
  letter-spacing: 0.08em !important;
  padding: 13px 24px !important;
  border-radius: 4px !important;
  transition: all 0.2s !important;
  width: 100% !important;
  text-align: center !important;
  display: block !important;
}

.uk-btn-reset:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.55) !important;
}

/* スマホ */
@media (max-width: 600px) {

  .uniken-area-search-wrapper,
  .uniken-line-search-wrapper {
    padding: 28px 18px !important;
  }

  .uk-category-header {
    padding: 13px 14px !important;
  }

  .uk-category-body {
    padding: 4px 14px 16px !important;
  }

  .uk-line-inner-box {
    padding: 18px 14px !important;
  }
}

/* ==========================================
   アニメーション
   ========================================== */
@keyframes ukFloatMain {

  0%,
  100% {
    transform: translateX(-50%) translateY(0);
  }

  50% {
    transform: translateX(-50%) translateY(-10px);
  }
}

@keyframes ukFloatSub {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-8px);
  }
}

@keyframes ukFloatBadge {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-6px);
  }
}

@keyframes ukScrollLine {
  0% {
    opacity: 1;
    transform: scaleY(1) translateY(0);
  }

  100% {
    opacity: 0;
    transform: scaleY(0.5) translateY(10px);
  }
}

@keyframes ukTagScroll {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }
}

/* ==========================================
   レスポンシブ（スマホのみ：600px以下）
   ========================================== */
@media (max-width: 600px) {
  .uniken-header {
    padding: 8px 0 !important;
  }

  /* スマホヘッダー: ロゴ42px + padding8px×2 = 58px */
  main.uniken-main {
    padding-top: 58px !important;
  }

  /* スマホヘッダー高さに合わせる */
  .uniken-container {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* ── Hero ──────────────────────── */
  .hero,
  .uk-hero {
    padding-top: 0 !important;
    /* main の padding-top で吸収済み */
    padding-bottom: 60px !important;
    min-height: 100svh !important;
    /* スマホのアドレスバーを考慮 */
  }

  .hero-inner,
  .uk-hero-inner {
    grid-template-columns: 1fr !important;
    padding: 0 20px !important;
    gap: 32px !important;
  }

  /* スマホはキャラ画像を上、テキストを下に */
  .hero-right,
  .uk-hero-right {
    height: 220px !important;
    order: -1 !important;
    width: 100% !important;
  }

  .char-wrap,
  .uk-char-wrap {
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
  }

  .char-main,
  .uk-char-main {
    width: 150px !important;
  }

  .char-left,
  .uk-char-left {
    width: 90px !important;
    bottom: 0 !important;
  }

  .char-right,
  .uk-char-right {
    width: 86px !important;
    bottom: 0 !important;
  }

  .float-badge,
  .uk-float-badge {
    display: none !important;
  }

  /* テキスト・CTA */
  .hero-left,
  .uk-hero-left {
    gap: 20px !important;
    align-items: flex-start !important;
  }

  .hero-title-line,
  .uk-hero-title-line {
    font-size: clamp(1.7rem, 7vw, 2.2rem) !important;
  }

  .hero-desc,
  .uk-hero-desc {
    font-size: 0.82rem !important;
    max-width: 100% !important;
  }

  .training-banner,
  .uk-training-banner {
    max-width: 100% !important;
  }

  /* SCROLLインジケーター */
  .scroll-indicator,
  .uk-scroll-indicator {
    margin-top: 24px !important;
  }

  /* ── Features ─────────────────── */
  .features,
  .uk-features {
    padding: 48px 20px !important;
  }

  .feature-grid,
  .uk-feature-grid {
    grid-template-columns: 1fr !important;
  }

  /* ── Header ─────────────────── */
  .uniken-logo-main {
    font-size: 15px !important;
  }

  .uniken-nav-login-btn {
    display: none !important;
  }

  /* ── Footer ─────────────────── */
  footer.uniken-footer,
  .uniken-footer {
    padding: 40px 20px 20px !important;
  }

  .uniken-footer-links {
    gap: 8px 0 !important;
  }

  .uniken-footer-link {
    padding: 3px 10px !important;
  }
}

/* ==========================================
   求人検索結果ページ (works/index)
   ========================================== */

/* パンくず */
.uk-breadcrumb {
  background: transparent;
  padding: 0;
}

.uk-breadcrumb .breadcrumb-item,
.uk-breadcrumb .breadcrumb-item a {
  color: #95a5a6;
  font-size: 0.75rem;
  text-decoration: none;
  letter-spacing: 0.05rem;
}

.uk-breadcrumb .breadcrumb-item.active {
  color: var(--uk-navy);
}

/* 結果ヘッダー */
.uk-result-header {
  border-bottom: 1px solid var(--uk-border);
  padding-bottom: 1.5rem;
  margin-bottom: 2rem;
}

.uk-result-count {
  color: var(--uk-navy);
  letter-spacing: 0.1rem;
}

.uk-result-header .form-select-sm {
  border-radius: 0 !important;
  border: 1px solid #ced4da;
  font-size: 0.8rem;
}

/* 求人カード */
.uk-job-card {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid var(--uk-border);
}

.uk-job-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}

/* カードタイトルブロック */
.uk-title-block {
  background-color: var(--uk-navy);
  padding: 10px 14px 8px;
}

.uk-title-text {
  font-size: 0.95rem;
  font-weight: 600;
  color: #fff;
  margin-bottom: 2px;
  line-height: 1.5;
  font-family: 'Noto Sans JP', sans-serif;
}

.uk-job-code {
  font-size: 0.65rem;
  color: var(--uk-gold2);
  text-align: right;
  display: block;
  font-family: 'Montserrat', sans-serif;
  letter-spacing: 0.08em;
}

/* カード詳細リスト */
.uk-job-info {
  font-size: 0.75rem !important;
  color: var(--uk-navy) !important;
}

.uk-job-info li {
  margin-bottom: 4px;
}

/* カード説明文 */
.uk-job-desc {
  font-size: 0.72rem;
  color: var(--uk-gray);
  line-height: 1.7;
}

/* ENTRYバー */
.uk-entry-bar {
  display: block;
  text-align: center;
  background-color: var(--uk-light);
  color: var(--uk-navy);
  padding: 9px 0;
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.15em;
  border-top: 1px solid var(--uk-border);
  text-decoration: none;
  font-family: 'Montserrat', sans-serif;
  transition: background 0.2s, color 0.2s;
}

.uk-entry-bar:hover {
  background-color: var(--uk-navy);
  color: #fff;
}

/* ページネーション */
.uk-pagination {
  margin-top: 3rem;
}

.uk-pagination .page-item .page-link {
  border-radius: 0 !important;
  color: var(--uk-navy);
  border: 1px solid var(--uk-border);
  font-size: 0.82rem;
}

.uk-pagination .page-item.active .page-link {
  background-color: var(--uk-navy);
  border-color: var(--uk-navy);
  color: #fff;
}

/* ==========================================
   求人詳細ページ (works/show)
   ========================================== */

/* ページ全体コンテナ */
.uk-job-preview {
  background-color: #fff;
  border-radius: 2px;
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.05);
  overflow: hidden;
  border: 1px solid #eee;
}

/* ヘッダーブロック */
.uk-job-header-block {
  background-color: var(--uk-navy);
  padding: 1.8rem 2.5rem;
  color: #fff;
}

.uk-job-header-title {
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.03rem;
  margin: 0;
  font-family: 'Noto Sans JP', sans-serif;
  color: #fff;
}

/* 詳細リスト */
.uk-job-details-list {
  padding: 0.5rem 2.5rem;
}

.uk-job-item {
  display: flex;
  border-bottom: 1px solid #f0f0f0;
  padding: 1rem 0;
}

.uk-job-item:last-child {
  border-bottom: none;
}

.uk-job-item-label {
  flex: 0 0 180px;
  font-weight: 700;
  color: var(--uk-navy);
  font-size: 0.78rem;
  display: flex;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
}

.uk-job-item-label::before {
  content: '';
  display: inline-block;
  width: 3px;
  height: 14px;
  background-color: var(--uk-gold);
  margin-right: 10px;
  flex-shrink: 0;
}

.uk-job-item-value {
  flex: 1;
  color: #444;
  line-height: 1.75;
  font-size: 0.82rem;
}

/* 特徴アイコングリッド */
.uk-features-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  padding: 0.5rem 0;
}

.uk-feature-icon-wrap {
  width: 70px;
  text-align: center;
  transition: transform 0.3s ease;
}

.uk-feature-icon-wrap:hover {
  transform: translateY(-5px);
}

.uk-feature-icon-img {
  width: 100%;
  height: auto;
  filter: grayscale(0.2);
}

/* アクションエリア */
.uk-action-bar {
  background-color: #fff;
  border-top: 1px solid #eee;
  padding: 2rem 2.5rem;
  display: flex;
  gap: 1rem;
}

/* アクションボタン */
.uk-btn-minimal {
  border-radius: 0;
  padding: 0.5rem 1rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08rem;
  transition: all 0.25s ease;
  font-family: 'Noto Sans JP', sans-serif;
}

.uk-btn-entry {
  background-color: var(--uk-navy);
  border: none;
  color: #fff;
  flex: 2;
}

.uk-btn-entry:hover {
  background-color: var(--uk-navy2);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(26, 37, 47, 0.2);
}

.uk-btn-favorite {
  flex: 1;
}

/* 戻るリンク */
.uk-back-link {
  color: var(--uk-gray);
  text-decoration: none;
  font-size: 0.82rem;
  transition: color 0.2s;
}

.uk-back-link:hover {
  color: var(--uk-navy);
}

/* レスポンシブ (works/show) */
@media (max-width: 991px) {
  .uk-job-item {
    flex-direction: column;
  }

  .uk-job-item-label {
    flex: 0 0 auto;
    margin-bottom: 0.5rem;
  }

  .uk-job-header-block,
  .uk-job-details-list,
  .uk-action-bar {
    padding: 1.2rem 1.5rem;
  }

  .uk-job-header-title {
    font-size: 1rem;
  }
}

/* レスポンシブ (works/index ・ show 共通 スマホ) */
@media (max-width: 600px) {
  .uk-result-header {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 12px !important;
  }

  /* show ページ */
  .uk-job-header-block,
  .uk-job-details-list,
  .uk-action-bar {
    padding: 1rem !important;
  }

  .uk-job-header-title {
    font-size: 0.95rem !important;
  }

  .uk-job-item {
    padding: 0.75rem 0 !important;
  }

  .uk-job-item-label {
    font-size: 0.72rem !important;
    margin-bottom: 0.4rem !important;
  }

  .uk-job-item-value {
    font-size: 0.78rem !important;
  }

  /* 給与の大きい数字（fs-5クラス）も小さく */
  .uk-job-item-value .fs-5 {
    font-size: 0.95rem !important;
  }

  /* actionバー */
  .uk-action-bar {
    flex-direction: column !important;
  }

  .uk-btn-favorite,
  .uk-btn-entry {
    flex: none !important;
    width: 100% !important;
  }
}

/* ==========================================
   お気に入りページ (users/my_favorite)
   ========================================== */

/* ページタイトル */
.uk-fav-title {
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.3rem;
  color: var(--uk-navy);
  font-size: 1.4rem;
  font-weight: 300;
  text-align: center;
}

.uk-fav-title-line {
  width: 40px;
  height: 1px;
  background-color: var(--uk-gold);
  margin: 1.2rem auto 0.6rem;
}

/* ゲスト向けカード */
.uk-guest-card {
  background: #fff;
  border: none !important;
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06) !important;
  border-radius: 4px !important;
}

.uk-guest-card h2 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--uk-navy);
  font-family: 'Noto Sans JP', sans-serif;
}

.uk-guest-card p {
  font-size: 0.82rem;
  color: var(--uk-gray);
}

/* ゲスト向けログイン・登録ボタン */
.uk-btn-login-dark {
  border-radius: 0;
  padding: 0.55rem 2rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08rem;
  background: var(--uk-navy);
  color: #fff;
  border: none;
  transition: background 0.2s;
}

.uk-btn-login-dark:hover {
  background: var(--uk-navy2);
  color: #fff;
}

.uk-btn-register-outline {
  border-radius: 0;
  padding: 0.55rem 2rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08rem;
  background: transparent;
  color: var(--uk-navy);
  border: 1px solid var(--uk-navy);
  transition: all 0.2s;
}

.uk-btn-register-outline:hover {
  background: var(--uk-navy);
  color: #fff;
}

/* モーダル */
.uk-modal-content {
  border-radius: 0 !important;
  font-size: 0.85rem;
}

.uk-modal-content .modal-body p {
  font-size: 0.85rem;
  color: var(--uk-navy);
}

/* ==========================================
   ユーザー共通（index / edit / my_entries）
   ========================================== */

/* ページタイトル（共通） */
.uk-section-title {
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.3rem;
  color: var(--uk-navy);
  font-size: 1.3rem;
  font-weight: 300;
  text-align: center;
}

.uk-section-line {
  width: 40px;
  height: 1px;
  background-color: var(--uk-gold);
  margin: 1.2rem auto 0.6rem;
}

/* 共通カード */
.uk-user-card {
  border-radius: 2px !important;
  border: none !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06) !important;
  background: #fff;
}

/* 項目行（index / show共通） */
.uk-info-row {
  border-bottom: 1px solid #f1f1f1;
  padding: 1rem 0;
  align-items: center;
}

.uk-info-row:last-child {
  border-bottom: none;
}

.uk-info-label {
  color: var(--uk-gray);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.05rem;
  font-family: 'Noto Sans JP', sans-serif;
}

.uk-info-value {
  color: var(--uk-navy);
  font-size: 0.85rem;
  font-family: 'Noto Sans JP', sans-serif;
}

/* ファイルアップロード */
.uk-file-input {
  border-radius: 0 !important;
  border: 1px solid #e0e0e0 !important;
  font-size: 0.78rem !important;
}

.uk-btn-upload {
  border-radius: 0;
  background-color: var(--uk-navy);
  color: #fff;
  font-size: 0.75rem;
  padding: 0.4rem 1rem;
  white-space: nowrap;
  border: none;
  transition: background 0.2s;
}

.uk-btn-upload:hover {
  background-color: var(--uk-navy2);
  color: #fff;
}

/* 退会ゾーン */
.uk-danger-zone {
  margin-top: 4rem;
  border: 1px solid var(--uk-border) !important;
  background: transparent !important;
  border-radius: 2px !important;
  opacity: 0.8;
}

/* セクション見出し（edit内） */
.uk-form-section-title {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--uk-navy);
  letter-spacing: 0.1rem;
  font-family: 'Noto Sans JP', sans-serif;
}

/* フォームラベル */
.uk-form-label {
  color: var(--uk-gray);
  font-size: 0.78rem;
  font-weight: 700;
  margin-bottom: 0.4rem;
  display: block;
  font-family: 'Noto Sans JP', sans-serif;
}

/* 必須バッジ */
.uk-badge-required {
  font-size: 0.58rem;
  background-color: #e74c3c;
  font-weight: 400;
  margin-left: 0.4rem;
  vertical-align: middle;
  padding: 2px 5px;
  color: #fff;
  border-radius: 2px;
}

/* フォーム入力 */
.uk-form-input {
  border-radius: 0 !important;
  border: 1px solid #e0e0e0 !important;
  background-color: #fff !important;
  padding: 0.6rem 0.75rem !important;
  font-size: 0.85rem !important;
  transition: border-color 0.2s;
}

.uk-form-input:focus {
  border-color: var(--uk-navy) !important;
  box-shadow: none !important;
}

.uk-form-input::placeholder {
  color: #ccc !important;
  font-size: 0.78rem !important;
  opacity: 0.8;
}

/* 保存ボタン */
.uk-btn-save {
  border-radius: 0;
  background-color: var(--uk-navy);
  border: 1px solid var(--uk-navy);
  color: #fff;
  letter-spacing: 0.2rem;
  padding: 0.75rem 3rem;
  font-size: 0.85rem;
  font-weight: 700;
  transition: all 0.25s;
  font-family: 'Noto Sans JP', sans-serif;
}

.uk-btn-save:hover {
  background-color: #fff;
  color: var(--uk-navy);
}

/* ラジオボタン */
.uk-form-check .form-check-input:checked {
  background-color: var(--uk-navy);
  border-color: var(--uk-navy);
}

/* ==========================================
   エントリー履歴 (users/my_entries)
   ========================================== */

/* エントリーカード */
.uk-entry-card {
  border-radius: 2px !important;
  border: none !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05) !important;
  background: #fff;
}

/* ステータスバッジ */
.uk-status-badge {
  padding: 4px 12px;
  font-size: 0.75rem;
  font-weight: 700;
  border: 1px solid;
  border-radius: 0;
  white-space: nowrap;
  font-family: 'Montserrat', sans-serif;
  letter-spacing: 0.05em;
}

.uk-status-applied {
  background: #f8f9fa;
  color: #7f8c8d;
  border-color: #dee2e6;
}

.uk-status-selection {
  background: #ebf8ff;
  color: #3182ce;
  border-color: #bee3f8;
}

.uk-status-recruitment {
  background: #f0fff4;
  color: #2f855a;
  border-color: #c6f6d5;
}

.uk-status-rejected {
  background: #fff5f5;
  color: #c53030;
  border-color: #fed7d7;
}

.uk-status-withdrawn {
  background: #fff5f5;
  color: #c53030;
  border-color: #fed7d7;
}

/* 就業情報ボックス */
.uk-working-info-box {
  background: var(--uk-light);
  border-left: 3px solid var(--uk-gold);
  padding: 1.2rem 1.5rem;
  margin-bottom: 1.5rem;
  border-radius: 0 2px 2px 0;
}

.uk-working-info-box .uk-info-label {
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 0.3rem;
  color: var(--uk-gray);
}

.uk-working-info-box .uk-info-value {
  font-size: 0.85rem;
  color: var(--uk-navy);
  font-weight: 600;
}

/* 進捗ステップ */
.uk-step-container {
  display: flex;
  justify-content: space-between;
  position: relative;
  padding: 1rem 0;
  max-width: 460px;
  margin: 0 auto;
}

.uk-step-line {
  position: absolute;
  top: 21px;
  left: 15%;
  right: 15%;
  height: 1px;
  background-color: #e0e0e0;
  z-index: 1;
}

.uk-step-item {
  position: relative;
  z-index: 2;
  text-align: center;
  flex: 1;
}

.uk-step-dot {
  width: 22px;
  height: 22px;
  border-radius: 0;
  background-color: #fff;
  border: 1px solid #e0e0e0;
  margin: 0 auto 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  color: #ccc;
}

.uk-step-text {
  font-size: 0.68rem;
  color: var(--uk-gray);
  font-weight: 700;
  white-space: nowrap;
  letter-spacing: 0.02rem;
  font-family: 'Noto Sans JP', sans-serif;
}

/* 完了 */
.uk-step-item.completed .uk-step-dot {
  background: var(--uk-navy);
  border-color: var(--uk-navy);
  color: #fff;
}

.uk-step-item.completed .uk-step-text {
  color: var(--uk-navy);
}

/* 進行中 */
.uk-step-item.active .uk-step-dot {
  background: #3498db;
  border-color: #3498db;
  color: #fff;
}

.uk-step-item.active .uk-step-text {
  color: #3498db;
}

/* 不採用・辞退 */
.uk-step-item.rejected .uk-step-dot {
  background: #e74c3c;
  border-color: #e74c3c;
  color: #fff;
}

.uk-step-item.rejected .uk-step-text {
  color: #e74c3c;
}

/* 詳細を見るボタン */
.uk-btn-outline-detail {
  border-radius: 0;
  font-size: 0.75rem;
  letter-spacing: 0.05rem;
  padding: 0.4rem 1.2rem;
  color: var(--uk-navy);
  border: 1px solid var(--uk-navy);
  background: transparent;
  transition: all 0.2s;
  font-family: 'Noto Sans JP', sans-serif;
}

.uk-btn-outline-detail:hover {
  background: var(--uk-navy);
  color: #fff;
}

/* レスポンシブ */
@media (max-width: 600px) {
  .uk-step-text {
    font-size: 0.6rem !important;
  }

  .uk-step-container {
    max-width: 100% !important;
  }

  .uk-info-label {
    font-size: 0.72rem !important;
  }

  .uk-info-value {
    font-size: 0.8rem !important;
  }

  .uk-btn-save {
    padding: 0.65rem 2rem !important;
    font-size: 0.8rem !important;
  }
}

/* ==========================================
   エントリーフォーム (entries/create)
   ========================================== */

/* 求人サマリーボックス */
.uk-job-summary-box {
  background-color: #fcfcfc;
  border: 1px solid #eee;
  border-left: 3px solid var(--uk-gold);
  padding: 1.2rem 1.5rem;
  margin-bottom: 2rem;
  text-align: center;
}

.uk-job-summary-box h2 {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--uk-navy);
  margin-bottom: 4px;
  font-family: 'Noto Sans JP', sans-serif;
}

.uk-job-summary-box p {
  font-size: 0.72rem;
  color: var(--uk-gray);
  margin: 0;
  font-family: 'Montserrat', sans-serif;
  letter-spacing: 0.05em;
}

/* 読み取り専用フィールド */
.uk-form-input-readonly {
  background-color: #f9f9f9 !important;
  border-color: #eee !important;
  color: var(--uk-gray) !important;
  cursor: not-allowed !important;
  border-radius: 0 !important;
  font-size: 0.85rem !important;
  padding: 0.6rem 0.75rem !important;
}

/* プライバシーポリシーボックス */
.uk-privacy-box {
  background-color: var(--uk-light);
  border: 1px solid var(--uk-border);
  padding: 1.5rem;
  text-align: center;
}

.uk-privacy-box p {
  font-size: 0.78rem;
  color: var(--uk-gray);
  margin-bottom: 0.75rem;
}

.uk-privacy-box .form-check-label {
  font-size: 0.82rem;
  cursor: pointer;
  font-family: 'Noto Sans JP', sans-serif;
}

.uk-privacy-box .form-check-input:checked {
  background-color: var(--uk-navy);
  border-color: var(--uk-navy);
}

/* ENTRYボタン */
.uk-btn-entry-submit {
  background-color: var(--uk-navy) !important;
  border: none !important;
  color: #fff !important;
  padding: 0.75rem !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.25rem !important;
  border-radius: 0 !important;
  font-family: 'Montserrat', sans-serif !important;
  transition: background 0.2s !important;
}

.uk-btn-entry-submit:hover {
  background-color: var(--uk-navy2) !important;
}

/* ==========================================
   認証ページ共通 (auth/*)
   ========================================== */

/* 認証カード */
.uk-auth-card {
  border-radius: 2px !important;
  border: none !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06) !important;
  background: #fff;
}

/* インフォテキスト */
.uk-auth-info {
  color: var(--uk-gray);
  font-size: 0.82rem;
  line-height: 1.8;
  text-align: center;
}

/* パスワード入力グループ（目のアイコン付き） */
.uk-pw-group {
  display: flex;
  border: 1px solid #e0e0e0 !important;
  background-color: #fff !important;
  border-radius: 0 !important;
  transition: border-color 0.2s;
}

.uk-pw-group:focus-within {
  border-color: var(--uk-navy) !important;
}

.uk-pw-group input {
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  padding: 0.6rem 0.75rem !important;
  font-size: 0.85rem !important;
  flex: 1;
}

.uk-pw-group input:focus {
  box-shadow: none !important;
}

.uk-pw-group .uk-pw-toggle {
  border: none;
  background: transparent;
  color: var(--uk-gray);
  padding: 0 0.75rem;
  font-size: 0.82rem;
}

/* 送信・アクションボタン（共通） */
.uk-btn-auth {
  border-radius: 0 !important;
  background-color: var(--uk-navy) !important;
  border: 1px solid var(--uk-navy) !important;
  color: #fff !important;
  letter-spacing: 0.12rem;
  padding: 0.7rem 1rem;
  font-size: 0.85rem;
  font-weight: 700;
  font-family: 'Noto Sans JP', sans-serif;
  transition: all 0.25s;
}

.uk-btn-auth:hover {
  background-color: #fff !important;
  color: var(--uk-navy) !important;
}

/* ログイン用ボタン（少し大きめ） */
.uk-btn-auth-lg {
  padding: 0.8rem 1rem !important;
  letter-spacing: 0.15rem !important;
}

/* 同意エリア */
.uk-agree-box {
  background: var(--uk-light);
  border: none;
  border-radius: 0 !important;
  padding: 1.2rem 1.5rem;
}

.uk-agree-box p {
  font-size: 0.78rem;
  color: var(--uk-gray);
  margin-bottom: 0.75rem;
}

.uk-agree-box .form-check-label {
  font-size: 0.82rem;
  color: var(--uk-navy);
  cursor: pointer;
  font-family: 'Noto Sans JP', sans-serif;
}

.uk-agree-box .form-check-input:checked {
  background-color: var(--uk-navy);
  border-color: var(--uk-navy);
}

/* verify-emailページ用ボタン */
.uk-btn-verify {
  border-radius: 0;
  background-color: var(--uk-navy);
  border: none;
  color: #fff;
  padding: 0.65rem 2rem;
  font-size: 0.85rem;
  font-weight: 700;
  transition: background 0.2s;
}

.uk-btn-verify:hover {
  background-color: var(--uk-navy2);
  color: #fff;
}

/* verify-emailページ本文 */
.uk-verify-text {
  font-size: 0.85rem;
  color: var(--uk-gray);
  line-height: 1.9;
}