:root{
  --brand:#19b36a;
  --ink:#0b1220;
  --muted:#64748b;
  --bg:#f6f8fc;
  --card:#ffffff;
  --stroke:rgba(2,6,23,.08);
  --shadow:0 18px 50px rgba(2,6,23,.10);
  --radius:22px;
  --sidebarW:312px;

  /* brand */
  --dg-primary: #0f5132;
--dg-primary-dark: #dce5d3;
--dg-primary-mid: #c5d4b5;
--dg-primary-light: #afc49f;
  --dg-primary-soft: #ecfdf3;
  --dg-primary-gradient: linear-gradient(135deg, var(--dg-primary-dark) 0%, var(--dg-primary-mid) 40%, var(--dg-primary-light) 100%);

  /* text */
  --dg-text: #1e293b;
  --dg-text-sub: #64748b;
  --dg-text-muted: #94a3b8;
  --dg-text-on-dark: #ffffff;

  /* line / bg */
  --dg-border: #e2e8f0;
  --dg-border-strong: #cbd5e1;
  --dg-bg: #ffffff;
  --dg-bg-subtle: #f8fafc;
  --dg-bg-soft: #f1f5f9;

  /* state */
  --dg-success: #15803d;
  --dg-warning: #b45309;
  --dg-danger: #b91c1c;
  --dg-info: #0369a1;

  /* shadow / radius */
  --dg-radius-sm: 10px;
  --dg-radius: 14px;
  --dg-radius-lg: 18px;
  --dg-shadow-sm: 0 2px 8px rgba(15, 23, 42, 0.06);
  --dg-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);

  /* spacing */
  --dg-gap-xs: 6px;
  --dg-gap-sm: 10px;
  --dg-gap: 16px;
  --dg-gap-lg: 24px;

  --bubble-lg: 90px;
  --bubble-sm: 55px;
--bubble-lg-bg: rgba(45,74,30,.06);
--bubble-sm-bg: rgba(45,74,30,.04);
}

@font-face {
font-family: 'Pretendard Variable';
font-weight: 45 920;          /* Variable 범위 */
font-style: normal;
font-display: swap;           /* FOUT 방지 */
src: url('https://cdn.jsdelivr.net/npm/pretendard@1.3.9/dist/web/variable/woff2/PretendardVariable.woff2')
   format('woff2-variations');
}
html,body{height:100%;}
body{
  font-family:Pretendard Variable,system-ui,-apple-system,Segoe UI,Roboto,Apple SD Gothic Neo,Noto Sans KR,sans-serif;
  background:var(--bg);
  color:var(--ink);
}
a{
  text-decoration:none;
  color:inherit;
}

a:hover,
a:focus{
  text-decoration:none;
  color:inherit;
}

.app{
  min-height:100vh;
  display:grid;
  grid-template-columns:var(--sidebarW) 1fr;
}
@media (max-width: 992px){
  .app{grid-template-columns:1fr;}
}
body {
font-family: "Pretendard Variable", system-ui, -apple-system,
			 "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;
background: var(--bg);
color: var(--ink);
margin: 0;
}

/* 공통 장식 클래스 */
.dg-bubble-deco {
  position: relative;
  overflow: hidden;
}
.dg-bubble-deco::before {
  content: '';
  position: absolute;
  top: -20px;
  right: -15px;
  width: var(--bubble-lg);
  height: var(--bubble-lg);
  background: var(--bubble-lg-bg);
  border-radius: 50%;
  pointer-events: none;
}
.dg-bubble-deco::after {
  content: '';
  position: absolute;
  bottom: -15px;
  right: 40px;
  width: var(--bubble-sm);
  height: var(--bubble-sm);
  background: var(--bubble-sm-bg);
  border-radius: 50%;
  pointer-events: none;
}

/* ── 동궁원 개인정보 안내 모달 (공통) ── */
.dg-privacy-modal {position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:22px;}
.dg-privacy-modal.is-hide {display:none;}
.dg-privacy-dim {position:absolute;inset:0;background:rgba(12,28,20,.58);backdrop-filter:blur(4px);}
.dg-privacy-box {position:relative;width:100%;max-width:460px;overflow:hidden;background:#fff;border-radius:24px;padding:38px 34px 32px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.28);animation:dgPrivacyShow .3s ease;}
.dg-privacy-box::before {content:'';position:absolute;left:0;top:0;width:100%;height:8px;background:linear-gradient(90deg,#1e4530,#2a5c3f,#c9a84c);}
.dg-privacy-box::after {content:'';position:absolute;right:-80px;bottom:-90px;width:210px;height:210px;border-radius:50%;background:#e8f0ec;opacity:.8;z-index:0;}
.dg-privacy-close {position:absolute;right:18px;top:16px;z-index:2;width:36px;height:36px;border:0;border-radius:50%;background:#f2f4f3;color:#777;font-size:26px;line-height:34px;cursor:pointer;transition:.2s;}
.dg-privacy-close:hover {background:#2a5c3f;color:#fff;}
.dg-privacy-top {position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;margin-bottom:18px;}
.dg-privacy-mark {display:flex;align-items:center;justify-content:center;width:72px;height:72px;margin-bottom:14px;border-radius:22px;background:linear-gradient(135deg,#2a5c3f,#1e4530);color:#fff;font-size:30px;box-shadow:0 10px 24px rgba(42,92,63,.28);}
.dg-privacy-label {display:inline-flex;align-items:center;height:26px;padding:0 12px;border-radius:999px;background:#e8f0ec;color:#1e4530;font-size:11px;font-weight:700;letter-spacing:.08em;}
.dg-privacy-box h2 {position:relative;z-index:1;margin:0 0 16px;color:#1e4530;font-size:25px;font-weight:800;letter-spacing:-.04em;}
.dg-privacy-main {position:relative;z-index:1;margin:0;color:#333;font-size:19px;line-height:1.65;letter-spacing:-.03em;word-break:keep-all;}
.dg-privacy-main strong {color:#2a5c3f;font-weight:800;}
.dg-privacy-sub {position:relative;z-index:1;margin:18px 0 0;padding:16px 18px;border-radius:14px;background:#f8faf9;color:#666;font-size:14px;line-height:1.7;word-break:keep-all;}
.dg-privacy-actions {position:relative;z-index:1;margin-top:24px;}
.dg-privacy-btn {width:100%;height:50px;border:0;border-radius:12px;background:#2a5c3f;color:#fff;font-size:16px;font-weight:700;cursor:pointer;transition:.2s;box-shadow:0 8px 18px rgba(42,92,63,.22);}
.dg-privacy-btn:hover {background:#1e4530;transform:translateY(-1px);}
@keyframes dgPrivacyShow {from {opacity:0;transform:translateY(20px) scale(.97);} to {opacity:1;transform:translateY(0) scale(1);}}
@media (max-width:640px) {.dg-privacy-modal {padding:18px;} .dg-privacy-box {padding:34px 22px 26px;border-radius:20px;} .dg-privacy-mark {width:64px;height:64px;border-radius:20px;font-size:27px;} .dg-privacy-box h2 {font-size:22px;} .dg-privacy-main {font-size:17px;} .dg-privacy-sub {font-size:13.5px;}}