/* =========================================================
   PROJECT VAN — Tistory Skin
   Base design from PROJECT VAN brand site
   ========================================================= */
:root{
  --white:#fff; --text:#333; --text-light:#555; --ink:#1a1a2e;
  --primary:#7E57C2; --primary-light:#9575CD; --primary-dark:#5E35B1; --primary-bg:#EDE7F6;
  --violet:#a78bfa; --bg:#F5F5F5; --bg2:#FAFAFA;
  --green:#4CAF50; --pink:#E91E63; --gold:#FFC107;
  --line:#ece8f5;
  --grad:linear-gradient(135deg,#7E57C2 0%,#9575CD 100%);
  --grad-deep:linear-gradient(135deg,#5E35B1 0%,#7E57C2 100%);
  --shadow:0 6px 24px rgba(94,53,177,.10);
  --shadow-lg:0 18px 50px rgba(94,53,177,.20);
  --shadow-cta:0 4px 15px rgba(94,53,177,.35);
  --radius:16px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;font-family:'Noto Sans KR',sans-serif;color:var(--text);
  background:var(--bg2);line-height:1.7;-webkit-font-smoothing:antialiased;
  word-break:keep-all;overflow-wrap:break-word;
}
img,svg,video,iframe{max-width:100%;}
h1,h2,h3{margin:0;letter-spacing:-.02em;line-height:1.3;color:var(--ink);}
p{margin:0;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px;}

/* ---------- 버튼 ---------- */
.btn{display:inline-block;font-weight:700;border-radius:50px;padding:13px 26px;font-size:15px;cursor:pointer;border:none;transition:transform .15s,box-shadow .15s;}
.btn-primary{background:var(--grad);color:#fff;box-shadow:var(--shadow-cta);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(94,53,177,.45);}
.btn-ghost{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.4);}
.btn-ghost:hover{background:rgba(255,255,255,.24);}
.btn-kakao{background:#FEE500;color:#3C1E1E;box-shadow:0 4px 14px rgba(254,229,0,.45);}
.btn-kakao:hover{transform:translateY(-2px);background:#F6DC00;box-shadow:0 8px 20px rgba(254,229,0,.55);}

/* ---------- 상단 네비게이션 ---------- */
.site-nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.nav-inner{display:flex;align-items:center;height:66px;gap:18px;}
.brand{display:flex;align-items:center;gap:10px;font-weight:900;font-size:19px;color:var(--ink);}
.brand .mark{width:34px;height:34px;border-radius:10px;background:var(--grad);display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px;font-weight:900;box-shadow:var(--shadow-cta);}
.gnb{margin-left:8px;flex:1;min-width:0;overflow-x:auto;}
.gnb ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:4px;white-space:nowrap;}
.gnb li{position:relative;}
.gnb a{display:inline-block;font-weight:700;font-size:14.5px;color:var(--ink);padding:9px 12px;border-radius:9px;transition:background .15s,color .15s;}
.gnb a:hover{color:var(--primary-dark);background:var(--primary-bg);}
.nav-right{display:flex;align-items:center;gap:12px;margin-left:auto;}
.nav-right .rss{font-size:12px;font-weight:800;letter-spacing:.5px;color:var(--violet);border:1px solid var(--line);border-radius:8px;padding:6px 9px;}
.nav-right .rss:hover{color:var(--primary);border-color:var(--primary-light);}
.nav-cta{font-size:14px;padding:10px 20px;}

/* ---------- 홈 브랜드 배너 (홈에서만 표시) ---------- */
.brand-band{display:none;background:var(--grad-deep);color:#fff;padding:74px 0 84px;position:relative;overflow:hidden;text-align:center;}
body#tt-body-index .brand-band{display:block;}
.brand-band::after{content:"";position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(233,30,99,.30),transparent 60%);top:-180px;right:-130px;}
.brand-band::before{content:"";position:absolute;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(255,193,7,.16),transparent 60%);bottom:-190px;left:-110px;}
.brand-band .wrap{position:relative;z-index:2;}
.bb-tag{font-size:13px;font-weight:800;letter-spacing:5px;color:#e3d4f7;text-transform:uppercase;margin-bottom:16px;}
.bb-title{font-size:clamp(30px,5vw,52px);font-weight:900;color:#fff;}
.bb-desc{font-size:clamp(15px,2.2vw,19px);color:#e9ddf7;margin:18px auto 0;max-width:600px;}
.bb-cta{margin-top:30px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}

/* ---------- 레이아웃(본문 + 사이드바) ---------- */
.layout{display:grid;grid-template-columns:1fr 320px;gap:40px;padding:48px 0 60px;align-items:start;}
.main-col{min-width:0;}
.side-col{position:sticky;top:90px;display:flex;flex-direction:column;gap:22px;}

/* ---------- 글 카드(목록) ---------- */
.post-card{display:flex;gap:22px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--shadow);margin-bottom:22px;transition:transform .18s,box-shadow .18s,border-color .18s;}
.post-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--primary-light);}
.post-card .pc-thumb{flex:0 0 200px;height:140px;border-radius:13px;overflow:hidden;display:block;background:var(--primary-bg);}
.post-card .pc-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.pc-body{flex:1;min-width:0;display:flex;flex-direction:column;}
.pc-cate{align-self:flex-start;font-size:12px;font-weight:800;letter-spacing:.5px;color:var(--primary);background:var(--primary-bg);padding:4px 11px;border-radius:50px;margin-bottom:9px;}
.pc-cate:hover{background:var(--primary);color:#fff;}
.pc-title{font-size:20px;font-weight:800;color:var(--ink);margin-bottom:8px;}
.post-card:hover .pc-title{color:var(--primary-dark);}
.pc-summary{color:var(--text-light);font-size:14.5px;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.pc-meta{display:flex;align-items:center;gap:12px;margin-top:14px;font-size:12.5px;color:#9a93b0;}
.pc-cnt{color:var(--pink);font-weight:700;}
.notice-card{border-color:var(--primary-light);background:linear-gradient(180deg,#faf8ff,#fff);}
.notice-flag{background:var(--grad);color:#fff;}

/* ---------- 목록 헤더(카테고리/검색/태그) ---------- */
.list-head{margin-bottom:26px;padding-bottom:20px;border-bottom:2px solid var(--line);}
.lh-title{display:inline;font-size:26px;font-weight:900;color:var(--ink);}
.lh-count{font-size:14px;font-weight:700;color:var(--primary);margin-left:10px;}
.lh-desc{color:var(--text-light);font-size:15px;margin-top:8px;}
.list-empty{padding:60px 0;text-align:center;color:#9a93b0;font-size:15px;}

/* ---------- 글 본문(퍼머링크) ---------- */
.post-view{background:#fff;border:1px solid var(--line);border-radius:18px;padding:42px 44px;box-shadow:var(--shadow);}
.pv-head{padding-bottom:26px;margin-bottom:30px;border-bottom:2px solid var(--line);}
.pv-head .pc-cate{margin-bottom:14px;}
.pv-title{font-size:clamp(26px,3.6vw,38px);font-weight:900;color:var(--ink);line-height:1.32;}
.pv-meta{margin-top:16px;font-size:13.5px;color:#9a93b0;display:flex;align-items:center;gap:8px;}
.pv-meta .dot{color:var(--line);}
.pv-body{font-size:16.5px;line-height:1.95;color:#2e2e3a;}
.pv-body p{margin:0 0 1.1em;}
.pv-body h2,.pv-body h3,.pv-body h4{margin:1.7em 0 .7em;line-height:1.4;}
.pv-body h2{font-size:25px;padding-left:14px;border-left:5px solid var(--primary);}
.pv-body h3{font-size:21px;color:var(--primary-dark);}
.pv-body a{color:var(--primary-dark);text-decoration:underline;text-underline-offset:3px;}
.pv-body img{border-radius:12px;margin:14px 0;}
.pv-body blockquote{margin:1.4em 0;padding:16px 22px;background:var(--primary-bg);border-left:5px solid var(--primary-light);border-radius:0 12px 12px 0;color:#4a4458;}
.pv-body pre{background:#1a1a2e;color:#eee;padding:18px;border-radius:12px;overflow:auto;font-size:14px;}
.pv-body code{background:var(--primary-bg);color:var(--primary-dark);padding:2px 6px;border-radius:6px;font-size:.92em;}
.pv-body pre code{background:none;color:inherit;padding:0;}
.pv-body table{border-collapse:collapse;width:100%;margin:1.2em 0;font-size:14.5px;}
.pv-body th,.pv-body td{border:1px solid var(--line);padding:10px 12px;}
.pv-body th{background:var(--primary-bg);color:var(--primary-dark);}
.pv-body ul,.pv-body ol{padding-left:1.4em;margin:0 0 1.1em;}
.pv-body hr{border:none;border-top:1px solid var(--line);margin:2em 0;}

/* 태그 */
.pv-tags{margin-top:30px;padding-top:22px;border-top:1px solid var(--line);font-size:13.5px;color:var(--text-light);}
.pv-tags .tg-label{font-weight:800;color:var(--violet);margin-right:8px;letter-spacing:1px;}
.pv-tags a{display:inline-block;background:var(--bg);border:1px solid var(--line);color:var(--text-light);padding:4px 12px;border-radius:50px;margin:0 6px 6px 0;font-weight:600;}
.pv-tags a:hover{background:var(--primary-bg);color:var(--primary-dark);border-color:var(--primary-light);}
.pv-admin{margin-top:18px;font-size:13px;}
.pv-admin a{color:#9a93b0;margin-right:14px;text-decoration:underline;}

/* 이전/다음 글 */
.pv-nav{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:24px;}
.pvn{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px;transition:transform .15s,border-color .15s;}
.pvn:hover{transform:translateY(-3px);border-color:var(--primary-light);}
.pvn.next{text-align:right;}
.pvn-dir{font-size:12px;font-weight:800;color:var(--primary);}
.pvn-title{font-size:14.5px;font-weight:700;color:var(--ink);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}

/* 댓글 */
.comments{margin-top:26px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px 34px;box-shadow:var(--shadow);}

/* ---------- 페이징 ---------- */
.paging{display:flex;align-items:center;justify-content:center;gap:8px;margin:40px 0 10px;flex-wrap:wrap;}
.pg{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:#fff;font-weight:700;font-size:14px;color:var(--text-light);box-shadow:var(--shadow);}
.pg:hover{border-color:var(--primary-light);color:var(--primary-dark);}
.pg-num.selected,.pg-num[class*="current"]{background:var(--grad);color:#fff;border-color:transparent;}
.pg-arrow.no_more_prev,.pg-arrow.no_more_next{opacity:.35;pointer-events:none;}

/* ---------- 사이드바 위젯 ---------- */
.widget{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px 22px;box-shadow:var(--shadow);}
.widget-title{font-size:15px;font-weight:800;color:var(--ink);margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid var(--primary-bg);position:relative;}
.widget-title::after{content:"";position:absolute;left:0;bottom:-2px;width:46px;height:2px;background:var(--primary);}

.profile-widget{text-align:center;background:linear-gradient(180deg,#faf8ff,#fff);}
.pw-mark{width:60px;height:60px;border-radius:16px;background:var(--grad);color:#fff;font-size:26px;font-weight:900;display:flex;align-items:center;justify-content:center;margin:4px auto 14px;box-shadow:var(--shadow-cta);}
.pw-title{font-size:18px;font-weight:900;color:var(--ink);}
.pw-desc{font-size:13.5px;color:var(--text-light);margin:8px 0 16px;}
.pw-cta{display:inline-block;background:#FEE500;color:#3C1E1E;font-weight:700;font-size:14px;padding:11px 22px;border-radius:50px;box-shadow:0 4px 14px rgba(254,229,0,.45);}
.pw-cta:hover{transform:translateY(-2px);background:#F6DC00;box-shadow:0 8px 20px rgba(254,229,0,.55);}

/* 검색 */
.search-box s_search,.search-box{display:block;}
.search-box input[type=text]{width:100%;border:1px solid var(--line);border-radius:11px;padding:11px 14px;font-family:inherit;font-size:14px;outline:none;margin-bottom:8px;}
.search-box input[type=text]:focus{border-color:var(--primary-light);box-shadow:0 0 0 3px var(--primary-bg);}
.search-box button{width:100%;border:none;background:var(--grad);color:#fff;border-radius:11px;padding:10px;font-size:14px;font-weight:700;cursor:pointer;}

/* 카테고리 */
.category-box ul{list-style:none;margin:0;padding:0;}
.category-box li{margin:0;}
.category-box a{display:block;padding:9px 10px;border-radius:9px;font-size:14px;font-weight:600;color:var(--text-light);transition:background .15s,color .15s;}
.category-box a:hover{background:var(--primary-bg);color:var(--primary-dark);}
.category-box li ul{padding-left:12px;border-left:1px solid var(--line);margin-left:8px;}
.category-box li ul a{font-weight:500;font-size:13.5px;color:#7a7393;}
.category-box .c_cnt,.category-box .count{color:var(--violet);font-weight:700;font-size:12px;margin-left:4px;}

/* 최근글/인기글 */
.side-posts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;}
.side-posts li a{display:flex;gap:11px;align-items:center;padding:9px 6px;border-radius:10px;transition:background .15s;}
.side-posts li a:hover{background:var(--bg);}
.sp-thumb{flex:0 0 52px;height:52px;border-radius:10px;overflow:hidden;background:var(--primary-bg);}
.sp-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.sp-text{display:flex;flex-direction:column;gap:3px;min-width:0;}
.sp-title{font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.sp-date{font-size:11.5px;color:#a89fc0;}

/* ---------- 푸터 ---------- */
.site-footer{background:var(--ink);color:#9b94b5;padding:46px 0;font-size:13px;text-align:center;}
.ft-brand{font-size:19px;font-weight:900;color:#fff;}
.ft-slogan{color:#cfc7e6;margin:4px 0 18px;font-size:14px;}
.ft-info{line-height:1.9;color:#8f88a8;font-size:12.5px;}
.ft-links{margin:18px 0 10px;}
.ft-links a{color:#cfc7e6;margin:0 10px;font-weight:600;}
.ft-links a:hover{color:#fff;}
.ft-copy{font-size:11.5px;color:#6f6890;}

/* ---------- 개인정보처리방침 모달 ---------- */
.pv-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:9999;justify-content:center;align-items:center;padding:20px;}
.pv-modal-box{background:#fff;max-width:760px;width:100%;max-height:85vh;overflow-y:auto;border-radius:16px;padding:40px;position:relative;}
.pv-modal-x{position:absolute;top:16px;right:16px;background:none;border:none;font-size:22px;cursor:pointer;color:#999;}
.pv-modal-title{font-size:1.6rem;color:var(--primary);text-align:center;font-weight:800;}
.pv-modal-sub{text-align:center;color:#999;font-size:.85rem;margin:6px 0 28px;}
.pv-modal-body{line-height:1.9;color:#333;font-size:.95rem;}
.pv-modal-body h3{color:var(--primary);font-size:1.08rem;margin:26px 0 11px;padding-bottom:8px;border-bottom:2px solid var(--primary-bg);}
.pv-modal-body ul{margin:8px 0 8px 20px;}
.pv-modal-kakao{color:var(--primary);font-weight:700;}
.pv-modal-foot{text-align:center;margin-top:30px;}
.pv-modal-foot button{background:var(--grad);color:#fff;border:none;padding:12px 36px;border-radius:25px;font-size:.95rem;font-weight:700;cursor:pointer;}

/* ---------- 모바일 메뉴 토글 버튼(옵션) ---------- */
.nav-toggle{display:none;background:none;border:none;font-size:22px;cursor:pointer;color:var(--ink);}

/* ---------- 반응형 ---------- */
@media(max-width:980px){
  .layout{grid-template-columns:1fr;gap:30px;padding:34px 0 50px;}
  .side-col{position:static;}
}
@media(max-width:680px){
  .post-card{flex-direction:column;gap:14px;padding:16px;}
  .post-card .pc-thumb{flex:none;width:100%;height:180px;}
  .post-view{padding:28px 20px;}