/*
Theme Name: SAJU Blog
Theme URI: https://saju09.com
Description: 사주공부 브랜드 블로그. saju09.com의 종이(paper) 톤, 인장(seal) 강조, 명조·고딕 타이포를 따른 최소 블록 테마. 다크 모드 포함.
Author: FLOAT
Version: 0.2.0
Requires at least: 6.4
Requires PHP: 8.1
License: Proprietary
Text Domain: saju-blog
*/

/* ---------- Tokens (mirror theme.json; saju09.com values) ---------- */
:root {
  --saju-paper: #F3EEE3;
  --saju-surface: #FAF7F0;
  --saju-sunk: #EBE4D6;
  --saju-ink: #1C1915;
  --saju-ink-2: #463F36;
  --saju-ink-3: #7A7062;
  --saju-gold: #8A6A2C;
  --saju-seal: #A8301D;
  --saju-seal-soft: #F3DCD3;
  --saju-rule: #D8CDB9;
  --saju-rule-strong: #D9CFBC;
  --saju-gutter: 16px;
  --saju-radius: 8px;
  --saju-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --saju-serif: "Noto Serif KR", "Apple SD Gothic Neo", serif;
  --saju-sans: "IBM Plex Sans KR", system-ui, -apple-system, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --saju-paper: #131210;
    --saju-surface: #1B1916;
    --saju-sunk: #0E0D0C;
    --saju-ink: #ECE4D3;
    --saju-ink-2: #C4B9A5;
    --saju-ink-3: #8E8575;
    --saju-gold: #CFAA5E;
    --saju-seal: #E0664C;
    --saju-seal-soft: #3A1D16;
    --saju-rule: #2F2B25;
    --saju-rule-strong: #2A251F;
  }
}
:root[data-theme="dark"] {
  --saju-paper: #131210;
  --saju-surface: #1B1916;
  --saju-sunk: #0E0D0C;
  --saju-ink: #ECE4D3;
  --saju-ink-2: #C4B9A5;
  --saju-ink-3: #8E8575;
  --saju-gold: #CFAA5E;
  --saju-seal: #E0664C;
  --saju-seal-soft: #3A1D16;
  --saju-rule: #2F2B25;
  --saju-rule-strong: #2A251F;
}

@media (min-width: 768px) {
  :root { --saju-gutter: 32px; }
}

/* ---------- Base ---------- */
body {
  background-color: var(--saju-paper);
  color: var(--saju-ink);
  font-family: var(--saju-sans);
  word-break: keep-all;
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
}

img, video, iframe { max-width: 100%; height: auto; }

:focus-visible {
  outline: 2px solid var(--saju-gold);
  outline-offset: 3px;
  border-radius: 4px;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ---------- Header: paper bar, hairline rule, seal mark ---------- */
.saju-header {
  background: var(--saju-surface);
  border-bottom: 1px solid var(--saju-rule);
}
.saju-header__inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 14px var(--saju-gutter);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 16px;
}
.saju-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--saju-ink);
  font-family: var(--saju-serif);
  font-size: 17px;
  font-weight: 900;
  letter-spacing: -0.01em;
  text-decoration: none;
}
.saju-brand img {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  box-shadow: 0 0 0 1px var(--saju-rule);
}
.saju-brand__sub {
  font-family: var(--saju-sans);
  font-size: 12px;
  font-weight: 500;
  color: var(--saju-ink-3);
  letter-spacing: 0.02em;
}
.saju-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 18px;
}
.saju-nav a {
  font-size: 14px;
  color: var(--saju-ink-2);
  text-decoration: none;
  padding: 4px 0;
  border-bottom: 1px solid transparent;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.saju-nav a:hover,
.saju-nav a[aria-current="page"] {
  color: var(--saju-seal);
  border-bottom-color: var(--saju-seal);
}

/* ---------- Main column ---------- */
.saju-main {
  max-width: calc(680px + var(--saju-gutter) * 2);
  margin-left: auto;
  margin-right: auto;
  padding-top: clamp(28px, 6vw, 56px);
  padding-bottom: 48px;
  padding-left: var(--saju-gutter);
  padding-right: var(--saju-gutter);
}

/* Kicker = category as a seal stamp */
.saju-kicker a { color: inherit; text-decoration: none; }
.saju-kicker {
  display: inline-block;
  margin: 0 0 14px;
  padding: 3px 9px;
  border: 1.5px solid var(--saju-seal);
  border-radius: 3px;
  background: transparent;
  color: var(--saju-seal);
  font-family: var(--saju-serif);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-decoration: none;
}
.saju-meta {
  color: var(--saju-ink-3);
  font-size: 13px;
  letter-spacing: 0.04em;
  margin: 0 0 10px;
}
.saju-article-title,
.saju-main .wp-block-query-title {
  font-family: var(--saju-serif);
  font-size: clamp(1.75rem, 1.2rem + 2.4vw, 2.5rem);
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: -0.015em;
  margin: 0 0 0.6em;
}
.saju-main .wp-block-query-title { font-size: clamp(1.5rem, 1.1rem + 1.8vw, 2rem); }
.saju-main .wp-block-term-description { color: var(--saju-ink-2); }

/* ---------- Post list ---------- */
.wp-block-post-template { list-style: none; margin: 0; padding: 0; }
.wp-block-post-template > li {
  padding: 26px 0;
  border-bottom: 1px solid var(--saju-rule);
}
.wp-block-post-template > li:first-child { padding-top: 0; }
.wp-block-post-template .wp-block-post-title {
  font-family: var(--saju-serif);
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.45;
  margin: 8px 0;
}
.wp-block-post-template > li:first-child .wp-block-post-title {
  font-size: clamp(1.5rem, 1.1rem + 1.8vw, 2.1rem);
  font-weight: 900;
}
.wp-block-post-template .wp-block-post-title a { color: var(--saju-ink); text-decoration: none; transition: color 0.2s var(--saju-ease); }
.wp-block-post-template li:hover .wp-block-post-title a { color: var(--saju-seal); }
.wp-block-post-template .wp-block-post-excerpt__excerpt { color: var(--saju-ink-2); font-size: 0.95rem; margin: 0; }
.wp-block-post-template .wp-block-post-excerpt__more-link { color: var(--saju-gold); font-weight: 700; text-decoration: none; }
.wp-block-post-template .wp-block-post-featured-image img { border-radius: var(--saju-radius); }

.wp-block-query-pagination { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 36px; }
.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
  padding: 7px 14px;
  border: 1px solid var(--saju-rule);
  border-radius: 3px;
  color: var(--saju-ink-2);
  text-decoration: none;
  transition: border-color 0.2s ease, color 0.2s ease;
}
.wp-block-query-pagination a:hover { border-color: var(--saju-seal); color: var(--saju-seal); }
.wp-block-query-pagination .page-numbers.current { background: var(--saju-ink); border-color: var(--saju-ink); color: var(--saju-paper); }

/* ---------- Article body ---------- */
.wp-block-post-content {
  font-size: 1.0625rem;
  line-height: 1.9;
  color: var(--saju-ink);
}
@media (min-width: 768px) {
  .wp-block-post-content { font-size: 1.125rem; }
}
.wp-block-post-content p { margin: 0 0 1.25em; }
.wp-block-post-content h2 {
  font-family: var(--saju-serif);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.4;
  margin: 2.2em 0 0.6em;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--saju-rule-strong);
}
.wp-block-post-content h3 {
  font-family: var(--saju-serif);
  font-size: 1.2rem;
  font-weight: 600;
  margin: 1.8em 0 0.5em;
  color: var(--saju-ink-2);
}
.wp-block-post-content a {
  color: var(--saju-gold);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color 0.2s ease;
}
.wp-block-post-content a:hover { color: var(--saju-seal); }
.wp-block-post-content blockquote {
  margin: 1.6em 0;
  padding: 16px 20px;
  background: var(--saju-sunk);
  border-left: 3px solid var(--saju-seal);
  border-radius: 0 var(--saju-radius) var(--saju-radius) 0;
  color: var(--saju-ink-2);
  font-family: var(--saju-serif);
}
.wp-block-post-content figure,
.wp-block-post-content .wp-block-image img,
.wp-block-post-featured-image img { border-radius: var(--saju-radius); }
.wp-block-post-content code,
.wp-block-post-content pre { font-family: "IBM Plex Sans KR", ui-monospace, Menlo, monospace; font-size: 0.9em; }
.wp-block-post-content pre { background: var(--saju-sunk); padding: 14px 16px; border-radius: var(--saju-radius); overflow-x: auto; }

.wp-block-post-navigation-link a { color: var(--saju-gold); font-weight: 700; text-decoration: none; }

/* ---------- Ad slots (empty = hidden; Ad Inserter / AdSense fill later) ---------- */
.ad-slot { margin: 24px auto; max-width: 100%; overflow: hidden; }
.ad-slot:empty,
.ad-slot:not(:has(*)) { display: none; }

/* ---------- Cross-promo band (사주공부 / 인타 / 흐름) ---------- */
.saju-promo {
  background: var(--saju-sunk);
  padding: 44px var(--saju-gutter);
  margin-top: 56px;
  border-top: 1px solid var(--saju-rule);
}
.saju-promo__inner { max-width: 1120px; margin: 0 auto; }
.saju-promo__eyebrow {
  margin: 0 0 16px;
  font-family: var(--saju-serif);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--saju-seal);
}
.saju-promo__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;
}
@media (min-width: 768px) {
  .saju-promo__grid { grid-template-columns: repeat(3, 1fr); }
}
.saju-promo__card {
  background: var(--saju-surface);
  border: 1px solid var(--saju-rule);
  border-radius: var(--saju-radius);
}
.saju-promo__card a {
  display: block;
  height: 100%;
  padding: 20px;
  color: var(--saju-ink);
  text-decoration: none;
  border-radius: var(--saju-radius);
  transition: transform 0.2s var(--saju-ease), border-color 0.2s var(--saju-ease);
}
.saju-promo__card a:hover { transform: translateY(-2px); border-color: var(--saju-seal); }
.saju-promo__card--own { border-color: var(--saju-seal); box-shadow: inset 3px 0 0 var(--saju-seal); }
.saju-promo__name { display: block; font-family: var(--saju-serif); font-size: 1.2rem; font-weight: 900; margin-bottom: 6px; }
.saju-promo__desc { display: block; font-size: 0.875rem; color: var(--saju-ink-2); line-height: 1.55; }
.saju-promo__logo { display: block; width: 40px; height: 40px; border-radius: 10px; margin-bottom: 12px; object-fit: cover; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08); }

/* ---------- Footer ---------- */
.saju-footer {
  background: var(--saju-surface);
  color: var(--saju-ink-3);
  padding: 40px var(--saju-gutter);
  border-top: 1px solid var(--saju-rule);
  font-size: 13px;
  line-height: 1.75;
}
.saju-footer__inner { max-width: 1120px; margin: 0 auto; display: grid; gap: 12px; }
.saju-footer__brand { color: var(--saju-ink); font-family: var(--saju-serif); font-size: 16px; font-weight: 700; margin: 0; }
.saju-footer__links { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.saju-footer a { color: var(--saju-ink-2); text-decoration: none; }
.saju-footer a:hover { color: var(--saju-seal); text-decoration: underline; }
.saju-footer p { margin: 0; }

/* ---------- 404 ---------- */
.saju-404 { text-align: left; }
.saju-404 .saju-btn {
  display: inline-block;
  margin-top: 16px;
  padding: 9px 20px;
  border: 1.5px solid var(--saju-seal);
  border-radius: 3px;
  background: var(--saju-seal);
  color: var(--saju-surface);
  text-decoration: none;
  font-weight: 700;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.saju-404 .saju-btn:hover { background: transparent; color: var(--saju-seal); }
