/*
  파일: assets/edc.css
  설명: 에듀클릭 웹사이트 전면 개편 디자인 시스템 (자체 CSS — 기존 main.css/Tailwind 미사용).
       브랜드 로고(보라+노랑) 기반 토큰. 콘텐츠 표면은 플랫(테두리+라운드), 그림자는 오버레이 전용.
       한국어 줄바꿈은 keep-all 전역 적용.
  작성일: 2026-07-02
*/

/* ══════════════ 1. 토큰 ══════════════ */
:root {
  /* 브랜드 (로고: 보라 + 노랑) */
  --edc-primary: #5B3EA8;
  --edc-primary-dark: #47308A;
  --edc-primary-deep: #2E2058;
  --edc-primary-100: #EDE8FA;
  --edc-primary-50: #F6F3FD;
  --edc-yellow: #FFC526;
  --edc-yellow-light: #FFF3D1;
  --edc-orange: #F49E00;

  /* 뉴트럴 */
  --edc-ink: #1D1B29;
  --edc-ink-70: rgba(29, 27, 41, .72);
  --edc-ink-60: rgba(29, 27, 41, .60);
  --edc-ink-40: rgba(29, 27, 41, .40);
  --edc-bg: #FFFFFF;
  --edc-bg-soft: #F7F6FB;
  --edc-bg-mute: #F1EFF8;
  --edc-line: #E5E2F0;
  --edc-line-strong: #D4CFE8;
  --edc-white: #FFFFFF;

  /* 상태 */
  --edc-green: #12B76A;
  --edc-green-bg: #ECFDF3;
  --edc-red: #E5484D;
  --edc-red-bg: #FFF1F0;

  /* 어두운 표면 */
  --edc-dark: #221B3A;
  --edc-dark-2: #2C2450;
  --edc-dark-line: rgba(255, 255, 255, .14);

  /* 형태 */
  --edc-radius-sm: 10px;
  --edc-radius: 14px;
  --edc-radius-lg: 20px;
  --edc-radius-xl: 28px;

  /* 그림자 — 오버레이(드롭다운/모바일 메뉴) 전용 */
  --edc-shadow-overlay: 0 12px 40px rgba(29, 27, 41, .16);

  --edc-font: 'Noto Sans KR', -apple-system, BlinkMacSystemFont, sans-serif;
  --edc-header-h: 72px;
}

/* ══════════════ 2. 리셋/베이스 ══════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--edc-font);
  color: var(--edc-ink);
  background: var(--edc-bg);
  line-height: 1.65;
  font-size: 16px;
  word-break: keep-all;
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { font-family: inherit; cursor: pointer; }
input, textarea, select { font-family: inherit; }

h1, h2, h3, h4, h5, h6 { font-weight: 700; line-height: 1.32; letter-spacing: -.02em; }
h1 { font-size: clamp(34px, 5vw, 56px); }
h2 { font-size: clamp(26px, 3.6vw, 40px); }
h3 { font-size: clamp(20px, 2.4vw, 26px); }
h4 { font-size: 19px; }

.edc-container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.edc-container-sm { max-width: 880px; margin: 0 auto; padding: 0 20px; }

/* ══════════════ 3. 헤더 ══════════════ */
.edc-header {
  position: fixed; inset: 0 0 auto 0; z-index: 100;
  height: var(--edc-header-h);
  background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--edc-line);
}
.edc-header-in { max-width: 1280px; margin: 0 auto; padding: 0 20px; height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.edc-logo img { height: 40px; width: auto; }

.edc-gnb { display: flex; align-items: center; gap: 4px; }
.edc-gnb > li { position: relative; }
.edc-gnb > li > a {
  display: flex; align-items: center; gap: 5px;
  padding: 10px 14px; border-radius: 10px;
  font-weight: 500; font-size: 15.5px; color: var(--edc-ink);
  transition: background .18s, color .18s;
}
.edc-gnb > li > a:hover { background: var(--edc-primary-50); color: var(--edc-primary); }
.edc-gnb .caret { width: 8px; height: 8px; border-right: 1.8px solid currentColor; border-bottom: 1.8px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .2s; }
.edc-gnb > li:hover .caret { transform: rotate(225deg) translateY(-1px); }

/* 드롭다운 */
.edc-dd {
  position: absolute; top: calc(100% + 8px); left: 50%; transform: translateX(-50%) translateY(6px);
  min-width: 560px; background: var(--edc-white);
  border: 1px solid var(--edc-line); border-radius: var(--edc-radius-lg);
  box-shadow: var(--edc-shadow-overlay);
  padding: 14px; display: grid; grid-template-columns: 1fr 1fr; gap: 2px 10px;
  opacity: 0; visibility: hidden; pointer-events: none; transition: all .18s ease;
}
.edc-dd.edc-dd-1col { min-width: 300px; grid-template-columns: 1fr; }
.edc-gnb > li:hover .edc-dd { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0); }
.edc-dd::before { content: ""; position: absolute; top: -10px; left: 0; right: 0; height: 10px; }
.edc-dd a { display: flex; gap: 12px; align-items: flex-start; padding: 11px 12px; border-radius: 10px; transition: background .15s; }
.edc-dd a:hover { background: var(--edc-primary-50); }
.edc-dd .ic { flex: 0 0 36px; height: 36px; border-radius: 9px; background: var(--edc-primary-100); color: var(--edc-primary); display: flex; align-items: center; justify-content: center; font-size: 15px; }
.edc-dd strong { display: block; font-size: 14.5px; font-weight: 600; color: var(--edc-ink); line-height: 1.35; }
.edc-dd small { display: block; margin-top: 2px; font-size: 12.5px; color: var(--edc-ink-60); line-height: 1.4; }

.edc-header-cta { display: flex; align-items: center; gap: 10px; }

/* 햄버거 / 모바일 메뉴 */
.edc-burger { display: none; width: 44px; height: 44px; border: 1px solid var(--edc-line); border-radius: 12px; background: var(--edc-white); flex-direction: column; align-items: center; justify-content: center; gap: 5px; }
.edc-burger span { display: block; width: 20px; height: 2px; background: var(--edc-ink); border-radius: 2px; }
.edc-mnav {
  position: fixed; inset: 0; z-index: 200; background: var(--edc-white);
  transform: translateX(100%); transition: transform .28s ease; overflow-y: auto;
  padding: 20px;
}
.edc-mnav.open { transform: translateX(0); }
.edc-mnav-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.edc-mnav-close { width: 44px; height: 44px; border: 1px solid var(--edc-line); border-radius: 12px; background: var(--edc-white); font-size: 20px; line-height: 1; }
.edc-mnav-group { border-bottom: 1px solid var(--edc-line); }
.edc-mnav-group > a, .edc-mnav-group > button {
  display: flex; width: 100%; align-items: center; justify-content: space-between;
  padding: 16px 6px; background: none; border: 0; text-align: left;
  font-size: 16.5px; font-weight: 600; color: var(--edc-ink);
}
.edc-mnav-sub { display: none; padding: 0 6px 14px; }
.edc-mnav-group.open .edc-mnav-sub { display: block; }
.edc-mnav-sub a { display: block; padding: 9px 12px; border-radius: 9px; color: var(--edc-ink-70); font-size: 15px; }
.edc-mnav-sub a:hover { background: var(--edc-primary-50); color: var(--edc-primary); }
.edc-mnav-group .arr { transition: transform .2s; color: var(--edc-ink-40); }
.edc-mnav-group.open .arr { transform: rotate(90deg); }
.edc-mnav-cta { margin-top: 20px; display: grid; gap: 10px; }

@media (max-width: 1099px) {
  .edc-gnb, .edc-header-cta .edc-btn { display: none; }
  .edc-burger { display: flex; }
}

/* ══════════════ 4. 버튼 / 배지 ══════════════ */
.edc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  border-radius: 12px; font-weight: 600; border: 1px solid transparent;
  transition: all .18s ease; text-align: center;
}
.edc-btn-md { padding: 11px 22px; font-size: 15px; }
.edc-btn-lg { padding: 15px 30px; font-size: 16.5px; }
.edc-btn-primary { background: var(--edc-primary); color: #fff; }
.edc-btn-primary:hover { background: var(--edc-primary-dark); }
.edc-btn-yellow { background: var(--edc-yellow); color: var(--edc-primary-deep); }
.edc-btn-yellow:hover { background: #F0B41B; }
.edc-btn-line { background: var(--edc-white); border-color: var(--edc-line-strong); color: var(--edc-ink); }
.edc-btn-line:hover { border-color: var(--edc-primary); color: var(--edc-primary); }
.edc-btn-ghost-dark { background: rgba(255,255,255,.10); border-color: var(--edc-dark-line); color: #fff; }
.edc-btn-ghost-dark:hover { background: rgba(255,255,255,.18); }
.edc-btn-block { width: 100%; }
.edc-btn[disabled] { opacity: .6; cursor: not-allowed; }

.edc-badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 14px; border-radius: 999px; font-size: 13.5px; font-weight: 600;
  background: var(--edc-primary-100); color: var(--edc-primary);
}
.edc-badge.yellow { background: var(--edc-yellow-light); color: var(--edc-orange); }
.edc-badge.green { background: var(--edc-green-bg); color: var(--edc-green); }
.edc-badge.red { background: var(--edc-red-bg); color: var(--edc-red); }
.edc-badge.dark { background: rgba(255,255,255,.12); color: #fff; }
.edc-badge.line { background: var(--edc-white); border: 1px solid var(--edc-line); color: var(--edc-ink-70); }

/* ══════════════ 5. 섹션 공통 ══════════════ */
.edc-section { padding: 96px 0; }
.edc-section.soft { background: var(--edc-bg-soft); }
.edc-section.dark { background: var(--edc-dark); color: #fff; }
.edc-section.tight { padding: 64px 0; }
@media (max-width: 767px) { .edc-section { padding: 64px 0; } .edc-section.tight { padding: 48px 0; } }

.edc-head { max-width: 780px; margin: 0 auto 56px; text-align: center; }
.edc-head.left { margin: 0 0 40px; text-align: left; }
.edc-head .edc-eyebrow { margin-bottom: 14px; }
.edc-head p { margin-top: 16px; color: var(--edc-ink-60); font-size: 17px; }
.edc-section.dark .edc-head p { color: rgba(255,255,255,.66); }
@media (max-width: 767px) { .edc-head { margin-bottom: 36px; } }

.edc-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: var(--edc-primary); letter-spacing: .04em; }
.edc-eyebrow::before { content: ""; width: 20px; height: 3px; border-radius: 3px; background: var(--edc-yellow); }
.edc-section.dark .edc-eyebrow { color: var(--edc-yellow); }

/* 그리드 */
.edc-grid { display: grid; gap: 20px; }
.edc-grid.c2 { grid-template-columns: repeat(2, 1fr); }
.edc-grid.c3 { grid-template-columns: repeat(3, 1fr); }
.edc-grid.c4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1023px) { .edc-grid.c3, .edc-grid.c4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 639px) { .edc-grid.c2, .edc-grid.c3, .edc-grid.c4 { grid-template-columns: 1fr; } }

.edc-split { display: grid; grid-template-columns: 5fr 6fr; gap: 56px; align-items: center; }
.edc-split.rev { grid-template-columns: 6fr 5fr; }
@media (max-width: 1023px) { .edc-split, .edc-split.rev { grid-template-columns: 1fr; gap: 32px; } }

/* ══════════════ 6. 카드 ══════════════ */
.edc-card {
  background: var(--edc-white); border: 1px solid var(--edc-line);
  border-radius: var(--edc-radius-lg); padding: 30px 28px;
  transition: border-color .2s, transform .2s;
}
.edc-card:hover { border-color: var(--edc-primary); }
.edc-card.lift:hover { transform: translateY(-4px); }
.edc-card h3, .edc-card h4 { margin-bottom: 10px; }
.edc-card p { color: var(--edc-ink-60); font-size: 15px; }
.edc-card .edc-ico { margin-bottom: 18px; }

.edc-ico {
  width: 52px; height: 52px; border-radius: 14px;
  display: inline-flex; align-items: center; justify-content: center; font-size: 21px;
  background: var(--edc-primary-100); color: var(--edc-primary);
}
.edc-ico.yellow { background: var(--edc-yellow-light); color: var(--edc-orange); }
.edc-ico.sm { width: 42px; height: 42px; border-radius: 11px; font-size: 17px; }

/* 체크 리스트 — li 는 일반 흐름 유지(flex 사용 시 strong 등 인라인 조각이 분리됨), 체크마크는 절대배치 */
.edc-checks li { position: relative; padding: 6px 0 6px 32px; color: var(--edc-ink-70); }
.edc-checks li::before {
  content: "✓"; position: absolute; left: 0; top: 8px; width: 22px; height: 22px;
  border-radius: 7px; background: var(--edc-primary-100); color: var(--edc-primary);
  font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center;
}
.edc-checks.on-dark li { color: rgba(255,255,255,.78); }
.edc-checks.on-dark li::before { background: rgba(255,255,255,.14); color: var(--edc-yellow); }

/* ══════════════ 7. 히어로 ══════════════ */
.edc-hero {
  position: relative; overflow: hidden;
  padding: calc(var(--edc-header-h) + 84px) 0 96px;
  background: linear-gradient(180deg, var(--edc-primary-50) 0%, #fff 88%);
}
.edc-hero::before {
  content: ""; position: absolute; top: -220px; right: -160px; width: 620px; height: 620px; border-radius: 50%;
  background: radial-gradient(circle, rgba(91,62,168,.14), transparent 62%);
}
.edc-hero::after {
  content: ""; position: absolute; bottom: -200px; left: -140px; width: 520px; height: 520px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,197,38,.20), transparent 62%);
}
.edc-hero > * { position: relative; z-index: 1; }
.edc-hero h1 .hl { color: var(--edc-primary); }
.edc-hero h1 .under { background: linear-gradient(transparent 62%, var(--edc-yellow-light) 62%); }
.edc-hero-lead { margin-top: 22px; font-size: 18px; color: var(--edc-ink-60); max-width: 640px; }
.edc-hero-btns { margin-top: 34px; display: flex; gap: 12px; flex-wrap: wrap; }
.edc-hero-chips { margin-top: 30px; display: flex; gap: 10px; flex-wrap: wrap; }
@media (max-width: 1023px) {
  .edc-hero { text-align: center; padding-bottom: 64px; }
  .edc-hero-lead { margin-left: auto; margin-right: auto; }
  .edc-hero-btns, .edc-hero-chips { justify-content: center; }
}

/* 서브페이지 히어로 */
.edc-page-hero {
  padding: calc(var(--edc-header-h) + 72px) 0 72px;
  background: linear-gradient(180deg, var(--edc-primary-50) 0%, #fff 100%);
  text-align: center;
}
.edc-page-hero .edc-eyebrow { justify-content: center; margin-bottom: 14px; }
.edc-page-hero p { margin: 18px auto 0; max-width: 720px; font-size: 17px; color: var(--edc-ink-60); }
.edc-page-hero .edc-hero-btns { justify-content: center; }
.edc-page-hero.dark {
  background: linear-gradient(160deg, var(--edc-primary-deep) 0%, var(--edc-primary-dark) 100%);
  color: #fff;
}
.edc-page-hero.dark p { color: rgba(255,255,255,.68); }
.edc-page-hero.dark .edc-eyebrow { color: var(--edc-yellow); }

/* 히어로 비주얼(이미지+플로팅) */
.edc-visual { position: relative; }
.edc-visual img { border-radius: var(--edc-radius-lg); border: 1px solid var(--edc-line); }
.edc-float {
  position: absolute; background: rgba(255,255,255,.95); backdrop-filter: blur(6px);
  border: 1px solid var(--edc-line); border-radius: 14px; padding: 13px 17px;
  box-shadow: var(--edc-shadow-overlay);
}
.edc-float .n { font-weight: 800; font-size: 18px; color: var(--edc-primary); line-height: 1.1; }
.edc-float .l { font-size: 12.5px; color: var(--edc-ink-60); margin-top: 4px; }
.edc-float.tl { top: 18px; left: -18px; }
.edc-float.br { bottom: 22px; right: -18px; }
@media (max-width: 1023px) { .edc-float { display: none; } }

/* ══════════════ 8. 페인포인트 / 공감 ══════════════ */
.edc-pain {
  background: var(--edc-white); border: 1px solid var(--edc-line); border-radius: var(--edc-radius-lg);
  padding: 26px 24px;
}
.edc-pain .q { font-size: 16.5px; font-weight: 600; color: var(--edc-ink); line-height: 1.5; }
.edc-pain .q::before { content: "“"; color: var(--edc-primary); font-size: 22px; font-weight: 800; margin-right: 2px; }
.edc-pain .q::after { content: "”"; color: var(--edc-primary); font-size: 22px; font-weight: 800; margin-left: 2px; }
.edc-pain .a { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--edc-line-strong); font-size: 14.5px; color: var(--edc-ink-60); }
.edc-pain .a strong { color: var(--edc-primary); font-weight: 700; }

/* ══════════════ 9. 스텝(플로우) ══════════════ */
.edc-steps { display: grid; gap: 16px; grid-template-columns: 1fr; counter-reset: step; }
@media (min-width: 768px) { .edc-steps { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1200px) { .edc-steps.c5 { grid-template-columns: repeat(5, 1fr); } .edc-steps.c4 { grid-template-columns: repeat(4, 1fr); } }
.edc-step { position: relative; background: var(--edc-white); border: 1px solid var(--edc-line); border-radius: var(--edc-radius-lg); padding: 24px 22px; counter-increment: step; }
.edc-step::before {
  content: counter(step, decimal-leading-zero);
  display: inline-flex; padding: 4px 12px; margin-bottom: 14px;
  border-radius: 999px; background: var(--edc-primary); color: #fff; font-weight: 700; font-size: 13px;
}
.edc-step h3 { font-size: 17.5px; margin-bottom: 8px; }
.edc-step p { font-size: 14px; color: var(--edc-ink-60); }
.edc-step ul { margin-top: 12px; }
.edc-step ul li { font-size: 13.5px; color: var(--edc-ink-60); padding: 3px 0 3px 14px; position: relative; }
.edc-step ul li::before { content: ""; position: absolute; left: 0; top: 12px; width: 5px; height: 5px; border-radius: 50%; background: var(--edc-yellow); }

/* ══════════════ 10. 비교(Before/After) ══════════════ */
.edc-vs { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; position: relative; }
@media (max-width: 1023px) { .edc-vs { grid-template-columns: 1fr; } }
.edc-vs-col { border-radius: var(--edc-radius-lg); padding: 34px 30px; }
.edc-vs-col.before { background: var(--edc-white); border: 1px solid var(--edc-line); }
.edc-vs-col.after { background: var(--edc-primary); color: #fff; }
.edc-vs-col ul { margin-top: 20px; display: grid; gap: 13px; }
.edc-vs-col.before li { display: flex; gap: 10px; color: var(--edc-ink-70); }
.edc-vs-col.before li::before { content: "✕"; color: var(--edc-red); font-weight: 700; }
.edc-vs-col.after li { display: flex; gap: 10px; color: rgba(255,255,255,.92); }
.edc-vs-col.after li::before { content: "✓"; color: var(--edc-yellow); font-weight: 700; }
.edc-vs-foot { margin-top: 22px; border-radius: 12px; padding: 13px; text-align: center; font-weight: 700; }
.edc-vs-col.before .edc-vs-foot { background: var(--edc-red-bg); color: var(--edc-red); }
.edc-vs-col.after .edc-vs-foot { background: #fff; color: var(--edc-primary); }
.edc-vs-badge {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); z-index: 2;
  width: 54px; height: 54px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: var(--edc-yellow); color: var(--edc-primary-deep); font-weight: 800; border: 5px solid var(--edc-bg-soft);
}
@media (max-width: 1023px) { .edc-vs-badge { position: static; transform: none; margin: -6px auto; } }

/* ══════════════ 11. 요금 ══════════════ */
.edc-plan { border-radius: var(--edc-radius-xl); padding: 38px 34px; background: var(--edc-white); border: 1px solid var(--edc-line); position: relative; display: flex; flex-direction: column; }
.edc-plan.featured { background: var(--edc-primary-deep); color: #fff; border-color: var(--edc-primary-deep); }
.edc-plan .tag { position: absolute; top: -14px; left: 32px; }
.edc-plan .name { font-size: 14px; font-weight: 700; letter-spacing: .08em; color: var(--edc-primary); }
.edc-plan.featured .name { color: var(--edc-yellow); }
.edc-plan h3 { margin: 10px 0 6px; }
.edc-plan .desc { font-size: 14.5px; color: var(--edc-ink-60); }
.edc-plan.featured .desc { color: rgba(255,255,255,.66); }
.edc-plan .edc-checks { margin: 22px 0 26px; flex: 1; }
.edc-plan .price { font-size: 15px; color: var(--edc-ink-60); margin-bottom: 18px; }
.edc-plan.featured .price { color: rgba(255,255,255,.66); }

/* ══════════════ 12. FAQ 아코디언 ══════════════ */
.edc-faq details { background: var(--edc-white); border: 1px solid var(--edc-line); border-radius: var(--edc-radius); padding: 0; margin-bottom: 12px; overflow: hidden; }
.edc-faq details[open] { border-color: var(--edc-primary); }
.edc-faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 20px 24px; font-weight: 600; font-size: 16px; }
.edc-faq summary::-webkit-details-marker { display: none; }
.edc-faq summary .q-prefix { color: var(--edc-primary); font-weight: 800; margin-right: 8px; }
.edc-faq .mk { flex: 0 0 28px; height: 28px; border-radius: 8px; background: var(--edc-bg-mute); color: var(--edc-primary); display: flex; align-items: center; justify-content: center; font-weight: 700; transition: transform .2s, background .2s; }
.edc-faq details[open] .mk { transform: rotate(45deg); background: var(--edc-primary); color: #fff; }
.edc-faq .ans { padding: 0 24px 22px; color: var(--edc-ink-60); font-size: 15px; }
.edc-faq .ans img { margin-top: 12px; border-radius: 10px; border: 1px solid var(--edc-line); }

/* ══════════════ 13. CTA ══════════════ */
.edc-cta {
  position: relative; overflow: hidden; text-align: center;
  background: linear-gradient(150deg, var(--edc-primary-deep) 0%, var(--edc-primary-dark) 90%);
  border-radius: var(--edc-radius-xl); padding: 72px 32px; color: #fff;
}
.edc-cta::before { content: ""; position: absolute; top: -140px; right: -80px; width: 440px; height: 440px; border-radius: 50%; background: radial-gradient(circle, rgba(255,197,38,.22), transparent 60%); }
.edc-cta::after { content: ""; position: absolute; bottom: -160px; left: -100px; width: 440px; height: 440px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.10), transparent 60%); }
.edc-cta > * { position: relative; z-index: 1; }
.edc-cta p { margin: 16px auto 0; max-width: 640px; color: rgba(255,255,255,.72); font-size: 16.5px; }
.edc-cta .edc-hero-btns { justify-content: center; }
.edc-cta .tel { margin-top: 22px; font-size: 15px; color: rgba(255,255,255,.6); }
.edc-cta .tel strong { color: var(--edc-yellow); font-size: 17px; }

/* ══════════════ 14. 폼 ══════════════ */
.edc-input, .edc-textarea {
  width: 100%; border: 1px solid var(--edc-line-strong); background: #fff; color: var(--edc-ink);
  border-radius: 12px; padding: 15px 17px; font-size: 15px; outline: none; transition: border .18s, box-shadow .18s;
}
.edc-textarea { min-height: 220px; resize: vertical; }
.edc-input:focus, .edc-textarea:focus { border-color: var(--edc-primary); box-shadow: 0 0 0 3px rgba(91,62,168,.10); }
.edc-input.err, .edc-textarea.err { border-color: var(--edc-red); background: var(--edc-red-bg); }
.edc-field-err { display: none; margin-top: 6px; font-size: 13.5px; color: var(--edc-red); }
.edc-field-err.show { display: block; }
.edc-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 639px) { .edc-form-grid { grid-template-columns: 1fr; } }
.edc-form-grid .full { grid-column: 1 / -1; }
.edc-notice { display: none; margin-bottom: 18px; padding: 15px 18px; border-radius: 12px; font-size: 15px; }
.edc-notice.show { display: block; }
.edc-notice.error { background: var(--edc-red-bg); border: 1px solid #FFD4CF; color: #B42318; }
.edc-notice.success { background: var(--edc-green-bg); border: 1px solid #B7EBC6; color: #027A48; }

/* ══════════════ 15. 게시판 / 블로그 ══════════════ */
.edc-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 1023px) { .edc-blog-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 639px) { .edc-blog-grid { grid-template-columns: 1fr; } }
.edc-post-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--edc-line); border-radius: var(--edc-radius-lg); overflow: hidden; transition: border-color .2s, transform .2s; }
.edc-post-card:hover { border-color: var(--edc-primary); transform: translateY(-4px); }
.edc-post-card .thumb { aspect-ratio: 16 / 9; overflow: hidden; background: var(--edc-bg-mute); }
.edc-post-card .thumb img { width: 100%; height: 100%; object-fit: cover; }
.edc-post-card .body { padding: 22px; display: flex; flex-direction: column; flex: 1; }
.edc-post-card h3 { font-size: 17.5px; line-height: 1.45; margin-bottom: 8px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.edc-post-card .sum { font-size: 14px; color: var(--edc-ink-60); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; flex: 1; }
.edc-post-card .meta { margin-top: 14px; font-size: 13px; color: var(--edc-ink-40); display: flex; gap: 10px; align-items: center; }

.edc-cat-tabs { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin-bottom: 40px; }
.edc-cat-tabs a { padding: 9px 18px; border-radius: 999px; border: 1px solid var(--edc-line); font-size: 14.5px; font-weight: 500; color: var(--edc-ink-70); transition: all .18s; background: #fff; }
.edc-cat-tabs a:hover, .edc-cat-tabs a.active { background: var(--edc-primary); border-color: var(--edc-primary); color: #fff; }

/* 리스트형(공지) */
.edc-list { border: 1px solid var(--edc-line); border-radius: var(--edc-radius-lg); overflow: hidden; background: #fff; }
.edc-list-item { display: flex; align-items: center; gap: 18px; padding: 20px 26px; border-bottom: 1px solid var(--edc-line); transition: background .15s; }
.edc-list-item:last-child { border-bottom: 0; }
.edc-list-item:hover { background: var(--edc-primary-50); }
.edc-list-item .t { flex: 1; font-weight: 600; font-size: 16px; }
.edc-list-item .d { font-size: 13.5px; color: var(--edc-ink-40); white-space: nowrap; }
.edc-list-item .pin { flex: 0 0 auto; }

/* 본문(prose) */
.edc-prose { font-size: 16px; line-height: 1.8; color: var(--edc-ink); }
.edc-prose h1, .edc-prose h2 { font-size: 26px; margin: 40px 0 14px; }
.edc-prose h3 { font-size: 21px; margin: 32px 0 12px; }
.edc-prose h4, .edc-prose h5, .edc-prose h6 { font-size: 17.5px; margin: 26px 0 10px; }
.edc-prose p { margin: 0 0 16px; }
.edc-prose img { border-radius: 12px; border: 1px solid var(--edc-line); margin: 18px 0; }
.edc-prose ul, .edc-prose ol { margin: 0 0 16px 22px; }
.edc-prose ul { list-style: disc; }
.edc-prose ol { list-style: decimal; }
.edc-prose li { margin-bottom: 6px; }
.edc-prose a { color: var(--edc-primary); text-decoration: underline; }
.edc-prose blockquote { border-left: 4px solid var(--edc-primary); background: var(--edc-primary-50); border-radius: 0 12px 12px 0; padding: 16px 20px; margin: 18px 0; }
.edc-prose table { width: 100%; border-collapse: collapse; margin: 18px 0; font-size: 15px; }
.edc-prose th, .edc-prose td { border: 1px solid var(--edc-line); padding: 10px 14px; text-align: left; }
.edc-prose th { background: var(--edc-bg-soft); }

/* 글 헤더 */
.edc-post-head { padding: calc(var(--edc-header-h) + 64px) 0 44px; border-bottom: 1px solid var(--edc-line); background: linear-gradient(180deg, var(--edc-primary-50) 0%, #fff 100%); }
.edc-post-head .meta { margin-top: 16px; display: flex; gap: 14px; color: var(--edc-ink-40); font-size: 14px; flex-wrap: wrap; }

/* 페이지네이션 */
.edc-pagi { display: flex; gap: 6px; justify-content: center; margin-top: 48px; }
.edc-pagi a, .edc-pagi span { min-width: 42px; height: 42px; padding: 0 10px; display: inline-flex; align-items: center; justify-content: center; border-radius: 11px; border: 1px solid var(--edc-line); font-size: 14.5px; font-weight: 500; color: var(--edc-ink-70); background: #fff; }
.edc-pagi a:hover { border-color: var(--edc-primary); color: var(--edc-primary); }
.edc-pagi .cur { background: var(--edc-primary); border-color: var(--edc-primary); color: #fff; }

/* ══════════════ 16. 매뉴얼 ══════════════ */
.edc-manual-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 1023px) { .edc-manual-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 639px) { .edc-manual-grid { grid-template-columns: 1fr; } }
.edc-manual-box { background: #fff; border: 1px solid var(--edc-line); border-radius: var(--edc-radius-lg); padding: 24px; }
.edc-manual-box h3 { font-size: 16.5px; padding-bottom: 12px; margin-bottom: 12px; border-bottom: 2px solid var(--edc-primary-100); display: flex; align-items: center; gap: 9px; }
.edc-manual-box h3 .edc-ico { width: 32px; height: 32px; border-radius: 9px; font-size: 14px; }
.edc-manual-box li a { display: block; padding: 7px 10px; margin: 0 -10px; border-radius: 8px; font-size: 14.5px; color: var(--edc-ink-70); transition: all .15s; }
.edc-manual-box li a:hover { background: var(--edc-primary-50); color: var(--edc-primary); }

/* ══════════════ 17. 통계/지표 스트립 ══════════════ */
.edc-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
@media (max-width: 1023px) { .edc-stats { grid-template-columns: repeat(2, 1fr); } }
.edc-stat { text-align: center; padding: 10px; }
.edc-stat .n { font-size: clamp(24px, 3vw, 34px); font-weight: 800; color: var(--edc-primary); letter-spacing: -.02em; }
.edc-stat .l { margin-top: 6px; color: var(--edc-ink-60); font-size: 14.5px; }
@media (min-width: 1024px) { .edc-stat + .edc-stat { border-left: 1px solid var(--edc-line); } }

/* 수납수단 칩 */
.edc-pays { display: flex; flex-wrap: wrap; gap: 10px; }
.edc-pay { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 12px; background: #fff; border: 1px solid var(--edc-line); font-weight: 500; font-size: 14.5px; }
.edc-pay i { color: var(--edc-primary); }

/* ══════════════ 18. 푸터 ══════════════ */
.edc-footer { background: var(--edc-dark); color: rgba(255,255,255,.66); padding: 68px 0 0; font-size: 14.5px; }
.edc-footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 48px; }
@media (max-width: 1023px) { .edc-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 639px) { .edc-footer-grid { grid-template-columns: 1fr; } }
.edc-footer .brand img { height: 38px; margin-bottom: 16px; }
.edc-footer h4 { color: #fff; font-size: 15px; margin-bottom: 16px; }
.edc-footer li a { display: inline-block; padding: 5px 0; color: rgba(255,255,255,.60); transition: color .15s; }
.edc-footer li a:hover { color: var(--edc-yellow); }
.edc-footer-bottom { border-top: 1px solid var(--edc-dark-line); padding: 22px 0; display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 13.5px; color: rgba(255,255,255,.44); }
.edc-footer-bottom a { color: rgba(255,255,255,.6); }
.edc-footer-bottom a:hover { color: var(--edc-yellow); }

/* ══════════════ 19. 유틸 ══════════════ */
.tc { text-align: center; }
.mt-8 { margin-top: 8px; } .mt-16 { margin-top: 16px; } .mt-24 { margin-top: 24px; }
.mt-32 { margin-top: 32px; } .mt-48 { margin-top: 48px; } .mt-56 { margin-top: 56px; }
.mb-16 { margin-bottom: 16px; } .mb-24 { margin-bottom: 24px; } .mb-40 { margin-bottom: 40px; }
.mx-auto { margin-left: auto; margin-right: auto; }
.maxw-640 { max-width: 640px; } .maxw-720 { max-width: 720px; } .maxw-880 { max-width: 880px; }
.muted { color: var(--edc-ink-60); }
.flex-center { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }
