/* 터미널ON 글 디자인 (.tmon-post) — 메인 페이지와 같은 색·글꼴 */
.tmon-post {
	--ink: #10182B; --ink2: #1B2540; --ink3: #26314F; --lime: #CFFF3E; --amber: #FFC94D;
	--paper: #FAF9F4; --paper2: #F2F0E6; --line: #E2DFD3; --muted: #5B6273; --red: #C2410C;
	--serif: "Gowun Batang", -apple-system, "Apple SD Gothic Neo", "Malgun Gothic", serif;
	--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
	font-family: var(--serif); color: var(--ink); background: var(--paper);
	font-size: 18px; line-height: 1.85; word-break: keep-all; -webkit-font-smoothing: antialiased;
	width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important;
	box-sizing: border-box;
}
.tmon-post *, .tmon-post *::before, .tmon-post *::after { box-sizing: border-box; }
.tmon-post h1, .tmon-post h2, .tmon-post h3, .tmon-post p, .tmon-post ul, .tmon-post ol, .tmon-post figure { margin: 0; padding: 0; font-family: inherit; }
.tmon-post ul, .tmon-post ol { list-style: none; }
.tmon-post a { color: var(--ink); text-decoration: underline; text-decoration-color: #9BC80A; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.tmon-post a:hover { background: var(--lime); }
.tmon-post .pw { max-width: 820px; margin: 0 auto; padding: 0 20px; }
.tmon-post .hl { background: linear-gradient(transparent 58%, var(--lime) 58%, var(--lime) 92%, transparent 92%); padding: 0 .08em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.tmon-post u.ul { text-decoration: underline; text-decoration-color: #9BC80A; text-decoration-thickness: 2.5px; text-underline-offset: 5px; font-weight: 700; }
.tmon-post b, .tmon-post strong { font-weight: 700; }

/* ---------- 머리말 (메인 히어로와 같은 모양) ---------- */
.tmon-post .ph { background: var(--ink); color: #EEF1F7; padding: 44px 0 52px; position: relative; overflow: hidden; }
.tmon-post .ph::after { content: ""; position: absolute; inset: auto -10% -40px -10%; height: 80px; background: repeating-linear-gradient(90deg, var(--lime) 0 38px, transparent 38px 64px); opacity: .08; transform: skewY(-2deg); }
.tmon-post .crumb { font-size: 14px; color: #9AA4BB; }
.tmon-post .crumb a { color: #C2C9D8; text-decoration: none; }
.tmon-post .crumb a:hover { color: var(--lime); background: none; }
.tmon-post .ph .eyebrow { font-family: var(--mono); font-size: 13px; letter-spacing: .08em; color: #9AA4BB; text-transform: uppercase; margin-top: 18px; }
.tmon-post .ph h1 { font-size: clamp(32px, 5.2vw, 46px); font-weight: 700; line-height: 1.25; color: #fff; margin: 10px 0 14px; }
.tmon-post .ph h1 em { font-style: normal; color: var(--lime); }
.tmon-post .ph .lead { font-size: 18.5px; color: #C2C9D8; line-height: 1.75; }
.tmon-post .ph .lead b { color: #fff; border-bottom: 2px solid var(--lime); }
.tmon-post .tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 18px; }
.tmon-post .tags span { font-size: 14px; font-weight: 700; border: 1px solid var(--ink3); color: #E9ECF3; border-radius: 999px; padding: 4px 12px; }
.tmon-post .status { display: inline-flex; align-items: center; gap: 8px; margin-top: 20px; background: rgba(207,255,62,.1); border: 1px solid rgba(207,255,62,.35); color: #EEF1F7; border-radius: 10px; padding: 9px 14px; font-size: 15px; position: relative; z-index: 1; }
.tmon-post .status i { width: 9px; height: 9px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 0 4px rgba(207,255,62,.2); flex: none; }
.tmon-post .status small { font-family: var(--mono); font-size: 13px; color: #9AA4BB; }

/* ---------- 본문 ---------- */
.tmon-post .pb { padding: 34px 0 10px; }
.tmon-post .pb > .pw > p, .tmon-post .sec > p { margin: 0 0 16px; }
.tmon-post .sec { margin-top: 48px; }
.tmon-post h2 { font-size: clamp(24px, 3.4vw, 29px); font-weight: 700; line-height: 1.35; margin: 0 0 16px; display: flex; align-items: baseline; gap: 12px; scroll-margin-top: 84px; }
.tmon-post h2 .no { font-family: var(--mono); font-size: 15px; color: var(--ink); background: var(--lime); border-radius: 7px; padding: 2px 8px; flex: none; position: relative; top: -3px; }
.tmon-post h3 { font-size: 21px; font-weight: 700; margin: 26px 0 10px; }

/* 한눈에 보기 */
.tmon-post .facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 4px; }
.tmon-post .fact { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; }
.tmon-post .fact span { display: block; font-family: var(--mono); font-size: 12.5px; letter-spacing: .04em; color: var(--muted); }
.tmon-post .fact b { display: block; font-size: 18px; line-height: 1.5; margin-top: 2px; }
.tmon-post .fact.wide { grid-column: 1 / -1; }

/* 목차 */
.tmon-post .toc { background: var(--paper2); border-radius: 16px; padding: 18px 20px; margin-top: 26px; }
.tmon-post .toc p { font-family: var(--mono); font-size: 13px; color: var(--muted); letter-spacing: .06em; margin: 0 0 8px; }
.tmon-post .toc ol { counter-reset: toc 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 18px; }
.tmon-post .toc li { counter-increment: toc; font-size: 16.5px; }
.tmon-post .toc li::before { content: counter(toc, decimal-leading-zero); font-family: var(--mono); font-size: 13px; color: var(--muted); margin-right: 8px; }
.tmon-post .toc a { text-decoration: none; }
.tmon-post .toc a:hover { text-decoration: underline; background: none; }

/* 표 */
.tmon-post .tbl { overflow-x: auto; border-radius: 14px; border: 1px solid var(--line); background: #fff; margin: 4px 0 14px; }
.tmon-post .tbl table { width: 100%; border-collapse: collapse; font-size: 16.5px; border: 0; }
.tmon-post .tbl th { background: var(--ink); color: #fff; font-weight: 700; text-align: left; padding: 11px 14px; border: 0; white-space: nowrap; }
.tmon-post .tbl td { padding: 12px 14px; border: 0; border-top: 1px solid var(--line); vertical-align: top; background: #fff; }
.tmon-post .tbl td:first-child { font-weight: 700; white-space: nowrap; }
.tmon-post .vs td:nth-child(2) { background: #FBFFE9; }

/* 안내 상자 */
.tmon-post .callout { border-left: 6px solid var(--lime); background: #fff; border-radius: 0 14px 14px 0; padding: 16px 18px; margin: 16px 0; border-top: 1px solid var(--line); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.tmon-post .callout b:first-child { display: block; font-size: 17px; margin-bottom: 4px; }
.tmon-post .callout.warn { border-left-color: var(--amber); }

/* 방법 카드 */
.tmon-post .ways { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.tmon-post .way { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 18px; }
.tmon-post .way .ic { display: inline-block; font-family: var(--mono); font-size: 12.5px; font-weight: 700; background: var(--ink); color: var(--lime); border-radius: 7px; padding: 2px 9px; }
.tmon-post .way h3 { margin: 10px 0 6px; font-size: 20px; }
.tmon-post .way p { font-size: 16.5px; line-height: 1.75; }

/* 도착지 */
.tmon-post .dest { display: grid; gap: 10px; }
.tmon-post .dest > div { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; display: grid; grid-template-columns: 130px 1fr; gap: 12px; align-items: start; }
.tmon-post .dest b { font-size: 17px; }
.tmon-post .dest p { display: flex; flex-wrap: wrap; gap: 6px; }
.tmon-post .dest p span { font-size: 15px; background: var(--paper2); border-radius: 7px; padding: 2px 9px; }

/* 목록 */
.tmon-post .chk { display: grid; gap: 10px; margin: 6px 0 14px; }
.tmon-post .chk li { position: relative; padding: 14px 16px 14px 48px; background: #fff; border: 1px solid var(--line); border-radius: 14px; font-size: 17px; line-height: 1.7; }
.tmon-post .chk li::before { content: "✓"; position: absolute; left: 14px; top: 13px; width: 24px; height: 24px; border-radius: 7px; background: var(--lime); color: var(--ink); font-weight: 700; font-size: 14px; display: grid; place-items: center; }

/* 타임라인 */
.tmon-post .tl { border-left: 3px solid var(--ink); margin: 8px 0 16px 8px; padding-left: 22px; display: grid; gap: 16px; }
.tmon-post .tl li { position: relative; }
.tmon-post .tl li::before { content: ""; position: absolute; left: -31px; top: 8px; width: 15px; height: 15px; border-radius: 50%; background: var(--lime); border: 3px solid var(--ink); }
.tmon-post .tl time { display: block; font-family: var(--mono); font-size: 14px; font-weight: 700; color: var(--muted); }
.tmon-post .tl li.next::before { background: #fff; border-style: dashed; }

/* 자주 묻는 질문 */
.tmon-post .faq { display: grid; gap: 10px; }
.tmon-post details { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 0 18px; }
.tmon-post summary { cursor: pointer; list-style: none; font-size: 18px; font-weight: 700; padding: 16px 28px 16px 0; position: relative; }
.tmon-post summary::-webkit-details-marker { display: none; }
.tmon-post summary::before { content: "Q"; font-family: var(--mono); color: var(--ink); background: var(--lime); border-radius: 6px; padding: 0 7px; margin-right: 10px; font-size: 14px; }
.tmon-post summary::after { content: "+"; position: absolute; right: 2px; top: 13px; font-size: 22px; font-family: var(--mono); }
.tmon-post details[open] summary::after { content: "–"; }
.tmon-post details p { padding: 0 0 16px; font-size: 17px; color: #333B4E; }

/* 함께 보기 */
.tmon-post .rel { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.tmon-post .rel a { display: flex; justify-content: space-between; gap: 10px; align-items: center; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--lime); border-radius: 14px; padding: 16px 18px; text-decoration: none; font-size: 17.5px; font-weight: 700; }
.tmon-post .rel a::after { content: "→"; flex: none; }
.tmon-post .rel a:hover { border-color: var(--ink); background: #fff; }

/* ---------- 마무리 (메인의 공식 예매처 상자와 같은 모양) ---------- */
.tmon-post .pf { padding: 48px 0 40px; }
.tmon-post .official { border: 1.5px solid var(--ink); border-radius: 20px; padding: 24px; background: #fff; }
.tmon-post .official .eyebrow { font-family: var(--mono); font-size: 13px; letter-spacing: .08em; color: var(--muted); text-transform: uppercase; }
.tmon-post .official h2 { margin: 4px 0 8px; }
.tmon-post .official .links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.tmon-post .official .links a { text-decoration: none; border: 1.5px solid var(--ink); border-radius: 999px; padding: 7px 15px; font-size: 15px; font-weight: 700; }
.tmon-post .official .links a:hover { background: var(--ink); color: var(--lime); }
.tmon-post .src { font-size: 14px; color: var(--muted); margin-top: 22px; line-height: 1.7; }
.tmon-post .src b { color: var(--ink); }
.tmon-post .tmon-notice { margin: 14px 0 0; padding: 14px 0 0; text-align: center; font-size: 14px; }

/* 글 속 시간표·터미널 상자 여백 */
.tmon-post .tmon-tt, .tmon-post .tmon-term { margin: 14px 0 18px; }
.tmon-post .tmon-tt__book a { text-decoration: none; }

/* 테마 제목·글 정보 숨기기 (머리말이 대신함) + 여백 정리 */
body:has(.tmon-post) { overflow-x: clip; }
body:has(.tmon-post) :is(.entry-title, .page-title, .wp-block-post-title, .entry-header, .entry-meta, .post-thumbnail, .wp-block-post-featured-image) { display: none !important; }
body.tmon-chrome:has(.tmon-post) main > :is(.wp-block-group, .wp-block-template-part, header):not(:has(.tmon-post)) { display: none !important; }
body.tmon-chrome:has(.tmon-post) :is(.wp-site-blocks, main, .site-main, .site-content, #content, #primary, .content-area, article, .entry-content, .wp-block-post-content, .wp-block-group):has(.tmon-post) { padding-top: 0 !important; margin-top: 0 !important; }

@media (max-width: 640px) {
	.tmon-post { font-size: 17.5px; }
	.tmon-post .pw { padding: 0 18px; }
	.tmon-post .ph { padding: 30px 0 40px; }
	.tmon-post .ph h1 { font-size: 32px; }
	.tmon-post .ph .lead { font-size: 17.5px; }
	.tmon-post .facts, .tmon-post .ways, .tmon-post .rel, .tmon-post .toc ol { grid-template-columns: 1fr; }
	.tmon-post .dest > div { grid-template-columns: 1fr; gap: 6px; }
	.tmon-post .tbl table { font-size: 15.5px; }
	.tmon-post .tbl th, .tmon-post .tbl td { padding: 10px 11px; }
	.tmon-post .official { padding: 20px 16px; }
}
