/* Tirtalab 공통 스타일 — 세 플러그인이 같은 파일을 가지고 있으며 한 번만 로드됩니다 */
:root {
  --tl-bg: #f8f7f5;
  --tl-card: #ffffff;
  --tl-line: #e4e1dc;
  --tl-text: #2c2c2c;
  --tl-muted: #7a7671;
  --tl-soft: #efedea;
}

/* 목록 머리: 제목 + 필터 */
.tl-filter { margin: 0 0 2.5rem; }
.tl-filter__title { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.15; margin: 0 0 .5rem; }
.tl-filter__desc { color: var(--tl-muted); margin: 0 0 1.75rem; max-width: 40rem; }
.tl-filter__row { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: 0 0 .75rem; }
.tl-filter__label { font-size: .85rem; color: var(--tl-muted); min-width: 3.5rem; }
.tl-chip {
  display: inline-block; padding: .35rem .85rem; border: 1px solid var(--tl-line);
  border-radius: 999px; font-size: .9rem; color: var(--tl-text); text-decoration: none;
  background: var(--tl-card);
}
.tl-chip:hover, .tl-chip:focus-visible { border-color: var(--tl-text); }
.tl-chip.is-active { background: var(--tl-text); border-color: var(--tl-text); color: #fff; }

/* 케이스 필터 폼 */
.tl-filter-form { display: flex; flex-wrap: wrap; gap: .75rem; align-items: flex-end; }
.tl-filter-form label { display: flex; flex-direction: column; gap: .3rem; font-size: .85rem; color: var(--tl-muted); }
.tl-filter-form select {
  min-width: 8.5rem; padding: .5rem .6rem; border: 1px solid var(--tl-line);
  border-radius: 6px; background: var(--tl-card); color: var(--tl-text); font: inherit;
}
.tl-filter-form button {
  padding: .55rem 1.2rem; border: 1px solid var(--tl-text); border-radius: 6px;
  background: var(--tl-text); color: #fff; font: inherit; cursor: pointer;
}
.tl-filter-form .tl-reset { font-size: .9rem; color: var(--tl-muted); align-self: center; }

/* 카드 */
.tl-grid .wp-block-post-template { gap: 1.25rem; }
.tl-card {
  height: 100%; padding: 1.5rem; border: 1px solid var(--tl-line); border-radius: 10px;
  background: var(--tl-card); gap: .6rem;
}
.tl-card .wp-block-post-title { font-size: 1.2rem; line-height: 1.4; margin: 0; }
.tl-card .wp-block-post-title a { text-decoration: none; color: var(--tl-text); }
.tl-card .wp-block-post-title a:hover { text-decoration: underline; }
.tl-card .wp-block-post-excerpt { color: var(--tl-muted); font-size: .92rem; margin: 0; }
.tl-card .wp-block-post-excerpt__more-link { display: none; }

/* 배지 */
.tl-badges { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; }
.tl-badge {
  display: inline-block; padding: .15rem .6rem; border-radius: 4px; background: var(--tl-soft);
  font-size: .8rem; color: var(--tl-text); text-decoration: none; line-height: 1.6;
}
a.tl-badge:hover { background: var(--tl-line); }
.tl-badge--level { background: var(--tl-text); color: #fff; }

/* 상세 */
.tl-single-meta { margin-bottom: 1rem; }
.tl-sub { color: var(--tl-muted); margin: 0 0 1rem; }
.tl-keywords { margin-top: 3rem; padding-top: 1.25rem; border-top: 1px solid var(--tl-line); }
.tl-keywords a { color: var(--tl-muted); margin-right: .75rem; font-size: .9rem; }
.tl-note { padding: 1rem 1.25rem; border-left: 3px solid var(--tl-text); background: var(--tl-soft); margin: 1.5rem 0; white-space: pre-line; }
.tl-figures { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.25rem; margin: 1.5rem 0 2rem; }
.tl-figures figure { margin: 0; }
.tl-figures img { width: 100%; height: auto; border: 1px solid var(--tl-line); border-radius: 6px; display: block; }
.tl-figures figcaption { font-size: .85rem; color: var(--tl-muted); margin-top: .4rem; }
.tl-back { margin-top: 2.5rem; }
.tl-back a { color: var(--tl-muted); }
