.bj-site-footer-root {
    min-height: 100%;
}

body.bj-site-footer-shell {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
}

body.bj-site-footer-shell > * {
    min-width: 0;
}

body.bj-site-footer-shell > #wrapper0 {
    width: 100%;
}

body.bj-site-footer-shell > .bj-site-footer-shell__ancestor,
body.bj-site-footer-shell .bj-site-footer-shell__ancestor {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    min-height: 0;
    flex: 1 0 auto;
    display: flex;
    flex-direction: column;
}

.bj-compact-footer {
    box-sizing: border-box;
    width: 100%;
    overflow: visible !important;
    flex: 0 0 auto;
    margin-top: auto;
    padding: 0 0 16px !important;
    border-top: 1px solid var(--bj-shell-divider, #f0eeec);
    background: var(
        --bj-footer-surface,
        var(--bj-header-surface, #fdfdfc)
    ) !important;
    color: #20252b;
    font-family: var(--bj-font-family) !important;
}
.bj-compact-footer *,
.bj-compact-footer *::before,
.bj-compact-footer *::after {
    box-sizing: border-box;
    font-family: var(--bj-font-family) !important;
}
.bj-compact-footer__main,
.bj-compact-footer__bottom {
    width: 1000px;
    margin: 0 auto;
}
.bj-compact-footer__main {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) minmax(0, auto) auto;
    grid-template-rows: auto 44px;
    align-items: start;
    gap: 40px;
    row-gap: 8px;
    min-height: 126px;
    padding: 24px 0;
}
.bj-compact-footer__contact {
    grid-row: 1 / 3;
    align-self: center;
}
.bj-compact-footer p {
    margin: 0;
}
/* ⚠ 아래 네 값은 «읽히는 하한»에 맞춘 것이다 (사장님 2026-09-21 목표 「100점」 · 실측 전수 조사).
 * 바탕 #fdfdfc 기준으로 본문 대비 4.5:1 과 글자 13px 이 기준이고, 고치기 전 값은 이랬다.
 *   고객센터 4.38 · 제휴/입사·제휴제안 4.09 · 회사 정보 4.14 — 모두 문턱 바로 아래였고,
 *   1:1 문의·이용약관·개인정보처리방침·사업자 정보는 12px 이었다.
 * 색은 한 단계만 어둡게 했고(#6b7075 = 4.91) 글자는 12→13px 이다 — 자리 차지는 거의 같다.
 * 이 파일은 사이트 전체가 쓴다(common/site_footer.php). 바닥글 한 곳만 고쳤고 다른 규칙은 그대로다. */
.bj-compact-footer__eyebrow {
    margin-bottom: 7px !important;
    color: #6b7075;
    font-size: 14px;
    font-weight: 500;
}
.bj-compact-footer__phone {
    display: inline-block;
    color: #20252b !important;
    font-size: 23px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -.025em;
    text-decoration: none;
}
.bj-compact-footer__hours {
    margin-top: 8px !important;
    color: #71767c !important;
    font-size: 14px;
}
.bj-compact-footer__inquiry {
    -webkit-appearance: none;
    appearance: none;
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    margin-top: 6px;
    padding: 0;
    border: 0;
    background: none;
    color: #565c62;
    font: inherit;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}
.bj-compact-footer__inquiry::after {
    content: "\2192";
    margin-left: 6px;
    transition: transform .18s ease;
}
.bj-compact-footer__inquiry:hover::after,
.bj-compact-footer__inquiry:focus-visible::after {
    transform: translateX(2px);
}
.bj-compact-footer__navigation-row {
    flex-wrap: wrap;
    min-width: 0;
    grid-column: 2;
    grid-row: 2;
    display: flex;
    align-items: center;
    gap: 20px;
    min-height: 44px;
}
.bj-compact-footer__nav {
    flex-wrap: wrap;
    display: flex;
    align-items: center;
    gap: 24px;
    white-space: nowrap;
}
.bj-compact-footer__nav a {
    position: relative;
    color: #565c62 !important;
    font-size: 14px;
    text-decoration: none;
}
.bj-compact-footer__nav a + a::before {
    display: none;
}
.bj-compact-footer__company-nav {
    flex: 0 0 auto;
    white-space: nowrap;
    position: relative;
    display: block;
    min-height: 44px;
}
.bj-compact-footer__company-nav summary,
.bj-compact-footer__company-nav a {
    color: #6b7075 !important;
    font-size: 14px;
    text-decoration: none;
}
.bj-compact-footer__company-nav summary {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    list-style: none;
    cursor: pointer;
}
.bj-compact-footer__company-nav summary::-webkit-details-marker {
    display: none;
}
.bj-compact-footer__company-nav summary::after {
    content: "＋";
    margin-left: 6px;
    color: #989c9f;
}
.bj-compact-footer__company-nav[open] summary::after {
    content: "－";
}
.bj-compact-footer__company-links {
    display: flex;
    flex-direction: column;
    gap: 0;
    position: absolute;
    z-index: 140;
    top: auto;
    bottom: calc(100% + 8px);
    right: 0;
    width: 220px;
    padding: 6px;
    border: 1px solid var(--bj-line, #ece9e6);
    border-radius: 10px;
    background: var(--bj-surface, #fff);
    box-shadow: 0 12px 28px rgba(25,39,49,.12), 0 2px 8px rgba(25,39,49,.05);
}
.bj-compact-footer__company-links a {
    box-sizing: border-box;
    display: flex;
    min-height: 42px;
    align-items: center;
    padding: 0 14px;
    border-radius: var(--bj-control-radius, 8px);
}
.bj-compact-footer__company-links a:hover,
.bj-compact-footer__company-links a:focus-visible {
    background: var(--bj-nav-hover-surface, #f3f1f0);
    outline: none;
}
.bj-compact-footer__brand {
    grid-column: 3;
    grid-row: 1 / 3;
    display: grid;
    grid-template-rows: auto 44px;
    row-gap: 8px;
    align-self: stretch;
    text-align: right;
}
.bj-compact-footer__brand strong {
    display: block;
    color: #2b3137 !important;
    font-size: 14px;
    letter-spacing: .18em;
}
.bj-compact-footer__social {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 0;
}
.bj-compact-footer__social a {
    display: inline-flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    color: #565c62 !important;
    transition: background-color .18s ease, color .18s ease;
}
.bj-compact-footer__social a:hover,
.bj-compact-footer__social a:focus-visible {
    background: var(--bj-soft-surface, #f3f1ed);
    color: #20252b !important;
}
.bj-compact-footer__social svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}
@media (min-width: 761px) {
    .bj-compact-footer__social a {
        justify-content: flex-end;
    }
}
.bj-compact-footer__bottom {
    display: flex;
    min-height: 0;
    align-items: flex-start;
    justify-content: center;
    padding: 14px 0 0;
    border-top: 1px solid var(--bj-shell-divider, #f0eeec);
    color: #73787d;
}
.bj-compact-footer__legal {
    position: relative;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 14px;
}
.bj-compact-footer__legal a,
.bj-compact-footer__business summary {
    text-decoration: none;
    padding: 0;
    border: 0;
    background: none;
    color: #666c72;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}
.bj-compact-footer__legal strong {
    color: #343a40 !important;
    /* 바깥 <a> 는 13px 인데 이 <strong> 만 12px 로 나왔다 — 어딘가 다른 규칙이 크기를 쥐고 있다.
       고객이 읽는 글자라 바깥 링크와 같은 크기여야 한다(전수 조사 20260921). */
    font-size: inherit;
    font-weight: 600;
}
.bj-compact-footer__business summary {
    list-style: none;
}
.bj-compact-footer__business[open] {
    padding-bottom: 64px;
}
.bj-compact-footer__business summary::-webkit-details-marker {
    display: none;
}
.bj-compact-footer__business summary::after {
    content: "＋";
    margin-left: 5px;
    color: #989c9f;
}
.bj-compact-footer__business[open] summary::after {
    content: "－";
}
.bj-compact-footer__business p {
    position: absolute;
    top: 25px;
    left: 50%;
    width: min(780px, calc(100vw - 48px));
    margin: 0 !important;
    transform: translateX(-50%);
    color: #6b7075 !important;
    font-size: 14px;
    line-height: 1.65;
    text-align: center;
}
.bj-compact-footer__business p + p {
    top: 52px;
}
.bj-compact-footer__business:not([open]) > p {
    display: none;
}
@media (max-width: 1040px) {
    .bj-compact-footer__main,
    .bj-compact-footer__bottom {
        width: auto;
        margin: 0 24px;
    }
}
@media (max-width: 760px) {
    .bj-compact-footer {
        margin-top: 24px;
        padding-bottom: max(20px, env(safe-area-inset-bottom)) !important;
        border-top: 1px solid var(--bj-shell-divider, #f0eeec);
        box-shadow: none;
        filter: none;
    }
    body:has([data-mobile-bottom-dock]) .bj-compact-footer {
        padding-bottom: calc(66px + env(safe-area-inset-bottom)) !important;
    }
    .bj-compact-footer__main,
    .bj-compact-footer__bottom {
        margin-right: var(--bj-page-gutter-mobile, 16px);
        margin-left: var(--bj-page-gutter-mobile, 16px);
    }
    .bj-compact-footer__main {
        grid-template-columns: 1fr;
        grid-template-rows: none;
        grid-auto-rows: max-content;
        align-content: start;
        row-gap: 4px;
        min-height: 0;
        padding: 16px 0 8px;
    }
    .bj-compact-footer__contact {
        grid-row: auto;
        display: flex;
        align-items: flex-start;
        flex-direction: column;
        margin: 0;
    }
    .bj-compact-footer__phone {
        display: inline-flex;
        min-height: 36px;
        align-items: center;
    }
    .bj-compact-footer__inquiry {
        min-width: 44px;
        min-height: 36px;
        margin-top: 0;
        padding: 0;
        align-self: flex-start;
    }
    .bj-compact-footer__nav {
        display: contents;
        align-self: start;
        gap: 0;
        margin: 0;
        white-space: nowrap;
    }
    .bj-compact-footer__nav a {
        display: flex;
        min-height: 40px;
        align-items: center;
        justify-content: center;
        padding: 4px 0;
        font-size: 13px;
        text-align: center;
        word-break: keep-all;
    }
    .bj-compact-footer__nav a + a::before {
        display: none;
    }
    .bj-compact-footer__brand {
        grid-column: auto;
        grid-row: auto;
        display: flex;
        align-items: center;
        justify-content: space-between;
        min-height: 40px;
        margin-top: 0;
        text-align: left;
    }
    .bj-compact-footer__social {
        gap: 4px;
        margin-top: 0;
    }
    .bj-compact-footer__social a {
        width: 40px;
        height: 40px;
        border: 0;
    }
    .bj-compact-footer__bottom {
        display: block;
        padding: 6px 0 0;
    }
    .bj-compact-footer__legal {
        display: grid;
        grid-template-columns: repeat(3, auto);
        align-items: start;
        justify-content: center;
        gap: 0 8px;
        text-align: center;
    }
    .bj-compact-footer__legal a,
    .bj-compact-footer__business summary {
        display: inline-flex;
        min-width: 44px;
        min-height: 44px;
        align-items: center;
        justify-content: center;
    }
    .bj-compact-footer__business {
        width: auto;
    }
    .bj-compact-footer__navigation-row {
        grid-column: auto;
        grid-row: auto;
        display: grid;
        grid-template-columns: .9fr .9fr 1.35fr 1.15fr;
        align-items: center;
        gap: 0;
        min-height: 0;
    }
    .bj-compact-footer__company-nav {
        display: block;
        width: auto;
        margin-top: 0;
    }
    .bj-compact-footer__company-nav summary {
        display: flex;
        min-height: 40px;
        justify-content: center;
        padding: 4px 0;
        font-size: 13px;
        white-space: nowrap;
    }
    .bj-compact-footer__company-links {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0;
        position: absolute;
        top: auto;
        right: 0;
        bottom: calc(100% + 8px);
        width: min(220px, calc(100vw - 32px));
        padding: 6px;
    }
    .bj-compact-footer__company-nav a {
        display: flex;
        min-height: 40px;
        align-items: center;
        justify-content: center;
        padding: 4px 0;
        font-size: 13px;
    }
    .bj-compact-footer__business[open] {
        grid-column: 1 / -1;
        width: 100%;
        padding-bottom: 0;
    }
    .bj-compact-footer__business[open] p {
        position: static;
        width: 100%;
        transform: none;
        text-align: center;
    }
    .bj-compact-footer__business p + p {
        margin-top: 4px !important;
    }
}
@media (min-width: 761px) and (max-width: 1023px) {
    .bj-compact-footer__main {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-rows: auto auto;
        gap: 12px 20px;
        min-height: 0;
        padding: 24px 0 20px;
    }
    .bj-compact-footer__contact { grid-column: 1; grid-row: 1; }
    .bj-compact-footer__navigation-row {
        grid-column: 1 / -1;
        grid-row: 2;
        flex-wrap: wrap;
        gap: 12px 20px;
    }
    .bj-compact-footer__nav {
        flex-wrap: wrap;
        gap: 12px 20px;
        white-space: normal;
    }
    .bj-compact-footer__company-nav { flex-shrink: 0; }
    .bj-compact-footer__company-nav summary { white-space: nowrap; }
    .bj-compact-footer__nav a + a::before {
        display: none;
    }
    .bj-compact-footer__brand {
        grid-column: 2;
        grid-row: 1;
    }
    .bj-compact-footer__social {
        margin-top: 0;
    }
}


/* (2026-08-05) 푸터 회사소개 링크의 PC/모바일 목적지 전환.
   03/04/com_intro_main 은 viewport width=1100 인 PC 전용 페이지라 폰에서 넘친다.
   이 파일의 다른 분기와 같은 760px 경계를 쓴다. */
.bj-compact-footer__nav .bj-footer-link--mobile { display: none; }
.bj-compact-footer__company-nav .bj-footer-link--mobile { display: none; }
@media (max-width: 760px) {
    .bj-compact-footer__nav .bj-footer-link--desktop { display: none; }
    .bj-compact-footer__nav .bj-footer-link--mobile { display: flex; }
    .bj-compact-footer__company-nav .bj-footer-link--desktop { display: none; }
    .bj-compact-footer__company-nav .bj-footer-link--mobile { display: flex; }
}
