/* footer-v2.css — 사이트 공통 푸터 v2(2026-10-18 · 디자인 시안 operations/design-requests/footer-refresh-20261018 · 사장님 승인).
   마크업 정본 shared/py/site_footer.py · 동작 /js/footer-v2.js. 규칙은 footer.ct-foot 아래로만 건다(옛 .foot·.legal·.biz 규칙과 섞이지 않게).
   새 색 없음(기존 #f8f9fc·#eef1f6·#e5e8eb·#4e5968·#1b64da 계열). #6b7684 는 4.4:1 이라 글자에는 쓰지 않고 구분점·화살표에만 쓴다. */
footer.ct-foot{--ft-bg:#f8f9fc;--ft-line:#e5e8eb;--ft-ink:#191f28;--ft-text:#333d4b;--ft-sub:#4e5968;--ft-mute:#6b7684;--ft-link-hover:#1b64da;--ft-accent:#1b64da;
  margin-top:64px;background:var(--ft-bg);border-top:1px solid #eef1f6;color:var(--ft-sub);font-size:14px;line-height:1.6;padding:0}
/* 사이트 전역 다크모드가 생길 때 같은 속성으로 함께 켠다 — prefers-color-scheme 만으로 푸터만 어둡게 하지 않는다 */
:root[data-theme="dark"] footer.ct-foot{--ft-bg:#17191c;--ft-line:#2c3036;--ft-ink:#f2f4f6;--ft-text:#d1d6db;--ft-sub:#b0b8c1;--ft-mute:#9aa4b0;--ft-link-hover:#8ebafa;--ft-accent:#8ebafa;border-top-color:#2c3036}
footer.ct-foot [hidden]{display:none!important}
footer.ct-foot a{color:inherit;text-decoration:none}
footer.ct-foot a:hover{color:var(--ft-link-hover);text-decoration:underline;text-underline-offset:3px}
footer.ct-foot a:focus-visible,footer.ct-foot summary:focus-visible{outline:2px solid var(--ft-accent);outline-offset:2px;border-radius:4px}
footer.ct-foot .ct-foot-sr{position:absolute;width:1px;height:1px;margin:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
footer.ct-foot .ct-foot-top{display:grid;grid-template-columns:minmax(240px,300px) 1fr;gap:48px;padding-top:44px;padding-bottom:32px}
footer.ct-foot .ct-foot-brand .lg{display:inline-block;font-size:20px;font-weight:900;letter-spacing:-1px;color:var(--ft-ink)}
footer.ct-foot .ct-foot-brand .lg b{font-weight:400}
footer.ct-foot .ct-foot-tag{margin:6px 0 0;font-size:15px;font-weight:700;color:var(--ft-ink)}
footer.ct-foot .ct-foot-tag .brand-accent{color:var(--ft-accent);font-style:normal}
footer.ct-foot .ct-foot-proof{display:flex;flex-wrap:wrap;gap:2px 0;margin:6px 0 0;font-size:13px;color:var(--ft-sub)}
footer.ct-foot .ct-foot-proof span{white-space:nowrap}
footer.ct-foot .ct-foot-proof span:not(:last-child)::after{content:"·";margin:0 6px;color:var(--ft-mute)}
footer.ct-foot .ct-foot-proof b{font-weight:700;color:var(--ft-text);font-variant-numeric:tabular-nums}
footer.ct-foot .ct-foot-ch{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0;list-style:none}
footer.ct-foot .ct-foot-ch a{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border:1px solid var(--ft-line);border-radius:999px;background:transparent;font-size:13px;font-weight:600;color:var(--ft-text)}
footer.ct-foot .ct-foot-nav{display:grid;grid-template-columns:1fr 1fr 2fr 1fr 1fr;gap:24px}
footer.ct-foot .ct-foot-g summary{display:block;list-style:none;cursor:default;pointer-events:none}
footer.ct-foot .ct-foot-g summary::-webkit-details-marker{display:none}
footer.ct-foot .ct-foot-g h3{margin:0 0 10px;font-size:13px;font-weight:800;color:var(--ft-ink)}
footer.ct-foot .ct-foot-g ul{margin:0;padding:0;list-style:none}
footer.ct-foot .ct-foot-g li a{display:inline-block;min-height:26px;padding:4px 0;font-size:13.5px;color:var(--ft-text)}
footer.ct-foot .ct-foot-g.wide ul{display:grid;grid-template-columns:1fr 1fr;column-gap:16px}
footer.ct-foot .ct-foot-g li.all{grid-column:1/-1}
footer.ct-foot .ct-foot-g li.all a{color:var(--ft-accent);font-weight:600}
footer.ct-foot .ct-foot-legal{border-top:1px solid var(--ft-line);padding-top:20px;padding-bottom:4px}
footer.ct-foot .ct-foot-legal p{margin:0 0 6px;max-width:880px;font-size:12.5px;line-height:1.75;color:var(--ft-sub);word-break:keep-all}
footer.ct-foot .ct-foot-legal b{font-weight:700;color:var(--ft-text)}
footer.ct-foot .ct-foot-bottom{padding-top:16px;padding-bottom:40px}
footer.ct-foot .ct-foot-policy{display:flex;flex-wrap:wrap;gap:4px 18px;margin:0 0 10px;padding:0;list-style:none}
footer.ct-foot .ct-foot-policy a{display:inline-block;min-height:24px;padding:2px 0;font-size:13px;color:var(--ft-text)}
footer.ct-foot .ct-foot-biz{display:flex;flex-wrap:wrap;gap:2px 16px;margin:0;font-size:12px;color:var(--ft-sub)}
footer.ct-foot .ct-foot-biz div{display:flex;gap:4px}
footer.ct-foot .ct-foot-biz dt{color:var(--ft-sub);font-weight:600}
footer.ct-foot .ct-foot-biz dd{margin:0;color:var(--ft-sub)}
footer.ct-foot .ct-foot-biz dd a{display:inline-block;min-height:24px}
footer.ct-foot .ct-foot-copy{margin:8px 0 0;font-size:12px;color:var(--ft-sub)}
@media (max-width:1023px){footer.ct-foot .ct-foot-top{grid-template-columns:1fr;gap:28px}footer.ct-foot .ct-foot-nav{grid-template-columns:repeat(3,1fr)}footer.ct-foot .ct-foot-g.wide{grid-column:span 2}}
@media (max-width:767px){
  footer.ct-foot .ct-foot-top{padding-top:32px;padding-bottom:8px;gap:20px}
  footer.ct-foot .ct-foot-nav{display:block;border-top:1px solid var(--ft-line)}
  footer.ct-foot .ct-foot-g{border-bottom:1px solid var(--ft-line)}
  footer.ct-foot .ct-foot-g summary{pointer-events:auto;cursor:pointer;display:flex;align-items:center;justify-content:space-between;min-height:48px}
  footer.ct-foot .ct-foot-g summary::after{content:"";width:8px;height:8px;border-right:1.6px solid var(--ft-mute);border-bottom:1.6px solid var(--ft-mute);transform:rotate(45deg) translateY(-2px);transition:transform .2s}
  footer.ct-foot .ct-foot-g[open] summary::after{transform:rotate(-135deg) translateY(-2px)}
  footer.ct-foot .ct-foot-g h3{margin:0;font-size:15px}
  footer.ct-foot .ct-foot-g ul,footer.ct-foot .ct-foot-g.wide ul{display:grid;grid-template-columns:1fr 1fr;column-gap:12px;padding:0 0 12px}
  footer.ct-foot .ct-foot-g li a{display:flex;align-items:center;min-height:40px;padding:0;font-size:14px}
  footer.ct-foot .ct-foot-ch a{min-height:44px}
  footer.ct-foot .ct-foot-legal{padding-top:18px}
  footer.ct-foot .ct-foot-policy a{min-height:40px;display:inline-flex;align-items:center}
  footer.ct-foot .ct-foot-biz{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){footer.ct-foot .ct-foot-g summary::after{transition:none}}
