@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELL の子テーマ（halolab.jp メカニックスタイル）
    Version: 1.1.0
    Author: ハロ
    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* ===== halolab.jp メカニック風カスタムCSS ===== */

/* 全体 */
body {
    background: #0D1117;
    color: #E6EDF3;
}

/* リンク */
a {
    color: #58A6FF;
    text-decoration: none;
}
a:hover {
    color: #79C0FF;
    text-decoration: underline dashed;
}

/* コードブロック - GitHub Dark 風 */
pre, code, kbd, samp {
    font-family: "JetBrains Mono", "Fira Code", "Source Code Pro", "SF Mono", Consolas, monospace !important;
}
pre {
    background: #161B22 !important;
    color: #E6EDF3 !important;
    border-radius: 4px;
    border: 1px solid #30363D;
    padding: 16px;
    line-height: 1.5;
    overflow-x: auto;
}

:not(pre) > code {
    background: #161B22 !important;
    color: #79C0FF !important;
    padding: 2px 6px;
    border-radius: 3px;
    border: 1px solid #30363D;
    font-size: 0.9em;
}

/* 記事本文の見出し */
.post_content h2 {
    border-left: 4px solid #58A6FF !important;
    padding-left: 12px;
    background: none !important;
    color: #E6EDF3;
    font-weight: 700;
    margin-top: 2em;
}
.post_content h2::before {
    content: "# ";
    color: #58A6FF;
    font-family: "JetBrains Mono", monospace;
    opacity: 0.7;
}

.post_content h3 {
    color: #79C0FF;
    border-bottom: 1px dashed #30363D;
    padding-bottom: 4px;
    margin-top: 1.5em;
}
.post_content h3::before {
    content: "## ";
    color: #58A6FF;
    font-family: "JetBrains Mono", monospace;
    opacity: 0.6;
    font-size: 0.9em;
}

/* メタ情報 */
.p-postList__meta, .p-articleThumb__cat, .post-meta {
    font-family: "JetBrains Mono", monospace;
    font-size: 0.85em;
    color: #8B949E;
}

/* サイトタイトル - プロンプト風 */
.c-headLogo__title, .site-title, .l-header__logo a {
    font-family: "JetBrains Mono", "Noto Sans JP", monospace !important;
    color: #E6EDF3 !important;
}
.c-headLogo__title::before, .site-title::before, .l-header__logo a::before {
    content: "> ";
    color: #58A6FF;
    margin-right: 4px;
    font-family: "JetBrains Mono", monospace;
}

/* 引用 */
blockquote {
    border-left: 4px solid #3FB950 !important;
    background: #161B22 !important;
    padding: 12px 16px;
    color: #C9D1D9;
}

/* テーブル */
table {
    border: 1px solid #30363D;
}
th {
    background: #161B22 !important;
    color: #58A6FF !important;
    border-bottom: 2px solid #30363D;
}
td {
    border-bottom: 1px solid #30363D;
}

/* SWELL ボタン */
.swell-block-button .swell-block-button__link {
    background: #58A6FF !important;
    color: #0D1117 !important;
    border-radius: 4px;
    font-family: "JetBrains Mono", "Noto Sans JP", monospace;
    font-weight: 700;
    transition: all 0.2s;
}
.swell-block-button .swell-block-button__link:hover {
    background: #79C0FF !important;
    transform: translateY(-1px);
}

/* サイドバー */
.p-sideBar, .sidebar, .l-sidebar__inner {
    background: #161B22;
}

/* 検索 */
input[type="search"], input[type="text"], input[type="email"], textarea {
    background: #0D1117 !important;
    color: #E6EDF3 !important;
    border: 1px solid #30363D !important;
    font-family: "JetBrains Mono", "Noto Sans JP", monospace;
}

/* ヘッダー */
.l-header {
    background: #0D1117 !important;
    border-bottom: 1px solid #30363D;
    box-shadow: 0 1px 0 rgba(88, 166, 255, 0.2);
}

/* フッター */
.l-footer {
    background: #161B22 !important;
    color: #8B949E !important;
}

/* グローバルメニュー */
.gnav .menu-item a {
    color: #E6EDF3 !important;
    font-family: "JetBrains Mono", "Noto Sans JP", monospace;
}
.gnav .menu-item a:hover {
    color: #58A6FF !important;
}

/* 記事カード */
.p-postList__title, .c-postTitle {
    color: #E6EDF3;
}
.p-postList__title:hover {
    color: #58A6FF;
}

/* カテゴリラベル */
.cat-item, .p-postList__cat {
    background: rgba(88, 166, 255, 0.1) !important;
    color: #58A6FF !important;
    border: 1px solid #30363D;
    border-radius: 3px;
    font-family: "JetBrains Mono", monospace;
    font-size: 0.85em;
}

/* ページネーション */
.page-numbers {
    background: #161B22 !important;
    color: #E6EDF3 !important;
    border: 1px solid #30363D !important;
    font-family: "JetBrains Mono", monospace;
}
.page-numbers.current {
    background: #58A6FF !important;
    color: #0D1117 !important;
}


/* === Reading time + TOC styles (copied from ryman-nurse 2026-05-13, prefix stripped) === */
/* ===== 読了時間バナー（snc-reading-time・2026-05-13 追加） ===== */
.snc-reading-time {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  margin: 0 0 12px;
  background: #f4f4f4;
  border-radius: 6px;
  color: #666;
  font-size: 14px;
  line-height: 1.5;
}
.snc-reading-time__icon {
  font-size: 15px;
  color: #888;
  line-height: 1;
}
.snc-reading-time__label {
  flex: 1;
}
.snc-reading-time strong {
  color: #333;
  font-weight: 700;
  margin: 0 2px;
}
@media (max-width: 600px) {
  .snc-reading-time {
    font-size: 13px;
    padding: 8px 14px;
  }
}

/* ===== 目次の折りたたみ（snc-toc--collapsible・2026-05-13 追加） =====
   項目が多い目次は初期表示で4項目程度に制限し、ボタンクリックで全展開する。
   仕様：
   - <details open> はそのまま（目次タイトルは常に見える）
   - .snc-toc--collapsible:not(.is-expanded) のとき、ol を max-height で切る
   - 下端にフェードグラデーションで「まだある感」
   - 「すべての見出しを表示 / 閉じる」ボタンで is-expanded を toggle
*/
.snc-toc--collapsible:not(.is-expanded) .snc-toc__list {
  max-height: 10em;          /* H2/H3 混在で約4項目分 */
  overflow: hidden;
  position: relative;
  mask-image: linear-gradient(to bottom, #000 70%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, #000 70%, transparent 100%);
}
.snc-toc--collapsible.is-expanded .snc-toc__list {
  max-height: none;
  mask-image: none;
  -webkit-mask-image: none;
}
.snc-toc__expand {
  display: block;
  width: 100%;
  padding: 9px 12px;
  margin: 0;
  border: none;
  border-top: 1px solid var(--line);
  background: rgba(10, 186, 181, 0.04);
  color: var(--tiffany-deep, #066460);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
  font-family: inherit;
  transition: background-color 0.15s ease;
}
.snc-toc__expand:hover {
  background: rgba(10, 186, 181, 0.10);
}
.snc-toc__expand-text--hide { display: none; }
.snc-toc--collapsible.is-expanded .snc-toc__expand-text--show { display: none; }
.snc-toc--collapsible.is-expanded .snc-toc__expand-text--hide { display: inline; }
@media (max-width: 600px) {
  .snc-toc--collapsible:not(.is-expanded) .snc-toc__list {
    max-height: 11em;        /* スマホは詰まるので少し広め */
  }
  .snc-toc__expand {
    font-size: 12.5px;
    padding: 10px 12px;
  }
}

/* ===== 自前TOC（snc-toc）アコーディオン版（コンパクト） ===== */
.snc-toc {
  background: transparent;
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 0;
  margin: 0 0 36px;       /* 本文の冒頭に置くので上余白なし */
  position: relative;
  max-width: 100%;        /* 本文と幅を揃える */
  overflow: hidden;
}
.snc-toc::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--tiffany);
  z-index: 1;
}
.snc-toc__head {
  display: flex;
  align-items: center;
  padding: 12px 20px 12px 24px;
  cursor: pointer;
  list-style: none;
  position: relative;
  user-select: none;
  -webkit-user-select: none;
  transition: background-color 0.15s ease;
}
.snc-toc__head::-webkit-details-marker {
  display: none;
}
.snc-toc__head::marker {
  display: none;
  content: "";
}
.snc-toc__head:hover {
  background-color: rgba(10, 186, 181, 0.04);
}
.snc-toc__title {
  font-family: "Shippori Mincho", serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--navy);
  letter-spacing: 0.06em;
  flex: 1;
}
.snc-toc__title::before {
  content: "—";
  margin-right: 10px;
  color: var(--tiffany-deep);
}
.snc-toc__arrow {
  width: 9px;
  height: 9px;
  border-right: 1.5px solid var(--ink-soft);
  border-bottom: 1.5px solid var(--ink-soft);
  transform: rotate(45deg);
  transition: transform 0.25s ease;
  margin-top: -3px;
  flex: none;
}
.snc-toc[open] .snc-toc__arrow {
  transform: rotate(-135deg);
  margin-top: 3px;
}
.snc-toc__list {
  list-style: none;
  padding: 4px 20px 16px 24px;
  margin: 0;
  counter-reset: snc-toc-counter;
  border-top: 1px solid var(--line);
}
.snc-toc__item {
  position: relative;
  margin: 4px 0;
  line-height: 1.6;
}
.snc-toc__item--h2 {
  counter-increment: snc-toc-counter;
  padding-left: 30px;
  font-size: 13.5px;
  font-weight: 700;
  margin-top: 10px;
}
.snc-toc__item--h2:first-child {
  margin-top: 6px;
}
.snc-toc__item--h2::before {
  content: counter(snc-toc-counter, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 1px;
  font-family: ui-monospace, monospace;
  font-size: 10.5px;
  color: var(--tiffany-deep);
  letter-spacing: 0.08em;
  font-weight: 600;
}
.snc-toc__item--h3 {
  padding-left: 42px;
  font-size: 12px;
  color: var(--ink-soft);
  font-weight: 500;
  margin: 2px 0;
}
.snc-toc__item--h3::before {
  content: "·";
  position: absolute;
  left: 32px;
  color: var(--oat);
}
.snc-toc__list a {
  color: inherit;
  text-decoration: none;
  display: inline-block;
  border-bottom: 1px solid transparent;
  transition: border-color 0.15s ease;
}
.snc-toc__list a:hover {
  border-bottom-color: var(--tiffany);
}

/* スクロール時のヘッダー回避 */
.post_content h2,
.post_content h3 {
  scroll-margin-top: 80px;
}

/* ===== 中央寄せ：記事ページ全体（コンパクト版） ===== */
/* SWELL の構造を上書きして、記事を中央寄せ・最大幅720pxに */
.salaryman-nurse.single .l-content,
.salaryman-nurse.page .l-content {
  display: flex;
  justify-content: center;
  width: 100%;
}
.salaryman-nurse.single .l-mainContent,
.salaryman-nurse.page .l-mainContent {
  width: 100% !important;
  max-width: 760px !important;
  margin: 0 auto !important;
  padding: 16px !important;
  background: transparent !important;
}
.post {
  max-width: 680px;
  margin: 0 auto;
  padding: 32px 16px 80px;
}
.post_content {
  max-width: 100%;
  margin: 0 auto;
}
.post_content p {
  font-size: 15px;
  line-height: 1.9;
}

@media (max-width: 600px) {
  .salaryman-nurse.single .l-mainContent,
  .salaryman-nurse.page .l-mainContent {
    padding: 8px !important;
  }
  .post {
    padding: 20px 12px 56px;
  }
  .snc-toc {
    margin: 20px 0 32px;
  }
  .snc-toc__head {
    padding: 10px 16px 10px 22px;
  }
  .snc-toc__list {


/* === 記事タイトルの可読性向上（2026-05-13 追加） === */
.p-articleHeader__title,
.p-postTitle__title,
.c-postTitle__title,
.p-postHeader__title,
.entry-header h1,
.entry-title,
.p-postEyecatch__title,
article.post header h1 {
    color: #066460 !important;
    font-weight: 700 !important;
    text-shadow: none !important;
    opacity: 1 !important;
}


/* === 記事タイトル：濃緑ヘッダー背景に対応した白文字（2026-05-13 修正） === */
.l-topTitleArea h1,
.l-topTitleArea .c-pageTitle,
.l-topTitleArea .c-pageTitle__main,
.c-pageTitle,
.c-pageTitle__main,
.p-articleHeader__title,
.p-postTitle__title,
.c-postTitle__title,
.p-postHeader__title,
.entry-title,
.entry-header h1,
article.post header h1 {
    color: #ffffff !important;
    font-weight: 700 !important;
    text-shadow: 0 2px 6px rgba(0,0,0,0.4), 0 0 12px rgba(0,0,0,0.25) !important;
    opacity: 1 !important;
}

.l-topTitleArea .post-date,
.l-topTitleArea .c-postTimes,
.l-topTitleArea time {
    color: rgba(255,255,255,0.85) !important;
}


/* === 記事タイトル：白背景に対応した濃い黒文字（2026-05-13 最終修正・上の白文字指定を上書き） === */
.l-topTitleArea h1,
.l-topTitleArea .c-pageTitle,
.l-topTitleArea .c-pageTitle__main,
.c-pageTitle,
.c-pageTitle__main,
.p-articleHeader__title,
.p-postTitle__title,
.c-postTitle__title,
.p-postHeader__title,
.entry-title,
.entry-header h1,
article.post header h1,
.post_title,
h1.entry-title,
h1.post-title {
    color: #1a1a1a !important;
    font-weight: 700 !important;
    text-shadow: none !important;
    opacity: 1 !important;
}

.l-topTitleArea .post-date,
.l-topTitleArea .c-postTimes,
.l-topTitleArea time {
    color: #555 !important;
}


/* === 記事タイトル：実セレクタは .c-postTitle__ttl（2026-05-13 確定） === */
.c-postTitle__ttl,
h1.c-postTitle__ttl {
    color: #1a1a1a !important;
    font-weight: 700 !important;
    text-shadow: none !important;
    opacity: 1 !important;
}


/* === 記事タイトル強制上書き（specificity 最大化・2026-05-13 最終） === */
html body .c-postTitle__ttl,
html body h1.c-postTitle__ttl,
html body .l-topTitleArea .c-postTitle__ttl,
html body .l-topTitleArea h1,
html body article.post h1.c-postTitle__ttl {
    color: #111 !important;
    -webkit-text-fill-color: #111 !important;
    font-weight: 700 !important;
    opacity: 1 !important;
    filter: none !important;
    mix-blend-mode: normal !important;
    text-shadow: none !important;
    background: transparent !important;
}
