/*
 * EasyNative 머리글 프리셋 — easyclass-design (Soft Pastel Card) 토큰
 * 테마 변수(--c-*, --w, --en-font)를 받아 어느 테마에서나 같은 품질. 라이트 모드 전용, 강조색(오렌지)은 버튼·활성 점에만.
 * 배치: glass · floating · pill · center · split · minimal · stacked · mega · drawer · side
 */
.enh {
  --h: var(--hdr-h, 68px);
  --enh-bg: var(--c-head-bg, var(--c-card, #fff));
  --enh-fg: var(--c-head-text, var(--c-text, #1c1c28));
  --enh-card: var(--c-card, #fff);
  --enh-ink: var(--c-text, #1c1c28);
  --enh-mut: var(--c-muted, #9aa0ac);
  --enh-pg: var(--c-bg, #ededf5);
  /* 머리글 위 옅은 바탕(마우스·메뉴 단추·알약) — 어두운 머리글이면 Design 이 --hdr-tint 를 반투명 흰색으로 */
  --enh-tint: var(--hdr-tint, var(--enh-pg));
  --enh-ac: var(--c-accent, #f97316);
  --enh-acs: var(--c-accent-soft, #feebdc);
  --enh-sh: 0 8px 24px rgba(28, 28, 40, .06);
  --enh-sh2: 0 18px 48px rgba(28, 28, 40, .12);
  --enh-line: 0 1px 0 rgba(28, 28, 40, .06);
  --enh-ease: cubic-bezier(.2, .8, .2, 1);
  --enh-wrap: min(var(--w, 1240px), calc(100% - 48px));
  position: relative; z-index: 60; color: var(--enh-fg);
  font-family: var(--en-font, 'Pretendard Variable', 'Pretendard', -apple-system, BlinkMacSystemFont, 'Malgun Gothic', sans-serif);
  -webkit-font-smoothing: antialiased;
}
.enh *, .enh *::before, .enh *::after { box-sizing: border-box; }
.enh a { color: inherit; text-decoration: none; }
.enh ul { list-style: none; margin: 0; padding: 0; }
.enh p { margin: 0; }
.enh svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; display: block; }
.enh.is-sticky { position: sticky; top: 0; }
.enh[data-autohide] { transition: transform .35s var(--enh-ease); }
.enh.is-hidden { transform: translateY(-100%); }
.enh-skip { position: absolute; left: 12px; top: -48px; z-index: 100; padding: 10px 16px; border-radius: 12px; background: var(--enh-ink, #1c1c28); color: #fff; font-weight: 700; text-decoration: none; transition: top .2s; }
.enh-skip:focus { top: 12px; }
.enh :focus-visible { outline: 2px solid var(--enh-ac); outline-offset: 2px; border-radius: 10px; }

/* 바 · 틀 */
.enh-bar { background: var(--enh-bg); box-shadow: var(--enh-line); transition: box-shadow .3s var(--enh-ease), background-color .3s; }
.enh.is-scrolled .enh-bar { box-shadow: var(--enh-sh); }
.enh-in { width: var(--enh-wrap); margin: 0 auto; height: var(--h); display: flex; align-items: center; gap: 28px; }
.enh-logo { display: flex; align-items: center; flex: none; font-size: calc(var(--hdr-logo-h, 34px) * .6); font-weight: 800; letter-spacing: -.4px; white-space: nowrap; }
.enh-logo img { height: var(--hdr-logo-h, 34px); width: auto; display: block; }
.enh-logo-wrap { display: flex; align-items: center; gap: 10px; flex: none; }
/* 로고 뒤 작은 단추 (header.after_logo) */
.enh-logo-tag { display: inline-flex; align-items: center; gap: 5px; height: 24px; padding: 0 9px 0 7px; border-radius: 9999px; background: #F0E7FB; color: #6D4AE0; font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-decoration: none; white-space: nowrap; line-height: 1; flex: none; transition: background .2s, transform .2s; }
.enh-logo-tag svg { width: 11px; height: 11px; fill: currentColor; stroke: none; }
.enh-logo-tag:hover { background: #E4D6F7; transform: translateY(-1px); }
.enh-logo-light.enh--clear:not(.is-scrolled) .enh-bar .enh-logo-tag, .enh-logo-light.enh--dark .enh-bar .enh-logo-tag { background: rgba(255, 255, 255, .22); color: #fff; }
.enh--center .enh-logo-wrap, .enh--split .enh-logo-wrap, .enh--luxe .enh-logo-wrap { justify-self: center; }
.enh-label { font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--enh-mut); }

/* 주 메뉴 */
.enh-nav { min-width: 0; }
.enh-menu { display: flex; align-items: center; gap: var(--hdr-menu-gap, 2px); }
.enh-menu > li { position: relative; }
.enh-link { position: relative; display: flex; align-items: center; gap: 4px; height: 40px; padding: 0 14px; border-radius: 9999px; font-size: var(--hdr-menu-size, 15px); font-weight: var(--hdr-menu-weight, 600); color: var(--hdr-menu-color, inherit); letter-spacing: -.2px; white-space: nowrap; transition: background-color .2s, color .2s; }
.enh-link:hover { background: var(--enh-tint); color: var(--hdr-menu-hover, var(--hdr-menu-color, inherit)); }
.enh-link.is-on { color: var(--hdr-menu-hover, var(--enh-fg)); }
.enh-caret svg { width: 14px; height: 14px; stroke-width: 2; opacity: .55; transition: transform .25s var(--enh-ease); }
.has-drop:hover > .enh-link .enh-caret svg, .has-drop:focus-within > .enh-link .enh-caret svg, .has-drop.is-open > .enh-link .enh-caret svg { transform: rotate(180deg); }

/* 하위 메뉴 (기본: 카드 드롭다운) */
.enh-drop { position: absolute; top: calc(100% + 10px); left: -6px; min-width: 232px; z-index: 5; opacity: 0; visibility: hidden; transform: translateY(-6px) scale(.98); transform-origin: top left;
  transition: opacity .18s var(--enh-ease), transform .22s var(--enh-ease), visibility 0s .22s; }
.enh-drop::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }  /* 마우스 이동 다리 */
.has-drop:hover > .enh-drop, .has-drop:focus-within > .enh-drop, .has-drop.is-open > .enh-drop { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.enh-drop-in { background: var(--enh-card); color: var(--enh-ink); border-radius: 18px; box-shadow: var(--enh-sh2); padding: 8px; }
.enh-drop-head { display: none; }
.enh-drop-list a { display: block; padding: 10px 14px; border-radius: 12px; font-size: 14px; font-weight: 600; transition: background-color .15s, color .15s; }
.enh-drop-list a:hover, .enh-drop-list a.is-on { background: var(--enh-acs); color: var(--enh-ac); }
.enh-drop-all { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: var(--enh-ink); }
.enh-drop-all i svg { width: 15px; height: 15px; transition: transform .2s var(--enh-ease); }
.enh-drop-all:hover i svg { transform: translateX(3px); }

/* «강의 카테고리» 메가 메뉴 — 주 메뉴 맨 앞, 왼쪽 카테고리 · 오른쪽 강좌 썸네일 (LMS 'header.category_menu') */
.enh-cat { position: relative; display: flex; align-items: center; margin-right: 14px; }
.enh-cat::after { content: ""; position: absolute; right: -8px; top: 50%; width: 1px; height: 16px; transform: translateY(-50%); background: currentColor; opacity: .16; }
.enh-cat-btn { border: 0; background: none; font: inherit; font-size: var(--hdr-menu-size, 15px); font-weight: 800; cursor: pointer; gap: 7px; white-space: nowrap; }
.enh-cat-btn > span { color: inherit; }
.enh .enh-cat-ico { width: 17px; height: 17px; fill: var(--enh-ac); stroke: none; }
.enh-cat:hover .enh-caret svg, .enh-cat:focus-within .enh-caret svg, .enh-cat.is-open .enh-caret svg { transform: rotate(180deg); }
.enh-cat-panel { position: absolute; top: calc(100% + 10px); left: -6px; z-index: 6; opacity: 0; visibility: hidden; transform: translateY(-6px) scale(.985); transform-origin: top left;
  transition: opacity .2s var(--enh-ease), transform .25s var(--enh-ease), visibility 0s linear .25s; transition-delay: .12s; }
.enh-cat-panel::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }  /* 마우스 이동 다리 */
.enh-cat:hover > .enh-cat-panel, .enh-cat:focus-within > .enh-cat-panel, .enh-cat.is-open > .enh-cat-panel { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.enh-cat.is-closed > .enh-cat-panel { opacity: 0; visibility: hidden; }
.enh-cat-in { display: flex; width: max-content; max-width: calc(100vw - 48px); background: var(--enh-card); color: var(--enh-ink); border-radius: 22px; box-shadow: var(--enh-sh2); overflow: hidden; }
.enh-cat-list { flex: 0 0 196px; display: flex; flex-direction: column; gap: 2px; padding: 12px 10px; max-height: min(460px, calc(100vh - 140px)); overflow-y: auto; border-right: 1px solid rgba(28, 28, 40, .06); }
.enh-cat-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 11px 12px 11px 14px; border-radius: 12px; font-size: 14px; font-weight: 600; color: var(--enh-ink); transition: background-color .15s, color .15s; }
.enh .enh-cat-item svg { width: 15px; height: 15px; stroke-width: 2; opacity: 0; transform: translateX(-3px); transition: opacity .15s, transform .2s var(--enh-ease); }
.enh-cat-item:hover, .enh-cat-item.is-on { background: var(--enh-pg); font-weight: 700; }
.enh-cat-item.is-on svg, .enh-cat-item:hover svg { opacity: .6; transform: none; }
.enh-cat-panes { padding: 18px 22px 20px; max-height: min(460px, calc(100vh - 140px)); overflow-y: auto; }
.enh-cat-pane { display: none; }
.enh-cat-pane.is-on { display: block; animation: enh-cat-in .22s var(--enh-ease); }
@keyframes enh-cat-in { from { opacity: 0; transform: translateX(6px); } to { opacity: 1; transform: none; } }
.enh-cat-title { display: inline-flex; align-items: center; gap: 2px; margin-bottom: 14px; font-size: 13px; font-weight: 600; color: var(--enh-mut); }
.enh .enh-cat-title svg { width: 14px; height: 14px; stroke-width: 2; }
.enh-cat-title:hover { color: var(--enh-ink); }
.enh-cat-grid { display: grid; grid-template-columns: repeat(var(--enh-cat-cols, 3), 138px); gap: 16px 12px; }
.enh-cat-tile { display: block; min-width: 0; }
.enh-cat-thumb { display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 10; border-radius: 12px; overflow: hidden; background: var(--enh-pg); transition: transform .22s var(--enh-ease), box-shadow .22s var(--enh-ease); }
.enh-cat-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.enh-cat-thumb--gen { padding: 8px 10px; }
.enh-cat-thumb--gen b { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: #fff; font-size: 12px; font-weight: 800; line-height: 1.35; text-align: center; word-break: keep-all; letter-spacing: -.02em; }
.enh-cat-tile:hover .enh-cat-thumb { transform: translateY(-3px); box-shadow: 0 14px 24px -12px rgba(28, 28, 40, .35); }
.enh-cat-name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 8px; font-size: 12.5px; font-weight: 700; line-height: 1.4; letter-spacing: -.02em; word-break: keep-all; color: var(--enh-ink); }
.enh-cat-tile:hover .enh-cat-name { color: var(--enh-ac); }
.enh-cat-more { display: inline-flex; align-items: center; gap: 6px; margin-top: 18px; font-size: 13.5px; font-weight: 800; color: var(--enh-ink); }
.enh-cat-more span { transition: transform .2s var(--enh-ease); }
.enh-cat-more:hover span { transform: translateX(3px); }
.enh--center .enh-cat-panel, .enh--stacked .enh-cat-panel { top: 100%; }
.enh--glass .enh-cat-panel, .enh--mega .enh-cat-panel { top: calc(100% + 14px); }

/* 오른쪽 동작 */
.enh-actions { margin-left: auto; display: flex; align-items: center; gap: 8px; flex: none; }
.enh-icon { width: 40px; height: 40px; border-radius: 9999px; display: grid; place-items: center; cursor: pointer; color: var(--enh-fg); transition: background-color .2s; list-style: none; }
.enh-icon::-webkit-details-marker { display: none; }
.enh-icon:hover { background: var(--enh-tint); }
.enh-signin { font-size: 14px; font-weight: 600; padding: 0 12px; height: 40px; display: inline-flex; align-items: center; border-radius: 9999px; transition: background-color .2s; }
.enh-signin:hover { background: var(--enh-tint); }
.enh-avatar { width: 36px; height: 36px; border-radius: 9999px; display: inline-grid; place-items: center; flex: none; background: var(--pastel-purple, #e4d6f7); color: var(--enh-ink); font-size: 14px; font-weight: 800; box-shadow: 0 0 0 3px var(--enh-bg); }
.enh-cta { display: inline-flex; align-items: center; justify-content: center; height: 40px; padding: 0 20px; border-radius: 9999px; background: var(--hdr-btn-bg, var(--enh-ac)); color: var(--hdr-btn-fg, #fff) !important; font-size: 14px; font-weight: 700; white-space: nowrap;
  box-shadow: 0 8px 18px rgba(249, 115, 22, .3); box-shadow: 0 8px 18px color-mix(in srgb, var(--hdr-btn-bg, var(--enh-ac)) 32%, transparent); transition: transform .2s var(--enh-ease), box-shadow .2s, filter .2s; }
.enh-cta:hover { transform: translateY(-1px); filter: brightness(1.04); }
.enh-burger { display: none; align-items: center; gap: 6px; height: 40px; padding: 0 14px 0 12px; border-radius: 9999px; background: var(--enh-tint); font-size: 14px; font-weight: 700; cursor: pointer; user-select: none; }
.enh-burger svg { width: 18px; height: 18px; }

/* 검색 */
.enh-searchbox { display: flex; align-items: center; gap: 10px; height: 44px; padding: 0 18px; border-radius: 9999px; background: var(--enh-tint); color: var(--enh-mut); transition: box-shadow .2s, background-color .2s; }
.enh-searchbox:focus-within { background: var(--enh-card); box-shadow: 0 0 0 2px var(--enh-ac), var(--enh-sh); }
.enh-searchbox svg { width: 18px; height: 18px; }
.enh-search-go { flex: none; display: grid; place-items: center; width: 34px; height: 34px; margin-left: -8px; padding: 0; border: 0; border-radius: 9999px; background: none; color: inherit; cursor: pointer; transition: background-color .15s, color .15s; }
.enh-search-go:hover, .enh-search-go:focus-visible { background: var(--enh-acs); color: var(--enh-ac); }
/* 아이폰 · 갤럭시: iOS 기본 검색칸 모양 없애기 · 16px 미만이면 아이폰이 화면을 확대하므로 휴대폰에서는 16px · 손가락 크기 단추 */
.enh-searchbox input { -webkit-appearance: none; appearance: none; border-radius: 0; }
.enh-search-go { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
@media (max-width: 1024px) { .enh .enh-searchbox input { font-size: 16px; } .enh .enh-search-go { width: 40px; height: 40px; margin-left: -10px; } }
.enh-searchbox input { flex: 1; min-width: 0; border: 0; background: none; outline: none; font: inherit; font-size: 14px; color: var(--enh-ink); }
.enh-searchbox input::-webkit-search-cancel-button { display: none; }
/* 입력칸 자체의 초점 테두리는 끄고 바깥 알약 테두리(:focus-within)만 — .enh :focus-visible 보다 앞서게 */
.enh-searchbox input:focus, .enh-searchbox input:focus-visible { outline: none; box-shadow: none; }
.enh-find { position: relative; }
.enh-find-panel { position: absolute; right: 0; top: calc(100% + 10px); width: min(420px, calc(100vw - 32px)); padding: 10px; border-radius: 22px; background: var(--enh-card); box-shadow: var(--enh-sh2); animation: enh-pop .22s var(--enh-ease); }
.enh-find[open] > summary { background: var(--enh-tint); }

/* 유틸 링크 */
.enh-util { display: flex; align-items: center; gap: 18px; font-size: 13px; font-weight: 500; color: var(--enh-mut); }
.enh-util a:hover { color: var(--enh-fg); }

/* ── 1. 글래스 — 얇은 반투명 바, 가운데 메뉴, 넓게 펼치는 하위 메뉴 ── */
.enh--glass { --h: var(--hdr-h, 52px); }
.enh--glass .enh-bar { background: rgba(255, 255, 255, .72); background: color-mix(in srgb, var(--enh-bg) 72%, transparent); -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px); }
.enh--glass .enh-logo { font-size: calc(var(--hdr-logo-h, 26px) * .66); letter-spacing: -.3px; }
.enh--glass .enh-logo img { height: var(--hdr-logo-h, 26px); }
.enh--glass .enh-nav { flex: 1; display: flex; justify-content: center; }
.enh--glass .enh-menu > li { position: static; }
.enh--glass .enh-link { height: var(--h); padding: 0 13px; border-radius: 0; font-size: var(--hdr-menu-size, 13px); font-weight: var(--hdr-menu-weight, 500); letter-spacing: -.1px; color: var(--hdr-menu-color, color-mix(in srgb, var(--enh-fg) 78%, transparent)); background: none; }
.enh--glass .enh-link:hover, .enh--glass .enh-link.is-on { color: var(--hdr-menu-hover, var(--enh-fg)); }
.enh--glass .enh-caret { display: none; }
.enh--glass .enh-drop { left: 0; right: 0; top: 100%; min-width: 0; transform: translateY(-4px); }
.enh--glass .enh-drop::before { display: none; }
.enh--glass .enh-drop-in { border-radius: 0 0 28px 28px; padding: 30px max(24px, calc((100% - var(--w, 1240px)) / 2)) 40px; background: var(--enh-card); box-shadow: 0 30px 60px rgba(28, 28, 40, .08); display: grid; grid-template-columns: 220px 1fr; gap: 12px 48px; }
.enh--glass .enh-drop-head { display: flex; flex-direction: column; gap: 14px; padding-top: 6px; }
.enh--glass .enh-drop-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 2px 32px; }
.enh--glass .enh-drop-list a { padding: 7px 0; background: none !important; color: var(--enh-ink) !important; font-size: 22px; font-weight: 700; letter-spacing: -.5px; border-radius: 0; }
.enh--glass .enh-drop-list a:hover { color: var(--enh-ac) !important; }
.enh--glass .enh-icon { width: 36px; height: 36px; }
.enh--glass .enh-icon:hover { background: none; color: var(--enh-ac); }
.enh--glass .enh-avatar { width: 30px; height: 30px; font-size: 12px; }
.enh--glass .enh-signin { font-size: 13px; height: 32px; padding: 0 10px; }
.enh--glass .enh-cta, .enh--glass .enh-btn2 { height: 30px; padding: 0 14px; font-size: 12px; box-shadow: none; }
.enh--glass .enh-find-panel { top: calc(100% + 8px); }

/* ── 2. 떠 있는 카드 — 둥근 카드 바가 화면 위에 떠 있음 ── */
.enh--floating { padding: 14px 0 0; }
.enh--floating .enh-bar { background: none; box-shadow: none; }
.enh--floating .enh-in { --h: var(--hdr-h, 64px); background: var(--enh-bg); border-radius: 22px; box-shadow: var(--enh-sh); padding: 0 12px 0 24px; transition: box-shadow .3s var(--enh-ease), height .3s var(--enh-ease); }
.enh--floating.is-scrolled .enh-in { --h: calc(var(--hdr-h, 64px) - 6px); box-shadow: 0 16px 40px rgba(28, 28, 40, .12); }
.enh--floating .enh-nav { flex: 1; display: flex; justify-content: center; }
.enh--floating .enh-drop { left: 50%; transform: translate(-50%, -6px) scale(.98); transform-origin: top center; }
.enh--floating .has-drop:hover > .enh-drop, .enh--floating .has-drop:focus-within > .enh-drop, .enh--floating .has-drop.is-open > .enh-drop { transform: translate(-50%, 0); }

/* ── 3. 필 세그먼트 — 메뉴를 알약 안에, 선택은 흰 알약 ── */
.enh--pill .enh-nav { flex: 1; display: flex; justify-content: center; }
.enh--pill .enh-menu { background: var(--enh-tint); border-radius: 9999px; padding: 4px; gap: var(--hdr-menu-gap, 2px); }
.enh--pill .enh-link { height: 38px; padding: 0 18px; font-size: var(--hdr-menu-size, 14px); color: var(--hdr-menu-color, var(--enh-mut)); background: none; }
.enh--pill .enh-link:hover { color: var(--hdr-menu-hover, var(--enh-fg)); background: none; }
.enh--pill .enh-link.is-on { background: var(--enh-card); color: var(--enh-ink); box-shadow: 0 2px 10px rgba(28, 28, 40, .08); }
.enh--pill .enh-drop { top: calc(100% + 12px); }

/* ── 4. 가운데 로고 — 위: 로고, 아래: 메뉴 (스크롤하면 위 줄이 낮아짐) ── */
.enh--center .enh-row1 { --h: var(--hdr-h, 78px); display: grid; grid-template-columns: 1fr auto 1fr; transition: height .3s var(--enh-ease); }
.enh--center.is-scrolled .enh-row1 { --h: calc(var(--hdr-h, 78px) * .75); }
.enh--center .enh-left { display: flex; align-items: center; gap: 14px; justify-self: start; }
.enh--center .enh-logo { justify-self: center; font-size: calc(var(--hdr-logo-h, 40px) * .6); }
.enh--center .enh-logo img { height: var(--hdr-logo-h, 40px); transition: height .3s var(--enh-ease); }
.enh--center.is-scrolled .enh-logo img { height: calc(var(--hdr-logo-h, 40px) * .75); }
.enh--center .enh-actions { justify-self: end; margin: 0; }
.enh--center .enh-row2 { box-shadow: inset 0 1px 0 rgba(28, 28, 40, .05); }
.enh--center .enh-row2 .enh-in { --h: 50px; justify-content: center; }
.enh--center .enh-link, .enh--stacked .enh-menu--tabs .enh-link { height: 50px; padding: 0 16px; border-radius: 0; background: none; color: var(--hdr-menu-color, var(--enh-mut)); }
.enh--center .enh-link:hover, .enh--stacked .enh-menu--tabs .enh-link:hover { color: var(--hdr-menu-hover, var(--enh-fg)); background: none; }
.enh--center .enh-link.is-on, .enh--stacked .enh-menu--tabs .enh-link.is-on { color: var(--hdr-menu-hover, var(--enh-fg)); font-weight: 700; }
.enh--center .enh-link.is-on::before, .enh--stacked .enh-menu--tabs .enh-link.is-on::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--enh-ac); margin-right: 6px; }
.enh--center .enh-drop { left: 50%; transform: translate(-50%, -6px) scale(.98); transform-origin: top center; top: 100%; }
.enh--center .has-drop:hover > .enh-drop, .enh--center .has-drop:focus-within > .enh-drop, .enh--center .has-drop.is-open > .enh-drop { transform: translate(-50%, 0); }

/* ── 5. 좌우 나눔 — 로고 가운데, 메뉴 좌우 ── */
.enh--split .enh-in { --h: var(--hdr-h, 80px); display: grid; grid-template-columns: 1fr auto 1fr; gap: 24px; }
.enh--split .enh-nav--left { justify-self: start; }
.enh--split .enh-logo { justify-self: center; font-size: calc(var(--hdr-logo-h, 40px) * .55); }
.enh--split .enh-logo img { height: var(--hdr-logo-h, 40px); }
.enh--split .enh-right { justify-self: end; display: flex; align-items: center; gap: 8px; }
.enh--split .enh-actions { margin-left: 8px; }
.enh--split .enh-link { font-size: var(--hdr-menu-size, 14px); letter-spacing: .02em; }

/* ── 6. 미니멀 — 낮은 높이, 메뉴는 오른쪽, 밑줄 표시 ── */
.enh--minimal { --h: var(--hdr-h, 60px); }
.enh--minimal .enh-nav { margin-left: auto; }
.enh--minimal .enh-actions { margin-left: 6px; padding-left: 14px; box-shadow: inset 1px 0 0 rgba(28, 28, 40, .08); }
.enh--minimal .enh-link { height: var(--h); padding: 0 12px; border-radius: 0; background: none; font-size: var(--hdr-menu-size, 14px); font-weight: var(--hdr-menu-weight, 500); color: var(--hdr-menu-color, var(--enh-mut)); }
.enh--minimal .enh-link::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 14px; height: 2px; border-radius: 2px; background: var(--hdr-menu-hover, var(--enh-fg)); transform: scaleX(0); transition: transform .3s var(--enh-ease); }
.enh--minimal .enh-link:hover, .enh--minimal .enh-link.is-on { color: var(--hdr-menu-hover, var(--enh-fg)); background: none; }
.enh--minimal .enh-link:hover::after, .enh--minimal .enh-link.is-on::after { transform: scaleX(1); }
.enh--minimal .enh-caret { display: none; }
.enh--minimal .enh-drop { left: auto; right: -6px; transform-origin: top right; }

/* ── 7. 검색 2단 — 위: 로고·검색·로그인, 아래: 탭 메뉴 (강의 포털형) ── */
.enh--stacked .enh-row1 { --h: var(--hdr-h, 72px); }
.enh--stacked .enh-search { flex: 1; max-width: 560px; }
.enh--stacked .enh-row2 { box-shadow: inset 0 1px 0 rgba(28, 28, 40, .05); }
.enh--stacked .enh-row2 .enh-in { --h: 50px; gap: 20px; }
.enh--stacked .enh-menu--tabs { gap: var(--hdr-menu-gap, 8px); }
.enh--stacked .enh-menu--tabs .enh-link { padding: 0 10px; }
.enh--stacked .enh-menu--tabs .enh-caret { display: none; }
.enh--stacked .enh-drop { top: 100%; }
.enh--stacked .enh-util { margin-left: auto; }

/* ── 8. 메가 메뉴 — 하위 메뉴를 넓은 패널로 ── */
.enh--mega { --h: var(--hdr-h, 72px); }
.enh--mega .enh-menu > li { position: static; }
.enh--mega .enh-drop { left: 0; right: 0; top: 100%; min-width: 0; transform: translateY(-8px); }
.enh--mega .enh-drop::before { top: -14px; height: 14px; }
.enh--mega .enh-drop-in { width: var(--enh-wrap); margin: 0 auto; border-radius: 0 0 24px 24px; padding: 32px 36px 36px; box-shadow: 0 30px 60px rgba(28, 28, 40, .12); display: grid; grid-template-columns: 240px 1fr; gap: 36px; }
.enh--mega .enh-drop-head { display: flex; flex-direction: column; gap: 12px; padding: 4px 28px 0 0; box-shadow: inset -1px 0 0 rgba(28, 28, 40, .06); }
.enh--mega .enh-drop-head::after { content: "필요한 메뉴를 바로 찾아가세요"; font-size: 13px; color: var(--enh-mut); line-height: 1.6; order: 1; }
.enh--mega .enh-drop-all { order: 2; }
.enh--mega .enh-drop-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.enh--mega .enh-drop-list a { display: flex; align-items: center; min-height: 56px; padding: 14px 18px; border-radius: 16px; background: var(--enh-pg); font-size: 15px; font-weight: 700; }
.enh--mega .enh-drop-list a::after { content: "→"; margin-left: auto; color: var(--enh-mut); transition: transform .2s var(--enh-ease), color .2s; }
.enh--mega .enh-drop-list a:hover { background: var(--enh-acs); color: var(--enh-ac); }
.enh--mega .enh-drop-list a:hover::after { transform: translateX(3px); color: var(--enh-ac); }

/* ── 9. 전체 화면 메뉴 — 단추 하나, 큰 글씨 메뉴 ── */
.enh--drawer .enh-nav { display: none; }
.enh--drawer .enh-burger { display: inline-flex; }

/* ── 10. 왼쪽 사이드바 — 앱형 세로 내비게이션 ── */
.enh--side { --enh-side: 252px; }
@media (min-width: 1101px) {
  .enh.enh--side { position: fixed; top: 0; left: 0; bottom: 0; width: var(--enh-side); }
  .enh--side .enh-bar { height: 100%; box-shadow: 1px 0 0 rgba(28, 28, 40, .06); overflow-y: auto; }
  .enh--side .enh-in { width: auto; height: auto; min-height: 100%; margin: 0; padding: 28px 18px 22px; flex-direction: column; align-items: stretch; gap: 22px; }
  .enh--side .enh-logo { padding: 0 8px 4px; }
  .enh--side .enh-nav .enh-label { padding: 0 12px 8px; }
  .enh--side .enh-menu { flex-direction: column; align-items: stretch; gap: 2px; }
  .enh--side .enh-link { height: 44px; padding: 0 14px; border-radius: 14px; color: var(--hdr-menu-color, var(--enh-mut)); }
  .enh--side .enh-link:hover { background: var(--enh-tint); color: var(--hdr-menu-hover, var(--enh-fg)); }
  .enh--side .enh-link.is-on { background: var(--enh-acs); color: var(--enh-ac); }
  .enh--side .enh-caret { display: none; }
  .enh--side .enh-drop { position: static; opacity: 1; visibility: visible; transform: none; min-width: 0; }
  .enh--side .enh-drop::before { display: none; }
  .enh--side .enh-drop-in { background: none; box-shadow: none; padding: 2px 0 6px 14px; }
  .enh--side .enh-drop-list a { padding: 8px 14px; font-size: 13px; font-weight: 500; color: var(--enh-mut); }
  .enh--side .enh-drop-list a:hover, .enh--side .enh-drop-list a.is-on { background: none; color: var(--enh-fg); }
  .enh--side .enh-util--side { flex-direction: column; align-items: flex-start; gap: 10px; padding: 0 14px; }
  .enh--side .enh-side-foot { margin-top: auto; display: flex; flex-direction: column; gap: 12px; }
  .enh--side .enh-actions { margin: 0; justify-content: space-between; }
  .enh--side .enh-searchbox { height: 40px; }
  body.hdr-side { padding-left: 252px; }
  html:has(> body.hdr-side) { overflow-x: clip; }   /* 화면 폭(100vw) 요소가 사이드바만큼 오른쪽으로 넘치지 않게 */
}

/* ═══ 수상작 분석 배치 10종 (GDWEB BEST — 2018~2026) + 모든 배치 공통 업그레이드 ═══ */

/* ── 공통: 메뉴 강조 방식 (개발자 › 머리글 › 동작) ── */
@media (min-width: 901px) {
  .enh-hl--underline .enh-nav .enh-link { background: none !important; border-radius: 0; }
  .enh-hl--underline .enh-nav .enh-link::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 4px; height: 2px; border-radius: 2px; background: var(--hdr-menu-hover, var(--enh-ac)); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--enh-ease); }
  .enh-hl--underline .enh-nav .enh-link:hover::after, .enh-hl--underline .enh-nav .enh-link.is-on::after { transform: scaleX(1); }
  .enh-hl--pill .enh-nav .enh-link:hover { background: var(--enh-tint); }
  .enh-hl--pill .enh-nav .enh-link.is-on { background: var(--enh-ink); color: var(--enh-card) !important; }
  .enh-hl--dot .enh-nav .enh-link { background: none !important; }
  .enh-hl--dot .enh-nav .enh-link.is-on::before { content: ""; width: 6px; height: 6px; margin-right: 6px; border-radius: 50%; background: var(--enh-ac); }
  .enh-hl--bold .enh-nav .enh-link { background: none !important; color: var(--hdr-menu-color, var(--enh-mut)); }
  .enh-hl--bold .enh-nav .enh-link:hover, .enh-hl--bold .enh-nav .enh-link.is-on { color: var(--hdr-menu-hover, var(--enh-fg)); font-weight: 800; }
}

/* ── 공통: 첫 화면에서 투명하게 시작 (CJ · SLL · 효성 · 대상 — 첫 화면 영상·사진 위에 얹고, 내리면 흰 바) ── */
.enh.enh--clear { position: fixed; top: 0; left: 0; right: 0; }
.enh.enh--clear.is-hidden { transform: translateY(-100%); }
.enh--clear:not(.is-scrolled) .enh-bar { background: linear-gradient(rgba(10, 10, 16, .38), rgba(10, 10, 16, 0)); box-shadow: none; }
.enh--clear:not(.is-scrolled) { --enh-fg: #fff; --enh-tint: rgba(255, 255, 255, .16); --enh-bg: transparent; --hdr-menu-color: rgba(255, 255, 255, .88); --hdr-menu-hover: #fff; }
.enh--clear:not(.is-scrolled) .enh-util, .enh--clear:not(.is-scrolled) .enh-row0 { color: rgba(255, 255, 255, .78); }
.enh--clear:not(.is-scrolled) .enh-row1, .enh--clear:not(.is-scrolled) .enh-row2, .enh--clear:not(.is-scrolled) .enh-row0 { box-shadow: none; background: none; }
.enh--clear .enh-bar { transition: background-color .35s var(--enh-ease), box-shadow .35s; }
.enh--clear.is-scrolled .enh-bar { background: var(--c-head-bg, var(--c-card, #fff)); }
.enh-logo-light.enh--clear:not(.is-scrolled) .enh-bar .enh-logo img, .enh-logo-light.enh--dark .enh-bar .enh-logo img { filter: brightness(0) invert(1); }
.enh--clear:not(.is-scrolled) .enh-searchbox { background: rgba(255, 255, 255, .16); color: rgba(255, 255, 255, .8); }
.enh--clear:not(.is-scrolled) .enh-searchbox input { color: #fff; }
.enh--clear:not(.is-scrolled) .enh-searchbox input::placeholder { color: rgba(255, 255, 255, .7); }
.enh--clear:not(.is-scrolled) .enh-avatar { box-shadow: none; }

/* ── 11. 오버레이 (CJ · SLL · 효성) — 첫 화면 위 투명, 가운데 메뉴는 밑줄로 ── */
.enh--overlay { --h: var(--hdr-h, 84px); }
.enh--overlay .enh-nav { flex: 1; display: flex; justify-content: center; }
.enh--overlay .enh-link { height: var(--h); padding: 0 18px; border-radius: 0; background: none !important; font-size: var(--hdr-menu-size, 16px); }
.enh--overlay .enh-link::after { content: ""; position: absolute; left: 18px; right: 18px; bottom: calc(var(--h) / 2 - 18px); height: 2px; background: currentColor; transform: scaleX(0); transition: transform .3s var(--enh-ease); }
.enh--overlay .enh-link:hover::after, .enh--overlay .enh-link.is-on::after { transform: scaleX(1); }
.enh--overlay .enh-caret { display: none; }
.enh--overlay .enh-drop { top: calc(100% - 8px); left: 50%; transform: translate(-50%, -6px) scale(.98); transform-origin: top center; }
.enh--overlay .has-drop:hover > .enh-drop, .enh--overlay .has-drop:focus-within > .enh-drop, .enh--overlay .has-drop.is-open > .enh-drop { transform: translate(-50%, 0); }

/* ── 12. 캡슐 (소이정) — 로고만 두고, 오른쪽에 진한 캡슐(주 버튼 · 보조 버튼 · 메뉴) ── */
.enh--capsule { --h: var(--hdr-h, 84px); }
.enh--capsule .enh-bar { background: transparent; box-shadow: none; transition: background-color .3s, -webkit-backdrop-filter .3s, backdrop-filter .3s; }
.enh--capsule.is-scrolled .enh-bar { background: color-mix(in srgb, var(--enh-pg) 70%, transparent); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.enh--capsule .enh-nav { display: none; }
@media (min-width: 901px) {
  .enh--capsule .enh-actions { gap: 4px; padding: 5px; border-radius: 9999px; background: var(--enh-ink); --enh-fg: #fff; --enh-tint: rgba(255, 255, 255, .12); box-shadow: 0 12px 30px rgba(28, 28, 40, .22); }
  .enh--capsule .enh-actions .enh-cta { height: 38px; padding: 0 18px; box-shadow: none; }
  .enh--capsule .enh-actions .enh-btn2 { height: 38px; background: #fff; color: var(--enh-ink); }
  .enh--capsule .enh-actions .enh-signin, .enh--capsule .enh-actions .enh-icon { color: #fff; }
  .enh--capsule .enh-actions .enh-avatar { box-shadow: none; }
  .enh--capsule .enh-burger { display: inline-flex; width: 38px; height: 38px; padding: 0; justify-content: center; border-radius: 9999px; background: #fff; color: var(--enh-ink); }
  .enh--capsule .enh-burger span { display: none; }
}

/* ── 13. 럭셔리 (젠틀몬스터) — 왼쪽 작은 메뉴 · 가운데 큰 로고 · 오른쪽 아이콘 ── */
.enh--luxe .enh-in { --h: var(--hdr-h, 88px); display: grid; grid-template-columns: 1fr auto 1fr; gap: 24px; }
.enh--luxe .enh-nav { justify-self: start; }
.enh--luxe .enh-link { height: 36px; padding: 0 10px; background: none !important; font-size: var(--hdr-menu-size, 13px); font-weight: var(--hdr-menu-weight, 500); color: var(--hdr-menu-color, var(--enh-mut)); letter-spacing: .01em; }
.enh--luxe .enh-link:hover, .enh--luxe .enh-link.is-on { color: var(--hdr-menu-hover, var(--enh-fg)); }
.enh--luxe .enh-caret { display: none; }
.enh--luxe .enh-logo { justify-self: center; font-size: calc(var(--hdr-logo-h, 34px) * .62); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.enh--luxe .enh-logo img { height: var(--hdr-logo-h, 34px); }
.enh--luxe .enh-actions { justify-self: end; margin: 0; }
.enh--luxe .enh-cta { height: 36px; padding: 0 16px; border-radius: 4px; background: var(--enh-ink); box-shadow: none; font-weight: 600; letter-spacing: .02em; }

/* ── 14. 호텔 (파라다이스시티 · 레스케이프) — 윗줄 유틸, 아랫줄 큰 로고 + 대문자 메뉴 + 예약 버튼 ── */
.enh--hotel .enh-row0 { box-shadow: inset 0 -1px 0 rgba(28, 28, 40, .06); }
.enh--hotel .enh-row0 .enh-in { --h: 36px; justify-content: space-between; }
.enh-row0-tag { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--enh-mut); }
.enh--hotel .enh-util--top { gap: 16px; font-size: 12px; letter-spacing: .04em; }
.enh--hotel .enh-row1 { --h: var(--hdr-h, 84px); }
.enh--hotel .enh-logo img { height: var(--hdr-logo-h, 40px); }
.enh--hotel .enh-nav { flex: 1; display: flex; justify-content: flex-end; }
.enh--hotel .enh-link { background: none !important; border-radius: 0; padding: 0 14px; font-size: var(--hdr-menu-size, 13px); font-weight: var(--hdr-menu-weight, 700); letter-spacing: .1em; text-transform: uppercase; }
.enh--hotel .enh-link:hover { color: var(--hdr-menu-hover, var(--enh-ac)); }
.enh--hotel .enh-caret { display: none; }
.enh--hotel .enh-actions { padding-left: 16px; box-shadow: inset 1px 0 0 rgba(28, 28, 40, .1); }
.enh--hotel .enh-cta { border-radius: 2px; height: 44px; padding: 0 22px; letter-spacing: .08em; text-transform: uppercase; font-size: 13px; box-shadow: none; }

/* ── 15. 포털 (티스토리 · 네이버) — 로고 · 밑줄 탭 · 검색 알약 · 진한 버튼을 한 줄에 ── */
.enh--portal { --h: var(--hdr-h, 66px); }
.enh--portal .enh-in { gap: 20px; }
.enh--portal .enh-link { height: var(--h); padding: 0 6px; margin: 0 6px; border-radius: 0; background: none !important; font-size: var(--hdr-menu-size, 15px); color: var(--hdr-menu-color, var(--enh-ink)); }
.enh--portal .enh-link.is-on::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; border-radius: 3px 3px 0 0; background: var(--hdr-menu-hover, var(--enh-ac)); }
.enh--portal .enh-link.is-on { color: var(--hdr-menu-hover, var(--enh-ac)); }
.enh--portal .enh-caret { display: none; }
.enh--portal .enh-drop { top: 100%; }
.enh--portal .enh-search { flex: 0 1 300px; }
.enh--portal .enh-searchbox { height: 40px; background: var(--enh-card); box-shadow: inset 0 0 0 1px rgba(28, 28, 40, .12); }
.enh--portal .enh-cta { background: var(--hdr-btn-bg, var(--enh-ink)); box-shadow: none; }

/* ── 16. 기업 (효성 · 롯데백화점 · 대상) — 넓게 펼친 메뉴 · 검색·언어 · «Family Sites» 외곽선 알약 ── */
.enh--corporate { --h: var(--hdr-h, 84px); }
.enh--corporate .enh-bar { box-shadow: inset 0 -1px 0 rgba(28, 28, 40, .08); }
.enh--corporate .enh-nav { flex: 1; display: flex; justify-content: center; }
.enh--corporate .enh-menu { gap: var(--hdr-menu-gap, clamp(8px, 2.6vw, 40px)); }
.enh--corporate .enh-link { height: var(--h); border-radius: 0; background: none !important; font-size: var(--hdr-menu-size, 16px); font-weight: var(--hdr-menu-weight, 600); }
.enh--corporate .enh-link:hover { color: var(--hdr-menu-hover, var(--enh-ac)); }
.enh--corporate .enh-caret { display: none; }
.enh--corporate .enh-menu > li { position: static; }
.enh--corporate .enh-drop { left: 0; right: 0; top: 100%; min-width: 0; transform: translateY(-6px); }
.enh--corporate .enh-drop::before { display: none; }
.enh--corporate .enh-drop-in { border-radius: 0; box-shadow: 0 24px 40px rgba(28, 28, 40, .08), inset 0 1px 0 rgba(28, 28, 40, .06); padding: 26px max(24px, calc((100% - var(--w, 1240px)) / 2)) 30px; display: grid; grid-template-columns: 200px 1fr; gap: 12px 40px; }
.enh--corporate .enh-drop-head { display: flex; flex-direction: column; gap: 10px; }
.enh--corporate .enh-drop-head .enh-label { font-size: 20px; font-weight: 800; letter-spacing: -.4px; text-transform: none; color: var(--enh-ink); }
.enh--corporate .enh-drop-list { display: flex; flex-wrap: wrap; gap: 4px 28px; }
.enh--corporate .enh-drop-list a { padding: 8px 0; background: none !important; }
.enh--corporate .enh-drop-list a:hover { color: var(--enh-ac); }
.enh--corporate .enh-btn2 { background: none; box-shadow: inset 0 0 0 1px currentColor; height: 34px; font-size: 13px; }

/* ── 17. 포트폴리오 (UL디자인 · 크림) — 아주 가는 작은 메뉴 오른쪽 · 긴 선 메뉴 단추 ── */
.enh--portfolio { --h: var(--hdr-h, 88px); }
.enh--portfolio .enh-bar { background: var(--enh-pg); box-shadow: none; }
.enh--portfolio.is-scrolled .enh-bar { box-shadow: 0 1px 0 rgba(28, 28, 40, .06); }
.enh--portfolio .enh-nav { margin-left: auto; }
.enh--portfolio .enh-link { height: 32px; padding: 0 12px; background: none !important; font-size: var(--hdr-menu-size, 14px); font-weight: var(--hdr-menu-weight, 400); color: var(--hdr-menu-color, var(--enh-mut)); letter-spacing: 0; }
.enh--portfolio .enh-link:hover, .enh--portfolio .enh-link.is-on { color: var(--hdr-menu-hover, var(--enh-fg)); }
.enh--portfolio .enh-caret { display: none; }
.enh--portfolio .enh-cta { background: none; color: var(--enh-ink) !important; box-shadow: inset 0 0 0 1px var(--enh-ink); font-weight: 500; }
@media (min-width: 901px) {
  .enh--portfolio .enh-burger { display: inline-flex; width: 48px; padding: 0; justify-content: flex-end; background: none; }
  .enh--portfolio .enh-burger span { display: none; }
  .enh--portfolio .enh-burger svg { width: 40px; stroke-width: 1.2; }
}

/* ── 18. 볼드 (SLL) — 로고 바로 옆 굵은 대문자 메뉴 ── */
.enh--bold { --h: var(--hdr-h, 80px); }
.enh--bold .enh-in { gap: 34px; }
.enh--bold .enh-logo { font-size: calc(var(--hdr-logo-h, 36px) * .72); font-weight: 900; letter-spacing: -1px; }
.enh--bold .enh-link { background: none !important; padding: 0 12px; font-size: var(--hdr-menu-size, 15px); font-weight: var(--hdr-menu-weight, 800); letter-spacing: .01em; text-transform: uppercase; }
.enh--bold .enh-link:hover, .enh--bold .enh-link.is-on { color: var(--hdr-menu-hover, var(--enh-ac)); }
.enh--bold .enh-caret { display: none; }
.enh--bold .enh-cta { border-radius: 10px; }

/* ── 19. 다크 (윤디자인 · 레스케이프) — 검은 바 · 자간 넓은 대문자 메뉴 ── */
.enh--dark { --hdr-menu-color: rgba(255, 255, 255, .72); --hdr-menu-hover: #fff; --h: var(--hdr-h, 72px); --enh-bg: var(--c-head-bg, #111318); --enh-fg: var(--c-head-text, #fff); --enh-tint: rgba(255, 255, 255, .1); --enh-card: #1a1c23; --enh-ink: #f4f5f8; --enh-acs: rgba(249, 115, 22, .16); }
.enh--dark .enh-bar { box-shadow: none; }
.enh--dark .enh-nav { margin-left: auto; }
.enh--dark .enh-link { background: none !important; font-size: var(--hdr-menu-size, 13px); font-weight: var(--hdr-menu-weight, 600); letter-spacing: .14em; text-transform: uppercase; color: var(--hdr-menu-color, rgba(255, 255, 255, .66)); }
.enh--dark .enh-link:hover, .enh--dark .enh-link.is-on { color: var(--hdr-menu-hover, #fff); }
.enh--dark .enh-caret { display: none; }
.enh--dark .enh-drop-in { box-shadow: 0 24px 50px rgba(0, 0, 0, .4); }
.enh--dark .enh-drop-list a { color: #e5e7ee; }
.enh--dark .enh-avatar { box-shadow: none; }
.enh--dark .enh-searchbox input { color: #fff; }

/* ── 20. 에디토리얼 (디자인피버) — 메뉴를 세로 목록 여러 칸으로 ── */
.enh--editorial { --h: var(--hdr-h, 112px); }
.enh--editorial .enh-in { align-items: center; gap: 56px; }
.enh--editorial .enh-logo { font-size: calc(var(--hdr-logo-h, 40px) * .7); font-weight: 900; letter-spacing: -1.2px; }
.enh--editorial .enh-nav { flex: 1; }
.enh--editorial .enh-menu { display: grid; grid-auto-flow: column; grid-template-rows: repeat(3, auto); justify-content: start; gap: 0 48px; }
.enh--editorial .enh-link { height: 26px; padding: 0; background: none !important; font-size: var(--hdr-menu-size, 12px); font-weight: var(--hdr-menu-weight, 700); letter-spacing: .1em; text-transform: uppercase; color: var(--hdr-menu-color, var(--enh-fg)); }
.enh--editorial .enh-link:hover, .enh--editorial .enh-link.is-on { color: var(--hdr-menu-hover, var(--enh-ac)); }
.enh--editorial .enh-link.is-on::before { content: "—"; margin-right: 6px; }
.enh--editorial .enh-caret { display: none; }
.enh--editorial .enh-drop { top: calc(100% + 4px); }

/* 새 배치 — 좁은 화면 */
@media (max-width: 900px) {
  .enh--luxe .enh-in { display: flex; }
  .enh--hotel .enh-row0 { display: none; }
  .enh--editorial, .enh--portfolio, .enh--corporate, .enh--overlay, .enh--capsule, .enh--hotel .enh-row1, .enh--bold, .enh--dark, .enh--portal { --h: 60px; }
  .enh--capsule .enh-bar, .enh--portfolio .enh-bar { background: var(--enh-bg); }
}

/* ── 전체 메뉴 시트 (모바일 · 전체 화면 메뉴) ── */
.enh-sheet { position: fixed; inset: 0; z-index: 80; background: var(--enh-card); color: var(--enh-ink); overflow-y: auto; overscroll-behavior: contain;
  opacity: 0; visibility: hidden; transition: opacity .28s var(--enh-ease), visibility 0s .28s; }
.enh-toggle:checked ~ .enh-sheet { opacity: 1; visibility: visible; transition-delay: 0s; }
.enh-sheet-in:focus { outline: none; }
.enh-sheet-in { width: min(var(--w, 1240px), calc(100% - 48px)); margin: 0 auto; padding: 18px 0 48px; display: flex; flex-direction: column; gap: 18px; min-height: 100%; }
.enh-sheet-top { display: flex; align-items: center; justify-content: space-between; height: 48px; }
.enh-close { background: var(--enh-pg); }
.enh-sheet-menu { display: grid; gap: 4px 48px; }
.enh-sheet-menu > li { opacity: 0; transform: translateY(10px); transition: opacity .4s var(--enh-ease), transform .5s var(--enh-ease); transition-delay: calc(var(--i, 0) * 40ms + 60ms); }
.enh-toggle:checked ~ .enh-sheet .enh-sheet-menu > li { opacity: 1; transform: none; }
.enh-sheet-link { display: inline-flex; align-items: center; gap: 10px; padding: 8px 0; font-size: 28px; font-weight: 800; letter-spacing: -.8px; transition: color .2s; }
.enh-sheet-link:hover { color: var(--enh-ac); }
.enh-sheet-link.is-on::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--enh-ac); }
.enh-sheet-sub { display: flex; flex-wrap: wrap; gap: 4px 18px; padding: 2px 0 12px; }
.enh-sheet-sub a { font-size: 15px; font-weight: 500; color: var(--enh-mut); padding: 4px 0; transition: color .2s; }
.enh-sheet-sub a:hover, .enh-sheet-sub a.is-on { color: var(--enh-ink); }
.enh-sheet-search .enh-searchbox { height: 52px; }
.enh-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.enh-chips a { padding: 9px 16px; border-radius: 9999px; background: var(--enh-pg); font-size: 14px; font-weight: 600; }
.enh-sheet-foot { margin-top: auto; padding-top: 18px; display: flex; flex-direction: column; gap: 12px; box-shadow: inset 0 1px 0 rgba(28, 28, 40, .06); }
.enh-sheet-me { display: flex; align-items: center; gap: 12px; }
.enh-sheet-me b { display: block; font-size: 15px; }
.enh-sheet-me small { font-size: 12px; color: var(--enh-mut); }
.enh-sheet-row { display: flex; gap: 8px; }
.enh-sheet-row form { margin: 0; display: flex; flex: 1; }
.enh-btn { flex: 1; display: inline-flex; align-items: center; justify-content: center; height: 46px; padding: 0 18px; border: 0; border-radius: 9999px; background: var(--enh-pg); color: var(--enh-ink); font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.enh-cta--block { width: 100%; height: 52px; font-size: 15px; }
html.enh-lock, html.enh-lock body { overflow: hidden; }
@media (min-width: 901px) {
  .enh--drawer .enh-sheet-menu { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px 56px; }
  .enh--drawer .enh-sheet-link { font-size: 40px; letter-spacing: -1.4px; }
  .enh--drawer .enh-sheet-sub { flex-direction: column; gap: 2px; }
  .enh--drawer .enh-sheet-in { padding-top: 24px; gap: 26px; }
  .enh--drawer .enh-sheet-foot { flex-direction: row; align-items: center; justify-content: space-between; }
  .enh--drawer .enh-sheet-foot .enh-cta--block { width: auto; padding: 0 28px; }
  .enh--drawer .enh-sheet-row { flex: none; }
  .enh--drawer .enh-btn { flex: none; }
}

/* ── 좁은 화면: 모든 배치가 같은 모바일 바로 (로고 · 메뉴 단추) ── */
@media (max-width: 900px) {
  .enh { --h: max(60px, calc(var(--hdr-logo-h-m, 0px) + 20px)); }
  .enh-in, .enh--center .enh-row1, .enh--split .enh-in { --h: max(60px, calc(var(--hdr-logo-h-m, 0px) + 20px)); display: flex; gap: 12px; }
  .enh-nav, .enh-row2, .enh-search, .enh-util, .enh-left, .enh-find, .enh-actions > .enh-cta, .enh-actions > .enh-btn2, .enh-actions > .enh-signin, .enh-actions > .enh-me, .enh-actions > .enh-login, .enh-actions > .enh-admin, .enh-actions > .enh-logout-f { display: none !important; }
  .enh-burger { display: inline-flex; }
  .enh .enh-actions { margin-left: auto; padding-left: 0; box-shadow: none; }
  .enh--split .enh-right { margin-left: auto; }
  .enh-logo, .enh--center .enh-logo, .enh--split .enh-logo { font-size: calc(var(--hdr-logo-h-m, 32px) * .6); }
  .enh-logo img, .enh--center .enh-logo img, .enh--split .enh-logo img, .enh--glass .enh-logo img, .enh--center.is-scrolled .enh-logo img { height: var(--hdr-logo-h-m, min(var(--hdr-logo-h, 30px), 36px)); }
  .enh--floating .enh-in { --h: 58px; padding: 0 8px 0 18px; border-radius: 18px; }
  .enh--glass { --h: var(--hdr-h, 52px); }
}
@media (max-width: 1100px) {
  .enh--side .enh-nav, .enh--side .enh-util--side, .enh--side .enh-side-foot .enh-searchbox, .enh--side .enh-actions > .enh-cta, .enh--side .enh-actions > .enh-btn2, .enh--side .enh-actions > .enh-signin, .enh--side .enh-actions > .enh-me, .enh--side .enh-actions > .enh-login { display: none !important; }
  .enh--side .enh-burger { display: inline-flex; }
  .enh--side .enh-in { --h: 60px; }
  .enh--side .enh-side-foot { margin-left: auto; }
}
@media (max-width: 640px) {
  .enh { --enh-wrap: calc(100% - 32px); }
  .enh-sheet-in { width: calc(100% - 32px); }
  .enh-sheet-link { font-size: 24px; }
  .enh-burger span { display: none; }
  .enh-burger { padding: 0; width: 40px; justify-content: center; }
}

/* ── 오른쪽 아이콘·버튼 (로그인 · 장바구니 · 보조 버튼 · 포인트 버튼) ── */
.enh-me { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 2px; border-radius: 9999px; font-size: 14px; font-weight: 600; }
.enh-me:hover .enh-avatar { box-shadow: 0 0 0 3px var(--enh-bg), 0 0 0 5px var(--enh-acs); }
.enh-signin--icon { gap: 6px; }
.enh-signin--icon svg { width: 18px; height: 18px; }
.enh-cart { position: relative; }
.enh-badge { position: absolute; top: 2px; right: 0; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9999px; background: var(--enh-ac); color: #fff; font-size: 11px; font-weight: 800; line-height: 18px; text-align: center; box-shadow: 0 0 0 2px var(--enh-bg); }
.enh-btn2 { display: inline-flex; align-items: center; height: 40px; padding: 0 18px; border-radius: 9999px; background: var(--enh-tint); color: var(--enh-fg); font-size: 14px; font-weight: 700; white-space: nowrap; transition: transform .2s var(--enh-ease), background-color .2s; }
.enh-btn2:hover { transform: translateY(-1px); }
/* 모양 — .enh-cta 를 붙여 배치별 버튼 규칙(.enh--glass .enh-cta 등)보다 앞서게 */
.enh-cta.enh-cta--soft { background: var(--enh-acs); background: color-mix(in srgb, var(--hdr-btn-bg, var(--enh-ac)) 14%, #fff); color: var(--hdr-btn-bg, var(--enh-ac)) !important; box-shadow: none; }
.enh-cta.enh-cta--outline { background: transparent; color: var(--hdr-btn-bg, var(--enh-ac)) !important; box-shadow: inset 0 0 0 1.5px var(--hdr-btn-bg, var(--enh-ac)); }
.enh-cta.enh-cta--dark { background: var(--enh-ink); color: var(--hdr-btn-fg, #fff) !important; box-shadow: 0 8px 18px rgba(28, 28, 40, .18); }
.enh-cta.enh-cta--soft:hover, .enh-cta.enh-cta--outline:hover { filter: none; box-shadow: inset 0 0 0 1.5px var(--hdr-btn-bg, var(--enh-ac)); }
/* 테마 머리글(테마 기본)에 끼운 묶음 */
.enh.enh--inline { position: static; z-index: auto; display: flex; align-items: center; flex: none; }
.enh--inline .enh-actions { margin-left: 0; }
@media (max-width: 900px) {
  .enh--inline .enh-actions > .enh-cta, .enh--inline .enh-actions > .enh-btn2, .enh--inline .enh-actions > .enh-signin, .enh--inline .enh-actions > .enh-me, .enh--inline .enh-actions > .enh-login { display: none !important; }
}

@keyframes enh-pop { from { opacity: 0; transform: translateY(-6px) scale(.98); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .enh *, .enh *::before, .enh *::after { transition: none !important; animation: none !important; }
}

/* 메뉴 배지 (관리자 › 메뉴 › 배지) */
.en-menu-badge { display: inline-flex; align-items: center; height: 17px; margin-left: 4px; padding: 0 6px; border-radius: 999px; background: var(--enh-ac, var(--c-accent, #f97316)); color: #fff; font-size: 10px; font-weight: 800; letter-spacing: .02em; line-height: 1; vertical-align: 2px; }

/* ═══ 모바일 메뉴 (좁은 화면) — WP limud 모바일 머리글 구조 · easyclass-design ═══
 * 위 바 검색·로그인 아이콘(.enh-mo) · 카테고리 탐색형 메뉴 창(.enh-mx) · 하단 탭바(.enm-bar) · 위쪽 검색 팝업(.enm-find)
 * 스크립트가 없으면: 탐색형 창은 모든 메뉴를 차례로 펼쳐 보이고, 검색 칸은 검색 화면으로 이동한다. */
.enh-mo { display: none !important; }
.enh-sheet-list { display: contents; }
.enh-mx { display: none; }

/* 머리글 밖 묶음(하단바·검색 팝업) — .enh 의 색·글꼴 변수만 빌림 */
.enh.enh--aux { position: static; z-index: auto; }
.enm-bar { display: none; }

/* 검색 팝업 — 화면 위쪽(키보드에 가리지 않게) */
.enm-find { position: fixed; inset: 0; z-index: 95; }
.enm-find[hidden] { display: none !important; }
.enm-find-bg { position: absolute; inset: 0; background: rgba(28, 28, 40, .42); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); animation: enm-fade .2s ease; }
.enm-find-box { position: absolute; left: 12px; right: 12px; top: max(12px, env(safe-area-inset-top)); max-width: 560px; margin: 0 auto; padding: 14px 16px 18px; border-radius: 22px; background: var(--enh-card); color: var(--enh-ink); box-shadow: var(--enh-sh2); animation: enh-pop .22s var(--enh-ease); }
.enm-find-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 2px 12px; }
.enm-find .enm-find-head .enh-close { flex: none; margin: 0; padding: 0; border: 0; font: inherit; }
.enm-find-head b { font-size: 17px; font-weight: 700; letter-spacing: -.3px; }
.enm-find .enh-searchbox { height: 52px; background: var(--enh-pg); }
.enm-find .enh-searchbox input { font-size: 16px; }
.enm-find .enh-search-go { width: 40px; height: 40px; margin-left: -10px; }
html.enm-lock, html.enm-lock body { overflow: hidden; }
@keyframes enm-fade { from { opacity: 0; } }

@media (max-width: 900px) {
  /* 위 바: 검색 · 로그인 아이콘 (limud 모바일 바처럼) */
  .enh-mo { display: grid !important; }
  .no-mcart .enh-actions > .enh-cart, .no-mintro .enh-logo-tag.enh-intro { display: none; }   /* 개발자 › 머리글 › 모바일 › 위 바 아이콘 */
  .enh-mo-me { place-items: center; width: 40px; height: 40px; }
  .enh-mo-me .enh-avatar { width: 32px; height: 32px; font-size: 13px; }
  .enh-actions { gap: 2px; }

  /* 탐색형 메뉴 창 */
  .enh-sheet--mx { background: var(--enh-pg); }
  .enh-sheet--mx .enh-sheet-list { display: none; }
  .enh-sheet--mx .enh-mx { display: flex; flex-direction: column; gap: 12px; }
  .enh-sheet--mx .enh-sheet-in { gap: 12px; padding-top: 8px; }
  .enh-sheet--mx .enh-close { background: var(--enh-card); box-shadow: var(--enh-sh); }
  .enh.has-mbar .enh-sheet-in { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
}
@media (min-width: 901px) and (max-width: 1100px) {
  .enh--side .enh-mo { display: grid !important; }
  .enh--side .enh-sheet--mx { background: var(--enh-pg); }
  .enh--side .enh-sheet--mx .enh-sheet-list { display: none; }
  .enh--side .enh-sheet--mx .enh-mx { display: flex; flex-direction: column; gap: 12px; }
}

/* 회원 카드 */
.enh-mx-me { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 14px; border-radius: 20px; background: var(--enh-card); box-shadow: var(--enh-sh); }
.enh-mx-who { flex: 1 1 180px; display: flex; align-items: center; gap: 12px; min-width: 0; }
.enh-mx-who .enh-avatar { width: 44px; height: 44px; font-size: 17px; box-shadow: none; }
.enh-mx-who .enh-avatar svg { width: 20px; height: 20px; }
.enh-mx-who b { display: block; font-size: 15px; font-weight: 700; letter-spacing: -.2px; }
.enh-mx-who small { display: block; margin-top: 2px; font-size: 12px; color: var(--enh-mut); }
.enh-mx-me form { margin: 0; display: flex; }
.enh-mx-acts { display: flex; gap: 8px; flex: 1 1 100%; }
.enh-mx-acts > * { flex: 1; min-width: 0; }
.enh-mx-acts .enh-mx-pill { flex: 1; width: 100%; height: 44px; }
.enh-mx-pill { display: inline-flex; align-items: center; justify-content: center; height: 36px; padding: 0 14px; border: 0; border-radius: 9999px; background: var(--enh-pg); color: var(--enh-ink); font: inherit; font-size: 13px; font-weight: 700; white-space: nowrap; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.enh-mx-pill--dark { background: var(--enh-ink); color: #fff !important; }

/* 검색 · 바로가기 */
.enh-mx-search .enh-searchbox { height: 50px; background: var(--enh-card); box-shadow: var(--enh-sh); }
.enh-mx-quick { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.enh-mx-quick a { display: flex; align-items: center; justify-content: center; min-width: 0; height: 42px; padding: 0 8px; border-radius: 12px; background: var(--enh-card); box-shadow: 0 2px 8px rgba(28, 28, 40, .04); font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: transform .1s; }
.enh-mx-quick a:active { transform: scale(.97); }

/* 탐색: 스크립트 없으면 모든 메뉴를 차례로 · 있으면 왼쪽 메뉴 + 오른쪽 하위 메뉴 */
.enh-mx-ex { border-radius: 22px; background: var(--enh-card); box-shadow: var(--enh-sh); }
.enh-mx-rail { display: none; }
.enh-mx-pane { padding: 18px 18px 10px; }
.enh-mx-pane + .enh-mx-pane { box-shadow: inset 0 1px 0 rgba(28, 28, 40, .06); }
.enh-mx-ex.is-js { display: grid; grid-template-columns: minmax(96px, 34%) minmax(0, 1fr); }
.enh-mx-ex.is-js .enh-mx-rail { display: flex; flex-direction: column; gap: 2px; padding: 8px; border-radius: 22px 0 0 22px; background: var(--enh-pg); background: color-mix(in srgb, var(--enh-pg) 72%, var(--enh-card)); }
.enh-mx-ex.is-js .enh-mx-pane { box-shadow: none; }
.enh-mx-ex.is-js .enh-mx-pane[hidden] { display: none; }
.enh-mx-tab { position: relative; display: flex; align-items: center; min-height: 48px; padding: 10px 10px 10px 18px; border: 0; border-radius: 14px; background: none; color: var(--enh-mut); font: inherit; font-size: 14px; font-weight: 600; line-height: 1.35; text-align: left; word-break: keep-all; overflow-wrap: anywhere; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: background-color .2s, color .2s; }
.enh-mx-tab.has-on { color: var(--enh-ink); }
.enh-mx-tab[aria-selected="true"] { background: var(--enh-card); color: var(--enh-ink); font-weight: 700; box-shadow: 0 4px 12px rgba(28, 28, 40, .06); }
.enh-mx-tab[aria-selected="true"]::before { content: ""; position: absolute; left: 8px; top: 50%; width: 5px; height: 5px; margin-top: -2.5px; border-radius: 50%; background: var(--enh-ac); }
.enh-mx-tab .en-menu-badge { margin-left: 4px; }
.enh-mx-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 32px; margin-bottom: 6px; }
.enh-mx-head h3 { margin: 0; font-size: 17px; font-weight: 700; letter-spacing: -.3px; line-height: 1.3; }
.enh-mx-all { flex: none; display: inline-flex; align-items: center; gap: 2px; height: 30px; padding: 0 8px 0 12px; border-radius: 9999px; background: var(--enh-pg); font-size: 12px; font-weight: 700; }
.enh .enh-mx-all svg { width: 14px; height: 14px; }
.enh-mx-list li a { display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 10px 2px; font-size: 15px; font-weight: 600; line-height: 1.4; box-shadow: inset 0 -1px 0 rgba(28, 28, 40, .06); -webkit-tap-highlight-color: transparent; }
.enh-mx-list li:last-child a { box-shadow: none; }
.enh-mx-list a::after { content: ""; flex: none; width: 7px; height: 7px; margin: 0 4px 0 auto; border: solid var(--enh-mut); border-width: 1.8px 1.8px 0 0; transform: rotate(45deg); opacity: .7; }
.enh-mx-list a.is-on { font-weight: 800; }
.enh-mx-list a.is-on::before { content: "•"; }
.enh-mx-go { display: flex; align-items: center; gap: 12px; margin: 6px 0 8px; padding: 14px; border-radius: 16px; background: var(--enh-pg); }
.enh-mx-go-ic { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--pastel-blue, #d9e8f5); color: var(--enh-ink); }
.enh-mx-go b { display: block; font-size: 15px; font-weight: 700; }
.enh-mx-go small { display: block; margin-top: 2px; font-size: 12px; color: var(--enh-mut); }

/* 플러그인 패널 공용 — 사람 목록(강사별 강의 등) + 이름 찾기 */
.enh-mx-filter { display: block; width: 100%; height: 40px; margin: 2px 0 6px; padding: 0 14px; border: 0; border-radius: 9999px; background: var(--enh-pg); color: var(--enh-ink); font: inherit; font-size: 16px; -webkit-appearance: none; appearance: none; outline: none; }
.enh-mx-filter:focus { box-shadow: 0 0 0 2px var(--enh-ac); }
.enh-mx-people { display: grid; gap: 2px; }
.enh-mx-people a { display: flex; align-items: center; gap: 12px; padding: 8px 2px; border-radius: 12px; -webkit-tap-highlight-color: transparent; }
.enh-mx-people b { display: block; font-size: 14px; font-weight: 600; line-height: 1.35; }
.enh-mx-people small { display: block; font-size: 12px; color: var(--enh-mut); }
.enh-mx-ph { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; overflow: hidden; background: var(--pastel-purple, #e4d6f7); font-size: 15px; font-weight: 800; }
.enh-mx-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.enh-mx-none { padding: 8px 2px 12px; font-size: 13px; color: var(--enh-mut); }

.enh-mx-foot { display: flex; flex-direction: column; gap: 8px; }
.enh-mx-foot .enh-btn { background: var(--enh-card); box-shadow: var(--enh-sh); }

/* 하단 탭바 — 떠 있는 흰 카드 · 회색 아이콘 · 지금 메뉴(메뉴 창이 열리면 «메뉴»)만 오렌지 라운드 사각형 */
@media (max-width: 900px) {
  .enm-bar { display: grid; grid-template-columns: repeat(var(--enm-n, 5), minmax(0, 1fr)); align-items: center; position: fixed; left: 12px; right: 12px; bottom: calc(10px + env(safe-area-inset-bottom)); z-index: 70; max-width: 560px; height: 62px; margin: 0 auto; padding: 0 4px; border-radius: 22px; background: var(--enh-card); box-shadow: 0 8px 24px rgba(28, 28, 40, .12), 0 1px 3px rgba(28, 28, 40, .06); transition: transform .3s var(--enh-ease), opacity .3s; }
  .enm-bar--labels { height: 66px; }
  body:has(.enm-bar) { padding-bottom: calc(86px + env(safe-area-inset-bottom)); }
  html.enm-typing .enm-bar { transform: translateY(140%); opacity: 0; pointer-events: none; }   /* 글을 쓰는 동안(키보드) 비킴 */
  .enh .enm-it { color: var(--enh-mut); }   /* .enh a { color: inherit } 보다 앞서게 */
  .enm-it { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-width: 0; height: 100%; margin: 0; padding: 0; border: 0; background: none; color: var(--enh-mut); font: inherit; cursor: pointer; user-select: none; -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
  .enm-ic { display: grid; place-items: center; width: 46px; height: 44px; border-radius: 14px; transition: background-color .2s, box-shadow .2s, transform .1s; }
  .enm-bar--labels .enm-ic { width: 44px; height: 30px; border-radius: 12px; }
  .enm-it:active .enm-ic { transform: scale(.92); }
  .enh .enm-ic svg { width: 22px; height: 22px; stroke-width: 1.8; }
  .enm-bar--labels .enm-ic svg { width: 20px; height: 20px; }
  .enm-ic img { width: 22px; height: 22px; object-fit: contain; display: block; }
  .enm-av { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--pastel-purple, #e4d6f7); color: var(--enh-ink); font-size: 12px; font-weight: 800; }
  .enm-lb { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10.5px; font-weight: 600; letter-spacing: -.01em; line-height: 1; }
  .enm-it.is-on .enm-ic, html.enh-lock .enm-it[data-enm-menu] .enm-ic { background: var(--enh-ac); color: #fff; box-shadow: 0 6px 14px rgba(249, 115, 22, .35); }
  .enm-it.is-on .enm-lb, html.enh-lock .enm-it[data-enm-menu] .enm-lb { color: var(--enh-ink); font-weight: 700; }
  html.enh-lock .enm-it.is-on:not([data-enm-menu]) .enm-ic { background: none; color: inherit; box-shadow: none; }
  html.enh-lock .enm-it.is-on:not([data-enm-menu]) .enm-lb { color: var(--enh-mut); font-weight: 600; }
  .enm-it:focus-visible { outline: 2px solid var(--enh-ac); outline-offset: -4px; border-radius: 16px; }
  /* 다른 아래쪽 고정 요소(강좌 구매 바 · 알림)는 탭바 위로 */
  body:has(.enm-bar) .kk-float { bottom: calc(88px + env(safe-area-inset-bottom)); }   /* 카카오톡 상담 단추 */
  body:has(.enm-bar) .ecdt-bar { bottom: calc(86px + env(safe-area-inset-bottom)); }
  body:has(.enm-bar) .ecd-toast, body:has(.enm-bar) .cr-toast { bottom: calc(94px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  .enm-find-bg, .enm-find-box { animation: none; }
}

/* 메뉴 항목 패널 ('header.menu_panel') — 아이콘 그리드 카드 (예: 주소가 /boards 인 메뉴 → 게시판 목록). 배치가 꽉 찬 드롭다운이어도 카드로 뜬다 */
.enh .enh-drop.enh-drop--panel { left: -6px; right: auto; top: calc(100% + 10px); min-width: 0; transform: translateY(-6px) scale(.985); transform-origin: top left; }
.enh .enh-drop.enh-drop--panel::before { display: block; top: -14px; height: 14px; }
.enh .has-drop:hover > .enh-drop.enh-drop--panel, .enh .has-drop:focus-within > .enh-drop.enh-drop--panel, .enh .has-drop.is-open > .enh-drop.enh-drop--panel { transform: none; }
.enh .enh-menu > li.has-panel:nth-last-child(-n+2):not(:first-child) > .enh-drop--panel { left: auto; right: -6px; transform-origin: top right; }
.enh .enh-drop--panel > .enh-gm { display: block; width: min(var(--enh-gm-w, 580px), calc(100vw - 48px)); margin: 0; padding: 18px 16px 12px; border-radius: 22px; background: var(--enh-card); color: var(--enh-ink); box-shadow: var(--enh-sh2); }
.enh-gm-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 8px 12px; }
.enh-gm-head .enh-label { margin: 0; font-weight: 700; letter-spacing: .14em; }
.enh-gm-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 6px; }
.enh-gm-item { display: flex; align-items: center; gap: 13px; padding: 10px; border-radius: 14px; color: var(--enh-ink); transition: background-color .15s; }
.enh-gm-item:hover, .enh-gm-item.is-on { background: var(--enh-pg); }
.enh-gm-ico { flex: none; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: #EDEDF5; font-size: 20px; line-height: 1; transition: transform .25s var(--enh-ease); }
.enh-gm-item:hover .enh-gm-ico { transform: translateY(-1px) rotate(-6deg) scale(1.06); }
.enh-gm-ico.t-blue { background: #D9E8F5; } .enh-gm-ico.t-purple { background: #E4D6F7; } .enh-gm-ico.t-pink { background: #F9D2DA; }
.enh-gm-ico.t-mint { background: #D8F3E3; } .enh-gm-ico.t-yellow { background: #FCF0D4; } .enh-gm-ico.t-peach { background: #FEEBDC; }
.enh-gm-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.enh-gm-txt b { font-size: 14px; font-weight: 700; letter-spacing: -.2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.enh-gm-txt small { font-size: 12px; font-weight: 500; color: var(--enh-mut); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.enh-gm-new { margin-left: 4px; display: inline-grid; place-items: center; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 99px; background: var(--enh-ac); color: #fff; font-size: 10px; font-weight: 800; vertical-align: 1px; }
.enh-gm-foot { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; padding: 10px 8px 2px; border-top: 1px solid rgba(28, 28, 40, .06); }
.enh-gm-foot a { font-size: 12.5px; font-weight: 700; color: var(--enh-mut); }
.enh-gm-foot a:hover { color: var(--enh-ac); }
.enh--dark .enh-drop--panel > .enh-gm { box-shadow: 0 24px 50px rgba(0, 0, 0, .4); }
/* 모바일 탐색형 메뉴 창 안: 한 줄 목록 */
.enh-mx-pane .enh-gm { padding: 0; background: none; box-shadow: none; }
.enh-mx-pane .enh-gm-head, .enh-mx-pane .enh-gm-foot { display: none; }
.enh-mx-pane .enh-gm-grid { grid-template-columns: minmax(0, 1fr); gap: 2px; }
.enh-gm-grid > li { min-width: 0; }
.enh-mx-pane .enh-gm-item { padding: 9px 6px; }
.enh-mx-pane .enh-gm-ico { width: 38px; height: 38px; font-size: 18px; border-radius: 12px; }

/* 좁은 화면: 로고가 아이콘 단추를 밀어내 화면이 넓어지지 않게 — 로고가 줄어든다 */
@media (max-width: 720px) {
  .enh-bar .enh-logo, .enh-bar .enh-logo-wrap { flex: 0 1 auto; min-width: 0; overflow: hidden; }
  .enh-bar .enh-logo-wrap .enh-logo { flex-shrink: 1; }
  .enh-logo-tag { width: 22px; height: 22px; padding: 0; gap: 0; justify-content: center; }
  .enh-logo-tag span { display: none; }
  .enh-bar .enh-logo img { width: auto; max-width: 100%; height: var(--hdr-logo-h-m, min(var(--hdr-logo-h, 30px), 36px)); object-fit: contain; object-position: left center; }
}

/* 하위 메뉴 아이콘 그리드 (관리자 › 메뉴 › 하위 메뉴 모양) — 아이콘이 없으면 첫 글자 칩 · 하위가 1~2개면 한 줄 */
.enh-gm-ch { font-size: 16px; font-weight: 800; color: #3b3b52; font-style: normal; }
.enh .enh-drop--panel > .enh-gm.enh-gm--one { width: min(340px, calc(100vw - 48px)); }
.enh-gm--one .enh-gm-grid { grid-template-columns: 1fr; }

/* 원형 아이콘 단추 (관리자 ⚙ · 메시지함 ✉) — 흰 원 · 은은한 그림자 · 떠오르는 hover */
.enh .enh-round { position: relative; width: 40px; height: 40px; background: #fff; color: #1c1c28; box-shadow: 0 2px 10px rgba(28, 28, 40, .10), inset 0 0 0 1px rgba(28, 28, 40, .06);
  transition: transform .25s cubic-bezier(.2, .8, .2, 1), box-shadow .25s, color .2s; }
.enh .enh-round:hover { background: #fff; transform: translateY(-2px); color: var(--enh-ac, #f97316); box-shadow: 0 10px 22px -6px rgba(28, 28, 40, .22), inset 0 0 0 1px rgba(28, 28, 40, .04); }
.enh .enh-round:active { transform: translateY(0) scale(.95); }
.enh .enh-round svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.enh .enh-admin svg { transition: transform .6s cubic-bezier(.2, .8, .2, 1); }
.enh .enh-admin:hover svg { transform: rotate(90deg); }
/* 로그아웃 — 관리자 ⚙ 옆, 같은 둥근 단추 (POST 폼이라 단추 모양만 맞춘다) */
.enh .enh-logout-f { display: contents; }
.enh .enh-logout { border: 0; padding: 0; font: inherit; cursor: pointer; }
.enh .enh-logout svg { transition: transform .3s cubic-bezier(.2, .8, .2, 1); }
.enh .enh-logout:hover svg { transform: translateX(2px); }
.enh-actions { column-gap: 10px; }
