:root{
  --ink:#2B2620;
  --indigo:#223350;
  --indigo-mid:#4A6C8C;
  --indigo-soft:#DCE6EE;
  --paper:#FBF8F2;
  --paper-line:#E4DCC8;
  --kaki:#C1622D;
  --kaki-soft:#F1DCC9;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Zen Kaku Gothic New', sans-serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.85;
  font-weight:400;
}
.jp-display{font-family:'Shippori Mincho B1', serif;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
:focus-visible{outline:3px solid var(--kaki); outline-offset:3px;}

.wrap{max-width:1040px; margin:0 auto; padding:0 28px;}

/* ---------- SITE HEADER (blog pages) ---------- */
.site-header{
  background:var(--indigo);
  color:var(--paper);
  padding:28px 0;
}
.site-header .wrap{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;
}
.site-header .brand{
  font-family:'Shippori Mincho B1', serif; font-weight:800; font-size:1.3rem;
}
.site-header .brand a{ color:var(--paper); }
.site-nav{ display:flex; gap:18px; flex-wrap:wrap; font-size:0.86rem; }
.site-nav a{ color:var(--indigo-soft); }
.site-nav a:hover{ color:var(--paper); }

/* ---------- PAGE / ARTICLE HEADER ---------- */
.page-header{
  padding:56px 0 32px; border-bottom:1px solid var(--paper-line);
}
.page-header .eyebrow{
  font-size:0.74rem; letter-spacing:0.28em; text-transform:uppercase;
  color:var(--kaki); font-weight:500; margin-bottom:14px;
}
.page-header h1{
  font-size:clamp(1.8rem, 4vw, 2.6rem); font-weight:800;
}
.page-header .meta{
  margin-top:14px; font-size:0.84rem; color:#8a8069;
}

/* ---------- ARTICLE BODY ---------- */
.article-body{
  padding:48px 0 72px; max-width:720px; margin:0 auto;
}
.article-body h2{
  font-family:'Shippori Mincho B1', serif;
  font-size:1.5rem; font-weight:800; margin:40px 0 16px; color:var(--indigo);
}
.article-body p{ margin-bottom:20px; font-size:1rem; }
.article-body strong{ color:var(--kaki); }
.article-body a{ color:var(--kaki); border-bottom:1px solid var(--kaki-soft); }
.article-body iframe{ width:100%; aspect-ratio:16/9; height:auto; margin:24px 0; border:none; }

.pull-quote{
  font-family:'Shippori Mincho B1', serif;
  font-size:1.3rem; font-weight:700; line-height:1.6;
  color:var(--indigo); margin:40px 0; padding:4px 0 4px 24px;
  border-left:3px solid var(--kaki);
}

.point-box{
  margin:32px 0; padding:24px 28px;
  background:var(--indigo-soft); border-left:3px solid var(--indigo);
}
.point-box .point-title{
  font-family:'Shippori Mincho B1', serif; font-weight:800; font-size:1rem;
  color:var(--indigo); margin-bottom:10px;
}
.point-box ul{ margin:0; padding-left:1.2em; }
.point-box li{ font-size:0.94rem; margin-bottom:6px; }
.point-box li:last-child{ margin-bottom:0; }

.section-break{
  text-align:center; color:var(--kaki); font-size:1rem;
  letter-spacing:0.5em; margin:44px 0;
}

.article-body figure{ margin:32px 0; }
.article-body figure img{ border:1px solid var(--paper-line); }
.article-body figcaption{
  font-size:0.78rem; color:#8a8069; text-align:center; margin-top:8px;
}

.book-promo{
  margin:32px 0; padding:24px 28px;
  background:var(--kaki-soft); border-left:3px solid var(--kaki);
}
.book-promo .book-title{
  font-family:'Shippori Mincho B1', serif; font-weight:800; font-size:1.1rem; margin-bottom:8px;
}
.book-promo p{ margin-bottom:0; font-size:0.94rem; }

.affiliate-note{
  font-size:0.78rem; color:#8a8069; margin-top:8px;
}

.translation-link{
  margin-top:36px; padding-top:20px; border-top:1px solid var(--paper-line);
  font-size:0.9rem;
}
.translation-link a{ color:var(--indigo); font-weight:500; border-bottom-color:var(--indigo-soft); }

/* ---------- TAGS / CATEGORY BADGES ---------- */
.badge-row{ display:flex; gap:8px; flex-wrap:wrap; margin-top:18px; }
.badge{
  display:inline-block; padding:5px 14px; font-size:0.78rem; font-weight:500;
  border:1px solid var(--paper-line); border-radius:2px; color:#5b5346;
}
.badge--category{ background:var(--indigo); color:var(--paper); border-color:var(--indigo); }
.badge--link{ transition:background .15s ease, color .15s ease; }
.badge--link:hover{ background:var(--kaki); color:var(--paper); border-color:var(--kaki); }

/* ---------- TAG INDEX ---------- */
.tag-cloud{ padding:56px 0; display:flex; flex-wrap:wrap; gap:12px; }
.tag-cloud a{
  display:inline-flex; align-items:baseline; gap:6px;
  padding:9px 18px; font-size:0.92rem; font-weight:500;
  border:1px solid var(--paper-line); border-radius:2px; color:#5b5346;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.tag-cloud a:hover{ background:var(--kaki); color:var(--paper); border-color:var(--kaki); }
.tag-cloud .tag-count{ font-size:0.76rem; color:#8a8069; }
.tag-cloud a:hover .tag-count{ color:var(--paper); }

/* ---------- POST LIST (category / tag pages) ---------- */
.post-list{ padding:56px 0; }
.post-card{
  padding:28px 0; border-bottom:1px solid var(--paper-line);
}
.post-card h3{ font-family:'Shippori Mincho B1', serif; font-size:1.3rem; font-weight:800; margin-bottom:10px; }
.post-card h3 a:hover{ color:var(--kaki); }
.post-card .excerpt{ font-size:0.92rem; color:#5b5346; margin-top:8px; line-height:1.9; }
.post-card .meta{ font-size:0.8rem; color:#8a8069; }
.post-card-footer{
  display:flex; align-items:center; justify-content:space-between;
  margin-top:16px;
}
.post-card .read-more{
  font-size:0.82rem; font-weight:500; color:var(--kaki);
}

.pager{
  display:flex; align-items:center; justify-content:center; gap:24px;
  padding:40px 0 0; font-size:0.88rem;
}
.pager a{ color:var(--kaki); font-weight:500; }
.pager-status{ color:#8a8069; }

/* ---------- WORKBOOKS ---------- */
.workbook-grid{
  display:grid; grid-template-columns:repeat(2, 1fr); gap:28px;
  padding:56px 0;
}
@media(max-width:760px){ .workbook-grid{ grid-template-columns:1fr; } }
.workbook-card{
  position:relative;
  border:1px solid var(--paper-line);
  padding:32px 28px;
  display:flex; flex-direction:column; gap:12px;
  background:var(--paper);
}
.workbook-card h3{ font-size:1.25rem; font-weight:800; }
.workbook-title-ja{ font-size:0.9rem; color:#8a8069; margin-top:-6px; }
.workbook-desc{ font-size:0.92rem; color:#5b5346; line-height:1.9; }
.workbook-badge--soon{
  position:absolute; top:24px; right:24px;
  background:var(--indigo); color:var(--paper); border-color:var(--indigo);
}
.btn-workbook{
  margin-top:auto; align-self:flex-start;
  padding:11px 22px; font-size:0.88rem; font-weight:500;
  background:var(--kaki); color:var(--paper); border-radius:2px;
  transition:transform .15s ease, background .15s ease;
}
.btn-workbook:hover{ transform:translateY(-2px); background:#a8501f; }
.btn-workbook--disabled{
  background:transparent; color:#8a8069; border:1px solid var(--paper-line);
  cursor:default;
}
.btn-workbook--disabled:hover{ transform:none; }

/* ---------- FOOTER ---------- */
footer{
  border-top:1px solid var(--paper-line);
  padding:40px 0; text-align:center;
}
footer .brand{ font-family:'Shippori Mincho B1', serif; font-weight:800; font-size:1.1rem; margin-bottom:6px; }
footer p{ font-size:0.8rem; color:#8a8069; }
