/* ==========================================================================
   Ntelecom Blog  ·  N플랫폼(n-telecom.co.kr) 디자인 토큰 기반
   ========================================================================== */

:root{
  --green:#1CA025;
  --green-dark:#17871f;
  --green-soft:#EAF7EC;
  --indigo:#2D35C8;
  --pink:#FA5CA2;
  --coral:#FF5B61;
  --purple:#52346D;

  --ink:#1E1E1E;
  --ink-2:#4F4F4F;
  --ink-3:#6F6F6F;
  --ink-4:#999999;
  --chip-ink:#615E5E;

  --line:#E4E4E4;
  --line-soft:#EEEEEE;
  --chip-bg:#F3F3F3;
  --bg:#FFFFFF;
  --bg-soft:#F7F8FA;

  --radius-card:20px;
  --radius-lg:32px;
  --radius-pill:50px;
  --radius-btn:6px;
  --shadow:0 2px 5px rgba(180,180,180,.6);

  --container:1280px;
  --header-h:80px;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:"Spoqa Han Sans Neo","SUIT Variable","SUIT",-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  font-size:16px;
  line-height:1.6;
  letter-spacing:-.8px;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;letter-spacing:inherit;cursor:pointer}
h1,h2,h3,h4{margin:0;font-weight:800;letter-spacing:-.8px;line-height:1.3}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0}
figure{margin:0}

.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 20px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:16px;top:16px;z-index:1000;background:#fff;padding:10px 16px;border-radius:var(--radius-btn);box-shadow:var(--shadow)}

/* ---------- buttons / chips ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:6px 12px;min-height:35px;
  font-size:14.88px;font-weight:500;line-height:1.2;
  border:2px solid var(--green);border-radius:var(--radius-btn);
  background:transparent;color:var(--green);
  transition:background .15s,color .15s,border-color .15s;
}
.btn:hover{background:var(--green-soft)}
.btn--fill{background:var(--green);color:#fff}
.btn--fill:hover{background:var(--green-dark);border-color:var(--green-dark)}
.btn--lg{min-height:52px;padding:0 28px;font-size:16px;font-weight:700;border-radius:var(--radius-pill)}

.chip{
  display:inline-flex;align-items:center;
  padding:8px 21px;border-radius:var(--radius-pill);
  background:var(--chip-bg);border:1px solid var(--chip-bg);
  color:var(--chip-ink);font-size:14.4px;line-height:1.2;
  transition:background .15s,color .15s,border-color .15s;
}
.chip:hover{background:#e9e9e9}
.chip.is-active,.chip[aria-current="page"]{background:var(--indigo);border-color:var(--indigo);color:#fff}

.badge{
  display:inline-flex;align-items:center;
  padding:5px 10px;border-radius:var(--radius-pill);
  background:var(--green);color:#fff;
  font-size:13px;font-weight:500;line-height:1.2;
}
.badge--pink{background:var(--pink)}
.badge--coral{background:var(--coral)}
.badge--indigo{background:var(--indigo)}

/* ---------- header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  height:var(--header-h);
  background:#fff;border-bottom:1px solid var(--line-soft);
}
.site-header__inner{
  height:100%;display:flex;align-items:center;gap:24px;
}
.site-brand{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.site-brand img{height:44px;width:auto}
.site-brand__text{font-size:17px;font-weight:800;letter-spacing:-.8px}
.site-brand__text small{display:block;font-size:11px;font-weight:500;color:var(--ink-4);letter-spacing:0}

.site-nav{margin-left:auto;margin-right:auto}
.site-nav ul{display:flex;align-items:center;gap:34px;list-style:none}
.site-nav a{
  display:block;font-size:15.68px;font-weight:500;color:var(--ink-2);
  padding:4px 0;border-bottom:2px solid transparent;
}
.site-nav a:hover{color:var(--ink)}
.site-nav .current-menu-item > a,
.site-nav .current_page_item > a,
.site-nav .current-cat > a{color:var(--green);border-bottom-color:var(--green)}

.site-header__cta{display:flex;align-items:center;gap:8px;flex:0 0 auto}

.nav-toggle{display:none;border:0;background:transparent;padding:8px;margin-left:auto}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px}
.nav-toggle span + span{margin-top:5px}

.site-main{padding-top:var(--header-h)}

/* ---------- page head ---------- */
.page-head{
  padding:56px 0 36px;border-bottom:1px solid var(--line-soft);
}
.page-head__eyebrow{
  display:block;margin-bottom:10px;
  font-size:16px;font-weight:500;color:var(--ink-3);
}
.page-head__title{font-size:33.6px}
.page-head__desc{margin:12px 0 0;color:var(--ink-3);font-size:16px}

/* 카테고리 필터 줄 */
.cat-filter{display:flex;flex-wrap:wrap;gap:8px;padding:28px 0 0}

/* ---------- post grid ---------- */
.post-grid{
  list-style:none;
  display:grid;grid-template-columns:repeat(3,1fr);gap:28px;
  padding:40px 0 64px;
}
.post-card{
  display:flex;flex-direction:column;height:100%;
  background:#fff;border:1px solid var(--line);
  border-radius:var(--radius-card);overflow:hidden;
  transition:border-color .18s,box-shadow .18s,transform .18s;
}
.post-card:hover{border-color:#cfcfcf;box-shadow:var(--shadow);transform:translateY(-2px)}
.post-card__thumb{display:block;aspect-ratio:16/9;background:var(--bg-soft);overflow:hidden}
.post-card__thumb img{width:100%;height:100%;object-fit:cover}
.post-card__thumb--empty{
  display:flex;align-items:center;justify-content:center;
  color:#c9c9c9;font-size:22px;font-weight:800;letter-spacing:0;
}
.post-card__body{display:flex;flex-direction:column;flex:1;padding:22px 24px 24px}
.post-card__meta{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.post-card__title{font-size:19px;font-weight:800;line-height:1.4}
.post-card__title a:hover{color:var(--green)}
.post-card__excerpt{
  margin:10px 0 0;color:var(--ink-3);font-size:15px;line-height:1.65;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.post-card__foot{
  margin-top:auto;padding-top:18px;
  display:flex;align-items:center;justify-content:space-between;
  color:var(--ink-4);font-size:13.5px;
}

/* ---------- pagination ---------- */
.pagination{display:flex;justify-content:center;gap:8px;padding:0 0 72px}
.pagination .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:40px;height:40px;padding:0 12px;
  border:1px solid var(--line);border-radius:var(--radius-pill);
  color:var(--ink-2);font-size:14.4px;
}
.pagination .page-numbers:hover{border-color:var(--green);color:var(--green)}
.pagination .page-numbers.current{background:var(--indigo);border-color:var(--indigo);color:#fff}
.pagination .page-numbers.dots{border-color:transparent}

/* ---------- single ---------- */
.article-head{padding:56px 0 0;max-width:860px;margin:0 auto}
.article-head__meta{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.article-head__title{font-size:33.6px;line-height:1.35}
.article-head__sub{
  display:flex;flex-wrap:wrap;align-items:center;gap:14px;
  margin-top:18px;padding-bottom:24px;border-bottom:1px solid var(--line-soft);
  color:var(--ink-4);font-size:14.4px;
}
.article-hero{max-width:860px;margin:28px auto 0;border-radius:var(--radius-card);overflow:hidden}

.article-body{max-width:860px;margin:0 auto;padding:36px 0 56px;font-size:17px;line-height:1.85;color:var(--ink)}
.article-body > *:first-child{margin-top:0}
.article-body h2{
  margin:48px 0 16px;padding-left:14px;font-size:24px;
  border-left:5px solid var(--green);line-height:1.4;
}
.article-body h3{margin:36px 0 12px;font-size:20px}
.article-body h4{margin:28px 0 10px;font-size:17.5px;color:var(--ink-2)}
.article-body p{margin:0 0 1.15em}
.article-body a{color:var(--green);text-decoration:underline;text-underline-offset:3px}
.article-body ul,.article-body ol{margin:0 0 1.15em;padding-left:22px}
.article-body li{margin:.35em 0}
.article-body ul li::marker{color:var(--green)}
.article-body img,.article-body figure img{border-radius:var(--radius-card);margin:0 auto}
.article-body figure{margin:28px 0}
.article-body figcaption{margin-top:10px;text-align:center;color:var(--ink-4);font-size:14px}
.article-body blockquote{
  margin:28px 0;padding:20px 24px;
  background:var(--bg-soft);border-left:4px solid var(--indigo);
  border-radius:0 var(--radius-btn) var(--radius-btn) 0;color:var(--ink-2);
}
.article-body blockquote p:last-child{margin-bottom:0}
.article-body hr{margin:40px 0;border:0;border-top:1px solid var(--line)}
.article-body code{
  background:var(--chip-bg);padding:2px 6px;border-radius:4px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;letter-spacing:0;
}
.article-body pre{
  margin:24px 0;padding:20px;overflow-x:auto;
  background:#1E1E1E;color:#f2f2f2;border-radius:var(--radius-btn);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;line-height:1.7;letter-spacing:0;
}
.article-body pre code{background:transparent;padding:0;color:inherit}
.article-body table{width:100%;border-collapse:collapse;margin:28px 0;font-size:15.5px}
.article-body table th,.article-body table td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left}
.article-body table thead th{background:var(--bg-soft);font-weight:700;border-top:2px solid var(--green)}
.article-body .wp-caption{max-width:100%}

.article-tags{max-width:860px;margin:0 auto;padding:0 0 40px;display:flex;flex-wrap:wrap;gap:8px}

/* 글 하단 CTA */
.article-cta{
  max-width:860px;margin:0 auto 56px;padding:32px;
  border:1px solid var(--indigo);border-radius:var(--radius-lg);text-align:center;
}
.article-cta__title{font-size:22px;margin-bottom:8px}
.article-cta__desc{color:var(--ink-3);font-size:15.5px;margin-bottom:20px}

/* 이전/다음 */
.post-nav{
  max-width:860px;margin:0 auto;padding:0 0 56px;
  display:grid;grid-template-columns:1fr 1fr;gap:16px;
}
.post-nav__item{
  padding:20px 22px;border:1px solid var(--line);border-radius:var(--radius-card);
  transition:border-color .18s}
.post-nav__item:hover{border-color:var(--green)}
.post-nav__label{display:block;color:var(--ink-4);font-size:13.5px;margin-bottom:6px}
.post-nav__title{font-size:16px;font-weight:700;line-height:1.45}
.post-nav__item--next{text-align:right}

/* 관련 글 */
.related{padding:48px 0 72px;border-top:1px solid var(--line-soft)}
.section-head{text-align:center;margin-bottom:32px}
.section-head__sub{display:block;color:var(--ink-3);font-size:16px;margin-bottom:6px}
.section-head__title{font-size:33.6px}

/* ---------- page / 404 / search ---------- */
.plain-body{max-width:860px;margin:0 auto;padding:40px 0 72px}
.state{padding:90px 0 110px;text-align:center}
.state__title{font-size:33.6px;margin-bottom:12px}
.state__desc{color:var(--ink-3);margin-bottom:28px}

.searchform{display:flex;gap:8px;max-width:420px;margin:0 auto}
.searchform input[type="search"]{
  flex:1;height:48px;padding:0 18px;
  border:1px solid var(--line);border-radius:var(--radius-pill);
  font:inherit;letter-spacing:-.8px;color:var(--ink);background:#fff;
}
.searchform input[type="search"]:focus{outline:none;border-color:var(--green)}
.searchform button{
  height:48px;padding:0 24px;border:0;border-radius:var(--radius-pill);
  background:var(--green);color:#fff;font-weight:700;
}
.searchform button:hover{background:var(--green-dark)}

/* ---------- comments ---------- */
.comments{max-width:860px;margin:0 auto;padding:0 0 72px}
.comments__title{font-size:22px;margin-bottom:20px}
.comment-list{list-style:none}
.comment-list li{padding:18px 0;border-bottom:1px solid var(--line-soft)}
.comment-list .children{list-style:none;padding-left:24px}
.comment-respond input[type="text"],
.comment-respond input[type="email"],
.comment-respond input[type="url"],
.comment-respond textarea{
  width:100%;padding:12px 16px;margin-bottom:12px;
  border:1px solid var(--line);border-radius:var(--radius-btn);
  font:inherit;letter-spacing:-.8px;
}
.comment-respond .submit{
  padding:12px 28px;border:0;border-radius:var(--radius-pill);
  background:var(--green);color:#fff;font-weight:700;
}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--line);background:#fff;color:var(--ink-4);font-size:14.5px}
.site-footer__links{
  display:flex;flex-wrap:wrap;gap:12px 28px;
  padding:28px 0 20px;border-bottom:1px solid var(--line-soft);
}
.site-footer__links a{color:var(--ink-2);font-size:14.5px}
.site-footer__links a:hover{color:var(--green)}
.site-footer__links .is-strong{font-weight:700;color:var(--ink)}
.site-footer__info{padding:24px 0 16px;line-height:2}
.site-footer__info .sep{margin:0 10px;color:#d8d8d8}
.site-footer__note{padding:0 0 10px;color:var(--ink-4)}
.site-footer__copy{padding:0 0 40px;color:#b4b4b4;font-size:13.5px}

/* ---------- 모바일 ---------- */
@media (max-width:1024px){
  .post-grid{grid-template-columns:repeat(2,1fr);gap:22px}
}
@media (max-width:860px){
  :root{--header-h:64px}
  .site-brand img{height:36px}
  .site-brand__text{font-size:15px}
  .nav-toggle{display:block}
  .site-header__cta{display:none}
  .site-nav{
    position:absolute;top:var(--header-h);left:0;right:0;
    background:#fff;border-bottom:1px solid var(--line);
    margin:0;padding:8px 0;display:none;
  }
  .site-nav.is-open{display:block}
  .site-nav ul{flex-direction:column;align-items:stretch;gap:0}
  .site-nav a{padding:14px 20px;border-bottom:0}
  .site-nav .current-menu-item > a{border-bottom:0}

  .page-head{padding:36px 0 24px}
  .page-head__title,.article-head__title,.section-head__title,.state__title{font-size:26px}
  .post-grid{grid-template-columns:1fr;gap:18px;padding:28px 0 48px}
  .article-head{padding-top:36px}
  .article-body{font-size:16.5px;padding:28px 0 44px}
  .article-body h2{font-size:21px}
  .article-body h3{font-size:18.5px}
  .post-nav{grid-template-columns:1fr}
  .post-nav__item--next{text-align:left}
  .article-cta{padding:26px 20px}
}

/* 푸터 메뉴를 워드프레스 메뉴로 넣었을 때 */
.site-footer__links li{list-style:none}

/* ---------- 원고 전용 ---------- */
/* 글머리 요약 */
.article-body .lead{
  margin:0 0 34px;padding:18px 22px;
  background:var(--green-soft);border-left:4px solid var(--green);
  border-radius:0 var(--radius-btn) var(--radius-btn) 0;
  color:var(--ink-2);font-size:16.5px;line-height:1.75;
}
.article-body .lead p:last-child{margin-bottom:0}

/* 본문 안 전환 박스 */
.article-body .post-cta{
  margin:44px 0 0;padding:26px 28px;
  background:var(--green);color:#fff;border-radius:var(--radius-card);
  line-height:1.7;
}
.article-body .post-cta strong{display:block;font-size:19px;font-weight:800;margin-bottom:8px}
.article-body .post-cta a{
  color:#FFE36E;font-weight:700;text-decoration:none;
  border-bottom:1px solid rgba(255,227,110,.5);
}
.article-body .post-cta a:hover{border-bottom-color:#FFE36E}

@media (max-width:860px){
  .article-body .lead{padding:16px 18px;font-size:16px}
  .article-body .post-cta{padding:22px 20px}
  .article-body .post-cta strong{font-size:17.5px}
}
