/* 프레임 단일 소스 — 발판(푸터)·탭바 (2026-08-26 대표 지시: footer/dock 는 한 코드).
 *
 * 이 파일이 44개 전 페이지의 푸터·탭바 규칙의 유일한 집이다.
 *   - 배포: assets/frame/foot.html 파셜 첫 줄의 <link> 를 sync_frame.py 가
 *     모든 페이지에 도장 찍는다. 페이지 <head> 를 손댈 필요가 없다.
 *   - 본문 링크라 <head> 의 home-jeombang.css / jeombang-core.css 보다 뒤에 서고,
 *     같은 특이도에서는 뒤가 이기므로 옛 사본이 남아 있어도 이 파일이 이긴다.
 *   - 값의 출처는 메인(2026-08-25 대표 확정 화면) 그대로. 색은 theme.css 토큰만 쓴다.
 *   - 푸터·탭바를 고칠 일이 있으면 여기만 고친다. home-jeombang.css 와
 *     jeombang-core.css 에 다시 적으면 그 순간 두 벌로 갈라진다.
 * 낙관 줄·연락처 줄·KB 마크는 markup·옷 모두 shell.js 소유라 여기 없다.
 */
@import url("/assets/css/theme.css");

:root {
    --fr-tabh: 74px;
    --fr-rule: 3px;
}

/* ── 발판(푸터) ── */
.foot {
    background: var(--jb-paper-3);
    border-top: var(--fr-rule) solid var(--jb-wood);
    /* 바닥 여유는 여기 한 곳 — 탭바(74px)+안전영역+빨간 + 버튼이 솟는 몫. */
    padding: 24px 18px calc(var(--fr-tabh) + env(safe-area-inset-bottom, 0px) + 42px);
    font-size: 15px;
    color: var(--jb-ink-soft);
    text-align: left;
}
.foot p { margin: 3px 0; line-height: 1.7; word-break: keep-all; }
.foot .fl { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 0 10px; margin: 0 0 10px; }
.foot .fl a {
    display: inline-flex; align-items: center; min-height: 44px; padding: 0 8px;
    color: var(--jb-ink); font-weight: 500;
}
.foot .fl a:first-child { padding-left: 0; }

/* shell.js 가 주입하는 낙관 줄·연락처 줄 */
.foot [data-footer-seal] { margin-top: 8px; font-size: 15px; color: var(--jb-ink-soft); }
.foot .footer-seal {
    display: flex; align-items: center; justify-content: flex-start; gap: 8px;
    margin: 2px 0 10px; font-size: 16px; color: var(--jb-ink);
}
.foot .footer-seal img { display: none; }
.foot .footer-seal b { font-family: "Gaegu", cursive; font-size: 22px; }
.foot .footer-contact { margin-top: 10px; }
.foot .footer-contact a { color: var(--jb-ink-soft); text-decoration: none; }
.foot .footer-contact span { margin: 0 5px; }

/* ── 탭바 ── */
.tabs {
    position: fixed; left: 50%; transform: translateX(-50%); bottom: 0; z-index: 20;
    width: 100%; max-width: 620px;
    display: grid; grid-template-columns: repeat(5, 1fr); align-items: center;
    height: calc(var(--fr-tabh) + env(safe-area-inset-bottom, 0px));
    padding-bottom: env(safe-area-inset-bottom, 0px);
    background: var(--jb-paper);
    border-top: var(--fr-rule) solid var(--jb-wood);
    box-shadow: 0 -2px 0 rgb(255 255 255 / 60%) inset, 0 -12px 26px rgb(94 66 39 / 20%);
}
.tab {
    position: relative; display: flex; flex-direction: column; align-items: center;
    justify-content: center; gap: 3px; height: var(--fr-tabh);
    font-size: 15px; color: var(--jb-ink-soft);
}
.tab::before { content: ""; position: absolute; inset: 7px 6px 5px; border-radius: 12px; transition: .14s; }
.tab.on::before {
    background: var(--jb-mint-light); border: 1px solid var(--jb-mint);
    box-shadow: inset 0 2px 0 rgb(255 255 255 / 70%), 0 3px 0 rgb(139 94 60 / 24%);
}
.tab.on { color: var(--jb-ink); font-weight: 700; }
.tab svg, .tab span { position: relative; }
.tab svg { width: 21px; height: 21px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.tab:active { transform: translateY(2px); }

/* 무료 버블 — 간격·규격은 전 페이지 공통값(2026-08-25 대표 지적) */
.tab-mid { height: var(--fr-tabh); justify-content: flex-end; padding-bottom: 6px; }
.tab-mid .bub {
    position: absolute; top: -24px; left: 50%; transform: translateX(-50%);
    width: 54px; height: 54px; border-radius: 50%;
    background: linear-gradient(150deg, var(--jb-red), var(--jb-x01));
    border: 2px solid var(--jb-red-deep); color: var(--c-white);
    display: flex; align-items: center; justify-content: center;
    box-shadow: inset 0 2px 0 rgb(255 255 255 / 40%), 0 5px 0 var(--jb-red-deep), 0 12px 22px rgb(0 0 0 / 26%);
}
.tab-mid .bub svg { width: 26px; height: 26px; }
.tab-mid span { font-size: 15px; font-weight: 700; color: var(--jb-red); }
.tab-mid::before { display: none; }
.tab-mid:active .bub {
    transform: translate(-50%, 4px);
    box-shadow: inset 0 2px 0 rgb(255 255 255 / 40%), 0 1px 0 var(--jb-red-deep);
}
