/**
 * labriefing-blog.css — 라브리핑 블로그 공용 CSS
 * 모든 캐릭터·카테고리 공용. 글마다 생성하지 않음.
 * wp_enqueue_style로 <head>에 1번만 로드.
 */

/* ═══ CSS Variables (stitch_mobile.html 토큰 기준) ═══ */
:root {
  --cb-bg: #fbf9f5;
  --cb-bg2: #efeeea;
  --cb-ink: #1b1c1a;
  --cb-ink2: #3d3d45;
  --cb-ink3: #45464d;
  --cb-ink4: #9ca3af;
  --cb-gold: #b8963e;
  --cb-gold-l: #d4b668;
  --cb-gold-bg: rgba(184,150,62,.06);
  --cb-accent: #2d5a7b;
  --cb-accent-bg: rgba(45,90,123,.04);
  --cb-warm: #c75b3f;
  --cb-warm-bg: rgba(199,91,63,.05);
  --cb-navy: #1a2744;
  --cb-navy-d: #04122e;
  --cb-green: #059669;
  --cb-line: rgba(0,0,0,.06);
  --cb-card: #ffffff;
  --cb-shadow: 0 1px 3px rgba(0,0,0,.04), 0 8px 32px rgba(0,0,0,.06);
  --cb-r: 16px;
}

/* ═══ WP 테마 충돌 해결 (BUG 1,2,3) ═══ */
body.single-post .wp-block-post-title,
body.single-post .entry-header { display: none !important; }
body.single-post .wp-block-post-author-name,
body.single-post .wp-block-post-author { display: none !important; }
body.single-post .wp-block-post-terms::before { content: '' !important; display: none !important; }
body.single-post { background: var(--cb-bg) !important; }
body.single-post .wp-block-post-content,
body.single-post .entry-content { background: var(--cb-bg) !important; }
body.single-post .wp-block-post-content > * { max-width: none !important; }

/* ═══ Base ═══ */
.cb-post { max-width: none; margin: 0 auto; padding: 0; font-family: 'Noto Sans KR', sans-serif; color: var(--cb-ink); line-height: 2; font-size: 16px; -webkit-font-smoothing: antialiased; background: var(--cb-bg); }
.cb-post * { box-sizing: border-box; }

/* ═══ Hero — navy gradient + 흰색 글씨 ═══ */
.cb-hero {
  background: linear-gradient(135deg, var(--cb-navy-d) 0%, var(--cb-navy) 100%);
  color: #fff; text-align: center; padding: 48px 24px 40px;
  width: 100vw; position: relative; left: 50%; right: 50%;
  margin-left: -50vw; margin-right: -50vw;
}
.cb-hero-tag { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 20px; }
.cb-hero-tag .cb-cat,
.cb-hero-tag .cat { font-size: 10px; font-weight: 700; color: #fff; letter-spacing: .1em; text-transform: uppercase; background: var(--cb-gold); padding: 4px 12px; border-radius: 9999px; }
.cb-hero-tag .cb-dot,
.cb-hero-tag .dot { width: 3px; height: 3px; border-radius: 50%; background: rgba(255,255,255,.4); display: inline-block; }
.cb-hero-tag .cb-date,
.cb-hero-tag .date { font-size: 11px; color: rgba(255,255,255,.7); }
.cb-hero h1,
.cb-hero-title { font-family: 'Noto Serif KR', serif; font-size: clamp(22px, 5vw, 34px); font-weight: 900; line-height: 1.35; letter-spacing: -.03em; margin-bottom: 14px; color: #fff; }
.cb-hero h1 em { font-style: normal; color: var(--cb-gold); }
.cb-hero .cb-lead,
.cb-hero .lead { font-size: 15px; color: rgba(255,255,255,.75); max-width: 560px; margin: 0 auto 28px; line-height: 1.8; }
.cb-author { display: flex; align-items: center; justify-content: center; gap: 10px; }
.cb-author-avatar { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 3px rgba(184,150,62,.3); }
/* 이모지 fallback */
div.cb-author-avatar { background: linear-gradient(135deg, var(--cb-gold-l), var(--cb-warm)); display: flex; align-items: center; justify-content: center; font-size: 18px; color: #fff; }
.cb-author-name { font-size: 13px; font-weight: 700; color: #fff; }
.cb-author-desc { font-size: 11px; color: rgba(255,255,255,.6); }
.cb-author-info { text-align: left; }

/* ═══ Summary Card ═══ */
.cb-summary { background: var(--cb-card); border: 1px solid var(--cb-line); border-radius: var(--cb-r); padding: 24px 28px; max-width: 720px; margin: -20px auto 36px; box-shadow: var(--cb-shadow); position: relative; overflow: hidden; z-index: 1; }
.cb-summary::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--cb-gold), var(--cb-warm)); }
.cb-summary-title { font-family: 'Noto Serif KR', serif; font-size: 15px; font-weight: 900; margin-bottom: 12px; color: var(--cb-navy); }
.cb-summary-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin-top: 16px; }
.cb-summary-item { padding: 12px; background: var(--cb-bg); border-radius: 12px; }
.cb-label { font-size: 11px; color: var(--cb-ink3); margin-bottom: 4px; }
.cb-value { font-size: 15px; font-weight: 700; color: var(--cb-navy); }
.cb-value.cb-gold { color: var(--cb-gold); }

/* ═══ Article Body ═══ */
.cb-post article { max-width: 720px; margin: 0 auto; padding: 32px 24px 0; }
.cb-post h2 {
  font-family: 'Noto Serif KR', serif; font-size: 22px; font-weight: 900;
  margin: 48px 0 16px; padding-bottom: 12px;
  border-bottom: 3px solid var(--cb-gold);
  color: var(--cb-navy); line-height: 1.4;
}
.cb-post h2:first-of-type { margin-top: 0; }
.cb-post h3 { font-family: 'Noto Serif KR', serif; font-size: 18px; font-weight: 900; color: var(--cb-navy); margin: 32px 0 12px; }
.cb-post p { font-size: 16px; color: var(--cb-ink2); margin-bottom: 18px; line-height: 2; }
.cb-post p strong { color: var(--cb-navy); font-weight: 700; }

/* ═══ Info Box ═══ */
.cb-box, .cb-info-box { border-radius: var(--cb-r); padding: 22px 26px; margin: 24px 0; }
.cb-box.info, .cb-info-box:not(.cb-warn):not(.cb-gold):not(.cb-tip) { background: var(--cb-accent-bg); border: 1px solid rgba(45,90,123,.12); }
.cb-box.warn, .cb-info-box.cb-warn { background: var(--cb-warm-bg); border: 1px solid rgba(199,91,63,.12); }
.cb-box.tip, .cb-info-box.cb-tip { background: rgba(5,150,105,.04); border: 1px solid rgba(5,150,105,.12); }
.cb-box.gold, .cb-info-box.cb-gold { background: var(--cb-gold-bg); border: 1px solid rgba(184,150,62,.15); }
.cb-box-title, .cb-info-title { font-size: 14px; font-weight: 700; margin-bottom: 8px; display: flex; align-items: center; gap: 6px; color: var(--cb-navy); }
.cb-box p, .cb-info-box p { font-size: 14px; margin-bottom: 6px; color: var(--cb-ink2); }
.cb-box p:last-child, .cb-info-box p:last-child { margin-bottom: 0; }

/* ═══ Table ═══ */
.cb-table, .cb-table-wrap { overflow-x: auto; margin: 24px 0; border-radius: 12px; border: 1px solid var(--cb-line); }
.cb-table table, .cb-table-wrap table { width: 100%; border-collapse: collapse; font-size: 14px; }
.cb-table th, .cb-table-wrap th { font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; padding: 14px 16px; text-align: left; background: var(--cb-navy); color: #fff; }
.cb-table th:first-child { border-radius: 12px 0 0 0; }
.cb-table th:last-child { border-radius: 0 12px 0 0; }
.cb-table td, .cb-table-wrap td { padding: 12px 16px; border-bottom: 1px solid var(--cb-line); color: var(--cb-ink2); }
.cb-table tr:hover td { background: rgba(184,150,62,.04); }

/* ═══ CTA Button ═══ */
.cb-cta { max-width: 720px; margin: 24px auto 0; padding: 32px; background: var(--cb-card); border-radius: var(--cb-r); text-align: center; border: 1px solid var(--cb-line); }
.cb-cta h3 { font-family: 'Noto Serif KR', serif; font-weight: 900; font-size: 18px; color: var(--cb-navy); margin: 0 0 8px; border: none; padding: 0; }
.cb-cta p { font-size: 13px; color: var(--cb-ink4); margin-bottom: 16px; }
.cb-cta-btn { display: block; max-width: 720px; margin: 24px auto; padding: 20px 28px; background: linear-gradient(135deg, var(--cb-navy-d), var(--cb-navy)); color: var(--cb-gold); border-radius: var(--cb-r); font-family: 'Noto Serif KR', serif; font-weight: 900; font-size: 18px; text-align: center; text-decoration: none; }

/* ═══ Footer — 프로필 카드 ═══ */
.cb-footer {
  max-width: 720px; margin: 48px auto 0; padding: 32px 24px;
  background: linear-gradient(135deg, var(--cb-navy-d), var(--cb-navy));
  border-radius: var(--cb-r); text-align: center; color: #fff;
}
.cb-footer .name { font-weight: 700; color: var(--cb-gold); font-size: 15px; }
.cb-footer p { font-size: 13px; color: rgba(255,255,255,.7); margin: 0; }
.cb-footer .footer-brand { font-size: 11px; color: rgba(255,255,255,.4); margin-top: 12px; }

/* ═══ Subscribe ═══ */
.cb-subscribe { max-width: 720px; margin: 24px auto 40px; padding: 32px; background: var(--cb-bg2); border-radius: var(--cb-r); text-align: center; }
.cb-subscribe h3 { font-weight: 900; color: var(--cb-navy); margin: 0 0 8px; border: none; padding: 0; }
.cb-subscribe p { font-size: 13px; color: var(--cb-ink3); margin-bottom: 16px; }
.cb-subscribe-form { display: flex; gap: 8px; max-width: 400px; margin: 0 auto; }
.cb-subscribe-input { flex: 1; padding: 12px 16px; border: 1px solid var(--cb-line); border-radius: 9999px; font-size: 14px; background: var(--cb-card); }
.cb-subscribe-input:focus { outline: none; border-color: var(--cb-gold); box-shadow: 0 0 0 3px rgba(184,150,62,.15); }
.cb-subscribe-btn { padding: 12px 20px; background: var(--cb-gold); color: #fff; border: none; border-radius: 9999px; font-weight: 700; font-size: 14px; cursor: pointer; }

/* ═══ Next Card ═══ */
.cb-next-card { display: flex; align-items: center; justify-content: space-between; max-width: 720px; margin: 24px auto; padding: 20px 24px; background: var(--cb-card); border: 1px solid var(--cb-line); border-radius: var(--cb-r); text-decoration: none; color: var(--cb-ink); }
.cb-nc-label { font-size: 10px; color: var(--cb-gold); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 4px; }
.cb-nc-title { font-size: 15px; font-weight: 700; color: var(--cb-navy); }
.cb-nc-arrow { font-size: 24px; color: var(--cb-gold); }

/* ═══ Disclaimer ═══ */
.cb-disclaimer { max-width: 720px; margin: 24px auto; font-size: 12px; color: var(--cb-ink4); line-height: 1.8; text-align: center; padding: 0 24px; }
.cb-disclaimer a { color: var(--cb-accent); text-decoration: underline; }

/* ═══ Reveal Animation ═══ */
.cb-reveal { opacity: 0; transform: translateY(20px); transition: opacity .6s ease, transform .6s ease; }
.cb-reveal.cb-visible { opacity: 1; transform: translateY(0); }

/* ═══ 캐릭터별 accent 오버라이드 (data-agent 속성) ═══ */
.cb-post[data-agent="F02"] { --cb-accent: #2d5a7b; --cb-accent-bg: rgba(45,90,123,.04); --cb-warm: #c75b3f; --cb-warm-bg: rgba(199,91,63,.05); }
.cb-post[data-agent="F03"] { --cb-accent: #3d7c5f; --cb-accent-bg: rgba(61,124,95,.04); --cb-warm: #d4853e; --cb-warm-bg: rgba(199,133,62,.05); }
.cb-post[data-agent="F05"] { --cb-accent: #4a4a8a; --cb-accent-bg: rgba(74,74,138,.04); --cb-warm: #e05252; --cb-warm-bg: rgba(224,82,82,.05); }
.cb-post[data-agent="F06"] { --cb-accent: #7c4daf; --cb-accent-bg: rgba(124,77,175,.04); --cb-warm: #e85d75; --cb-warm-bg: rgba(232,93,117,.05); }

/* ═══ 위젯 공용 ═══ */
.cb-rani-chat { background: var(--cb-card); border-radius: var(--cb-r); overflow: hidden; margin: 24px 0; box-shadow: var(--cb-shadow); }
.cb-rani-chat-header { background: var(--cb-navy); padding: 16px 20px; display: flex; align-items: center; gap: 12px; }
.cb-rani-icon { width: 40px; height: 40px; border-radius: 50%; }
.cb-chat-title { font-size: 14px; font-weight: 700; color: #fff; }
.cb-chat-sub { font-size: 10px; color: rgba(255,255,255,.6); }
.cb-chat-body { padding: 20px; max-height: 400px; overflow-y: auto; }
.cb-bubble { display: flex; gap: 8px; margin-bottom: 12px; }
.cb-bubble.cb-rani { flex-direction: row; }
.cb-bubble.cb-user { flex-direction: row-reverse; }
.cb-b-icon { width: 32px; height: 32px; border-radius: 50%; flex-shrink: 0; }
.cb-b-text { padding: 12px 16px; border-radius: 16px; font-size: 14px; line-height: 1.6; max-width: 80%; }
.cb-bubble.cb-rani .cb-b-text { background: var(--cb-bg); border-radius: 4px 16px 16px 16px; }
.cb-bubble.cb-user .cb-b-text { background: var(--cb-navy); color: #fff; border-radius: 16px 4px 16px 16px; }
.cb-chat-options { padding: 16px 20px; border-top: 1px solid var(--cb-line); }
.cb-birth-input-wrap { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.cb-birth-input { width: 72px; padding: 10px; border: 1px solid var(--cb-line); border-radius: 12px; font-size: 14px; text-align: center; }
.cb-birth-input.cb-birth-short { width: 56px; }
.cb-birth-label { font-size: 13px; color: var(--cb-ink3); }
.cb-chat-btn { padding: 10px 20px; background: var(--cb-navy); color: #fff; border: none; border-radius: 9999px; font-size: 13px; font-weight: 700; cursor: pointer; }
.cb-chat-btn:active { transform: scale(.95); }

/* 소득 게이지 위젯 */
.cb-calc { background: var(--cb-card); border-radius: var(--cb-r); padding: 24px; margin: 24px 0; box-shadow: var(--cb-shadow); }
.cb-calc-title { color: var(--cb-navy); margin: 0 0 4px; border: none; padding: 0; }
.cb-calc-sub { font-size: 13px; color: var(--cb-ink3); margin-bottom: 16px; }
.cb-calc-tabs { display: flex; gap: 8px; margin-bottom: 16px; flex-wrap: wrap; }
.cb-calc-tab { padding: 8px 16px; border: 1px solid var(--cb-line); border-radius: 9999px; font-size: 12px; font-weight: 700; background: var(--cb-bg); color: var(--cb-ink3); cursor: pointer; }
.cb-calc-tab.cb-active { background: var(--cb-navy); color: #fff; border-color: var(--cb-navy); }
.cb-calc-input-wrap { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.cb-calc-input { flex: 1; padding: 12px 16px; border: 1px solid var(--cb-line); border-radius: 12px; font-size: 16px; }
.cb-calc-input:focus { outline: none; border-color: var(--cb-gold); }
.cb-calc-input-unit { font-size: 14px; color: var(--cb-ink3); font-weight: 700; }
.cb-calc-helper { font-size: 12px; color: var(--cb-ink4); margin-bottom: 16px; }
.cb-gauge-wrap { margin: 16px 0; }
.cb-gauge-label { display: flex; justify-content: space-between; font-size: 11px; color: var(--cb-ink4); margin-bottom: 6px; }
.cb-gauge-bar { height: 12px; background: var(--cb-bg2); border-radius: 6px; position: relative; overflow: hidden; }
.cb-gauge-fill { height: 100%; border-radius: 6px; transition: width .4s ease; }
.cb-gauge-fill.cb-under { background: linear-gradient(90deg, var(--cb-green), #10b981); }
.cb-gauge-fill.cb-over { background: linear-gradient(90deg, #ef4444, #f87171); }
.cb-gauge-marker { position: absolute; top: -4px; width: 2px; height: 20px; background: var(--cb-navy); }
.cb-gauge-marker-label { position: absolute; top: -18px; left: 50%; transform: translateX(-50%); font-size: 9px; white-space: nowrap; color: var(--cb-ink3); }
.cb-calc-verdict { font-size: 14px; font-weight: 700; text-align: center; padding: 12px; border-radius: 12px; margin-top: 12px; }
.cb-calc-verdict.cb-under { color: var(--cb-green); background: rgba(5,150,105,.06); }
.cb-calc-verdict.cb-over { color: #ef4444; background: rgba(239,68,68,.06); }

/* 수령액 시뮬레이터 */
.cb-sim { background: var(--cb-card); border-radius: var(--cb-r); padding: 24px; margin: 24px 0; box-shadow: var(--cb-shadow); }
.cb-sim-title { color: var(--cb-navy); margin: 0 0 4px; border: none; padding: 0; }
.cb-sim-sub { font-size: 13px; color: var(--cb-ink3); margin-bottom: 16px; }
.cb-sim-slider-wrap { margin-bottom: 20px; }
.cb-sim-slider-label { display: flex; justify-content: space-between; margin-bottom: 8px; font-size: 14px; }
.cb-sim-current { font-weight: 900; color: var(--cb-gold); font-size: 20px; }
.cb-sim-unit { font-size: 14px; color: var(--cb-ink3); }
.cb-sim-slider { width: 100%; appearance: none; height: 8px; background: var(--cb-bg2); border-radius: 4px; outline: none; }
.cb-sim-slider::-webkit-slider-thumb { appearance: none; width: 24px; height: 24px; background: var(--cb-gold); border-radius: 50%; cursor: pointer; box-shadow: 0 2px 8px rgba(184,150,62,.3); }
.cb-sim-results { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cb-sim-r { padding: 16px; border-radius: 12px; text-align: center; }
.cb-sim-r.cb-monthly { background: var(--cb-bg); }
.cb-sim-r.cb-total { background: linear-gradient(135deg, var(--cb-navy-d), var(--cb-navy)); color: #fff; }
.cb-sr-label { font-size: 11px; color: var(--cb-ink4); margin-bottom: 4px; }
.cb-sim-r.cb-total .cb-sr-label { color: rgba(255,255,255,.6); }
.cb-sr-value { font-size: 28px; font-weight: 900; font-family: 'Noto Serif KR', serif; color: var(--cb-navy); }
.cb-sim-r.cb-total .cb-sr-value { color: var(--cb-gold); }
.cb-sr-unit { font-size: 14px; font-weight: 400; }
.cb-sim-note { font-size: 12px; color: var(--cb-ink4); text-align: center; margin-top: 12px; }

/* D-Day 카운트다운 */
.cb-dday { background: linear-gradient(135deg, var(--cb-navy-d), var(--cb-navy)); border-radius: var(--cb-r); padding: 28px 24px; margin: 24px 0; text-align: center; color: #fff; }
.cb-dday-title { color: rgba(255,255,255,.7); font-size: 13px; margin: 0 0 16px; border: none; padding: 0; }
.cb-dday-grid { display: flex; justify-content: center; align-items: center; gap: 8px; margin-bottom: 12px; }
.cb-dday-unit { min-width: 52px; }
.cb-dday-num { font-size: 36px; font-weight: 900; font-family: 'Noto Serif KR', serif; color: var(--cb-gold); }
.cb-dday-lbl { font-size: 10px; color: rgba(255,255,255,.5); margin-top: 2px; }
.cb-dday-sep { font-size: 24px; color: rgba(255,255,255,.3); font-weight: 300; }
.cb-dday-deadline { font-size: 12px; color: rgba(255,255,255,.5); margin-bottom: 16px; }
.cb-dday-cta { display: inline-block; padding: 12px 28px; background: var(--cb-gold); color: var(--cb-navy-d); font-weight: 700; font-size: 14px; border-radius: 9999px; text-decoration: none; }

/* ═══ Mobile ═══ */
@media (max-width: 600px) {
  .cb-hero { padding: 36px 16px 32px; }
  .cb-hero h1, .cb-hero-title { font-size: 22px; }
  .cb-summary { margin: -16px 16px 28px; padding: 18px 20px; }
  .cb-post article { padding: 24px 16px 0; }
  .cb-post h2 { font-size: 20px; margin-top: 36px; }
  .cb-box, .cb-info-box { padding: 18px 20px; }
  .cb-cta { margin: 24px 16px 0; padding: 24px 16px; }
  .cb-cta-btn { margin: 24px 16px; padding: 18px 24px; font-size: 16px; }
  .cb-footer { margin: 24px 16px 0; }
  .cb-subscribe { margin: 20px 16px; padding: 24px 20px; }
  .cb-subscribe-form { flex-direction: column; }
  .cb-table th, .cb-table td, .cb-table-wrap th, .cb-table-wrap td { padding: 10px 12px; font-size: 13px; }
  .cb-sim-results { grid-template-columns: 1fr; }
  .cb-dday-num { font-size: 28px; }
}
