/* 구매대행 운영 방침 메인 팝업 (2026-11-02) — 모든 규칙은 #btPolicyPop 안으로 한정(전역 CSS 오염 없음).
   html.btpp-lock 만 예외: 팝업 표시 중 배경 스크롤 잠금(닫으면 클래스 제거 = 원상복구). */
html.btpp-lock, html.btpp-lock body { overflow: hidden !important; overscroll-behavior: none; }

#btPolicyPop {
  /* body 최상위에 붙는 fixed 레이어. 헤더(sticky/fixed)·채팅 위젯(2147483002)보다 위 */
  position: fixed; top: 0; left: 0; right: 0; bottom: 0;
  width: 100%; height: 100%;
  height: var(--btpp-vh, 100dvh);
  z-index: 2147483600;
  display: flex; align-items: center; justify-content: center;
  box-sizing: border-box;
  /* 노치·홈 인디케이터·Safari/Android 브라우저 UI를 피하는 여백 */
  padding: max(16px, env(safe-area-inset-top, 0px)) max(12px, env(safe-area-inset-right, 0px))
           max(16px, env(safe-area-inset-bottom, 0px)) max(12px, env(safe-area-inset-left, 0px));
  margin: 0; transform: none; filter: none;
  font-family: -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Pretendard", "Noto Sans KR", "Malgun Gothic", sans-serif;
  -webkit-text-size-adjust: 100%; text-size-adjust: 100%;
  color: #111; text-align: left; line-height: 1.5;
  overscroll-behavior: contain;
}
#btPolicyPop[hidden] { display: none !important; }
#btPolicyPop *, #btPolicyPop *::before, #btPolicyPop *::after { box-sizing: border-box; }

#btPolicyPop .btpp__dim { position: absolute; inset: 0; background: rgba(0, 0, 0, .6); }

#btPolicyPop .btpp__box {
  position: relative;
  display: flex; flex-direction: column;
  width: 100%; max-width: 640px;
  max-height: 100%;               /* 오버레이 내부(여백 제외) 높이를 넘지 않음 */
  min-height: 0;
  background: #fff; color: #111;
  border-radius: 16px; overflow: hidden;
  box-shadow: 0 24px 64px rgba(0, 0, 0, .35);
  outline: none;
}

/* 제목 영역 — 고정 */
#btPolicyPop .btpp__head {
  flex: 0 0 auto; position: relative;
  padding: 18px 60px 14px 22px;
  border-bottom: 1px solid #e6e6e6; background: #fff;
}
#btPolicyPop .btpp__title {
  margin: 0; padding: 0; border: 0;
  font-size: 19px; font-weight: 800; line-height: 1.4; letter-spacing: -.02em; color: #111;
  word-break: keep-all; overflow-wrap: anywhere;
}
#btPolicyPop .btpp__sub { margin: 4px 0 0; padding: 0; font-size: 14px; line-height: 1.45; color: #111; word-break: keep-all; }
#btPolicyPop .btpp__x {
  position: absolute; top: 6px; right: 6px;
  width: 48px; height: 48px; min-width: 44px; min-height: 44px;
  margin: 0; padding: 0; border: 0; border-radius: 12px;
  background: transparent; color: #111; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  -webkit-appearance: none; appearance: none; box-shadow: none;
}
#btPolicyPop .btpp__x:hover { background: #f2f2f2; }

/* 본문 — 이 영역만 스크롤 */
#btPolicyPop .btpp__body {
  flex: 1 1 auto; min-height: 0;
  overflow-y: auto; overflow-x: hidden;
  -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
  padding: 16px 22px 20px;
  font-size: 15px; line-height: 1.7; color: #111; background: #fff;
  word-break: keep-all; overflow-wrap: anywhere;
}
#btPolicyPop .btpp__body p { margin: 0 0 10px; padding: 0; font-size: inherit; line-height: inherit; color: #111; }
#btPolicyPop .btpp__body h3 {
  margin: 22px 0 8px; padding: 0; border: 0;
  font-size: 16px; font-weight: 800; line-height: 1.45; color: #111; letter-spacing: -.01em;
}
#btPolicyPop .btpp__body ul { margin: 0 0 10px; padding: 0 0 0 20px; list-style: disc; }
#btPolicyPop .btpp__body li { margin: 0 0 4px; padding: 0; list-style: disc; color: #111; }
#btPolicyPop .btpp__body strong { font-weight: 800; color: #000; }
#btPolicyPop .btpp__body hr { margin: 22px 0 0; border: 0; border-top: 1px solid #e0e0e0; height: 0; }
#btPolicyPop .btpp__sign { margin-top: 18px !important; margin-bottom: 0 !important; }

/* 하단 버튼 — 고정 */
#btPolicyPop .btpp__foot {
  flex: 0 0 auto;
  display: grid; grid-template-columns: 1.5fr 1fr; gap: 8px;
  padding: 12px 16px; border-top: 1px solid #e6e6e6; background: #fff;
}
#btPolicyPop .btpp__btn {
  min-height: 48px; margin: 0; padding: 0 10px;
  border-radius: 12px; cursor: pointer;
  font: inherit; font-size: 15px; font-weight: 700; line-height: 1.2;
  -webkit-appearance: none; appearance: none; box-shadow: none;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
#btPolicyPop .btpp__btn--hide { background: #fff; color: #111; border: 1px solid #c8c8c8; }
#btPolicyPop .btpp__btn--hide:hover { background: #f5f5f5; }
#btPolicyPop .btpp__btn--close { background: #111; color: #fff; border: 1px solid #111; }
#btPolicyPop .btpp__btn--close:hover { background: #000; }

#btPolicyPop .btpp__x:focus-visible,
#btPolicyPop .btpp__btn:focus-visible,
#btPolicyPop .btpp__body:focus-visible { outline: 3px solid #2f6fed; outline-offset: 2px; }
#btPolicyPop .btpp__body:focus-visible { outline-offset: -3px; }

/* 모바일 */
@media (max-width: 480px) {
  #btPolicyPop .btpp__box { border-radius: 14px; }
  #btPolicyPop .btpp__head { padding: 14px 54px 12px 16px; }
  #btPolicyPop .btpp__title { font-size: 17px; }
  #btPolicyPop .btpp__sub { font-size: 13px; }
  #btPolicyPop .btpp__x { top: 4px; right: 4px; }
  #btPolicyPop .btpp__body { padding: 14px 16px 18px; font-size: 14.5px; }
  #btPolicyPop .btpp__body h3 { font-size: 15.5px; }
  #btPolicyPop .btpp__foot { padding: 10px 12px; gap: 6px; }
  #btPolicyPop .btpp__btn { font-size: 14px; padding: 0 6px; }
}
@media (max-width: 340px) {
  #btPolicyPop .btpp__btn { font-size: 13px; }
}
/* 가로 모드 등 낮은 화면: 제목·버튼을 줄여 본문 공간 확보 */
@media (max-height: 520px) {
  #btPolicyPop { padding-top: max(8px, env(safe-area-inset-top, 0px)); padding-bottom: max(8px, env(safe-area-inset-bottom, 0px)); }
  #btPolicyPop .btpp__head { padding-top: 10px; padding-bottom: 8px; }
  #btPolicyPop .btpp__title { font-size: 16px; }
  #btPolicyPop .btpp__sub { margin-top: 2px; font-size: 12.5px; }
  #btPolicyPop .btpp__x { top: 0; right: 4px; }
  #btPolicyPop .btpp__foot { padding-top: 6px; padding-bottom: 6px; }
  #btPolicyPop .btpp__btn { min-height: 44px; }
}
@media (prefers-reduced-motion: no-preference) {
  #btPolicyPop .btpp__box { animation: btppIn .18s ease-out; }
  @keyframes btppIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
}
