/*
Theme Name: 고딕 패스트 (Gothic Past) (astra)
Template: astra
Version: 1.261031.0131
Description: 고딕 패스트 (Gothic Past) 전용 꾸미기. 설계서(profile.json)의 색·글꼴이 :root 변수로 들어오고, 주제 맞춤 CSS 는 아래 "주제 맞춤" 절에 쓴다.
*/
:root {
  --pbn-primary: #334155;
  --pbn-accent: #0ea5e9;
  --pbn-bg: #f8fafc;
  --pbn-text: #0f172a;
  --pbn-heading-font: "IBM Plex Sans KR", sans-serif;
  --pbn-body-font: "Noto Sans KR", sans-serif;
}
body { background: var(--pbn-bg); color: var(--pbn-text); font-family: var(--pbn-body-font); font-size: 16px; line-height: 1.75; }
h1, h2, h3, h4, .site-title { font-family: var(--pbn-heading-font); }
a { color: var(--pbn-primary); }
a:hover { color: var(--pbn-accent); }
.site-header, .main-header-bar, .site-header-inner { border-bottom: 3px solid var(--pbn-primary); }

/* 글 속 요소 — Serotonin 글 엔진이 이 클래스를 쓴다(요약 상자·표·체크리스트·자주 묻는 질문). 이름은 고정, 모양은 노드마다 다르게 */
.pbn-summary { background: color-mix(in srgb, var(--pbn-primary) 8%, white); border-left: 4px solid var(--pbn-primary); padding: 1rem 1.25rem; margin: 1.5rem 0; border-radius: 6px; }
.pbn-summary strong { color: var(--pbn-primary); }
.pbn-table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: 15px; }
.pbn-table th { background: var(--pbn-primary); color: #fff; text-align: left; padding: .6rem .75rem; }
.pbn-table td { border-bottom: 1px solid #e5e7eb; padding: .6rem .75rem; }
.pbn-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.pbn-checklist { list-style: none; padding-left: 0; }
.pbn-checklist li { padding-left: 1.75rem; position: relative; margin: .4rem 0; }
.pbn-checklist li::before { content: "✓"; position: absolute; left: .25rem; color: var(--pbn-accent); font-weight: 700; }
.pbn-faq details { border: 1px solid #e5e7eb; border-radius: 6px; padding: .75rem 1rem; margin: .5rem 0; }
.pbn-faq summary { cursor: pointer; font-weight: 600; font-family: var(--pbn-heading-font); }
.pbn-author-box { display: flex; gap: 1rem; align-items: center; padding: 1rem; background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; }

/* 모바일(390px) 우선 — 12px 미만 글자·44px 미만 탭 금지 */
@media (max-width: 480px) {
  body { font-size: 16px; }
  .pbn-table { font-size: 14px; }
  .site-header a, .main-navigation a { min-height: 44px; display: inline-flex; align-items: center; }
}

/* ===== 주제 맞춤 (⑧ 꾸미기에서 세션이 쓴다: 첫 화면 구성·분위기·헤더·사이드바·푸터) ===== */

/* ===== gothicpast.com 주제 맞춤 (A 석조 아카이브 — 석회암 회색 + 짙은 남색, 세리프 표제, 정돈된 격자) ===== */
:root { --gp-navy: #1e2a44; --gp-stone: #e7e2d6; --gp-stone-2: #d6d0c2; --gp-stone-bg: #f4f2ec; --gp-ink: #1f2937; --gp-muted: #57606d; --gp-serif: "Noto Serif KR", "Nanum Myeongjo", Georgia, serif; }
body, .ast-separate-container, .ast-plain-container, .site-content { background: var(--gp-stone-bg); }
body { word-break: keep-all; color: var(--gp-ink); }
h1, .entry-title, .page-title, .gp-title span { font-family: var(--gp-serif); letter-spacing: -.01em; }
a { color: var(--gp-navy); }
a:hover, a:focus { color: var(--pbn-primary); }

/* 헤더 — 석판 띠 + 남색 아랫선 */
.site-header .ast-primary-header-bar, .main-header-bar { background: #fbfaf6; border-bottom: 3px solid var(--gp-navy); }
.site-header { border-bottom: 0; }
.ast-site-identity .site-title, .ast-site-identity .site-description { display: none; }
.custom-logo-link img, .site-logo-img img { width: 280px !important; max-width: 100%; height: auto !important; max-height: none !important; }
.main-header-menu .menu-link { color: var(--gp-navy); font-weight: 600; min-height: 44px; display: inline-flex; align-items: center; }
.main-header-menu .menu-link:hover { color: var(--pbn-primary); }

/* 홈 */
.gp-home-wrap { width: 100%; }
.gp-home { padding: 8px 0 40px; }
.gp-band { position: relative; display: grid; grid-template-columns: 1.25fr 1fr; align-items: end; gap: 12px; background: var(--gp-navy); color: var(--gp-stone); border-radius: 4px; padding: 40px 40px 0; margin: 18px 0 34px; overflow: hidden; border-bottom: 6px solid var(--gp-stone-2); }
.gp-band::before { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(231,226,214,.25); pointer-events: none; }
.gp-band-text { padding-bottom: 36px; position: relative; }
.gp-kicker { display: inline-block; font-size: .8rem; letter-spacing: .18em; color: #b9c2d3; border-bottom: 1px solid rgba(231,226,214,.4); padding-bottom: 4px; margin-bottom: 14px; }
.gp-band h1 { color: #fff; font-size: 2.3rem; line-height: 1.25; margin: 0 0 12px; }
.gp-lead { font-family: var(--gp-serif); font-size: 1.15rem; color: var(--gp-stone); margin: 0 0 10px; }
.gp-sub { color: #c9cfdb; margin: 0; max-width: 46ch; }
.gp-facade { color: var(--gp-stone); width: 100%; max-width: 380px; height: auto; justify-self: end; opacity: .9; display: block; }

.gp-title { display: flex; align-items: baseline; gap: 12px; margin: 30px 0 14px; padding-bottom: 8px; border-bottom: 1px solid var(--gp-stone-2); font-size: 1.35rem; }
.gp-title span { color: var(--gp-navy); font-weight: 700; }
.gp-title small { font-size: .82rem; color: var(--gp-muted); font-weight: 400; letter-spacing: .04em; }

.gp-tiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; background: var(--gp-stone-2); border: 1px solid var(--gp-stone-2); }
.gp-tile { margin: 0; background: #fbfaf6; }
.gp-tile a { display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 20px 18px 22px; text-decoration: none; min-height: 44px; transition: background .15s; }
.gp-tile a:hover { background: #fff; }
.gp-num { font-family: Georgia, "Times New Roman", serif; font-size: 1.5rem; color: #94a3b8; line-height: 1; }
.gp-tile strong { font-family: var(--gp-serif); font-size: 1.12rem; color: var(--gp-navy); }
.gp-tile small { color: var(--gp-muted); font-size: .9rem; line-height: 1.55; }

.gp-ledger { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--gp-navy); }
.gp-ledger li { display: grid; grid-template-columns: 5.5rem 1fr 6rem; gap: 16px; align-items: baseline; padding: 16px 4px; border-bottom: 1px solid var(--gp-stone-2); margin: 0; }
.gp-no { font-family: Georgia, serif; color: #8792a2; font-size: .9rem; letter-spacing: .04em; }
.gp-entry a { font-family: var(--gp-serif); font-weight: 700; font-size: 1.1rem; text-decoration: none; color: var(--gp-navy); }
.gp-entry a:hover { text-decoration: underline; }
.gp-entry p { margin: 4px 0 0; color: var(--gp-muted); font-size: .95rem; }
.gp-cat { display: inline-block; font-size: .78rem; color: var(--gp-navy); border: 1px solid var(--gp-stone-2); background: var(--gp-stone); padding: 0 .45rem; margin-right: .5rem; vertical-align: 2px; }
.gp-ledger time { color: #6b7280; font-size: .88rem; text-align: right; font-variant-numeric: tabular-nums; }
.gp-empty .gp-entry p { margin: 0; }
.gp-author { margin: 34px 0 0; }
.pbn-author-box { background: #fbfaf6; border: 1px solid var(--gp-stone-2); border-left: 4px solid var(--gp-navy); border-radius: 0; }
.pbn-author-box strong { font-family: var(--gp-serif); color: var(--gp-navy); }

/* 글·목록 */
.ast-separate-container .ast-article-single, .ast-separate-container .ast-article-post, .ast-separate-container .ast-archive-description { background: #fbfaf6; border: 1px solid var(--gp-stone-2); }
.ast-archive-description .ast-archive-title { font-family: var(--gp-serif); color: var(--gp-navy); }
.entry-content h2 { font-family: var(--gp-serif); color: var(--gp-navy); border-bottom: 1px solid var(--gp-stone-2); padding-bottom: .3rem; }
.entry-content .pbn-summary { background: var(--gp-stone); border-left-color: var(--gp-navy); border-radius: 0; }
.entry-content .pbn-summary strong { color: var(--gp-navy); }
.entry-content .pbn-table th { background: var(--gp-navy); }
.entry-content .pbn-table td { border-bottom-color: var(--gp-stone-2); }
.pbn-checklist li::before { content: "✠"; color: var(--gp-navy); }
.pbn-faq details { border-color: var(--gp-stone-2); background: #fbfaf6; border-radius: 0; }
.entry-meta .posted-by, .entry-meta .author { display: none; }

/* 푸터 */
.gp-colophon { background: var(--gp-navy); color: #c9cfdb; text-align: center; font-size: .88rem; padding: 18px 16px; }
.gp-colophon-mark { color: var(--gp-stone); margin-right: 4px; }
.site-footer .site-below-footer-wrap, .ast-footer-copyright { background: #141c2e; color: #aab3c2; }
.site-footer .ast-footer-copyright p { margin: 0; }

@media (max-width: 1000px) {
  .gp-tiles { grid-template-columns: repeat(2, 1fr); }
  .gp-tile:first-child { grid-column: span 2; }
}
@media (max-width: 760px) {
  .gp-band { grid-template-columns: 1fr; padding: 26px 20px 0; margin-top: 12px; }
  .gp-band-text { padding-bottom: 6px; }
  .gp-band h1 { font-size: 1.7rem; }
  .gp-facade { justify-self: center; max-width: 230px; margin-top: 4px; }
  .gp-ledger li { grid-template-columns: 1fr; gap: 4px; padding: 14px 2px; }
  .gp-ledger time { text-align: left; }
  .custom-logo-link img, .site-logo-img img { width: 210px !important; }
}

/* ⑧ 캡처 보정 — 홈 위 여백, 글 메타(작성자 자리 "By /" 제거, 날짜만), 목록 카드 이중 테두리, 푸터 좌우 여백 */
.gp-home-wrap, .home #primary.gp-home-wrap { margin-top: 0 !important; margin-bottom: 0 !important; padding: 0 !important; }
.entry-meta { font-size: 0 !important; color: var(--gp-muted); }
.entry-meta .posted-on, .entry-meta .posted-on a, .entry-meta .cat-links, .entry-meta .cat-links a { font-size: .86rem !important; color: var(--gp-muted) !important; font-weight: 600; }
.ast-separate-container .ast-article-post.ast-archive-post, .ast-separate-container .ast-article-post:not(.ast-article-single) { background: transparent; border: 0; }
.ast-article-inner { background: #fbfaf6 !important; border: 1px solid var(--gp-stone-2); box-shadow: none !important; border-radius: 0; }
.ast-article-inner .entry-title a { color: var(--gp-navy); }
.ast-footer-copyright, .site-footer .ast-footer-copyright p { padding-left: 16px; padding-right: 16px; }
