/*
Theme Name: Keizai NOW
Theme URI: https://keizai-now.com
Description: 経済NOWの専用子テーマ。神田・日経風の信頼系経済メディアデザイン。
Author: dosaculture
Template: blocksy
Version: 1.0.0
Text Domain: keizai-now
*/

/* ===== Webfonts (Noto Serif/Sans JP) ===== */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&family=Noto+Serif+JP:wght@600;700;900&display=swap');

:root{
  --kn-navy:#0B2A4A;
  --kn-navy-2:#163C66;
  --kn-navy-dark:#0a1f37;
  --kn-ink:#1a1a1a;
  --kn-sub:#5a6473;
  --kn-line:#e3e6ec;
  --kn-bg:#f5f6f8;
  --kn-red:#C8102E;
  --kn-gold:#B8893A;
}

html, body{
  background:var(--kn-bg) !important;
  color:var(--kn-ink);
  font-family:"Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif !important;
  -webkit-font-smoothing:antialiased;
}

/* Force light background on every Blocksy wrapper */
body, body.home, body.blog, body.single,
#main, main#main, main.site-main, .site-main,
.ct-main-container, .ct-container, .site-content,
[data-prefix="blog"], [data-prefix="single_blog_post"],
[data-content-area="primary"],
.entries{
  background:var(--kn-bg) !important;
  background-color:var(--kn-bg) !important;
}

/* Card container override (Blocksy default cards) */
@media (min-width: 768px) {
  .entries[data-archive="default"][data-layout="grid"]{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
    background:transparent !important;
  }
}
@media (max-width: 767px) {
  .entries[data-archive="default"][data-layout="grid"]{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:16px !important;
    background:transparent !important;
  }
}
.entry-card.card-content{
  background:#fff !important;
  border:1px solid var(--kn-line) !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:24px 22px !important;
  position:relative;
}
.entry-card.card-content::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--kn-navy);
}
.entry-card.category-forex::before{ background:#1d4d8a; }
.entry-card.category-stocks::before{ background:#2b3a55; }
.entry-card.category-world-economy::before{ background:#0a7d3b; }
.entry-card.category-japan-economy::before{ background:var(--kn-red); }
.entry-card.category-breaking::before{ background:var(--kn-red); }
.entry-card .entry-meta{ list-style:none;padding:0;margin:0 0 10px;font-size:11px;color:var(--kn-sub); }
.entry-card .entry-meta li{ list-style:none;padding:0;border:0; }
.entry-card .entry-meta a{ color:var(--kn-navy) !important;font-weight:700;font-size:11px;letter-spacing:.04em; }
.entry-card .entry-title{ margin:0 0 10px !important;font-family:"Noto Serif JP",serif !important;font-size:17px !important;line-height:1.55;font-weight:700; }
.entry-card .entry-title a{ color:var(--kn-ink) !important; }
.entry-card .entry-excerpt{ font-size:13px;line-height:1.7;color:var(--kn-sub); }
.entry-card .entry-excerpt p{ margin:0; }

/* Pagination */
.ct-pagination{ margin-top:30px; }

/* Hero (the dark band on single posts) */
.hero-section, [data-prefix="single_blog_post"] .hero-section{
  background:#fff !important;
  color:var(--kn-ink) !important;
  padding:30px 0 !important;
  border-bottom:1px solid var(--kn-line) !important;
}
.hero-section *{ color:var(--kn-ink) !important; }
.hero-section .entry-meta, .hero-section .ct-meta-categories, .hero-section a{
  color:var(--kn-sub) !important;
}
.hero-section .entry-title{
  color:var(--kn-ink) !important;
  text-align:left !important;
  max-width:1200px;margin:0 auto;padding:0 20px;
  font-family:"Noto Serif JP",serif !important;
  font-weight:900 !important;
  font-size:30px !important;
  border-left:6px solid var(--kn-red);
  padding-left:20px !important;
}
.hero-section .ct-container, .hero-section .container{ max-width:1200px; }

/* Hide empty hero band on single posts (no featured image set) */
.entry-header .ct-page-title,
.hero-section[data-type="type-1"]:empty,
.hero-section.ct-hero-section:empty{
  display:none !important;
}
.hero-section[data-type="type-1"]{
  background:#fff !important;
  color:var(--kn-ink) !important;
  padding:30px 0 10px !important;
  border-bottom:1px solid var(--kn-line);
}
.hero-section .entry-title{
  color:var(--kn-ink) !important;
}
.hero-section .page-description, .hero-section .entry-meta{
  color:var(--kn-sub) !important;
}

/* Add red category bar accent at the top of single posts */
.single .entry-title{
  border-left:6px solid var(--kn-red);
  padding-left:20px;
  text-align:left !important;
}

h1,h2,h3,h4,h5,
.entry-title, .post-title,
.ct-widget-title, .widget-title,
.kn-serif{
  font-family:"Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif !important;
  letter-spacing:.02em;
}

a{ text-decoration:none; }

/* ===== Top utility bar (above header) ===== */
.kn-util{
  background:var(--kn-navy);
  color:#cdd7e3;
  font-size:12px;
}
.kn-util-inner{
  max-width:1200px;margin:0 auto;padding:0 20px;
  display:flex;justify-content:space-between;align-items:center;height:34px;
}
.kn-util a{ color:#cdd7e3; margin-left:18px; }
.kn-util a:hover{ color:#fff; }
.kn-util .kn-util-date{ letter-spacing:.05em; }

/* ===== Header ===== */
header[data-row="top"],
header[data-row="middle"]{
  background:#fff !important;
}
header .site-title, header .ct-site-title a, .ct-header-text-logo{
  font-family:"Noto Serif JP", serif !important;
  font-weight:900 !important;
  font-size:34px !important;
  color:var(--kn-navy) !important;
  letter-spacing:.04em;
  display:inline-flex !important;
  align-items:baseline;
  gap:10px;
}
.ct-header-text-logo::before, .site-title::before{
  content:"";
  display:inline-block;
  width:10px;height:28px;
  background:var(--kn-red);
  transform:skewX(-12deg);
  margin-right:6px;
  position:relative; top:4px;
}
.ct-site-description, header .site-description{
  font-family:"Noto Sans JP", sans-serif !important;
  font-weight:500 !important;
  font-size:12px !important;
  color:var(--kn-sub) !important;
  letter-spacing:.08em !important;
  margin-top:4px !important;
}

/* ===== Category nav bar ===== */
header [data-row="bottom"], header .ct-nav-bottom, .kn-catbar{
  background:#fff !important;
  border-bottom:2px solid var(--kn-navy) !important;
  border-top:1px solid var(--kn-line);
}
header [data-row="bottom"] .ct-menu-link, .kn-catbar a{
  font-family:"Noto Sans JP" !important;
  font-weight:700 !important;
  font-size:14px !important;
  color:var(--kn-ink) !important;
  border-right:1px solid var(--kn-line);
  padding:0 22px !important;
  height:48px;
  display:flex;align-items:center;
  transition:.15s;
}
header [data-row="bottom"] .ct-menu-link:hover{ background:var(--kn-bg) !important; }
header [data-row="bottom"] li:first-child .ct-menu-link{
  background:var(--kn-navy) !important;
  color:#fff !important;
  border-left:1px solid var(--kn-line);
}
/* "入門ガイド" highlight */
header [data-row="bottom"] .menu-item.kn-guide-link .ct-menu-link{ color:var(--kn-red) !important; }

/* ===== Breaking ticker ===== */
.kn-ticker{
  background:#fff;border-bottom:1px solid var(--kn-line);
}
.kn-ticker-inner{
  max-width:1200px;margin:0 auto;padding:0 20px;
  display:flex;align-items:center;height:42px;gap:14px;overflow:hidden;
}
.kn-ticker .kn-badge{
  background:var(--kn-red);color:#fff;font-weight:900;font-size:12px;
  padding:5px 10px;letter-spacing:.1em;flex:none;
}
.kn-ticker .kn-items{
  display:flex;gap:28px;font-size:13px;color:var(--kn-ink);
  white-space:nowrap;overflow:hidden;
}
.kn-ticker .kn-items b{ color:var(--kn-navy);margin-right:8px;font-weight:700; }

/* ===== Layout ===== */
body{ --theme-content-width:1200px; }
.ct-container, .entry-content{ max-width:1200px !important; }

/* Override Blocksy palette to our scheme */
:root{
  --theme-palette-color-1: var(--kn-navy) !important;
  --theme-palette-color-2: var(--kn-navy-2) !important;
  --theme-palette-color-3: var(--kn-ink) !important;
  --theme-palette-color-4: var(--kn-navy) !important;
  --theme-palette-color-5: var(--kn-line) !important;
  --theme-palette-color-6: var(--kn-navy-dark) !important;
  --theme-palette-color-7: var(--kn-bg) !important;
  --theme-palette-color-8: #ffffff !important;
}

/* ===== Loop cards ===== */
.ct-post-card, article.post, article.type-post{
  background:#fff !important;
  border:1px solid var(--kn-line) !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:0 !important;
}
.ct-post-card .entry-meta time{ color:var(--kn-sub) !important; }
.ct-post-card .entry-meta a, .ct-post-card .entry-meta{ font-size:11px !important; }
.entries article{ padding:24px !important; }

/* Add a colored top stripe on each card (looks like newspaper sections) */
article.post{
  position:relative;
}
article.post::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--kn-navy);
}
article.post.category-forex::before{ background:#1d4d8a; }
article.post.category-stocks::before{ background:#2b3a55; }
article.post.category-world-economy::before{ background:#0a7d3b; }
article.post.category-japan-economy::before{ background:var(--kn-red); }
article.post.category-breaking::before{ background:var(--kn-red); }
.ct-post-card .entry-title a, article .entry-title a{
  font-family:"Noto Serif JP", serif !important;
  font-weight:700 !important;
  color:var(--kn-ink) !important;
  letter-spacing:.01em;
}
.ct-post-card .entry-meta, .post-meta, .entry-meta{
  font-size:11px;color:var(--kn-sub);
}
.ct-image-container, .post-thumbnail{ border-radius:0 !important; }

/* Category badge on cards */
.ct-meta-categories a, .entry-meta .cat-links a, .post-categories a{
  background:#fff !important;
  color:var(--kn-navy) !important;
  font-size:11px !important;
  font-weight:700 !important;
  padding:3px 8px !important;
  border-radius:0 !important;
  letter-spacing:.05em !important;
}

/* ===== Single post ===== */
.single .entry-title, .post-template-default .entry-title{
  font-family:"Noto Serif JP", serif !important;
  font-weight:900 !important;
  font-size:34px !important;
  line-height:1.5 !important;
  color:var(--kn-ink) !important;
}
.single article.post, .single .entry-content-wrapper, .single .ct-container .entry{
  background:#fff;
  border:1px solid var(--kn-line);
  padding:48px 56px 56px !important;
}
.single .entry-content > h2, .entry-content h2{
  font-family:"Noto Serif JP", serif !important;
  font-weight:900 !important;
  font-size:24px !important;
  color:var(--kn-navy) !important;
  margin:42px 0 18px !important;
  padding:8px 0 8px 18px !important;
  border-left:6px solid var(--kn-red) !important;
  background:#fafbfc !important;
  letter-spacing:.02em;
}
.entry-content h3,
.single .entry-content h3,
article.post .entry-content h3{
  font-family:"Noto Serif JP", serif !important;
  font-weight:700 !important;
  font-size:18px !important;
  color:#1a1a1a !important;
  margin:28px 0 12px !important;
  padding-bottom:6px !important;
  border-bottom:1px dashed var(--kn-line) !important;
}
.entry-content p{
  font-size:16px !important;
  line-height:2.0 !important;
  color:#222 !important;
  letter-spacing:.02em;
  margin-bottom:20px;
}
.entry-content blockquote{
  font-family:"Noto Serif JP", serif !important;
  font-weight:700;
  font-size:18px;
  line-height:1.85;
  color:var(--kn-navy);
  border-top:2px solid var(--kn-navy) !important;
  border-bottom:2px solid var(--kn-navy) !important;
  border-left:0 !important;
  padding:18px 8px;
  margin:30px 0;
  text-align:center;
  letter-spacing:.03em;
  background:transparent !important;
}
.entry-content table{
  width:100%;border-collapse:collapse;margin:20px 0;font-size:14px;
}
.entry-content table th{
  background:var(--kn-navy);color:#fff;padding:10px 14px;text-align:left;
  font-weight:700;font-size:13px;letter-spacing:.04em;border:0;
}
.entry-content table td{
  padding:12px 14px;border:1px solid var(--kn-line);background:#fff;
}
.entry-content table tr:nth-child(even) td{ background:#fafbfc; }

/* Callout */
.kn-callout{
  background:#fff8ea;border:1px solid #e7d4a3;border-left:4px solid var(--kn-gold);
  padding:18px 22px;margin:26px 0;font-size:14px;line-height:1.9;
}
.kn-callout b{ color:#7a5b1a; }

/* Promo link box (for [[PROMO_LINK]] anchors) */
.kn-promo-link, .entry-content a[href*="PROMO_LINK"]{
  /* Render the placeholder a tag nicely too */
}
.kn-promo-link{
  background:#fafbfc;border:1px solid var(--kn-line);
  padding:16px 20px;margin:24px 0;display:flex;align-items:center;gap:14px;font-size:14px;
}
.kn-promo-link .ico{
  width:36px;height:36px;border-radius:50%;
  background:var(--kn-navy);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:"Noto Serif JP";font-weight:900;flex:none;
}
.kn-promo-link a{ color:var(--kn-navy);font-weight:700;border-bottom:1px solid var(--kn-navy); }
.kn-promo-link small{ display:block;color:var(--kn-sub);font-size:11px;margin-top:2px; }

/* Disclaimer */
.kn-disclaimer{
  margin-top:36px;padding:14px 18px;
  background:#fafbfc;border:1px dashed var(--kn-line);
  font-size:11px;color:var(--kn-sub);line-height:1.8;
}

/* ===== Sidebar widgets ===== */
.sidebar .widget, .ct-widget, aside .widget{
  background:#fff;border:1px solid var(--kn-line);
  margin-bottom:22px;padding:0;border-radius:0 !important;
}
.sidebar .widget-title, .ct-widget-title, aside .widget-title, .sidebar h2.widget-title{
  font-family:"Noto Serif JP", serif !important;
  font-size:15px !important;
  font-weight:900 !important;
  color:#fff !important;
  background:var(--kn-navy) !important;
  padding:10px 16px !important;
  margin:0 !important;
  letter-spacing:.04em;
  border:0 !important;
}
.sidebar .widget > div, .sidebar .widget ul, .ct-widget > *:not(.widget-title){
  padding:0 16px 14px;
}
.sidebar .widget ul li, aside ul li{
  list-style:none;
  padding:9px 0;
  border-bottom:1px dashed var(--kn-line);
  font-size:13px;
}
.sidebar .widget ul li:last-child{ border-bottom:0; }

/* ===== Section headings on archive/home ===== */
.kn-sec-title{
  display:flex;align-items:center;justify-content:space-between;
  margin:34px 0 14px;border-bottom:1px solid var(--kn-line);padding-bottom:8px;
}
.kn-sec-title h3{
  font-family:"Noto Serif JP", serif;
  font-size:20px;font-weight:900;color:var(--kn-navy);
  position:relative;padding-left:14px;margin:0;
}
.kn-sec-title h3::before{
  content:"";position:absolute;left:0;top:6px;bottom:6px;width:4px;background:var(--kn-red);
}
.kn-sec-title a{ font-size:12px;color:var(--kn-sub); }

/* ===== 4-step guide block ===== */
.kn-guide{
  background:#fff;border:1px solid var(--kn-line);
  padding:24px 28px;margin:34px 0;
}
.kn-guide-head{
  display:flex;align-items:center;gap:16px;margin-bottom:18px;
}
.kn-guide-head .kn-tag{
  background:var(--kn-navy);color:#fff;font-size:11px;font-weight:900;
  padding:5px 10px;letter-spacing:.12em;
}
.kn-guide-head h3{
  font-family:"Noto Serif JP", serif;font-size:20px;font-weight:900;color:var(--kn-navy);margin:0;
}
.kn-steps{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
}
.kn-step{
  border:1px solid var(--kn-line);padding:18px 16px;background:#fafbfc;transition:.15s;
}
.kn-step:hover{ background:#fff;border-color:var(--kn-navy); }
.kn-step .n{
  font-family:"Noto Serif JP", serif;
  font-weight:900;font-size:36px;color:var(--kn-red);line-height:1;margin-bottom:6px;
}
.kn-step .lbl{
  font-size:11px;color:var(--kn-sub);letter-spacing:.1em;margin-bottom:4px;
}
.kn-step h5{
  font-family:"Noto Serif JP", serif;font-size:15px;font-weight:700;color:var(--kn-ink);margin:0 0 8px;
}
.kn-step p{ font-size:12px;color:var(--kn-sub);line-height:1.7;margin:0; }

/* ===== Footer ===== */
footer.site-footer, [data-footer]{
  background:var(--kn-navy-dark) !important;
  color:#a7b4c5 !important;
  padding:46px 0 24px !important;
}
footer.site-footer a, [data-footer] a{ color:#a7b4c5 !important; }
footer.site-footer .widget-title, [data-footer] h2, [data-footer] h3{
  color:#fff !important;
  font-family:"Noto Serif JP", serif !important;
  font-size:14px !important;
  font-weight:700 !important;
  background:transparent !important;
  border-bottom:1px solid #1d3557 !important;
  padding:0 0 8px !important;
  margin-bottom:14px !important;
  letter-spacing:.04em;
}
footer.site-footer .widget, [data-footer] .widget{
  background:transparent !important;border:0 !important;
}
footer.site-footer li, [data-footer] li{
  padding:5px 0;font-size:12px;border:0 !important;
}
footer.site-footer .ct-copyright, [data-footer-bottom]{
  border-top:1px solid #1d3557 !important;
  margin-top:30px;padding-top:18px;
  text-align:center;font-size:11px;color:#6c7a8c !important;
}

/* Footer brand block */
.kn-foot-brand{
  font-family:"Noto Serif JP", serif;
  font-weight:900;font-size:24px;color:#fff;margin-bottom:8px;
}
.kn-foot-desc{ font-size:12px;line-height:1.8; }

/* ===== Featured / Pickup ===== */
.kn-featured{
  background:#fff;border:1px solid var(--kn-line);
  display:grid;grid-template-columns:1.2fr 1fr;overflow:hidden;margin-bottom:8px;
}
.kn-featured .kn-img{
  background:linear-gradient(135deg,#0B2A4A 0%,#163C66 70%,#264f86 100%);
  position:relative;min-height:340px;
}
.kn-featured .kn-img::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 70% 30%, rgba(200,16,46,.25), transparent 60%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.04) 0 2px, transparent 2px 16px);
}
.kn-featured .kn-img .chip{
  position:absolute;top:18px;left:18px;
  background:var(--kn-red);color:#fff;font-size:11px;font-weight:900;
  padding:5px 10px;letter-spacing:.12em;z-index:2;
}
.kn-featured .kn-img .num{
  position:absolute;bottom:-30px;right:18px;
  font-family:"Noto Serif JP",serif;font-weight:900;font-size:180px;
  color:rgba(255,255,255,.07);line-height:.8;
}
.kn-featured .kn-body{
  padding:30px 32px;display:flex;flex-direction:column;justify-content:center;
}
.kn-featured .cat{
  color:var(--kn-red);font-weight:700;font-size:12px;letter-spacing:.1em;margin-bottom:10px;
}
.kn-featured h2{
  font-family:"Noto Serif JP",serif;font-weight:900;font-size:28px;line-height:1.45;
  color:var(--kn-ink);margin:0 0 14px;letter-spacing:.01em;
}
.kn-featured h2 a{ color:inherit; }
.kn-featured p{ color:var(--kn-sub);font-size:14px;line-height:1.8;margin:0 0 16px; }
.kn-featured .meta{ font-size:12px;color:var(--kn-sub);display:flex;gap:14px; }
.kn-featured .meta b{ color:var(--kn-navy);font-weight:700; }

/* ===== Mobile ===== */
@media (max-width: 820px){
  .kn-util-inner{ flex-direction:column;height:auto;padding:8px 16px;gap:4px; }
  .kn-util nav a{ margin-left:10px; }
  header .site-title, .ct-header-text-logo{ font-size:26px !important; }
  .kn-featured{ grid-template-columns:1fr; }
  .kn-featured .kn-img{ min-height:200px; }
  .kn-featured .kn-body{ padding:20px; }
  .kn-featured h2{ font-size:20px; }
  .kn-steps{ grid-template-columns:repeat(2,1fr); }
  .single article.post, .single .entry-content-wrapper{ padding:24px 18px !important; }
  .single .entry-title{ font-size:24px !important; }
  .entry-content h2{ font-size:20px !important; }
}

/* === Sidebar polish (restored) === */
.ct-sidebar .widget > .widget-title,
.ct-sidebar .ct-widget-title,
.ct-sidebar h2.widget-title,
.ct-sidebar h3.widget-title,
.ct-sidebar .wp-block-heading {
  display: block !important;
  font-family: "Noto Serif JP", serif !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  color: #0B2A4A !important;
  border-left: 4px solid #C8102E !important;
  padding: 4px 0 4px 10px !important;
  margin: 0 0 14px 0 !important;
  background: transparent !important;
  border-bottom: 1px solid #e3e6ec !important;
  padding-bottom: 8px !important;
}
.ct-sidebar .widget,
.ct-sidebar .wp-block-group {
  background: #ffffff !important;
  border: 1px solid #e3e6ec !important;
  border-radius: 4px !important;
  padding: 16px !important;
  margin-bottom: 20px !important;
  box-shadow: 0 1px 2px rgba(11,42,74,.04) !important;
}
.ct-sidebar a { color: #1a1a1a !important; text-decoration: none !important; }
.ct-sidebar a:hover { color: #C8102E !important; }
.ct-sidebar ul { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.ct-sidebar ul li {
  border-bottom: 1px dotted #e3e6ec !important;
  padding: 8px 0 !important;
  font-size: 13.5px !important;
  line-height: 1.5 !important;
}
.ct-sidebar ul li:last-child { border-bottom: none !important; }

/* ==== 2026-06 fix: center single content + table text color ==== */
.single .ct-sidebar{ display:none !important; }
.single #main{ display:block !important; max-width:920px !important; margin-left:auto !important; margin-right:auto !important; }
.single .entry-content-wrapper, .single article.post, .single .ct-container .entry{ margin-left:auto !important; margin-right:auto !important; float:none !important; }
.entry-content table td{ color:#1a1a1a !important; }
.entry-content table td strong{ color:#1a1a1a !important; }
.entry-content table tr:first-child td{ background:#0B2A4A !important; }
.entry-content table tr:first-child td, .entry-content table tr:first-child td strong{ color:#ffffff !important; }
/* ==== 2026-06 fix: 내부링크/타이안 링크 강조 ==== */
.entry-content p a[href*="keizai-now.com"], .entry-content li a[href*="keizai-now.com"]{ color:#C8102E !important; font-weight:700 !important; text-decoration:underline !important; }
.entry-content p a[href*="taianbridge.com"]{ color:#C8102E !important; font-weight:700 !important; text-decoration:underline !important; }
.entry-content a{ text-decoration:underline; }
/* ==== 2026-06 fix: 리스트(li) 글자색 진하게 ==== */
.entry-content li{ color:#1a1a1a !important; font-size:16px !important; line-height:1.9 !important; }
.entry-content ul li, .entry-content ol li{ color:#1a1a1a !important; }
.entry-content li strong{ color:#0B2A4A !important; }