:root{
  --cgpage-shell-width: 900px;
  --cgpage-home-width: 900px;
  --cgpage-bg:#ffffff;
  --cgpage-card-bg:#ffffff;
  --cgpage-text:#111827;
  --cgpage-muted:#6b7280;
  --cgpage-border:#e5e7eb;
  --cgpage-primary:#111827;
  --cgpage-primaryText:#ffffff;
  --cgpage-focus:#0b0f14;
  --cgpage-legalAccent:#2563eb;
  --cgpage-legalAccentRgb:37, 99, 235;
}

/* ===============================
   Layout
   =============================== */

.cgpage-root,
.cgpage-root *{ box-sizing:border-box; }

.cgpage-root{ 
  color: var(--cgpage-text);
  background: transparent;
}

/* Escape narrow theme columns when needed */
.cgpage-root.cgpage-root--fullbleed{
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  width: 100vw;
  max-width: 100vw;
}

.cgpage-shell{
  width: min(var(--cgpage-shell-width), 100%);
  margin: 0 auto;
  padding: 28px 16px 40px;
}

@media (min-width: 768px){
  .cgpage-shell{ padding: 36px 20px 54px; }
}

.cgpage-hero{
  margin-bottom: 14px;
}

.cgpage-title--h2{
  margin: 0 0 8px;
  font-size: 28px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: -0.02em;
}

/* ===============================
   Legal pages (Terms / Privacy / Contact)
   White + single accent color
   =============================== */

.cgpage-root--legal .cgpage-title--h2{
  position: relative;
  padding-bottom: 10px;
}

.cgpage-root--legal .cgpage-title--h2::after{
  content: '';
  display: block;
  width: 54px;
  height: 4px;
  margin-top: 10px;
  background: var(--cgpage-legalAccent);
  border-radius: var(--cdcscc-pt-radius, 999px);
}

.cgpage-root--legal .cgpage-pill{
  border-color: rgba(var(--cgpage-legalAccentRgb), 0.28);
  color: var(--cgpage-legalAccent);
  background: rgba(var(--cgpage-legalAccentRgb), 0.06);
  font-weight: 800;
}

.cgpage-root--legal .cgpage-card{
  border: 1px solid rgba(17,24,39,0.10);
  border-top: 4px solid var(--cgpage-legalAccent);
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.06);
}

.cgpage-root--legal .cgpage-content a{
  color: var(--cgpage-legalAccent);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

.cgpage-root--legal .cgpage-content a:hover{
  opacity: 0.9;
}

.cgpage-root--legal .cgpage-content h3{
  display: flex;
  align-items: center;
  gap: 10px;
}

.cgpage-root--legal .cgpage-content h3::before{
  content: '';
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: var(--cgpage-legalAccent);
  flex: 0 0 9px;
}

.cgpage-root--legal .cgpage-content blockquote{
  border-left-color: var(--cgpage-legalAccent);
  background: rgba(var(--cgpage-legalAccentRgb), 0.04);
}

.cgpage-root--legal .cgpage-content .cgpage-block,
.cgpage-root--legal .cgpage-content .cgpage-toc,
.cgpage-root--legal .cgpage-content .cgpage-section{
  border: 1px solid rgba(17,24,39,0.10);
  border-left: 4px solid var(--cgpage-legalAccent);
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.04);
}

.cgpage-root--legal .cgpage-alert{
  border-color: rgba(var(--cgpage-legalAccentRgb), 0.40);
  background: rgba(var(--cgpage-legalAccentRgb), 0.07);
  color: var(--cgpage-text);
  font-weight: 800;
}

.cgpage-root--legal .cgpage-alert::before{
  content: '✓';
  display: inline-block;
  margin-right: 8px;
  color: var(--cgpage-legalAccent);
}

.cgpage-root--legal .cgpage-alert--err{
  border-style: dashed;
}

.cgpage-root--legal .cgpage-alert--err::before{
  content: '!';
}

.cgpage-root--legal .cgpage-field input:focus,
.cgpage-root--legal .cgpage-field textarea:focus{
  border-color: rgba(var(--cgpage-legalAccentRgb), 0.70);
  box-shadow: 0 0 0 4px rgba(var(--cgpage-legalAccentRgb), 0.14);
}

.cgpage-root--legal .cgpage-btn{
  border-color: var(--cgpage-legalAccent);
  background: var(--cgpage-legalAccent);
  color: #fff;
  box-shadow: 0 10px 22px rgba(var(--cgpage-legalAccentRgb), 0.22);
}

.cgpage-root--legal .cgpage-btn:hover{
  opacity: 0.94;
}

.cgpage-heroMeta{ 
  display:flex;
  gap:10px;
  align-items:center;
}

.cgpage-pill{
  display:inline-flex;
  align-items:center;
  padding: 6px 10px;
  border: 1px solid var(--cgpage-border);
  border-radius: 999px;
  color: var(--cgpage-muted);
  background: var(--cgpage-card-bg);
  font-size: 12px;
  line-height: 1;
}

.cgpage-card{
  background: var(--cgpage-card-bg);
  border: 1px solid var(--cgpage-border);
  border-radius: 12px;
  padding: 18px 16px;
}

@media (min-width: 768px){
  .cgpage-card{ padding: 22px 20px; }
}

/* ===============================
   Content typography
   =============================== */

.cgpage-content{
  font-size: 16px;
  line-height: 1.75;
  color: var(--cgpage-text);
}

.cgpage-content p{ margin: 0 0 12px; }
.cgpage-content p:last-child{ margin-bottom:0; }

.cgpage-content a{
  color: var(--cgpage-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.cgpage-content h3{
  margin: 0 0 12px;
  font-size: 20px;
  line-height: 1.35;
  font-weight: 800;
  letter-spacing: -0.01em;
}

.cgpage-content ul,
.cgpage-content ol{
  margin: 10px 0 14px 18px;
  padding: 0;
}

.cgpage-content li{
  margin: 10px 0; /* 요청: 목록간 상하 여백 */
}

.cgpage-content blockquote{
  margin: 12px 0;
  padding: 12px 14px;
  border-left: 3px solid var(--cgpage-border);
  color: var(--cgpage-muted);
  background: rgba(0,0,0,0.02);
}

/* ===============================
   Box styling (Summary / TOC / Sections)
   =============================== */

.cgpage-content .cgpage-block,
.cgpage-content .cgpage-toc,
.cgpage-content .cgpage-section{
  border: 1px solid var(--cgpage-border);
  background: var(--cgpage-bg);
  border-radius: 12px;
  padding: 16px 14px;
  margin: 0 0 14px;
}

@media (min-width: 768px){
  .cgpage-content .cgpage-block,
  .cgpage-content .cgpage-toc,
  .cgpage-content .cgpage-section{
    padding: 18px 16px;
    margin-bottom: 16px;
  }
}

/* Inside box: first heading flush */
.cgpage-content .cgpage-block h3:first-child,
.cgpage-content .cgpage-toc h3:first-child,
.cgpage-content .cgpage-section h3:first-child{
  margin-top: 0;
}

/* ===============================
   Alerts
   =============================== */
.cgpage-alert{
  border-radius: 10px;
  padding: 12px 12px;
  border: 1px solid var(--cgpage-border);
  margin: 0 0 14px;
  font-size: 14px;
}

.cgpage-alert--ok{
  background: rgba(16,185,129,0.10);
  border-color: rgba(16,185,129,0.35);
}

.cgpage-alert--err{
  background: rgba(239,68,68,0.10);
  border-color: rgba(239,68,68,0.35);
}

/* ===============================
   Contact form
   =============================== */

.cgpage-form{
  display:block;
  margin: 0;
}

.cgpage-field{
  display:block;
  margin: 0 0 12px;
}

.cgpage-field label{
  display:block;
  margin: 0 0 6px;
  font-size: 13px;
  color: var(--cgpage-muted);
  font-weight: 700;
}

.cgpage-field input,
.cgpage-field textarea{
  width: 100%;
  border: 1px solid var(--cgpage-border);
  border-radius: 10px;
  padding: 10px 12px;
  background: #fff;
  color: var(--cgpage-text);
  outline: none;
}

.cgpage-field input:focus,
.cgpage-field textarea:focus{
  border-color: var(--cgpage-focus);
  box-shadow: 0 0 0 3px rgba(11,15,20,0.10);
}

.cgpage-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border: 1px solid var(--cgpage-primary);
  background: var(--cgpage-primary);
  color: var(--cgpage-primaryText);
  border-radius: 10px;
  padding: 10px 14px;
  font-weight: 800;
  cursor:pointer;
}

.cgpage-btn:hover{ opacity:0.92; }

/* ===============================
   Sidebar removal (CSS fallback)
   Only affects managed pages; tries to avoid footer widgets.
   =============================== */

body.cgpage-managed .site-content #secondary,
body.cgpage-managed .site-content .sidebar,
body.cgpage-managed .site-content .sidebar-primary{
  display:none !important;
}

body.cgpage-managed .site-content #primary,
body.cgpage-managed .site-content .content-area,
body.cgpage-managed .site-content .site-main{
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
}

/* Prevent accidental horizontal scroll when using fullbleed */
body.cgpage-managed{ overflow-x: hidden; }


/* ===============================
   Home (Card Block Only)
   =============================== */

.cgpage-root--home{ padding: 0 !important; }

.cgpage-shell.cgpage-shell--home{
  max-width: var(--cgpage-home-width);
}

.cgpage-homeBlock{
  width: 100%;
}


.cgpage-homeWrap{ padding: 0 !important; }

/* Home: categories blocks */
.cgpage-homeWrap .cdcscc-homeCatBlock{ margin: 0 0 38px; }
.cgpage-homeBottomSpace{ height: 30px; }

/* ===============================
   Legal Pages v2 (Privacy/Terms)
   - Scoped under .lc-pp
   - Width follows settings via --cgpage-shell-width
   =============================== */

.cgpage-root.lc-pp{
  --lc-bg: var(--cgpage-bg, #ffffff);
  --lc-ink: var(--cgpage-text, #0b0b0c);      /* 기본 글자색 */
  --lc-ink-2: var(--cgpage-text, #1a1a1d);
  --lc-muted: var(--cgpage-muted, #61636b);
  --lc-border: var(--cgpage-border, #e7e7ea);
  --lc-surface: #fafafb;
  --lc-shadow: 0 12px 30px rgba(0,0,0,.06);
  --lc-line: 1.75;
  --lc-radius: 0px;

  
  /* 요청: 포인트 색상(설정)은 헤더(.lc-hero)에서만 사용 */
  --lc-hero-accent: var(--cgpage-primary, #0b0b0c);
  width:100%;
  max-width:100%;
  margin:0;
  background: var(--lc-bg);
  color: var(--lc-ink);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Apple SD Gothic Neo, Noto Sans KR, Arial, sans-serif;
  line-height: var(--lc-line);
  letter-spacing:-0.1px;
  padding: clamp(9px, 1.8vw, 22px) 0 22px;
}

/*
  테마/엘리멘터 레이아웃(사이드바/컬럼/패딩) 때문에 약관/개인정보 페이지가
  한쪽(대개 오른쪽)으로 치우쳐 보일 수 있어, full-bleed를 강제 적용합니다.
  (폭은 내부 .lc-wrap에서 --cgpage-shell-width 기준으로 중앙정렬)
*/
.cgpage-root.lc-pp.cgpage-root--fullbleed{
  position: relative !important;
  left: 50% !important;
  right: 50% !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  width: 100vw !important;
  max-width: 100vw !important;
  overflow-x: hidden;
}

.lc-pp *{ box-sizing:border-box; }
.lc-pp a{ color:inherit; }

.lc-pp .lc-wrap{
  width:100%;
  max-width: min(var(--cgpage-shell-width, 980px), 100%);
  margin:0 auto;
}

.lc-pp .lc-hero{
  border:1px solid var(--lc-border);
  border-radius: var(--lc-radius);
  background: linear-gradient(180deg, #fff 0%, var(--lc-surface) 100%);
  box-shadow: var(--lc-shadow);
  padding: clamp(18px, 3.4vw, 34px);
  position: relative;
  overflow:hidden;
}

.lc-pp .lc-hero:before{
  content:"";
  position:absolute;
  inset:-2px -2px auto -2px;
  height: 8px;
  background: var(--lc-hero-accent);
  opacity:.92;
}

.lc-pp .lc-brand{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 7px 10px;
  border:1px solid var(--lc-border);
  border-radius: var(--lc-radius);
  background:#fff;
  color: var(--lc-ink-2);
  font-weight:800;
  letter-spacing:-0.2px;
}

.lc-pp .lc-dot{
  width:7px;height:7px;
  border-radius: var(--lc-radius);
  background:var(--lc-hero-accent);
  display:inline-block;
}

.lc-pp .lc-title{
  margin: 10px 0 8px;
  font-size: clamp(22px, 3.2vw, 34px);
  line-height: 1.15;
  letter-spacing:-0.5px;
  font-weight:900;
  color: var(--lc-hero-accent);
}

.lc-pp .lc-sub{
  display:flex;
  flex-wrap:wrap;
  gap:10px 14px;
  align-items:center;
  margin: 0;
  color: var(--lc-muted);
  font-size: 14px;
}

.lc-pp .lc-sub strong{ color: var(--lc-ink-2); font-weight:900; }

.lc-pp .lc-grid{
  width:100%;
  display:grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-top: 9px;
}

@media (min-width: 980px){
  .lc-pp .lc-grid{
    grid-template-columns: 290px 1fr;
    gap: 18px;
    align-items: start;
  }
}

.lc-pp .lc-toc{
  border:1px solid var(--lc-border);
  border-radius: var(--lc-radius);
  background:#fff;
  box-shadow: var(--lc-shadow);
  padding: 14px;
  position: relative;
}

.lc-pp .lc-tocSlot{ position: relative; }

@media (min-width: 980px){
  .lc-pp .lc-toc{ position: sticky; top: calc(var(--chf-adminbar-h, 0px) + var(--chf-header-h, 0px) + 14px); z-index: 10; align-self: start; max-height: calc(100vh - (var(--chf-adminbar-h, 0px) + var(--chf-header-h, 0px) + 28px)); overflow: auto; -webkit-overflow-scrolling: touch; }
  /* JS fallback states (when sticky is broken by theme wrappers) */
  .lc-pp .lc-toc.is-fixed{ position: fixed !important; z-index: 999 !important; }
  .lc-pp .lc-toc.is-abs{ position: absolute !important; z-index: 10 !important; }
}
.lc-pp .lc-toc h2{
  margin: 0 0 10px;
  font-size: 13px;
  letter-spacing:-0.2px;
  color: var(--lc-ink-2);
  font-weight: 900;
  text-align: center;
}

.lc-pp .lc-tocLink{
  text-decoration:none;
  display:block;
  padding: 9px 10px;
  border-radius: var(--lc-radius);
  border: 1px solid transparent;
  color: var(--lc-ink-2);
  font-size: 14px;
  font-weight: 650;
}

.lc-pp .lc-tocLink:hover{
  border-color: var(--lc-border);
  background: var(--lc-surface);
}

.lc-pp .lc-tocLink--lvl2{
  padding-left: 18px;
  font-size: 13px;
  color: var(--lc-muted);
}

/* Anchor offset so section titles are not hidden under fixed header */
.lc-pp :is(h2, h3, h4){
  scroll-margin-top: calc(var(--chf-adminbar-h, 0px) + var(--chf-header-h, 0px) + 18px);
}

.lc-pp .lc-card{
  border:1px solid var(--lc-border);
  border-radius: var(--lc-radius);
  background:#fff;
  box-shadow: var(--lc-shadow);
  overflow:hidden;
}

.lc-pp .lc-cardhead{
  padding: 14px 16px;
  border-bottom:1px solid var(--lc-border);
  background: linear-gradient(180deg, #fff 0%, var(--lc-surface) 100%);
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
}

.lc-pp .lc-cardhead strong{
  font-size: 14px;
  color: var(--lc-ink-2);
  letter-spacing:-0.2px;
  font-weight: 900;
}

.lc-pp .lc-actions{ display:flex; gap:8px; flex-wrap:wrap; }

.lc-pp .lc-btn{
  appearance:none;
  border:1px solid var(--lc-border);
  background:#fff;
  color: var(--lc-ink);
  padding: 8px 10px;
  border-radius: var(--lc-radius);
  font-size: 13px;
  font-weight: 800;
  cursor:pointer;
  letter-spacing:-0.2px;
}

.lc-pp .lc-btn:hover{ border-color: var(--lc-ink); }

.lc-pp .lc-btn:focus{
  outline: 3px solid rgba(0,0,0,.12);
  outline-offset: 2px;
}

.lc-pp .lc-body{ padding: 18px 16px 22px; }

.lc-pp .lc-body h2{
  /* 섹션 간 여백: 100px (요청) */
  margin: 100px 0 10px;
  font-size: 19px;
  line-height: 1.25;
  letter-spacing:-0.3px;
  font-weight: 900;
  padding: 6px 0 8px 0;
  border-bottom: 1px solid var(--lc-border);
  scroll-margin-top: 16px;
  color: var(--lc-ink);
}

.lc-pp .lc-body h2:first-of-type{ margin-top:0; }

.lc-pp .lc-body h3{
  margin: 42px 0 10px;
  font-size: 16px;
  line-height: 1.3;
  letter-spacing:-0.2px;
  font-weight: 900;
  padding: 6px 0 8px 0;
  border-bottom: 1px solid var(--lc-border);
  scroll-margin-top: 16px;
  color: var(--lc-ink-2);
}


.lc-pp .lc-body h4.lc-legal-h4{
  margin: 18px 0 6px;
  font-size: 15px;
  line-height: 1.35;
  letter-spacing:-0.15px;
  font-weight: 800;
  color: var(--lc-ink-2);
}

.lc-pp .lc-body h3 + h4.lc-legal-h4{
  margin-top: 14px;
}


/* 요청: 약관/개인정보 본문 섹션 제목(h2 -> h3.lc-legal-h) 스타일 */
.lc-pp .lc-body h3.lc-legal-h{
  margin: 70px 0 10px !important;
  /* 설정(관리자)에서 조절 가능 */
  font-size: var(--lc-h3-fs, 19px) !important;
  line-height: 1.25;
  letter-spacing:-0.3px;
  font-weight: 900;
  padding: 6px 0 8px 0;
  border-bottom: 1px solid var(--lc-border);
  scroll-margin-top: 16px;
  color: var(--lc-ink);
}

.lc-pp .lc-body h3.lc-legal-h--first{
  margin-top: 0 !important;
}

.lc-pp .lc-body p{
  margin: 10px 0;
  color: var(--lc-ink-2);
  /* 테마/빌더(.entry-content p 등) 우선순위로 인해 값이 안 먹는 케이스 방지 */
  font-size: var(--lc-p-fs, 15px) !important;
  line-height: var(--lc-p-lh, var(--lc-line)) !important;
}

/* 목록(ul/ol) 항목 간 여백: 기본(요청: li 여백 0) */
.lc-pp .lc-body ul,
.lc-pp .lc-body ol{
  margin: 14px 0;
  padding-left: 22px;
  font-size: var(--lc-list-fs, 15px) !important;
  line-height: var(--lc-list-lh, var(--lc-line)) !important;
}
.lc-pp .lc-body ul > li,
.lc-pp .lc-body ol > li{
  margin: 0;
}
.lc-pp .lc-body ul > li:last-child,
.lc-pp .lc-body ol > li:last-child{
  margin-bottom: 0;
}


.lc-pp .lc-hr{
  height:1px;
  background: var(--lc-border);
  border:0;
  margin: 18px 0;
}

@media print{
  .lc-pp .lc-actions,
  .lc-pp .lc-toc{ display:none !important; }
  .lc-pp .lc-hero{ box-shadow:none; }
  .lc-pp .lc-card{ box-shadow:none; }
}

/* Contact page tweaks */

.cgpage-root--contact .cgpage-title--h2{
  padding-bottom: 0;
}
.cgpage-root--contact .cgpage-title--h2::after{
  display: none !important;
  content: none !important;
}
.cgpage-root--contact .cgpage-card{
  border-top: 10px solid var(--cgpage-legalAccent);
  border-radius: 0 !important;
}

.cgpage-root--contact .cgpage-btn{
  width: 100%;
  display: flex;
  border-radius: 0;
}

/* Hide legacy summary/toc blocks if they exist on managed pages */
body.cgpage-managed .cgpage-summary,
body.cgpage-managed .cgpage-toc{
  display: none !important;
}

/* ------------------------------------------------------------
   Home/Category 상단 페이지 제목(타이틀) 디자인
   - 적용 대상: .cdcscc-pageHeader 안의 .cdcscc-pageTitle
------------------------------------------------------------ */
.cdcscc-pageHeader{
  width:100% !important;
  max-width:100% !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
}

/* 기본(배경/글자색 적용, 가로 100%) */
.cdcscc-pageHeader .cdcscc-pageTitle{
  display:block !important;
  width:100% !important;
  box-sizing:border-box !important;
  margin:0 !important;
  margin-bottom:0 !important;
  line-height:1.18;
  letter-spacing:-0.2px;
  font-size: var(--cdcscc-pt-fontsize, clamp(22px, 3vw, 36px));
  font-weight: 800;

  background: var(--cdcscc-pt-bg, transparent) !important;
  color: var(--cdcscc-pt-text, inherit) !important;

  /* 여백(요청: h1 아래 기본 margin 18px 제거) */
  padding: 12px 16px 10px !important;

  /* 밑줄은 설정(ON/OFF)에 따라 두께 0px~ */
  border: 0 !important;
  border-bottom: var(--cdcscc-pt-ul-size, 0px) solid var(--cdcscc-pt-underline, currentColor) !important;

  /* 기본은 각진 박스, 라운드 ON일 때만 둥글게 */
  border-radius: 0 !important;
}

/* 라운드 ON */
.cdcscc-pageHeader.cdcscc-pt--round .cdcscc-pageTitle{
  border-radius: var(--cdcscc-pt-radius, 0px) !important;
}
