@charset "UTF-8";
/*
Theme Name: ミドルナース転職ラボ Child
Theme URI: https://kango40s.jp/
Description: SWELL 子テーマ（ミドルナース転職ラボ）。40代・50代看護師転職特化。ブランド=藤色 #7B5EA7。月1億層プレイブック(shared/04/09)+UIパターン辞書(shared/14)実装。
Author: ミドルナース転職ラボ 編集部
Template: swell
Version: 1.0.0
*/

/* =========================================================
   ブランドトークン（footprint分散: mnt- prefix / 藤色+白+珊瑚CTAで他サイトと色相分離）
   ========================================================= */
:root {
  --mnt_violet:       #7B5EA7; /* primary: ロゴ/ヘッダ/H/リンク */
  --mnt_violet_dark:  #5A4280; /* footer/hero濃色 */
  --mnt_violet_light: #9070C0; /* hover */
  --mnt_coral:        #E05C52; /* CTA専用（希少運用）*/
  --mnt_coral_dark:   #C94840;
  --mnt_amber:        #F59E0B; /* バッジ/1位/★ */
  --mnt_offwhite:     #FAFAF9; /* 背景 */
  --mnt_charcoal:     #1F2937; /* 本文 */
  --mnt_muted:        #5B6470; /* 補足テキスト */
  --mnt_pale_violet:  #F4F0FA; /* 引用/比較表ヘッダ地/編集部ボックス */
  --mnt_lavender:     #E0D6F0; /* 罫線/区切り */
  --mnt_pale_coral:   #FDECEA; /* PR表記背景 */
  --mnt_pale_amber:   #FEF3C7; /* おすすめ枠 */
  --mnt_border:       #E6E0F0;

  --mnt_shadow_sm: 0 2px 4px rgba(90,66,128,.06), 0 1px 2px rgba(90,66,128,.04);
  --mnt_shadow_md: 0 4px 14px rgba(90,66,128,.08), 0 2px 4px rgba(90,66,128,.05);
  --mnt_shadow_lg: 0 14px 30px rgba(90,66,128,.10), 0 4px 8px rgba(90,66,128,.06);
  --mnt_shadow_coral: 0 6px 16px rgba(224,92,82,.30);
  --mnt_shadow_coral_hover: 0 12px 24px rgba(224,92,82,.42);

  --mnt_radius_sm: 6px;
  --mnt_radius_md: 10px;
  --mnt_radius_lg: 14px;

  --color_main: #7B5EA7;
  --color_text: #1F2937;
}

body,
.l-header, .p-globalNav, .c-gnav, .l-footer,
.l-content, .l-container, .l-mainArea, .l-sidebar,
.c-pageTitle, .c-postTitle, .c-postThumb__cap,
.p-postList__title, .p-blogCard, .swell-block-button {
  --color_main: var(--mnt_violet);
}

/* =========================================================
   タイポグラフィ
   ========================================================= */
body {
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont,
    "Hiragino Sans", "Yu Gothic UI", "Meiryo", sans-serif;
  font-weight: 400;
  color: var(--mnt_charcoal);
  background-color: var(--mnt_offwhite);
  letter-spacing: .03em;
  line-height: 1.9;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, h4,
.c-pageTitle, .c-postTitle, .p-postList__title {
  font-family: "Noto Sans JP", -apple-system, "Hiragino Sans", sans-serif;
  font-weight: 800;
  letter-spacing: .01em;
  color: var(--mnt_violet_dark);
}
a { color: var(--mnt_violet); }
a:hover { color: var(--mnt_violet_light); }

/* =========================================================
   本文見出し（H2: 藤色左帯 / H3: アンダーライン）
   ========================================================= */
.post_content h2 {
  background: var(--mnt_pale_violet);
  border-left: 6px solid var(--mnt_violet);
  color: var(--mnt_violet_dark);
  padding: .8em 1em;
  margin: 2.6em 0 1.1em;
  font-size: 1.5em;
  line-height: 1.5;
  border-radius: 0 var(--mnt_radius_md) var(--mnt_radius_md) 0;
}
.post_content h3 {
  border-bottom: 3px solid var(--mnt_lavender);
  color: var(--mnt_violet_dark);
  padding: 0 0 .35em .1em;
  margin: 2em 0 .9em;
  font-size: 1.25em;
}
.post_content h3::before {
  content: "▎"; color: var(--mnt_violet); margin-right: .25em;
}
.post_content .mnt-hero__title,
.post_content .mnt-rank__title,
.post_content .mnt-tldr__title {
  background: none !important; border: none !important; padding: 0 !important; margin: 0 0 .4em !important; border-radius: 0 !important;
}
.post_content .mnt-hero__title::before,
.post_content .mnt-rank__title::before,
.post_content .mnt-tldr__title::before { content: none !important; }
.post_content a:not(.mnt-cta):not(.mnt-card){
  text-decoration: underline; text-underline-offset: 2px; text-decoration-color: var(--mnt_lavender);
}
.p-mainVisual, .p-postSlider, .p-pickupSlider { display: none !important; }

/* =========================================================
   ヘッダー / グローバルナビ
   ========================================================= */
.l-header { box-shadow: var(--mnt_shadow_sm); }
.c-gnav__item > a:hover, .p-globalNav a:hover { color: var(--mnt_violet); }
.c-headLogo__link, .l-header .siteTitle a {
  color: var(--mnt_violet_dark) !important; font-weight: 800; letter-spacing:.02em;
}

/* =========================================================
   FVヒーロー（結論先出し / Pattern 1-A）
   ========================================================= */
.mnt-hero {
  background: linear-gradient(135deg, var(--mnt_violet) 0%, var(--mnt_violet_dark) 100%);
  color: #fff;
  border-radius: var(--mnt_radius_lg);
  padding: clamp(24px, 5vw, 48px);
  margin: 0 0 28px;
  box-shadow: var(--mnt_shadow_md);
}
.mnt-hero__eyebrow {
  display:inline-block; font-size:.8rem; font-weight:700; letter-spacing:.08em;
  background: rgba(255,255,255,.16); color:#fff; padding:4px 12px; border-radius:999px; margin-bottom:14px;
}
.mnt-hero__title { color:#fff; font-size: clamp(1.5rem, 4.4vw, 2.3rem); line-height:1.4; margin:0 0 .5em; font-weight:800; }
.mnt-hero__lead { color: rgba(255,255,255,.92); font-size:1rem; margin:0 0 1.2em; }
.mnt-hero__points { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:1.4em; padding:0; list-style:none; }
.mnt-hero__points li {
  background: rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22);
  padding:7px 14px; border-radius:999px; font-size:.86rem; font-weight:600;
}
.mnt-hero__points li::before { content:"✓ "; color: var(--mnt_amber); font-weight:900; }

/* =========================================================
   CTAボタン（Pattern 4-D/4-E）珊瑚色希少運用
   ========================================================= */
.mnt-cta, a.mnt-cta {
  display:flex; align-items:center; justify-content:center; gap:.5em;
  width:100%; max-width:520px; margin:14px auto; box-sizing:border-box;
  min-height:56px; padding:16px 24px;
  background: var(--mnt_coral); color:#fff !important;
  font-size:1.12rem; font-weight:800; letter-spacing:.02em; text-decoration:none !important;
  border:none; border-radius:var(--mnt_radius_md); cursor:pointer;
  box-shadow: var(--mnt_shadow_coral);
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.mnt-cta:hover { background: var(--mnt_coral_dark); transform: translateY(-2px) scale(1.01); box-shadow: var(--mnt_shadow_coral_hover); color:#fff !important; }
.mnt-cta:active { transform: scale(.99); }
.mnt-cta::after { content:"›"; font-size:1.3em; line-height:1; }
a.mnt-cta--ghost, .mnt-cta--ghost {
  background:#fff !important; color:var(--mnt_violet) !important; border:2px solid var(--mnt_violet); box-shadow:none !important;
}
a.mnt-cta--ghost:hover, .mnt-cta--ghost:hover { background:var(--mnt_pale_violet) !important; color:var(--mnt_violet_dark) !important; }
.mnt-cta__micro { display:block; text-align:center; font-size:.8rem; color:var(--mnt_muted); margin:-4px 0 18px; }
.mnt-cta__micro::before { content:"🔒 "; }
.mnt-hero .mnt-cta__micro { color: rgba(255,255,255,.85); }

/* スマホ スティッキーCTA（Pattern 4-B） */
.mnt-sticky-cta {
  position: fixed; left:0; right:0; bottom:0; z-index:200;
  display:flex; align-items:center; gap:10px;
  padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  background: rgba(255,255,255,.98); box-shadow: 0 -2px 12px rgba(90,66,128,.14);
  transform: translateY(110%); transition: transform .25s ease;
}
.mnt-sticky-cta.is-visible { transform: translateY(0); }
.mnt-sticky-cta .mnt-cta { margin:0; min-height:48px; font-size:1rem; }
.mnt-sticky-cta__close {
  flex:0 0 auto; width:32px; height:32px; border:none; background:transparent;
  color:var(--mnt_muted); font-size:1.2rem; cursor:pointer;
}
@media (min-width:768px){ .mnt-sticky-cta{ display:none; } }

/* =========================================================
   比較表（Pattern 2-A/2-E）
   ========================================================= */
.mnt-compare-wrap { position:relative; overflow-x:auto; -webkit-overflow-scrolling:touch; margin:1.5em 0; border-radius:var(--mnt_radius_md); box-shadow:var(--mnt_shadow_sm); }
.mnt-compare { width:100%; min-width:680px; border-collapse:collapse; background:#fff; font-size:.92rem; }
.mnt-compare thead th {
  background: var(--mnt_violet); color:#fff; font-weight:700; padding:12px 10px; text-align:center; white-space:nowrap;
  position:sticky; top:0;
}
.mnt-compare th.mnt-col-name, .mnt-compare td.mnt-col-name {
  position:sticky; left:0; background:#fff; text-align:left; min-width:140px; font-weight:700; box-shadow:2px 0 4px rgba(0,0,0,.04);
}
.mnt-compare td { padding:12px 10px; text-align:center; border-bottom:1px solid var(--mnt_lavender); vertical-align:middle; }
.mnt-compare tbody tr:nth-child(even) td { background:#FDFCFF; }
.mnt-compare tbody tr.is-pick td { background: var(--mnt_pale_amber); }
.mnt-compare .is-best { color: var(--mnt_violet_dark); font-weight:800; }
.mnt-compare .is-best::after { content:" ◎"; color: var(--mnt_amber); }
.mnt-compare .mnt-cta { min-height:42px; padding:8px 14px; font-size:.9rem; max-width:160px; margin:0 auto; }
.mnt-compare-wrap::after {
  content:""; position:absolute; top:0; right:0; bottom:0; width:28px; pointer-events:none;
  background: linear-gradient(to left, rgba(255,255,255,.95), transparent);
}
@media (max-width:767px){
  .mnt-compare { min-width:0; display:block; }
  .mnt-compare thead { display:none; }
  .mnt-compare tbody, .mnt-compare tr, .mnt-compare td { display:block; width:100%; box-sizing:border-box; }
  .mnt-compare tr { margin:0 0 14px; border:1px solid var(--mnt_border); border-radius:var(--mnt_radius_md); overflow:hidden; box-shadow:var(--mnt_shadow_sm); }
  .mnt-compare tr.is-pick { border-color: var(--mnt_amber); border-width:2px; }
  .mnt-compare td { display:flex; justify-content:space-between; align-items:center; gap:12px; text-align:right; border-bottom:1px solid var(--mnt_lavender); }
  .mnt-compare td::before { content: attr(data-label); font-weight:700; color:var(--mnt_muted); text-align:left; }
  .mnt-compare td.mnt-col-name { position:static; background:var(--mnt_pale_violet); color:var(--mnt_violet_dark); font-size:1.05rem; justify-content:center; }
  .mnt-compare td.mnt-col-name::before { content:none; }
  .mnt-compare .mnt-cta { max-width:none; }
  .mnt-compare-wrap::after { content:none; }
}

/* =========================================================
   ランキング（Pattern 3-A 1位ヒーロー）
   ========================================================= */
.mnt-rank { background:#fff; border:1px solid var(--mnt_border); border-radius:var(--mnt_radius_lg); padding:22px; margin:1.4em 0; box-shadow:var(--mnt_shadow_sm); position:relative; }
.mnt-rank--1 { border:2px solid var(--mnt_amber); box-shadow:var(--mnt_shadow_md); }
.mnt-rank__rankbadge {
  position:absolute; top:-14px; left:18px; background:var(--mnt_amber); color:#3a2a00;
  font-weight:900; font-size:.85rem; padding:5px 14px; border-radius:999px; box-shadow:var(--mnt_shadow_sm);
}
.mnt-rank--1 .mnt-rank__rankbadge::before { content:"🏆 "; }
.mnt-rank__label { display:inline-block; background:var(--mnt_pale_violet); color:var(--mnt_violet_dark); font-weight:700; font-size:.8rem; padding:3px 10px; border-radius:6px; margin-bottom:8px; }
.mnt-rank__title { font-size:1.35rem; margin:.2em 0 .4em; color:var(--mnt_violet_dark); }
.mnt-rank__score { color:var(--mnt_amber); font-weight:800; font-size:1.05rem; }
.mnt-rank__score small { color:var(--mnt_muted); font-weight:400; }

/* =========================================================
   バッジ
   ========================================================= */
.mnt-badge { display:inline-block; font-size:.78rem; font-weight:700; padding:3px 10px; border-radius:6px; line-height:1.6; white-space:nowrap; }
.mnt-badge--pick { background:var(--mnt_pale_amber); color:#7a4d00; border:1px solid var(--mnt_amber); }
.mnt-badge--verified { background:var(--mnt_pale_violet); color:var(--mnt_violet_dark); border:1px solid var(--mnt_violet); }
.mnt-badge--verified::before { content:"✓ 編集部確認済 "; }

/* =========================================================
   PR表記（ステマ規制・冒頭明示）
   ========================================================= */
.mnt-pr {
  background: var(--mnt_pale_coral); border-left:4px solid var(--mnt_coral);
  padding:9px 14px; margin:14px 0; font-size:.85rem; color:#7a3a30; border-radius:0 6px 6px 0;
}

/* =========================================================
   編集部ボックス（E-E-A-T）
   ========================================================= */
.mnt-editorial {
  background: var(--mnt_pale_violet); border:1px solid var(--mnt_violet);
  border-radius: var(--mnt_radius_md); padding:18px 20px; margin:1.6em 0; position:relative;
}
.mnt-editorial__head { display:flex; align-items:center; gap:10px; font-weight:800; color:var(--mnt_violet_dark); margin-bottom:.5em; }
.mnt-editorial__head::before { content:"✓"; display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; background:var(--mnt_violet); color:#fff; border-radius:8px; font-weight:900; }
.mnt-editorial p:last-child { margin-bottom:0; }

/* =========================================================
   TLDR（1分でわかる総評）
   ========================================================= */
.mnt-tldr { background:#fff; border:2px solid var(--mnt_violet); border-radius:var(--mnt_radius_md); padding:18px 20px; margin:1.6em 0; box-shadow:var(--mnt_shadow_sm); }
.mnt-tldr__title { display:flex; align-items:center; gap:8px; color:var(--mnt_violet_dark); font-weight:800; margin:0 0 .6em; }
.mnt-tldr__title::before { content:"★"; color:var(--mnt_amber); }
.mnt-tldr ul { margin:.4em 0; padding-left:1.2em; }

/* メリット/デメリット2カラム */
.mnt-proscons { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:1.6em 0; }
.mnt-proscons > div { border-radius:var(--mnt_radius_md); padding:16px; }
.mnt-proscons .mnt-pros { background:var(--mnt_pale_violet); border:1px solid var(--mnt_violet); }
.mnt-proscons .mnt-cons { background:#FBF1EF; border:1px solid var(--mnt_coral); }
.mnt-proscons .mnt-pc-h { margin:0 0 .5em; font-weight:800; font-size:1.05em; }
.mnt-proscons .mnt-pros .mnt-pc-h { color:var(--mnt_violet_dark); }
.mnt-proscons .mnt-pros .mnt-pc-h::before { content:"✅ "; }
.mnt-proscons .mnt-cons .mnt-pc-h { color:var(--mnt_coral_dark); }
.mnt-proscons .mnt-cons .mnt-pc-h::before { content:"⚠️ "; }
.mnt-proscons ul { margin:0; padding-left:1.2em; }
@media (max-width:600px){ .mnt-proscons{ grid-template-columns:1fr; } }

/* 著者ボックス */
.mnt-author { display:flex; gap:14px; align-items:flex-start; background:#fff; border:1px solid var(--mnt_border); border-radius:var(--mnt_radius_md); padding:16px; margin:1.6em 0; box-shadow:var(--mnt_shadow_sm); }
.mnt-author__avatar { flex:0 0 auto; width:64px; height:64px; border-radius:10px; background:var(--mnt_violet); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:1.4rem; }
.mnt-author__name { font-weight:800; color:var(--mnt_violet_dark); margin:0; }
.mnt-author__meta { font-size:.85rem; color:var(--mnt_muted); margin:.2em 0 0; }

/* =========================================================
   FAQ（details・JS不要）
   ========================================================= */
.mnt-faq details { border-bottom:1px solid var(--mnt_lavender); padding:6px 0; }
.mnt-faq summary { cursor:pointer; font-weight:700; color:var(--mnt_violet_dark); padding:10px 0; list-style:none; position:relative; padding-right:1.6em; }
.mnt-faq summary::-webkit-details-marker { display:none; }
.mnt-faq summary::after { content:"＋"; position:absolute; right:0; color:var(--mnt_violet); font-weight:900; }
.mnt-faq details[open] summary::after { content:"−"; }
.mnt-faq details[open] summary { color:var(--mnt_violet); }

/* =========================================================
   体験談ボックス（看護師転職サイト固有）
   ========================================================= */
.mnt-story {
  background: #fff; border-left: 4px solid var(--mnt_violet);
  border-radius: 0 var(--mnt_radius_md) var(--mnt_radius_md) 0;
  padding: 16px 20px; margin: 1.6em 0; box-shadow: var(--mnt_shadow_sm);
}
.mnt-story__head {
  display: flex; align-items: center; gap: 10px;
  font-weight: 800; color: var(--mnt_violet_dark); margin-bottom: .6em;
}
.mnt-story__head::before {
  content: "体験談"; background: var(--mnt_violet); color: #fff;
  font-size: .75rem; font-weight: 700; padding: 3px 8px; border-radius: 4px;
}
.mnt-story__profile { font-size: .85rem; color: var(--mnt_muted); margin: 0 0 .6em; }
.mnt-story p:last-child { margin-bottom: 0; }

/* =========================================================
   フッター
   ========================================================= */
.l-footer { background: var(--mnt_violet_dark); color: rgba(255,255,255,.86); }
.l-footer a { color: rgba(255,255,255,.9); }
.l-footer a:hover { color:#fff; }
.l-footer .c-widgetTitle, .l-footer .p-footerWidgets__title { color:#fff; }
.c-copyright, .l-footer .copyright { color: rgba(255,255,255,.62); font-size:.82rem; }

/* =========================================================
   アクセシビリティ（WCAG 2.2 AA）
   ========================================================= */
:focus-visible { outline:3px solid var(--mnt_violet); outline-offset:2px; border-radius:4px; }
.mnt-cta:focus-visible { outline-color:#fff; outline-offset:-4px; }
@media (prefers-reduced-motion: reduce){
  .mnt-cta, .mnt-sticky-cta, * { transition:none !important; animation:none !important; }
}

/* =========================================================
   微調整
   ========================================================= */
.l-content { line-height:1.95; }
img { max-width:100%; height:auto; }
.post_content table:not(.mnt-compare) { font-size:.92rem; }

/* フロント1カラム化 */
@media (min-width: 960px){
  body:has(.mnt-hero) .l-sidebar,
  .home .l-sidebar { display:none !important; }
  body:has(.mnt-hero) .l-mainContent,
  .home .l-mainContent {
    width:100% !important; max-width:100% !important; flex:0 0 100% !important;
  }
}

/* eyecatch高さ上限 */
figure.p-articleThumb { text-align:center; }
figure.p-articleThumb img, .p-articleThumb__img { max-height: clamp(300px,56vh,500px) !important; width:auto !important; height:auto !important; max-width:100%; margin-inline:auto; display:block; object-fit:contain; }
