@charset "utf-8";
/* WACT ESSAY 게시판 스킨
   색·서체 변수는 wact-frame.css 의 :root 를 그대로 쓴다.
   (--lime --pink --mint --amber --blue --ink --paper --white --disp --en --kr) */

/* 그누보드 기본 컨테이너가 본문 폭을 묶어버려 4열 그리드가 눌린다.
   이 CSS 는 essay 스킨에서만 로드되므로 다른 게시판에는 영향이 없다. */
#wrapper,#container_wr,#container{
  float:none;                            /* #container 는 기본이 float:left — 안 풀면 왼쪽으로 쏠린다 */
  max-width:none;width:auto;min-height:0;
  min-width:0;                           /* default.css 의 #wrapper{min-width:1200px} — 모바일 가로스크롤의 원인 */
  margin:0;padding:0;border:0;background:transparent;
}
#container_wr::after{content:"";display:table;clear:both}
#container_title{display:none}          /* 스킨이 자체 제목을 그린다 — 중복 제거 */
body{background:var(--paper)}

/* 시안 CSS 는 `nav{position:fixed;background:lime}` 처럼 요소 셀렉터를 쓴다.
   스킨 안의 <nav>(페이징·글이동)까지 상단에 고정돼 버리므로 되돌린다. */
.es-pager,
.es-view-nav{
  position:static;top:auto;left:auto;right:auto;
  z-index:auto;background:transparent;
}

.es,
.es-view{
  max-width:1280px;
  margin:0 auto;
  padding:64px 48px 120px;
  font-family:var(--kr);
  color:var(--ink);
}

/* ── 머리말 ─────────────────────────────────────── */
.es-caps{
  display:inline-block;
  font-family:var(--en);
  font-weight:700;
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ink);
  background:var(--lime);
  padding:6px 12px;
  border-radius:999px;
}
.es-h2{
  font-family:var(--disp);
  font-weight:900;
  font-size:clamp(34px,4.4vw,60px);
  line-height:1.05;
  letter-spacing:-.02em;
  margin:20px 0 0;
}
.es-lede{
  margin:14px 0 0;
  font-size:16px;
  line-height:1.7;
  color:rgba(16,16,16,.62);
  max-width:620px;
}
.es-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:36px;
  padding-bottom:18px;
  border-bottom:2px solid var(--ink);
}
.es-total{
  font-family:var(--en);
  font-size:12px;
  letter-spacing:.14em;
  color:rgba(16,16,16,.55);
}
.es-total b{color:var(--ink)}

.es-search{display:flex;align-items:center;gap:0}
.es-search input[type=text]{
  width:230px;
  height:40px;
  padding:0 14px;
  border:1.5px solid var(--ink);
  border-right:0;
  border-radius:999px 0 0 999px;
  background:transparent;
  font-family:var(--kr);
  font-size:14px;
  color:var(--ink);
  outline:none;
}
.es-search input[type=text]::placeholder{color:rgba(16,16,16,.4)}
.es-search-btn{
  height:40px;
  padding:0 18px;
  border:1.5px solid var(--ink);
  border-radius:0 999px 999px 0;
  background:var(--ink);
  color:var(--lime);
  cursor:pointer;
  font-size:14px;
}
.es-search-btn:hover{background:var(--pink);border-color:var(--pink);color:#fff}

/* ── 4열 그리드 ─────────────────────────────────── */
.es-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:32px 24px;
  margin-top:44px;
}
.es-card{min-width:0}
.es-card > a{
  display:block;
  color:inherit;
  text-decoration:none;
}

.es-thumb{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:18px;
  background:rgba(16,16,16,.06);
}
.es-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .5s cubic-bezier(.2,.7,.3,1);
}
.es-card:hover .es-thumb img{transform:scale(1.05)}

/* 첨부 이미지가 없을 때 */
.es-thumb-none{display:flex;align-items:center;justify-content:center}
.es-mark{
  font-family:var(--disp);
  font-weight:900;
  font-size:30px;
  letter-spacing:-.02em;
  color:var(--ink);
  opacity:.72;
}
.es-mark i{color:var(--pink);font-style:normal}
.es-lime{background:var(--lime)}
.es-mint{background:var(--mint)}
.es-amber{background:var(--amber)}
.es-blue{background:var(--blue)}

.es-lock{
  position:absolute;top:12px;right:12px;
  width:30px;height:30px;border-radius:50%;
  background:var(--ink);color:var(--lime);
  display:flex;align-items:center;justify-content:center;
  font-size:12px;
}

.es-body{padding:16px 2px 0}
.es-date{
  font-family:var(--en);
  font-size:12px;
  letter-spacing:.1em;
  color:rgba(16,16,16,.5);
}
.es-title{
  margin:8px 0 0;
  font-size:17px;
  font-weight:700;
  line-height:1.42;
  letter-spacing:-.01em;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.es-card:hover .es-title{text-decoration:underline;text-underline-offset:3px}
.es-new{
  display:inline-block;
  vertical-align:2px;
  margin-left:6px;
  font-family:var(--en);
  font-size:10px;
  font-weight:700;
  letter-spacing:.1em;
  background:var(--pink);
  color:#fff;
  padding:2px 6px;
  border-radius:4px;
}
.es-ex{
  margin:8px 0 0;
  font-size:14px;
  line-height:1.65;
  color:rgba(16,16,16,.58);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.es-foot{
  margin-top:12px;
  display:flex;align-items:center;gap:10px;
  font-size:12px;
  color:rgba(16,16,16,.45);
}
.es-cmt::before{content:"댓글 "}

.es-empty{
  margin:60px 0;
  padding:80px 20px;
  text-align:center;
  border:2px dashed rgba(16,16,16,.18);
  border-radius:20px;
  color:rgba(16,16,16,.55);
}
.es-empty-sub{margin-top:8px;font-size:13px;color:rgba(16,16,16,.4)}

/* ── 버튼 / 페이징 ──────────────────────────────── */
.es-actions{margin-top:40px;display:flex;justify-content:flex-end}
.es-btn-write,
.es-btn-list{
  display:inline-flex;align-items:center;
  height:46px;padding:0 26px;
  border-radius:999px;
  background:var(--ink);color:var(--lime);
  font-weight:700;font-size:14px;
  text-decoration:none;
  transition:background .2s;
}
.es-btn-write:hover,
.es-btn-list:hover{background:var(--pink);color:#fff}
.es-btn-ghost{
  display:inline-flex;align-items:center;
  height:46px;padding:0 18px;
  border:1.5px solid rgba(16,16,16,.2);
  border-radius:999px;
  font-size:14px;color:var(--ink);text-decoration:none;
}
.es-btn-ghost:hover{border-color:var(--ink)}

.es-pager{margin-top:56px;display:flex;justify-content:center}
.es-pager .pg_wrap{display:flex;justify-content:center}
.es-pager .pg{display:flex;gap:6px;align-items:center}
.es-pager .pg_page,
.es-pager .pg_current{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:40px;height:40px;padding:0 12px;
  border-radius:999px;
  font-family:var(--en);font-size:14px;
  text-decoration:none;
}
.es-pager .pg_page{color:var(--ink);background:transparent;border:1.5px solid rgba(16,16,16,.15)}
.es-pager .pg_page:hover{border-color:var(--ink)}
.es-pager .pg_current{background:var(--ink);color:var(--lime);font-weight:700}

/* ── 상세 ───────────────────────────────────────── */
.es-view{max-width:820px}
.es-view-head{padding-bottom:28px;border-bottom:2px solid var(--ink)}
.es-view-title{
  font-family:var(--disp);
  font-weight:900;
  font-size:clamp(28px,3.4vw,44px);
  line-height:1.18;
  letter-spacing:-.02em;
  margin:18px 0 0;
}
.es-view-meta{
  margin-top:16px;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  font-family:var(--en);
  font-size:13px;
  color:rgba(16,16,16,.55);
}
.es-dot{opacity:.4}

.es-lead{margin:36px 0 0;border-radius:20px;overflow:hidden}
.es-lead img{width:100%;height:auto;display:block}

.es-content{
  margin-top:36px;
  font-size:17px;
  line-height:1.85;
  color:rgba(16,16,16,.88);
  word-break:break-word;
}
.es-content p{margin:0 0 1.1em}
.es-content img{max-width:100%;height:auto;border-radius:14px;margin:12px 0}
.es-content h2,.es-content h3{
  font-weight:800;line-height:1.35;letter-spacing:-.01em;
  margin:1.8em 0 .6em;
}
.es-content h2{font-size:24px}
.es-content h3{font-size:20px}
.es-content a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.es-content blockquote{
  margin:1.4em 0;padding:18px 22px;
  background:rgba(16,16,16,.04);
  border-left:4px solid var(--lime);
  border-radius:0 12px 12px 0;
}
.es-content ul,.es-content ol{margin:0 0 1.1em;padding-left:1.3em}
.es-content li{margin:.35em 0}

.es-files,.es-links{margin:32px 0 0;padding:0;list-style:none}
.es-files li,.es-links li{margin:6px 0}
.es-files a,.es-links a{
  display:inline-flex;align-items:center;gap:8px;
  font-size:14px;color:var(--ink);text-decoration:none;
  border-bottom:1px solid rgba(16,16,16,.2);
  padding-bottom:2px;
}
.es-files a:hover,.es-links a:hover{border-color:var(--ink)}
.es-files em{font-style:normal;color:rgba(16,16,16,.45);font-size:12px}

.es-view-nav{
  margin-top:56px;padding-top:28px;
  border-top:2px solid var(--ink);
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
}
.es-view-tools{display:flex;gap:8px;flex-wrap:wrap}

/* ── 반응형 ──────────────────────────────────────
   열 수 규칙(정우 지정): 데스크톱 4열 → 아이패드 3열 → 스마트폰 2열.
   1열은 만들지 않는다 — 글이 늘어나면 1열은 한없이 길어져 못 본다.
   아이패드 세로(768px)가 3열을 유지해야 하므로 2열 경계는 700px 로 내린다. */
@media (max-width:1240px){
  .es,.es-view{padding-left:32px;padding-right:32px}
  .es-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:900px){
  .es-bar{flex-direction:column;align-items:flex-start;gap:14px}
  .es-search{width:100%}
  .es-search input[type=text]{flex:1;width:auto}
}
@media (max-width:700px){
  .es,.es-view{padding:44px 20px 80px}
  .es-grid{grid-template-columns:repeat(2,1fr);gap:24px 14px}
  .es-view-nav{flex-direction:column;align-items:stretch}
  .es-btn-list{justify-content:center}
  .es-view-tools{justify-content:space-between}
}
