/* 페이지·바깥 모달은 스크롤하지 않고 공식 위젯이 결과 스크롤을 소유한다. */
.gb-postcode {box-sizing:border-box;width:min(620px,calc(100% - 24px));height:min(760px,calc(100dvh - 24px));max-width:none;max-height:none;margin:auto;padding:0;border:1px solid #bac4cf;border-radius:16px;background:#fff;color:#2f3540;font-family:inherit;overflow:hidden;box-shadow:0 16px 60px #14253b55}
.gb-postcode[open] {display:grid;grid-template-rows:auto auto minmax(0,1fr)}
.gb-postcode::backdrop {background:#14253b99}
.gb-postcode-head {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid #d9e0e7}
.gb-postcode-head h2 {margin:0;font-size:1.2rem;line-height:1.4;color:#2f3540}
.gb-postcode button {font:inherit;cursor:pointer;min-height:44px;border-radius:8px;padding:8px 16px;background:#fff;color:#2d5290;border:1px solid #aec4dd;flex:none}
.gb-postcode button:focus-visible {outline:3px solid #a36500;outline-offset:2px}
.gb-postcode-notice {display:flex;align-items:center;gap:8px;padding:8px 16px;background:#f4f8fc}
.gb-postcode-notice p {margin:0;font-size:.875rem;line-height:1.45;overflow-wrap:anywhere}
.gb-postcode-frame {min-width:0;min-height:0;overflow:hidden}
.gb-postcode-frame>div,.gb-postcode-frame iframe {max-width:100%;height:100%!important;min-height:0!important}
.gb-postcode button[hidden] {display:none!important}
.gb-postcode-boundary {position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}
@media(max-width:420px) {
  .gb-postcode {width:calc(100% - 12px);height:calc(100dvh - 12px);border-radius:12px}
  .gb-postcode-head {padding:8px 12px}
  .gb-postcode-notice {padding:8px 12px;flex-wrap:wrap}
}
