:root {
  --ks-primary: #6d91b6;
  --ks-primary-strong: #315f81;
  --ks-font-body: var(--ks-font-system);
  --ks-font-heading: var(--ks-font-system);
  --ks-text: #25333d;
  --ks-muted: #64727c;
  --ks-line: #dbe2e7;
  --ks-soft: #f4f7f9;
  --ks-white: #fff;
  --ks-focus: #111;
  --ks-shell: 1280px;
  --ks-radius-sm: 8px;
  --ks-radius: 14px;
  --ks-shadow-menu: 0 18px 38px rgba(25, 42, 55, .12);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; color: var(--ks-text); background: var(--ks-white); font-family: var(--ks-font-body); font-size: 16px; line-height: 1.7; word-break: keep-all; overflow-wrap: anywhere; }
a { color: var(--ks-primary-strong); text-underline-offset: .2em; }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline: 3px solid var(--ks-focus); outline-offset: 3px; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
img, svg { max-width: 100%; }
.ks-shell { width: min(100% - 40px, var(--ks-shell)); margin-inline: auto; }
.ks-sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.ks-skip-link { position: fixed; z-index: 10000; top: 10px; left: 10px; transform: translateY(-160%); padding: 10px 16px; border-radius: 6px; background: #111; color: #fff; font-weight: 700; text-decoration: none; }
.ks-skip-link:focus { transform: translateY(0); }

.ks-header { position: relative; z-index: 100; border-bottom: 1px solid var(--ks-line); background: rgba(255,255,255,.98); }
.ks-header__utility { border-bottom: 1px solid #edf1f3; background: #f8fafb; color: var(--ks-muted); font-size: .875rem; }
.ks-header__utility-inner { min-height: 38px; display: flex; align-items: center; justify-content: flex-end; gap: 24px; }
.ks-header__utility a { color: inherit; text-decoration: none; }
.ks-header__utility nav ul { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin: 0; padding: 0; list-style: none; }
.ks-header__contact { margin-right: auto; }
.ks-header__main { min-height: 86px; display: flex; align-items: center; gap: 32px; }
.ks-brand { flex: 0 1 310px; margin: 0; font-family: var(--ks-font-heading); font-size: clamp(1.25rem, 2.1vw, 1.75rem); line-height: 1.2; }
.ks-brand a { display: inline-flex; align-items: center; min-height: 48px; color: var(--ks-text); text-decoration: none; }
.ks-brand img { display: block; max-width: 280px; max-height: 60px; object-fit: contain; object-position: left center; }
.ks-mobile-menu-button { position: relative; z-index: 510; display: none; margin-left: auto; border: 1px solid var(--ks-line); border-radius: var(--ks-radius-sm); background: #fff; padding: 9px 12px; align-items: center; gap: 10px; cursor: pointer; }
.ks-mobile-menu-button__icon { width: 22px; display: grid; gap: 4px; }
.ks-mobile-menu-button__icon i { display: block; height: 2px; background: currentColor; }

.ks-gnb { margin-left: auto; align-self: stretch; display: flex; align-items: stretch; }
.ks-gnb__panel, .ks-gnb__level1 { height: 100%; }
.ks-gnb ul { margin: 0; padding: 0; list-style: none; }
.ks-gnb__level1 { display: flex; align-items: stretch; }
.ks-gnb__level1 > li { position: static; display: flex; align-items: stretch; }
.ks-menu-row { display: flex; align-items: center; }
.ks-gnb__level1 > li > .ks-menu-row > a { position: relative; display: flex; align-items: center; padding: 0 19px; color: var(--ks-text); font-family: var(--ks-font-heading); font-weight: 700; text-decoration: none; white-space: nowrap; }
.ks-gnb__level1 > li > .ks-menu-row > a::after { content: ""; position: absolute; left: 19px; right: 19px; bottom: -1px; height: 3px; transform: scaleX(0); background: var(--ks-primary); transition: transform .18s ease; }
.ks-gnb__level1 > li:is(:hover,.is-open,.is-active) > .ks-menu-row > a::after { transform: scaleX(1); }
.ks-menu-toggle { display: grid; place-items: center; width: 34px; height: 34px; margin-left: -12px; border: 0; border-radius: 6px; background: transparent; cursor: pointer; }
.ks-menu-toggle svg { width: 12px; height: 12px; fill: currentColor; }
.ks-gnb__level2 { visibility: hidden; opacity: 0; pointer-events: none; position: absolute; z-index: 120; top: 100%; min-width: 240px; padding: 10px; border: 1px solid var(--ks-line); border-radius: 0 0 var(--ks-radius) var(--ks-radius); background: #fff; box-shadow: var(--ks-shadow-menu); transform: translateY(-4px); transition: opacity .16s ease, transform .16s ease, visibility .16s; }
.ks-gnb--single .ks-gnb__level1 > li > .ks-gnb__level2 { margin-left: 0; }
.ks-gnb--single .ks-gnb__level1 > li:is(:hover,.is-open) > .ks-gnb__level2 { visibility: visible; opacity: 1; pointer-events: auto; transform: translateY(0); }
.ks-gnb__level2 > li { position: relative; }
.ks-gnb__level2 .ks-menu-row > a, .ks-gnb__level3 a { flex: 1; display: block; padding: 10px 12px; border-radius: 7px; color: var(--ks-text); text-decoration: none; }
.ks-gnb__level2 .ks-menu-row > a:hover, .ks-gnb__level2 .ks-menu-row > a:focus-visible, .ks-gnb__level2 .is-active > .ks-menu-row > a, .ks-gnb__level3 a:hover, .ks-gnb__level3 a:focus-visible, .ks-gnb__level3 .is-active > a { background: var(--ks-soft); color: var(--ks-primary-strong); font-weight: 700; }
.ks-menu-toggle--side { flex: 0 0 34px; margin: 0 2px 0 -4px; }
.ks-gnb__level3 { visibility: hidden; opacity: 0; pointer-events: none; position: absolute; z-index: 140; top: -10px; left: calc(100% + 10px); min-width: 220px; padding: 10px; border: 1px solid var(--ks-line); border-radius: var(--ks-radius); background: #fff; box-shadow: var(--ks-shadow-menu); transform: translateX(-4px); transition: opacity .16s ease, transform .16s ease, visibility .16s; }
.ks-gnb__level2 > li:is(:hover,.is-open) > .ks-gnb__level3 { visibility: visible; opacity: 1; pointer-events: auto; transform: translateX(0); }
/* Full dropdown: reveal every second-level column in one calm panel. */
.ks-gnb--full .ks-gnb__level1::after { content: ""; visibility: hidden; opacity: 0; pointer-events: none; position: absolute; z-index: 105; top: 100%; left: 0; right: 0; height: var(--ks-full-menu-height, 330px); border-top: 1px solid var(--ks-line); border-bottom: 1px solid var(--ks-line); background: #fff; box-shadow: 0 20px 34px rgba(28,43,54,.08); transition: opacity .16s ease, visibility .16s; }
.ks-gnb--full.is-open .ks-gnb__level1::after, .ks-gnb--full:focus-within .ks-gnb__level1::after { visibility: visible; opacity: 1; pointer-events: auto; }
.ks-gnb--full .ks-gnb__level2 { top: 100%; min-width: 0; width: min(220px, 16vw); padding: 22px 8px; border: 0; border-radius: 0; box-shadow: none; background: transparent; transform: none; }
.ks-gnb--full.is-open .ks-gnb__level2, .ks-gnb--full:focus-within .ks-gnb__level2 { visibility: visible; opacity: 1; pointer-events: auto; }

.ks-page-heading { border-bottom: 1px solid var(--ks-line); background: #f7f9fa; }
.ks-page-heading .ks-shell { padding-block: 34px 38px; }
.ks-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 18px; padding: 0; list-style: none; color: var(--ks-muted); font-size: .875rem; }
.ks-breadcrumb li + li::before { content: "/"; margin-right: 7px; color: #a0aab1; }
.ks-breadcrumb a { color: inherit; }
.ks-page-heading__eyebrow { margin: 0 0 5px; color: var(--ks-primary-strong); font-weight: 700; }
.ks-page-heading__title { margin: 0; font-family: var(--ks-font-heading); font-size: clamp(2rem, 4vw, 3rem); line-height: 1.25; letter-spacing: -.035em; }
.ks-page-heading__summary { max-width: 760px; margin: 14px 0 0; color: var(--ks-muted); font-size: 1.0625rem; }

.ks-body { min-height: 520px; padding-block: 46px 80px; }
.ks-body--main { width: 100%; max-width: none; padding-block: 0; }
.ks-body--main .ks-content { width: 100%; }
.ks-body--with-lnb { display: grid; grid-template-columns: 250px minmax(0,1fr); gap: clamp(34px,5vw,70px); align-items: start; }
.ks-content { min-width: 0; }
.ks-lnb { position: sticky; top: 20px; }
.ks-lnb nav { border-top: 3px solid var(--ks-primary); }
.ks-lnb h2 { margin: 0; padding: 20px 18px; border-bottom: 1px solid var(--ks-line); font-family: var(--ks-font-heading); font-size: 1.35rem; }
.ks-lnb ul { margin: 0; padding: 0; list-style: none; }
.ks-lnb nav > ul > li { border-bottom: 1px solid var(--ks-line); }
.ks-lnb a { display: block; padding: 13px 16px; color: var(--ks-text); text-decoration: none; }
.ks-lnb li.is-active > a, .ks-lnb a:hover, .ks-lnb a:focus-visible { color: var(--ks-primary-strong); font-weight: 700; background: var(--ks-soft); }
.ks-lnb ul ul { padding: 6px 0 9px; background: #fbfcfd; }
.ks-lnb ul ul a { padding: 8px 16px 8px 30px; font-size: .9375rem; }
.ks-lnb-contact { margin-top: 28px; padding: 18px; border: 1px solid var(--ks-line); border-radius: var(--ks-radius-sm); }
.ks-lnb-contact h3 { display:flex; align-items:center; gap:8px; margin: 0 0 14px; font-family: var(--ks-font-heading); font-size: 1rem; }
.ks-lnb-contact h3 svg { width:18px; height:18px; fill:var(--ks-primary-strong); }
.ks-lnb-contact dl { margin: 0; }
.ks-lnb-contact dl > div + div { margin-top: 11px; }
.ks-lnb-contact dt { display:flex; align-items:center; gap:6px; color: var(--ks-muted); font-size: .8125rem; font-weight: 700; }
.ks-lnb-contact dt svg { flex:0 0 13px; width:13px; height:13px; fill:currentColor; }
.ks-lnb-contact dd { margin: 2px 0 0; font-size: .9rem; }
.ks-lnb-contact__email dd { overflow-x:auto; overflow-y:hidden; }
.ks-lnb-contact__email a { display:inline-block; min-width:max-content; white-space:nowrap; font-size:.82rem; letter-spacing:-.025em; overflow-wrap:normal; word-break:normal; }

.ks-footer { border-top: 1px solid var(--ks-line); background: #27343d; color: #dce4e8; }
.ks-footer__main { padding-block: 26px 17px; }
.ks-footer__info { display:grid; gap:2px; margin:0; font-style:normal; color:#c4ced4; font-size:.875rem; line-height:1.55; }
.ks-footer__line { display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 8px; margin:0; }
.ks-footer__line--primary { color:#dce4e8; }
.ks-footer__item { display:inline-flex; min-width:0; align-items:baseline; gap:3px; }
.ks-footer__label { color:#edf2f4; font-weight:700; }
.ks-footer__value { min-width:0; }
.ks-footer__info a { color:inherit; }
.ks-footer__separator { color:#84949d; }
.ks-footer__note { margin: 7px 0 0; color: #b8c4ca; font-size: .8375rem; }
.ks-footer__links { margin-top:12px; padding-top:10px; border-top:1px solid rgba(255,255,255,.12); }
.ks-footer__links ul { display:flex; flex-wrap:wrap; gap:5px 0; margin:0; padding:0; list-style:none; }
.ks-footer__links li + li::before { content:"|"; margin:0 10px; color:#84949d; }
.ks-footer a { color: #fff; }
.ks-footer__copyright { padding-block: 10px 13px; border-top: 1px solid rgba(255,255,255,.12); color: #aebbc1; font-size:.8125rem; line-height:1.45; }

@media (max-width: 1020px) {
  .ks-shell { width: min(100% - 32px, var(--ks-shell)); }
  .ks-header__utility { display: none; }
  .ks-header__main { min-height: 72px; }
  .ks-brand { flex-basis: auto; }
  .ks-mobile-menu-button { display: inline-flex; }
  .ks-gnb { position: fixed; z-index: 500; inset: 72px 0 0; display: block; visibility: hidden; opacity: 0; overflow: auto; background: rgba(18,28,35,.42); transition: opacity .18s ease, visibility .18s; }
  .ks-gnb.is-mobile-open { visibility: visible; opacity: 1; }
  .ks-gnb__panel { width: min(88vw, 420px); height: 100%; margin-left: auto; padding: 14px 18px 44px; background: #fff; overflow: auto; box-shadow: -18px 0 40px rgba(0,0,0,.15); }
  .ks-gnb__level1 { display: block; height: auto; }
  .ks-gnb__level1 > li { display: block; border-bottom: 1px solid var(--ks-line); }
  .ks-gnb__level1 > li > .ks-menu-row > a { flex: 1; min-height: 54px; padding: 0 8px; }
  .ks-gnb__level1 > li > .ks-menu-row > a::after, .ks-gnb--full .ks-gnb__level1::after { display: none; }
  .ks-menu-toggle { margin: 0; width: 44px; height: 44px; }
  .ks-gnb__level2, .ks-gnb--full .ks-gnb__level2, .ks-gnb__level3 { position: static; visibility: visible; opacity: 1; pointer-events: auto; display: none; width: auto; min-width: 0; padding: 0 0 10px 12px; border: 0; border-radius: 0; background: transparent; box-shadow: none; transform: none; }
  .ks-gnb li.is-open > .ks-gnb__level2, .ks-gnb li.is-open > .ks-gnb__level3 { display: block; }
  .ks-gnb__level2 .ks-menu-row > a, .ks-gnb__level3 a { padding: 10px 12px; }
  .ks-menu-toggle--side svg { transform: rotate(90deg); }
  .ks-body--with-lnb { grid-template-columns: 1fr; }
  /* 모바일 메뉴가 같은 계층의 전체 내비게이션을 제공하므로 LNB는 중복 노출하지 않습니다. */
  .ks-lnb { display: none !important; }
  .ks-footer__main { display:block; }
  .ks-footer__line { gap:4px 12px; }
  .ks-footer__separator { display:none; }
}
@media (max-width: 620px) {
  .ks-shell { width: min(100% - 24px, var(--ks-shell)); }
  .ks-brand { font-size: 1.2rem; }
  .ks-brand img { max-width: 210px; max-height: 48px; }
  .ks-page-heading .ks-shell { padding-block: 26px 30px; }
  .ks-page-heading__title { font-size: 2rem; }
  .ks-body { padding-block: 30px 56px; }
  .ks-body--main { padding-block: 0; }

  /* 모바일 푸터는 PC의 3개 정보 묶음을 유지하되, 항목을 표처럼 한 줄씩 쌓지 않습니다. */
  .ks-footer__main { padding-block:13px 9px; }
  .ks-footer__info { display:block; font-size:.8125rem; line-height:1.38; }
  .ks-footer__line {
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    gap:2px 8px;
  }
  .ks-footer__line + .ks-footer__line { margin-top:3px; }
  .ks-footer__item {
    display:inline-flex;
    min-width:0;
    align-items:baseline;
    gap:3px;
    padding:1px 0;
  }
  .ks-footer__colon { display:inline; }
  .ks-footer__label { color:#edf2f4; font-size:inherit; line-height:inherit; }
  .ks-footer__value { min-width:0; color:#d1d9dd; overflow-wrap:anywhere; word-break:normal; }
  .ks-footer__item--name {
    flex:0 0 100%;
    margin:0 0 2px;
    padding:0 0 3px;
    border:0;
  }
  .ks-footer__item--name .ks-footer__label,
  .ks-footer__item--name .ks-footer__colon { display:none; }
  .ks-footer__item--name .ks-footer__value { color:#fff; font-size:.9375rem; font-weight:700; line-height:1.35; }
  .ks-footer__item--address { flex:1 1 100%; }
  .ks-footer__item--email { flex:1 1 100%; }
  .ks-footer__item--email .ks-footer__value { font-size:.8125rem; }

  .ks-footer__links { margin-top:8px; padding-top:7px; }
  .ks-footer__links ul { gap:1px 10px; font-size:.8125rem; line-height:1.35; }
  .ks-footer__links li + li::before { content:none; margin:0; }
  .ks-footer__links a { display:inline-flex; align-items:center; min-height:28px; padding:1px 0; }
  .ks-footer__copyright { padding-block:7px 8px; font-size:.7rem; line-height:1.35; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
@media (forced-colors: active) {
  .ks-gnb__level1 > li > .ks-menu-row > a::after { background: CanvasText; }
  .ks-menu-toggle, .ks-mobile-menu-button { border: 1px solid ButtonText; }
}
/* Scroll lock is allowed only while the mobile menu is actually open. */
@media (max-width: 1020px) { html.ks-menu-lock { overflow: hidden; } }
@media (min-width: 1021px) { html.ks-menu-lock { overflow-y: auto !important; } }
@media (min-width: 1021px) {
  .ks-gnb__level1 { position: relative; }
  .ks-gnb--single .ks-gnb__level1 > li,
  .ks-gnb--full .ks-gnb__level1 > li { position: relative; }
  .ks-gnb__level2 > li:focus-within > .ks-gnb__level3 { visibility: visible; opacity: 1; pointer-events: auto; transform: translateX(0); }
  .ks-gnb__level2 > li.is-flipped > .ks-gnb__level3 { left: auto; right: calc(100% + 10px); }
}

/* KCMS 0.1.35: footer palette comes from KCMS design settings. */
.ks-footer { background:var(--ks-footer-bg); color:var(--ks-footer-text); border-top-color:var(--ks-footer-border); }
.ks-footer__info, .ks-footer__line--primary, .ks-footer__value { color:var(--ks-footer-text); }
.ks-footer__label, .ks-footer a, .ks-footer__item--name .ks-footer__value { color:var(--ks-footer-link); }
.ks-footer__note, .ks-footer__copyright { color:var(--ks-footer-muted); }
.ks-footer__separator { color:var(--ks-footer-muted); }
.ks-footer__links, .ks-footer__copyright { border-top-color:var(--ks-footer-border); }


/* KSystem scroll safety patch: keep hidden mobile overlay from taking wheel events,
   and prevent a stale menu-lock class from disabling desktop scrolling. */
html, body { min-height: 100%; overflow-x: hidden; overflow-y: auto; }
@media (max-width: 1020px) {
  .ks-gnb { pointer-events: none; }
  .ks-gnb.is-mobile-open { pointer-events: auto; }
}
@media (min-width: 1021px) {
  html.ks-menu-lock { overflow-y: auto !important; }
}
