/* =============================================
   preview_sub.css — NephritesSoft 서브페이지
   data-theme="light|dark" 전환
   변수 한 곳에서 관리
============================================= */

/* ── 폰트 ── */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700;900&family=Unbounded:wght@700;900&display=swap');

/* ══════════════════════════════
   디자인 토큰 — 라이트 (기본)
══════════════════════════════ */
:root,
[data-theme="light"] {
  --bg:           #f4f7f5;
  --bg-card:      #ffffff;
  --bg-sub:       #eef3f0;
  --bg-hover:     #e4ede8;
  --text:         #0d1f17;
  --text-sub:     #4a7060;
  --text-muted:   #80a898;
  --border:       #dce8e2;
  --border-m:     #b8d0c8;
  --accent:       #1a7a52;
  --accent-l:     #25a870;
  --accent-glow:  rgba(26,122,82,.12);
  --nav-bg:       rgba(244,247,245,.96);
  --bg-img:       #d4e8e0;
  --shadow-sm:    0 1px 4px rgba(0,0,0,.06);
  --shadow-md:    0 4px 16px rgba(0,0,0,.08);
  --shadow-lg:    0 12px 32px rgba(0,0,0,.12);
  --font-h:       'Unbounded', sans-serif;
  --font-b:       'Noto Sans KR', sans-serif;
  --t-xs:  clamp(11px,1.2vw,12px);
  --t-sm:  clamp(12px,1.4vw,14px);
  --t-base:clamp(14px,1.6vw,16px);
  --t-md:  clamp(15px,1.8vw,18px);
  --t-lg:  clamp(20px,2.5vw,24px);
  --t-xl:  clamp(24px,3.5vw,36px);
  --t-2xl: clamp(32px,5vw,52px);
  --t-3xl: clamp(40px,7vw,80px);
  --r-sm:  6px;
  --r-md:  10px;
  --r-lg:  16px;
  --r-full:99px;
}

/* ══════════════════════════════
   디자인 토큰 — 다크
══════════════════════════════ */
[data-theme="dark"] {
  --bg:           #0d110e;
  --bg-card:      #111714;
  --bg-sub:       #161f18;
  --bg-hover:     #1e2821;
  --text:         #e8f0ec;
  --text-sub:     #9dbdaa;
  --text-muted:   #5a7868;
  --border:       #1e2821;
  --border-m:     #2a3830;
  --accent:       #1a7a52;
  --accent-l:     #25a870;
  --accent-glow:  rgba(26,122,82,.18);
  --nav-bg:       rgba(13,17,14,.96);
  --bg-img:       #1a2e24;
  --shadow-sm:    0 1px 4px rgba(0,0,0,.3);
  --shadow-md:    0 4px 16px rgba(0,0,0,.4);
  --shadow-lg:    0 12px 32px rgba(0,0,0,.5);
}

/* ══════════════════════════════
   리셋 & 기본
══════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

body.pv-page {
  font-family:var(--font-b);
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  transition:background .3s,color .3s;
  padding-top:60px;
}

/* ══════════════════════════════
   HEADER
══════════════════════════════ */
.nh {
  position:fixed;top:0;left:0;right:0;z-index:500;
  height:60px;
  background:var(--nav-bg);
  border-bottom:1px solid var(--border);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  transition:background .3s,border-color .3s,box-shadow .3s;
}
.nh.scrolled{box-shadow:var(--shadow-md);}
.nh-inner{
  max-width:1200px;margin:0 auto;
  padding:0 40px;height:100%;
  display:flex;align-items:center;gap:32px;
}
.nh-logo{
  font-family:var(--font-h);
  font-size:13px;font-weight:900;
  letter-spacing:.04em;
  color:var(--text)!important;
  flex-shrink:0;white-space:nowrap;
}
.nh-logo em{color:var(--accent)!important;font-style:normal;}
.nh-logo-img  { height: 30px; width: auto; display: block; }
.nh-logo-dark { display: none; }
[data-theme="dark"] .nh-logo-light { display: none; }
[data-theme="dark"] .nh-logo-dark  { display: block; }
.nh-nav{display:flex;align-items:center;gap:2px;flex:1;}
.nh-link{
  padding:7px 14px;border-radius:var(--r-sm);
  font-size:var(--t-md);font-weight:500;
  color:var(--text-sub)!important;
  transition:all .15s;white-space:nowrap;
}
.nh-link:hover{color:var(--text)!important;background:var(--bg-hover);}
.nh-link.on{color:var(--accent)!important;font-weight:700;}
.nh-right{
  display:flex;align-items:center;gap:8px;
  margin-left:auto;flex-shrink:0;
}
.nh-cta{
  background:var(--accent);color:#fff!important;
  padding:8px 18px;border-radius:var(--r-sm);
  font-size:var(--t-md);font-weight:700;
  transition:all .2s;white-space:nowrap;
}
.nh-cta:hover{background:var(--accent-l);transform:translateY(-1px);}
/* 햄버거 */
.nh-ham{
  display:none;
  width:34px;height:34px;border-radius:var(--r-sm);
  background:var(--bg-sub);border:1px solid var(--border);
  cursor:pointer;flex-direction:column;
  align-items:center;justify-content:center;gap:5px;padding:9px;
}
.nh-ham span{
  display:block;width:100%;height:1.5px;
  background:var(--text-sub);border-radius:99px;transition:all .3s;
}
/* 드로어 */
.nh-drawer{
  display:none;position:fixed;inset:0;z-index:499;
  background:rgba(0,0,0,.45);
}
.nh-drawer.open{ display:block; }
.nh-drawer-panel{
  position:absolute;right:0;top:0;bottom:0;width:280px;
  background:var(--bg-card);border-left:1px solid var(--border);
  padding:80px 24px 40px;
  display:flex;flex-direction:column;gap:4px;
  transform:translateX(100%);
  transition:transform .3s cubic-bezier(.25,.46,.45,.94);
  box-shadow:var(--shadow-lg);
}
.nh-drawer.open .nh-drawer-panel{transform:translateX(0);}
.nh-drawer-link{
  padding:12px 16px;border-radius:var(--r-md);
  font-size:var(--t-md);font-weight:500;
  color:var(--text-sub)!important;transition:all .15s;display:block;
}
.nh-drawer-link:hover{background:var(--bg-hover);color:var(--text)!important;}
.nh-drawer-link.on{color:var(--accent)!important;font-weight:700;}
.nh-drawer-cta{
  margin-top:16px;background:var(--accent);color:#fff!important;
  padding:14px 20px;border-radius:var(--r-md);
  font-size:var(--t-md);font-weight:700;text-align:center;display:block;
}
.nh-drawer-close{
  position:absolute;top:20px;right:20px;
  width:34px;height:34px;border-radius:var(--r-sm);
  background:var(--bg-sub);border:1px solid var(--border);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  color:var(--text-sub);transition:all .15s;
}
.nh-drawer-close:hover{background:var(--bg-hover);color:var(--text);}

/* ══════════════════════════════
   FOOTER
══════════════════════════════ */
.nf{background:#0d110e;color:#9dbdaa;padding:56px 0 28px;margin-top:80px;}
.nf-inner{max-width:1200px;margin:0 auto;padding:0 40px;}
.nf-top{display:grid;grid-template-columns:1fr auto;gap:60px;margin-bottom:40px;}
.nf-logo{
  font-family:var(--font-h);font-size:15px;font-weight:900;
  color:#fff!important;letter-spacing:.04em;margin-bottom:12px;display:block;
}
.nf-logo em{color:#25a870!important;font-style:normal;}
.nf-tagline{font-size:var(--t-sm);color:#5a7868;line-height:1.75;margin-bottom:14px;}
.nf-contacts{display:flex;align-items:center;gap:8px;font-size:var(--t-sm);flex-wrap:wrap;}
.nf-contacts a{color:#9dbdaa!important;transition:color .15s;}
.nf-contacts a:hover{color:#25a870!important;}
.nf-links-wrap{display:flex;gap:48px;}
.nf-col{display:flex;flex-direction:column;gap:8px;}
.nf-col-title{
  font-size:var(--t-xs);font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;
  color:var(--text-muted);margin-bottom:4px;
}
.nf-link{font-size:var(--t-sm);color:#5a7868!important;transition:color .15s;}
.nf-link:hover{color:#25a870!important;}
.nf-divider{border:none;border-top:1px solid #1e2821;margin-bottom:20px;}
.nf-bottom{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:10px;
}
.nf-biz{font-size:var(--t-xs);color:var(--text-muted);line-height:1.7;}
.nf-copy{font-size:var(--t-xs);color:var(--text-muted);flex-shrink:0;}

/* ══════════════════════════════
   공통 레이아웃
══════════════════════════════ */
.pv-wrap{min-height:calc(100vh - 60px);}
.pv-inner{max-width:1080px;margin:0 auto;padding:0 40px;}
.pv-section{padding:80px 0;background:var(--bg);transition:background .3s;}
.pv-section.alt{background:var(--bg-sub);}

.pv-label{
  font-size:var(--t-xs);font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--accent);
  display:flex;align-items:center;gap:8px;margin-bottom:10px;
}
.pv-label::before{content:'';width:14px;height:1px;background:var(--accent);}
.pv-title{
  font-family:var(--font-h);
  font-size:var(--t-2xl);font-weight:900;
  letter-spacing:-.04em;line-height:1.1;
  color:var(--text);margin-bottom:10px;word-break: keep-all;
}
.pv-sub{font-size:var(--t-md);color:var(--text-sub);line-height:1.8;}
.pv-sub{font-size:var(--t-base);color:var(--text-sub);line-height:1.8;}
.pv-sec-head{
  display:flex;align-items:flex-end;
  justify-content:space-between;margin-bottom:40px;
  gap:16px;flex-wrap:wrap;
}
.pv-more{
  font-size:var(--t-xs);color:var(--text-muted);
  border-bottom:1px solid var(--border);padding-bottom:2px;
  letter-spacing:.06em;text-transform:uppercase;font-weight:700;
  transition:all .2s;white-space:nowrap;
}
.pv-more:hover{color:var(--accent);border-color:var(--accent);}
.pv-sub .int_list{
  font-weight: bold;
}
/* nl2br 본문 내 span → 동그라미 포인트 */
.pv-sub .int_list span{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.pv-sub .int_list span::before{
  content:'';
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--accent);
  flex-shrink:0;
}
/* 페이지 히어로 */
.pv-hero{
  background:var(--bg-sub);
  border-bottom:1px solid var(--border);
  padding:64px 0 56px;
  position:relative;overflow:hidden;
  transition:background .3s,border-color .3s;
}
.pv-hero-bg-txt{
  position:absolute;bottom:-20px;right:40px;
  font-family:var(--font-h);
  font-size:clamp(80px,14vw,180px);font-weight:900;
  color:var(--border);letter-spacing:-.05em;
  pointer-events:none;user-select:none;line-height:1;
  opacity:.5;
}
.pv-hero-bg-txt.pero-small{
  font-size:clamp(40px,8vw,130px);
}
.pv-hero-inner{max-width:1080px;margin:0 auto;padding:0 40px;position:relative;z-index:1;}

/* 버튼 */
.pv-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 24px;font-size:var(--t-sm);font-weight:700;
  border-radius:var(--r-sm);transition:all .2s;
  border:none;cursor:pointer;font-family:var(--font-b);
  white-space:nowrap;
}
.pv-btn-p{background:var(--accent);color:#fff!important;}
.pv-btn-p:hover{background:var(--accent-l);transform:translateY(-2px);}
.pv-btn-g{background:transparent;border:1px solid var(--border-m);color:var(--text)!important;}
.pv-btn-g:hover{border-color:var(--accent);color:var(--accent)!important;}
.pv-btn-w{background:#fff;color:var(--accent)!important;}
.pv-btn-w:hover{background:#f0faf5;transform:translateY(-2px);}
.pv-btn-sm{ padding:6px 16px; font-size:var(--t-xs); }

/* 카드 */
.pv-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:28px;transition:all .2s;
}
.pv-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-m);}

/* KPI 바 */
.pv-kpi{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:1px;background:var(--border);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
.pv-kpi-cell{background:var(--bg-card);padding:28px 32px;transition:background .2s;}
.pv-kpi-cell:hover{background:var(--bg-sub);}
.pv-kpi-n{
  font-family:var(--font-h);font-size:40px;font-weight:900;
  letter-spacing:-.05em;color:var(--text);line-height:1;margin-bottom:6px;
}
.pv-kpi-n.u{color:var(--accent);}
.pv-kpi-n .u{font-size:20px;color:var(--accent);}
.pv-kpi-l{font-size:var(--t-xs);color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;}

/* CTA 배너 */
.pv-cta{
  background:linear-gradient(135deg,var(--accent) 0%,var(--accent-l) 100%);
  border-radius:var(--r-lg);padding:56px 52px;
  display:flex;align-items:center;justify-content:space-between;
  gap:28px;flex-wrap:wrap;position:relative;overflow:hidden;
}
.pv-cta::before{
  content:'';position:absolute;right:-80px;top:-80px;
  width:320px;height:320px;border-radius:50%;
  background:rgba(255,255,255,.08);
  pointer-events: none;
}
.pv-cta-title{
  font-family:var(--font-h);font-size:var(--t-xl);font-weight:900;
  color:#fff;letter-spacing:-.04em;line-height:1.15;
  margin-bottom:8px;position:relative;z-index:1;
}
.pv-cta-sub{font-size:var(--t-sm);color:rgba(255,255,255,.75);position:relative;z-index:1;}
.pv-cta-btns{display:flex;gap:12px;flex-wrap:wrap;position:relative;z-index:1;}
.pv-btn-cta-ghost{
  background:rgba(255,255,255,.2);color:#fff!important;
  border:1px solid rgba(255,255,255,.4);
}
.pv-btn-cta-ghost:hover{background:rgba(255,255,255,.3);}

/* 필터 탭 */
.pv-filter{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px;}
.pv-f-btn{
  padding:7px 18px;border-radius:var(--r-full);
  font-size:var(--t-base);font-weight:500;
  border:1px solid var(--border);
  color:var(--text-sub);background:transparent;
  cursor:pointer;transition:all .15s;
}
.pv-f-btn:hover,.pv-f-btn.on{background:var(--text);color:var(--bg);border-color:var(--text);}

/* 페이드업 */
.fade-up{opacity:0;transform:translateY(28px);transition:opacity .6s,transform .6s;}
.fade-up.vis{opacity:1;transform:none;}
.fade-up.delay-1{transition-delay:.1s;}
.fade-up.delay-2{transition-delay:.2s;}
.fade-up.delay-3{transition-delay:.3s;}

/* 공통 유틸 */
.pv-acc       { color:var(--accent); }
.pv-sub-mb    { margin-bottom:16px; }
.pv-wv-desc   { max-width:720px; line-height:1.9; }
.pv-wv-img    { width:100%; display:block; }
.pv-works-title { font-size:var(--t-2xl); margin-bottom:16px; }

/* ══════════════════════════════
   ABOUT 페이지
══════════════════════════════ */
.pv-strength-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px;}
.pv-strength-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:32px 28px;
  transition:all .3s;position:relative;overflow:hidden;
}
.pv-strength-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--accent),var(--accent-l));
  transform:scaleX(0);transform-origin:left;transition:transform .3s;
}
.pv-strength-card:hover::before{transform:scaleX(1);}
.pv-strength-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px);}
.pv-strength-num{
  font-family:var(--font-h);font-size:40px;font-weight:900;
  color:var(--border-m);letter-spacing:-.05em;margin-bottom:16px;line-height:1;
}
.pv-strength-title{font-size:var(--t-md);font-weight:700;color:var(--text);margin-bottom:10px;letter-spacing:-.02em;}
.pv-strength-desc{font-size:var(--t-sm);color:var(--text-sub);line-height:1.75;}

.pv-split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.pv-split.reverse{direction:rtl;}
.pv-split.reverse > *{direction:ltr;}
.pv-split-img{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/3;position:relative;}
.pv-split-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.pv-split-img:hover img{transform:scale(1.03);}
.pv-split-img-overlay{
  position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(26,122,82,.15) 0%,transparent 60%);
}

.pv-process{display:grid;grid-template-columns:repeat(6,1fr);gap:0;margin-top:48px;position:relative;}
.pv-process::before{
  content:'';position:absolute;top:24px;left:10%;right:10%;height:1px;
  background:var(--border);z-index:0;
}
.pv-proc-item{display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;z-index:1;}
.pv-proc-dot{
  width:48px;height:48px;border-radius:50%;
  background:var(--bg-card);border:2px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:12px;transition:all .3s;font-size:18px;
}
.pv-proc-item.active .pv-proc-dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 6px var(--accent-glow);}
.pv-proc-label{font-size:var(--t-xs);color:var(--text-muted);font-weight:600;}
.pv-proc-item.active .pv-proc-label{color:var(--accent);font-weight:700;}

/* ══════════════════════════════
   프로세스 (About 신버전)
══════════════════════════════ */
@keyframes procGlow{100%{box-shadow:1px 1px 16px 4px var(--accent);}}
.pv-process-wrap{position:relative;margin-top:48px;}
.pv-proc-row{display:flex;align-items:flex-start;position:relative;margin-bottom:48px;padding-top:0;}
.pv-proc-row:last-child{margin-bottom:0;}
.pv-proc-line{position:absolute;top:8px;left:28px;right:28px;height:1px;background:var(--border);z-index:0;}
.pv-proc-step{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;z-index:1;}
.pv-proc-circle{width:16px;height:16px;border-radius:50%;background:var(--border-m);margin-bottom:12px;transition:background .3s;flex-shrink:0;}
.pv-proc-circle.current{background:var(--accent);box-shadow:1px 1px 6px 2px var(--accent);animation:procGlow 1s infinite alternate;}
.pv-proc-step-num{display:block;font-size:var(--t-xs);font-weight:700;color:var(--text-muted);letter-spacing:.04em;margin-bottom:3px;}
.pv-proc-step.active .pv-proc-step-num{color:var(--accent);}
.pv-proc-name{font-size:var(--t-sm);font-weight:500;color:var(--text-muted);line-height:1.4;}
.pv-proc-step.active .pv-proc-name{color:var(--text);font-weight:700;}

/* ══════════════════════════════
   WORKS 페이지 (muee 카드)
══════════════════════════════ */
.pv-works-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;}
.pv-wcard{position:relative;overflow:hidden;aspect-ratio:4/3;cursor:pointer;display:block;perspective:972px;background:var(--bg-sub);}
.pv-wcard-bg{position:absolute;inset:0;transition:transform .5s cubic-bezier(.25,.46,.45,.94);will-change:transform;}
.pv-wcard-bg img{width:100%;height:100%;object-fit:cover;}
.pv-wcard-bg-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;}
.pv-wcard-bg-placeholder svg{width:72px;height:72px;opacity:.18;}
.pv-wcard-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(4,8,10,.88) 0%,rgba(4,8,10,.1) 60%,transparent 100%);z-index:1;}
.pv-wcard-cat{position:absolute;top:14px;left:14px;z-index:3;font-size:var(--t-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.2);padding:3px 10px;border-radius:var(--r-full);backdrop-filter:blur(6px);}
.pv-wcard-view{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-end;position:absolute;left:0;top:0;width:100%;height:100%;text-align:right;background:rgba(4,8,10,.88);padding:1.5rem;z-index:2;word-break:keep-all;pointer-events:none;transform:rotate3d(1,0,0,90deg);}
.pv-wcard-num{font-size:var(--t-xs);color:rgba(255,255,255,.3);font-weight:700;letter-spacing:.06em;margin-bottom:5px;}
.pv-wcard-cat2{font-size:var(--t-xs);color:rgba(255,255,255,.5);letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px;}
.pv-wcard-name{font-family:var(--font-h);font-size:clamp(12px,1.2vw,15px);font-weight:900;color:#fff;letter-spacing:-.03em;line-height:1.3;margin-bottom:10px;}
.pv-wcard-more{font-size:var(--t-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff;}

.pv-wcard.in_top    .pv-wcard-view{transform-origin:50% 0%;   animation:wc_in_top    300ms ease forwards;}
.pv-wcard.in_right  .pv-wcard-view{transform-origin:100% 0%;  animation:wc_in_right  300ms ease forwards;}
.pv-wcard.in_bottom .pv-wcard-view{transform-origin:50% 100%; animation:wc_in_bottom 300ms ease forwards;}
.pv-wcard.in_left   .pv-wcard-view{transform-origin:0% 0%;    animation:wc_in_left   300ms ease forwards;}
.pv-wcard.out_top   .pv-wcard-view{transform-origin:50% 0%;   animation:wc_out_top   300ms ease forwards;}
.pv-wcard.out_right .pv-wcard-view{transform-origin:100% 50%; animation:wc_out_right 300ms ease forwards;}
.pv-wcard.out_bottom .pv-wcard-view{transform-origin:50% 100%;animation:wc_out_bottom 300ms ease forwards;}
.pv-wcard.out_left  .pv-wcard-view{transform-origin:0% 0%;    animation:wc_out_left  300ms ease forwards;}
.pv-wcard.in_top .pv-wcard-bg,.pv-wcard.in_right .pv-wcard-bg,
.pv-wcard.in_bottom .pv-wcard-bg,.pv-wcard.in_left .pv-wcard-bg{transform:scale(1.05);}

@keyframes wc_in_top   {from{transform:rotate3d(-1,0,0,90deg);}to{transform:rotate3d(0,0,0,0deg);}}
@keyframes wc_in_right {from{transform:rotate3d(0,-1,0,90deg);}to{transform:rotate3d(0,0,0,0deg);}}
@keyframes wc_in_bottom{from{transform:rotate3d( 1,0,0,90deg);}to{transform:rotate3d(0,0,0,0deg);}}
@keyframes wc_in_left  {from{transform:rotate3d(0, 1,0,90deg);}to{transform:rotate3d(0,0,0,0deg);}}
@keyframes wc_out_top  {from{transform:rotate3d(0,0,0,0deg);}to{transform:rotate3d(-1,0,0,104deg);}}
@keyframes wc_out_right{from{transform:rotate3d(0,0,0,0deg);}to{transform:rotate3d(0,-1,0,104deg);}}
@keyframes wc_out_bottom{from{transform:rotate3d(0,0,0,0deg);}to{transform:rotate3d(1,0,0,104deg);}}
@keyframes wc_out_left {from{transform:rotate3d(0,0,0,0deg);}to{transform:rotate3d(0,1,0,104deg);}}

/* 무한스크롤 */
.pv-load-more{display:flex;align-items:center;justify-content:center;padding:40px 0;}
.pv-load-spinner{width:32px;height:32px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:pvSpin .8s linear infinite;}
@keyframes pvSpin{to{transform:rotate(360deg);}}
.pv-load-done{font-size:var(--t-sm);color:var(--text-muted);display:flex;align-items:center;gap:8px;}
.pv-load-done::before,.pv-load-done::after{content:'';flex:1;height:1px;background:var(--border);}

/* ══════════════════════════════
   Works 리스트 카드
══════════════════════════════ */
.pv-wlist-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:24px;}
.pv-wlist-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--r-lg);overflow:hidden;
  transition:all .25s;display:block;text-decoration:none;
  box-shadow:var(--shadow-sm);
}
.pv-wlist-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px);border-color:var(--border-m);}
.pv-wlist-img{position:relative;aspect-ratio:16/15;overflow:hidden;background:var(--bg-img);    padding: 10px;}
.pv-wlist-img img{width:100%;height:100%;object-fit:contain;transition:transform .4s;}
.pv-wlist-card:hover .pv-wlist-img img{transform:scale(1.05);}
.pv-wlist-hover{
  position:absolute;inset:0;z-index:2;background:rgba(4,8,10,.55);
  display:flex;align-items:center;justify-content:center;gap:8px;
  font-size:var(--t-sm);font-weight:700;color:#fff;
  opacity:0;transition:opacity .25s;
}
.pv-wlist-card:hover .pv-wlist-hover{opacity:1;}
.pv-wlist-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--border-m);}
.pv-wlist-body{padding:18px 20px;}
.pv-wlist-title{font-size:var(--t-md);font-weight:700;color:var(--text);margin-bottom:6px;letter-spacing:-.02em;line-height:1.4;}
.pv-wlist-desc{font-size:var(--t-sm);color:var(--text-sub);line-height:1.6;margin-bottom:12px;word-break: keep-all;}
.pv-wlist-tags{display:flex;gap:6px;flex-wrap:wrap;}
.pv-wlist-tag{font-size:var(--t-xs);font-weight:700;padding:3px 10px;border-radius:var(--r-full);background:var(--bg-sub);color:var(--text-muted);border:1px solid var(--border);}

/* ══════════════════════════════
   SOLUTION 페이지
══════════════════════════════ */
.pv-sol-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px;}
.pv-sol-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;transition:all .25s;display:block;text-decoration:none;position:relative;}
.pv-sol-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px);border-color:var(--accent);}
.pv-sol-card-img{aspect-ratio:16/11;overflow:hidden;background:var(--bg-sub);position:relative;}
.pv-sol-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s;}
/*.pv-sol-card:hover .pv-sol-card-img img{transform:scale(1.05);}*/
.pv-sol-card-img-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:40px;}
.pv-sol-card-body{padding:24px;}
.pv-sol-card-tag{display:inline-block;font-size:var(--t-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:var(--accent-glow);padding:3px 10px;border-radius:var(--r-full);margin-bottom:10px;}
.pv-sol-card-title{font-size:var(--t-md);font-weight:700;color:var(--text);margin-bottom:8px;letter-spacing:-.02em;}
.pv-sol-card-desc{font-size:var(--t-sm);color:var(--text-sub);line-height:1.7;margin-bottom:16px;}
.pv-sol-card-arrow{display:flex;align-items:center;gap:6px;font-size:var(--t-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);transition:gap .2s;}
.pv-sol-card:hover .pv-sol-card-arrow{gap:10px;}

/* ══════════════════════════════
   SOLUTION 상세
══════════════════════════════ */
.pv-sol-detail-hero{position:relative;overflow:hidden;min-height:420px;display:flex;align-items:flex-end;padding:0 0 56px;}
.pv-sol-detail-hero-img{position:absolute;inset:0;}
.pv-sol-detail-hero-img img{width:100%;height:100%;object-fit:cover;}
.pv-sol-detail-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(4,8,10,.85) 0%,rgba(4,8,10,.3) 60%,rgba(4,8,10,.1) 100%);}
.pv-sol-detail-hero-content{position:relative;z-index:1;max-width:1080px;margin:0 auto;padding:0 40px;color:#fff;width:100%;}
.pv-sol-detail-tag{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--accent);padding:4px 12px;border-radius:var(--r-full);margin-bottom:16px;}
.pv-sol-detail-title{font-family:var(--font-h);font-size:var(--t-2xl);font-weight:900;letter-spacing:-.04em;line-height:1.1;color:#fff;margin-bottom:12px;}
.pv-sol-detail-desc{font-size:var(--t-base);color:rgba(255,255,255,.8);line-height:1.75;max-width:600px;word-break:keep-all;overflow-wrap:break-word;}

/* 기능 목록 */
.pv-feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:32px;}
.pv-feature-item{display:flex;align-items:flex-start;gap:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-md);padding:20px;transition:all .2s;}
.pv-feature-item:hover{border-color:var(--accent);box-shadow:var(--shadow-sm);}
.pv-feature-icon{width:40px;height:40px;border-radius:var(--r-md);background:var(--accent-glow);display:flex;align-items:center;justify-content:center;color:var(--accent);flex-shrink:0;font-size:18px;}
.pv-feature-name{font-size:var(--t-md);font-weight:700;color:var(--text);margin-bottom:4px;}
.pv-feature-desc{font-size:var(--t-sm);color:var(--text-sub);line-height:1.6;}

/* ══════════════════════════════
   AI 솔루션 페이지
══════════════════════════════ */
.pv-ai-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.pv-ai-icon{width:48px;height:48px;border-radius:var(--r-md);background:var(--accent-glow);display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--accent);}
.pv-ai-title{font-size:var(--t-md);font-weight:700;color:var(--text);margin-bottom:10px;letter-spacing:-.02em;}
.pv-ai-desc{font-size:var(--t-sm);color:var(--text-sub);line-height:1.7;margin-bottom:14px;}
.pv-tag-row{display:flex;gap:6px;flex-wrap:wrap;}
.pv-tag-item{font-size:var(--t-xs);padding:3px 10px;border-radius:var(--r-full);background:var(--accent-glow);color:var(--accent);border:1px solid rgba(26,122,82,.2);font-weight:700;}

/* AI 데모 카드 */
.pv-demo-card{max-width:640px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px 24px;box-shadow:var(--shadow-md);}
.pv-demo-card-head{display:flex;align-items:center;gap:10px;padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid var(--border);}
.pv-demo-online-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:#2ecc71;box-shadow:0 0 0 0 rgba(46,204,113,.4);animation:pvDemoPulse 2s infinite;}
@keyframes pvDemoPulse{0%{box-shadow:0 0 0 0 rgba(46,204,113,.4);}70%{box-shadow:0 0 0 6px rgba(46,204,113,0);}100%{box-shadow:0 0 0 0 rgba(46,204,113,0);}}
.pv-demo-online-label{font-size:var(--t-xs);font-weight:600;color:var(--text-sub);letter-spacing:.04em;text-transform:uppercase;}
.pv-demo-card-body{margin-bottom:16px;}
.pv-demo-msg-row{display:flex;gap:10px;align-items:flex-start;margin-bottom:16px;}
.pv-demo-avatar{width:28px;height:28px;border-radius:50%;flex-shrink:0;background:var(--accent);display:flex;align-items:center;justify-content:center;}
.pv-demo-bubble{background:var(--bg-sub);border:1px solid var(--border);border-radius:4px 12px 12px 12px;padding:10px 14px;font-size:var(--t-sm);color:var(--text);line-height:1.7;max-width:460px;}
.pv-demo-chips{display:flex;gap:8px;flex-wrap:wrap;padding-left:38px;}
.pv-demo-chip{font-size:var(--t-xs);border:1px solid var(--border);color:var(--text-sub);padding:5px 12px;border-radius:var(--r-full);transition:all .15s;background:var(--bg-sub);}
.pv-demo-chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-glow);}
.pv-demo-card-foot{display:flex;align-items:center;justify-content:space-between;padding-top:14px;border-top:1px solid var(--border);gap:12px;}
.pv-demo-foot-label{font-size:var(--t-xs);color:var(--text-muted);}
.pv-demo-foot-link{font-size:var(--t-xs);font-weight:700;color:var(--accent);white-space:nowrap;}
.pv-demo-foot-link:hover{text-decoration:underline;}

/* ══════════════════════════════
   CONTACT 페이지
══════════════════════════════ */
.pv-contact-wrap{max-width:1080px;margin:0 auto;padding:56px 40px 100px;}
.pv-contact-grid{display:grid;grid-template-columns:1fr 320px;gap:56px;align-items:start;}
.pv-field{margin-bottom:20px;}
.pv-field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.pv-label-text{display:block;font-size:var(--t-sm);font-weight:600;color:var(--text);margin-bottom:7px;}
.pv-req{color:#e05050;}
.pv-opt{font-size:var(--t-xs);color:var(--text-muted);font-weight:400;}
.pv-input{width:100%;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--r-md);padding:12px 16px;font-size:var(--t-base);color:var(--text);font-family:var(--font-b);outline:none;transition:border-color .2s,box-shadow .2s;}
.pv-input::placeholder{color:var(--text-muted);}
.pv-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);}
.pv-textarea{min-height:120px;resize:vertical;}
.pv-file-row{display:flex;gap:8px;align-items:center;}
.pv-file-name{cursor:pointer;}
.pv-file-btn{cursor:pointer;white-space:nowrap;margin:0;}
.pv-file-hidden{display:none;}
.pv-type-grid{display:flex;flex-wrap:wrap;gap:8px;}
.pv-type-btn{cursor:pointer;}
.pv-type-btn input{display:none;}
.pv-type-btn span{display:inline-block;padding:7px 16px;border-radius:var(--r-full);border:1.5px solid var(--border);font-size:var(--t-sm);font-weight:500;color:var(--text-sub);transition:all .15s;cursor:pointer;}
.pv-type-btn input:checked+span{background:var(--accent);color:#fff;border-color:var(--accent);}
.pv-type-btn span:hover{border-color:var(--accent);color:var(--accent);}
.pv-check-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:var(--t-sm);color:var(--text-sub);}
.pv-check-label input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;}
.pv-check-label a{color:var(--accent);text-decoration:underline;}
.pv-submit{width:100%;margin-top:8px;background:var(--accent);color:#fff;border:none;border-radius:var(--r-md);padding:16px 24px;font-size:var(--t-base);font-weight:700;font-family:var(--font-b);cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px;}
.pv-submit:hover{background:var(--accent-l);transform:translateY(-1px);box-shadow:var(--shadow-md);}
.pv-alert-ok{display:flex;align-items:center;gap:10px;background:var(--accent-glow);border:1px solid rgba(26,122,82,.2);border-radius:var(--r-md);padding:14px 18px;margin-bottom:24px;font-size:var(--t-sm);color:var(--accent);}
.pv-alert-err{display:flex;align-items:center;gap:10px;background:rgba(220,50,50,.08);border:1px solid rgba(220,50,50,.2);border-radius:var(--r-md);padding:14px 18px;margin-bottom:24px;font-size:var(--t-sm);color:#e05050;}
.pv-info-stack{display:flex;flex-direction:column;gap:12px;position:sticky;top:80px;}
.pv-info-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:25px 20px;display:flex;align-items:flex-start;gap:14px;transition:box-shadow .2s;}
.pv-info-card:hover{box-shadow:var(--shadow-md);}
.pv-info-ico{width:40px;height:40px;border-radius:var(--r-md);background:var(--accent-glow);display:flex;align-items:center;justify-content:center;color:var(--accent);flex-shrink:0;}
.pv-info-title{font-size:var(--t-sm);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px;}
.pv-info-val{font-size:var(--t-base);font-weight:600;color:var(--text);}
a.pv-info-val:hover{color:var(--accent);}
.pv-info-note{font-size:var(--t-sm);color:var(--text-muted);margin-top:3px;}
.pv-response-card{background:var(--accent);border-radius:var(--r-lg);padding:20px;display:flex;align-items:center;gap:14px;line-height: 1.2;}
.pv-response-dot{width:10px;height:10px;border-radius:50%;background:#fff;flex-shrink:0;box-shadow:0 0 0 4px rgba(255,255,255,.3);animation:rPulse 2s infinite;}
@keyframes rPulse{0%,100%{box-shadow:0 0 0 4px rgba(255,255,255,.3)}50%{box-shadow:0 0 0 8px rgba(255,255,255,.1)}}
.pv-response-t{font-size:var(--t-xs);color:rgba(255,255,255,.8);margin-bottom:3px;}
.pv-response-v{font-size:var(--t-md);font-weight:900;color:#fff;font-family:var(--font-h);}

/* ══════════════════════════════
   CONSULT 페이지
══════════════════════════════ */
.pv-chat-wrap{max-width:800px;margin:0 auto;padding:40px 40px 80px;}
.pv-chat-box{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;}
.pv-chat-head{display:flex;align-items:center;gap:14px;padding:20px 24px;border-bottom:1px solid var(--border);background:var(--bg-sub);}
.pv-chat-avatar{width:44px;height:44px;border-radius:50%;background:var(--accent);color:#FFFFFF;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.pv-chat-name{font-size:var(--t-base);font-weight:700;color:var(--text);margin-bottom:3px;}
.pv-chat-desc{font-size:var(--t-sm);color:var(--text-sub);}
.pv-chat-online{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:var(--t-sm);color:var(--accent);flex-shrink:0;}
.pv-chat-online-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:cBlink 2s infinite;}
@keyframes cBlink{0%,100%{opacity:1}50%{opacity:.3}}
.pv-chat-hint{padding:14px 24px;border-bottom:1px solid var(--border);font-size:var(--t-sm);color:var(--text-sub);line-height:1.7;background:var(--bg);}
.pv-chat-hint strong{color:var(--accent);}
.pv-chat-log{height:440px;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:16px;}
.pv-chat-log::-webkit-scrollbar{width:4px;}
.pv-chat-log::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px;}
.pc-msg{display:flex;gap:10px;align-items:flex-start;}
.pc-msg-user{flex-direction:row-reverse;}
.pc-msg-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--t-base);flex-shrink:0;margin-top:2px;background:var(--bg-sub);border:1px solid var(--border);}
.pc-msg-user .pc-msg-avatar{background:var(--accent);border-color:var(--accent);}
.pc-msg-content{display:flex;flex-direction:column;max-width:75%;}
.pc-msg-user .pc-msg-content{align-items:flex-end;}
.pc-msg-who{font-size:var(--t-xs);color:var(--text-muted);margin-bottom:5px;font-weight:600;}
.pc-msg-body{padding:12px 16px;border-radius:4px 12px 12px 12px;font-size:var(--t-base);line-height:1.7;color:var(--text);background:var(--bg-sub);border:1px solid var(--border);word-break:break-word;}
.pc-msg-user .pc-msg-body{background:var(--accent);color:#fff;border-color:var(--accent);border-radius:12px 4px 12px 12px;}
.pc-msg-error .pc-msg-body{background:rgba(220,50,50,.08);border-color:rgba(220,50,50,.2);color:#e05050;}
.pc-msg-body a{color:var(--accent-l);text-decoration:underline;}
.pc-msg-meta{font-size:var(--t-xs);color:var(--text-muted);margin-top:5px;}
.pc-pending .pc-msg-body em{color:var(--text-muted);font-style:normal;}
.pc-pending .pc-msg-body em::after{content:'';display:inline-block;width:1em;text-align:left;animation:pcDots 1.2s steps(3,end) infinite;}
@keyframes pcDots{0%{content:''}33%{content:'.'}66%{content:'..'}100%{content:'...'}}
.pv-chat-sugs{padding:12px 24px 0;display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--border);background:var(--bg);}
.pv-chat-sug{font-size:var(--t-sm);border:1px solid var(--border);color:var(--text-sub);background:var(--bg-card);padding:6px 14px;border-radius:var(--r-full);cursor:pointer;transition:all .15s;white-space:nowrap;}
.pv-chat-sug:hover{border-color:var(--accent);color:var(--accent);}
.pv-chat-input-wrap{padding:16px 24px;border-top:1px solid var(--border);background:var(--bg-card);}
.pv-chat-input-row{display:flex;gap:10px;align-items:flex-end;background:var(--bg-sub);border:1.5px solid var(--border);border-radius:var(--r-md);padding:12px 14px;transition:border-color .2s;}
.pv-chat-input-row:focus-within{border-color:var(--accent);}
.pv-chat-input{flex:1;background:none;border:none;outline:none;resize:none;font-size:var(--t-base);color:var(--text);font-family:var(--font-b);line-height:1.6;max-height:120px;overflow-y:auto;}
.pv-chat-input::placeholder{color:var(--text-muted);}
.pv-chat-send{width:36px;height:36px;border-radius:var(--r-md);background:var(--accent);border:none;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:opacity .2s;}
.pv-chat-send:hover{opacity:.8;}
.pv-chat-send svg{width:16px;height:16px;color:#fff;}
.pv-chat-send:disabled{background:var(--text-muted);cursor:not-allowed;}
.pv-chat-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px;}
.pv-chat-hint-text{font-size:var(--t-xs);color:var(--text-muted);}
.pv-chat-kakao{display:inline-flex;align-items:center;gap:5px;background:#fee500;color:#3c1e1e!important;padding:5px 14px;border-radius:var(--r-full);font-size:var(--t-xs);font-weight:700;transition:opacity .2s;}
.pv-chat-kakao:hover{opacity:.85;}

/* ══════════════════════════════
   PRIVACY 페이지
══════════════════════════════ */
.pv-pp-wrap{max-width:860px;margin:0 auto;padding:56px 40px 100px;}
.pv-pp-title{font-family:var(--font-h);font-size:var(--t-xl);font-weight:900;letter-spacing:-.04em;color:var(--text);margin-bottom:8px;}
.pv-pp-date{font-size:var(--t-xs);color:var(--text-muted);margin-bottom:20px;}
.pv-pp-lead{background:var(--bg-sub);border-left:3px solid var(--accent);border-radius:0 var(--r-md) var(--r-md) 0;padding:16px 20px;font-size:var(--t-sm);color:var(--text-sub);line-height:1.8;}
.pv-pp-toc{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:24px 28px;margin:28px 0 40px;}
.pv-pp-toc-title{font-size:var(--t-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:12px;}
.pv-pp-toc ol { padding-left:28px; display:flex; flex-direction:column; gap:7px; }
.pv-pp-toc a { font-size:var(--t-base); color:var(--text-sub); transition:color .15s; }
.pv-pp-toc a:hover{color:var(--accent);}
.pv-pp-section{margin-bottom:48px;padding-bottom:48px;border-bottom:1px solid var(--border);}
.pv-pp-section:last-child{border-bottom:none;}
.pv-pp-h2{font-size:var(--t-lg);font-weight:800;color:var(--text);letter-spacing:-.02em;margin-bottom:16px;padding-bottom:10px;border-bottom:2px solid var(--accent);display:inline-block;}
.pv-pp-section p{font-size:var(--t-sm);color:var(--text-sub);line-height:1.85;margin-bottom:14px;}
.pv-pp-section strong{color:var(--text);}
.pv-pp-table-wrap{overflow-x:auto;margin:16px 0;}
.pv-pp-table{width:100%;border-collapse:collapse;font-size:var(--t-sm);}
.pv-pp-table th{background:var(--bg-sub);color:var(--text);font-weight:700;padding:12px 16px;text-align:left;border:1px solid var(--border);}
.pv-pp-table td{padding:11px 16px;color:var(--text-sub);border:1px solid var(--border);background:var(--bg-card);}
.pv-pp-list{padding-left:20px;display:flex;flex-direction:column;gap:8px;}
.pv-pp-list li{font-size:var(--t-sm);color:var(--text-sub);line-height:1.75;}
.pv-pp-list a{color:var(--accent);}
.pv-pp-notice{background:var(--accent-glow);border:1px solid rgba(26,122,82,.2);border-radius:var(--r-md);padding:12px 16px;font-size:var(--t-sm);color:var(--accent);margin-top:12px;}
.pv-pp-info-box{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;}
.pv-pp-info-row{display:flex;align-items:center;gap:16px;padding:14px 20px;border-bottom:1px solid var(--border);font-size:var(--t-sm);}
.pv-pp-info-row:last-child{border-bottom:none;}
.pv-pp-info-row span{width:70px;flex-shrink:0;color:var(--text-muted);font-weight:600;font-size:var(--t-xs);}
.pv-pp-info-row strong{color:var(--text);}
.pv-pp-info-row a{color:var(--accent);}

/* ══════════════════════════════
   Work View 페이지
══════════════════════════════ */
.pv-hero-bg-tags{
  position:absolute;bottom:-20px;right:40px;
  display:flex;gap:16px;align-items:baseline;
  pointer-events:none;user-select:none;
  opacity:.18;line-height:1;
}
.pv-hero-bg-tags span{
  font-family:var(--font-h);
  font-size:clamp(40px,8vw,100px);
  font-weight:900;letter-spacing:-.05em;
  color:var(--text);
}
.pv-wv-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px;}
.pv-wv-tag-s{font-size:var(--t-xs);font-weight:700;padding:4px 12px;border-radius:var(--r-full);background:var(--bg-sub);border:1px solid var(--border-m);color:var(--text-sub);}
.pv-wv-admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;align-items:center;}

/* Description 격리 박스 — DB 내 안 닫힌 태그가 바깥으로 침범하지 못하게 가둠 */
.pv-wv-desc-box{
  overflow:hidden;
  max-width:100%;
  word-break:break-word;
  overflow-wrap:break-word;
}


/* ══════════════════════════════
   반응형
══════════════════════════════ */
@media(max-width:1024px){
  .pv-sol-grid{grid-template-columns:repeat(2,1fr);}
  .pv-strength-grid{grid-template-columns:repeat(2,1fr);}
  .pv-split{grid-template-columns:1fr;gap:32px;}
  .pv-split.reverse{direction:ltr;}
  .pv-process{grid-template-columns:repeat(3,1fr);gap:20px;}
  .pv-process::before{display:none;}
  .pv-wlist-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:768px){
  .nh-inner{padding:0 20px;}
  .nh-nav,.nh-cta{display:none;}
  .nh-ham{display:flex;}
  .nh-drawer{display:none;}
  .nh-drawer.open{display:block;}
  .pv-inner{padding:0 20px;}
  .pv-section{padding:56px 0;}
  .pv-hero{padding:48px 0 40px;}
  .pv-kpi{grid-template-columns:repeat(2,1fr);}
  .pv-works-grid{grid-template-columns:repeat(2,1fr);}
  .pv-sol-grid{grid-template-columns:1fr;}
  .pv-strength-grid{grid-template-columns:1fr;}
  .pv-feature-grid{grid-template-columns:1fr;}
  .pv-cta{padding:36px 24px;flex-direction:column;}
  .pv-contact-wrap{padding:36px 20px 80px;}
  .pv-contact-grid{grid-template-columns:1fr;gap:32px;}
  .pv-field-row{grid-template-columns:1fr;}
  .pv-info-stack{position:static;}
  .pv-pp-wrap{padding:36px 20px 80px;}
  .pv-chat-wrap{padding:20px 20px 60px;}
  .pv-chat-log{height:360px;}
  .nf-inner{padding:0 20px;}
  .nf-top{grid-template-columns:1fr;gap:32px;}
  .nf-links-wrap{gap:24px;flex-wrap:wrap;}
  .nf-bottom{flex-direction:column;align-items:flex-start;}
  .pv-process{grid-template-columns:repeat(2,1fr);}
  .pv-ai-grid{grid-template-columns:1fr;}
  .pv-wv-admin-grid{grid-template-columns:1fr;}
  .pv-wlist-grid{grid-template-columns:1fr;}
  [data-concept="dark"] .hero-bottom,
  [data-concept="light"] .hero-bottom{flex-direction:column;align-items:flex-start;gap:16px;}
}
@media(max-width:600px){
  .pv-works-grid{grid-template-columns:1fr;}
  .pv-process{grid-template-columns:1fr;}
  .pv-process-wrap .pv-proc-row{flex-wrap:wrap;gap:12px 16px;margin-bottom:16px;}
  .pv-process-wrap .pv-proc-row:last-child{margin-bottom:0;}
  .pv-process-wrap .pv-proc-step{flex:0 0 calc(50% - 8px);}
  .pv-process-wrap .pv-proc-line{display:none;}
}
/* ══════════════════════════════
   LMS 솔루션 상세
══════════════════════════════ */
/* ── LMS 전용 추가 스타일 ── */

/* 학습 단계 카드 */
.lms-step-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin-top: 40px;
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
}
.lms-step-card {
  padding: 36px 28px;
  border-right: 1px solid var(--border);
  position: relative;
  transition: background .2s;
}
.lms-step-card:last-child { border-right: none; }
.lms-step-card:hover { background: var(--bg-hover); }
.lms-step-num {
  font-family: var(--font-h);
  font-size: 11px; font-weight: 900;
  letter-spacing: .12em; color: var(--accent);
  margin-bottom: 20px; display: block;
}
.lms-step-icon {
  width: 48px; height: 48px; border-radius: var(--r-md);
  background: var(--accent-glow);
  display: flex; align-items: center; justify-content: center;
  color: var(--accent); margin-bottom: 16px;
}
.lms-step-title {
  font-size: var(--t-md); font-weight: 700;
  color: var(--text); margin-bottom: 8px; letter-spacing: -.02em;
}
.lms-step-desc {
  font-size: var(--t-sm); color: var(--text-sub); line-height: 1.7;
  margin-bottom: 16px;
}
.lms-step-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.lms-step-tag {
  font-size: var(--t-xs); font-weight: 700;
  padding: 3px 10px; border-radius: var(--r-full);
  background: var(--bg-sub); color: var(--text-muted);
  border: 1px solid var(--border);
}
/* 화살표 구분선 */
.lms-step-card::after {
  content: '→';
  position: absolute; right: -14px; top: 50%;
  transform: translateY(-50%);
  font-size: 18px; color: var(--accent);
  z-index: 1; background: var(--bg-card);
  width: 28px; height: 28px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%; border: 1px solid var(--border);
  font-family: var(--font-h);
}
.lms-step-card:last-child::after { display: none; }

/* DRM 강조 블록 */
.lms-drm-wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 40px;
}
.lms-drm-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 32px;
  display: flex; gap: 20px; align-items: flex-start;
  transition: all .2s;
}
.lms-drm-card:hover { box-shadow: var(--shadow-md); border-color: var(--border-m); }
.lms-drm-card.accent-card {
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent-l) 100%);
  border-color: transparent; color: #fff;
}
.lms-drm-icon {
  width: 52px; height: 52px; border-radius: var(--r-md);
  background: var(--accent-glow);
  display: flex; align-items: center; justify-content: center;
  color: var(--accent); flex-shrink: 0;
}
.lms-drm-card.accent-card .lms-drm-icon {
  background: rgba(255,255,255,.2); color: #fff;
}
.lms-drm-title {
  font-size: var(--t-md); font-weight: 700;
  margin-bottom: 8px; letter-spacing: -.02em;
}
.lms-drm-card.accent-card .lms-drm-title { color: #fff; }
.lms-drm-desc { font-size: var(--t-sm); color: var(--text-sub); line-height: 1.7; }
.lms-drm-card.accent-card .lms-drm-desc { color: rgba(255,255,255,.8); }

/* KPI 수치 섹션 */
.lms-kpi-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px; background: var(--border);
  border-radius: var(--r-lg); overflow: hidden;
  border: 1px solid var(--border);
  margin-top: 40px;
}
.lms-kpi-cell {
  background: var(--bg-card);
  padding: 32px 24px; text-align: center;
  transition: background .2s;
}
.lms-kpi-cell:hover { background: var(--bg-sub); }
.lms-kpi-num {
  font-family: var(--font-h);
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 900; color: var(--accent);
  letter-spacing: -.05em; line-height: 1;
  margin-bottom: 8px;
}
.lms-kpi-unit { font-size: var(--t-sm); color: var(--accent); font-weight: 700; }
.lms-kpi-label { font-size: var(--t-xs); color: var(--text-muted); letter-spacing: .06em; text-transform: uppercase; margin-top: 6px; }

/* 반응형 */
@media(max-width: 768px) {
  .lms-step-grid { grid-template-columns: 1fr; }
  .lms-step-card { border-right: none; border-bottom: 1px solid var(--border); }
  .lms-step-card:last-child { border-bottom: none; }
  .lms-step-card::after { display: none; }
  .lms-drm-wrap { grid-template-columns: 1fr; }
  .lms-kpi-row { grid-template-columns: repeat(2, 1fr); }
}

/* ══════════════════════════════
   레이어 합성 상세
══════════════════════════════ */
/* ── 합성 방식 3가지 카드 ── */
.layer-type-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 40px;
}
.layer-type-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
  transition: all .25s;
}
.layer-type-card:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-4px);
  border-color: var(--accent);
}
.layer-type-thumb {
  height: 140px;
  display: flex; align-items: center; justify-content: center;
  position: relative; overflow: hidden;
}
.layer-type-thumb.bg1 { background: linear-gradient(135deg, #e8f5ee 0%, #c8e6d4 100%); }
.layer-type-thumb.bg2 { background: linear-gradient(135deg, #e8eef5 0%, #c8d4e6 100%); }
.layer-type-thumb.bg3 { background: linear-gradient(135deg, #f5eee8 0%, #e6d4c8 100%); }
.layer-type-thumb svg { opacity: .6; }
.layer-type-body { padding: 24px; }
.layer-type-tag {
  font-size: var(--t-xs); font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--accent); background: var(--accent-glow);
  padding: 3px 10px; border-radius: var(--r-full);
  display: inline-block; margin-bottom: 12px;
}
.layer-type-title {
  font-size: var(--t-md); font-weight: 700;
  color: var(--text); margin-bottom: 8px; letter-spacing: -.02em;
}
.layer-type-desc {
  font-size: var(--t-sm); color: var(--text-sub); line-height: 1.7;
}

/* ── 합성 프로세스 (Before → After) ── */
.layer-process-wrap {
  display: flex;
  align-items: center;
  gap: 0;
  margin-top: 40px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
}
.layer-process-step {
  flex: 1;
  padding: 36px 28px;
  display: flex; flex-direction: column;
  align-items: center; text-align: center;
  border-right: 1px solid var(--border);
  transition: background .2s;
}
.layer-process-step:last-child { border-right: none; }
.layer-process-step:hover { background: var(--bg-sub); }
.layer-process-step.highlight {
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent-l) 100%);
  border-color: transparent;
}
.layer-process-icon {
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--accent-glow);
  display: flex; align-items: center; justify-content: center;
  color: var(--accent); margin-bottom: 16px; font-size: 22px;
}
.layer-process-step.highlight .layer-process-icon {
  background: rgba(255,255,255,.2); color: #fff;
}
.layer-process-label {
  font-size: var(--t-xs); font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--text-muted); margin-bottom: 8px;
}
.layer-process-step.highlight .layer-process-label { color: rgba(255,255,255,.7); }
.layer-process-title {
  font-size: var(--t-base); font-weight: 700;
  color: var(--text); margin-bottom: 6px;
}
.layer-process-step.highlight .layer-process-title { color: #fff; }
.layer-process-desc {
  font-size: var(--t-sm); color: var(--text-sub); line-height: 1.6;
}
.layer-process-step.highlight .layer-process-desc { color: rgba(255,255,255,.8); }

/* 화살표 */
.layer-process-arrow {
  width: 40px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  color: var(--accent); font-size: 20px;
}

/* ── 활용 사례 ── */
.layer-usecase-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-top: 40px;
}
.layer-usecase-card {
  display: flex; gap: 16px; align-items: flex-start;
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--r-lg); padding: 24px;
  transition: all .2s;
}
.layer-usecase-card:hover { border-color: var(--accent); box-shadow: var(--shadow-sm); }
.layer-usecase-card.featured {
  grid-column: span 2;
  background: var(--bg-sub);
  border-color: var(--border-m);
}
.layer-usecase-num {
  font-family: var(--font-h);
  font-size: 32px; font-weight: 900;
  color: var(--border-m); letter-spacing: -.05em;
  line-height: 1; flex-shrink: 0; width: 48px;
}
.layer-usecase-title {
  font-size: var(--t-md); font-weight: 700;
  color: var(--text); margin-bottom: 6px; letter-spacing: -.02em;
}
.layer-usecase-desc {
  font-size: var(--t-sm); color: var(--text-sub); line-height: 1.7;
}
.layer-usecase-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.layer-usecase-tag {
  font-size: var(--t-xs); font-weight: 700;
  padding: 3px 10px; border-radius: var(--r-full);
  background: var(--accent-glow); color: var(--accent);
  border: 1px solid rgba(26,122,82,.2);
}

@media(max-width: 768px) {
  .layer-type-grid { grid-template-columns: 1fr; }
  .layer-process-wrap { flex-direction: column; }
  .layer-process-step { border-right: none; border-bottom: 1px solid var(--border); }
  .layer-process-step:last-child { border-bottom: none; }
  .layer-process-arrow { display: none; }
  .layer-usecase-grid { grid-template-columns: 1fr; }
  .layer-usecase-card.featured { grid-column: span 1; }
}

/* ══════════════════════════════
   동영상 편집 상세
══════════════════════════════ */
/* 지원 포맷 배지 */
.vid-format-wrap { display:flex; gap:10px; flex-wrap:wrap; margin-top:40px; }
.vid-format-chip {
  font-family:var(--font-h); font-size:var(--t-md); font-weight:700;
  padding:14px 28px; border-radius:var(--r-md);
  background:var(--bg-card); border:1px solid var(--border);
  color:var(--text); transition:all .2s; letter-spacing:.02em;
}
.vid-format-chip:hover { border-color:var(--accent); color:var(--accent); transform:translateY(-3px); box-shadow:var(--shadow-md); }
.vid-format-chip span { font-size:var(--t-xs); color:var(--text-muted); font-weight:400; display:block; margin-top:2px; font-family:var(--font-b); }

/* 편집 기능 카드 (큰 2x2) */
.vid-feat-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:40px; }
.vid-feat-card {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--r-lg); padding:32px; transition:all .25s;
  position:relative; overflow:hidden;
}
.vid-feat-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-4px); border-color:var(--accent); }
.vid-feat-icon {
  width:52px; height:52px; border-radius:var(--r-md);
  background:var(--accent-glow); display:flex; align-items:center; justify-content:center;
  color:var(--accent); margin-bottom:20px;
}
.vid-feat-title { font-size:var(--t-md); font-weight:700; color:var(--text); margin-bottom:10px; letter-spacing:-.02em; }
.vid-feat-desc { font-size:var(--t-sm); color:var(--text-sub); line-height:1.7; }
.vid-feat-platforms { display:flex; gap:6px; margin-top:16px; }
.vid-feat-plat {
  font-size:var(--t-xs); font-weight:700; padding:3px 10px;
  border-radius:var(--r-full); background:var(--bg-sub);
  color:var(--text-muted); border:1px solid var(--border);
}
@media(max-width:768px){ .vid-feat-grid{grid-template-columns:1fr;} }

/* ══════════════════════════════
   화상면접 상세
══════════════════════════════ */
.mt-feat-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:40px; }
.mt-feat-card {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--r-lg); padding:32px; transition:all .25s;
}
.mt-feat-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-4px); border-color:var(--accent); }
.mt-feat-card.wide { grid-column:span 2; display:flex; gap:28px; align-items:center; background:linear-gradient(135deg,var(--accent) 0%,var(--accent-l) 100%); border-color:transparent; }
.mt-feat-icon {
  width:52px; height:52px; border-radius:var(--r-md);
  background:var(--accent-glow); display:flex; align-items:center; justify-content:center;
  color:var(--accent); margin-bottom:20px; flex-shrink:0;
}
.mt-feat-card.wide .mt-feat-icon { background:rgba(255,255,255,.2); color:#fff; margin-bottom:0; width:64px; height:64px; }
.mt-feat-title { font-size:var(--t-md); font-weight:700; color:var(--text); margin-bottom:10px; letter-spacing:-.02em; }
.mt-feat-card.wide .mt-feat-title { color:#fff; font-size:var(--t-lg); }
.mt-feat-desc { font-size:var(--t-sm); color:var(--text-sub); line-height:1.7; }
.mt-feat-card.wide .mt-feat-desc { color:rgba(255,255,255,.85); }
@media(max-width:768px){ .mt-feat-grid{grid-template-columns:1fr;} .mt-feat-card.wide{grid-column:span 1; flex-direction:column; align-items:flex-start;} }

/* ══════════════════════════════
   메세지 상세
══════════════════════════════ */
/* 발송 채널 카드 */
.msg-ch-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:40px; }
.msg-ch-card {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--r-lg); padding:32px 28px; transition:all .25s; text-align:center;
}
.msg-ch-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-4px); border-color:var(--accent); }
.msg-ch-icon {
  width:56px; height:56px; border-radius:50%; margin:0 auto 18px;
  display:flex; align-items:center; justify-content:center;
}
.msg-ch-icon.c1 { background:var(--accent-glow); color:var(--accent); }
.msg-ch-icon.c2 { background:#fef6cc; color:#d4a017; }
.msg-ch-icon.c3 { background:#e0eefb; color:#3a7bd5; }
.msg-ch-title { font-size:var(--t-md); font-weight:700; color:var(--text); margin-bottom:10px; letter-spacing:-.02em; }
.msg-ch-desc { font-size:var(--t-sm); color:var(--text-sub); line-height:1.7; }

/* 연동 방식 */
.msg-int-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:40px; }
.msg-int-card {
  display:flex; gap:14px; align-items:flex-start;
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--r-md); padding:24px; transition:all .2s;
}
.msg-int-card:hover { border-color:var(--accent); box-shadow:var(--shadow-sm); }
.msg-int-icon {
  width:40px; height:40px; border-radius:var(--r-md);
  background:var(--accent-glow); display:flex; align-items:center; justify-content:center;
  color:var(--accent); flex-shrink:0;
}
.msg-int-title { font-size:var(--t-base); font-weight:700; color:var(--text); margin-bottom:5px; }
.msg-int-desc { font-size:var(--t-sm); color:var(--text-sub); line-height:1.6; }
@media(max-width:768px){ .msg-ch-grid,.msg-int-grid{grid-template-columns:1fr;} }

/* ══════════════════════════════
   이메일 상세
══════════════════════════════ */
.em-kpi-row { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--border); margin-top:40px; }
.em-kpi-cell { background:var(--bg-card); padding:36px 24px; text-align:center; transition:background .2s; }
.em-kpi-cell:hover { background:var(--bg-sub); }
.em-kpi-num { font-family:var(--font-h); font-size:clamp(28px,4vw,44px); font-weight:900; color:var(--accent); letter-spacing:-.05em; line-height:1; margin-bottom:8px; }
.em-kpi-num span { font-size:var(--t-md); }
.em-kpi-label { font-size:var(--t-xs); color:var(--text-muted); letter-spacing:.06em; text-transform:uppercase; }
.em-feat-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:40px; }
.em-feat-card { display:flex; gap:16px; align-items:flex-start; background:var(--bg-card); border:1px solid var(--border); border-radius:var(--r-lg); padding:28px; transition:all .2s; }
.em-feat-card:hover { border-color:var(--accent); box-shadow:var(--shadow-sm); }
.em-feat-icon { width:48px; height:48px; border-radius:var(--r-md); background:var(--accent-glow); display:flex; align-items:center; justify-content:center; color:var(--accent); flex-shrink:0; }
.em-feat-title { font-size:var(--t-md); font-weight:700; color:var(--text); margin-bottom:6px; letter-spacing:-.02em; }
.em-feat-desc { font-size:var(--t-sm); color:var(--text-sub); line-height:1.7; }
@media(max-width:768px){ .em-kpi-row,.em-feat-grid{grid-template-columns:1fr;} }

/* ══════════════════════════════
   웹호스팅 상세
══════════════════════════════ */
.wh-value-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:40px; }
.wh-value-card {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--r-lg); padding:36px 28px; transition:all .25s;
  position:relative; overflow:hidden;
}
.wh-value-card:first-child { background:linear-gradient(135deg,var(--accent) 0%,var(--accent-l) 100%); border-color:transparent; }
.wh-value-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-4px); }
.wh-value-card:not(:first-child):hover { border-color:var(--accent); }
.wh-value-icon { width:52px; height:52px; border-radius:var(--r-md); background:var(--accent-glow); display:flex; align-items:center; justify-content:center; color:var(--accent); margin-bottom:20px; }
.wh-value-card:first-child .wh-value-icon { background:rgba(255,255,255,.2); color:#fff; }
.wh-value-title { font-size:var(--t-md); font-weight:700; color:var(--text); margin-bottom:10px; letter-spacing:-.02em; }
.wh-value-card:first-child .wh-value-title { color:#fff; }
.wh-value-desc { font-size:var(--t-sm); color:var(--text-sub); line-height:1.7; }
.wh-value-card:first-child .wh-value-desc { color:rgba(255,255,255,.85); }
@media(max-width:768px){ .wh-value-grid{grid-template-columns:1fr;} }

/* ══════════════════════════════
   DID 상세
══════════════════════════════ */
/* 설치 방식 2가지 비교 */
.did-mode-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:40px; }
.did-mode-card {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--r-lg); padding:36px 32px; transition:all .25s;
}
.did-mode-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-4px); border-color:var(--accent); }
.did-mode-badge {
  font-size:var(--t-xs); font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  padding:4px 12px; border-radius:var(--r-full); display:inline-block; margin-bottom:16px;
}
.did-mode-badge.off { background:var(--bg-sub); color:var(--text-muted); border:1px solid var(--border); }
.did-mode-badge.on { background:var(--accent-glow); color:var(--accent); border:1px solid rgba(26,122,82,.2); }
.did-mode-icon { width:56px; height:56px; border-radius:var(--r-md); background:var(--accent-glow); display:flex; align-items:center; justify-content:center; color:var(--accent); margin-bottom:18px; }
.did-mode-title { font-size:var(--t-lg); font-weight:700; color:var(--text); margin-bottom:10px; letter-spacing:-.02em; }
.did-mode-desc { font-size:var(--t-sm); color:var(--text-sub); line-height:1.7; margin-bottom:18px; }
.did-mode-list { display:flex; flex-direction:column; gap:10px; }
.did-mode-item { display:flex; gap:10px; align-items:flex-start; font-size:var(--t-sm); color:var(--text-sub); }
.did-mode-item svg { color:var(--accent); flex-shrink:0; margin-top:3px; }
/* 포맷 배지 */
.did-fmt-wrap { display:flex; gap:10px; flex-wrap:wrap; margin-top:40px; }
.did-fmt-chip { font-family:var(--font-h); font-size:var(--t-base); font-weight:700; padding:12px 24px; border-radius:var(--r-md); background:var(--bg-card); border:1px solid var(--border); color:var(--text); transition:all .2s; }
.did-fmt-chip:hover { border-color:var(--accent); color:var(--accent); }
@media(max-width:768px){ .did-mode-grid{grid-template-columns:1fr;} }

/* ══════════════════════════════
   예약 상세
══════════════════════════════ */
/* 예약 흐름 4단계 */
.rev-flow-wrap { display:flex; align-items:stretch; gap:0; margin-top:40px; background:var(--bg-card); border:1px solid var(--border); border-radius:var(--r-lg); overflow:hidden; }
.rev-flow-step { flex:1; padding:32px 24px; text-align:center; border-right:1px solid var(--border); transition:background .2s; }
.rev-flow-step:last-child { border-right:none; }
.rev-flow-step:hover { background:var(--bg-sub); }
.rev-flow-num { font-family:var(--font-h); font-size:13px; font-weight:900; color:var(--accent); letter-spacing:.1em; margin-bottom:14px; }
.rev-flow-icon { width:48px; height:48px; border-radius:50%; background:var(--accent-glow); display:flex; align-items:center; justify-content:center; color:var(--accent); margin:0 auto 14px; }
.rev-flow-title { font-size:var(--t-base); font-weight:700; color:var(--text); margin-bottom:6px; }
.rev-flow-desc { font-size:var(--t-sm); color:var(--text-sub); line-height:1.6; }
/* 플랫폼 + 로그인 */
.rev-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:40px; }
.rev-card { display:flex; gap:16px; align-items:flex-start; background:var(--bg-card); border:1px solid var(--border); border-radius:var(--r-lg); padding:28px; transition:all .2s; }
.rev-card:hover { border-color:var(--accent); box-shadow:var(--shadow-sm); }
.rev-icon { width:48px; height:48px; border-radius:var(--r-md); background:var(--accent-glow); display:flex; align-items:center; justify-content:center; color:var(--accent); flex-shrink:0; }
.rev-title { font-size:var(--t-md); font-weight:700; color:var(--text); margin-bottom:6px; letter-spacing:-.02em; }
.rev-desc { font-size:var(--t-sm); color:var(--text-sub); line-height:1.7; }
@media(max-width:768px){ .rev-flow-wrap{flex-direction:column;} .rev-flow-step{border-right:none; border-bottom:1px solid var(--border);} .rev-flow-step:last-child{border-bottom:none;} .rev-grid{grid-template-columns:1fr;} }

/* ══════════════════════════════
   ESTIMATE 페이지
══════════════════════════════ */
/* ── estimate 전용 ── */
.pv-est-wrap { max-width:900px; margin:0 auto; padding:56px 40px 100px; }

/* 옵션 카드 */
.pv-est-card {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--r-lg); overflow:hidden; margin-bottom:32px;
}
.pv-est-card-head {
  background:var(--bg-sub); border-bottom:1px solid var(--border);
  padding:16px 28px; display:flex; align-items:center; gap:10px;
}
.pv-est-card-head-title {
  font-family:var(--font-h); font-size:var(--t-sm); font-weight:900;
  letter-spacing:.06em; color:var(--text);
}
.pv-est-card-body { padding:8px 0; }

/* 옵션 행 */
.pv-est-row {
  display:grid; grid-template-columns:180px 1fr;
  align-items:center; padding:14px 28px;
  border-bottom:1px solid var(--border);
  gap:16px;
}
.pv-est-row:last-child { border-bottom:none; }
.pv-est-label {
  font-size:var(--t-sm); font-weight:600; color:var(--text);
}
.pv-est-value { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }

/* 라디오/체크박스 커스텀 */
.pv-est-radio, .pv-est-check {
  display:inline-flex; align-items:center; gap:7px;
  font-size:var(--t-sm); color:var(--text-sub); cursor:pointer;
}
.pv-est-radio input, .pv-est-check input { accent-color:var(--accent); cursor:pointer; }

/* 셀렉트 */
.pv-est-select {
  background:var(--bg-sub); border:1.5px solid var(--border);
  border-radius:var(--r-md); padding:9px 14px;
  font-size:var(--t-sm); color:var(--text); font-family:var(--font-b);
  outline:none; cursor:pointer; transition:border-color .2s;
}
.pv-est-select:focus { border-color:var(--accent); }

/* 금액 표시 */
.pv-est-price {
  background:var(--accent-glow); border:1px solid rgba(26,122,82,.2);
  border-radius:var(--r-md); padding:16px 20px;
}
.pv-est-price-main {
  font-family:var(--font-h); font-size:var(--t-xl);
  font-weight:900; color:var(--accent); letter-spacing:-.03em;
  margin-bottom:4px;
}
.pv-est-price-vat { font-size:var(--t-sm); color:var(--text-sub); }
.pv-est-price-note { font-size:var(--t-xs); color:var(--text-muted); margin-top:8px; }

/* 버튼 행 */
.pv-est-btn-row { display:flex; gap:12px; margin:24px 0; flex-wrap:wrap; }

/* 신청 폼 */
.pv-est-form-card {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--r-lg); padding:32px 28px; margin-bottom:24px;
}
.pv-est-form-title {
  font-size:var(--t-md); font-weight:700; color:var(--text);
  margin-bottom:20px; padding-bottom:14px; border-bottom:1px solid var(--border);
}
.pv-est-notice {
  display:flex; align-items:flex-start; gap:10px;
  background:var(--bg-sub); border-radius:var(--r-md);
  padding:14px 18px; font-size:var(--t-sm); color:var(--text-sub); line-height:1.7;
}
.pv-est-error {
  font-size:var(--t-xs); color:#e05050; margin-top:5px; display:none;
}

@media(max-width:768px){
  .pv-est-wrap { padding:36px 20px 80px; }
  .pv-est-row { grid-template-columns:1fr; gap:8px; }
}

/* 견적서 인쇄용 레거시 클래스 */
.print_tbl { width:100%; border-collapse:collapse; font-size:12px; margin-bottom:10px; }
.print_tbl th, .print_tbl td { border:1px solid #ccc; padding:6px 8px; }
.tit_c { text-align:center; }
.tit_r { text-align:right; }
.bak_y { background:#fffde7; }
.bak_g { background:#f0f4f0; font-weight:700; }
.sumtxt { text-align:right; font-weight:700; font-size:13px; }
.tbl_tit1 { background:#1a7a52; color:#fff; text-align:center; }
.tbl_tit2 { background:#2d8a60; color:#fff; text-align:center; }
.tit_c_w { background:#f5f5f5; font-weight:600; width:120px; }
.td_w { width:120px; }
.print_page { padding:20px; background:#fff; }
.print_page strong { display:block; text-align:center; font-size:18px; margin-bottom:16px; }