/* リベラルアーツガイド デザイン上書き（JINテーマのCSSの後ろに読み込む）
   本文・URL・広告の位置と数は変えない。見た目だけを整える。
   色を変えるときは、下の :root の値を直す。 */

:root {
  --navy: #1b3a5c;          /* 主色（ヘッダー・見出し・フッター） */
  --navy-dark: #12283f;
  --accent: #2b6cb0;        /* リンク・アクセント */
  --accent-soft: #eef4fb;   /* 淡い背景 */
  --line: #dde5ee;          /* 罫線 */
  --text: #1f2933;
  --muted: #6b7a8c;
  --bg: #f4f6f9;            /* ページ背景 */
  --radius: 10px;
  --shadow: 0 1px 2px rgba(20, 40, 70, .06), 0 4px 14px rgba(20, 40, 70, .06);
  --shadow-hover: 0 2px 4px rgba(20, 40, 70, .08), 0 10px 24px rgba(20, 40, 70, .12);
}

/* ---------- 基本 ---------- */
html { -webkit-text-size-adjust: 100%; }
body {
  background: var(--bg) !important;
  color: var(--text);
  font-family: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", Meiryo, sans-serif !important;
  -webkit-font-smoothing: antialiased;
}
#wrapper, #scroll-content { background: transparent !important; }
a { transition: color .15s ease, opacity .15s ease; }

/* ---------- ヘッダー ---------- */
#header-box {
  background: linear-gradient(180deg, var(--navy) 0%, var(--navy-dark) 100%) !important;
  box-shadow: 0 2px 10px rgba(10, 25, 45, .25);
}
#header-box .tn-logo-size a, #header-box .sp-logo-size a, #header-box a { color: #fff !important; }
#header-box .tn-logo-size, #header-box .sp-logo-size { letter-spacing: .12em; font-weight: 500; }

/* ---------- グローバルナビ ---------- */
#nav-container {
  background: #fff !important;
  border-bottom: 1px solid var(--line);
  box-shadow: 0 1px 0 rgba(20, 40, 70, .04);
}
#nav-container a, #nav-container .menu-item a {
  color: var(--navy) !important;
  font-weight: 500;
  letter-spacing: .06em;
  font-size: 13px !important;
}
#nav-container a:hover { color: var(--accent) !important; }
#nav-container .menu-item a i, #nav-container .menu-item a .jic { color: var(--accent); }
#nav-container .sub-menu { background: #fff !important; box-shadow: var(--shadow-hover); border-radius: 8px; overflow: hidden; }
#nav-container .sub-menu a { color: var(--text) !important; }

/* ---------- 記事（本文カード） ---------- */
main.main-contents .cps-post-box,
.main-contents .cps-post-box {
  background: #fff !important;
  border: 0 !important;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 8px 10px 20px;
}
.cps-post-header { padding-bottom: 6px; }
.cps-post-title, h1.cps-post-title {
  font-weight: 700 !important;
  font-size: 28px !important;
  line-height: 1.55 !important;
  letter-spacing: .02em;
  color: var(--navy) !important;
}
.cps-post-cat { background: none !important; }
.cps-post-cat a, .post-list-cat {
  background: var(--navy) !important;
  color: #fff !important;
  border-radius: 999px !important;
  font-weight: 500;
  letter-spacing: .05em;
}
body .cps-post-cat a { display: inline-block !important; padding: 4px 14px !important; font-size: 12.5px !important; line-height: 1.5 !important; height: auto !important; }
.cps-post-meta .post-date, .post-list-date, .cps-post-meta { color: var(--muted) !important; }
.cps-post-thumb img, .cps-post-box .eyecatch img { border-radius: 8px; }

/* 本文 */
.cps-post-main {
  font-size: 16.5px;
  line-height: 1.95 !important;
  color: var(--text);
  letter-spacing: .02em;
}
.cps-post-main p { line-height: 1.95 !important; margin-bottom: .5em; }
.cps-post-main ul li, .cps-post-main ol li { line-height: 1.9; }
.cps-post-main a { color: var(--accent) !important; text-decoration: underline; text-decoration-color: rgba(43, 108, 176, .35); text-underline-offset: 3px; }
.cps-post-main a:hover { text-decoration-color: currentColor; }
.cps-post-main img { border-radius: 6px; }
.cps-post-main strong { color: #111d2b; }
.cps-post-main .marker, .cps-post-main .mark { border-radius: 2px; }

/* 見出し：帯をやめて、左の線＋淡い背景 */
body .cps-post-main h2 {
  background: var(--accent-soft) !important;
  color: var(--navy) !important;
  border-left: 6px solid var(--navy) !important;
  border-radius: 0 8px 8px 0 !important;
  padding: 14px 18px !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  line-height: 1.55 !important;
  letter-spacing: .03em;
  margin-top: 2.6em;
}
body .cps-post-main h2:before, body .cps-post-main h2:after { display: none !important; }
body .cps-post-main h3 {
  color: var(--navy) !important;
  font-size: 19px !important;
  font-weight: 700 !important;
  line-height: 1.6 !important;
  padding: 6px 2px 8px !important;
  border: 0 !important;
  border-bottom: 2px solid var(--line) !important;
  background: none !important;
  margin-top: 2.2em;
}
body .cps-post-main h3:before, body .cps-post-main h3:after { display: none !important; }
body .cps-post-main h4 {
  color: var(--navy) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  border: 0 !important;
  padding: 2px 0 2px 12px !important;
  border-left: 4px solid var(--accent) !important;
}
body .cps-post-main h4:before, body .cps-post-main h4:after { display: none !important; }

/* 目次 */
#toc_container {
  background: var(--accent-soft) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--radius) !important;
  padding: 18px 22px !important;
}
#toc_container .toc_title { color: var(--navy); font-weight: 700; }

/* 囲み・引用 */
.cps-post-main blockquote {
  background: #f8fafc; border-left: 4px solid var(--line); border-radius: 0 8px 8px 0; color: #34414f;
}
.cps-post-main table { border-radius: 8px; overflow: hidden; }
.cps-post-main table th { background: var(--accent-soft) !important; color: var(--navy); }

/* 脚注 */
.mfn-content, .modern-footnotes-footnote__note { border-radius: 8px; }

/* 商品カード（Amazon・楽天・Yahoo） */
.yyi-rinker-box {
  border: 1px solid var(--line) !important;
  border-radius: var(--radius) !important;
  background: #fff;
  box-shadow: 0 1px 2px rgba(20, 40, 70, .05);
}
.yyi-rinker-contents { border-radius: var(--radius); }
.yyi-rinker-title a { color: var(--navy) !important; font-weight: 700; text-decoration: none !important; }
.yyi-rinker-link { border-radius: 6px !important; font-weight: 600; letter-spacing: .03em; transition: transform .12s ease, opacity .12s ease; }
.yyi-rinker-link:hover { transform: translateY(-1px); opacity: .92; }

/* シェアボタン */
.sns-design-type01 li a, .share-top li a { border-radius: 6px; }

/* ---------- 記事一覧（カード） ---------- */
.post-list-item, article.post-list-item {
  background: #fff;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow: hidden;
  transition: box-shadow .2s ease, transform .2s ease;
}
.post-list-item:hover { box-shadow: var(--shadow-hover); transform: translateY(-2px); }
.post-list-thumb img { border-radius: 0; }
.post-list-title, .post-list-item .post-list-title { color: var(--navy) !important; font-weight: 700 !important; line-height: 1.6 !important; }
.post-list-meta .post-list-date { color: var(--muted); }
.related-entry-headline-text, .related-entry-section .related-entry-headline-text { color: var(--navy) !important; font-weight: 700; }
.related-entry-section .fa-headline .jic, .related-entry-headline .jic { color: var(--accent); }

/* トップのタブ（最新記事・人文科学…） */
.tab-list li, .toppost-tab li, .tab-menu li { transition: background .15s ease; }

/* ---------- サイドバー ---------- */
.widget { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; border: 0 !important; margin-bottom: 22px; }
.widget.widget_text, .widget.widget_custom_html:not(.widget_text) { background: transparent; box-shadow: none; }
.widgettitle {
  background: var(--navy) !important;
  color: #fff !important;
  text-align: left !important;
  padding: 12px 18px !important;
  font-weight: 600 !important;
  letter-spacing: .1em;
  font-size: 14.5px !important;
  border-radius: 0 !important;
}
.widget_categories li, .widget_recent_entries li { border-color: var(--line) !important; }
.new-entry-item-title { color: var(--text) !important; font-weight: 500; line-height: 1.6 !important; }
.new-entry-item a:hover .new-entry-item-title { color: var(--accent) !important; }
.new-entry .eyecatch img { border-radius: 6px; }
.tagcloud a { background: var(--accent-soft) !important; border: 0 !important; border-radius: 999px !important; color: var(--navy) !important; padding: 3px 12px !important; }
.tagcloud a:hover { background: var(--navy) !important; color: #fff !important; }
.widget_text img, .widget .textwidget img { border-radius: 8px; box-shadow: var(--shadow); }
#searchform input.search-text, .search-box input[type="search"] { border-radius: 999px !important; border: 1px solid var(--line) !important; padding-left: 14px; }

/* ---------- パンくず・フッター ---------- */
#breadcrumb { background: transparent !important; color: var(--muted); }
#breadcrumb a { color: var(--accent) !important; }
#footer-widget-area { background: var(--navy-dark) !important; color: #cdd8e5 !important; }
#footer-widget-area a, #footer-widget-area .widgettitle { color: #e8eef6 !important; }
#footer-widget-area .widgettitle { background: transparent !important; border-bottom: 1px solid rgba(255, 255, 255, .18); padding-left: 0 !important; }
#footer-widget-area .widget { background: transparent; box-shadow: none; }
#footer-box { background: #0d1f33 !important; color: #9fb0c4 !important; }
#footer-box a { color: #c8d4e2 !important; }
.page-top-footer a { background: var(--navy) !important; border-radius: 50% !important; }
#page-top a, #page-top .jic { border-radius: 50%; }

/* ---------- スマホ ---------- */
@media (max-width: 767px) {
  body #header-box .tn-logo-size, body #header-box .sp-logo-size, body #header-box .logo-size { font-size: 21px !important; letter-spacing: .06em; line-height: 1.4; }
  .cps-post-title, h1.cps-post-title { font-size: 22px !important; }
  .cps-post-main { font-size: 16px; }
  body .cps-post-main h2 { font-size: 19px !important; padding: 12px 14px !important; margin-top: 2.2em; }
  body .cps-post-main h3 { font-size: 17px !important; }
  main.main-contents .cps-post-box, .main-contents .cps-post-box { border-radius: 0; box-shadow: none; padding: 4px 4px 16px; }
  .post-list-item { border-radius: 8px; }
  #nav-container a { font-size: 12px !important; }
}

/* ---------- テーマの色指定（各ページに埋め込まれた #2294d6 と !important）に勝つための上書き ---------- */
body #header-box { background: linear-gradient(180deg, var(--navy) 0%, var(--navy-dark) 100%) !important; }body #nav-container,
body #drawernav,
body #drawernav2,
body #drawernav3,
body #drawernav4,
body #drawernav5 { background: #fff !important; }body #drawernav ul.menu-box > li > a,
body #drawernav2 ul.menu-box > li > a,
body #drawernav3 ul.menu-box > li > a,
body #drawernav4 ul.menu-box > li > a,
body #drawernav5 ul.menu-box > li > a,
body #drawernav ul.menu-box li a,
body #drawernav2 ul.menu-box li a,
body #drawernav3 ul.menu-box li a,
body #drawernav4 ul.menu-box li a,
body #drawernav5 ul.menu-box li a { color: var(--navy) !important; font-size: 13px !important; font-weight: 500; letter-spacing: .06em; }body #drawernav ul.menu-box > li > a:hover,
body #drawernav2 ul.menu-box > li > a:hover,
body #drawernav3 ul.menu-box > li > a:hover,
body #drawernav4 ul.menu-box > li > a:hover,
body #drawernav5 ul.menu-box > li > a:hover { color: var(--accent) !important; }body #drawernav ul.menu-box .sub-menu li a,
body #drawernav2 ul.menu-box .sub-menu li a,
body #drawernav3 ul.menu-box .sub-menu li a,
body #drawernav4 ul.menu-box .sub-menu li a,
body #drawernav5 ul.menu-box .sub-menu li a { color: var(--text) !important; }
body #nav-container .menu-box .menu-item svg { fill: var(--navy); }body #drawernav ul.menu-box > li > a:after,
body #drawernav2 ul.menu-box > li > a:after,
body #drawernav3 ul.menu-box > li > a:after,
body #drawernav4 ul.menu-box > li > a:after,
body #drawernav5 ul.menu-box > li > a:after { background-color: var(--accent) !important; }
body #drawernav2 .menu-box > .menu-item:hover, body #drawernav5 .menu-box > .menu-item:hover { border-top-color: var(--accent) !important; }

body #sidebar .widgettitle, body #sidebar.sidebar_style6 .widgettitle, body #home-bottom-widget .widgettitle {
  background-color: var(--navy) !important; color: #fff !important; text-align: left !important;
}
body #sidebar .widget_categories ul > li > a:before, body #sidebar .widget_pages ul > li > a:before, body #sidebar .widget_recent_entries ul > li > a:before { color: var(--accent) !important; }

body #tab-1:checked ~ .tabBtn-mag li [for="tab-1"],
body #tab-2:checked ~ .tabBtn-mag li [for="tab-2"],
body #tab-3:checked ~ .tabBtn-mag li [for="tab-3"],
body #tab-4:checked ~ .tabBtn-mag li [for="tab-4"] { background-color: var(--navy) !important; color: #fff !important; }
body .tabBtn-mag label { border-bottom-color: var(--navy) !important; }
body #tab-1:checked ~ .tabBtn-mag li [for="tab-1"]:after,
body #tab-2:checked ~ .tabBtn-mag li [for="tab-2"]:after,
body #tab-3:checked ~ .tabBtn-mag li [for="tab-3"]:after,
body #tab-4:checked ~ .tabBtn-mag li [for="tab-4"]:after { border-top-color: var(--navy) !important; }

body #toc_container .toc_title, body #toc_container .toc_list > li { color: var(--navy) !important; }
body #toc_container:before { border-color: var(--navy) !important; }
body .related-entry-headline-text span:before, body #comment-title span:before { background-color: var(--navy) !important; border-color: var(--navy) !important; }
body .pagination li.current a { background-color: var(--navy) !important; border-color: var(--navy) !important; }
body .pagination li:not([class*="current"]) a:hover, body .widget_tag_cloud a:hover { background-color: var(--navy) !important; }
body .tag-box a, body .tagicon { color: var(--navy) !important; border-color: var(--navy) !important; }
body .simple-box3 { border-color: var(--accent) !important; }
body .color-button01 a, body .color-button01 a:hover, body .color-button01:before { background-color: var(--accent) !important; }

/* トップの「はじめての方へ」ボタンなど、黄色の強調は残す（行動を促す要素のため） */
