/*
Theme Name: GanaToday
Theme URI: https://www.ganatoday.com
Author: 다메섹 교수 (그린아프로)
Description: ganatoday.com 크립토/비트코인 뉴스 사이트용 커스텀 테마. agitok.kr Blogger 테마(NewsOnly 스킨)의 비주얼 아이덴티티를 이식하고, 광고 구조(쿠팡 중간+하단, 애드센스 상한), TOC, 24시간 팝업 제한 기능을 서버사이드로 재구현.
Version: 1.3
Requires PHP: 7.4
Text Domain: ganatoday
*/

:root {
  --gt-max-width: 1100px;

  /* ===== NewsOnly 스킨에서 이식한 색상 ===== */
  --gt-page-bg: #EFEFEF;       /* 페이지 배경 (카드 밖 여백) */
  --gt-card-bg: #FFFFFF;       /* 카드(콘텐츠) 배경 */
  --gt-ink: #555555;           /* 본문 텍스트 */
  --gt-title: #333333;         /* 포스트 제목 */
  --gt-header-title: #424242;  /* 사이트 제목 */
  --gt-accent: #0496DA;        /* 링크/포인트 블루 */
  --gt-accent-hover: #23B9F7;
  --gt-orange: #CC6600;        /* 보조 포인트(오렌지) */
  --gt-border: #E0E0E0;
  --gt-border-strong: #CCCCCC;
  --gt-sidebar-text: #3E3D3D;
  --gt-muted: #999999;

  /* 하위 호환 별칭 (다른 파일에서 참조) */
  --gt-text: var(--gt-ink);
  --gt-bg: var(--gt-card-bg);

  --gt-font-display: 'Oswald', Arial, Helvetica, sans-serif;
  --gt-font-body: 'Trebuchet MS', Arial, Helvetica, sans-serif;
  --gt-font-mono: 'IBM Plex Mono', 'Courier New', monospace;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--gt-font-body);
  color: var(--gt-ink);
  background: var(--gt-page-bg);
  font-size: 14px;
  line-height: 1.6;
}

a { color: var(--gt-accent); text-decoration: none; }
a:hover { color: var(--gt-accent-hover); text-decoration: none; }

img { max-width: 100%; height: auto; display: block; }

.gt-container {
  max-width: var(--gt-max-width);
  margin: 0 auto;
  padding: 0 20px;
}

/* ===== 카드 셸 (NewsOnly의 #outer-wrapper: 그림자 뜬 흰 카드) ===== */
.gt-shell {
  max-width: calc(var(--gt-max-width) + 40px);
  margin: 20px auto 0;
  background: var(--gt-card-bg);
  box-shadow: 0 0 10px 3px rgba(0,0,0,0.08);
}

/* ===== 헤더 ===== */
.gt-header {
  border-bottom: 3px solid var(--gt-border-strong);
  padding: 24px 0 18px;
}
.gt-header-inner {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
.gt-logo {
  display: block;
  font-family: var(--gt-font-display);
  font-size: 30px;
  font-weight: 400;
  letter-spacing: .01em;
  color: var(--gt-header-title);
}
.gt-logo:hover { color: var(--gt-header-title); text-decoration: none; }
.gt-tagline {
  margin: 4px 0 0;
  font-size: 12px;
  color: var(--gt-muted);
}
.gt-nav ul {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin: 0;
  padding: 0;
}
.gt-nav a {
  color: var(--gt-sidebar-text);
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.gt-nav a:hover { color: var(--gt-accent); }

/* ===== 카테고리 바로가기 (홈페이지) ===== */
.gt-cat-quicklinks {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  padding: 14px 20px;
  border-bottom: 1px solid var(--gt-border);
  background: #FAFAFA;
}
.gt-cat-quicklinks a {
  font-family: var(--gt-font-display);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: .03em;
  color: var(--gt-sidebar-text);
  padding: 4px 14px;
  border-right: 1px solid var(--gt-border);
}
.gt-cat-quicklinks a:first-child { padding-left: 0; }
.gt-cat-quicklinks a:last-child { border-right: none; }
.gt-cat-quicklinks a:hover { color: var(--gt-accent); }

/* ===== 본문 레이아웃 (사이드바 포함) ===== */
.gt-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 24px;
  padding: 20px 0 32px;
  align-items: start;
}
@media (max-width: 900px) {
  .gt-layout { grid-template-columns: 1fr; }
}

/* ===== 최신 뉴스 섹션 헤딩 ===== */
.gt-section-latest { padding: 24px 20px 20px; }
.gt-section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  border-bottom: 2px solid var(--gt-accent);
  margin-bottom: 18px;
  padding-bottom: 8px;
}
.gt-section-title {
  font-family: var(--gt-font-display);
  font-size: 18px;
  font-weight: 400;
  letter-spacing: .02em;
  color: var(--gt-sidebar-text);
  margin: 0;
  text-transform: uppercase;
}
.gt-section-more {
  font-size: 12px;
  color: var(--gt-muted);
}
.gt-section-more:hover { color: var(--gt-accent); }

/* ===== 포스트 카드 그리드 ===== */
.gt-post-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
@media (max-width: 640px) {
  .gt-post-grid { grid-template-columns: 1fr; }
}
.gt-card { display: block; margin-bottom: 6px; }
.gt-card-thumb {
  display: block;
  position: relative;
  width: 100%;
  padding-bottom: 58%;
  overflow: hidden;
  background: #f2f2f2;
}
.gt-card-thumb img {
  position: absolute; top: 0; left: 0;
  width: 100%; height: 100%; object-fit: cover;
}
.gt-card-body { padding-top: 10px; }
.gt-card-title {
  font-family: var(--gt-font-display);
  margin: 0 0 6px;
  font-size: 17px;
  line-height: 1.3;
  font-weight: 400;
}
.gt-card-title a { color: var(--gt-title); display: block; }
.gt-card-title a:hover { color: var(--gt-accent); }
.gt-card-meta { color: var(--gt-muted); font-size: 12px; margin-bottom: 6px; }
.gt-card-excerpt { font-size: 13px; color: var(--gt-ink); margin: 0 0 8px; }

/* ===== 더보기 버튼 (NewsOnly .readmore) ===== */
.gt-readmore { text-align: right; }
.gt-readmore a {
  display: inline-block;
  background: #ECECEC;
  color: var(--gt-accent);
  font-size: 11px;
  padding: 7px 13px;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.gt-readmore a:hover { background: var(--gt-accent); color: #fff; }

/* ===== 단일 포스트 ===== */
.gt-post-title {
  font-family: var(--gt-font-display);
  font-size: 24px;
  font-weight: 400;
  color: var(--gt-title);
  margin: 0 0 10px;
  line-height: 1.3;
}
.gt-post-meta { color: var(--gt-muted); font-size: 12px; margin-bottom: 18px; }
.gt-post-thumb { margin-bottom: 20px; }
.post-body h2 { font-family: var(--gt-font-display); font-size: 20px; font-weight: 400; margin-top: 32px; scroll-margin-top: 90px; color: var(--gt-title); }
.post-body { font-size: 15px; line-height: 1.75; }

/* ===== TOC ===== */
.gt-toc {
  border: 1px solid var(--gt-border);
  padding: 16px;
  margin: 18px 0 26px;
  background: #FAFAFA;
}
.gt-toc-title {
  font-family: var(--gt-font-display);
  font-weight: 400;
  text-transform: uppercase;
  font-size: 13px;
  letter-spacing: .04em;
  border-bottom: 2px solid var(--gt-accent);
  padding-bottom: 6px;
  margin-bottom: 10px;
}
.gt-toc ul { list-style: none; margin: 0; padding: 0; }
.gt-toc li { margin: 6px 0; padding-left: 12px; border-left: 2px solid var(--gt-border); }
.gt-toc a { color: var(--gt-sidebar-text); font-size: 13px; }
.gt-toc a:hover, .gt-toc a.active { color: var(--gt-accent); }

.gt-mobile-toc { display: none; border: 1px solid var(--gt-border); padding: 12px 16px; margin-bottom: 20px; background: #FAFAFA; }
@media (max-width: 900px) {
  .gt-toc { display: none; }
  .gt-mobile-toc { display: block; }
}

/* ===== 광고 ===== */
.gt-ad-wrap { margin: 26px auto; text-align: center; clear: both; }
.gt-ad-wrap.gt-ad-bottom { margin-top: 30px; padding-top: 18px; border-top: 1px solid var(--gt-border); }
.gt-sidebar-ad { border: 1px solid var(--gt-border); padding: 12px; text-align: center; background: #FAFAFA; }

/* ===== 쿠팡 파트너스 필수 고지 문구 ===== */
.gt-coupang-disclosure {
  font-size: 11px;
  color: var(--gt-muted);
  text-align: center;
  margin-top: 6px;
  line-height: 1.4;
}

/* ===== 쿠팡 스토어 링크 (사이드바) ===== */
.gt-coupang-store { padding: 12px; background: #FAFAFA; }
.gt-store-btn {
  display: block;
  padding: 13px 16px;
  background: var(--gt-orange);
  color: #fff;
  font-weight: 700;
  text-align: center;
}
.gt-store-btn:hover { background: #a85400; color: #fff; }

/* ===== 사이드바 위젯 ===== */
.gt-widget { border: none; padding: 0 0 15px; margin-bottom: 15px; }
.gt-widget-title {
  font-family: var(--gt-font-display);
  font-weight: 400;
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: .02em;
  color: var(--gt-sidebar-text);
  border-bottom: 2px solid var(--gt-accent);
  padding: 8px 0 6px 2px;
  margin-bottom: 10px;
}
.gt-widget ul { list-style: none; margin: 0; padding: 0; }
.gt-widget li {
  padding: 0 0 6px 12px;
  margin: 0 0 6px;
  font-size: 13px;
  border-left: 3px solid var(--gt-border);
}
.gt-widget li a { color: var(--gt-sidebar-text); }
.gt-widget li a:hover { color: var(--gt-accent); }

/* ===== 팝업 ===== */
.gt-popup-overlay {
  display: none;
  position: fixed; inset: 0;
  background: rgba(0,0,0,.55);
  z-index: 9999;
  align-items: center; justify-content: center;
}
.gt-popup-content {
  background: #fff; padding: 22px;
  max-width: 360px; width: 90%; text-align: center;
  box-shadow: 0 0 20px rgba(0,0,0,.2);
}
.gt-popup-buttons { display: flex; gap: 8px; margin-top: 16px; }
.gt-popup-buttons > * { flex: 1; padding: 10px; cursor: pointer; border: 1px solid var(--gt-border); font-family: var(--gt-font-body); }
.gt-popup-close { background: #f2f2f2; color: var(--gt-ink); }
.gt-popup-go { background: var(--gt-accent); color: #fff; border-color: var(--gt-accent); }
.gt-popup-go:hover { background: var(--gt-accent-hover); color: #fff; }

/* ===== 푸터 (NewsOnly #copyrights) ===== */
.gt-footer {
  background: #EEE;
  border-top: 1px solid var(--gt-border);
  padding: 24px 0;
  color: #434141;
  font-size: 12px;
  text-align: center;
  margin-top: 0;
}
.gt-footer p { max-width: var(--gt-max-width); margin-left: auto; margin-right: auto; }
