/* footer:bf-business-plus/business 0.1.0 */
/* 비즈니스 푸터 — 색은 --ft-* 로 한곳에서 (어두운 바탕 · 연한 회색 · 흰 바탕) */
.bfp-ft { --ft-bg: var(--bfp-dark, #111); --ft-fg: rgba(255, 255, 255, .62); --ft-strong: #fff; --ft-line: rgba(255, 255, 255, .12); padding: 72px 0 56px; background: var(--ft-bg); color: var(--ft-fg); font-size: 14px; line-height: 1.7; }
.bfp-ft--soft { --ft-bg: var(--bfp-soft, #f8f9fa); --ft-fg: var(--bfp-muted, #666); --ft-strong: var(--bfp-ink, #111); --ft-line: var(--bfp-line, #e5e7eb); }
.bfp-ft--light { --ft-bg: var(--bfp-bg, #fff); --ft-fg: var(--bfp-muted, #666); --ft-strong: var(--bfp-ink, #111); --ft-line: var(--bfp-line, #e5e7eb); border-top: 1px solid var(--ft-line); }
.bfp-ft a { color: inherit; text-decoration: none; }
.bfp-ft a:hover { color: var(--ft-strong); }
.bfp-ft__sitemap { padding-bottom: 56px; }
.bfp-ft__bottom { display: grid; gap: 28px; }
.bfp-ft__sitemap + .bfp-ft__bottom { padding-top: 32px; border-top: 1px solid var(--ft-line); }
.bfp-ft__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; }
.bfp-ft__links { color: var(--ft-strong); font-size: 14.5px; }
.bfp-ft__links p { margin: 0; }
.bfp-ft__links strong { font-weight: 700; }
.bfp-ft__meta { display: grid; gap: 10px; }
.bfp-ft__meta p { margin: 0; }
.bfp-ft__logo .bf-logo-w { margin: 0 0 6px; font-size: inherit; line-height: 1; }
.bfp-ft__logo .bf-logo-w__link { color: var(--ft-strong); }
.bfp-ft__logo .bf-logo-w__text { color: var(--ft-strong); font-weight: 800; }
.bfp-ft--dark .bfp-ft__logo img { filter: brightness(0) invert(1); opacity: .9; }
.bfp-ft__copy { color: color-mix(in srgb, var(--ft-fg) 75%, transparent); font-size: 13px; }

/* 패밀리 사이트: 누르면 위로 열리는 목록 */
.bfp-ft__family { position: relative; }
.bfp-ft__family-btn { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; min-width: 200px; height: 44px; padding: 0 16px 0 18px; border: 1px solid var(--ft-line); border-radius: 8px; background: transparent; color: var(--ft-strong); font: inherit; font-size: 14px; cursor: pointer; }
.bfp-ft__family-btn .bf-icon { font-size: 18px; transition: transform .2s; }
.bfp-ft__family-btn[aria-expanded="true"] .bf-icon { transform: rotate(180deg); }
.bfp-ft__family-list { position: absolute; right: 0; bottom: calc(100% + 6px); z-index: 20; min-width: 100%; max-height: 300px; margin: 0; padding: 6px; overflow-y: auto; border: 1px solid var(--bfp-line, #e5e7eb); border-radius: 8px; background: var(--bfp-bg, #fff); box-shadow: 0 16px 40px rgba(0, 0, 0, .25); list-style: none; }
.bfp-ft__family-list a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 12px; border-radius: 6px; color: var(--bfp-ink, #111); white-space: nowrap; }
.bfp-ft__family-list a:hover { background: var(--bfp-soft, #f8f9fa); color: var(--bfp-primary); }
.bfp-ft__family-list .bf-icon { opacity: .5; }

/* 떠 있는 단추 */
.bfp-float { position: fixed; right: 24px; bottom: 24px; z-index: 900; display: flex; flex-direction: column; gap: 10px; }
.bfp-float__btn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; padding: 0; border: 1px solid var(--bfp-line, #e5e7eb); border-radius: 50%; background: var(--bfp-bg, #fff); color: var(--bfp-ink, #111) !important; box-shadow: 0 8px 24px rgba(15, 23, 42, .14); font-size: 22px; cursor: pointer; transition: transform .2s, background-color .2s; }
.bfp-float__btn:hover { transform: translateY(-2px); }
.bfp-float__btn.is-primary { border-color: transparent; background: var(--bfp-primary); color: #fff !important; }
.bfp-float__label { position: absolute; right: calc(100% + 10px); top: 50%; padding: 6px 12px; border-radius: 6px; background: #111; color: #fff; font-size: 13px; font-weight: 600; white-space: nowrap; opacity: 0; visibility: hidden; transform: translate(6px, -50%); transition: opacity .2s, transform .2s, visibility .2s; pointer-events: none; }
.bfp-float__btn:hover .bfp-float__label, .bfp-float__btn:focus-visible .bfp-float__label { opacity: 1; visibility: visible; transform: translate(0, -50%); }
/* 맨 위로는 조금 내린 뒤에 나타난다 (theme.js 가 is-shown) */
.bfp-float__top { opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .25s, transform .25s, visibility .25s; }
.bfp-float__top.is-shown { opacity: 1; visibility: visible; transform: none; }
html.bfp-drawer-open .bfp-float { display: none; }
/* 관리자에게 보이는 빌더 "편집" 단추(오른쪽 아래) 위로 비켜 선다 */
body:has(.bf-edit-fab) .bfp-float { bottom: 76px; }

@media (max-width: 768px) {
    .bfp-ft { padding: 48px 0 40px; font-size: 13px; }
    .bfp-ft__sitemap { padding-bottom: 36px; }
    .bfp-ft__bar { flex-direction: column; align-items: flex-start; }
    .bfp-ft__family, .bfp-ft__family-btn { width: 100%; }
    .bfp-float { right: 14px; bottom: 14px; gap: 8px; }
    .bfp-float__btn { width: 46px; height: 46px; font-size: 20px; }
    .bfp-float__label { display: none; }
}

@media print {
    .bfp-float, .bfp-ft__family { display: none; }
}

/* header:bf-business-plus/business 0.1.0 */
/* 비즈니스 헤더 — 색은 --hd-* 로 한곳에서 바꾼다 (첫 배너 위에 겹칠 때 흰 글자 · 투명 바탕) */
.bfp-hd {
    --hd-fg: var(--bfp-ink, #111);
    --hd-sub: var(--bfp-muted, #666);
    --hd-bg: var(--bfp-bg, #fff);
    --hd-line: var(--bfp-line, #e5e7eb);
    position: relative;
    background: var(--hd-bg);
    color: var(--hd-fg);
    transition: background-color .3s, color .3s, border-color .3s;
}
.bfp-hd.has-border { border-bottom: 1px solid var(--hd-line); }
.bfp-hd__row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 24px; height: var(--bfp-hd-h, 80px); }
.bfp-hd__logo { min-width: 0; }
.bfp-hd__logo .bf-logo-w { margin: 0; font-size: inherit; line-height: 1; }
.bfp-hd__logo .bf-logo-w__link { display: inline-flex; align-items: center; color: var(--hd-fg); text-decoration: none; }
.bfp-hd .bf-logo-w__text { color: var(--hd-fg); font-size: var(--bf-logo-fs, 24px); font-weight: 800; letter-spacing: -0.03em; }
.bfp-hd .bf-logo-w__img--dark { display: none; }
.bfp-hd__nav { display: flex; justify-content: center; min-width: 0; height: 100%; }
.bfp-hd--menu-left .bfp-hd__nav { justify-content: flex-start; padding-left: 32px; }
.bfp-hd--menu-right .bfp-hd__nav { justify-content: flex-end; }
.bfp-hd__right { display: flex; align-items: center; gap: 6px; }
.bfp-hd__links { display: flex; align-items: center; margin: 0; padding: 0; list-style: none; }
.bfp-hd__links a, .bfp-hd__member .bf-member-w a { display: inline-flex; align-items: center; height: 40px; padding: 0 10px; color: var(--hd-fg); font-size: 15px; font-weight: 500; text-decoration: none; opacity: .88; }
.bfp-hd__links a:hover, .bfp-hd__member .bf-member-w a:hover { opacity: 1; color: var(--bfp-primary); }
.bfp-hd__member .bf-member-w { display: flex; gap: 0; margin: 0; padding: 0; list-style: none; }
.bfp-hd__icon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--hd-fg); font-size: 22px; cursor: pointer; }
.bfp-hd__icon:hover { background: color-mix(in srgb, currentColor 8%, transparent); }
.bfp-hd__cta { display: inline-flex; align-items: center; height: 40px; margin-left: 10px; padding: 0 20px; border-radius: 999px; background: var(--bfp-primary); color: #fff; font-size: 15px; font-weight: 600; text-decoration: none; white-space: nowrap; transition: background-color .2s; }
.bfp-hd__cta:hover { background: var(--bfp-primary-dark); color: #fff; }
.bfp-hd__menu-btn { display: none; }

/* 검색: 헤더 아래로 펼쳐지는 줄 */
.bfp-hd__search { position: absolute; top: 100%; left: 0; right: 0; border-top: 1px solid var(--bfp-line); background: var(--bfp-bg); box-shadow: 0 16px 30px rgba(15, 23, 42, .08); color: var(--bfp-ink); }
.bfp-hd__search-in { display: flex; align-items: center; gap: 12px; padding-top: 22px; padding-bottom: 22px; }
.bfp-hd__search-box { flex: 1; min-width: 0; }
.bfp-hd__search .bfp-hd__icon { color: var(--bfp-ink); }

/* ---------- 첫 배너 위에 겹치기 (html.bfp-over: 첫 화면 맨 위 블록이 겹치기를 켠 첫 배너일 때 그 블록이 붙인다) */
html.bfp-over .bf-region--header { margin-bottom: calc(var(--bfp-over-h, 80px) * -1); }
/* 화면을 내리지 않았고, 마우스를 올리거나 메뉴 · 검색을 열지 않았을 때만 투명 */
html.bfp-over .bf-region--header:not(.is-stuck) .bfp-hd:not(:hover):not(:focus-within):not(.is-search-open) {
    --hd-fg: #fff;
    --hd-bg: transparent;
    --hd-line: rgba(255, 255, 255, .18);
}
html.bfp-over .bf-region--header:not(.is-stuck) .bfp-hd:not(:hover):not(:focus-within):not(.is-search-open) .bf-logo-w__img--light:has(+ .bf-logo-w__img--dark) { display: none; }
html.bfp-over .bf-region--header:not(.is-stuck) .bfp-hd:not(:hover):not(:focus-within):not(.is-search-open) .bf-logo-w__img--dark { display: inline; }
html.bfp-over .bf-region--header:not(.is-stuck) .bfp-hd:not(:hover):not(:focus-within):not(.is-search-open) .bfp-gnb__link::after { background: #fff; }

/* ---------- 휴대폰 전체 메뉴 (오른쪽에서 열리는 창) */
.bfp-drawer { position: fixed; inset: 0; z-index: 10000; }
.bfp-drawer, .bfp-drawer :is(button, input, select, textarea) { font-family: var(--bf-font, inherit); }
.bfp-drawer[hidden] { display: none; }
.bfp-drawer__backdrop { position: absolute; inset: 0; background: rgba(15, 23, 42, .5); opacity: 0; transition: opacity .2s; }
.bfp-drawer__panel { position: absolute; top: 0; right: 0; bottom: 0; display: flex; flex-direction: column; width: min(90vw, 420px); background: var(--bfp-bg, #fff); color: var(--bfp-ink, #111); box-shadow: -10px 0 30px rgba(0, 0, 0, .18); transform: translateX(100%); transition: transform .25s var(--bfp-ease, ease); }
.bfp-drawer.is-open .bfp-drawer__backdrop { opacity: 1; }
.bfp-drawer.is-open .bfp-drawer__panel { transform: none; }
.bfp-drawer__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-shrink: 0; height: 68px; padding: 0 10px 0 22px; border-bottom: 1px solid var(--bfp-line, #e5e7eb); }
.bfp-drawer__logo { min-width: 0; }
.bfp-drawer__logo .bf-logo-w { margin: 0; }
.bfp-drawer__logo .bf-logo-w__link { color: var(--bfp-ink); text-decoration: none; }
.bfp-drawer__logo .bf-logo-w__text { font-size: 20px !important; font-weight: 800; }
.bfp-drawer__logo img { max-height: 28px; width: auto; }
.bfp-drawer__logo .bf-logo-w__img--dark { display: none; }
.bfp-drawer__close { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; background: none; color: var(--bfp-ink); font-size: 26px; cursor: pointer; }
.bfp-drawer__body { flex: 1; overflow-y: auto; overscroll-behavior: contain; }
.bfp-drawer__nav ul { margin: 0; padding: 0; list-style: none; }
.bfp-drawer__nav > ul > li { border-bottom: 1px solid var(--bfp-line, #e5e7eb); }
.bfp-drawer__top { position: relative; display: flex; align-items: center; width: 100%; min-height: 64px; padding: 0 52px 0 22px; border: 0; background: none; color: var(--bfp-ink); font: inherit; font-size: 18px; font-weight: 700; text-align: left; text-decoration: none; cursor: pointer; }
button.bfp-drawer__top::after { content: ""; position: absolute; top: 0; bottom: 0; right: 22px; width: 9px; height: 9px; margin: auto; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; opacity: .45; transform: translateY(-3px) rotate(45deg); transition: transform .2s; }
li.is-open > button.bfp-drawer__top { color: var(--bfp-primary); }
li.is-open > button.bfp-drawer__top::after { opacity: 1; transform: translateY(2px) rotate(-135deg); }
li.is-current > .bfp-drawer__top { color: var(--bfp-primary); }
.bfp-drawer__nav li > ul { display: none; padding: 0 22px 16px; }
.bfp-drawer__nav li.is-open > ul { display: block; }
.bfp-drawer__nav li > ul a { display: block; padding: 10px 14px; border-radius: 8px; color: var(--bfp-ink-2, #333); font-size: 16px; text-decoration: none; }
.bfp-drawer__nav li > ul a:hover { background: var(--bfp-soft); }
.bfp-drawer__nav li > ul a[aria-current="page"] { background: var(--bfp-primary-soft); color: var(--bfp-primary); font-weight: 700; }
.bfp-drawer__foot { padding: 20px 22px calc(26px + env(safe-area-inset-bottom)); }
.bfp-drawer__links { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0 0 12px; font-size: 15px; }
.bfp-drawer__links a { color: var(--bfp-muted); text-decoration: none; }
.bfp-drawer__member .bf-member-w { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0 0 18px; padding: 0; list-style: none; font-size: 15px; }
.bfp-drawer__member .bf-member-w a { color: var(--bfp-muted); text-decoration: none; }
.bfp-drawer__cta { display: flex; align-items: center; justify-content: center; gap: 6px; height: 54px; border-radius: 999px; background: var(--bfp-primary); color: #fff; font-size: 16px; font-weight: 700; text-decoration: none; }
html.bfp-drawer-open { overflow: hidden; }

/* ---------- 반응형: 화면 폭이 아니라 헤더 폭으로 정한다 (편집기 패널이 열려 헤더가 좁아져도 겹치지 않게)
 * 좁아지는 차례: 작은 링크 숨김 → 로그인 링크 숨김 → 주메뉴 대신 메뉴 단추 → 대표 단추 숨김 */
.bfp-hd { container: bfp-hd / inline-size; }

@container bfp-hd (max-width: 1240px) {
    .bfp-hd__links { display: none; }
}

@container bfp-hd (max-width: 1120px) {
    .bfp-hd__member { display: none; }
}

@container bfp-hd (max-width: 1000px) {
    .bfp-hd__row { grid-template-columns: minmax(0, 1fr) auto; height: min(var(--bfp-hd-h, 80px), 68px); }
    .bfp-hd__nav, .bfp-hd__links, .bfp-hd__member { display: none; }
    .bfp-hd__menu-btn { display: inline-flex; }
}

@container bfp-hd (max-width: 640px) {
    .bfp-hd__cta { display: none; }
    .bfp-hd .bf-logo-w__img { max-height: 28px; width: auto; }
}

/* 겹치기 높이는 헤더 줄 높이를 theme.js 가 재서 알려 준다 (--bfp-over-h) */

/* 컨테이너 질의를 모르는 브라우저 */
@supports not (container-type: inline-size) {
    @media (max-width: 1024px) {
        .bfp-hd__row { grid-template-columns: minmax(0, 1fr) auto; height: min(var(--bfp-hd-h, 80px), 68px); }
        .bfp-hd__nav, .bfp-hd__links, .bfp-hd__member { display: none; }
        .bfp-hd__menu-btn { display: inline-flex; }
    }

    @media (max-width: 768px) {
        .bfp-hd__cta { display: none; }
    }
}

@media print {
    .bfp-hd__right, .bfp-hd__nav { display: none; }
}

/* ---------- 밝은 첫 배너 위에 겹치기: 바탕은 투명, 글자는 진한 색 그대로 (html.bfp-over-light) */
html.bfp-over.bfp-over-light .bf-region--header:not(.is-stuck) .bfp-hd:not(:hover):not(:focus-within):not(.is-search-open) {
    --hd-fg: var(--bfp-ink, #111);
    --hd-line: color-mix(in srgb, var(--bfp-ink, #111) 8%, transparent);
}
html.bfp-over.bfp-over-light .bf-region--header:not(.is-stuck) .bfp-hd:not(:hover):not(:focus-within):not(.is-search-open) .bf-logo-w__img--light:has(+ .bf-logo-w__img--dark) { display: inline; }
html.bfp-over.bfp-over-light .bf-region--header:not(.is-stuck) .bfp-hd:not(:hover):not(:focus-within):not(.is-search-open) .bf-logo-w__img--dark { display: none; }
html.bfp-over.bfp-over-light .bf-region--header:not(.is-stuck) .bfp-hd:not(:hover):not(:focus-within):not(.is-search-open) .bfp-gnb__link::after { background: var(--bfp-primary); }

/* widget:bf-business-plus/mega-menu 0.1.0 */
/* 펼침 주메뉴: 펼친 칸은 헤더(.bfp-hd) 기준으로 화면 폭만큼 놓인다 */
.bfp-gnb { height: 100%; }
.bfp-gnb__list { display: flex; height: 100%; margin: 0; padding: 0; list-style: none; }
.bfp-gnb__item { display: flex; align-items: stretch; }
.bfp-gnb__link { position: relative; display: flex; align-items: center; padding: 0 22px; color: var(--hd-fg, #111); font-size: 17px; font-weight: 600; letter-spacing: -0.01em; text-decoration: none; white-space: nowrap; transition: color .2s; }
.bfp-gnb__link::after { content: ""; position: absolute; left: 22px; right: 22px; bottom: -1px; height: 2px; background: var(--bfp-primary); transform: scaleX(0); transition: transform .25s var(--bfp-ease, ease); }
.bfp-gnb__item:hover > .bfp-gnb__link, .bfp-gnb__item.is-open > .bfp-gnb__link, .bfp-gnb__item.is-current > .bfp-gnb__link { color: var(--bfp-primary); }
.bfp-gnb__item:hover > .bfp-gnb__link::after, .bfp-gnb__item.is-open > .bfp-gnb__link::after { transform: none; }
.bfp-gnb__empty { color: var(--bfp-muted); font-size: 14px; }

/* 펼친 칸 공통 */
.bfp-gnb__panel { visibility: hidden; opacity: 0; color: var(--bfp-ink, #111); transition: opacity .2s, visibility .2s, transform .25s var(--bfp-ease, ease); }
.bfp-gnb__sub { margin: 0; padding: 0; list-style: none; }
.bfp-gnb__sub a { display: flex; align-items: center; gap: 6px; color: var(--bfp-ink-2, #333); text-decoration: none; transition: color .15s; }
.bfp-gnb__sub a .bf-icon { opacity: 0; font-size: 16px; transform: translateX(-6px); transition: opacity .2s, transform .2s; }
.bfp-gnb__sub a:hover, .bfp-gnb__sub a[aria-current="page"] { color: var(--bfp-primary); }
.bfp-gnb__sub a:hover .bf-icon { opacity: 1; transform: none; }

/* each: 올린 메뉴의 하위 메뉴만, 헤더 아래 화면 폭 칸에 크게 */
.bfp-gnb--each .bfp-gnb__panel { position: absolute; top: 100%; left: 0; right: 0; border-top: 1px solid var(--bfp-line, #e5e7eb); background: var(--bfp-bg, #fff); box-shadow: 0 20px 40px rgba(15, 23, 42, .1); transform: translateY(-6px); }
.bfp-gnb--each .bfp-gnb__panel-in { display: grid; grid-template-columns: minmax(200px, 300px) minmax(0, 1fr); gap: 40px; width: 100%; max-width: var(--bf-container-width, 1280px); margin: 0 auto; padding: 44px var(--bf-gutter, 20px) 52px; box-sizing: border-box; }
.bfp-gnb--each .bfp-gnb__panel-in:not(:has(.bfp-gnb__panel-title)) { grid-template-columns: minmax(0, 1fr); }
.bfp-gnb__panel-title { margin: 0; color: var(--bfp-ink, #111); font-size: 28px; font-weight: 700; letter-spacing: -0.03em; line-height: 1.3; }
.bfp-gnb--each .bfp-gnb__sub { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px 32px; }
.bfp-gnb--each .bfp-gnb__sub a { padding: 12px 0; border-bottom: 1px solid var(--bfp-line, #e5e7eb); font-size: 16px; font-weight: 500; }
.bfp-gnb--each .bfp-gnb__sub a span { flex: 1; }
.bfp-gnb--each .bfp-gnb__item:is(:hover, .is-open) > .bfp-gnb__panel { visibility: visible; opacity: 1; transform: none; }

/* all: 모든 메뉴의 하위 메뉴를 각 메뉴 밑에 세로로. 바탕 띠는 헤더 ::after (높이는 theme.js 가 잼) */
.bfp-gnb--all .bfp-gnb__item { position: relative; }
.bfp-gnb--all .bfp-gnb__panel { position: absolute; top: 100%; left: 0; z-index: 1; width: 100%; min-width: 150px; }
.bfp-gnb--all .bfp-gnb__panel-in { padding: 26px 22px 30px; }
.bfp-gnb--all .bfp-gnb__sub a { padding: 7px 0; font-size: 15px; white-space: nowrap; }
.bfp-hd:has(.bfp-gnb--all)::after { content: ""; position: absolute; top: 100%; left: 0; right: 0; height: var(--bfp-mega-h, 0px); border-top: 1px solid var(--bfp-line, #e5e7eb); background: var(--bfp-bg, #fff); box-shadow: 0 20px 40px rgba(15, 23, 42, .1); visibility: hidden; opacity: 0; transition: opacity .2s, visibility .2s; pointer-events: none; }
.bfp-hd:has(.bfp-gnb--all .bfp-gnb__list:hover)::after, .bfp-hd.is-mega::after { visibility: visible; opacity: 1; }
.bfp-hd:has(.bfp-gnb--all .bfp-gnb__list:hover) .bfp-gnb--all .bfp-gnb__panel, .bfp-hd.is-mega .bfp-gnb--all .bfp-gnb__panel { visibility: visible; opacity: 1; }
.bfp-gnb--all .bfp-gnb__item + .bfp-gnb__item .bfp-gnb__panel-in { border-left: 1px solid var(--bfp-line, #e5e7eb); }

/* 헤더(.bfp-hd 컨테이너)가 좁아지면 메뉴 사이를 줄인다 */
@container bfp-hd (max-width: 1320px) {
    .bfp-gnb__link { padding: 0 16px; font-size: 16px; }
    .bfp-gnb__link::after { left: 16px; right: 16px; }
}

@container bfp-hd (max-width: 1180px) {
    .bfp-gnb__link { padding: 0 12px; }
    .bfp-gnb__link::after { left: 12px; right: 12px; }
    .bfp-gnb--each .bfp-gnb__sub { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* widget:bf-business-plus/sitemap 0.1.0 */
/* 전체 메뉴 칸 (푸터): 색은 푸터의 --ft-* 를 따른다 */
.bfp-sitemap { display: grid; grid-template-columns: repeat(var(--bfp-sitemap-cols, 6), minmax(0, 1fr)); gap: 32px 24px; }
.bfp-sitemap__head { display: block; margin-bottom: 18px; color: var(--ft-strong, var(--bfp-ink, #111)); font-size: 15px; font-weight: 700; text-decoration: none; }
.bfp-sitemap__list { margin: 0; padding: 0; list-style: none; }
.bfp-sitemap__list li + li { margin-top: 10px; }
.bfp-sitemap__list a { color: var(--ft-fg, var(--bfp-muted, #666)); font-size: 14px; text-decoration: none; }
.bfp-sitemap a:hover { color: var(--ft-strong, var(--bfp-primary)); }
.bfp-sitemap__empty { color: var(--ft-fg, var(--bfp-muted, #666)); font-size: 13px; }

@media (max-width: 1024px) {
    .bfp-sitemap { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
    .bfp-sitemap { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
    .bfp-sitemap__head { margin-bottom: 10px; }
}

/* widget:bf/search 1.3.1 */
.bf-search-w { position: relative; display: flex; align-items: center; width: 100%; border: 1px solid var(--bf-color-border); border-radius: 999px; background: var(--bf-color-bg); }
.bf-search-w:focus-within { border-color: var(--bf-color-primary); }
.bf-search-w__input { flex: 1; min-width: 0; height: 40px; padding: 0 16px; border: 0; border-radius: 999px 0 0 999px; background: transparent; font-size: .95rem; outline: none; }
.bf-search-w__btn { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 40px; border: 0; border-radius: 0 999px 999px 0; background: transparent; color: var(--bf-color-muted); font-size: 20px; cursor: pointer; }
.bf-search-w__btn:hover { color: var(--bf-color-primary); }

/* 펼침 목록 (실시간 인기 검색어 등) */
.bf-suggest { position: absolute; z-index: 60; top: calc(100% + 6px); left: 0; right: 0; min-width: 260px; padding: 6px 0; border: 1px solid var(--bf-color-border, #e5e7eb); border-radius: 4px; background: var(--bf-color-bg, #fff); color: var(--bf-color-text, #1f2937); box-shadow: 0 10px 28px rgba(15, 23, 42, .12); text-align: left; }
.bf-suggest[hidden] { display: none; }
.bf-suggest__head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 6px 14px 8px; }
.bf-suggest__head strong { font-size: 13px; font-weight: 800; }
.bf-suggest__head small { color: var(--bf-color-muted, #6b7280); font-size: 11.5px; }
.bf-suggest__list { margin: 0; padding: 0; list-style: none; }
.bf-suggest__item { display: flex; align-items: center; gap: 10px; padding: 7px 14px; color: inherit; font-size: 14px; text-decoration: none; }
.bf-suggest__item:hover, .bf-suggest__item.is-active { background: color-mix(in srgb, var(--bf-color-primary, #0ea5e9) 8%, transparent); }
.bf-suggest__n { flex: none; width: 18px; color: var(--bf-color-muted, #6b7280); font-size: 13px; font-weight: 700; text-align: center; }
.bf-suggest__n.is-top { color: var(--bf-color-primary, #0ea5e9); }
.bf-suggest__word { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bf-suggest__ch { flex: none; color: var(--bf-color-muted, #9ca3af); font-size: 11px; font-weight: 700; }
.bf-suggest__ch.is-new { color: #10b981; }
.bf-suggest__ch.is-up { color: #ef4444; }
.bf-suggest__ch.is-down { color: #3b82f6; }

/* 검색창 안 왼쪽: 실시간 인기 검색어가 몇 초마다 위로 넘어간다 (누르면 그 검색어로 검색) */
.bf-search-w__ticker { position: relative; flex: none; display: flex; align-items: center; gap: 8px; width: 180px; height: 40px; padding: 0 12px 0 16px; overflow: hidden; }
.bf-search-w__ticker::after { content: ""; position: absolute; top: 25%; right: 0; bottom: 25%; width: 1px; background: var(--bf-color-border, #e5e7eb); }
.bf-search-w__ticker-label { flex: none; padding: 1px 5px; border-radius: 2px; background: color-mix(in srgb, var(--bf-color-primary, #0ea5e9) 12%, transparent); color: var(--bf-color-primary, #0ea5e9); font-size: 11px; font-weight: 800; line-height: 1.5; }
.bf-search-w__ticker-list { position: relative; flex: 1; min-width: 0; height: 100%; margin: 0; padding: 0; list-style: none; }
.bf-search-w__ticker-list li { position: absolute; inset: 0; display: flex; align-items: center; transform: translateY(100%); opacity: 0; transition: transform .45s ease, opacity .45s ease; }
.bf-search-w__ticker-list li.is-on { transform: none; opacity: 1; }
.bf-search-w__ticker-list li.is-out { transform: translateY(-100%); opacity: 0; }
.bf-search-w__ticker-list li:first-child { transform: none; opacity: 1; }
.bf-search-w__ticker-list.is-ready li:first-child:not(.is-on) { transform: translateY(100%); opacity: 0; }
.bf-search-w__ticker-list.is-ready li.is-out:first-child { transform: translateY(-100%); }
.bf-search-w__ticker a { display: flex; align-items: center; gap: 6px; min-width: 0; width: 100%; color: inherit; font-size: 13.5px; text-decoration: none; }
.bf-search-w__ticker a:hover span { text-decoration: underline; }
.bf-search-w__ticker b { flex: none; color: var(--bf-color-primary, #0ea5e9); font-weight: 800; }
.bf-search-w__ticker span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bf-search-w__ticker em { flex: none; font-size: 9px; font-style: normal; font-weight: 800; }
.bf-search-w__ticker em.is-new { color: #10b981; }
.bf-search-w__ticker em.is-up { color: #ef4444; }
.bf-search-w__ticker em.is-down { color: #3b82f6; }
@media (prefers-reduced-motion: reduce) {
    .bf-search-w__ticker-list li { transition: none; }
}
/* 좁은 화면에서는 검색어 칸을 넓게 쓰도록 숨긴다 */
@media (max-width: 768px) {
    .bf-search-w__ticker { display: none; }
}

/* widget:bf/site-logo 1.1.0 */
.bf-logo-w { margin: 0; font-size: inherit; line-height: 1; min-width: 0; }
.bf-logo-w__link { display: inline-flex; align-items: center; max-width: 100%; color: var(--bf-color-text); text-decoration: none; }
.bf-logo-w__link img { width: auto; max-width: 100%; vertical-align: middle; }
/* 어두운 화면용 로고: 테마가 어두운 화면일 때 html 에 data-bf-dark 또는 자기 표시를 붙이고 바꿔 보여 준다 */
.bf-logo-w__img--dark { display: none; }
html[data-bf-dark] .bf-logo-w__img--light { display: none; }
html[data-bf-dark] .bf-logo-w__img--dark { display: inline; }
.bf-logo-w__text { font-size: var(--bf-logo-fs, 22px); font-weight: 800; letter-spacing: -0.02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* 모바일: 긴 사이트 이름이 옆 메뉴 버튼을 가리지 않도록 줄이고 말줄임 */
@media (max-width: 768px) {
    .bf-logo-w__text { font-size: min(var(--bf-logo-fs, 22px), 18px); }
}

