/* ずっとにほんナビ：Cocoonの上に重ねる最小限のスタイル（スマホ優先） */
:root {
  --znv-ink: #1f2933; --znv-sub: #5f6b76; --znv-line: #d9e1e7; --znv-soft: #f3f6f8;
  --znv-main: #0b6e4f; --znv-main-dark: #085a40; --znv-main-soft: #e6f3ee;
  --znv-hot: #b42318; --znv-hot-soft: #fdecea; --znv-warm: #fff4e5; --znv-warm-ink: #8a4b00;
}

/* サイドバーなしの1カラム */
#sidebar, .sidebar { display: none !important; }
.content-in { display: block !important; }
.main { width: auto !important; max-width: 860px; margin: 0 auto !important; float: none !important; }
body { background: #fff; }

/* ブログ用の表示を外す */
.znv-job .date-tags, .znv-job .author-info, .znv-job .sns-share, .znv-job .sns-follow,
.znv-job .related-entries, .znv-job .pager-post-navi, .znv-job .comment-area,
.znv-job .entry-categories-tags, .znv-job .under-entry-content, .znv-job .post-date, .znv-job .post-update,
.znv-listpage .sns-share, .znv-listpage .sns-follow, .znv-listpage .date-tags, .znv-listpage .author-info,
.znv-archive ~ .sns-share, .archive .sns-share, .archive .sns-follow { display: none !important; }
.home.page .entry-title, .home.page .article-header { display: none; }
.znv-job .toc, .znv-listpage .toc, .znv-archive .toc, .archive .toc { display: none !important; }
.znv-job .eye-catch { max-width: 480px; margin: 0 auto 12px; }

.znv { color: var(--znv-ink); font-size: 16px; line-height: 1.7; }
.znv *, .znv *::before, .znv *::after { box-sizing: border-box; }
.znv a { color: var(--znv-main); }

/* ボタン */
.znv-btn, .entry-content .znv-btn {
  display: flex; align-items: center; justify-content: center; width: 100%;
  min-height: 48px; padding: 10px 16px; border: 0; border-radius: 10px;
  background: var(--znv-main); color: #fff !important; font-weight: 700; font-size: 16px;
  text-decoration: none !important; cursor: pointer; line-height: 1.4;
}
.znv-btn:hover { background: var(--znv-main-dark); }
.znv-btn-sm { min-height: 44px; font-size: 15px; margin-top: 10px; }
.znv-btn-line { background: #fff; color: var(--znv-main) !important; border: 1.5px solid var(--znv-main); }
.znv-btn-line:hover { background: var(--znv-main-soft); }

/* 検索フォーム */
.znv-search { background: var(--znv-soft); border-radius: 14px; padding: 14px; margin: 0 0 16px; }
.znv-search-row { display: grid; grid-template-columns: 1fr; gap: 10px; margin-bottom: 10px; }
.znv-field { display: block; margin: 0 0 10px; }
.znv-search .znv-field { margin: 0; }
.znv-label { display: block; font-size: 13px; color: var(--znv-sub); margin-bottom: 4px; font-weight: 700; }
.znv-label b, .znv-check b { color: var(--znv-hot); margin-left: 2px; }
.znv input[type=search], .znv input[type=text], .znv input[type=email], .znv input[type=tel], .znv select, .znv textarea {
  width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid var(--znv-line); border-radius: 10px;
  background: #fff; color: var(--znv-ink); font-size: 16px; font-family: inherit;
}
.znv textarea { min-height: 110px; }
.znv-check { display: flex; gap: 8px; align-items: flex-start; margin: 4px 0 12px; font-size: 15px; }
.znv-check input { width: 20px; height: 20px; margin-top: 3px; flex: none; }
@media (min-width: 640px) {
  .znv-search-row { grid-template-columns: 2fr 1fr; }
  .znv-search-row + .znv-search-row { grid-template-columns: 1fr 1fr; }
  .znv-search .znv-btn { width: auto; min-width: 220px; margin-left: auto; }
}

/* 検索：キーワード → 分野・日本語（2列） → 地域・寮（たたむ） */
.znv-search .znv-field-q, .znv-search .znv-field-visa { margin-bottom: 10px; }
@media (min-width: 640px) { .znv-search { display: grid; grid-template-columns: 2fr 1fr; gap: 0 10px; } .znv-search .znv-filters, .znv-search .znv-btn { grid-column: 1 / -1; } }
.znv-search .znv-row-2, .znv-search-row + .znv-search-row.znv-row-2 { grid-template-columns: 1fr 1fr !important; }
.znv-filters .znv-field { margin: 4px 0 10px; }

/* ロゴ */
.header .site-logo-image { max-height: 56px; width: auto; }
@media (max-width: 480px) { .header .site-logo-image { max-height: none; width: min(320px, 86vw); height: auto; } }
.znv-sec-sub .znv-h { font-size: 16px; color: var(--znv-sub); }
.znv-chip-sm { min-height: 38px; padding: 6px 12px; font-size: 14px; }

/* 絞り込み（たたむ） */
.znv-filters { margin: 0 0 10px; }
.znv-filters summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-weight: 700; color: var(--znv-main); list-style: none; }
.znv-filters summary::-webkit-details-marker { display: none; }
.znv-filters summary::before { content: '＋'; margin-right: 6px; }
.znv-filters[open] summary::before { content: '－'; }
.znv-filters .znv-search-row { margin-top: 4px; }

/* トップ */
.znv-hero { background: var(--znv-main-soft); border-radius: 16px; padding: 18px 14px; margin: 0 0 20px; }
.znv-hero-lead { font-size: 22px; font-weight: 800; color: var(--znv-main); margin: 0 0 4px; line-height: 1.35; }
.znv-hero-sub { margin: 0 0 12px; font-size: 15px; }
.znv-hero .znv-search { background: #fff; margin: 0; }
.znv-sec { margin: 0 0 24px; }
.entry-content .znv-h, .znv-h {
  font-size: 18px; font-weight: 800; margin: 0 0 10px; padding: 0; border: 0; background: none; color: var(--znv-ink);
}
.entry-content .znv-h::before, .entry-content .znv-h::after { content: none; display: none; }
.znv-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.znv-chip {
  display: inline-flex; align-items: center; gap: 6px; min-height: 42px; padding: 8px 14px;
  border: 1px solid var(--znv-line); border-radius: 22px; background: #fff; color: var(--znv-ink) !important;
  text-decoration: none !important; font-size: 15px;
}
.znv-chip small { color: var(--znv-sub); font-size: 12px; }
.znv-chip:hover { border-color: var(--znv-main); }
.znv-more { margin: 12px 0 0; }

/* 一覧 */
.znv-list-head { display: flex; justify-content: space-between; align-items: center; margin: 4px 0 10px; gap: 8px; flex-wrap: wrap; }
.znv-count { font-weight: 800; font-size: 17px; }
.znv-sort { display: flex; gap: 10px; font-size: 14px; }
.znv-sort b { color: var(--znv-ink); }
.znv-cards { display: grid; grid-template-columns: 1fr; gap: 12px; }
@media (min-width: 720px) { .znv-cards { grid-template-columns: 1fr 1fr; } }
.znv-card { border: 1px solid var(--znv-line); border-radius: 14px; padding: 14px; background: #fff; display: flex; flex-direction: column; }
.znv-card-hot { border: 2px solid var(--znv-hot); }
.znv-badges { display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 6px; }
.znv-b { display: inline-block; padding: 1px 8px; border-radius: 6px; background: var(--znv-main-soft); color: var(--znv-main); font-size: 12px; font-weight: 700; line-height: 1.7; }
.znv-b-hot { background: var(--znv-hot); color: #fff; }
.znv-b-dorm { background: var(--znv-warm); color: var(--znv-warm-ink); }
.entry-content .znv-card-title, .znv-card-title { font-size: 16px; line-height: 1.5; margin: 0 0 4px; padding: 0; border: 0; background: none; font-weight: 700; }
.entry-content .znv-card-title::before, .entry-content .znv-card-title::after { content: none; display: none; }
.znv-card-title a { color: var(--znv-ink) !important; text-decoration: none; }
.znv-card-title a:hover { text-decoration: underline; }
.znv-card-co { font-size: 14px; color: var(--znv-sub); margin: 0 0 6px; }
.znv-card-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 14px; margin-top: auto; }
.znv-m-pay { font-weight: 700; color: var(--znv-ink); }
.znv-empty { background: var(--znv-soft); border-radius: 12px; padding: 16px; }
.znv-pager { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin: 16px 0; }
.znv-pager a, .znv-pager b { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--znv-line); border-radius: 10px; text-decoration: none; }
.znv-pager b { background: var(--znv-main); color: #fff; border-color: var(--znv-main); }
.znv-desc { margin: 0 0 12px; color: var(--znv-sub); font-size: 15px; }

/* 求人詳細 */
.znv-summary { border: 1px solid var(--znv-line); border-radius: 14px; padding: 14px; margin: 0 0 20px; background: #fff; }
.znv-summary dl { margin: 6px 0 12px; }
.znv-summary dl > div { display: grid; grid-template-columns: 88px 1fr; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--znv-soft); }
.znv-summary dt { color: var(--znv-sub); font-size: 14px; font-weight: 700; }
.znv-summary dd { margin: 0; font-size: 15px; white-space: pre-line; }
.znv-co { font-size: 14px; color: var(--znv-sub); font-weight: 700; margin-left: 4px; }
.znv-closed { background: var(--znv-hot-soft); color: var(--znv-hot); border-radius: 12px; padding: 12px 14px; font-weight: 700; margin: 0 0 12px; }
.entry-content table.znv-table { width: 100%; border-collapse: collapse; font-size: 15px !important; line-height: 1.7; }
.entry-content table.znv-table th, .entry-content table.znv-table td { font-size: 15px !important; }
.entry-content table.znv-table th, .entry-content table.znv-table td { border: 1px solid var(--znv-line); padding: 10px; vertical-align: top; text-align: left; }
.entry-content table.znv-table th { background: var(--znv-soft); width: 7.5em; white-space: nowrap; font-weight: 700; }
@media (max-width: 560px) {
  .entry-content table.znv-table, .entry-content table.znv-table tbody, .entry-content table.znv-table tr,
  .entry-content table.znv-table th, .entry-content table.znv-table td { display: block; width: 100%; }
  .entry-content table.znv-table th { border-bottom: 0; }
}

/* 応募フォーム */
.znv-apply { border: 2px solid var(--znv-main); border-radius: 16px; padding: 16px 14px; margin: 24px 0; scroll-margin-top: 70px; }
.znv-note { font-size: 14px; color: var(--znv-sub); margin: 0 0 10px; }
.znv-ok { background: var(--znv-main-soft); color: var(--znv-main); border-radius: 12px; padding: 14px; font-weight: 700; }
.znv-err { background: var(--znv-hot-soft); color: var(--znv-hot); border-radius: 12px; padding: 12px 14px; margin: 0 0 10px; font-weight: 700; }
.znv-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* スマホの固定ボタン */
.znv-sticky { display: none; }
@media (max-width: 834px) {
  .znv-sticky { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 999; padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.96); border-top: 1px solid var(--znv-line); }
  .znv-job { padding-bottom: 72px; }
  .znv-job #go-to-top, .znv-job .go-to-top { bottom: 84px !important; }
}

/* 学習サイトへの案内 */
.znv-study { background: var(--znv-soft); border-radius: 14px; padding: 14px; margin: 24px 0 8px; }
.znv-study p { margin: 0 0 10px; font-size: 15px; }
