/* ============================================================
   paper theme - warm magazine
   © 2026 Idearun Inc.
   ============================================================ */

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

:root {
  /* 베이지 종이 팔레트 */
  --pp-bg:           #faf7f2;
  --pp-bg-card:      #fffdf8;
  --pp-bg-soft:      #f3ede2;
  --pp-bg-tint:      #ede5d3;

  --pp-text:         #2a1f17;
  --pp-text-soft:    #6b5d4f;
  --pp-text-faded:   #a39685;

  --pp-line:         #e8dfd1;
  --pp-line-soft:    #f0ead9;
  --pp-line-strong:  #d6c9b3;

  /* 액센트 */
  --pp-accent:       #c5483d;   /* 토마토 빨강 */
  --pp-accent-soft:  #e07c70;
  --pp-accent-bg:    #fbe9e6;

  /* 폰트 */
  --pp-font-serif:   'Playfair Display', 'Noto Serif KR', 'Noto Serif JP', Georgia, serif;
  --pp-font-sans:    'Noto Sans KR', 'Pretendard', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --pp-content-font-size:   16px;
  --pp-content-line-height: 1.85;

  /* 레이아웃 */
  --pp-wrap:        1180px;
  --pp-sidebar-w:   260px;
  --pp-gap:         60px;

  /* widget(pl-w-*) 호환 변수 — 위젯 출력이 white 와 동일한 변수명을 참고할 수 있도록 */
  --wt-text:       var(--pp-text);
  --wt-text-soft:  var(--pp-text-soft);
  --wt-text-faded: var(--pp-text-faded);
  --wt-line:       var(--pp-line);
  --wt-line-soft:  var(--pp-line-soft);
  --wt-bg:         var(--pp-bg);
  --wt-bg-soft:    var(--pp-bg-soft);
}

body {
  margin: 0;
  font-family: var(--pp-font-sans);
  font-weight: 400;
  font-size: 15px;
  line-height: 1.75;
  color: var(--pp-text);
  background: var(--pp-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;

  /* 종이 결 살짝 - 아주 미세한 가로 줄 */
  background-image:
    repeating-linear-gradient(
      0deg,
      transparent 0px,
      transparent 31px,
      rgba(180, 150, 100, 0.025) 31px,
      rgba(180, 150, 100, 0.025) 32px
    );
}

a { color: inherit; text-decoration: none; transition: color .15s; }
a:hover { color: var(--pp-accent); }

img { max-width: 100%; height: auto; display: block; }

img.wp-smiley, img.emoji {
  display: inline !important;
  border: none !important;
  box-shadow: none !important;
  height: 1em !important;
  width: 1em !important;
  margin: 0 0.07em !important;
  vertical-align: -0.1em !important;
  background: none !important;
  padding: 0 !important;
}

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

/* ─────────────────────────────────────────
   Header
   ───────────────────────────────────────── */
.pp-header {
  background: var(--pp-bg);
  border-bottom: 1px solid var(--pp-line);
}
.pp-header-top {
  padding: 28px 0 22px;
  border-bottom: 1px dashed var(--pp-line);
}
.pp-header-inner {
  max-width: var(--pp-wrap);
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  position: relative;        /* search 의 absolute 기준 */
  min-height: 38px;          /* search-toggle 의 height 보장 */
}

.pp-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--pp-text);
  min-width: 0;              /* flex 안에서 자식 ellipsis 동작 위함 */
  /* 검색이 열렸을 때 brand 가 가려지는 우측 영역에 약간의 패딩 */
  padding-right: 48px;
}
.pp-brand:hover { color: var(--pp-text); }
.pp-brand-mark {
  font-size: 1.6rem;
  color: var(--pp-accent);
  transform: rotate(-12deg);
  display: inline-block;
  flex-shrink: 0;
}
.pp-brand-text {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
  min-width: 0;
}
.pp-brand-title {
  font-family: var(--pp-font-serif);
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: -.01em;
  color: var(--pp-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pp-brand-tagline {
  font-size: .78rem;
  color: var(--pp-text-faded);
  font-style: italic;
  margin-top: 2px;
  max-width: 360px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ─── Search — brand 자리에 영향 주지 않도록 absolute 레이어 ─── */
.pp-search {
  position: absolute;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  z-index: 5;
}
.pp-search-input {
  width: 0;
  padding: 0;
  border: 1px solid transparent;
  background: transparent;
  font-family: inherit;
  font-size: .92rem;
  color: var(--pp-text);
  border-radius: 999px;
  transition: width .25s ease, padding .25s ease, background .25s ease, border-color .25s ease, margin .25s ease, opacity .2s ease, box-shadow .15s ease;
  outline: none;
  opacity: 0;
  pointer-events: none;
  order: 1;
  height: 38px;             /* toggle 과 정렬 */
}
.pp-search.is-open .pp-search-input {
  width: 240px;
  padding: 7px 16px;
  background: var(--pp-bg-card);
  border-color: var(--pp-line-strong);
  margin-right: 6px;
  opacity: 1;
  pointer-events: auto;
  /* 약간의 그림자로 brand 위에 떠있는 레이어 느낌 */
  box-shadow: 0 2px 12px rgba(42, 31, 23, .08);
}
.pp-search.is-open .pp-search-input:focus {
  border-color: var(--pp-accent);
  box-shadow: 0 2px 12px rgba(42, 31, 23, .08), 0 0 0 3px rgba(197, 72, 61, .12);
}
.pp-search-toggle {
  order: 2;
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--pp-text-soft);
  border-radius: 50%;
  background: var(--pp-bg);
  border: 1px solid var(--pp-line);
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
  flex-shrink: 0;
}
.pp-search-toggle:hover {
  background: var(--pp-bg-soft);
  color: var(--pp-text);
}
.pp-search.is-open .pp-search-toggle {
  background: var(--pp-accent);
  color: #fff;
  border-color: var(--pp-accent);
}
.pp-search.is-open .pp-search-toggle:hover {
  background: #a83a31;
}

/* 검색이 열리면 brand 살짝 페이드 (입력창 가독성) */
.pp-header-inner:has(.pp-search.is-open) .pp-brand {
  opacity: .45;
  pointer-events: none;
  transition: opacity .2s ease;
}

/* 모바일 — 검색 입력창이 좁은 화면에서도 우측에서 좌측으로 펼쳐지되 brand 를 침범해도 OK (레이어니까) */
@media (max-width: 560px) {
  .pp-header-inner { padding: 0 16px; }
  .pp-search { right: 16px; }
  .pp-search.is-open .pp-search-input {
    width: calc(100vw - 90px);    /* 화면폭 - (좌측 16px + 우측 16px + toggle 38px + gap 6px + 약간 여유) */
    max-width: 280px;
  }
  .pp-brand { padding-right: 44px; }
  .pp-brand-title { font-size: 1.3rem; }
  .pp-brand-tagline { display: none; }  /* 모바일에서는 태그라인 숨김 */
}

/* Nav */
.pp-nav {
  background: var(--pp-bg);
}
.pp-nav-inner {
  max-width: var(--pp-wrap);
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  justify-content: center;
  gap: 2px;
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--pp-line-strong) transparent;
}
.pp-nav-inner::-webkit-scrollbar { height: 4px; }
.pp-nav-inner::-webkit-scrollbar-thumb { background: var(--pp-line-strong); border-radius: 2px; }
.pp-nav-inner::-webkit-scrollbar-track { background: transparent; }

.pp-nav-inner a {
  display: inline-block;
  padding: 14px 18px;
  font-size: .9rem;
  font-weight: 500;
  color: var(--pp-text-soft);
  position: relative;
  transition: color .15s;
  flex-shrink: 0;
  white-space: nowrap;
  letter-spacing: .02em;
}
.pp-nav-inner a:hover { color: var(--pp-accent); }
.pp-nav-inner a.is-active {
  color: var(--pp-accent);
  font-weight: 700;
}
.pp-nav-inner a.is-active::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 18px;
  right: 18px;
  height: 3px;
  background: var(--pp-accent);
}

/* ─────────────────────────────────────────
   Main / Layout
   ───────────────────────────────────────── */
.pp-main {
  padding: 48px 0 80px;
  min-height: 60vh;
}

.pp-layout {
  max-width: var(--pp-wrap);
  margin: 0 auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: var(--pp-sidebar-w) minmax(0, 1fr);
  gap: var(--pp-gap);
  align-items: start;
}

.pp-content, .pp-content-col { min-width: 0; }
.pp-sidebar { min-width: 0; }

/* 1단 모드 */
@media (max-width: 900px) {
  .pp-layout {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  /* 모바일에서 사이드바를 아래로 */
  .pp-sidebar { order: 2; }
  .pp-content, .pp-content-col { order: 1; }
}

/* ─────────────────────────────────────────
   Section title
   ───────────────────────────────────────── */
.pp-section-title {
  font-family: var(--pp-font-serif);
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0 0 24px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--pp-text);
  display: inline-block;
  letter-spacing: -.01em;
}

/* ─────────────────────────────────────────
   Hero magazine grid (home)
   ───────────────────────────────────────── */
.pp-hero { margin-bottom: 56px; }

.pp-hero-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 24px;
}

.pp-hero-big-link {
  display: block;
  color: var(--pp-text);
}
.pp-hero-big-link:hover { color: var(--pp-text); }
.pp-hero-big-thumb {
  display: block;
  aspect-ratio: 4 / 3;
  background-size: cover;
  background-position: center;
  background-color: var(--pp-bg-soft);
  border-radius: 4px;
  margin-bottom: 16px;
}
.pp-hero-big-body { padding: 0; }
.pp-hero-big-title {
  font-family: var(--pp-font-serif);
  font-size: 1.85rem;
  font-weight: 700;
  line-height: 1.25;
  margin: 12px 0 10px;
  letter-spacing: -.015em;
  color: var(--pp-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pp-hero-big-link:hover .pp-hero-big-title { color: var(--pp-accent); }
.pp-hero-big-excerpt {
  font-size: .98rem;
  color: var(--pp-text-soft);
  line-height: 1.65;
  margin: 0 0 12px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pp-hero-big-meta {
  font-size: .8rem;
  color: var(--pp-text-faded);
}

.pp-hero-side {
  display: grid;
  grid-template-rows: repeat(4, 1fr);
  gap: 14px;
}
.pp-hero-small-link {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 12px;
  align-items: stretch;
  color: var(--pp-text);
}
.pp-hero-small-link:hover { color: var(--pp-text); }
.pp-hero-small-thumb {
  display: block;
  width: 88px;
  height: 88px;
  background-size: cover;
  background-position: center;
  background-color: var(--pp-bg-soft);
  border-radius: 4px;
}
.pp-hero-small-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  min-width: 0;
}
.pp-hero-small-title {
  font-family: var(--pp-font-serif);
  font-size: .96rem;
  font-weight: 500;
  line-height: 1.32;
  margin: 2px 0 2px;
  color: var(--pp-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pp-hero-small-link:hover .pp-hero-small-title { color: var(--pp-accent); }
.pp-hero-small-meta { font-size: .75rem; color: var(--pp-text-faded); }

@media (max-width: 720px) {
  .pp-hero-grid { grid-template-columns: 1fr; }
  .pp-hero-big-title { font-size: 1.5rem; }
}

/* ─────────────────────────────────────────
   Cat pill
   ───────────────────────────────────────── */
.pp-cat-pill {
  display: inline-block;
  padding: 4px 11px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #fff;
  background: var(--pp-accent);
  border-radius: 2px;
  line-height: 1.3;
  vertical-align: middle;
  font-family: var(--pp-font-sans);
}
a.pp-cat-pill:hover { color: #fff; background: #a83a31; }
.pp-cat-pill-sm {
  padding: 2px 8px;
  font-size: .65rem;
  letter-spacing: .05em;
}
.pp-cat-pill-overlay {
  position: absolute;
  top: 12px;
  left: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,.12);
}

/* ─────────────────────────────────────────
   Archive head
   ───────────────────────────────────────── */
.pp-archive-head {
  margin: 0 0 36px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--pp-line);
}
.pp-archive-eyebrow {
  display: inline-block;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--pp-accent);
  margin-bottom: 8px;
}
.pp-archive-title {
  font-family: var(--pp-font-serif);
  font-size: 2rem;
  font-weight: 700;
  margin: 0;
  line-height: 1.2;
  color: var(--pp-text);
  display: flex;
  align-items: baseline;
  gap: 14px;
  flex-wrap: wrap;
  letter-spacing: -.01em;
}
.pp-archive-count {
  font-family: var(--pp-font-sans);
  font-size: 1rem;
  color: var(--pp-text-faded);
  font-weight: 400;
}
.pp-archive-desc {
  margin: 10px 0 0;
  color: var(--pp-text-soft);
  font-size: .95rem;
  font-style: italic;
}

/* ─────────────────────────────────────────
   Card grid (archive)
   ───────────────────────────────────────── */
.pp-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px 24px;
}
.pp-card {
  background: var(--pp-bg-card);
  border: 1px solid var(--pp-line);
  border-radius: 4px;
  overflow: hidden;
  transition: border-color .2s, transform .2s;
}
.pp-card:hover {
  border-color: var(--pp-line-strong);
  transform: translateY(-2px);
}
.pp-card-link {
  display: flex;
  flex-direction: column;
  color: var(--pp-text);
  height: 100%;
}
.pp-card-link:hover { color: var(--pp-text); }
.pp-card-thumb {
  position: relative;
  display: block;
  aspect-ratio: 4 / 3;
  background-size: cover;
  background-position: center;
  background-color: var(--pp-bg-soft);
}
.pp-card-body {
  padding: 18px 18px 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.pp-card-title {
  font-family: var(--pp-font-serif);
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.3;
  margin: 0 0 8px;
  color: var(--pp-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  letter-spacing: -.005em;
}
.pp-card-link:hover .pp-card-title { color: var(--pp-accent); }
.pp-card-excerpt {
  font-size: .88rem;
  color: var(--pp-text-soft);
  line-height: 1.6;
  margin: 0 0 12px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1;
}
.pp-card-meta {
  display: flex;
  gap: 8px;
  font-size: .76rem;
  color: var(--pp-text-faded);
  align-items: center;
}
.pp-card-meta-sep { opacity: .6; }

/* placeholder thumb */
.pp-thumb-placeholder {
  background: linear-gradient(135deg, var(--pp-bg-soft), var(--pp-bg-tint));
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.pp-thumb-letter {
  font-family: var(--pp-font-serif);
  font-size: 3rem;
  font-weight: 900;
  color: rgba(42, 31, 23, .15);
  font-style: italic;
}

@media (max-width: 900px) {
  .pp-card-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .pp-card-grid { grid-template-columns: 1fr; gap: 22px; }
}

/* ─────────────────────────────────────────
   Single (글 상세)
   ───────────────────────────────────────── */
.pp-single {
  background: var(--pp-bg-card);
  border: 1px solid var(--pp-line);
  border-radius: 4px;
  padding: 48px 56px 44px;
  margin-bottom: 32px;
}
@media (max-width: 720px) {
  .pp-single { padding: 28px 22px 28px; }
}

/* 기본 table 형태 */
.pp-single table { width: 100%; max-width: 800px; border-collapse: collapse; }
.pp-single table strong { font-weight: 500; }

.pp-single-header {
  margin: 0 0 28px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--pp-line-soft);
}
.pp-single-header .pp-cat-pill {
  margin-bottom: 16px;
}
.pp-single-title {
  font-family: var(--pp-font-serif);
  font-size: 2.3rem;
  font-weight: 700;
  line-height: 1.2;
  margin: 0 0 16px;
  letter-spacing: -.015em;
  color: var(--pp-text);
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}
@media (max-width: 720px) {
  .pp-single-title { font-size: 1.7rem; }
}
.pp-single-meta {
  font-size: .85rem;
  color: var(--pp-text-faded);
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.pp-single-meta-sep { opacity: .6; }
.pp-single-author { color: var(--pp-text-soft); font-weight: 500; }

/* edit icon */
.pl-edit-post-icon {
  display: inline-flex;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: var(--pp-text-soft);
  border: 1px solid var(--pp-line);
  background: var(--pp-bg);
  transition: background .15s, color .15s;
  vertical-align: middle;
}
.pl-edit-post-icon:hover {
  color: var(--pp-accent);
  background: var(--pp-accent-bg);
  border-color: var(--pp-accent);
}

/* Featured image */
.pp-single-featured {
  margin: 0 0 32px;
}
.pp-single-featured img {
  width: 100%;
  border-radius: 4px;
  border: 1px solid var(--pp-line);
}

/* Private notice */
.pp-private-notice {
  background: var(--pp-accent-bg);
  border-left: 3px solid var(--pp-accent);
  color: #7a2b22;
  padding: 12px 18px;
  font-size: .92rem;
  margin-bottom: 24px;
  border-radius: 2px;
}

/* Prose / 본문 */
.pp-prose, .pl-prose {
  font-family: var(--pp-font-sans);
  font-size: var(--pp-content-font-size);
  line-height: var(--pp-content-line-height);
  color: var(--pp-text);
}
.pp-prose p { margin: 0 0 1.3em; }
.pp-prose a, .pl-prose a {
  color: var(--pp-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.pp-prose a:hover, .pl-prose a:hover {
  text-decoration-thickness: 2px;
  color: #a83a31;
}
.pp-prose h1, .pp-prose h2, .pp-prose h3, .pp-prose h4 {
  font-family: var(--pp-font-serif);
  letter-spacing: -.01em;
  color: var(--pp-text);
  line-height: 1.25;
}
.pp-prose h2 { font-size: 1.55rem; margin: 1.8em 0 .6em; font-weight: 700; }
.pp-prose h3 { font-size: 1.25rem; margin: 1.5em 0 .5em; font-weight: 700; }
.pp-prose h4 { font-size: 1.08rem; margin: 1.3em 0 .4em; font-weight: 700; }
.pp-prose blockquote {
  border-left: 3px solid var(--pp-accent);
  background: var(--pp-bg-soft);
  margin: 1.5em 0;
  padding: 14px 22px;
  font-style: italic;
  color: var(--pp-text-soft);
  font-family: var(--pp-font-serif);
  font-size: 1.05rem;
  border-radius: 0 4px 4px 0;
}
.pp-prose code {
  background: var(--pp-bg-soft);
  padding: 2px 6px;
  border-radius: 3px;
  font-size: .9em;
  color: #7a2b22;
}
.pp-prose pre {
  background: #2a2520;
  color: #f5efe5;
  padding: 18px 22px;
  border-radius: 4px;
  overflow-x: auto;
  font-size: .88rem;
  line-height: 1.55;
}
.pp-prose pre code {
  background: transparent;
  color: inherit;
  padding: 0;
}
.pp-prose img {
  border-radius: 4px;
  margin: 1.2em 0;
  border: 1px solid var(--pp-line);
}
.pp-prose hr {
  border: 0;
  text-align: center;
  margin: 2em 0;
}
.pp-prose hr::before {
  content: '◆ ◆ ◆';
  color: var(--pp-line-strong);
  letter-spacing: 1em;
  font-size: .7rem;
}

/* Single tags */
.pp-single-tags {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 36px 0 0;
  padding-top: 24px;
  border-top: 1px solid var(--pp-line-soft);
}
.pp-single-tags-label {
  font-size: .8rem;
  font-weight: 700;
  color: var(--pp-text-faded);
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-right: 4px;
}
.pp-tag {
  display: inline-block;
  padding: 4px 12px;
  font-size: .8rem;
  color: var(--pp-text-soft);
  background: var(--pp-bg-soft);
  border: 1px solid var(--pp-line);
  border-radius: 999px;
  transition: background .15s, color .15s, border-color .15s;
}
.pp-tag:hover {
  color: var(--pp-accent);
  background: var(--pp-accent-bg);
  border-color: var(--pp-accent-soft);
}

/* ─────────────────────────────────────────
   Sidebar 위젯 컨테이너 공통
   ───────────────────────────────────────── */
.pp-sidebar .pl-w {
  background: var(--pp-bg-card);
  border: 1px solid var(--pp-line);
  border-radius: 4px;
  padding: 20px 18px;
  margin-bottom: 22px;
}
.pp-sidebar .pl-w-title {
  font-family: var(--pp-font-serif);
  font-size: 1rem;
  font-weight: 700;
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--pp-text);
  color: var(--pp-text);
  letter-spacing: -.005em;
  display: inline-block;
}
.pp-sidebar .pl-w-title a,
.pp-sidebar .pl-w-title-link {
  color: inherit;
  text-decoration: none;
}
.pp-sidebar .pl-w-title a:hover,
.pp-sidebar .pl-w-title-link:hover {
  color: var(--pp-accent);
}

/* 사이드바 카테고리 */
.pp-sidebar .pl-w-cat-list { list-style: none; margin: 0; padding: 0; }
.pp-sidebar .pl-w-cat-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 0;
  border-bottom: 1px dashed var(--pp-line-soft);
  font-size: .88rem;
}
.pp-sidebar .pl-w-cat-item:last-child { border-bottom: 0; }
.pp-sidebar .pl-w-cat-item a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--pp-text-soft);
  flex: 1;
  min-width: 0;
}
.pp-sidebar .pl-w-cat-item a:hover { color: var(--pp-accent); }
.pp-sidebar .pl-w-cat-prefix { color: var(--pp-text-faded); margin-right: 2px; }
.pp-sidebar .pl-w-cat-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pp-sidebar .pl-w-cat-new {
  font-size: .58rem;
  background: var(--pp-accent);
  color: #fff;
  padding: 0 5px;
  border-radius: 2px;
  font-weight: 700;
  letter-spacing: .03em;
  margin-left: 4px;
}
.pp-sidebar .pl-w-cat-count {
  font-size: .75rem;
  color: var(--pp-text-faded);
  font-variant-numeric: tabular-nums;
}
.pp-sidebar .pl-depth-1 a { padding-left: 8px; }
.pp-sidebar .pl-depth-2 a { padding-left: 16px; }

/* 사이드바 list 위젯 (recent/popular - layout=list) */
.pp-sidebar .pl-w-recent-list { list-style: none; margin: 0; padding: 0; }
.pp-sidebar .pl-w-recent-item {
  padding: 9px 0;
  border-bottom: 1px dashed var(--pp-line-soft);
}
.pp-sidebar .pl-w-recent-item:last-child { border-bottom: 0; }
.pp-sidebar .pl-w-recent-link { color: var(--pp-text-soft); }
.pp-sidebar .pl-w-recent-link:hover { color: var(--pp-accent); }
.pp-sidebar .pl-w-recent-title {
  display: block;
  font-size: .88rem;
  line-height: 1.4;
  margin-bottom: 3px;
  color: var(--pp-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pp-sidebar .pl-w-recent-link:hover .pl-w-recent-title { color: var(--pp-accent); }
.pp-sidebar .pl-w-recent-meta {
  font-size: .72rem;
  color: var(--pp-text-faded);
}

/* 사이드바 large 위젯 (이미지 + 텍스트) */
.pp-sidebar .pl-w-posts-large .pl-w-posts-large-item {
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px dashed var(--pp-line-soft);
  color: var(--pp-text-soft);
}
.pp-sidebar .pl-w-posts-large .pl-w-posts-large-item:last-child { border-bottom: 0; }
.pp-sidebar .pl-w-posts-large-thumb {
  width: 60px;
  height: 60px;
  background-size: cover;
  background-position: center;
  border-radius: 3px;
  background-color: var(--pp-bg-soft);
}
.pp-sidebar .pl-w-posts-large-body { min-width: 0; }
.pp-sidebar .pl-w-posts-large-title {
  font-size: .85rem;
  font-weight: 500;
  line-height: 1.35;
  margin: 0 0 4px;
  color: var(--pp-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pp-sidebar .pl-w-posts-large-item:hover .pl-w-posts-large-title { color: var(--pp-accent); }
.pp-sidebar .pl-w-posts-large-meta { font-size: .7rem; color: var(--pp-text-faded); }

/* 최근 댓글 */
.pp-sidebar .pl-w-rc-list { list-style: none; margin: 0; padding: 0; }
.pp-sidebar .pl-w-rc-item {
  padding: 9px 0;
  border-bottom: 1px dashed var(--pp-line-soft);
  font-size: .82rem;
}
.pp-sidebar .pl-w-rc-item:last-child { border-bottom: 0; }
.pp-sidebar .pl-w-rc-link {
  display: block;
  color: var(--pp-text-soft);
  line-height: 1.45;
}
.pp-sidebar .pl-w-rc-link:hover { color: var(--pp-accent); }
.pp-sidebar .pl-w-rc-author {
  font-weight: 700;
  color: var(--pp-text);
  margin-right: 4px;
}
.pp-sidebar .pl-w-rc-snippet { color: var(--pp-text-soft); }
.pp-sidebar .pl-w-rc-on {
  display: block;
  margin-top: 3px;
  font-size: .73rem;
  color: var(--pp-text-faded);
  font-style: italic;
}

/* 태그 클라우드 — 컨테이너(.pl-w-tag-cloud)는 일반 위젯 그대로,
   안쪽 .pl-w-tag-list 만 flex 로 (이래야 .pl-w-title 이 정상 위치) */
.pp-sidebar .pl-w-tag-cloud .pl-w-tag-list,
.pp-sidebar .pl-w-tagcloud {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 6px;
  line-height: 1.4;
  align-items: center;
}
.pp-sidebar .pl-w-tagcloud a,
.pp-sidebar .pl-w-tag-cloud a.pl-w-tag,
.pp-sidebar .pl-w-tagcloud .pl-w-tag,
.pp-sidebar .pl-w-tag-cloud .pl-w-tag {
  display: inline-block;
  padding: 3px 10px;
  font-size: .78rem;
  background: var(--pp-bg-soft);
  border: 1px solid var(--pp-line);
  border-radius: 999px;
  color: var(--pp-text-soft);
  transition: all .15s;
  line-height: 1.5;
}
.pp-sidebar .pl-w-tagcloud a:hover,
.pp-sidebar .pl-w-tag-cloud a.pl-w-tag:hover,
.pp-sidebar .pl-w-tagcloud .pl-w-tag:hover,
.pp-sidebar .pl-w-tag-cloud .pl-w-tag:hover {
  color: #fff;
  background: var(--pp-accent);
  border-color: var(--pp-accent);
}
/* tag-cloud 위젯 안의 title 은 일반 위젯 타이틀과 동일하게 보이도록
   (위 ".pl-w-tag-cloud { display: flex }" 가 더 이상 적용 안 되므로 자연스러움) */

/* 방문자 위젯 - 다른 위젯과 동일한 카드 스타일 (★ FIXES 섹션에서 최종 정의됨) */
.pp-sidebar .pl-w-visitor-grid {
  display: flex;
  gap: 18px;
  justify-content: space-between;
  flex-wrap: wrap;
}
.pp-sidebar .pl-w-visitor-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.pp-sidebar .pl-w-visitor-label {
  font-size: .68rem;
  color: var(--pp-text-faded);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.pp-sidebar .pl-w-visitor-value {
  font-family: var(--pp-font-serif);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--pp-text);
}

/* 날짜 아카이브 (보관함)
   마크업: <li><a><span class="pl-w-date-label">2026년 5월</span><span class="pl-w-date-count">12</span></a></li>
   → 카운트가 우측으로 가도록 <a> 자체를 flex space-between 으로. */
.pp-sidebar .pl-w-date-archive ul,
.pp-sidebar .pl-w-archive ul,
.pp-sidebar .pl-w-date-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.pp-sidebar .pl-w-date-archive li,
.pp-sidebar .pl-w-date-item,
.pp-sidebar .pl-w-archive li {
  padding: 0;
  border-bottom: 1px dashed var(--pp-line-soft);
  font-size: .85rem;
}
.pp-sidebar .pl-w-date-archive li:last-child,
.pp-sidebar .pl-w-date-item:last-child,
.pp-sidebar .pl-w-archive li:last-child { border-bottom: 0; }

.pp-sidebar .pl-w-date-archive .pl-w-date-link,
.pp-sidebar .pl-w-date-archive li a,
.pp-sidebar .pl-w-archive li a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 7px 0;
  color: var(--pp-text-soft);
}
.pp-sidebar .pl-w-date-archive .pl-w-date-link:hover,
.pp-sidebar .pl-w-date-archive li a:hover,
.pp-sidebar .pl-w-archive li a:hover { color: var(--pp-accent); }

.pp-sidebar .pl-w-date-label {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pp-sidebar .pl-w-date-count {
  flex-shrink: 0;
  font-size: .75rem;
  color: var(--pp-text-faded);
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
}

/* notice */
.pp-sidebar .pl-w-empty {
  font-size: .85rem;
  color: var(--pp-text-faded);
  font-style: italic;
  margin: 0;
}

/* ─────────────────────────────────────────
   본문 영역 위젯 (home.php / archive 의 widget_posts)
   ───────────────────────────────────────── */
.pp-content > .pl-w {
  margin-bottom: 56px;
}
.pp-content > .pl-w > .pl-w-title {
  font-family: var(--pp-font-serif);
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0 0 24px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--pp-text);
  display: inline-block;
  color: var(--pp-text);
  letter-spacing: -.01em;
}
.pp-content > .pl-w > .pl-w-title a {
  color: inherit;
}
.pp-content > .pl-w > .pl-w-title a:hover {
  color: var(--pp-accent);
}

/* gallery 레이아웃 */
.pp-content > .pl-w-posts-gallery .pl-w-posts-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px 24px;
}
.pp-content > .pl-w-posts-gallery .pl-w-posts-card {
  display: flex;
  flex-direction: column;
  color: var(--pp-text);
}
.pp-content > .pl-w-posts-gallery .pl-w-posts-card:hover { color: var(--pp-text); }
.pp-content > .pl-w-posts-gallery .pl-w-posts-thumb {
  display: block;
  aspect-ratio: 4 / 3;
  background-size: cover;
  background-position: center;
  background-color: var(--pp-bg-soft);
  border-radius: 4px;
  margin-bottom: 12px;
}
.pp-content > .pl-w-posts-gallery .pl-w-posts-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pp-content > .pl-w-posts-gallery .pl-w-posts-title {
  font-family: var(--pp-font-serif);
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.35;
  margin: 0;
  color: var(--pp-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pp-content > .pl-w-posts-gallery .pl-w-posts-card:hover .pl-w-posts-title { color: var(--pp-accent); }
.pp-content > .pl-w-posts-gallery .pl-w-posts-meta {
  font-size: .76rem;
  color: var(--pp-text-faded);
}

/* large 레이아웃 - 본문의 최근글 */
.pp-content > .pl-w-posts-large .pl-w-posts-large-item {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 24px;
  padding: 24px 0;
  border-bottom: 1px dashed var(--pp-line);
  color: var(--pp-text);
}
.pp-content > .pl-w-posts-large .pl-w-posts-large-item:hover { color: var(--pp-text); }
.pp-content > .pl-w-posts-large .pl-w-posts-large-item:first-of-type { padding-top: 0; }
.pp-content > .pl-w-posts-large .pl-w-posts-large-item:last-child { border-bottom: 0; }
.pp-content > .pl-w-posts-large .pl-w-posts-large-thumb {
  width: 200px;
  height: 140px;
  background-size: cover;
  background-position: center;
  border-radius: 4px;
  background-color: var(--pp-bg-soft);
}
.pp-content > .pl-w-posts-large .pl-w-posts-large-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}
.pp-content > .pl-w-posts-large .pl-w-posts-large-title {
  font-family: var(--pp-font-serif);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
  margin: 0 0 8px;
  color: var(--pp-text);
  letter-spacing: -.005em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pp-content > .pl-w-posts-large .pl-w-posts-large-item:hover .pl-w-posts-large-title { color: var(--pp-accent); }
.pp-content > .pl-w-posts-large .pl-w-posts-large-excerpt {
  font-size: .92rem;
  color: var(--pp-text-soft);
  line-height: 1.6;
  margin: 0 0 8px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pp-content > .pl-w-posts-large .pl-w-posts-large-meta {
  font-size: .78rem;
  color: var(--pp-text-faded);
}

@media (max-width: 720px) {
  .pp-content > .pl-w-posts-gallery .pl-w-posts-grid { grid-template-columns: repeat(2, 1fr); }
  .pp-content > .pl-w-posts-large .pl-w-posts-large-item {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .pp-content > .pl-w-posts-large .pl-w-posts-large-thumb {
    width: 100%;
    aspect-ratio: 16 / 10;
    height: auto;
  }
}
@media (max-width: 480px) {
  .pp-content > .pl-w-posts-gallery .pl-w-posts-grid { grid-template-columns: 1fr; }
}

/* 본문 list 레이아웃 (예: notice) */
.pp-content > .pl-w-posts-list .pl-w-recent-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.pp-content > .pl-w-posts-list .pl-w-recent-item {
  padding: 10px 0;
  border-bottom: 1px dashed var(--pp-line);
}
.pp-content > .pl-w-posts-list .pl-w-recent-link { color: var(--pp-text-soft); }
.pp-content > .pl-w-posts-list .pl-w-recent-link:hover { color: var(--pp-accent); }
.pp-content > .pl-w-posts-list .pl-w-recent-title {
  display: block;
  font-size: 1rem;
  color: var(--pp-text);
  font-family: var(--pp-font-serif);
  font-weight: 500;
}
.pp-content > .pl-w-posts-list .pl-w-recent-link:hover .pl-w-recent-title { color: var(--pp-accent); }
.pp-content > .pl-w-posts-list .pl-w-recent-meta { font-size: .76rem; color: var(--pp-text-faded); }

/* ─────────────────────────────────────────
   prev/next + 카테고리 다른 글 (single 안)
   ───────────────────────────────────────── */
.pl-cat-others {
  margin: 32px 0 24px;
  padding: 24px;
  background: var(--pp-bg-soft);
  border: 1px solid var(--pp-line);
  border-radius: 4px;
}
.pl-cat-others-title {
  font-family: var(--pp-font-serif);
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0 0 14px;
  color: var(--pp-text);
}
.pl-cat-others-title a { color: var(--pp-accent); }
.pl-cat-others-list { list-style: none; margin: 0; padding: 0; }
.pl-cat-others-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  padding: 7px 0;
  border-bottom: 1px dashed var(--pp-line);
  font-size: .9rem;
}
.pl-cat-others-list li:last-child { border-bottom: 0; }
.pl-cat-others-link {
  flex: 1;
  min-width: 0;
  color: var(--pp-text-soft);
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
}
.pl-cat-others-link:hover { color: var(--pp-accent); }
.pl-cat-others-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pl-cat-others-count { color: var(--pp-text-faded); font-size: .78rem; }
.pl-cat-others-date {
  flex-shrink: 0;
  font-size: .76rem;
  color: var(--pp-text-faded);
  font-variant-numeric: tabular-nums;
}

.pl-post-nav {
  margin: 36px 0;
}
.pl-post-nav-links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.pl-post-nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: var(--pp-bg-card);
  border: 1px solid var(--pp-line);
  border-radius: 4px;
  color: var(--pp-text-soft);
  transition: border-color .15s, background .15s;
  min-height: 76px;
}
.pl-post-nav-item:hover {
  border-color: var(--pp-accent);
  color: var(--pp-text);
}
.pl-post-nav-next { flex-direction: row-reverse; text-align: right; }
.pl-post-nav-thumb {
  flex-shrink: 0;
  width: 52px;
  height: 52px;
  background-size: cover;
  background-position: center;
  border-radius: 3px;
  background-color: var(--pp-bg-soft);
}
.pl-post-nav-body { min-width: 0; flex: 1; }
.pl-post-nav-dir {
  display: block;
  font-size: .7rem;
  color: var(--pp-accent);
  letter-spacing: .06em;
  text-transform: uppercase;
  font-weight: 700;
  margin-bottom: 4px;
}
.pl-post-nav-title {
  display: block;
  font-family: var(--pp-font-serif);
  font-size: .95rem;
  color: var(--pp-text);
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

@media (max-width: 600px) {
  .pl-post-nav-links { grid-template-columns: 1fr; }
  .pl-post-nav-next { flex-direction: row; text-align: left; }
}

/* ─────────────────────────────────────────
   Pagination
   ───────────────────────────────────────── */
.pl-pagination {
  display: flex;
  justify-content: center;
  gap: 4px;
  margin: 40px 0 0;
}
.pl-pagination a, .pl-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  font-size: .88rem;
  color: var(--pp-text-soft);
  border-radius: 3px;
  border: 1px solid var(--pp-line);
  background: var(--pp-bg-card);
  transition: border-color .12s, color .12s;
}
.pl-pagination a:hover {
  color: var(--pp-accent);
  border-color: var(--pp-accent);
}
.pl-pagination .is-current {
  background: var(--pp-accent);
  color: #fff;
  font-weight: 700;
  border-color: var(--pp-accent);
}

/* ─────────────────────────────────────────
   Tag index page
   ───────────────────────────────────────── */
.pp-tag-cloud-page {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  padding: 20px 0;
  line-height: 2;
}
.pp-tag-cloud-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--pp-text);
  padding: 6px 14px;
  border: 1px solid var(--pp-line);
  background: var(--pp-bg-card);
  border-radius: 999px;
  transition: all .15s;
}
.pp-tag-cloud-item:hover {
  color: #fff;
  background: var(--pp-accent);
  border-color: var(--pp-accent);
}
.pp-tag-cloud-count {
  font-size: .7em;
  color: var(--pp-text-faded);
  font-variant-numeric: tabular-nums;
}
.pp-tag-cloud-item:hover .pp-tag-cloud-count { color: rgba(255,255,255,.85); }

/* ─────────────────────────────────────────
   404
   ───────────────────────────────────────── */
.pp-404 {
  text-align: center;
  padding: 60px 20px 40px;
  background: var(--pp-bg-card);
  border: 1px solid var(--pp-line);
  border-radius: 4px;
  margin-bottom: 40px;
}
.pp-404-code {
  font-family: var(--pp-font-serif);
  font-size: 5rem;
  font-weight: 900;
  margin: 0 0 10px;
  color: var(--pp-accent);
  letter-spacing: -.02em;
  line-height: 1;
}
.pp-404-title {
  font-family: var(--pp-font-serif);
  font-size: 1.6rem;
  margin: 0 0 12px;
  color: var(--pp-text);
}
.pp-404-desc {
  color: var(--pp-text-soft);
  margin: 0 0 20px;
}
.pp-404-what {
  display: inline-block;
  background: var(--pp-bg-soft);
  color: var(--pp-accent);
  padding: 4px 10px;
  border-radius: 3px;
  font-size: .85rem;
  margin-bottom: 24px;
}
.pp-404-actions { margin-top: 8px; }
.pp-btn {
  display: inline-block;
  padding: 10px 24px;
  background: var(--pp-accent);
  color: #fff;
  border-radius: 999px;
  font-weight: 500;
  font-size: .9rem;
  transition: background .15s;
}
.pp-btn:hover {
  background: #a83a31;
  color: #fff;
}

.pp-empty {
  padding: 60px 20px;
  text-align: center;
  color: var(--pp-text-faded);
  background: var(--pp-bg-card);
  border: 1px dashed var(--pp-line-strong);
  border-radius: 4px;
  font-style: italic;
}

/* ─────────────────────────────────────────
   Static page (page.php)
   ───────────────────────────────────────── */
.pp-page-wrap {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 24px;
}
.pp-page {
  background: var(--pp-bg-card);
  border: 1px solid var(--pp-line);
  border-radius: 4px;
  padding: 48px 56px;
}
.pp-page-header {
  margin: 0 0 32px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--pp-text);
}
.pp-page-title {
  font-family: var(--pp-font-serif);
  font-size: 2.2rem;
  font-weight: 700;
  margin: 0;
  line-height: 1.2;
  color: var(--pp-text);
  letter-spacing: -.015em;
}
.pp-page-content { font-size: var(--pp-content-font-size); line-height: var(--pp-content-line-height); }
.pp-page-content p {
    margin: 0 0 0.5em 0;
}
.pp-page-content p:has(> br:only-child) {
    margin: 0 0 0.35em 0;
    line-height: 0.35;
    min-height: 0;
}
.pp-page-content div[contenteditable="false"]:has(> hr:only-child) {
    display: none;
}
.pp-page-footer {
    display: none;
  margin-top: 40px;
  padding-top: 18px;
  border-top: 1px dashed var(--pp-line);
}
.pp-page-meta {
  font-size: .82rem;
  color: var(--pp-text-faded);
}
@media (max-width: 600px) {
  .pp-page { padding: 28px 22px; }
  .pp-page-title { font-size: 1.6rem; }
}

/* ─────────────────────────────────────────
   Footer
   ───────────────────────────────────────── */
.pp-footer {
  background: var(--pp-bg);
  border-top: 1px solid var(--pp-line);
  padding: 36px 0 32px;
  margin-top: 40px;
}
.pp-footer-inner {
  max-width: var(--pp-wrap);
  margin: 0 auto;
  padding: 0 24px;
  text-align: center;
}
.pp-footer-pages {
  margin-bottom: 14px;
  font-size: .88rem;
}
.pp-footer-pages a {
  color: var(--pp-text-soft);
}
.pp-footer-pages a:hover { color: var(--pp-accent); }
.pp-footer-sep { color: var(--pp-text-faded); margin: 0 8px; }
.pp-footer-meta {
  font-size: .78rem;
  color: var(--pp-text-faded);
  font-style: italic;
  margin-bottom: 6px;
}
.pp-footer-copy {
  font-size: .8rem;
  color: var(--pp-text-faded);
  font-family: var(--pp-font-serif);
}

/* Top button */
.pp-top-btn {
  position: fixed;
  right: 22px;
  bottom: 22px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--pp-text);
  color: var(--pp-bg-card);
  border: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0.85;
  transition: opacity .15s, transform .15s, background .15s;
  z-index: 50;
  box-shadow: 0 2px 8px rgba(0,0,0,.12);
}
.pp-top-btn:hover {
  background: var(--pp-accent);
  opacity: 1;
  transform: translateY(-2px);
}


/* ─────────────────────────────────────────
   Comments (pl-comments) — 실제 마크업에 맞춤
   white 와 같은 마크업 + paper 색감

   주요 마크업 (single.php 출력):
     <section class="pl-comments">
       <h2 class="pl-comments-title">
       <ol class="pl-comment-list">
         <li class="pl-comment">
           <div class="pl-comment-head">
             <span class="pl-comment-author"> ... </span>
             <time class="pl-comment-date">
           </div>
           <div class="pl-comment-body">
           <div class="pl-comment-actions">
             <button class="pl-comment-reply-btn">
           <ol class="pl-comment-children"> ...
       <div class="pl-comment-loadmore-wrap">
         <button class="pl-comment-loadmore">
       <div id="respond" class="pl-comment-respond">
         <form class="pl-comment-form">
           <h3 class="pl-comment-form-title">
           <p class="pl-comment-form-notice">
           <div class="pl-form-row">      ← label + input/textarea 세로 스택
             <label> <textarea / input>
           <div class="pl-form-grid">     ← 3열 (이름/이메일/사이트)
             <div class="pl-form-row">...
           <label class="pl-form-check">  ← 체크박스 한 줄
           <div class="pl-form-check pl-comment-secret-row">
             ↑ "비공개 댓글" 체크박스 + 비번 입력 영역
           <button class="pl-submit-btn">
   ───────────────────────────────────────── */

.pl-comments {
  margin-top: 48px;
  padding-top: 32px;
  border-top: 2px solid var(--pp-text);
}
.pl-comments-title {
  font-family: var(--pp-font-serif);
  font-size: 1.45rem;
  font-weight: 700;
  margin: 0 0 24px;
  color: var(--pp-text);
  letter-spacing: -.01em;
}

/* 댓글 목록 */
.pl-comment-list {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
}
.pl-comment {
  padding: 18px 0;
  border-bottom: 1px dashed var(--pp-line);
  position: relative;
}
.pl-comment:last-child { border-bottom: 0; }
.pl-comment-child {
  border-bottom: 1px dashed var(--pp-line-soft);
}

/* 자식 댓글 들여쓰기 */
.pl-comment-children {
  list-style: none;
  margin: 14px 0 0 24px;
  padding: 0 0 0 16px;
  border-left: 2px solid var(--pp-line);
}
.pl-comment-children .pl-comment {
  padding: 14px 0;
}
.pl-comment-children .pl-comment:last-child {
  padding-bottom: 4px;
}

@media (max-width: 600px) {
  .pl-comment-children { margin-left: 12px; padding-left: 12px; }
}

/* 댓글 헤더 (작성자 + 날짜) */
.pl-comment-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 8px;
}
.pl-comment-author {
  font-weight: 700;
  color: var(--pp-text);
  font-size: .94rem;
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
}
.pl-comment-author a { color: inherit; }
.pl-comment-author a:hover { color: var(--pp-accent); }

.pl-comment-admin-badge {
  display: inline-block;
  font-family: var(--pp-font-sans);
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .04em;
  padding: 1px 7px;
  background: var(--pp-accent);
  color: #fff;
  border-radius: 2px;
  text-transform: uppercase;
  vertical-align: middle;
}
.pl-comment-secret-badge {
  font-size: .85em;
  vertical-align: 0;
  margin-left: 2px;
}
.pl-comment-date {
  font-size: .76rem;
  color: var(--pp-text-faded);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* 댓글 본문 */
.pl-comment-body {
  font-size: .92rem;
  color: var(--pp-text);
  line-height: 1.7;
  white-space: pre-wrap;
  word-wrap: break-word;
  overflow-wrap: break-word;
  margin: 0;
}
.pl-comment-body-secret {
  color: var(--pp-text-faded);
  font-style: italic;
  background: var(--pp-bg-soft);
  padding: 10px 14px;
  border-radius: 4px;
  border-left: 3px solid var(--pp-line-strong);
}

.pl-comment-secret-actions { margin-top: 8px; }

/* 댓글 액션 (답글 / 비공개 보기 버튼) */
.pl-comment-actions {
  margin-top: 8px;
  display: flex;
  gap: 8px;
}
.pl-comment-reply-btn,
.pl-comment-secret-view-btn {
  background: transparent;
  border: 1px solid var(--pp-line);
  color: var(--pp-text-soft);
  padding: 3px 12px;
  border-radius: 999px;
  font-size: .76rem;
  cursor: pointer;
  font-family: inherit;
  transition: all .15s;
  line-height: 1.5;
}
.pl-comment-reply-btn:hover,
.pl-comment-secret-view-btn:hover {
  color: var(--pp-accent);
  border-color: var(--pp-accent);
  background: var(--pp-accent-bg);
}

/* "더 보기" 버튼 */
.pl-comment-loadmore-wrap {
  text-align: center;
  margin: 18px 0 28px;
}
.pl-comment-loadmore {
  background: transparent;
  border: 1px solid var(--pp-line-strong);
  padding: 8px 22px;
  border-radius: 999px;
  font-size: .85rem;
  color: var(--pp-text-soft);
  cursor: pointer;
  font-family: inherit;
  transition: all .15s;
}
.pl-comment-loadmore:hover {
  color: var(--pp-accent);
  border-color: var(--pp-accent);
  background: var(--pp-accent-bg);
}
.pl-comment-loadmore-remain {
  color: var(--pp-text-faded);
  font-size: .78rem;
  margin-left: 4px;
}

/* ─── 댓글 폼 ─── */
.pl-comment-respond {
  margin-top: 36px;
  padding: 24px 26px;
  background: var(--pp-bg-soft);
  border: 1px solid var(--pp-line);
  border-radius: 4px;
}
@media (max-width: 600px) {
  .pl-comment-respond { padding: 18px 16px; }
}

.pl-comment-form-title {
  font-family: var(--pp-font-serif);
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0 0 14px;
  color: var(--pp-text);
}

.pl-comment-form-notice {
  font-size: .82rem;
  color: var(--pp-text-soft);
  margin: 0 0 14px;
  padding: 8px 12px;
  background: var(--pp-bg-card);
  border-left: 3px solid var(--pp-line-strong);
  border-radius: 0 3px 3px 0;
  line-height: 1.5;
}
.pl-comment-form-admin-notice {
  border-left-color: var(--pp-accent);
}
.pl-comment-form-admin-notice strong { color: var(--pp-text); }

.pl-req {
  color: var(--pp-accent);
  font-weight: 700;
  margin-left: 1px;
}

/* alert */
.pl-alert {
  padding: 10px 14px;
  border-radius: 3px;
  font-size: .9rem;
  margin: 0 0 12px;
  line-height: 1.5;
}
.pl-alert-success {
  background: #e8f0e3;
  color: #2c5d1e;
  border-left: 3px solid #5a8c3c;
}
.pl-alert-error {
  background: var(--pp-accent-bg);
  color: #7a2b22;
  border-left: 3px solid var(--pp-accent);
}

/* "이 댓글에 답글 작성 중" 표시 */
.pl-comment-replying-to {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  margin: 0 0 12px;
  background: var(--pp-bg-card);
  border: 1px solid var(--pp-line);
  border-left: 3px solid var(--pp-accent);
  border-radius: 0 3px 3px 0;
  font-size: .85rem;
  color: var(--pp-text-soft);
}
.pl-comment-replying-to strong {
  color: var(--pp-text);
  font-weight: 700;
}
.pl-replying-to-label { color: var(--pp-text-soft); }
.pl-replying-to-cancel {
  margin-left: auto;
  background: none;
  border: 0;
  cursor: pointer;
  color: var(--pp-text-faded);
  font-size: .78rem;
  text-decoration: underline;
  padding: 0;
  font-family: inherit;
}
.pl-replying-to-cancel:hover { color: var(--pp-accent); }

/* honeypot 숨김 */
.pl-honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* 폼 row — label 위 / input 아래 세로 스택 */
.pl-form-row {
  margin: 0 0 12px;
}
.pl-form-row > label {
  display: block;
  font-size: .82rem;
  font-weight: 600;
  color: var(--pp-text-soft);
  margin: 0 0 5px;
  letter-spacing: .01em;
}

.pl-form-row > input[type="text"],
.pl-form-row > input[type="email"],
.pl-form-row > input[type="url"],
.pl-form-row > input[type="password"],
.pl-form-row > textarea {
  width: 100%;
  padding: 9px 12px;
  font-family: inherit;
  font-size: .92rem;
  color: var(--pp-text);
  background: var(--pp-bg-card);
  border: 1px solid var(--pp-line-strong);
  border-radius: 3px;
  transition: border-color .15s, box-shadow .15s;
}
.pl-form-row > input:focus,
.pl-form-row > textarea:focus {
  outline: 0;
  border-color: var(--pp-accent);
  box-shadow: 0 0 0 3px rgba(197, 72, 61, .12);
}
.pl-form-row > textarea {
  min-height: 110px;
  resize: vertical;
  line-height: 1.65;
}

/* 3열 그리드 (이름/이메일/사이트) */
.pl-form-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px 12px;
  margin: 0 0 4px;
}
.pl-form-grid .pl-form-row {
  margin-bottom: 0;
}
@media (max-width: 700px) {
  .pl-form-grid { grid-template-columns: 1fr; }
}

/* 체크박스 한 줄 (정보 저장 / 비공개 댓글) */
.pl-form-check {
  display: block;
  margin: 12px 0;
  font-size: .87rem;
  color: var(--pp-text-soft);
}
.pl-form-check > label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  line-height: 1.5;
}
.pl-form-check input[type="checkbox"] {
  width: 16px;
  height: 16px;
  cursor: pointer;
  accent-color: var(--pp-accent);
  margin: 0;
  flex-shrink: 0;
}

/* 비공개 댓글 영역 */
.pl-comment-secret-row {
  background: var(--pp-bg-card);
  border: 1px solid var(--pp-line);
  border-radius: 3px;
  padding: 12px 14px;
  margin: 12px 0 16px;
}
.pl-comment-secret-pw {
  margin-top: 10px !important;
}
.pl-form-secret-pw-input {
  width: 100% !important;
  max-width: 320px;
  height: auto !important;
  padding: 9px 12px !important;
  font-family: inherit;
  font-size: .92rem;
  color: var(--pp-text);
  background: var(--pp-bg) !important;
  border: 1px solid var(--pp-line-strong) !important;
  border-radius: 3px !important;
  display: block;
}
.pl-form-secret-pw-input:focus {
  outline: 0;
  border-color: var(--pp-accent) !important;
  box-shadow: 0 0 0 3px rgba(197, 72, 61, .12) !important;
}
.pl-form-hint {
  font-size: .76rem;
  color: var(--pp-text-faded);
  margin-top: 6px;
  line-height: 1.5;
}

/* Submit 버튼 */
.pl-submit-btn {
  display: inline-block;
  padding: 10px 28px;
  background: var(--pp-accent);
  color: #fff;
  border: 0;
  border-radius: 999px;
  font-size: .9rem;
  font-weight: 500;
  cursor: pointer;
  font-family: inherit;
  transition: background .15s;
  margin-top: 8px;
}
.pl-submit-btn:hover { background: #a83a31; }
.pl-submit-btn:active { transform: translateY(1px); }
.pl-submit-btn:disabled {
  opacity: .55;
  cursor: not-allowed;
}

.pl-btn-cancel {
  display: inline-block;
  padding: 9px 22px;
  background: transparent;
  color: var(--pp-text-soft);
  border: 1px solid var(--pp-line-strong);
  border-radius: 999px;
  font-size: .88rem;
  cursor: pointer;
  font-family: inherit;
  transition: all .15s;
}
.pl-btn-cancel:hover {
  color: var(--pp-text);
  border-color: var(--pp-text);
}

/* edit icon (글 제목 옆 연필) */
.pl-edit-post-icon {
  display: inline-flex;
  width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: var(--pp-text-soft);
  border: 1px solid var(--pp-line);
  background: var(--pp-bg);
  transition: background .15s, color .15s, border-color .15s;
  vertical-align: middle;
  text-decoration: none !important;
}
.pl-edit-post-icon:hover {
  color: var(--pp-accent);
  background: var(--pp-accent-bg);
  border-color: var(--pp-accent);
}

/* ─────────────────────────────────────────
   Captcha + Secret 모달
   ───────────────────────────────────────── */
.pl-captcha-overlay,
.pl-secret-overlay {
  position: fixed;
  inset: 0;
  background: rgba(42, 31, 23, .55);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  animation: ppFadeIn .2s ease;
}
.pl-secret-overlay.is-open { display: flex; }
@keyframes ppFadeIn { from { opacity: 0 } to { opacity: 1 } }

.pl-captcha-modal,
.pl-secret-modal {
  background: var(--pp-bg-card);
  padding: 26px 28px 22px;
  border-radius: 6px;
  max-width: 360px;
  width: 90%;
  border: 1px solid var(--pp-line-strong);
  box-shadow: 0 10px 40px rgba(0,0,0,.2);
}
.pl-captcha-title,
.pl-secret-title {
  font-family: var(--pp-font-serif);
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0 0 8px;
  color: var(--pp-text);
}
.pl-captcha-desc,
.pl-secret-desc {
  font-size: .85rem;
  color: var(--pp-text-soft);
  margin: 0 0 16px;
  line-height: 1.55;
}
.pl-captcha-img {
  display: block;
  margin: 0 auto 12px;
  border: 1px solid var(--pp-line);
  border-radius: 3px;
  background: var(--pp-bg);
}
.pl-captcha-actions {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
}
.pl-captcha-input,
.pl-secret-input {
  flex: 1;
  padding: 9px 12px;
  border: 1px solid var(--pp-line-strong);
  background: var(--pp-bg);
  border-radius: 3px;
  font-family: inherit;
  font-size: 1rem;
  color: var(--pp-text);
  letter-spacing: .15em;
  text-align: center;
  width: 100%;
}
.pl-secret-input { letter-spacing: 0; text-align: left; }
.pl-captcha-input:focus,
.pl-secret-input:focus {
  outline: 0;
  border-color: var(--pp-accent);
  box-shadow: 0 0 0 3px rgba(197, 72, 61, .12);
}
.pl-captcha-reload {
  flex-shrink: 0;
  width: 40px;
  background: var(--pp-bg-soft);
  border: 1px solid var(--pp-line-strong);
  border-radius: 3px;
  font-size: 1.1rem;
  cursor: pointer;
  color: var(--pp-text-soft);
  transition: all .15s;
  font-family: inherit;
}
.pl-captcha-reload:hover {
  color: var(--pp-accent);
  border-color: var(--pp-accent);
}
.pl-captcha-buttons,
.pl-secret-buttons {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}
.pl-secret-error {
  background: var(--pp-accent-bg);
  color: #7a2b22;
  padding: 8px 12px;
  border-radius: 3px;
  font-size: .85rem;
  margin-bottom: 12px;
  border-left: 3px solid var(--pp-accent);
}

/* ─────────────────────────────────────────
   ★ FIXES (이번 라운드)
   ───────────────────────────────────────── */

/* 푸터 시그니처 — 사용자 요청대로 보이지 않게 */
.pp-footer-sig { opacity: 0; }

/* 방문자 통계 위젯 — 타이틀이 일반 위젯과 동일하게 보여야 함 */
.pp-sidebar .pl-w-visitors {
  background: var(--pp-bg-card);
  border: 1px solid var(--pp-line);
  border-radius: 4px;
  padding: 20px 18px;
  margin-bottom: 22px;
}
.pp-sidebar .pl-w-visitors .pl-w-title {
  font-family: var(--pp-font-serif);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: -.005em;
  text-transform: none;
  color: var(--pp-text);
  border-bottom: 2px solid var(--pp-text);
  padding-bottom: 10px;
  margin: 0 0 14px;
  display: inline-block;
}

/* 태그 클라우드 마진은 위쪽 정의에서 이미 처리됨.
   여기서는 추가 보강만. */
.pp-sidebar .pl-w-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 6px;
  line-height: 1.4;
}

/* hero 작은 카드 안의 cat pill — 컨텐츠 폭에 맞춰서 (flex column 의 stretch 방지) */
.pp-hero-small-body .pp-cat-pill,
.pp-hero-big-body  .pp-cat-pill,
.pp-card-body      .pp-cat-pill {
  align-self: flex-start;
  width: auto;
  max-width: max-content;
}

/* 본문 large 위젯 — 이미지 없는 글: 썸네일 칸 자체가 출력 안 되니 본문이 풀폭으로 자동 채워지게 */
.pp-content > .pl-w-posts-large .pl-w-posts-large-item:not(:has(.pl-w-posts-large-thumb)) {
  grid-template-columns: 1fr;
}
/* 폴백 (구형 브라우저, :has 미지원) — 그리드 자동 채움 */
@supports not selector(:has(.x)) {
  .pp-content > .pl-w-posts-large .pl-w-posts-large-item {
    grid-template-columns: minmax(0, 200px) 1fr;
  }
  .pp-content > .pl-w-posts-large .pl-w-posts-large-thumb {
    width: 100%;
    min-width: 0;
  }
}

/* 404 페이지 + 본문 gallery 위젯의 추천 글 — 이미지 없는 글에 초성 placeholder.
   JS (script.js) 가 .pl-w-posts-thumb-empty 에 .pp-thumb-letter span 을 주입한다.
   여기 CSS 는 letter 가 들어왔을 때 잘 보이도록 받쳐주는 역할.
   ⚠ specificity — 위 1092 의 ".pp-content > .pl-w-posts-gallery .pl-w-posts-thumb" 정의를
   덮어야 하므로 동일 스코프로 정의. */
.pp-content > .pl-w-posts-gallery .pl-w-posts-thumb-empty,
.pp-content .pl-w-posts-gallery .pl-w-posts-thumb-empty,
.pl-w-posts-gallery .pl-w-posts-thumb-empty {
  display: flex !important;
  align-items: center;
  justify-content: center;
  position: relative;
  background: linear-gradient(135deg, var(--pp-bg-soft), var(--pp-bg-tint));
  aspect-ratio: 4 / 3;
  border-radius: 4px;
  margin-bottom: 12px;
  overflow: hidden;
}
.pp-content > .pl-w-posts-gallery .pl-w-posts-thumb-empty .pp-thumb-letter,
.pl-w-posts-gallery .pl-w-posts-thumb-empty .pp-thumb-letter {
  font-family: var(--pp-font-serif);
  font-size: 2.8rem;
  font-weight: 900;
  font-style: italic;
  color: rgba(42, 31, 23, .22);
  line-height: 1;
  text-transform: uppercase;
}
/* JS 가 실행되지 않은 경우의 폴백 — 깃펜 워터마크라도 보이게 */
.pl-w-posts-gallery .pl-w-posts-thumb-empty:empty::after,
.pl-w-posts-gallery .pl-w-posts-thumb-empty:not(:has(.pp-thumb-letter))::after {
  content: '\270E';
  font-family: var(--pp-font-serif);
  font-size: 2.4rem;
  color: rgba(197, 72, 61, .22);
  transform: rotate(-12deg);
  line-height: 1;
}

/* large layout — JS 가 동적 주입한 placeholder thumb */
.pp-sidebar .pl-w-posts-large .pl-w-posts-large-thumb.pp-thumb-placeholder-large,
.pp-content .pl-w-posts-large .pl-w-posts-large-thumb.pp-thumb-placeholder-large {
  background: linear-gradient(135deg, var(--pp-bg-soft), var(--pp-bg-tint));
  display: flex;
  align-items: center;
  justify-content: center;
}
.pp-content .pl-w-posts-large .pl-w-posts-large-thumb.pp-thumb-placeholder-large .pp-thumb-letter {
  font-family: var(--pp-font-serif);
  font-size: 2.5rem;
  font-weight: 900;
  font-style: italic;
  color: rgba(42, 31, 23, .18);
  line-height: 1;
}
.pp-sidebar .pl-w-posts-large .pl-w-posts-large-thumb.pp-thumb-placeholder-large .pp-thumb-letter {
  font-family: var(--pp-font-serif);
  font-size: 1.4rem;
  font-weight: 900;
  font-style: italic;
  color: rgba(42, 31, 23, .18);
  line-height: 1;
}


/* ─────────────────────────────────────────
   [AdSense] 광고 박스 스타일 
   ───────────────────────────────────────── */

/* 공통 광고 컨테이너 (슬롯 widget_ad + 본문중간 자동삽입 공통) */
.pl-w-ad,
.pl-ad {
  margin: 2rem 0;
  text-align: center;
  overflow: hidden;          /* 광고가 컨테이너 밖으로 안 넘치게 */
  min-height: 1px;
}

/* 본문 중간 자동 삽입 광고 — 위아래 여백 살짝 더 */
.pl-ad-in-article {
  margin: 2.4rem 0;
  clear: both;
}

/* 광고임을 작게 표기하고 싶으면 (선택, 정책상 권장) */
.pl-ad-in-article::before,
.pl-w-ad-single_top::before,
.pl-w-ad-single_bottom::before {
  content: "AD";
  display: block;
  font-size: .62rem;
  letter-spacing: .08em;
  color: #bbb;
  text-align: center;
  margin-bottom: .35rem;
}

/* adsbygoogle ins 기본 보정 */
.pl-w-ad .adsbygoogle,
.pl-ad .adsbygoogle {
  display: block;
  margin: 0 auto;
}

/* 모바일 여백 축소 */
@media (max-width: 700px) {
  .pl-w-ad,
  .pl-ad { margin: 1.4rem 0; }
  .pl-ad-in-article { margin: 1.8rem 0; }
}

/* 목차(TOC) — paper 팔레트(--pp-*) : 빈티지 에디토리얼 */
.pl-toc{border:1px solid var(--pp-line,#e8dfd1);background:var(--pp-bg-card,#fffdf8);padding:18px 22px 16px;margin:0 0 28px;border-radius:6px;font-size:.92rem}
.pl-toc-title{display:flex;align-items:center;gap:9px;font-family:var(--pp-font-serif,Georgia,serif);font-weight:700;color:var(--pp-text,#2a1f17);margin-bottom:14px;font-size:1rem;letter-spacing:.01em}
.pl-toc-title::before{content:"";width:3px;height:15px;border-radius:2px;background:var(--pp-accent,#c5483d);display:inline-block}
.pl-toc .pl-toc-list{list-style:none;margin:0;padding:0;counter-reset:toc}
.pl-toc-item{margin:1px 0;line-height:1.5}
.pl-toc-item a{display:block;color:var(--pp-text-soft,#6b5d4f);text-decoration:none;border-bottom:0;padding:6px 10px;border-radius:5px;transition:background .15s,color .15s}
.pl-toc-item a:hover{background:var(--pp-accent-bg,#fbe9e6);color:var(--pp-accent,#c5483d)}
.pl-toc-h2{counter-increment:toc}
.pl-toc-h2>a{font-weight:600;color:var(--pp-text,#2a1f17);padding-left:40px;position:relative}
.pl-toc-h2>a::before{content:counter(toc,decimal-leading-zero);position:absolute;left:10px;top:50%;transform:translateY(-50%);font-family:var(--pp-font-serif,Georgia,serif);font-style:italic;font-size:.84rem;font-weight:700;color:var(--pp-accent,#c5483d)}
.pl-toc-h3>a{padding-left:40px;position:relative;color:var(--pp-text-soft,#6b5d4f);font-size:.88rem}
.pl-toc-h3>a::before{content:"";position:absolute;left:20px;top:50%;transform:translateY(-50%);width:6px;height:1px;background:var(--pp-text-faded,#a39685);transition:background .15s,width .15s,left .15s}
.pl-toc-h3>a:hover::before{background:var(--pp-accent,#c5483d);width:9px;left:17px}
.pl-toc-h4>a{padding-left:54px;font-size:.85rem;color:var(--pp-text-faded,#a39685)}
.pl-block-heading h2,.pl-block-heading h3,.pl-block-heading h4{scroll-margin-top:80px}
html{scroll-behavior:smooth}
