/* ============================================================
   el_unified — 통합 사이트 테마 v0.1
   기반: el_gate(eondui 토큰 브리지 + supporterb 구조) 위에
        el_imweb의 상호작용 메커니즘(이중 내비·스티키 탭·카드그리드·
        FAQ 아코디언·스크롤 리빌)을 스킨만 교체해 이식.
   원칙: el_imweb은 imweb.me "클레이" 색(그린 #008C00 등)을 그대로 썼지만,
        여기서는 그 색 이름 대신 --e-* (eondui) 값을 참조한다 — 새 색을
        만들지 않고 기존 --un-* 변수의 "의미"만 유지한 채 값을 스왑.
   프리픽스: un- (unified). 이 파일은 항상 eondui.css보다 뒤에 로드.
   ============================================================ */

:root {
  /* ── 토큰 브리지: el_imweb의 clay 역할군 → eondui 값 ── */
  --un-ink:      var(--e-ink);
  --un-ink-2:    var(--e-muted);
  --un-muted:    var(--e-muted);
  --un-muted-2:  var(--e-faint);
  --un-accent:   var(--e-accent);       /* imweb의 그린 아이브로 자리 → EOND 오렌지 */
  --un-border:   var(--e-line);
  --un-border-2: var(--e-border);
  --un-border-h: var(--e-faint);
  --un-bg-gray:  var(--e-paper);
  --un-blue:     var(--e-info);
  --un-blue-h:   var(--e-info);
  --un-black:    var(--e-night);
  --un-black-h:  var(--e-night-soft);

  --un-r-sm: var(--e-radius-sm);
  --un-r:    var(--e-radius);
  --un-r-lg: var(--e-radius-lg);
  --un-r-xl: var(--e-radius-xl);
  --un-r-full: var(--e-radius-full);

  --un-maxw: var(--e-inner);   /* 1200px — eondui 컨테이너 폭 그대로 */
  --un-pad: var(--e-sp-8);     /* 32px */
  --un-header-h: 72px;
  --un-tabbar-h: 56px;

  --un-font: var(--e-font-sans);
}
@media (max-width: 768px) {
  :root { --un-header-h: 56px; --un-pad: var(--e-sp-4); --un-tabbar-h: 52px; }
}

body {
  margin: 0;
  font-family: var(--iw-font, var(--un-font));
  color: #15181e;
  background: #fff;
  -webkit-font-smoothing: antialiased;
  word-break: keep-all;
}

/* ── 스크롤 리빌 + 로드 엔트런스 공통 유틸(.un-reveal / .un-hero-in) ──
   el_imweb .iw-reveal/.iw-hero-in 이식 — theme.js가 documentElement에 .un-anim을
   부여할 때만 opacity:0이 걸려 JS 없이도 콘텐츠가 항상 보인다. */
.un-anim .un-reveal {
  opacity: 0; transform: translateY(24px);
  transition: opacity var(--e-dur-slow) var(--e-ease-out), transform var(--e-dur-slow) var(--e-ease-out);
}
.un-anim .un-reveal.is-in { opacity: 1; transform: none; }
.un-anim .un-reveal[data-delay="1"] { transition-delay: .08s; }
.un-anim .un-reveal[data-delay="2"] { transition-delay: .16s; }
.un-anim .un-reveal[data-delay="3"] { transition-delay: .24s; }
.un-anim .un-reveal[data-delay="4"] { transition-delay: .32s; }

.un-anim .un-hero-in {
  opacity: 0; transform: translateY(16px);
  transition: opacity var(--e-dur) var(--e-ease-out), transform var(--e-dur) var(--e-ease-out);
}
.un-anim .un-hero-in.is-in { opacity: 1; transform: none; }
.un-anim .un-hero-in[data-delay="1"] { transition-delay: .12s; }
.un-anim .un-hero-in[data-delay="2"] { transition-delay: .24s; }
.un-anim .un-hero-in[data-delay="3"] { transition-delay: .36s; }

@media (prefers-reduced-motion: reduce) {
  .un-anim .un-reveal, .un-anim .un-hero-in,
  .un-anim .un-reveal.is-in, .un-anim .un-hero-in.is-in {
    transition: none !important; opacity: 1 !important; transform: none !important;
  }
}

.un-container { max-width: var(--iw-maxw, var(--un-maxw)); padding: 0 var(--iw-pad, var(--un-pad)); margin: 0 auto; }

/* ── imweb/OpenAI 계열 shell + 관리자 사이트맵 기반 정보 구조 ─────────── */
.un-openai-shell {
  border-bottom: 1px solid transparent;
}
.un-openai-shell .iw-header-in {
  max-width: none;
  width: 100%;
  gap: 28px;
  position: relative;
}
.un-openai-shell.un-menu-basic .iw-header-in {
  max-width: var(--iw-maxw, var(--un-maxw));
}
.un-openai-shell.un-menu-full .iw-header-in {
  max-width: none;
}
.un-openai-shell .iw-logo {
  letter-spacing: -0.02em;
}
.un-openai-nav {
  gap: 30px;
  position: static;
}
.un-openai-group.iw-gnb-item-wrap {
  position: static;
}
.un-openai-nav .iw-gnb-item {
  font-size: 15px;
  font-weight: 500;
  color: #202123;
}
.un-openai-nav .iw-gnb-item:hover,
.un-openai-nav .iw-gnb-item.is-active,
.un-openai-group.is-open > .iw-gnb-item {
  color: #000;
}
.un-card-badge {
  display: inline-flex;
  align-items: center;
  height: 17px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--e-accent-soft);
  color: var(--e-accent-strong);
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
}
.un-openai-panel.iw-gnb-panel {
  top: calc(100% + 8px);
  left: 50%;
  right: auto;
  width: 100vw;
  min-width: 0;
  max-height: min(72vh, 620px);
  overflow-y: auto;
  padding: 24px var(--iw-pad, 40px);
  border-color: var(--iw-border, #e2e5e9);
  border-radius: 0 0 var(--iw-r-lg, 12px) var(--iw-r-lg, 12px);
  box-shadow: 0 8px 24px rgb(0 0 0 / .10);
  transform: translateX(-50%) translateY(8px);
}
.iw-gnb-item-wrap.is-open .un-openai-panel.iw-gnb-panel {
  transform: translateX(-50%) translateY(0);
}

/* el_imweb형: 각 1차 메뉴 바로 아래에 열리는 작은 서브 드랍다운 */
.un-openai-shell.un-menu-basic .un-openai-group.iw-gnb-item-wrap {
  position: relative;
}
.un-openai-shell.un-menu-basic .un-openai-panel.iw-gnb-panel {
  top: 100%;
  left: 0;
  right: auto;
  width: max-content;
  min-width: 220px;
  max-width: min(360px, calc(100vw - 32px));
  max-height: min(72vh, 520px);
  margin-top: 8px;
  padding: 8px;
  border-radius: var(--iw-r-lg, 12px);
  transform: translateY(8px);
}
.un-openai-shell.un-menu-basic .iw-gnb-item-wrap.is-open .un-openai-panel.iw-gnb-panel {
  transform: translateY(0);
}
.un-openai-shell.un-menu-basic .un-openai-panel.iw-gnb-panel::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -10px;
  height: 10px;
}
.un-openai-shell.un-menu-basic .un-openai-panel-head {
  display: none;
}
.un-openai-shell.un-menu-basic .un-openai-panel-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  max-width: none;
  margin: 0;
}
.un-openai-shell.un-menu-basic .un-menu-row {
  display: contents;
}
.un-openai-shell.un-menu-basic .un-menu-children {
  display: flex;
  flex-direction: column;
  gap: 1px;
  margin: 0 0 6px;
  padding: 0 0 0 12px;
}
.un-openai-shell.un-menu-basic .un-mega-link {
  min-height: 0;
  padding: 10px 12px;
  justify-content: flex-start;
  border-radius: var(--iw-r, 8px);
  font-size: 14px;
}
.un-openai-shell.un-menu-basic .un-mega-link--child {
  padding: 8px 12px;
  font-size: 13px;
}
.un-openai-panel-head {
  display: block;
  max-width: var(--iw-maxw, 1360px);
  margin: 0 auto;
  padding: 0 0 14px;
}
.un-openai-panel-head strong {
  display: block;
  color: var(--iw-ink, #15181e);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
}
.un-openai-panel-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px 20px;
  max-width: var(--iw-maxw, 1360px);
  margin: 0 auto;
}
.un-mega-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 38px;
  gap: 10px;
  padding: 10px 12px;
  border-radius: var(--iw-r, 8px);
  color: var(--iw-black-h, #24282f);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.35;
  white-space: nowrap;
}
.un-mega-link:hover,
.un-mega-link.is-active {
  background: var(--iw-bg-gray, #f8f9fb);
  color: var(--iw-ink, #15181e);
}
.un-mega-link em {
  flex: none;
  font-style: normal;
  color: #008c00;
  font-size: 10px;
  font-weight: 800;
}
.un-menu-row {
  min-width: 0;
}
.un-menu-children {
  display: grid;
  gap: 1px;
  margin: 0 0 6px;
  padding: 0 0 0 14px;
}
.un-mega-link--child {
  min-height: 34px;
  padding: 8px 12px;
  color: var(--iw-muted, #717680);
  font-size: 13px;
}
.un-mega-link--child::before {
  content: "";
  width: 4px;
  height: 4px;
  margin-right: 2px;
  border-radius: 999px;
  background: var(--iw-border-h, #bcc0c6);
}

.un-content-nav {
  position: sticky;
  top: 0;
  z-index: 45;
  margin-bottom: 48px;
  border-top: 1px solid #f0f0f0;
  border-bottom: 1px solid #f0f0f0;
  background: #fff;
}
.un-content-nav-in {
  display: flex;
  align-items: center;
  gap: 18px;
  max-width: var(--iw-maxw, var(--un-maxw));
  height: var(--un-tabbar-h);
  margin: 0 auto;
  padding: 0 var(--iw-pad, var(--un-pad));
}
.un-content-root {
  flex: none;
  color: #15181e;
  font-size: 13px;
  font-weight: 700;
}
.un-content-scroll {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: none;
}
.un-content-scroll::-webkit-scrollbar {
  display: none;
}
.un-content-link {
  flex: none;
  display: inline-flex;
  align-items: center;
  height: 34px;
  padding: 0 11px;
  border-radius: 999px;
  color: #4b515b;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}
.un-content-link:hover,
.un-content-link.is-active {
  background: #15181e;
  color: #fff;
}
.un-mobile-nav {
  max-height: calc(100vh - var(--un-header-h));
  overflow: auto;
}
.un-mobile-group {
  border-bottom: 1px solid var(--iw-border);
  padding: 0;
}
.un-mobile-group summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  list-style: none;
  padding: 14px 0;
}
.un-mobile-group summary::-webkit-details-marker {
  display: none;
}
.un-mobile-group summary > a {
  flex: 1;
}
.un-mobile-group summary > span {
  color: #008c00;
  font-size: 10px;
  font-weight: 800;
}
.un-mobile-sub {
  display: grid;
  gap: 2px;
  padding: 0 0 12px 12px;
}
.un-mobile-sub .un-menu-children {
  display: grid;
  gap: 1px;
  margin: 0 0 8px;
  padding-left: 12px;
}

.un-openai-footer .iw-footer-top {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  gap: 24px;
  padding: 64px var(--iw-pad, 40px) 40px;
  align-items: start;
}
.un-openai-footer .iw-footer-col {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.un-openai-footer .iw-footer-col-title {
  margin: 0 0 16px;
  color: #15181e;
  font-size: 15px;
  font-weight: 650;
}
.un-openai-footer .iw-footer-link {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 10px;
  color: #4b515b;
  font-size: 14px;
  line-height: 1.45;
}
.un-openai-footer .iw-footer-link:hover {
  color: #15181e;
}
.un-openai-footer .iw-footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  flex-wrap: wrap;
  border-top: 1px solid #e2e5e9;
  padding: 24px var(--iw-pad, 40px);
}
.un-openai-footer .iw-footer-legal p {
  margin: 0;
  color: #9fa3ab;
  font-size: 13px;
  line-height: 1.7;
}
.un-openai-footer .iw-footer-legal a {
  color: #9fa3ab;
}
.un-openai-footer .iw-footer-legal a:hover,
.un-openai-footer .iw-footer-strong {
  color: #4b515b !important;
}
.un-openai-footer .iw-footer-brand {
  text-align: right;
}
.un-openai-footer .iw-footer-brand-title {
  color: #15181e;
  font-size: 15px;
  font-weight: 700;
}
.un-openai-footer .iw-footer-brand-sub {
  margin-top: 2px;
  color: #9fa3ab;
  font-size: 13px;
}

@media (max-width: 1120px) {
  .un-openai-nav { gap: 20px; }
  .un-openai-panel-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  .un-openai-nav { gap: 14px; }
  .un-openai-nav .iw-gnb-item { font-size: 14px; }
  .un-openai-panel-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .un-openai-panel-list { grid-template-columns: 1fr; }
  .un-content-nav { top: 0; }
  .un-content-nav { margin-bottom: 28px; }
  .un-content-nav-in {
    gap: 12px;
    height: 48px;
    padding: 0 var(--e-sp-4);
  }
  .un-content-root,
  .un-content-link {
    font-size: 12.5px;
  }
  .un-openai-footer .iw-footer-top {
    grid-template-columns: repeat(2, 1fr);
    padding: 48px var(--iw-pad, 20px) 32px;
  }
  .un-openai-footer .iw-footer-bottom {
    flex-direction: column;
    align-items: flex-start;
    padding: 24px var(--iw-pad, 20px);
  }
  .un-openai-footer .iw-footer-brand {
    text-align: left;
  }
}

/* 최종 override: 기본형은 el_imweb처럼 해당 메뉴 하단의 작은 드랍다운으로 고정 */
.un-openai-shell.un-menu-basic .un-openai-group.iw-gnb-item-wrap {
  position: relative;
}
.un-openai-shell.un-menu-basic .un-openai-panel.iw-gnb-panel {
  top: 100%;
  left: 0;
  right: auto;
  width: max-content;
  min-width: 220px;
  max-width: min(360px, calc(100vw - 32px));
  margin-top: 8px;
  padding: 8px;
  border-radius: var(--iw-r-lg, 12px);
  transform: translateY(8px);
}
.un-openai-shell.un-menu-basic .iw-gnb-item-wrap.is-open .un-openai-panel.iw-gnb-panel {
  transform: translateY(0);
}
.un-openai-shell.un-menu-basic .un-openai-panel-head {
  display: none;
}
.un-openai-shell.un-menu-basic .un-openai-panel-list {
  display: flex;
  flex-direction: column;
  grid-template-columns: none;
  gap: 2px;
  max-width: none;
  margin: 0;
}
