/* ==========================================================================
   LifeNest 1.1 — GeneratePress 자식 테마 디자인
   1 기본 · 2 컨테이너 · 3 헤더 · 4 히어로 · 5 섹션 · 6 주요 글(lead)
   7 카드 · 8 목록 · 9 버튼 · 10 글(싱글) · 11 아카이브 · 12 빈 상태 · 13 반응형
   ========================================================================== */

:root{
  --ln-ink:#0f172a;
  --ln-body:#3f4a5a;
  --ln-muted:#7c8798;
  --ln-line:#e8edf3;
  --ln-soft:#f7f9fc;
  --ln-brand:#0e7490;
  --ln-brand-2:#0b5f76;
  --ln-accent:#f59e0b;
  --ln-radius:18px;
  --ln-max:1080px;
}

/* ---------- 1. 기본 ---------- */
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }

body{
  font-family:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,
    system-ui,"Apple SD Gothic Neo","Malgun Gothic","Segoe UI",sans-serif;
  font-size:16.5px;
  line-height:1.78;
  color:var(--ln-body);
  background:#fff;
  letter-spacing:-0.012em;
  word-break:keep-all;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

h1,h2,h3,h4,h5{ color:var(--ln-ink); font-weight:700; line-height:1.35; letter-spacing:-0.028em; margin:0 0 .6em; }
h1{ font-size:1.9rem; }
h2{ font-size:1.45rem; }
h3{ font-size:1.15rem; }

p{ margin:0 0 1.15em; }

a{ color:var(--ln-brand); text-decoration:none; transition:color .15s ease; }
a:hover{ color:var(--ln-brand-2); }

img{ max-width:100%; height:auto; }
hr{ border:0; border-top:1px solid var(--ln-line); margin:2.5em 0; }
::selection{ background:#cffafe; color:var(--ln-ink); }

.screen-reader-text{
  position:absolute !important; width:1px; height:1px; overflow:hidden;
  clip:rect(1px,1px,1px,1px); white-space:nowrap;
}

/* ---------- 2. 컨테이너 · 레이아웃 ---------- */
.grid-container{ max-width:var(--ln-max); padding-left:20px; padding-right:20px; }
.site-content{ padding-top:0; padding-bottom:0; }
.inside-header{ padding:15px 0; }

/* 글·페이지는 읽기 좋은 한 단 폭으로 */
.single .inside-article,
.page .inside-article{ max-width:780px; margin:0 auto; padding:40px 0 64px; }

/* 목록(아카이브·검색)은 넓게 */
.archive .inside-article,
.blog .inside-article,
.search .inside-article{ padding:0 0 46px; }

/* ---------- 3. 헤더 ---------- */
.site-header{
  background:rgba(255,255,255,.9);
  -webkit-backdrop-filter:saturate(180%) blur(12px);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--ln-line);
  position:-webkit-sticky;
  position:sticky;
  top:0;
  z-index:50;
}

.site-branding{ display:flex; align-items:baseline; flex-wrap:wrap; gap:10px; }
.site-title{ margin:0; font-size:1.26rem; font-weight:800; letter-spacing:-0.04em; line-height:1.2; }
.site-title a{ color:var(--ln-ink); }
.site-title a:hover{ color:var(--ln-brand); }
.site-description{ margin:0; font-size:.82rem; color:var(--ln-muted); font-weight:500; letter-spacing:0; }

.main-navigation{ background:transparent; }
.main-navigation .main-nav ul li a{
  font-size:.94rem; font-weight:600; color:var(--ln-body);
  padding:9px 14px; border-radius:10px; line-height:1.5;
}
.main-navigation .main-nav ul li a:hover,
.main-navigation .main-nav ul li.current-menu-item > a,
.main-navigation .main-nav ul li.current-menu-ancestor > a{
  color:var(--ln-brand); background:var(--ln-soft);
}
.main-navigation .main-nav ul ul li a{ background:#fff; }
.main-navigation.toggled .main-nav{ border-top:1px solid var(--ln-line); padding-top:8px; }

/* 읽기 진행바 */
.ln-progress{
  position:fixed; top:0; left:0; height:3px; width:100%;
  transform:scaleX(0); transform-origin:0 50%;
  background:linear-gradient(90deg,var(--ln-brand),var(--ln-accent));
  z-index:99;
}

/* ---------- 4. 히어로 ---------- */
.ln-home{ display:block; padding-bottom:24px; }

.ln-hero{ padding:60px 0 48px; text-align:center; }
.ln-hero__eyebrow{
  display:inline-block; margin:0 0 14px; padding:5px 14px;
  border-radius:999px; background:#ecfeff; color:var(--ln-brand);
  font-size:.76rem; font-weight:700; letter-spacing:.02em;
}
.ln-hero__title{ font-size:2.45rem; margin:0 0 12px; letter-spacing:-0.05em; }
.ln-hero__lead{ font-size:1.02rem; color:var(--ln-muted); margin:0 0 28px; }

.ln-search{ display:flex; gap:8px; max-width:520px; margin:0 auto 24px; }
.ln-search input[type="search"]{
  flex:1 1 auto; min-width:0; padding:13px 20px;
  border:1px solid var(--ln-line); border-radius:999px;
  background:var(--ln-soft); font-family:inherit; font-size:.95rem; color:var(--ln-ink);
  outline:none; transition:background .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.ln-search input[type="search"]:focus{
  background:#fff; border-color:#a5e3ee; box-shadow:0 0 0 4px #ecfeff;
}
.ln-search button{
  flex:0 0 auto; padding:13px 26px; border:0; border-radius:999px; cursor:pointer;
  background:var(--ln-brand); color:#fff;
  font-family:inherit; font-size:.95rem; font-weight:700;
  transition:background .15s ease;
}
.ln-search button:hover{ background:var(--ln-brand-2); }

.ln-chips{ list-style:none; display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin:0; padding:0; }
.ln-chips li{ margin:0; }
.ln-chips a{
  display:inline-block; padding:7px 16px;
  border:1px solid var(--ln-line); border-radius:999px; background:#fff;
  font-size:.86rem; font-weight:600; color:var(--ln-body);
  transition:.15s ease;
}
.ln-chips a:hover{ border-color:var(--ln-brand); color:var(--ln-brand); background:#f0fdff; }

/* ---------- 5. 섹션 ---------- */
.ln-section{ margin:0 0 64px; }
.ln-section__head{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  margin:0 0 24px; padding-bottom:12px;
  border-bottom:2px solid var(--ln-ink);
}
.ln-section__head h2{ margin:0; font-size:1.24rem; }
.ln-section__head h2 a{ color:var(--ln-ink); }
.ln-section__head h2 a:hover{ color:var(--ln-brand); }
.ln-section__more{ flex:0 0 auto; font-size:.84rem; font-weight:600; color:var(--ln-muted); }
.ln-section__more:hover{ color:var(--ln-brand); }

/* ---------- 6. 주요 글 (lead) ---------- */
.ln-lead{ display:grid; grid-template-columns:1.3fr 1fr; gap:28px; align-items:start; }
.ln-lead__side{ display:grid; gap:22px; }

.ln-feature{
  position:relative; display:flex; min-height:400px;
  border-radius:22px; overflow:hidden; background:var(--ln-ink);
  transition:transform .35s cubic-bezier(.2,.7,.3,1), box-shadow .35s ease;
}
.ln-feature:hover{ transform:translateY(-3px); box-shadow:0 24px 50px -28px rgba(15,23,42,.6); }

.ln-feature__link{
  position:relative; display:flex; flex-direction:column; justify-content:flex-end;
  width:100%; padding:30px; color:#fff;
}
.ln-feature__bg{ position:absolute; inset:0; display:block; }
.ln-feature__bg img{ width:100%; height:100%; object-fit:cover; }
.ln-feature__bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(15,23,42,.10) 0%, rgba(15,23,42,.55) 48%, rgba(15,23,42,.90) 100%);
}
.ln-feature__body{ position:relative; display:flex; flex-direction:column; gap:10px; }
.ln-feature__cat{
  align-self:flex-start; padding:4px 12px; border-radius:999px;
  background:var(--ln-accent); color:#fff; font-size:.74rem; font-weight:700;
}
.ln-feature__title{ color:#fff; font-size:1.5rem; line-height:1.38; letter-spacing:-0.035em; font-weight:800; }
.ln-feature__excerpt{ color:rgba(255,255,255,.82); font-size:.92rem; line-height:1.6; }
.ln-feature__meta{ color:rgba(255,255,255,.65); font-size:.8rem; }

.ln-lead__side .ln-card{ flex-direction:row; gap:16px; align-items:flex-start; }
.ln-lead__side .ln-card__thumb{ flex:0 0 136px; margin-bottom:0; aspect-ratio:4 / 3; border-radius:14px; }
.ln-lead__side .ln-card__excerpt{ display:none; }
.ln-lead__side .ln-card__title{ font-size:1rem; }

/* ---------- 7. 카드 ---------- */
.ln-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }

.ln-card{ display:flex; flex-direction:column; min-width:0; }
.ln-card__thumb{
  display:block; aspect-ratio:16 / 10; overflow:hidden;
  border-radius:var(--ln-radius); background:var(--ln-soft); margin-bottom:16px;
}
.ln-card__thumb img{
  width:100%; height:100%; object-fit:cover; margin:0; border-radius:0;
  transition:transform .5s cubic-bezier(.2,.7,.3,1);
}
.ln-card:hover .ln-card__thumb img{ transform:scale(1.05); }
.ln-card__ph{
  display:flex; align-items:center; justify-content:center; height:100%;
  font-size:.9rem; font-weight:800; letter-spacing:.1em; color:#c7d2de; text-transform:uppercase;
}
.ln-card__cat{
  display:inline-block; margin-bottom:8px;
  font-size:.76rem; font-weight:700; color:var(--ln-brand);
  letter-spacing:.01em;
}
.ln-card__title{ margin:0 0 8px; font-size:1.05rem; line-height:1.5; }
.ln-card__title a{ color:var(--ln-ink); }
.ln-card__title a:hover{ color:var(--ln-brand); }
.ln-card__excerpt{ margin:0 0 12px; font-size:.88rem; color:var(--ln-muted); line-height:1.68; }
.ln-card__meta{
  display:flex; gap:10px; align-items:center; margin-top:auto;
  font-size:.78rem; color:var(--ln-muted);
}
.ln-card__meta span::before{ content:"·"; margin-right:8px; }

/* ---------- 8. 최신 글 목록 ---------- */
.ln-list{ border-top:1px solid var(--ln-line); }
.ln-row{
  display:flex; align-items:baseline; gap:16px;
  padding:15px 4px; border-bottom:1px solid var(--ln-line);
}
.ln-row time{
  flex:0 0 52px; font-size:.8rem; color:var(--ln-muted);
  font-variant-numeric:tabular-nums;
}
.ln-row h3{ margin:0; font-size:1rem; font-weight:600; line-height:1.55; flex:1 1 auto; }
.ln-row h3 a{ color:var(--ln-ink); }
.ln-row h3 a:hover{ color:var(--ln-brand); }
.ln-row__cat{
  flex:0 0 auto; font-size:.76rem; font-weight:600; color:var(--ln-muted);
}

/* ---------- 9. 버튼 · 안내 ---------- */
.ln-btn{
  display:inline-block; padding:12px 26px; border-radius:999px;
  background:var(--ln-brand); color:#fff; font-weight:700; font-size:.94rem;
  transition:background .15s ease, transform .15s ease;
}
.ln-btn:hover{ background:var(--ln-brand-2); color:#fff; transform:translateY(-1px); }
.ln-btn--ghost{
  background:#fff; color:var(--ln-body); border:1px solid var(--ln-line);
}
.ln-btn--ghost:hover{ background:var(--ln-soft); color:var(--ln-ink); }

.ln-cta{
  margin:0 0 20px; padding:40px 28px; text-align:center;
  background:var(--ln-soft); border:1px solid var(--ln-line); border-radius:22px;
}
.ln-cta h2{ margin:0 0 8px; font-size:1.3rem; }
.ln-cta p{ margin:0 0 22px; color:var(--ln-muted); font-size:.95rem; }

/* ---------- 10. 글(싱글) ---------- */
.entry-header{ margin-bottom:22px; }
.entry-title{ font-size:2rem; letter-spacing:-0.04em; line-height:1.32; margin:0 0 12px; }

.ln-postmeta{
  display:flex; flex-wrap:wrap; align-items:center; gap:12px;
  font-size:.84rem; color:var(--ln-muted);
}
.ln-postmeta__cat{
  padding:4px 12px; border-radius:999px;
  background:#ecfeff; color:var(--ln-brand); font-weight:700;
}
.ln-postmeta__read::before{ content:"·"; margin-right:10px; }

.entry-content{ font-size:1.03rem; line-height:1.92; }
.entry-content > *:first-child{ margin-top:0; }
.entry-content p{ margin:0 0 1.3em; }
.entry-content h2{
  font-size:1.4rem; margin:2.3em 0 .85em;
  padding-left:14px; border-left:4px solid var(--ln-brand);
}
.entry-content h3{ font-size:1.16rem; margin:1.9em 0 .7em; }
.entry-content ul,.entry-content ol{ padding-left:1.35em; margin:0 0 1.3em; }
.entry-content li{ margin-bottom:.5em; }
.entry-content a{ text-decoration:underline; text-underline-offset:3px; text-decoration-color:#a5e3ee; }
.entry-content a:hover{ text-decoration-color:var(--ln-brand); }

.entry-content blockquote{
  margin:1.8em 0; padding:18px 22px;
  background:var(--ln-soft); border-left:4px solid var(--ln-accent);
  border-radius:10px; font-size:.98rem;
}
.entry-content figure{ margin:1.8em 0; }
.entry-content figcaption{ font-size:.84rem; color:var(--ln-muted); text-align:center; }

.entry-content table{ width:100%; border-collapse:collapse; margin:1.7em 0; font-size:.94rem; }
.entry-content th,.entry-content td{ border:1px solid var(--ln-line); padding:11px 13px; text-align:left; }
.entry-content th{ background:var(--ln-soft); font-weight:700; color:var(--ln-ink); }
.entry-content img{ border-radius:12px; }

.entry-content code{
  background:var(--ln-soft); padding:2px 7px; border-radius:6px;
  font-size:.9em; color:#be185d;
}
.entry-content pre{
  background:#0f172a; color:#e2e8f0; padding:18px 20px;
  border-radius:12px; overflow:auto; font-size:.88rem; line-height:1.7;
}
.entry-content pre code{ background:none; padding:0; color:inherit; }

/* 관련 글 */
.ln-related{ margin:56px 0 0; padding-top:34px; border-top:1px solid var(--ln-line); }
.ln-related__title{ font-size:1.18rem; margin:0 0 22px; }
.ln-related .ln-card__excerpt{ display:none; }

/* 필자 소개 */
.ln-author{
  display:flex; gap:18px; align-items:flex-start;
  margin:38px 0 0; padding:24px;
  background:var(--ln-soft); border:1px solid var(--ln-line); border-radius:var(--ln-radius);
}
.ln-author__badge{
  flex:0 0 52px; height:52px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--ln-brand); color:#fff; font-size:1.3rem; font-weight:800;
}
.ln-author__body strong{ display:block; color:var(--ln-ink); margin-bottom:4px; }
.ln-author__body p{ margin:0 0 6px; font-size:.9rem; color:var(--ln-muted); }
.ln-author__note{ font-size:.86rem !important; }

/* ---------- 11. 페이지네이션 · 댓글 · 아카이브 ---------- */
.paging-navigation,.pagination{ margin:40px 0; text-align:center; }
.pagination .page-numbers{
  display:inline-block; min-width:38px; padding:8px 12px; margin:0 3px 6px;
  border:1px solid var(--ln-line); border-radius:9px;
  font-size:.9rem; font-weight:600; color:var(--ln-body);
}
.pagination .page-numbers.current{ background:var(--ln-ink); border-color:var(--ln-ink); color:#fff; }
.pagination .page-numbers:hover{ border-color:var(--ln-brand); color:var(--ln-brand); }

.comments-area{ margin-top:50px; padding-top:34px; border-top:1px solid var(--ln-line); }
.comment-body{ padding:18px 0; border-bottom:1px solid var(--ln-line); }

.page-header{ margin-bottom:28px; }
.page-header .page-title{ font-size:1.7rem; letter-spacing:-0.04em; margin:0 0 6px; }
.ln-archive__desc{
  margin:0 0 28px; padding:16px 20px;
  background:var(--ln-soft); border-radius:12px;
  font-size:.92rem; color:var(--ln-muted);
}

/* ---------- 12. 빈 상태 ---------- */
.ln-empty{
  margin:0 0 40px; padding:64px 28px; text-align:center;
  background:var(--ln-soft); border:1px dashed #cfd9e4; border-radius:22px;
}
.ln-empty__icon{
  display:block; font-size:1.9rem; color:var(--ln-brand); margin-bottom:14px;
}
.ln-empty h2{ margin:0 0 12px; font-size:1.35rem; }
.ln-empty p{ margin:0 0 26px; color:var(--ln-muted); font-size:.95rem; line-height:1.8; }
.ln-empty__links{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin:0 !important; }

/* ---------- 13. 푸터 ---------- */
.site-footer{ margin-top:24px; border-top:1px solid var(--ln-line); background:var(--ln-soft); }
.site-footer .inside-site-info{ padding:28px 20px; }
.site-footer .copyright-bar{ font-size:.84rem; color:var(--ln-muted); text-align:center; }

/* ---------- 14. 반응형 ---------- */
@media (max-width:900px){
  .ln-lead{ grid-template-columns:1fr; }
  .ln-feature{ min-height:320px; }
  .ln-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
  .ln-hero{ padding:44px 0 36px; }
  .ln-hero__title{ font-size:1.95rem; }
  .ln-related .ln-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:600px){
  body{ font-size:16px; line-height:1.75; }
  .ln-grid,
  .ln-related .ln-grid{ grid-template-columns:1fr; gap:28px; }
  .ln-lead__side .ln-card{ flex-direction:column; gap:0; }
  .ln-lead__side .ln-card__thumb{ flex:0 0 auto; width:100%; margin-bottom:14px; aspect-ratio:16 / 10; }
  .ln-lead__side .ln-card__excerpt{ display:block; }
  .ln-hero{ padding:36px 0 30px; }
  .ln-hero__title{ font-size:1.62rem; }
  .ln-hero__lead{ font-size:.95rem; margin-bottom:22px; }
  .ln-search{ flex-direction:column; }
  .ln-search button{ width:100%; }
  .ln-feature{ min-height:280px; }
  .ln-feature__link{ padding:22px; }
  .ln-feature__title{ font-size:1.22rem; }
  .ln-feature__excerpt{ display:none; }
  .entry-title{ font-size:1.55rem; }
  .entry-content{ font-size:1rem; }
  .ln-row time{ flex-basis:44px; font-size:.76rem; }
  .ln-row__cat{ display:none; }
  .ln-section{ margin-bottom:48px; }
  .ln-author{ flex-direction:column; gap:12px; }
  .ln-cta{ padding:32px 20px; }
}
