
/* ═══════════════════════════════════════════
   AUTOFLOW — Clean Magazine Style v3
   (GeneratePress 실제 클래스 기준)
═══════════════════════════════════════════ */
:root {
  --af-accent: #0891B2;
  --af-text: #1A1A1A;
  --af-muted: #767676;
  --af-border: #E5E7EB;
  --af-bg: #F9FAFB;
}

/* ── Base ── */
body { background: var(--af-bg); color: var(--af-text); }

/* ══ 헤더 리뉴얼 v4 ══ */
/* 상단 3px 그라데이션 액센트 바 */
.site-header::before {
  content: '';
  display: block;
  height: 3px;
  background: linear-gradient(90deg, #0F172A 0%, var(--af-accent) 100%);
}
.site-header {
  background: #fff !important;
  border-bottom: 1px solid var(--af-border);
  padding: 0 !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.05) !important;
  max-width: 100% !important;
}
.inside-header {
  max-width: 1100px !important;
  box-sizing: border-box !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
  min-height: 68px;
  display: flex !important;
  align-items: center !important;
}

/* ── 브랜드 영역 ── */
.site-branding { flex: 1; }
.main-title { font-size: 1.5rem !important; font-weight: 900 !important; letter-spacing: -1px; margin: 0 0 2px; line-height: 1.2; }
.main-title a, .main-title a:visited { color: #0F172A !important; text-decoration: none; }
.main-title a:hover { color: var(--af-accent) !important; }
.site-description {
  display: block !important;
  font-size: 0.72em !important;
  color: var(--af-muted) !important;
  margin: 0 !important;
  font-weight: 400;
  letter-spacing: 0.02em;
}

/* ── 메인 네비 ── */
.main-navigation { background: transparent !important; }
.main-navigation .inside-navigation { padding: 0 !important; }
.main-navigation .main-nav ul { display: flex; gap: 2px; align-items: center; }
.main-navigation .main-nav ul li a {
  color: #374151 !important;
  font-size: 0.875rem !important;
  font-weight: 500;
  padding: 7px 14px !important;
  border-radius: 6px;
  background: transparent !important;
  transition: all 0.15s;
  white-space: nowrap;
}
.main-navigation .main-nav ul li a:hover { color: var(--af-accent) !important; background: #EFF9FB !important; }
.main-navigation .main-nav ul li[class*="current-menu"] &gt; a { color: var(--af-accent) !important; font-weight: 600; background: #EFF9FB !important; }

/* ── 카테고리 탭바 ── */
.af-cat-bar {
  background: #fff;
  border-bottom: 1px solid var(--af-border);
  position: sticky;
  top: 0;
  z-index: 200;
}
/* 관리자 바(32px) 있을 때 탭바가 뒤에 숨지 않도록 */
.admin-bar .af-cat-bar { top: 32px; }
@media screen and (max-width: 782px) {
  .admin-bar .af-cat-bar { top: 46px; }
}
.af-cat-bar-inner {
  display: flex;
  max-width: 1100px;
  box-sizing: border-box;
  margin: 0 auto;
  padding: 0 24px;
  overflow-x: auto;
  scrollbar-width: none;
}
.af-cat-bar-inner::-webkit-scrollbar { display: none; }
.af-cat-link {
  display: inline-flex;
  align-items: center;
  padding: 10px 16px;
  color: #888;
  font-size: 0.875em;
  font-weight: 500;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  transition: color 0.15s, border-color 0.15s;
}
.af-cat-link:hover { color: #1A1A1A; }
.af-cat-link.af-on { color: #1A1A1A; font-weight: 700; border-bottom-color: var(--af-accent); }

/* ── 사이드바 완전 제거 + 콘텐츠 정렬 ── */
.sidebar-primary, #sidebar-primary, .widget-area, aside.widget-area { display: none !important; }
.content-area, #primary {
  width: 100% !important;
  max-width: 1100px !important;
  box-sizing: border-box !important;
  float: none !important;
  margin: 0 auto !important;
  padding: 0 !important;
}
#main { margin: 0 !important; }

/* ── 홈/아카이브 그리드 ── */
.home .site-main, .blog .site-main, .archive .site-main {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 20px !important;
  max-width: 1100px;
  box-sizing: border-box;
  margin: 28px auto !important;
  padding: 0 24px !important;
}

/* ── 카드 기본 ── */
.home article, .blog article, .archive article {
  background: #fff;
  border: 1px solid var(--af-border);
  border-radius: 10px;
  overflow: hidden;
  margin: 0 !important;
  padding: 0 !important;
  transition: box-shadow 0.2s, transform 0.18s;
}
.home article:hover, .blog article:hover, .archive article:hover {
  box-shadow: 0 6px 24px rgba(0,0,0,0.09);
  transform: translateY(-3px);
}
.home .inside-article, .blog .inside-article, .archive .inside-article {
  display: flex !important;
  flex-direction: column;
  height: 100%;
}

/* ── 썸네일 (맨 위) ── */
.home .post-image, .blog .post-image, .archive .post-image { order: 1; margin: 0 !important; }
.home .post-image a, .blog .post-image a, .archive .post-image a { display: block; }
.home .post-image img, .blog .post-image img, .archive .post-image img {
  width: 100% !important;
  height: 185px !important;
  object-fit: cover !important;
  display: block !important;
  border-radius: 0 !important;
}

/* ── 카드 헤더 (제목+날짜) ── */
.home .entry-header, .blog .entry-header, .archive .entry-header {
  order: 2;
  padding: 16px 18px 6px !important;
}
.home .entry-title, .blog .entry-title, .archive .entry-title {
  font-size: 0.97em !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  margin: 0 0 6px !important;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.home .entry-title a, .blog .entry-title a, .archive .entry-title a { color: #1A1A1A !important; text-decoration: none; }
.home .entry-title a:hover, .blog .entry-title a:hover, .archive .entry-title a:hover { color: var(--af-accent) !important; }
.home .entry-meta, .blog .entry-meta, .archive .entry-meta {
  font-size: 0.74em !important;
  color: var(--af-muted) !important;
  margin: 0 !important;
}

/* ── 카드 요약 ── */
.home .entry-summary, .blog .entry-summary, .archive .entry-summary {
  order: 3;
  padding: 2px 18px 12px !important;
  flex: 1;
}
.home .entry-summary p, .blog .entry-summary p, .archive .entry-summary p {
  font-size: 0.82em !important;
  color: #555 !important;
  line-height: 1.65 !important;
  margin: 0 !important;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.home .more-link, .blog .more-link, .archive .more-link { display: none !important; }

/* ── 카드 하단 카테고리 ── */
.home footer.entry-meta, .blog footer.entry-meta, .archive footer.entry-meta {
  order: 4;
  padding: 10px 18px 14px !important;
  border-top: 1px solid #F3F4F6;
  font-size: 0.72em !important;
}
.home footer.entry-meta a, .blog footer.entry-meta a, .archive footer.entry-meta a {
  color: var(--af-accent) !important;
  background: #EFF9FB;
  padding: 3px 8px;
  border-radius: 4px;
  font-weight: 600;
  text-decoration: none;
}
.home .screen-reader-text, .blog .screen-reader-text, .archive .screen-reader-text { display: none; }

/* ── 카테고리 페이지 배너 ── */
.category .page-header {
  grid-column: 1 / -1;
  background: linear-gradient(135deg, #0F172A 0%, var(--af-accent) 100%);
  border-radius: 10px;
  padding: 22px 28px !important;
  margin: 0 !important;
}
.category .page-header .page-title { color: #fff !important; font-size: 1.3em !important; font-weight: 800 !important; margin: 0 0 6px !important; }
.category .page-header .taxonomy-description p { color: rgba(255,255,255,0.85) !important; font-size: 0.9rem; margin: 0; }
.tag .page-header { display: none !important; }

/* ── 페이지네이션 ── */
.home .navigation, .blog .navigation, .archive .navigation,
.home .paging-navigation, .blog .paging-navigation, .archive .paging-navigation {
  grid-column: 1 / -1;
  display: flex !important;
  justify-content: center;
  padding: 24px 0 40px;
}
.nav-links { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; }
.page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 36px; height: 36px; padding: 0 10px;
  border-radius: 7px; font-size: 0.85em; font-weight: 500;
  border: 1px solid var(--af-border); background: #fff; color: var(--af-text);
  text-decoration: none; transition: all .15s;
}
.page-numbers:hover { border-color: var(--af-accent); color: var(--af-accent); }
.page-numbers.current { background: var(--af-accent); border-color: var(--af-accent); color: #fff; font-weight: 700; }
.page-numbers.dots { border: none; background: none; color: var(--af-muted); }

/* ── 단일 포스트 ── */
.single #primary { max-width: 760px !important; margin: 0 auto !important; }
.separate-containers .inside-article { padding: 32px 36px !important; }
.single .entry-title { font-size: 1.7em !important; font-weight: 800 !important; line-height: 1.35; letter-spacing: -0.3px; }
.single .entry-meta { color: var(--af-muted); font-size: 0.85em; margin-bottom: 24px; }
.single .entry-content { font-size: 1.02em; line-height: 1.85; color: #333; }
.single .entry-content h2 { font-size: 1.25em; font-weight: 700; margin: 2em 0 0.8em; padding-left: 12px; border-left: 3px solid var(--af-accent); }
.single .entry-content h3 { font-size: 1.08em; font-weight: 700; margin: 1.6em 0 0.6em; }

/* ── ad-space 빈 div 숨김 (Gemini 생성 광고 자리 표시자) ── */
.ad-space { display: none !important; }

/* ── 가독성 컴포넌트 ── */
/* 핵심 요약 하이라이트 박스 */
.single .entry-content .af-highlight {
  background: #EFF9FB;
  border-left: 4px solid var(--af-accent);
  border-radius: 0 8px 8px 0;
  padding: 14px 18px;
  margin: 1.4em 0;
  font-size: 0.96em;
  line-height: 1.75;
  color: #1A1A1A;
}
/* 인용구 */
.single .entry-content .af-quote,
.single .entry-content blockquote {
  border-left: 4px solid #CBD5E1;
  background: #F8FAFC;
  margin: 1.4em 0;
  padding: 12px 20px;
  border-radius: 0 8px 8px 0;
  font-style: italic;
  color: #475569;
  font-size: 0.97em;
}
/* 테이블 */
.single .entry-content .af-table,
.single .entry-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5em 0;
  font-size: 0.92em;
}
.single .entry-content .af-table th,
.single .entry-content table th {
  background: #0F172A;
  color: #fff;
  padding: 10px 14px;
  text-align: left;
  font-weight: 600;
}
.single .entry-content .af-table td,
.single .entry-content table td {
  padding: 9px 14px;
  border-bottom: 1px solid var(--af-border);
  color: #374151;
}
.single .entry-content .af-table tr:nth-child(even) td,
.single .entry-content table tr:nth-child(even) td {
  background: #F9FAFB;
}

/* ── Easy TOC 스타일 정리 ── */
/* 실제 구조:
   div#ez-toc-container
     div.ez-toc-box-title  ("목차" — position:absolute, top:-4%)
     div.ez-toc-title-container  (토글 버튼만 포함)
     nav > ul.ez-toc-list
*/
/* 컨테이너 박스 */
div#ez-toc-container {
  position: relative !important;
  background: #fff !important;
  border: 1px solid var(--af-border) !important;
  border-radius: 10px !important;
  padding: 14px 18px 16px !important;
  margin: 20px 0 2em !important;
  width: auto !important;
  max-width: 100% !important;
}
/* "목차" 플로팅 라벨 — 테두리 위에 올라타는 디자인 */
div#ez-toc-container .ez-toc-box-title {
  position: absolute !important;
  top: -11px !important;
  left: 16px !important;
  background: #fff !important;
  padding: 0 6px !important;
  font-size: 0.95em !important;
  font-weight: 700 !important;
  color: var(--af-accent) !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
}
/* h2 border-left 가 TOC에 번지는 것 차단 (혹시 h2로 렌더링될 경우) */
div#ez-toc-container h2 {
  border-left: none !important;
  padding-left: 0 !important;
}
/* 토글 버튼 영역 */
div#ez-toc-container .ez-toc-title-container {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  margin-bottom: 8px !important;
  padding-bottom: 8px !important;
  min-height: 0 !important;
  border-bottom: 1px solid var(--af-border) !important;
}
/* 토글 버튼 */
div#ez-toc-container a.ez-toc-toggle,
div#ez-toc-container .ez-toc-btn {
  background: transparent !important;
  border: 1px solid var(--af-border) !important;
  border-radius: 6px !important;
  padding: 3px 9px !important;
  color: var(--af-muted) !important;
  box-shadow: none !important;
  font-size: 0.85em !important;
  line-height: 1.4 !important;
  display: inline-flex !important;
  align-items: center !important;
}
div#ez-toc-container a.ez-toc-toggle:hover,
div#ez-toc-container .ez-toc-btn:hover {
  background: #EFF9FB !important;
  border-color: var(--af-accent) !important;
  color: var(--af-accent) !important;
}
/* 목록 */
div#ez-toc-container ul.ez-toc-list { margin: 0 !important; padding-left: 18px !important; }
div#ez-toc-container ul.ez-toc-list li { margin: 4px 0 !important; font-size: 0.88em; }
div#ez-toc-container ul.ez-toc-list a { color: #374151 !important; text-decoration: none; }
div#ez-toc-container ul.ez-toc-list a:hover { color: var(--af-accent) !important; }
.reading-time { font-size: 0.8em; color: var(--af-muted); background: var(--af-bg); display: inline-block; padding: 4px 10px; border-radius: 12px; margin-bottom: 16px; }

/* ── 소셜 공유 ── */
.social-share-float { position: fixed; left: 16px; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 8px; z-index: 50; }
.social-share-float a { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; background: #fff; border: 1px solid var(--af-border); color: #555 !important; font-weight: 700; text-decoration: none; transition: all 0.15s; font-size: 0.9em; }
.social-share-float a:hover { background: var(--af-accent); border-color: var(--af-accent); color: #fff !important; }

/* ── 페이지 (About/Privacy/Contact) ── */
.page #primary { max-width: 800px !important; margin: 40px auto !important; }
.page .entry-title { font-size: 1.7em !important; font-weight: 800; border-bottom: 2px solid var(--af-accent); padding-bottom: 14px; margin-bottom: 28px !important; }
.page .entry-content h2 { font-size: 1.2em; font-weight: 700; padding-left: 12px; border-left: 3px solid var(--af-accent); margin: 28px 0 12px; }
.page .entry-content h3 { font-size: 1.05em; font-weight: 600; color: #0E7490; margin: 20px 0 8px; }
.page .entry-content p { line-height: 1.8; color: #334155; }
.page .entry-content ul { padding-left: 0; list-style: none; }
.page .entry-content ul li::before { content: "▸"; color: var(--af-accent); margin-right: 6px; }

/* ── 푸터 ── */
.site-info { background: #1A1A1A !important; color: #888 !important; font-size: 0.82em; padding: 20px !important; }
.site-info a { color: #aaa !important; }

/* ── 모바일 반응형 ── */
@media (max-width: 860px) {
  .home .site-main, .blog .site-main, .archive .site-main { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 560px) {
  .home .site-main, .blog .site-main, .archive .site-main { grid-template-columns: 1fr !important; padding: 0 14px !important; }
  .separate-containers .inside-article { padding: 20px !important; }
  .social-share-float { display: none; }
  .af-cat-link { padding: 9px 12px; font-size: 0.82em; }
}

/* ═══════════════════════════════════════════
   홈 히어로 + 신규/인기 페이지 v1 (2026-04-24)
═══════════════════════════════════════════ */

/* ── 탭바 구분선 ── */
.af-cat-sep {
  color: #CBD5E1;
  padding: 0 4px;
  font-weight: 300;
  user-select: none;
  align-self: center;
}

/* ── 홈 히어로 래퍼 ── */
.af-home-wrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 32px 20px 60px;
}

/* ── 섹션 레이블 ── */
.af-sec-label {
  font-size: 0.88rem;
  font-weight: 800;
  color: #0F172A;
  margin-bottom: 14px;
  letter-spacing: -0.01em;
}

/* ── 헤더 검색 아이콘 버튼 ── */
.af-nav-search {
  background: none;
  border: none;
  cursor: pointer;
  color: #475569;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 8px;
  transition: background .15s, color .15s;
  margin-left: 8px;
  flex-shrink: 0;
  order: 99;
}
.af-nav-search:hover {
  background: #F1F5F9;
  color: var(--af-accent);
}
/* inside-header flex 정렬 보정 */
.inside-header { align-items: center; }
/* ── 검색 오버레이 ── */
.af-search-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(15,23,42,0.82);
  z-index: 9999;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.af-search-overlay--open { display: flex; }
.af-search-overlay-box {
  width: 100%;
  max-width: 620px;
  padding: 0 20px;
}
.af-search-form { display: block; }
.af-search-input-wrap {
  display: flex;
  align-items: center;
  background: #fff;
  border-radius: 12px;
  padding: 0 16px;
  gap: 12px;
  box-shadow: 0 8px 40px rgba(0,0,0,0.3);
}
.af-search-icon { color: #94A3B8; flex-shrink: 0; }
.af-search-input {
  flex: 1;
  border: none;
  outline: none;
  padding: 18px 0;
  font-size: 1.1rem;
  color: #0F172A;
  background: transparent;
}
.af-search-input::placeholder { color: #94A3B8; }
.af-search-close {
  background: none;
  border: none;
  font-size: 16px;
  color: #94A3B8;
  cursor: pointer;
  padding: 4px;
  flex-shrink: 0;
  transition: color .15s;
}
.af-search-close:hover { color: #475569; }
.af-search-hint {
  color: rgba(255,255,255,0.45);
  font-size: 0.78rem;
  text-align: center;
  margin: 12px 0 0;
}

/* ── 오늘 이슈 (캐러셀) ── */
.af-issue-section {
  margin-bottom: 48px;
}
.af-issue-carousel {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid #E2E8F0;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
  min-height: 280px;
}
.af-issue-slides {
  display: flex;
  transition: transform 0.4s cubic-bezier(.4,0,.2,1);
  will-change: transform;
}
.af-issue-slide {
  flex: 0 0 100%;
  display: flex;
  text-decoration: none;
  background: #fff;
  min-height: 280px;
  transition: opacity .2s;
}
.af-issue-slide:hover .af-issue-title { color: var(--af-accent); }
.af-issue-thumb {
  width: 42%;
  flex-shrink: 0;
  background-size: cover;
  background-position: center;
  background-color: #E2E8F0;
}
.af-issue-body {
  padding: 32px 36px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 12px;
}
.af-issue-cat {
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--af-accent);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.af-issue-title {
  font-size: 1.55rem;
  font-weight: 800;
  color: #0F172A;
  line-height: 1.42;
  margin: 0;
  transition: color .2s;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.af-issue-excerpt {
  font-size: 0.9rem;
  color: #64748B;
  line-height: 1.7;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* 캐러셀 네비 (우측 하단) */
.af-issue-nav {
  position: absolute;
  bottom: 14px;
  right: 16px;
  display: flex;
  align-items: center;
  gap: 6px;
  background: rgba(15,23,42,0.6);
  backdrop-filter: blur(4px);
  border-radius: 20px;
  padding: 4px 10px;
}
.af-issue-btn {
  background: none;
  border: none;
  color: #fff;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  padding: 0 2px;
  opacity: 0.85;
  transition: opacity .15s;
}
.af-issue-btn:hover { opacity: 1; }
.af-issue-counter {
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  min-width: 34px;
  text-align: center;
  letter-spacing: 0.02em;
}

/* ── 주목 Top 5 ── */
.af-top5-section {
  margin-bottom: 40px;
}
.af-top5-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
}
.af-top5-card {
  position: relative;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none;
  border: 1px solid #E2E8F0;
  box-shadow: 0 1px 6px rgba(0,0,0,0.06);
  transition: box-shadow .2s, transform .18s;
  display: flex;
  flex-direction: column;
}
.af-top5-card:hover {
  box-shadow: 0 4px 18px rgba(0,0,0,0.12);
  transform: translateY(-2px);
}
.af-top5-card.af-top5-first {
  background: #0F172A;
  border-color: #0F172A;
}
.af-top5-card.af-top5-first::after {
  content: '1';
  position: absolute;
  bottom: -8px;
  right: 6px;
  font-size: 96px;
  font-weight: 900;
  color: rgba(255,255,255,0.05);
  line-height: 1;
  pointer-events: none;
  z-index: 0;
}
.af-top5-rank {
  position: absolute;
  top: 9px;
  left: 9px;
  font-size: 11px;
  font-weight: 800;
  color: #fff;
  background: var(--af-accent);
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}
.af-top5-card.af-top5-first .af-top5-rank {
  background: #F59E0B;
}
.af-top5-thumb {
  width: 100%;
  padding-top: 62%;
  background-size: cover;
  background-position: center;
  background-color: #1E293B;
  flex-shrink: 0;
}
.af-top5-body {
  padding: 12px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 5px;
  position: relative;
  z-index: 1;
}
.af-top5-cat {
  font-size: 0.62rem;
  font-weight: 700;
  color: var(--af-accent);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.af-top5-card.af-top5-first .af-top5-cat { color: #7DD3FC; }
.af-top5-title {
  font-size: 0.82rem;
  font-weight: 700;
  color: #0F172A;
  line-height: 1.5;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.af-top5-card.af-top5-first .af-top5-title { color: #F1F5F9; }

/* ── 홈 광고 슬롯 ── */
.af-home-ad {
  margin-bottom: 40px;
  text-align: center;
  min-height: 60px;
  background: #F8FAFC;
  border-radius: 10px;
  padding: 16px;
  border: 1px dashed #E2E8F0;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ── 카테고리별 최신 ── */
.af-catlatest-section { margin-bottom: 48px; }
.af-catlatest-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.af-catlatest-col {
  background: #fff;
  border-radius: 12px;
  border: 1px solid #E2E8F0;
  box-shadow: 0 1px 5px rgba(0,0,0,0.05);
  padding: 20px;
}
.af-catlatest-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--af-accent);
}
.af-catlatest-head span {
  font-size: 0.9rem;
  font-weight: 800;
  color: #0F172A;
}
.af-catlatest-more {
  font-size: 0.72rem;
  color: var(--af-accent);
  text-decoration: none;
  font-weight: 600;
}
.af-catlatest-more:hover { text-decoration: underline; }
.af-catlatest-item {
  display: flex;
  gap: 11px;
  padding: 10px 0;
  text-decoration: none;
  border-bottom: 1px solid #F1F5F9;
  align-items: center;
}
.af-catlatest-item:last-child { border-bottom: none; padding-bottom: 0; }
.af-catlatest-item:hover { opacity: 0.82; }
.af-catlatest-thumb {
  width: 64px;
  height: 48px;
  border-radius: 7px;
  background-size: cover;
  background-position: center;
  background-color: #E2E8F0;
  flex-shrink: 0;
}
.af-catlatest-info { flex: 1; min-width: 0; }
.af-catlatest-title {
  font-size: 0.82rem;
  font-weight: 600;
  color: #1E293B;
  margin: 0 0 4px;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.af-catlatest-item:hover .af-catlatest-title { color: var(--af-accent); }
.af-catlatest-date { font-size: 0.7rem; color: #94A3B8; }

/* ── 신규 페이지 그리드 ── */
.af-filter-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  padding: 4px 0 8px;
}
.af-card {
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  transition: box-shadow .2s, transform .18s;
}
.af-card:hover { box-shadow: 0 6px 22px rgba(0,0,0,.09); transform: translateY(-2px); }
.af-card-link { display: block; text-decoration: none; color: inherit; }
.af-card-thumb {
  height: 156px;
  background-size: cover;
  background-position: center;
  background-color: #E2E8F0;
  position: relative;
}
.af-badge-new {
  position: absolute;
  top: 10px;
  left: 10px;
  background: var(--af-accent);
  color: #fff;
  font-size: 0.62rem;
  font-weight: 800;
  padding: 2px 8px;
  border-radius: 20px;
  letter-spacing: 0.05em;
}
.af-card-body { padding: 13px 15px 15px; }
.af-card-cat {
  font-size: 0.62rem;
  font-weight: 700;
  color: var(--af-accent);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.af-card-title {
  font-size: 0.92rem;
  font-weight: 700;
  color: #0F172A;
  margin: 5px 0 7px;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.af-card-excerpt {
  font-size: 0.78rem;
  color: #64748B;
  line-height: 1.55;
  margin: 0 0 8px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.af-card-date { font-size: 0.72rem; color: #94A3B8; }

/* ── 인기 페이지 리스트 ── */
.af-pop-page-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 4px 0 8px;
}
.af-pop-row {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px;
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  background: #fff;
  transition: box-shadow .2s;
}
.af-pop-row:hover { box-shadow: 0 3px 14px rgba(0,0,0,.08); }
.af-pop-row-rank {
  font-size: 1.6rem;
  font-weight: 900;
  min-width: 34px;
  text-align: center;
  flex-shrink: 0;
  line-height: 1;
}
.af-rank-hi { color: var(--af-accent); }
.af-rank-normal { color: #CBD5E1; }
.af-pop-row-thumb {
  width: 96px;
  height: 68px;
  background-size: cover;
  background-position: center;
  background-color: #E2E8F0;
  border-radius: 8px;
  flex-shrink: 0;
  display: block;
}
.af-pop-row-body { flex: 1; min-width: 0; }
.af-pop-row-body a { text-decoration: none; }
.af-pop-row-title {
  font-size: 1rem;
  font-weight: 700;
  color: #0F172A;
  margin: 5px 0 7px;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.af-pop-row-body a:hover .af-pop-row-title { color: var(--af-accent); }

/* ── 신규/인기 페이지 타이틀 숨김 (콘텐츠로 대체) ── */
.page-id-new-page .entry-title,
body.page-template-default .entry-header { display: none; }

/* ── 반응형 ── */
@media (max-width: 860px) {
  .af-home-wrap { padding: 24px 16px 48px; }
  .af-top5-grid { grid-template-columns: repeat(3, 1fr); }
  .af-catlatest-grid { grid-template-columns: repeat(2, 1fr); }
  .af-filter-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
}
@media (max-width: 560px) {
  .af-issue-slide { flex-direction: column; }
  .af-issue-thumb { width: 100%; height: 200px; flex-shrink: 0; }
  .af-issue-title { font-size: 1.2rem; }
  .af-issue-body { padding: 20px; }
  .af-top5-grid { grid-template-columns: repeat(2, 1fr); }
  .af-catlatest-grid { grid-template-columns: 1fr; }
  .af-filter-grid { grid-template-columns: 1fr; }
  .af-pop-row { gap: 12px; }
  .af-pop-row-thumb { width: 72px; height: 52px; }
  .af-pop-row-rank { font-size: 1.2rem; min-width: 24px; }
}

/* ══ 커스텀 푸터 ══════════════════════════════════════════════ */
/* 기존 GeneratePress 푸터 숨김 */
.site-footer { display: none !important; }
/* 푸터 위 불필요한 여백 완전 제거 */
.site-content,
.site-main,
.content-area,
#primary,
#content { padding-bottom: 0 !important; margin-bottom: 0 !important; }
body.page-id-812 .site-content,
body.page-id-812 #primary,
body.page-id-812 #content { padding: 0 !important; margin: 0 !important; }

.af-footer {
  background: #0F172A;
  color: #94A3B8;
  margin-top: 40px;
}
.af-footer-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 48px 24px 36px;
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 48px;
  align-items: start;
}
.af-footer-brand { display: flex; flex-direction: column; gap: 10px; }
.af-footer-logo {
  font-size: 1.35rem;
  font-weight: 900;
  color: #F1F5F9;
  text-decoration: none;
  letter-spacing: -0.03em;
}
.af-footer-logo:hover { color: var(--af-accent); }
.af-footer-tagline {
  font-size: 0.82rem;
  color: #64748B;
  line-height: 1.6;
  margin: 0;
}
.af-footer-cols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.af-footer-col-title {
  font-size: 0.78rem;
  font-weight: 800;
  color: #F1F5F9;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 0 0 14px;
}
.af-footer-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 9px;
}
.af-footer-col ul li a {
  font-size: 0.85rem;
  color: #94A3B8;
  text-decoration: none;
  transition: color .15s;
}
.af-footer-col ul li a:hover { color: #F1F5F9; }
.af-footer-muted {
  font-size: 0.78rem;
  color: #475569;
}
/* 하단 바 */
.af-footer-bottom {
  border-top: 1px solid #1E293B;
}
.af-footer-bottom-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 18px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.af-footer-bottom-links {
  display: flex;
  gap: 20px;
}
.af-footer-bottom-links a {
  font-size: 0.78rem;
  color: #64748B;
  text-decoration: none;
  transition: color .15s;
}
.af-footer-bottom-links a:hover { color: #94A3B8; }
.af-footer-copy {
  font-size: 0.78rem;
  color: #475569;
  margin: 0;
}
/* 푸터 반응형 */
@media (max-width: 860px) {
  .af-footer-inner {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 36px 20px 28px;
  }
  .af-footer-cols { grid-template-columns: repeat(2, 1fr); gap: 24px; }
}
@media (max-width: 560px) {
  .af-footer-cols { grid-template-columns: 1fr; gap: 20px; }
  .af-footer-bottom-inner { flex-direction: column; align-items: flex-start; gap: 8px; }
}

/* page-template-default entry-header 숨김 취소 (About/Contact 보호) */
body.page-template-default .entry-header { display: block !important; }
/* 신규/인기 페이지 타이틀만 숨김 (body class 이용) */
body.page-id-809 .entry-title,
body.page-id-810 .entry-title { display: none; }

/* ── 정적 홈 페이지 (page-id-812): 빈 콘텐츠 영역 제거 ── */
body.page-id-812 .entry-header,
body.page-id-812 .entry-content,
body.page-id-812 .entry-footer,
body.page-id-812 .page-header { display: none !important; }
body.page-id-812 #primary { padding: 0 !important; }
body.page-id-812 .inside-article { padding: 0 !important; min-height: 0 !important; }
body.page-id-812 article { border: none !important; background: transparent !important; box-shadow: none !important; }

/* ── 전체(/all/) 페이지: 포스트 그리드 여백 ── */
body.page-id-813 .site-main { padding-top: 20px; }

/* ── Lazy 이미지 스켈레톤 shimmer ── */
.af-lazy-bg {
  background-color: #E2E8F0;
  position: relative;
  overflow: hidden;
}
.af-lazy-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 25%, rgba(255,255,255,0.45) 50%, transparent 75%);
  background-size: 400% 100%;
  animation: af-shimmer 1.3s ease-in-out infinite;
}
.af-bg-loaded::after { display: none; }
@keyframes af-shimmer {
  0%   { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}


/* ── 홈(블로그 인덱스) 게시글 없을 때 no-results 숨김 ── */
.home .no-results.not-found,
.home .content-area .page-header,
.home .widget-area,
.home #right-sidebar { display: none !important; }
.home .content-area { display: none !important; }

/* ── 404 / no-results: 검색창 숨기고 깔끔한 메시지만 ── */
.error404 .search-form,
.error404 .widget_search,
.no-results .search-form,
.no-results .widget_search { display: none !important; }

/* 404 페이지 중앙 정렬 */
.error404 .page-content,
.no-results .page-content {
  text-align: center;
  padding: 60px 20px;
}
.error404 .page-header .page-title,
.no-results .page-header .page-title {
  font-size: 1.6rem;
  color: #1E293B;
}
