@charset "utf-8";
/* haesol_dev · 진열 목록·상세 / 개발문의 양식 (themes.php · plugins.php · contact.php) */

/* ══ 목록 ══════════════════════════════════════════════ */
.pg-list .cnt{font-size:14px;color:var(--gray);margin-bottom:20px}
.pg-list .cnt strong{color:var(--ink)}
.pg-list .cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.pg-list .card{border:1px solid var(--line);border-radius:var(--rad);overflow:hidden;background:#fff;display:flex;flex-direction:column;transition:.28s}
.pg-list .card:hover{border-color:var(--blue);box-shadow:0 22px 46px -30px rgba(11,18,32,.55);transform:translateY(-3px)}
.pg-list .shot{display:block;aspect-ratio:16/10;background-position:top center !important;background-size:cover !important}
.pg-list .body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.pg-list .sub{font-style:normal;font-size:12.5px;color:var(--blue);margin-bottom:7px}
.pg-list h3{font-size:19px;font-weight:700;margin-bottom:9px}
.pg-list .body>p{font-size:14.5px;color:var(--gray);line-height:1.72;flex:1}
.pg-list .tags,.pg-view .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.pg-list .tags li,.pg-view .tags li{font-size:12px;color:var(--gray);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:4px 11px}
.pg-list .acts{display:flex;gap:8px;margin-top:18px}

/* 아무것도 안 올렸을 때 */
.pg-empty{text-align:center;border:1px dashed #c7cede;border-radius:var(--rad);padding:70px 24px;background:var(--bg)}
.pg-empty strong{display:block;font-size:21px;font-weight:700;margin-bottom:14px}
.pg-empty p{color:var(--gray);line-height:1.9;margin-bottom:26px}
.pg-empty code,.mn-items code{background:#e7ecf5;border-radius:6px;padding:2px 7px;font-size:13.5px}

/* ══ 상세 ══════════════════════════════════════════════ */
.pg-view .hd{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:44px;align-items:start}
.pg-view .hd .shot{border-radius:var(--rad);aspect-ratio:16/10;border:1px solid var(--line);background-position:top center !important;background-size:cover !important}
.pg-view .sub{display:block;font-style:normal;font-size:13px;color:var(--blue);margin-bottom:10px}
.pg-view h2{font-size:clamp(24px,3vw,33px);font-weight:700;letter-spacing:-.01em}
.pg-view .tl{margin-top:6px;font-size:19px;color:#374151;line-height:1.75;font-weight:500}
.pg-view .meta{display:grid;grid-template-columns:86px minmax(0,1fr);gap:0;margin-top:26px;border-top:1px solid var(--line);font-size:14.5px}
.pg-view .meta dt{padding:12px 0;color:var(--gray);border-bottom:1px solid var(--line)}
.pg-view .meta dd{padding:12px 0;margin:0;border-bottom:1px solid var(--line)}
.pg-view .acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.pg-view .blk{margin-top:64px}
.pg-view .blk h3{font-size:21px;font-weight:700;margin-bottom:18px;padding-bottom:14px;border-bottom:2px solid var(--ink)}
.pg-view .blk p{color:#374151;line-height:1.9;margin-bottom:12px}
.pg-view .feat{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.pg-view .feat li{position:relative;padding:15px 18px 15px 42px;background:var(--bg);border-radius:10px;font-size:15px;line-height:1.6}
.pg-view .feat li::before{content:'';position:absolute;left:18px;top:22px;width:8px;height:8px;border-radius:50%;background:var(--blue)}
.pg-view .foot{margin-top:64px;padding-top:28px;border-top:1px solid var(--line);text-align:center}

/* ══ 개발문의 ══════════════════════════════════════════ */
.ct-wrap{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr);gap:60px;align-items:start}
.ct-side h2{font-size:26px;font-weight:700;letter-spacing:-.01em}
.ct-side>p{margin-top:14px;color:var(--gray);line-height:1.85}
.ct-note{margin-top:26px;border-top:1px solid var(--line);padding-top:22px}
.ct-note li{position:relative;padding:0 0 12px 20px;font-size:14.5px;color:#374151;line-height:1.7}
.ct-note li::before{content:'';position:absolute;left:2px;top:9px;width:7px;height:7px;border-radius:50%;background:var(--blue)}
.ct-mail{margin-top:22px;font-size:14px;color:var(--gray);line-height:1.9}
.ct-mail a{color:var(--blue);font-weight:500}

.ct-form{background:#fff;border:1px solid var(--line);border-radius:var(--rad);padding:38px 36px 40px;box-shadow:0 24px 60px -44px rgba(11,18,32,.55)}
.ct-form .fld{margin-bottom:18px}
.ct-form .fld2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.ct-form label{display:block;font-size:14px;font-weight:500;margin-bottom:8px}
.ct-form label em{font-style:normal;color:#dc2626}
.ct-form input[type=text],.ct-form input[type=tel],.ct-form input[type=email],.ct-form select,.ct-form textarea{
  width:100%;box-sizing:border-box;border:1px solid #d5dbe6;border-radius:10px;padding:13px 14px;
  background:#fff;color:var(--ink);transition:border-color .2s,box-shadow .2s}
.ct-form textarea{resize:vertical;min-height:150px;line-height:1.7}
.ct-form input:focus,.ct-form select:focus,.ct-form textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px rgba(46,107,255,.14)}
.ct-form .hint{font-size:13px;color:var(--gray);margin:-6px 0 18px}
.ct-form .ct-item{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:14px;margin-bottom:20px}
.ct-form .ct-item strong{color:var(--blue)}
.ct-form button[type=submit]{margin-top:8px}

/* 숨은 칸 — 화면에서 완전히 빼되 display:none 은 쓰지 않는다(자동 프로그램이 눈치챈다) */
.ct-hp{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden}

.ct-cap #captcha{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ct-cap #captcha img{border:1px solid var(--line);border-radius:8px}
.ct-cap #captcha input[type=text],.ct-cap #captcha #captcha_key{width:150px}
.ct-cap #captcha button,.ct-cap #captcha .btn_confirm{border:1px solid #d5dbe6;background:#fff;border-radius:8px;padding:9px 12px;font-size:13px}

.ct-agree{margin:22px 0 6px;padding:16px 18px;background:var(--bg);border-radius:10px}
.ct-agree label{display:flex;align-items:center;gap:8px;font-size:14.5px;margin:0;font-weight:400}
.ct-agree input{width:17px;height:17px;accent-color:var(--blue)}
.ct-agree p{margin-top:9px;font-size:13px;color:var(--gray);line-height:1.7}

.ct-err{border:1px solid #f3c7c7;background:#fdf2f2;border-radius:10px;padding:16px 18px;margin-bottom:24px}
.ct-err strong{display:block;color:#b91c1c;margin-bottom:8px;font-size:15px}
.ct-err li{font-size:14px;color:#7f1d1d;line-height:1.75;padding-left:14px;position:relative}
.ct-err li::before{content:'·';position:absolute;left:2px}
.ct-warn{border:1px solid #f5d9a8;background:#fffaf0;border-radius:10px;padding:14px 16px;margin-bottom:20px;font-size:13.5px;color:#92400e;line-height:1.7}

/* 접수 완료 */
.ct-done{max-width:620px;margin:40px auto 30px;text-align:center;border:1px solid var(--line);border-radius:var(--rad);padding:70px 30px 64px;background:#fff}
.ct-done .ico{display:inline-flex;align-items:center;justify-content:center;width:66px;height:66px;border-radius:50%;background:rgba(46,107,255,.12);color:var(--blue);font-size:32px;margin-bottom:24px}
.ct-done h2{font-size:26px;font-weight:700;margin-bottom:14px}
.ct-done p{color:var(--gray);line-height:1.9}
.ct-done .acts{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:32px}

/* ══ 좁은 화면 ═════════════════════════════════════════ */
@media (max-width:1024px){
  .pg-list .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pg-view .hd{grid-template-columns:minmax(0,1fr);gap:28px}
  .ct-wrap{grid-template-columns:minmax(0,1fr);gap:36px}
}
@media (max-width:760px){
  .pg-list .cards{grid-template-columns:minmax(0,1fr)}
  .pg-view .feat{grid-template-columns:minmax(0,1fr)}
  .pg-view .blk{margin-top:44px}
  .ct-form{padding:26px 20px 30px}
  .ct-form .fld2{grid-template-columns:minmax(0,1fr);gap:0}
}

/* ── 캡처 화면 묶음 (관리자 화면처럼 직접 못 들어가는 곳) ─────── */
.pg-view .shots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.pg-view .shots li{margin:0}
/* ★ 그림마다 크기가 다르다(가로 1100 관리자 화면 · 가로 390 휴대폰 화면).
   width:100% 로 늘리면 좁은 그림이 뭉개지므로, 제 크기를 지키되 칸을 넘지 않게만 한다. */
.pg-view .shots a{display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#f7f8fa;padding:10px;transition:.25s}
.pg-view .shots a:hover{border-color:var(--blue);box-shadow:0 16px 36px -26px rgba(11,18,32,.6);transform:translateY(-2px)}
.pg-view .shots img{display:block;width:auto;max-width:100%;height:auto;max-height:540px;border-radius:4px}
.pg-view .shots span{display:block;margin-top:9px;font-size:13.5px;color:var(--gray);text-align:center}
.pg-view .shots-note{margin-top:16px;font-size:12.5px;color:var(--gray);text-align:center}
@media (max-width:760px){ .pg-view .shots{grid-template-columns:minmax(0,1fr);gap:18px} }

/* ── 그림 크게 보기 (좌우로 넘긴다) ───────────────────── */
.shot-view{position:fixed;inset:0;z-index:3000;display:none;align-items:center;justify-content:center;
  background:rgba(9,13,22,.92);padding:56px 64px;box-sizing:border-box}
.shot-view.on{display:flex}
.shot-view figure{margin:0;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:14px}
.shot-view img{max-width:100%;max-height:calc(100vh - 150px);width:auto;height:auto;border-radius:8px;
  background:#fff;box-shadow:0 30px 80px -30px rgba(0,0,0,.8)}
.shot-view figcaption{display:flex;align-items:center;gap:12px;color:rgba(255,255,255,.85);font-size:14px;text-align:center}
.shot-view figcaption .num{color:rgba(255,255,255,.5);font-size:13px;font-variant-numeric:tabular-nums}
.shot-view button{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;
  border-radius:50%;transition:.2s;line-height:1;font-family:inherit}
.shot-view button:hover{background:rgba(255,255,255,.26)}
.shot-view button:focus-visible{outline:2px solid #fff;outline-offset:3px}
.shot-view .x{top:18px;right:18px;width:42px;height:42px;font-size:26px}
.shot-view .nav{top:50%;transform:translateY(-50%);width:48px;height:48px;font-size:20px}
.shot-view .nav.p{left:16px}
.shot-view .nav.n{right:16px}
.shot-view .nav[hidden]{display:none}
@media (max-width:760px){
  .shot-view{padding:52px 12px}
  .shot-view img{max-height:calc(100vh - 170px)}
  .shot-view .nav{width:40px;height:40px;top:auto;bottom:14px;transform:none}
  .shot-view .nav.p{left:24%}
  .shot-view .nav.n{right:24%}
}
