/* 머리글·바닥글·공통 단추. 모든 규칙을 .cv- 이름 아래에 둔다. */
:root{
  --cv-bg:#F3F6FC; --cv-surface:#FFFFFF; --cv-ink:#0B1630; --cv-muted:#56637E; --cv-line:#DFE6F2;
  --cv-blue:#1F5FD0; --cv-blue-deep:#1A57C8; --cv-sky:#CFE6FB; --cv-blue-soft:#EAF1FD;
  --cv-ok:#1D7A4C; --cv-ok-soft:#E3F3EA; --cv-warn:#8A5F00; --cv-warn-soft:#FBF0D6; --cv-err:#B03E2C; --cv-soon:#56637E; --cv-soon-soft:#EEF1F6;
  --cv-sans:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
  --cv-serif:"Hahmlet","Nanum Myeongjo","AppleMyungjo",Georgia,serif;
  --cv-ease:cubic-bezier(.16,1,.3,1);           /* 등장: 튕김 없이 */
  --cv-spring:cubic-bezier(.34,1.56,.64,1);     /* 작은 반응에만 (R-23) */
  --cv-wrap:1120px;
}

.cv-header,.cv-footer{font-family:var(--cv-sans);color:var(--cv-ink);line-height:1.6;word-break:keep-all;-webkit-font-smoothing:antialiased;text-align:left}
.cv-header *,.cv-footer *{box-sizing:border-box}
.cv-header a,.cv-footer a{color:inherit;text-decoration:none}

.cv-skip{position:absolute;left:12px;top:-60px;z-index:1000;background:var(--cv-ink);color:#fff;padding:10px 14px;border-radius:10px;font-family:var(--cv-sans)}
.cv-skip:focus{top:12px}

.cv-ico{flex:none;vertical-align:middle}
.cv-mark{width:30px;height:30px;flex:none;display:block}

/* 단추 */
.cv-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--cv-sans);font-size:15px;font-weight:800;line-height:1.2;padding:13px 22px;border-radius:12px;border:1.5px solid var(--cv-ink);background:transparent;color:var(--cv-ink);cursor:pointer;text-decoration:none;transition:scale .5s var(--cv-spring),background-color .2s,border-color .2s;white-space:nowrap}
.cv-btn:active{scale:.94;transition-duration:.08s}
.cv-btn--blue{background:var(--cv-blue);border-color:var(--cv-blue);color:#fff}
.cv-btn--blue:hover{background:var(--cv-blue-deep);border-color:var(--cv-blue-deep)}
.cv-btn--ink{background:var(--cv-ink);border-color:var(--cv-ink);color:#fff}
.cv-btn--ghost:hover{background:var(--cv-surface)}
.cv-header a.cv-btn--blue{color:#fff}
:where(.cv-btn,.cv-nav__item,.cv-brand,a,summary,button,input,select,textarea):focus-visible{outline:2.5px solid var(--cv-blue);outline-offset:2px}

/* 머리글 */
.cv-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);border-bottom:1px solid var(--cv-line)}
.admin-bar .cv-header{top:32px}
@media (max-width:782px){.admin-bar .cv-header{top:0;position:relative}}
.cv-header__in{max-width:var(--cv-wrap);margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:28px}
.cv-brand{display:flex;align-items:center;gap:10px;font-weight:900;font-size:17px;letter-spacing:-.02em;color:var(--cv-ink)}
.cv-nav{display:flex;align-items:center;gap:4px}
.cv-nav__item{display:inline-flex;align-items:center;gap:2px;white-space:nowrap;font-size:15px;font-weight:700;color:var(--cv-muted);padding:8px 12px;border-radius:10px;cursor:pointer;list-style:none;transition:color .2s,background-color .2s}
.cv-nav__item::-webkit-details-marker{display:none}
.cv-nav__item:hover,.cv-nav__item[aria-current]{color:var(--cv-ink)}
.cv-nav__item[aria-current]{background:var(--cv-blue-soft)}
.cv-nav__item .cv-ico{width:16px;height:16px;transition:rotate .3s var(--cv-ease)}
.cv-drop{position:relative}
.cv-drop[open] .cv-nav__item .cv-ico{rotate:180deg}
.cv-drop__panel{position:absolute;left:0;top:calc(100% + 8px);width:330px;background:#fff;border:1px solid var(--cv-line);border-radius:14px;padding:8px;box-shadow:0 24px 48px -12px rgba(5,20,60,.22);display:grid;gap:2px}
.cv-drop[open] .cv-drop__panel{animation:cv-rise .35s var(--cv-ease) both}
.cv-drop__panel a{display:grid;gap:1px;padding:10px 12px;border-radius:10px}
.cv-drop__panel a:hover{background:var(--cv-bg)}
.cv-drop__panel b{font-size:15px;font-weight:800}
.cv-drop__panel small{font-size:12.5px;color:var(--cv-muted);line-height:1.45}
.cv-drop__panel .cv-drop__all{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:var(--cv-blue);border-top:1px solid var(--cv-line);border-radius:0 0 10px 10px;margin-top:4px}
.cv-header__acct{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-size:14.5px;font-weight:700;color:var(--cv-muted);padding:8px 10px;border-radius:10px;white-space:nowrap}
.cv-header__acct:hover,.cv-header__acct[aria-current]{color:var(--cv-ink)}
.cv-header__acct .cv-ico{width:18px;height:18px}
.cv-header__acct + .cv-header__cta{margin-left:0}
.cv-header__cta{margin-left:auto;padding:10px 18px;font-size:14.5px;border-radius:999px}

@media (max-width:760px){
  .cv-header__in{flex-wrap:wrap;gap:6px 12px;padding:10px 16px 4px}
  .cv-brand{font-size:16px}
  .cv-mark{width:28px;height:28px}
  .cv-header__cta{padding:9px 15px;font-size:14px}
  .cv-nav{order:3;flex:1;margin:0 0 0 -7px;gap:0}
  .cv-header__acct{order:4;margin-left:0;font-size:14.5px;padding:8px 2px;gap:3px}
  .cv-header__acct .cv-ico{width:16px;height:16px}
  .cv-header__acct + .cv-header__cta{margin-left:auto}
  .cv-nav__item{font-size:14.5px;padding:8px 7px}
  .cv-drop{position:static}
  .cv-drop__panel{left:12px;right:12px;width:auto;top:calc(100% - 2px)}
}

/* 바닥글 */
.cv-footer{background:#0B1630;color:#C9D3E6;font-size:13.5px}
.cv-footer__in{max-width:var(--cv-wrap);margin:0 auto;padding:48px 20px 36px;display:grid;grid-template-columns:1.1fr 1fr;gap:28px 48px}
.cv-footer .cv-brand{color:#fff}
.cv-footer__brand p{margin:10px 0 16px;color:#9BA8C1}
.cv-footer__social{display:grid;gap:8px}
.cv-footer__social a{display:inline-flex;align-items:center;gap:8px;color:#E7EDF8;font-weight:600}
.cv-footer__social a:hover{color:#fff;text-decoration:underline}
.cv-footer__links{display:flex;flex-wrap:wrap;gap:6px 18px;align-content:start;font-weight:600;color:#E7EDF8}
.cv-footer__links a:hover{text-decoration:underline}
.cv-biz{grid-column:1/-1;font-style:normal;display:flex;flex-wrap:wrap;gap:4px 16px;color:#9BA8C1;border-top:1px solid #25324E;padding-top:20px;line-height:1.7}
.cv-biz a{text-decoration:underline;text-underline-offset:2px;color:#C9D3E6}
.cv-footer__copy{grid-column:1/-1;margin:0;color:#6F7D99;font-size:12.5px}
@media (max-width:760px){.cv-footer__in{grid-template-columns:1fr;padding:36px 16px 28px}}

@keyframes cv-rise{from{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}
@media (prefers-reduced-motion:reduce){
  .cv-header *,.cv-footer *{animation:none!important;transition:none!important}
}
