.content-hero { padding: 92px max(24px, calc((100vw - var(--max))/2)) 72px; background: linear-gradient(135deg, rgba(223,231,223,.82), rgba(248,245,239,.55)); }
.content-hero h1 { margin: 0 0 14px; font-family: Georgia,"Noto Serif KR",serif; font-size: clamp(40px,6vw,68px); line-height: 1.2; font-weight: 600; letter-spacing: -.04em; }
.content-hero > p:last-child { max-width: 620px; margin: 0; color: var(--muted); font-size: 17px; }
.content-shell,.article-shell { max-width: var(--max); margin: 0 auto; padding: 72px 24px 110px; }
.filter-list { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 38px; }
.filter-chip { padding: 9px 17px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.7); font-size: 14px; }
.filter-chip.active { border-color: var(--accent); background: var(--accent); color: #fff; }
.post-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.content-card { overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.78); transition: transform .2s,box-shadow .2s; }
.content-card:hover { transform: translateY(-4px); box-shadow: 0 20px 45px rgba(44,51,47,.09); }
.content-card-cover { height: 210px; overflow: hidden; background: var(--accent-soft); }
.content-card-cover img { width: 100%; height: 100%; object-fit: cover; }
.post-placeholder { display: grid; height: 100%; place-items: center; color: var(--accent); font-family: Georgia,"Noto Serif KR",serif; }
.content-card-copy { padding: 24px; }
.category-label { color: var(--accent); font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.content-card h2 { margin: 8px 0; font-family: Georgia,"Noto Serif KR",serif; font-size: 23px; }
.content-card p { min-height: 54px; margin: 0 0 15px; color: var(--muted); font-size: 14px; }
.content-card time { color: #89918b; font-size: 12px; }
.pagination { display: flex; align-items: center; justify-content: center; gap: 20px; margin-top: 46px; }
.pagination a { color: var(--accent); font-weight: 700; }
.empty-state { padding: 80px 24px; text-align: center; }
.empty-state.full { grid-column: 1/-1; border: 1px dashed var(--line); border-radius: 20px; }
.empty-state h1,.empty-state h2 { margin: 0 0 12px; font-size: 28px; }
.back-link { display: inline-block; margin-bottom: 40px; color: var(--accent); font-weight: 700; }
.article-shell { max-width: 860px; }
.article-header { padding-bottom: 34px; border-bottom: 1px solid var(--line); }
.article-header h1 { margin: 10px 0 16px; font-family: Georgia,"Noto Serif KR",serif; font-size: clamp(36px,6vw,56px); line-height: 1.3; letter-spacing: -.04em; }
.article-header time { color: var(--muted); }
.article-cover { margin: 42px 0; }
.article-cover img { display: block; width: 100%; max-height: 560px; object-fit: cover; border-radius: 20px; }
.lecture-meta { display: grid; grid-template-columns: repeat(2,1fr); margin: 38px 0; padding: 24px 30px; border-radius: 18px; background: #eef0ea; }
.lecture-meta div { display: grid; grid-template-columns: 72px 1fr; padding: 8px; }
.lecture-meta dt { color: var(--accent); font-weight: 800; }
.lecture-meta dd { margin: 0; }
.article-body { font-size: 18px; line-height: 2; word-break: keep-all; }
.article-body h2,.article-body h3 { margin: 2.4em 0 .7em; }
.article-body a { text-decoration: underline; text-underline-offset: 3px; }
.article-gallery { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; margin-top: 42px; }
.article-gallery figure { margin: 0; }
.article-gallery img { width: 100%; border-radius: 15px; }
.article-gallery figcaption { margin-top: 6px; color: var(--muted); font-size: 13px; }
.tag-list { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 35px; color: var(--accent); }
.article-back { display: inline-block; margin-top: 54px; }
.reviews-layout { display: grid; grid-template-columns: 1.15fr .85fr; gap: 52px; align-items: start; }
.subheading,.review-form-card h2 { margin: 0 0 24px; font-size: 28px; }
.review-grid { display: grid; gap: 16px; }
.review-card { padding: 26px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.72); }
.review-card .stars { color: #9a7a36; letter-spacing: .12em; }
.review-card > p { margin: 14px 0 20px; }
.review-card footer { padding: 0; border: 0; display: flex; flex-wrap: wrap; gap: 8px 14px; font-size: 13px; }
.review-card footer span,.review-card footer time { color: var(--muted); }
.review-form-card { position: sticky; top: 110px; padding: 30px; border-radius: 22px; background: #eef0ea; }
.review-form-card > p { color: var(--muted); font-size: 14px; }
.review-form-card label,.review-form-card legend { display: grid; gap: 7px; margin: 18px 0 0; font-size: 14px; font-weight: 700; }
.review-form-card input,.review-form-card textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: #fff; font: inherit; }
.review-form-card fieldset { padding: 0; border: 0; }
.rating-input { display: flex; flex-direction: row-reverse; justify-content: flex-end; }
.rating-input input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  opacity: 0;
  pointer-events: none;
}
.rating-input label { margin: 0; color: #bbb; cursor: pointer; font-size: 28px; }
.rating-input input:checked ~ label,.rating-input label:hover,.rating-input label:hover ~ label { color: #9a7a36; }
.review-form-card .button { width: 100%; margin-top: 20px; }
.honeypot { position: absolute!important; left: -10000px!important; }
.notice { margin-bottom: 28px; padding: 14px 18px; border-radius: 12px; }
.notice.success { background: #dfeadf; color: #34523e; }
.form-status,.form-warning { color: #8b433d; font-size: 13px; }
@media (max-width:860px){.post-grid{grid-template-columns:repeat(2,1fr)}.reviews-layout{grid-template-columns:1fr}.review-form-card{position:static}.article-gallery{grid-template-columns:1fr}}
@media (max-width:560px){.content-hero{padding-top:65px}.content-shell,.article-shell{padding:52px 18px 80px}.post-grid{grid-template-columns:1fr}.lecture-meta{grid-template-columns:1fr;padding:18px}.article-body{font-size:16px}.review-form-card{padding:22px}}
