/**
 * VCB 새 디자인(ND) — 장바구니·결제 화면
 *
 * 새 쇼트코드([vcb_cart_page] / [vcb_checkout_page])가 그려지는 페이지에서만 로드된다.
 * 그 페이지에서는 기존 vcb-main / vcb-cart / vcb-shipping / vcb-shortcodes CSS 가 빠지므로,
 * 기존 렌더 함수가 내는 마크업(.vcb-*, 우커머스 .form-row·#payment)의 모양도 이 파일이 맡는다.
 *
 * 규칙
 *  - 화면 안 요소는 #vcbn 으로 시작한다(테마·Breakdance 우커머스 CSS 보다 우선하되 !important 남발 방지).
 *  - 팝업·토스트는 body 로 옮겨지므로 .vcbn-modal / .vcbn-toast 로 시작한다.
 *  - 글꼴은 지정하지 않는다(사이트 글꼴 상속). 입력칸 글자는 16px — iOS 가 확대하지 않는 최소 크기.
 *  - 강조색(#FA5250)은 할인 금액과 결제 버튼에만.
 */

/* ═════════════ 바탕 ═════════════ */
#vcbn {
  --p: #fa5250;
  --tx: #16181d;
  --mu: #767c88;
  --mu2: #a0a6b1;
  --bd: #e3e6ec;
  --bg: #f4f5f7;
  --ok: #1b8a5a;
  position: relative;
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--tx);
  font-size: 14px;
  line-height: 1.45;
  letter-spacing: -0.01em;
  text-align: left;
}
#vcbn *,
#vcbn *::before,
#vcbn *::after {
  box-sizing: border-box;
}
#vcbn [hidden] {
  display: none !important;
}
#vcbn button {
  font-family: inherit;
  letter-spacing: inherit;
  text-transform: none;
  box-shadow: none;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
#vcbn button:disabled {
  cursor: default;
}
#vcbn a {
  color: inherit;
}
#vcbn.is-updating .vcbn-sum,
#vcbn.is-updating .vcbn-discount {
  opacity: 0.6;
  transition: opacity 0.15s;
}

/* 엠샵 한국형 필드의 대체(영문) 칸 — 기존 CSS 와 같은 규칙 (없으면 같은 칸이 두 번 보인다) */
#vcbn .mshop-disable-kr {
  display: none !important;
}

/* ═════════════ 섹션 · 제목 ═════════════ */
#vcbn .vcbn-sec {
  margin: 8px 0 0;
  padding: 18px 16px;
  background: #fff;
}
#vcbn > .vcbn-sec:first-of-type {
  margin-top: 0;
}
/* v2.27.1: 장바구니 섹션 좌우 여백 15px (사용자 지정 — 결제 화면도 15px. 주문 완료 화면은 위 기본값 16px 그대로). */
#vcbn.vcbn-cart .vcbn-sec {
  padding-right: 15px;
  padding-left: 15px;
}
#vcbn .vcbn-h {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 12px;
}
#vcbn .vcbn-h h3 {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.3;
  color: var(--tx);
}
#vcbn .vcbn-h h3 small,
#vcbn .vcbn-h-note {
  font-size: 12px;
  font-weight: 600;
  color: var(--mu);
}
#vcbn .vcbn-ac {
  flex: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--mu);
}
#vcbn .vcbn-ac:disabled {
  color: var(--mu2);
}
#vcbn .vcbn-tag {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  background: #eaf6f0;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0;
  color: var(--ok);
}

/* ═════════════ 버튼 ═════════════ */
#vcbn .vcbn-btn,
.vcbn-modal .vcbn-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 46px;
  margin: 0;
  padding: 0 16px;
  border: 1px solid #e3e6ec;
  border-radius: 10px;
  background: #fff;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  text-decoration: none;
  color: #16181d;
  box-shadow: none;
  cursor: pointer;
}
#vcbn .vcbn-btn-dark,
.vcbn-modal .vcbn-btn-dark {
  border-color: #16181d;
  background: #16181d;
  color: #fff;
}
#vcbn .vcbn-btn-sm {
  height: 40px;
  padding: 0 12px;
  font-size: 13px;
}
#vcbn .vcbn-btn:disabled {
  opacity: 0.5;
}
#vcbn .vcbn-paybtn,
#vcbn #place_order {
  display: flex;
  align-items: center;
  justify-content: center;
  float: none;
  width: 100%;
  height: 52px;
  margin: 0;
  padding: 0 16px;
  border: 0;
  border-radius: 12px;
  background: var(--p);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.2;
  color: #fff;
}
#vcbn .vcbn-paybtn:disabled,
#vcbn #place_order:disabled {
  opacity: 0.6;
}

/* ═════════════ 체크박스 ═════════════ */
/* 이 화면이 직접 그리는 체크박스만 바꾼다 — 사은품·결제수단 상자 안의 체크박스는 각 플러그인 모양 그대로 둔다. */
#vcbn .vcbn-check input[type="checkbox"],
#vcbn .vcb-item-checkbox input[type="checkbox"],
#vcbn #payment .pafw_save_bacs_receipt_info input[type="checkbox"],
#vcbn #payment .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] {
  position: relative;
  flex: none;
  width: 20px;
  height: 20px;
  margin: 1px 0 0;
  padding: 0;
  border: 1.5px solid #c9ceda;
  border-radius: 6px;
  background: #fff;
  vertical-align: top;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
#vcbn .vcbn-check input[type="checkbox"]:checked,
#vcbn .vcb-item-checkbox input[type="checkbox"]:checked,
#vcbn #payment .pafw_save_bacs_receipt_info input[type="checkbox"]:checked,
#vcbn #payment .woocommerce-terms-and-conditions-wrapper input[type="checkbox"]:checked {
  border-color: var(--tx);
  background: var(--tx);
}
#vcbn .vcbn-check input[type="checkbox"]:checked::after,
#vcbn .vcb-item-checkbox input[type="checkbox"]:checked::after,
#vcbn #payment .pafw_save_bacs_receipt_info input[type="checkbox"]:checked::after,
#vcbn #payment .woocommerce-terms-and-conditions-wrapper input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 2px;
  width: 5px;
  height: 10px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg);
}
#vcbn .vcbn-check input[type="checkbox"]:focus-visible,
#vcbn .vcb-item-checkbox input[type="checkbox"]:focus-visible,
#vcbn #payment .pafw_save_bacs_receipt_info input[type="checkbox"]:focus-visible,
#vcbn #payment .woocommerce-terms-and-conditions-wrapper input[type="checkbox"]:focus-visible {
  outline: 2px solid #1b64da;
  outline-offset: 2px;
}
#vcbn .vcbn-check {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin: 0;
  font-size: 13.5px;
  font-weight: 400;
  line-height: 1.45;
  color: var(--tx);
  cursor: pointer;
}
#vcbn .vcbn-check small {
  display: block;
  margin-top: 2px;
  font-size: 12px;
  font-weight: 400;
  color: var(--mu);
}
#vcbn .vcbn-check.is-agreed small {
  font-weight: 700;
  color: var(--p);
}

/* ═════════════ 입력칸 (우커머스 .form-row) ═════════════ */
#vcbn .vcb-form-section {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
}
#vcbn .vcb-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 8px;
}
#vcbn .vcb-form-grid > * {
  grid-column: 1 / -1;
  order: 50;
}
#vcbn .form-row {
  position: relative;
  float: none;
  width: 100%;
  margin: 0 0 12px;
  padding: 0;
}
#vcbn .form-row label {
  display: block;
  margin: 0 0 6px;
  font-size: 13.5px;
  font-weight: 700;
  line-height: 1.3;
  color: #41464f;
}
#vcbn .form-row label .required {
  border: 0;
  text-decoration: none;
  color: var(--p);
}
#vcbn .form-row label .optional {
  font-size: 14px;
  font-weight: 600;
  color: var(--mu2);
}
#vcbn .form-row .woocommerce-input-wrapper {
  display: block;
  width: 100%;
}
#vcbn .form-row input.input-text,
#vcbn .form-row input[type="text"],
#vcbn .form-row input[type="tel"],
#vcbn .form-row input[type="email"],
#vcbn .form-row select,
#vcbn .form-row textarea,
#vcbn .vcbn-in,
.vcbn-modal .vcbn-in {
  display: block;
  width: 100%;
  min-width: 0;
  height: 46px;
  margin: 0;
  padding: 0 14px;
  border: 1px solid #e3e6ec;
  border-radius: 10px;
  background-color: #fff;
  font-family: inherit;
  font-size: 15px;
  line-height: 1.3;
  color: #16181d;
  box-shadow: none;
  outline: 0;
}
#vcbn .form-row textarea {
  height: 78px;
  padding: 12px 14px;
  line-height: 1.45;
  resize: none;
}
#vcbn .form-row select,
#vcbn select#vcb-preset-select {
  padding-right: 38px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23767C88' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
#vcbn .form-row input::placeholder,
#vcbn .form-row textarea::placeholder,
#vcbn .vcbn-in::placeholder,
.vcbn-modal .vcbn-in::placeholder {
  font-size: 14px;
  color: #aeb4bf;
}
#vcbn .form-row input:focus,
#vcbn .form-row select:focus,
#vcbn .form-row textarea:focus,
#vcbn .vcbn-in:focus,
.vcbn-modal .vcbn-in:focus {
  border-color: #16181d;
}
#vcbn .form-row input[readonly] {
  background-color: #f8f9fb;
}
/* 검증 오류 (우커머스 인라인 문구 + VCB 실시간 검증) */
#vcbn .form-row.woocommerce-invalid .input-text,
#vcbn .form-row.woocommerce-invalid select,
#vcbn .form-row .vcb-field-error {
  border-color: #e03131;
}
#vcbn .form-row .checkout-inline-error-message,
#vcbn .form-row .vcb-field-error-msg {
  margin: 5px 0 0;
  padding: 0;
  font-size: 12px;
  line-height: 1.4;
  color: #e03131;
}
/* 화면에서만 감춘다 (값은 폼과 함께 전송된다) */
#vcbn .vcbn-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* ═════════════ 주문자 · 배송지 접기 ═════════════ */
#vcbn .vcbn-fold .vcbn-view {
  display: none;
}
#vcbn .vcbn-fold.is-folded .vcbn-view {
  display: block;
}
#vcbn .vcbn-fold.is-folded .vcbn-edit {
  display: none;
}
#vcbn .vcbn-fold .vcbn-ac .a {
  display: none;
}
#vcbn .vcbn-fold.is-folded .vcbn-ac .a {
  display: inline;
}
#vcbn .vcbn-fold.is-folded .vcbn-ac .b {
  display: none;
}
#vcbn .vcbn-done {
  width: 100%;
  margin-top: 4px;
}
#vcbn .vcbn-line {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  font-size: 14px;
  color: var(--mu);
}
#vcbn .vcbn-line b {
  font-weight: 700;
  color: var(--tx);
}
#vcbn .vcbn-addr {
  padding: 14px;
  border: 1px solid var(--bd);
  border-radius: 12px;
}
#vcbn .vcbn-addr .nm {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14.5px;
  font-weight: 800;
}
#vcbn .vcbn-addr .nm em {
  padding: 2px 7px;
  border-radius: 999px;
  background: #f1f3f6;
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
  color: var(--mu);
}
#vcbn .vcbn-addr .ph {
  margin-top: 3px;
  font-size: 13px;
  color: var(--mu);
}
#vcbn .vcbn-addr .ad {
  margin-top: 4px;
  font-size: 13.5px;
  line-height: 1.5;
}

/* 주문자 정보 복사 */
#vcbn .vcbn-same {
  display: block;
  width: 100%;
  height: 42px;
  margin: 0 0 12px;
  padding: 0 12px;
  border: 1px dashed #c3c9d4;
  border-radius: 10px;
  background: #fafbfc;
  font-size: 13px;
  font-weight: 700;
  color: var(--tx);
}

/* 주문자 칸 순서: 이름 → 휴대폰 · 이메일(2열) */
#vcbn .vcbn-buyer #billing_first_name_kr_field,
#vcbn .vcbn-buyer #billing_first_name_field {
  order: 1;
}
#vcbn .vcbn-buyer #billing_phone_kr_field,
#vcbn .vcbn-buyer #billing_phone_field {
  grid-column: 1;
  order: 2;
}
#vcbn .vcbn-buyer #billing_email_field,
#vcbn .vcbn-buyer #billing_email_kr_field {
  grid-column: 2;
  order: 3;
}

/* 배송지 칸 순서: 받는 분 · 휴대폰(2열) → 주소 → 상세주소 → 무인택배함 */
#vcbn .vcbn-ship #shipping_first_name_kr_field,
#vcbn .vcbn-ship #shipping_first_name_field {
  grid-column: 1;
  order: 1;
}
#vcbn .vcbn-ship #shipping_phone_kr_field,
#vcbn .vcbn-ship #shipping_phone_field {
  grid-column: 2;
  order: 2;
}
#vcbn .vcbn-ship [id$="-postnum_field"] {
  order: 10;
}
#vcbn .vcbn-ship [id$="-addr1_field"] {
  order: 11;
  margin-top: -4px;
}
#vcbn .vcbn-ship [id$="-addr2_field"] {
  order: 12;
  margin-top: -4px;
}
#vcbn [id$="-addr2_field"] br {
  display: none;
}
/* 우편번호 + 주소 검색 버튼 한 줄 */
#vcbn [id$="-postnum_field"] {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 8px;
}
/* 엠샵 스크립트가 이 줄에 인라인 display:block 을 넣는다 — 그러면 버튼이 입력칸 아래로 떨어져 붙는다. */
#vcbn [id$="-postnum_field"].mshop-enable-kr {
  display: grid !important;
}
#vcbn [id$="-postnum_field"] > label {
  grid-column: 1 / -1;
}
#vcbn [id$="-postnum_field"] input.postnum {
  width: 100% !important; /* 엠샵이 인라인으로 80px 을 준다 */
}
#vcbn .form-row a.ms-open-popup-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 46px;
  margin: 0;
  padding: 0 16px;
  border: 1px solid #16181d;
  border-radius: 10px;
  background: #16181d;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  text-decoration: none;
  color: #fff;
}
/* 무인택배함 조회 */
#vcbn .vcbn-locker {
  display: flex;
  align-items: center;
  justify-content: space-between;
  order: 13;
  width: 100%;
  height: 46px;
  margin: -4px 0 12px;
  padding: 0 14px;
  border: 1px solid var(--bd);
  border-radius: 10px;
  background: #fff;
  font-size: 13.5px;
  color: var(--tx);
}
#vcbn .vcbn-locker b {
  font-weight: 700;
}
#vcbn .vcbn-locker span {
  font-size: 13.5px;
  color: var(--mu);
}
/* 기존 스니펫이 상세주소 아래에 끼워 넣는 빨간 버튼 — 새 버튼으로 대체 */
#vcbn .vcb-shipping-extra-btn {
  display: none !important;
}

/* ═════════════ 배송 옵션 (요청사항 · 택배송장명 · 야한박스 · 배송방법) ═════════════ */
#vcbn .vcbn-opts {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #eef0f3;
}
#vcbn .vcbn-opts .vcb-form-grid {
  display: flex;
  flex-direction: column;
}
#vcbn .vcbn-opts #order_comments_field {
  order: 1;
}
#vcbn .vcbn-opts #order_boxname_field {
  order: 2;
}
#vcbn .vcbn-opts #order_delete_field {
  order: 3;
}
#vcbn .vcbn-opts .vcbn-boxrow {
  order: 4;
  margin: 2px 0 12px;
}
#vcbn select#vcb-preset-select {
  display: block;
  width: 100% !important;
  height: 46px;
  margin: 0 0 8px !important;
  padding-left: 14px;
  border: 1px solid #e3e6ec;
  border-radius: 10px;
  background-color: #fff;
  font-family: inherit;
  font-size: 15px;
  color: #16181d;
}
#vcbn .vcbn-direct {
  margin-top: 8px !important;
}
#vcbn .vcbn-boxnotice {
  margin: 0 0 12px;
  padding: 12px;
  border-radius: 10px;
  background: #f6f7f9;
  font-size: 13px;
  line-height: 1.5;
  color: #41464f;
}
#vcbn .vcbn-boxnotice h4 {
  margin: 0 0 6px;
  font-size: 14px;
  font-weight: 800;
  color: #e03131;
}
#vcbn .vcbn-boxnotice p {
  margin: 0 0 6px;
}
#vcbn .vcbn-boxnotice p:last-child {
  margin-bottom: 0;
}

/* 배송방법 선택 (기존 선택기 마크업) */
#vcbn .vcb-shipping-selector {
  margin: 4px 0 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
#vcbn .vcb-shipping-selector > h3 {
  margin: 0 0 6px;
  padding: 0;
  border: 0;
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.3;
  color: #41464f;
}
#vcbn .vcb-shipping-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 8px;
}
#vcbn .vcb-shipping-option {
  position: relative;
  display: block;
  margin: 0;
  cursor: pointer;
}
#vcbn .vcb-shipping-option input[type="radio"] {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
#vcbn .vcb-shipping-option .shipping-card {
  display: block;
  height: 100%;
  padding: 12px;
  border: 1px solid var(--bd);
  border-radius: 10px;
  background: #fff;
}
#vcbn .vcb-shipping-option input[type="radio"]:checked + .shipping-card {
  border-color: var(--tx);
  box-shadow: inset 0 0 0 1px var(--tx);
}
#vcbn .vcb-shipping-option input[type="radio"]:focus-visible + .shipping-card {
  outline: 2px solid #1b64da;
  outline-offset: 2px;
}
#vcbn .vcb-shipping-option .shipping-icon {
  display: none;
}
#vcbn .vcb-shipping-option .shipping-title {
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 700;
  color: var(--tx);
}
#vcbn .vcb-shipping-option .shipping-title img.vcbn-today-mark {
  display: inline-block;
  width: auto;
  height: 14px;
  margin: 0 4px 0 0;
  vertical-align: -3px;
}
#vcbn .vcb-shipping-option .shipping-title span {
  font-size: 14px;
  font-weight: 600;
  color: var(--tx);
}
#vcbn .vcb-shipping-option .shipping-desc,
#vcbn .vcb-shipping-option .shipping-fee {
  margin-top: 2px;
  font-size: 14px;
  font-weight: 400;
  color: #111827;
  color: lab(8.11897% 0.811279 -12.254);
}
#vcbn .vcb-shipping-selector .vcb-shipping-notice {
  display: block;
  margin: 8px 0 0;
  padding: 0;
  text-align: left;
  font-size: 14px;
  color: #111827;
  color: lab(8.11897% 0.811279 -12.254);
}
#vcbn .vcb-shipping-selector .vcb-shipping-notice p {
  margin: 0;
}
#vcbn .vcb-shipping-selector .woocommerce-error {
  margin: 0 0 8px;
  padding: 8px 12px;
  border-radius: 8px;
  list-style: none;
  background: #fff1f0;
  font-size: 12.5px;
  color: #e03131;
}
#vcbn .vcb-shipping-selector.vcb-highlight {
  outline: 2px solid var(--p);
  outline-offset: 4px;
  border-radius: 8px;
}

/* ═════════════ 할인 카드 (쿠폰 · 포인트) ═════════════ */
#vcbn .vcbn-dc {
  overflow: hidden;
  border: 1px solid var(--bd);
  border-radius: 12px;
}
#vcbn .vcbn-dc-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 14px;
  border-top: 1px solid #eef0f3;
  background: #fff;
}
#vcbn .vcbn-dc-row:first-child {
  border-top: 0;
}
#vcbn .vcbn-dc-row .k {
  flex: none;
  width: 52px;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--tx);
}
#vcbn .vcbn-dc-row .v {
  flex: 1;
  min-width: 0;
  text-align: left;
}
#vcbn .vcbn-dc-row .v b {
  display: block;
  font-size: 14.5px;
  font-weight: 800;
  color: var(--p);
}
#vcbn .vcbn-dc-row .v b.is-plain {
  color: var(--tx);
}
#vcbn .vcbn-dc-row .v b.is-dim {
  font-weight: 700;
  color: var(--mu);
}
#vcbn .vcbn-dc-row .v small {
  display: block;
  margin-top: 2px;
  overflow: hidden;
  font-size: 12px;
  font-weight: 400;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: var(--mu);
}
#vcbn .vcbn-dc-row.is-off {
  padding-top: 14px;
  padding-bottom: 14px;
}
#vcbn .vcbn-dc-row.is-off .v small {
  margin: 0;
  white-space: normal;
}
#vcbn .vcbn-dc-main {
  display: flex;
  flex: 1;
  align-items: center;
  gap: 10px;
  min-width: 0;
  margin: 0;
  padding: 14px 0;
  border: 0;
  background: none;
  font-size: 14px;
  line-height: 1.4;
  text-align: left;
  color: var(--tx);
}
#vcbn .vcbn-dc-x {
  flex: none;
  height: 30px;
  margin: 0;
  padding: 0 10px;
  border: 1px solid var(--bd);
  border-radius: 8px;
  background: #fff;
  font-size: 12px;
  font-weight: 700;
  color: var(--mu);
}
#vcbn .vcbn-dc-point {
  padding-top: 10px;
  padding-bottom: 10px;
}
#vcbn .vcbn-dc-point .v {
  display: flex;
  gap: 6px;
}
#vcbn .vcbn-dc-point .vcbn-in {
  height: 40px;
  font-weight: 700;
}
#vcbn .vcbn-dc-point.is-busy {
  opacity: 0.6;
  pointer-events: none;
}
#vcbn .vcbn-dc-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 14px;
  border-top: 1px solid #eef0f3;
  background: #f8f9fb;
  font-size: 12.5px;
  color: var(--mu);
}
#vcbn .vcbn-dc-foot b {
  font-weight: 800;
  color: var(--tx);
}
#vcbn .vcbn-dc-foot a {
  font-weight: 800;
  text-decoration: underline;
  color: var(--tx);
}

/* ═════════════ 사은품 (vavoom-gift / 엠샵 — 자체 CSS 를 쓰고 자리만 잡는다) ═════════════ */
#vcbn .vcbn-gift > *:not([hidden]):not(style):not(script) {
  margin: 8px 0 0;
  padding: 18px 16px;
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}
#vcbn .vcbn-gift h3,
#vcbn .vcbn-gift h4 {
  margin: 0 0 12px;
  padding: 0;
  border: 0;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.3;
  color: var(--tx);
}
/* vavoom-gift 블록 — 색 띠·붉은 강조를 걷고 배송방법·결제수단 카드와 같은 모양으로 (v2.10.0) */
#vcbn .vcbn-gift .vavoom-gift-block > h3 {
  gap: 6px;
}
#vcbn .vcbn-gift .vavoom-gift-block > h3::before {
  display: none;
}
#vcbn .vcbn-gift .vavoom-gift-block .vcb-gift-rule-wrapper {
  margin-bottom: 14px;
}
#vcbn .vcbn-gift .vavoom-gift-block .vcb-gift-rule-wrapper:last-of-type {
  margin-bottom: 0;
}
#vcbn .vcbn-gift .vavoom-gift-block .item-title {
  margin: 0 0 8px;
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.3;
  color: #41464f;
}
#vcbn .vcbn-gift .vavoom-gift-block .vavoom-gift-sub {
  margin-left: 4px;
  font-size: 12px;
  font-weight: 400;
  color: var(--mu);
}
#vcbn .vcbn-gift .vavoom-gift-block .vcb-gift-product-grid {
  gap: 8px;
}
#vcbn .vcbn-gift .vavoom-gift-block .vcb-gift-item {
  padding: 12px;
  border: 1px solid var(--bd);
  border-radius: 10px;
  background: #fff;
  box-shadow: none;
  transform: none;
  transition: none;
}
#vcbn .vcbn-gift .vavoom-gift-block .vcb-gift-item:hover {
  border-color: var(--bd);
  box-shadow: none;
  transform: none;
}
#vcbn .vcbn-gift .vavoom-gift-block .vcb-gift-item:focus-within {
  outline: 2px solid #1b64da;
  outline-offset: 2px;
}
#vcbn .vcbn-gift .vavoom-gift-block .vcb-gift-item.vcb-item-selected,
#vcbn .vcbn-gift .vavoom-gift-block .vcb-gift-item.vcb-item-selected:hover {
  border-color: var(--tx);
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--tx);
}
#vcbn .vcbn-gift .vavoom-gift-block .vcb-gift-item.vcb-item-selected::after {
  top: calc(50% - 10px);
  right: 12px;
  width: 20px;
  height: 20px;
  background: var(--tx);
  font-size: 11px;
}
#vcbn .vcbn-gift .vavoom-gift-block .vcb-gift-item-thumbnail {
  width: 44px;
  height: 44px;
  margin-right: 10px;
  border-radius: 8px;
  background-color: #f6f7f9;
}
#vcbn .vcbn-gift .vavoom-gift-block .vcb-gift-item-name {
  margin-right: 30px;
}
#vcbn .vcbn-gift .vavoom-gift-block .vavoom-gift-nm {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--tx);
}
#vcbn .vcbn-gift .vavoom-gift-block .vavoom-gift-meta {
  font-size: 12px;
  color: var(--mu);
}
#vcbn .vcbn-gift .vavoom-gift-block .vavoom-gift-val {
  font-size: 13.5px;
}
#vcbn .vcbn-gift .vavoom-gift-block .vavoom-gift-val--cut {
  color: var(--p);
}
#vcbn .vcbn-gift .vavoom-gift-block .vavoom-gift-tile {
  font-size: 14px;
}
#vcbn .vcbn-gift .vavoom-gift-block .vavoom-gift-tile--none {
  font-size: 11px;
}
#vcbn .vcbn-gift .vavoom-gift-block .vavoom-gift-note {
  margin: 8px 0 0 !important;
  font-size: 12.5px;
  color: var(--p);
}
#vcbn .vcbn-gift .vavoom-gift-block .vavoom-gift-nudge,
#vcbn .vcbn-gift .vavoom-gift-block .vavoom-gift-none-avail {
  font-size: 12.5px;
  color: var(--mu);
}
#vcbn .vcbn-gift .vavoom-gift-block .vavoom-gift-nudge-big {
  font-size: 15px;
  font-weight: 800;
  color: var(--tx);
}
#vcbn .vcbn-gift .vavoom-gift-block .vavoom-gift-nudge-big b {
  color: var(--p);
}
#vcbn .vcbn-gift .vavoom-gift-block .vavoom-gift-bar {
  height: 6px;
  background: #eef0f3;
}
#vcbn .vcbn-gift .vavoom-gift-block .vavoom-gift-bar i {
  background: var(--p);
}

/* ═════════════ 주문상품 (결제 페이지, 접힘) ═════════════ */
#vcbn .vcbn-items .vcbn-ac .b {
  display: none;
}
#vcbn .vcbn-items.is-open .vcbn-ac .a {
  display: none;
}
#vcbn .vcbn-items.is-open .vcbn-ac .b {
  display: inline;
}
#vcbn .vcbn-mini {
  display: flex;
  align-items: center;
  gap: 10px;
}
#vcbn .vcbn-mini .th {
  display: flex;
  flex: none;
}
#vcbn .vcbn-mini .th i {
  display: block;
  width: 40px;
  height: 40px;
  margin-left: -10px;
  overflow: hidden;
  border: 2px solid #fff;
  border-radius: 8px;
  background: #e9ecf1;
}
#vcbn .vcbn-mini .th i:first-child {
  margin-left: 0;
}
#vcbn .vcbn-mini .th img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#vcbn .vcbn-mini .tx {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  font-size: 13.5px;
  white-space: nowrap;
  text-overflow: ellipsis;
}
#vcbn .vcbn-mini b {
  flex: none;
  font-weight: 800;
}
#vcbn .vcbn-list {
  display: none;
}
#vcbn .vcbn-items.is-open .vcbn-list {
  display: block;
}
#vcbn .vcbn-items.is-open .vcbn-mini {
  display: none;
}
#vcbn .vcb-checkout-cart-items {
  margin: 0;
  padding: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
#vcbn .vcb-checkout-cart-items .vcb-section-title {
  display: none;
}
#vcbn .vcb-checkout-cart-items .vcb-cart-items-list {
  display: block;
  padding: 0;
  border-top: 1px solid #eef0f3;
  border-radius: 0;
  background: none;
}
#vcbn .vcb-checkout-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid #f2f3f5;
}
#vcbn .vcb-checkout-item:last-child {
  padding-bottom: 2px;
  border-bottom: 0;
}
#vcbn .vcb-checkout-item-image {
  flex: none;
  width: 56px;
  height: 56px;
  overflow: hidden;
  border-radius: 10px;
  background: #e9ecf1;
}
#vcbn .vcb-checkout-item-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#vcbn .vcb-checkout-item-info {
  flex: 1;
  min-width: 0;
}
#vcbn .vcb-checkout-item-name {
  margin: 0;
  overflow: visible;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.35;
  white-space: normal;
}
#vcbn .vcb-checkout-item-qty {
  margin-top: 3px;
  font-size: 12px;
  color: var(--mu);
}
#vcbn .vcb-checkout-item-price {
  flex: none;
  min-width: 0;
  text-align: right;
  font-size: 14px;
  font-weight: 800;
}

/* 가격 표기 공통 (정가 취소선 · 할인율 · 금액) */
#vcbn .vcb-yaydp-price {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
#vcbn .vcb-yaydp-price del {
  font-size: 12px;
  font-weight: 400;
  text-decoration: line-through;
  color: var(--mu2);
}
#vcbn .vcb-yaydp-price ins {
  font-weight: 800;
  text-decoration: none;
  color: inherit;
  background: none;
}
#vcbn .vcb-yaydp-price .vcb-sale-perc {
  margin-right: 4px;
  font-weight: 800;
  color: var(--p);
}
#vcbn .vcb-item-set-items {
  margin: 3px 0 0;
  font-size: 12px;
  line-height: 1.5;
  color: var(--mu);
}
#vcbn .vcb-gift-badge {
  display: inline-block;
  margin-right: 5px;
  padding: 1px 6px;
  border-radius: 5px;
  background: #fff1f0;
  font-size: 11px;
  font-weight: 800;
  color: var(--p);
}

/* ═════════════ 결제 금액 ═════════════ */
/* 결제 페이지 — 기존 주문 요약 템플릿 */
#vcbn .vcbn-sum #order_review {
  margin: 0;
  padding: 0;
}
#vcbn .vcb-order-summary-wrapper {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
#vcbn .vcb-order-summary-wrapper > h3 {
  margin: 0 0 12px;
  padding: 0;
  border: 0;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.3;
  color: var(--tx);
}
#vcbn .vcb-summary-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
  padding: 5px 0;
  border: 0;
  font-size: 13.5px;
  color: var(--mu);
}
#vcbn .vcb-summary-row .vcb-summary-value {
  flex: none;
  font-weight: 600;
  color: var(--tx);
}
#vcbn .vcb-summary-row .vcb-discount-amount,
#vcbn .vcb-summary-sub-row .vcb-discount-amount {
  color: var(--p);
}
#vcbn .vcb-summary-sub-items {
  margin: 0;
  padding: 0 0 2px;
}
/* 쿠폰 코드 세부 줄 — 어떤 쿠폰인지는 위 할인 카드가 보여준다 (가격 규칙 세부 줄 .vcb-yaydp-sub-items 는 그대로) */
#vcbn .vcb-summary-sub-items:not(.vcb-yaydp-sub-items) {
  display: none;
}
#vcbn .vcb-summary-sub-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 1px 0;
  font-size: 12px;
  color: var(--mu2);
}
#vcbn .vcb-summary-sub-row a {
  display: none; /* 우커머스 '[삭제]' 링크 — 해제는 할인 카드에서 */
}
#vcbn .vcb-summary-divider {
  height: 1px;
  margin: 8px 0 4px;
  border: 0;
  background: #eef0f3;
}
#vcbn .vcb-summary-row.vcb-summary-total {
  align-items: center;
  padding-top: 8px;
  font-size: 15px;
  font-weight: 800;
  color: var(--tx);
}
#vcbn .vcb-summary-row.vcb-summary-total .vcb-summary-value {
  font-size: 20px;
  font-weight: 900;
}
#vcbn .vcb-point-notice-wrapper {
  margin: 10px 0 0;
}
#vcbn .vcb-point-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border: 0;
  border-radius: 10px;
  background: #f8f9fb;
  font-size: 12.5px;
  color: var(--mu);
}
#vcbn .vcb-point-icon {
  display: grid;
  flex: none;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--ok);
  font-size: 11px;
  font-weight: 800;
  color: #fff;
}
#vcbn .vcb-installment-button-wrapper {
  margin: 10px 0 0;
}
#vcbn .vcb-installment-button {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font-size: 12.5px;
  font-weight: 700;
  text-decoration: underline;
  color: var(--tx);
}
/* 장바구니 — 기존 합계 블록 (그 안의 <style> 보다 우선하도록 한 단계 더 구체적으로) */
#vcbn .vcb-cart-totals .vcb-cart-summary {
  padding: 0;
  border-radius: 0;
  background: none;
}
#vcbn .vcb-cart-totals .vcb-cart-summary .vcb-total-line {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
  padding: 5px 0;
  border: 0;
  font-size: 13.5px;
  font-weight: 400;
  color: var(--mu);
}
#vcbn .vcb-cart-totals .vcb-cart-summary .vcb-total-line > span:last-child {
  flex: none;
  font-weight: 600;
  color: var(--tx);
}
#vcbn .vcb-cart-totals .vcb-cart-summary .vcb-total-line.vcb-discount > span:last-child {
  color: var(--p);
}
#vcbn .vcb-cart-totals .vcb-cart-summary .vcb-total-line.vcb-final-total {
  align-items: center;
  margin-top: 8px;
  padding-top: 12px;
  border-top: 1px solid #eef0f3;
  font-size: 15px;
  font-weight: 800;
  color: var(--tx);
}
#vcbn .vcb-cart-totals .vcb-cart-summary .vcb-total-line.vcb-final-total > span:last-child {
  font-size: 20px;
  font-weight: 900;
}
#vcbn .vcb-cart-totals .vcb-cart-summary .vcbn-ship-line small {
  margin-left: 4px;
  font-size: 11.5px;
  font-weight: 400;
  color: var(--mu2);
}
#vcbn .vcb-cart-totals .vcb-cart-summary .vcbn-ship-line.is-free > span:last-child {
  color: var(--ok);
}
#vcbn .vcb-cart-totals .vcb-cart-summary .vcbn-ship-line.is-pending > span:last-child {
  font-weight: 400;
  color: var(--mu);
}
#vcbn .vcb-cart-totals .vcb-cart-summary .vcb-shipping-notice {
  display: block;
  margin: 10px 0 0;
  padding: 0;
  text-align: left;
  font-size: 12px;
  line-height: 1.5;
  color: var(--mu);
}
#vcbn .vcb-cart-totals .vcb-cart-summary .vcb-shipping-notice strong {
  font-weight: 700;
  color: var(--tx);
}

/* ═════════════ 결제수단 · 약관 · 결제 버튼 (우커머스 #payment) ═════════════ */
#vcbn #payment {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
}
/* v2.35.0: 결제수단을 한 덩어리 목록으로 — 바깥 테두리 하나에 줄 사이 구분선(사용자 선택 시안 15 「고른 줄만 설명 펼침 + 로고 칩」).
   줄(label) = 왼쪽 동그라미(::before) · 결제수단 이름(글자 그대로) · 고른 줄에만 나오는 설명(::after). 간편결제 로고 칩은 줄(li)의
   ::after 를 오른쪽에 띄운다(눌러도 줄이 눌리게 pointer-events 없음). 칩·설명에 들어갈 내용은 아래 「v2.35.0 — 결제수단 칩·설명」 블록.
   label 은 2칸 격자 — 동그라미가 1열 두 줄을 차지하고, 이름 글자가 2열 첫 줄, 설명이 2열 둘째 줄에 놓인다.
   라디오는 종전처럼 보이지 않게 두고(선택·초점은 그대로) 동그라미는 label 이 그린다. 구분선은 줄(label)의 위 테두리 —
   숨긴 줄(카드·머니 선택 창의 머니 줄)은 선도 함께 사라진다.
   우커머스 기본 CSS 가 ul·li 에 넣는 clearfix(::before/::after)는 지운다.
   (2.33.0·2.34.0 은 시안 16 — 줄마다 따로 테두리, 왼쪽 칩 + 이름 + 늘 보이는 설명, 고른 줄 검정 테두리 + 체크.) */
#vcbn #payment ul.payment_methods {
  display: block;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--bd);
  border-radius: 10px;
  background: #fff;
  list-style: none;
}
#vcbn #payment ul.payment_methods::before,
#vcbn #payment ul.payment_methods::after,
#vcbn #payment ul.payment_methods > li::before,
#vcbn #payment ul.payment_methods > li::after {
  content: none;
}
#vcbn #payment ul.payment_methods > li {
  position: relative;
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  line-height: 1.3;
}
#vcbn #payment ul.payment_methods > li.woocommerce-notice,
#vcbn #payment ul.payment_methods > li.woocommerce-info {
  padding: 14px;
  font-size: 14px;
  color: var(--mu);
}
/* 결제수단이 하나도 없을 때 우커머스가 넣는 안내 — li(클래스 없음) 안의 .woocommerce-info 상자다(검수 반영).
   우커머스 기본 상자 모양(아래 여백·위 색 선·왼쪽 아이콘 자리)을 걷어 목록 테두리 안 한 줄로 보이게 한다. */
#vcbn #payment ul.payment_methods > li > .woocommerce-info,
#vcbn #payment ul.payment_methods > li > .woocommerce-message,
#vcbn #payment ul.payment_methods > li > .woocommerce-error {
  margin: 0;
  padding: 14px;
  border: 0;
  border-radius: 0;
  background: none;
  font-size: 14px;
  line-height: 1.5;
  color: var(--mu);
}
#vcbn #payment ul.payment_methods > li > .woocommerce-info::before,
#vcbn #payment ul.payment_methods > li > .woocommerce-message::before,
#vcbn #payment ul.payment_methods > li > .woocommerce-error::before {
  content: none;
}
#vcbn #payment ul.payment_methods > li > input[type="radio"] {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  opacity: 0;
  pointer-events: none;
}
#vcbn #payment ul.payment_methods > li > label {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  column-gap: 10px;
  align-content: center;
  min-height: 52px;
  margin: 0;
  padding: 6px 14px;
  border: 0;
  border-top: 1px solid #eef0f3;
  border-radius: 0;
  background: #fff;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.3;
  text-align: left;
  word-break: keep-all;
  color: #333d4b;
  cursor: pointer;
}
#vcbn #payment ul.payment_methods > li:first-child > label {
  border-top: 0;
}
#vcbn #payment ul.payment_methods > li > label::before {
  content: "";
  grid-row: 1 / span 2;
  grid-column: 1;
  align-self: center;
  display: block;
  width: 20px;
  height: 20px;
  border: 1.5px solid #c4c9d2;
  border-radius: 50%;
  background: #fff;
}
#vcbn #payment ul.payment_methods > li > label::after {
  content: none;
  grid-row: 2;
  grid-column: 2;
  margin-top: 2px;
  overflow: hidden; /* 설명은 늘 한 줄 — 좁은 화면에서 두 줄이 되어 줄 높이·칩 위치가 어긋나지 않게(검수 반영). 넘치면 말줄임 */
  font-size: 14px;
  font-weight: 400;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--mu);
}
#vcbn #payment ul.payment_methods > li > label img {
  display: none; /* 결제수단 아이콘 — 로고 칩이 대신한다 */
}
#vcbn #payment ul.payment_methods > li > input[type="radio"]:checked + label {
  padding-top: 12px;
  padding-bottom: 12px;
  background: #f7f8fa;
}
#vcbn #payment ul.payment_methods > li > input[type="radio"]:checked + label::before {
  border: 6px solid var(--tx);
}
#vcbn #payment ul.payment_methods > li > input[type="radio"]:focus-visible + label {
  outline: 2px solid #1b64da;
  outline-offset: -2px;
}
#vcbn #payment div.payment_box {
  margin: 0;
  padding: 12px 14px;
  border: 0;
  border-top: 1px solid #eef0f3;
  border-radius: 0;
  background: #f8f9fb;
  font-size: 14px;
  line-height: 1.5;
  color: #41464f;
}
#vcbn #payment div.payment_box::before {
  display: none;
}
#vcbn #payment div.payment_box p {
  margin: 0 0 6px;
}
#vcbn #payment div.payment_box p:last-child {
  margin-bottom: 0;
}
#vcbn #payment div.payment_box input[type="radio"] {
  width: auto;
  height: auto;
  margin: 0 4px 0 0;
}
#vcbn #payment .form-row.place-order {
  margin: 16px 0 0;
  padding: 16px 0 0;
  border-top: 1px solid #eef0f3;
}
#vcbn #payment .woocommerce-terms-and-conditions-wrapper {
  margin: 0 0 14px;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--mu);
}
#vcbn #payment .woocommerce-terms-and-conditions-wrapper p {
  margin: 0 0 8px;
}
#vcbn #payment .woocommerce-terms-and-conditions-wrapper a {
  text-decoration: underline;
}
#vcbn #payment .woocommerce-terms-and-conditions-wrapper .form-row {
  margin: 0;
}
#vcbn #payment label.checkbox,
#vcbn #payment label.woocommerce-form__label-for-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin: 0;
  font-size: 14.5px;
  font-weight: 700;
  line-height: 1.45;
  color: var(--tx);
  cursor: pointer;
}
#vcbn #payment label.checkbox .required {
  display: none; /* 체크박스 자체가 필수 표시 역할을 한다 */
}
#vcbn #payment .woocommerce-terms-and-conditions {
  max-height: 180px;
  margin: 0 0 10px;
  padding: 12px;
  overflow: auto;
  border: 1px solid var(--bd);
  border-radius: 10px;
  font-size: 12px;
}

/* ═════════════ 장바구니 ═════════════ */
#vcbn .vcbn-selbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 6px;
}
#vcbn .vcbn-selbar .vcbn-check {
  align-items: center;
  font-weight: 700;
}
#vcbn .vcbn-selbar .vcbn-check small {
  display: inline;
  margin: 0 0 0 2px;
}
#vcbn .vcb-cart-wrapper.vcb-loading {
  opacity: 0.55;
  pointer-events: none;
}
#vcbn .vcb-cart-item {
  position: relative;
  display: grid;
  grid-template-columns: auto 72px minmax(0, 1fr);
  column-gap: 10px;
  margin: 0;
  padding: 14px 0;
  border: 0;
  border-bottom: 1px solid #f2f3f5;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
#vcbn .vcb-cart-item:last-child {
  padding-bottom: 2px;
  border-bottom: 0;
}
#vcbn .vcb-item-checkbox {
  grid-column: 1;
  grid-row: 1;
  padding-top: 1px;
}
#vcbn .vcb-item-image {
  grid-column: 2;
  grid-row: 1;
  width: 72px;
  height: 72px;
  overflow: hidden;
  border-radius: 10px;
  background: #e9ecf1;
}
#vcbn .vcb-item-image a,
#vcbn .vcb-item-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#vcbn .vcb-item-details {
  grid-column: 3;
  grid-row: 1;
  min-width: 0;
  min-height: 72px;
  padding-right: 26px;
}
#vcbn .vcb-item-name {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
}
#vcbn .vcb-item-name a {
  text-decoration: none;
  color: inherit;
}
#vcbn .vcb-item-price,
#vcbn .vcb-item-total,
#vcbn .vcb-cart-item > .vcb-quantity-controls {
  display: none; /* 개당 가격·PC용 수량·PC용 금액 칸 — 새 화면은 아래 한 벌만 쓴다 */
}
#vcbn .vcb-mobile-quantity-controls {
  display: inline-flex;
  align-items: center;
  height: 32px;
  margin-top: 18px;
  border: 1px solid var(--bd);
  border-radius: 8px;
}
#vcbn .vcb-yaydp-free-gift .vcb-mobile-quantity-controls {
  height: auto;
  border: 0;
}
#vcbn .vcb-quantity-btn {
  width: 32px;
  height: 30px;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font-size: 16px;
  line-height: 1;
  color: var(--tx);
}
#vcbn .vcb-quantity-input {
  width: 36px;
  height: 30px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  text-align: center;
  color: var(--tx);
  -moz-appearance: textfield;
  appearance: textfield;
}
#vcbn .vcb-quantity-input::-webkit-outer-spin-button,
#vcbn .vcb-quantity-input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}
#vcbn .vcb-gift-qty {
  font-size: 12.5px;
  color: var(--mu);
}
#vcbn .vcb-mobile-price-remove {
  position: absolute;
  right: 0;
  bottom: 14px;
  display: block;
  text-align: right;
}
#vcbn .vcb-cart-item:last-child .vcb-mobile-price-remove {
  bottom: 2px;
}
#vcbn .vcb-mobile-price {
  font-size: 15px;
  font-weight: 800;
}
#vcbn .vcbn-rm {
  position: absolute;
  top: 8px;
  right: -8px;
  width: 34px;
  height: 34px;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font-size: 22px;
  line-height: 1;
  color: #b4b9c4;
}
#vcbn .vcbn-end {
  padding: 0 15px 18px; /* v2.27.1: 장바구니 섹션과 같은 좌우 15px */
  background: #fff;
}
#vcbn .vcbn-empty {
  padding: 48px 16px;
  text-align: center;
}
#vcbn .vcbn-empty-t {
  margin: 0 0 6px;
  font-size: 17px;
  font-weight: 800;
}
#vcbn .vcbn-empty-d {
  margin: 0 0 18px;
  font-size: 13.5px;
  color: var(--mu);
}

/* ═════════════ 하단 고정 버튼 (결제: 항상 · 진짜 버튼은 감춤 / 장바구니: 진짜 버튼이 화면 밖일 때만) ═════════════ */
/* 진짜 버튼은 하단 버튼이 준비된 뒤(.vcbn-cta-ready — vcb-nd.js 가 붙인다)에만 감춘다.
   스크립트가 돌지 않으면 우커머스 버튼이 그대로 보여 결제는 된다. */
#vcbn.vcbn-checkout.vcbn-cta-ready #payment #place_order {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
#vcbn.vcbn-checkout #payment .form-row.place-order {
  position: relative;
}
#vcbn .vcbn-cta {
  position: sticky;
  bottom: var(--vcbn-bottom, 0px);
  z-index: 50;
  margin: 0;
  padding: 10px 16px;
  border-top: 1px solid #eef0f3;
  background: #fff;
}
/* ═════════════ 알림 (우커머스 notice) ═════════════ */
.vcbn-on .vcb-checkout-notices .woocommerce-error,
.vcbn-on .vcb-checkout-notices .woocommerce-message,
.vcbn-on .vcb-checkout-notices .woocommerce-info,
.vcbn-on .woocommerce-NoticeGroup .woocommerce-error {
  margin: 0 0 8px;
  padding: 12px 14px;
  border: 0;
  border-radius: 10px;
  list-style: none;
  background: #fff1f0;
  font-size: 13px;
  line-height: 1.5;
  color: #c92a2a;
}
.vcbn-on .vcb-checkout-notices .woocommerce-message,
.vcbn-on .vcb-checkout-notices .woocommerce-info {
  background: #f1f3f6;
  color: #41464f;
}
.vcbn-on .vcb-checkout-notices .woocommerce-error::before,
.vcbn-on .vcb-checkout-notices .woocommerce-message::before,
.vcbn-on .vcb-checkout-notices .woocommerce-info::before {
  content: none;
}
.vcbn-on .vcb-error {
  padding: 24px 16px;
  text-align: center;
  font-size: 14px;
  color: #41464f;
}
.vcbn-on .vcb-error a {
  font-weight: 700;
  text-decoration: underline;
}

/* ═════════════ 팝업 공통 — 본문 칸 가운데(가로·세로), 폭 90% ═════════════ */
.vcbn-modal,
.vcbn-on #vcb-error-modal {
  position: fixed;
  top: 0;
  bottom: 0;
  left: var(--vcbn-col-left, 0px);
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--vcbn-col-width, 100%);
  margin: 0;
  padding: 0;
  background: rgba(16, 18, 24, 0.52);
}
.vcbn-modal[hidden] {
  display: none;
}
.vcbn-modal *,
.vcbn-modal *::before,
.vcbn-modal *::after {
  box-sizing: border-box;
}
.vcbn-modal .vcbn-modal-box,
.vcbn-on #vcb-error-modal .vcb-modal-content {
  position: relative;
  width: 90%;
  max-width: 90%;
  max-height: 84vh;
  margin: 0;
  padding: 22px 18px 18px;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  border: 0;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 50px -12px rgba(16, 18, 24, 0.45);
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: -0.01em;
  text-align: left;
  color: #16181d;
  animation: none;
  opacity: 1;
}
body.vcbn-modal-open {
  overflow: hidden;
}
.vcbn-modal .vcbn-modal-x {
  position: absolute;
  top: 8px;
  right: 6px;
  width: 42px;
  height: 42px;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font-family: inherit;
  font-size: 26px;
  line-height: 1;
  color: #767c88;
  box-shadow: none;
  cursor: pointer;
}
.vcbn-modal .vcbn-modal-title {
  margin: 0 40px 12px 0;
  padding: 0;
  border: 0;
  font-size: 17px;
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: -0.03em;
  color: #16181d;
}
.vcbn-modal .vcbn-modal-title.is-warn {
  color: #e03131;
}
.vcbn-modal .vcbn-modal-box p {
  margin: 0 0 10px;
  font-size: 14px;
  color: #41464f;
}
/* 예외 안내 목록 (※ 줄) — 팝업과 안내 상자 공용 */
.vcbn-modal .vcbn-modal-box .vcbn-modal-ex,
#vcbn .vcbn-boxnotice .vcbn-modal-ex {
  margin: 0;
  padding: 12px;
  border-radius: 10px;
  background: #f6f7f9;
  list-style: none;
  font-size: 13px;
  line-height: 1.5;
  color: #41464f;
}
#vcbn .vcbn-boxnotice .vcbn-modal-ex {
  padding: 8px 0 0;
  background: none;
}
.vcbn-modal .vcbn-modal-box .vcbn-modal-ex li,
#vcbn .vcbn-boxnotice .vcbn-modal-ex li {
  position: relative;
  margin: 0;
  padding: 0 0 0 16px;
}
.vcbn-modal .vcbn-modal-box .vcbn-modal-ex li + li,
#vcbn .vcbn-boxnotice .vcbn-modal-ex li + li {
  margin-top: 6px;
}
.vcbn-modal .vcbn-modal-box .vcbn-modal-ex li::before,
#vcbn .vcbn-boxnotice .vcbn-modal-ex li::before {
  content: "※";
  position: absolute;
  left: 0;
  top: 0;
}
.vcbn-modal .vcbn-modal-btns {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 8px;
  margin-top: 16px;
}
.vcbn-modal .vcbn-modal-btns .vcbn-btn {
  height: 50px;
  font-size: 15px;
}
.vcbn-modal .vcbn-loading {
  margin: 22px 0;
  text-align: center;
  font-size: 13px;
  color: #767c88;
}

/* 쿠폰 선택 팝업 — 카드는 vavoom-coupon 공용 CSS, 여기는 틀만 */
.vcbn-modal .vcbn-coupon-list {
  margin-top: 0;
}
.vcbn-modal .vcb-coupon-dialog {
  margin: 0;
  padding: 0;
  background: none;
}
.vcbn-modal .vcb-coupon-dialog .vcb-cd-head {
  margin: 0 0 8px;
  padding: 0;
}
.vcbn-modal .vcb-coupon-dialog .vcb-cd-title {
  display: none; /* 제목은 팝업 틀에 이미 있다 */
}
.vcbn-modal .vcb-coupon-dialog .vcb-cd-note {
  margin: 0;
  padding: 0;
  font-size: 12px;
  line-height: 1.5;
  color: #767c88;
}
.vcbn-modal .vcb-coupon-dialog .vcb-cd-body {
  padding: 0;
  overflow: visible;
}
.vcbn-modal .vcb-coupon-dialog .vcb-cd-empty {
  margin: 22px 0;
  text-align: center;
  font-size: 13px;
  color: #767c88;
}

/* 입력 확인 안내 (기존 vcb-main.js 가 만드는 #vcb-error-modal) */
.vcbn-on #vcb-error-modal h3 {
  margin: 0 0 6px;
  padding: 0;
  border: 0;
  font-size: 17px !important;
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: -0.03em;
}
.vcbn-on #vcb-error-modal .vcb-error-desc {
  margin: 0 0 10px;
  font-size: 12.5px;
  color: #767c88;
}
.vcbn-on #vcb-error-modal .vcb-error-list {
  max-height: 46vh;
  margin: 0;
  padding: 0;
  overflow: auto;
  border-top: 1px solid #eef0f3;
  list-style: none;
}
.vcbn-on #vcb-error-modal .vcb-error-list li {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 11px 0;
  border-bottom: 1px solid #f2f3f5;
  font-size: 14px;
  font-weight: 600;
  color: #16181d;
}
.vcbn-on #vcb-error-modal .vcb-error-list li::before {
  content: "!";
  display: grid;
  flex: none;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff1f0;
  font-size: 12px;
  font-weight: 800;
  color: #e03131;
}
.vcbn-on #vcb-error-modal .vcb-error-list li[data-target] {
  cursor: pointer;
}
.vcbn-on #vcb-error-modal .vcb-error-list li.is-generic {
  font-weight: 400;
  color: #c92a2a;
}
.vcbn-on #vcb-error-modal .vcb-error-confirm {
  display: block;
  width: 100%;
  height: 50px;
  margin: 16px 0 0;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: #16181d;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  box-shadow: none;
  cursor: pointer;
}
body.vcbn-on.vcb-error-modal-open {
  overflow: hidden;
}

/* Breakdance 팝업 (무인택배함 · 할부 안내 등) — 이 두 페이지에서만 가운데 · 폭 90%.
   화면 전체를 덮는 팝업(상단 검색·메뉴)은 vcb-nd.js 가 .vcbn-pop-full 을 붙여 제외한다. */
.vcbn-on .bde-popup:not(.vcbn-pop-full) {
  align-items: center !important;
  justify-content: center !important;
}
.vcbn-on .bde-popup:not(.vcbn-pop-full) .breakdance-popup {
  width: 90% !important;
  max-width: 90% !important;
  margin: 0 !important;
}
.vcbn-on .bde-popup:not(.vcbn-pop-full) .breakdance-popup-content {
  width: 100% !important;
  max-width: 100% !important;
  max-height: 84vh;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

/* 주소 검색 팝업 (엠샵 magnificPopup) — 겉 틀만 가운데 · 폭 90% (안쪽 검색 화면은 다음 우편번호 제공) */
.vcbn-on .mfp-bg,
.vcbn-on .mfp-wrap {
  left: var(--vcbn-col-left, 0px) !important;
  width: var(--vcbn-col-width, 100%) !important;
}
.vcbn-on .mfp-container {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.vcbn-on .mfp-content {
  width: 90% !important;
  max-width: 90% !important;
  margin: 0 auto !important;
}
.vcbn-on .mfp-content > * {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* ═════════════ 토스트 ═════════════ */
.vcbn-toast {
  position: fixed;
  left: calc(var(--vcbn-col-left, 0px) + var(--vcbn-col-width, 100vw) / 2);
  bottom: calc(var(--vcbn-bottom, 0px) + 86px);
  z-index: 100001;
  max-width: min(86vw, 420px);
  padding: 11px 16px;
  border-radius: 10px;
  background: #16181d;
  font-size: 13.5px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  color: #fff;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 12px);
  transition: opacity 0.2s, transform 0.2s;
}
.vcbn-toast.is-on {
  opacity: 1;
  transform: translate(-50%, 0);
}

@media (prefers-reduced-motion: reduce) {
  .vcbn-toast,
  #vcbn.is-updating .vcbn-sum,
  #vcbn.is-updating .vcbn-discount {
    transition: none;
  }
}

/* ═════════════ 새 화면을 담은 Breakdance 섹션 — 위아래 여백 0 (빌더에서 여백을 안 지워도 되게) ═════════════ */
@supports selector(:has(*)) {
  .vcbn-on .bde-section > .section-container:has([data-vcbn-root]) {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}

/* ═════════════ 관리자 안내 (쇼트코드 중복 — 방문자에게는 출력되지 않는다) ═════════════ */
#vcbn .vcbn-adminnote {
  margin: 0 0 8px;
  padding: 12px 14px;
  border: 1px dashed #d63638;
  border-radius: 8px;
  background: #fff;
  font-size: 13px;
  line-height: 1.6;
  color: #1d2327;
}

/* ═════════════ v2.10.1 — 할인 카드: 요약 글자 · 쿠폰 「선택」 버튼 ═════════════ */
#vcbn .vcbn-discount .vcbn-h-note {
  font-size: 15px;
}
#vcbn .vcbn-dc-coupon .vcbn-dc-main {
  padding-top: 10px;
  padding-bottom: 10px;
}
/* 쿠폰 줄 전체가 버튼이다 — 그 안의 「선택」은 포인트 줄의 「전액」과 같은 모양의 표시(span)다. */
#vcbn .vcbn-dc-main .vcbn-dc-pick {
  flex: none;
}
#vcbn .vcbn-dc-coupon .vcbn-dc-x {
  height: 40px;
  margin-left: 6px;
  padding: 0 12px;
  border-radius: 10px;
  font-size: 13px;
}

/* ═════════════ v2.10.1 — 비회원 주문자 안내 ═════════════ */
#vcbn .vcbn-note {
  margin: 10px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: #41464f;
}
#vcbn .vcbn-note b {
  font-weight: 700;
  color: var(--p);
}

/* ═════════════ v2.10.1 — 무통장 입금: 현금영수증 (pgall 출력, 모양만) ═════════════ */
#vcbn #payment .pafw_bacs_receipt_wrapper {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e3e6ec;
}
#vcbn #payment .pafw_bacs_receipt_issue_yn,
#vcbn #payment .pafw_bacs_receipt_type {
  display: flex;
  align-items: center;
  gap: 6px;
}
#vcbn #payment .pafw_bacs_receipt_issue_yn > span {
  margin-right: auto;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--tx);
}
#vcbn #payment .pafw_bacs_receipt_type {
  margin-top: 10px;
}
/* 라디오는 감추고 라벨을 선택 칩으로 (선택 표시는 배송방법·결제수단과 같은 진한 테두리) */
#vcbn #payment div.pafw_bacs_receipt input[type="radio"] {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  opacity: 0;
  pointer-events: none;
}
#vcbn #payment div.pafw_bacs_receipt input[type="radio"] + label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  margin: 0;
  padding: 6px 12px;
  border: 1px solid var(--bd);
  border-radius: 8px;
  background: #fff;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  color: var(--mu);
  cursor: pointer;
}
#vcbn #payment div.pafw_bacs_receipt input[type="radio"]:checked + label {
  border-color: var(--tx);
  box-shadow: inset 0 0 0 1px var(--tx);
  font-weight: 700;
  color: var(--tx);
}
#vcbn #payment div.pafw_bacs_receipt input[type="radio"]:focus-visible + label {
  outline: 2px solid #1b64da;
  outline-offset: 2px;
}
#vcbn #payment .pafw_bacs_receipt_type label {
  flex: 1 1 0;
}
/* 번호 종류 + 번호 입력 한 줄 (pgall 이 이 줄의 display 를 flex/none 으로 바꾼다 — display 는 건드리지 않는다) */
#vcbn #payment .pafw_bacs_receipt .receipt_usage {
  gap: 6px;
  margin-top: 8px;
}
#vcbn #payment .pafw_bacs_receipt .receipt_usage select,
#vcbn #payment .pafw_bacs_receipt .receipt_usage input[type="text"] {
  min-width: 0;
  height: 42px;
  margin: 0;
  padding: 0 12px;
  border: 1px solid #e3e6ec;
  border-radius: 10px;
  background-color: #fff;
  font-family: inherit;
  font-size: 15px;
  line-height: 1.3;
  color: var(--tx);
  box-shadow: none;
  outline: 0;
}
#vcbn #payment .pafw_bacs_receipt .receipt_usage select {
  flex: 0 0 42%;
  padding-right: 34px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23767C88' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  cursor: pointer;
  /* pgall payment.css 가 이 영역의 input·select 에 appearance:auto !important 를 건다 */
  -webkit-appearance: none !important;
  appearance: none !important;
}
#vcbn #payment .pafw_bacs_receipt .receipt_usage input[type="text"] {
  flex: 1 1 0;
  width: auto;
}
#vcbn #payment .pafw_bacs_receipt .receipt_usage select:focus,
#vcbn #payment .pafw_bacs_receipt .receipt_usage input[type="text"]:focus {
  border-color: var(--tx);
}
#vcbn #payment .pafw_save_bacs_receipt_info {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}
#vcbn #payment .pafw_save_bacs_receipt_info input[type="checkbox"] {
  margin: 0;
  -webkit-appearance: none !important;
  appearance: none !important;
}
#vcbn #payment .pafw_save_bacs_receipt_info label {
  margin: 0;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.4;
  color: #41464f;
  cursor: pointer;
}

/* ═════════════ v2.10.2 — 입력칸 글자 크기 고정 ═════════════
   화면 폭 767px 이하에서 모든 input·select·textarea 를 16px !important 로 올리는 전역 규칙
   (html input:not([type="checkbox"]):not([type="radio"])… , html select, html textarea)이 걸리면
   위에서 정한 15px 가 밀린다 — 그 규칙의 출처는 사이트가 내려주는 파일에서 찾지 못했다(보는 기기·브라우저 쪽으로 추정).
   이 화면의 입력칸만 ID 범위 + !important 로 다시 고정한다.
   (이 사이트의 뷰포트는 maximum-scale=1 이라 16px 미만이어도 iOS 가 입력칸을 확대하지 않는다.) */
#vcbn .form-row input.input-text,
#vcbn .form-row input[type="text"],
#vcbn .form-row input[type="tel"],
#vcbn .form-row input[type="email"],
#vcbn .form-row input[type="number"],
#vcbn .form-row input[type="password"],
#vcbn .form-row select,
#vcbn .form-row textarea,
#vcbn .vcbn-in,
#vcbn select#vcb-preset-select,
#vcbn #payment .pafw_bacs_receipt .receipt_usage select,
#vcbn #payment .pafw_bacs_receipt .receipt_usage input[type="text"] {
  font-size: 15px !important;
}
#vcbn .form-row input::placeholder,
#vcbn .form-row textarea::placeholder,
#vcbn .vcbn-in::placeholder {
  font-size: 14px !important;
}
#vcbn .vcb-quantity-input {
  font-size: 14px !important;
}

/* ═════════════ v2.10.2 — 글자 체계 정리 ═════════════
   사용자가 지정한 참고 화면의 체계에 맞춘다: 본문 14px, 제목 18px/500, 강조 600, 보조 글자는 회색(#6a7282),
   기본 글자색은 짙은 남색(#111827). 굵기 800·900 은 쓰지 않는다.
   앞에서 사용자가 숫자로 지정한 값(라벨 13.5px, 입력칸 15px, 안내 글자·선택 사항 14px, 배송방법 제목·안내 14px,
   할인 요약 15px)은 그대로 두고 굵기·색만 맞춘다. */
#vcbn {
  --tx: #111827;
  --mu: #6a7282;
  --mu2: #99a1af;
}

/* 섹션 제목 */
#vcbn .vcbn-h h3,
#vcbn .vcbn-gift h3,
#vcbn .vcbn-gift h4,
#vcbn .vcb-order-summary-wrapper > h3 {
  font-size: 18px;
  font-weight: 500;
  line-height: 28px;
}
#vcbn .vcbn-h h3 small {
  font-size: 14px;
  font-weight: 400;
}
#vcbn .vcbn-discount .vcbn-h-note {
  font-weight: 400;
}
#vcbn .vcbn-ac {
  font-size: 14px;
  font-weight: 600;
}
#vcbn .vcbn-tag {
  font-size: 12px;
  font-weight: 500;
}

/* 라벨 (칸 이름) — 보조 회색, 중간 굵기 */
#vcbn .form-row label {
  font-weight: 500;
  color: var(--mu);
}
#vcbn .form-row label .optional {
  font-weight: 400;
}
#vcbn .vcb-shipping-selector > h3,
#vcbn .vcbn-gift .vavoom-gift-block .item-title {
  font-size: 13.5px;
  font-weight: 500;
  color: var(--mu);
}
/* 약관 동의 체크 라벨은 본문 글자색 */
#vcbn #payment label.checkbox,
#vcbn #payment label.woocommerce-form__label-for-checkbox {
  font-size: 14px;
  font-weight: 600;
  color: var(--tx);
}

/* 주문자·배송지 요약 */
#vcbn .vcbn-line b {
  font-weight: 600;
}
#vcbn .vcbn-addr .nm {
  font-size: 14px;
  font-weight: 600;
}
#vcbn .vcbn-addr .nm em {
  font-size: 12px;
  font-weight: 500;
}
#vcbn .vcbn-addr .ph,
#vcbn .vcbn-addr .ad {
  font-size: 14px;
}

/* 버튼·체크 */
#vcbn .vcbn-btn,
.vcbn-modal .vcbn-btn {
  font-weight: 600;
}
#vcbn .vcbn-btn-sm {
  font-size: 14px;
}
#vcbn .vcbn-same,
#vcbn .form-row a.ms-open-popup-link {
  font-size: 14px;
  font-weight: 600;
}
#vcbn .vcbn-locker {
  font-size: 14px;
}
#vcbn .vcbn-locker b {
  font-weight: 600;
}
#vcbn .vcbn-check {
  font-size: 14px;
}
#vcbn .vcbn-check.is-agreed small {
  font-weight: 600;
}
#vcbn .vcbn-paybtn,
#vcbn #place_order {
  font-weight: 600;
}

/* 할인 카드 */
#vcbn .vcbn-dc-row .k {
  font-size: 14px;
  font-weight: 600;
}
#vcbn .vcbn-dc-row .v b {
  font-size: 14px;
  font-weight: 600;
}
#vcbn .vcbn-dc-row .v b.is-dim {
  font-weight: 500;
}
#vcbn .vcbn-dc-coupon .vcbn-dc-x {
  font-weight: 600;
}
#vcbn .vcbn-dc-point .vcbn-in {
  font-weight: 600;
}
#vcbn .vcbn-dc-foot {
  font-size: 13px;
}
#vcbn .vcbn-dc-foot b,
#vcbn .vcbn-dc-foot a {
  font-weight: 600;
}

/* 사은품 */
#vcbn .vcbn-gift .vavoom-gift-block .vavoom-gift-nm {
  font-size: 14px;
  font-weight: 500;
}
#vcbn .vcbn-gift .vavoom-gift-block .vavoom-gift-val {
  font-size: 14px;
  font-weight: 600;
}
#vcbn .vcbn-gift .vavoom-gift-block .vavoom-gift-note {
  font-weight: 500;
}
#vcbn .vcbn-gift .vavoom-gift-block .vavoom-gift-nudge-big {
  font-size: 16px;
  font-weight: 600;
}

/* 주문상품 */
#vcbn .vcbn-mini .tx,
#vcbn .vcb-checkout-item-name {
  font-size: 14px;
}
#vcbn .vcbn-mini b,
#vcbn .vcb-checkout-item-price,
#vcbn .vcb-yaydp-price ins,
#vcbn .vcb-yaydp-price .vcb-sale-perc {
  font-weight: 600;
}
#vcbn .vcb-gift-badge {
  font-weight: 600;
}

/* 결제 금액 */
#vcbn .vcb-summary-row,
#vcbn .vcb-cart-totals .vcb-cart-summary .vcb-total-line {
  font-size: 14px;
}
#vcbn .vcb-summary-row.vcb-summary-total,
#vcbn .vcb-cart-totals .vcb-cart-summary .vcb-total-line.vcb-final-total {
  font-size: 16px;
  font-weight: 600;
}
#vcbn .vcb-summary-row.vcb-summary-total .vcb-summary-value,
#vcbn .vcb-cart-totals .vcb-cart-summary .vcb-total-line.vcb-final-total > span:last-child {
  font-size: 20px;
  font-weight: 700;
}
#vcbn .vcb-cart-totals .vcb-cart-summary .vcbn-ship-line small {
  font-size: 12px;
}
#vcbn .vcb-point-notice {
  font-size: 13px;
}
#vcbn .vcb-installment-button {
  font-size: 13px;
  font-weight: 600;
}

/* 결제수단 — v2.35.0: 한 덩어리 목록. 이름 15px·500, 고른 줄 700 */
#vcbn #payment ul.payment_methods > li > label {
  font-size: 15px;
  font-weight: 500;
}
#vcbn #payment ul.payment_methods > li > input[type="radio"]:checked + label {
  font-weight: 700;
}
#vcbn #payment .pafw_bacs_receipt_issue_yn > span {
  font-size: 14px;
  font-weight: 600;
}
#vcbn #payment div.pafw_bacs_receipt input[type="radio"] + label {
  font-weight: 500;
}
#vcbn #payment div.pafw_bacs_receipt input[type="radio"]:checked + label {
  font-weight: 600;
}

/* 장바구니 */
#vcbn .vcbn-selbar .vcbn-check {
  font-weight: 600;
}
#vcbn .vcb-quantity-input {
  font-weight: 600;
}
#vcbn .vcb-mobile-price {
  font-weight: 600;
}
#vcbn .vcbn-empty-t {
  font-size: 18px;
  font-weight: 600;
}
/* 팝업·알림 */
.vcbn-modal .vcbn-modal-title,
.vcbn-on #vcb-error-modal h3 {
  font-weight: 600;
}
#vcbn .vcbn-boxnotice h4 {
  font-weight: 600;
}
.vcbn-toast {
  font-weight: 600;
}

/* 글자색 통일 — 입력값·버튼도 같은 기본 글자색 */
#vcbn .form-row input.input-text,
#vcbn .form-row input[type="text"],
#vcbn .form-row input[type="tel"],
#vcbn .form-row input[type="email"],
#vcbn .form-row select,
#vcbn .form-row textarea,
#vcbn .vcbn-in,
#vcbn select#vcb-preset-select,
#vcbn .vcbn-btn {
  color: var(--tx);
}
#vcbn .vcbn-btn-dark,
#vcbn .form-row a.ms-open-popup-link {
  border-color: var(--tx);
  background: var(--tx);
  color: #fff;
}

/* 검수 의견 반영 — "(선택 사항)"은 정보를 전하는 글자라 보조 회색으로 올린다(대비 약 4.8:1).
   팝업은 body 로 옮겨져 #vcbn 의 변수를 받지 못하므로 같은 글자색을 직접 준다. */
#vcbn .form-row label .optional {
  color: var(--mu);
}
.vcbn-modal .vcbn-modal-title {
  color: #111827;
}
.vcbn-modal .vcbn-modal-title.is-warn {
  color: #e03131;
}
.vcbn-modal .vcbn-btn {
  color: #111827;
}
.vcbn-modal .vcbn-btn-dark {
  border-color: #111827;
  background: #111827;
  color: #fff;
}

/* ═════════════ 주문완료 화면 (v2.11.0 — templates/vcb-thankyou-nd.php) ═════════════
   새 결제 화면과 같은 틀: 흰 섹션 + 제목 18px/500 + 본문 14px. 스크립트 없이 CSS 만으로 동작한다. */
#vcbn .vcbn-ty-notices:empty {
  display: none;
}
#vcbn .vcbn-ty-notices .woocommerce-error,
#vcbn .vcbn-ty-notices .woocommerce-message,
#vcbn .vcbn-ty-notices .woocommerce-info {
  display: block;
  margin: 0;
  padding: 12px 16px;
  border: 0;
  border-radius: 0;
  list-style: none;
  background: #fff1f0;
  font-size: 13.5px;
  line-height: 1.5;
  color: #c92a2a;
}
#vcbn .vcbn-ty-notices .woocommerce-message,
#vcbn .vcbn-ty-notices .woocommerce-info {
  background: #f1f3f6;
  color: var(--tx);
}
#vcbn .vcbn-ty-notices li {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* 머리말 */
#vcbn .vcbn-ty-hero {
  padding: 28px 16px 22px;
  text-align: center;
}
#vcbn .vcbn-ty-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  margin: 0 0 12px;
  border-radius: 50%;
  background: var(--p);
  color: #fff;
}
#vcbn .vcbn-ty-hero.is-failed .vcbn-ty-mark {
  background: #eef0f3;
  color: var(--mu);
}
#vcbn .vcbn-ty-title {
  margin: 0 0 6px;
  padding: 0;
  border: 0;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--tx);
}
#vcbn .vcbn-ty-sub {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: var(--mu);
}
#vcbn .vcbn-ty-sub a {
  text-decoration: underline;
  color: var(--tx);
}
#vcbn .vcbn-ty-actions {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  gap: 8px;
  margin-top: 18px;
}
#vcbn .vcbn-ty-actions .vcbn-btn {
  width: 100%;
  padding: 0 8px;
}
#vcbn .vcbn-ty-status {
  flex: none;
  padding: 3px 10px;
  border-radius: 999px;
  background: #f1f3f6;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  color: var(--tx);
}

/* 이름 — 값 줄 */
#vcbn .vcbn-kv {
  margin: 0;
  padding: 0;
}
#vcbn .vcbn-kv > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 5px 0;
}
#vcbn .vcbn-kv dt {
  flex: none;
  margin: 0;
  padding: 0;
  font-size: 14px;
  font-weight: 400;
  color: var(--mu);
}
#vcbn .vcbn-kv dd {
  min-width: 0;
  margin: 0;
  padding: 0;
  text-align: right;
  font-size: 14px;
  font-weight: 600;
  word-break: break-word;
  color: var(--tx);
}
#vcbn .vcbn-kv dd small {
  font-weight: 400;
  color: var(--mu);
}
#vcbn .vcbn-kv > div.is-total {
  align-items: center;
  margin-top: 8px;
  padding-top: 12px;
  border-top: 1px solid #eef0f3;
}
#vcbn .vcbn-kv > div.is-total dt {
  font-size: 16px;
  font-weight: 600;
  color: var(--tx);
}
#vcbn .vcbn-kv > div.is-total dd {
  font-size: 20px;
  font-weight: 700;
}
#vcbn .vcbn-ty-opts {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #eef0f3;
}
#vcbn .vcbn-ty-opts dd {
  font-weight: 500;
}

/* 주소 */
#vcbn .vcbn-ty-addr {
  font-size: 14px;
  line-height: 1.6;
  color: var(--tx);
}
#vcbn .vcbn-ty-addr .nm {
  font-weight: 600;
}
#vcbn .vcbn-ty-addr .ph {
  color: var(--mu);
}

/* 결제수단 안내 (무통장 계좌·가상계좌 등 — 게이트웨이가 출력하는 마크업).
   사이트 전역 CSS 가 이 제목들의 크기를 !important 로 지정하고 있어 같은 방식으로 되돌린다. */
#vcbn .vcbn-ty-gateway section,
#vcbn .vcbn-ty-gateway .woocommerce-bacs-bank-details {
  margin: 0;
  padding: 0;
}
#vcbn .vcbn-ty-gateway h2,
#vcbn .vcbn-ty-gateway h2.wc-bacs-bank-details-heading {
  margin: 0 0 12px !important;
  padding: 0;
  border: 0;
  font-size: 18px !important;
  font-weight: 500 !important;
  line-height: 28px;
  color: var(--tx) !important;
}
#vcbn .vcbn-ty-gateway h3,
#vcbn .vcbn-ty-gateway h3.wc-bacs-bank-details-account-name {
  margin: 0 0 6px !important;
  padding: 0;
  border: 0;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.4;
  color: var(--tx) !important;
}
#vcbn .vcbn-ty-gateway p {
  margin: 0 0 8px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--tx);
}
#vcbn .vcbn-ty-gateway ul {
  margin: 0 0 8px;
  padding: 10px 14px;
  border: 0;
  border-radius: 10px;
  list-style: none;
  background: #f8f9fb;
}
#vcbn .vcbn-ty-gateway ul:empty {
  display: none;
}
#vcbn .vcbn-ty-gateway ul:last-child {
  margin-bottom: 0;
}
#vcbn .vcbn-ty-gateway li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  float: none;
  width: auto;
  margin: 0;
  padding: 4px 0;
  border: 0;
  list-style: none;
  font-size: 14px;
  line-height: 1.5;
  text-transform: none;
  color: var(--mu);
}
#vcbn .vcbn-ty-gateway li strong {
  display: inline;
  font-size: 14px;
  font-weight: 600;
  color: var(--tx);
}
@supports selector(:has(*)) {
  #vcbn .vcbn-ty-gateway ul:not(:has(li)) {
    display: none;
  }
}

/* 주문 상품 */
#vcbn .vcbn-ty-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 0;
  border-top: 1px solid #eef0f3;
}
#vcbn .vcbn-ty-item:first-child {
  padding-top: 0;
  border-top: 0;
}
#vcbn .vcbn-ty-item:last-child {
  padding-bottom: 0;
}
#vcbn .vcbn-ty-item .th {
  flex: none;
  width: 56px;
  height: 56px;
  overflow: hidden;
  border-radius: 8px;
  background: #f6f7f9;
}
#vcbn .vcbn-ty-item .th img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
}
#vcbn .vcbn-ty-item .tx {
  flex: 1;
  min-width: 0;
}
#vcbn .vcbn-ty-item .nm {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--tx);
}
#vcbn .vcbn-ty-meta {
  margin: 2px 0 0;
  padding: 0;
  list-style: none;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--mu);
}
#vcbn .vcbn-ty-meta li {
  margin: 0;
  padding: 0;
  list-style: none;
}
#vcbn .vcbn-ty-meta li p {
  display: inline;
  margin: 0;
}
#vcbn .vcbn-ty-item .qt {
  margin-top: 2px;
  font-size: 13px;
  color: var(--mu);
}
#vcbn .vcbn-ty-item .pr {
  flex: none;
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
  color: var(--tx);
}

/* 배송 조회 · 그 밖의 안내 */
#vcbn .vcbn-ty-trackrow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 4px 0;
  font-size: 14px;
}
#vcbn .vcbn-ty-extra {
  font-size: 14px;
  line-height: 1.55;
}

/* ═════════════ 하단 버튼 — 처음부터 화면 아래에 떠 있다 (v2.12.0) ═════════════ */
/* 종전의 sticky 는 새 화면이 화면 아래쪽에서 시작하면(위에 다른 섹션이 있을 때) 처음에 보이지 않았다 → fixed.
   가로 위치·폭은 본문 칸(PC 는 600px 칸)에 맞춘다 — vcb-nd.js measure() 가 넣는 변수. */
#vcbn .vcbn-cta {
  position: fixed;
  right: auto;
  bottom: var(--vcbn-bottom, 0px);
  left: var(--vcbn-col-left, 0px);
  box-sizing: border-box;
  width: var(--vcbn-col-width, 100%);
  box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.06);
}
/* 장바구니: 떠 있는 버튼이 준비되면 본문 끝의 버튼은 감춘다(스크립트가 돌지 않으면 이 버튼이 그대로 남는다). */
#vcbn.vcbn-cart.vcbn-cta-ready .vcbn-end {
  display: none;
}
/* 페이지 맨 끝(푸터)이 떠 있는 버튼에 가리지 않게 버튼 높이만큼 여백. */
body.vcbn-cta-on .va-main {
  padding-bottom: var(--vcbn-cta-h, 73px);
}
/* 안내 토스트는 떠 있는 버튼 바로 위에 (장바구니 버튼은 쿠폰·포인트 말풍선이 있으면 더 높다 — v2.27.0). */
.vcbn-toast {
  bottom: calc(var(--vcbn-bottom, 0px) + var(--vcbn-cta-h, 73px) + 13px);
}
/* 결제: 필수 입력·결제수단이 덜 채워졌으면 회색. 누를 수는 있다 — 무엇이 빠졌는지는 오류 팝업이 알려 준다. */
#vcbn .vcbn-cta .vcbn-paybtn.is-off {
  border-color: #d3d3d3;
  background: #d3d3d3;
  color: #fff;
}

/* ═════════════ v2.13.0 ═════════════ */
/* 배송 방법 — 따로 한 칸, 선택지는 위아래로 (참고 화면의 배송 방법 칸과 같은 배치) */
#vcbn .vcbn-shipmethod .vcb-shipping-selector {
  margin: 0;
}
#vcbn .vcbn-shipmethod .vcb-shipping-selector > h3 {
  display: none;
}
#vcbn .vcbn-shipmethod .vcb-shipping-options {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
#vcbn .vcbn-shipmethod .vcb-shipping-option .shipping-card {
  height: auto;
  padding: 16px;
  border-radius: 12px;
}
#vcbn .vcb-shipping-option .shipping-desc,
#vcbn .vcb-shipping-option .shipping-fee {
  font-size: 13px;
}

/* 최대 할인 적용 — 쿠폰·포인트 상자 아래의 얇은 연한 띠 (v2.13.1, 사용자 선택 시안 4) */
#vcbn .vcbn-best {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  height: 36px;
  min-height: 0;
  margin: 8px 0 0;
  padding: 0 12px;
  border: 0;
  border-radius: 10px;
  background: #fff1f0;
  box-shadow: none;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  color: #c92a2a;
  cursor: pointer;
}
#vcbn .vcbn-best:hover {
  background: #ffe6e4;
  color: #c92a2a;
}
#vcbn .vcbn-best .l,
#vcbn .vcbn-best .vcbn-spin {
  display: none;
}
/* 적용 중 — 돌아가는 원 + 「적용 중…」 (흐리게 하지 않는다: 진행 중임이 보여야 한다) */
#vcbn .vcbn-best.is-busy,
#vcbn .vcbn-best:disabled {
  background: #fff1f0;
  color: #c92a2a;
  opacity: 1;
  cursor: default;
}
/* 취소 모드(최대 할인이 이미 적용돼 있음) — 회색 띠 */
#vcbn .vcbn-best.is-cancel,
#vcbn .vcbn-best.is-cancel.is-busy,
#vcbn .vcbn-best.is-cancel:disabled {
  background: #f1f3f6;
  color: #6a7282;
}
#vcbn .vcbn-best.is-cancel:hover {
  background: #e9ecf1;
  color: #6a7282;
}
#vcbn .vcbn-best.is-busy .t {
  display: none;
}
#vcbn .vcbn-best.is-busy .l {
  display: inline;
}
#vcbn .vcbn-best.is-busy .vcbn-spin {
  display: inline-block;
}
#vcbn .vcbn-spin {
  flex: none;
  width: 13px;
  height: 13px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: vcbn-spin 0.7s linear infinite;
}
@keyframes vcbn-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  #vcbn .vcbn-spin {
    animation-duration: 2s;
  }
}

/* 장바구니 수량을 바꾸는 동안 상품 줄도 살짝 흐리게 */
#vcbn.is-updating .vcb-cart-items {
  opacity: 0.6;
}

/* ═════════════ 위장박스 칸 — 박스 종류마다 작은 카드 (v2.16.1, 시안 2안) ═════════════ */
/* 「+ 담기」는 팝업 없이 바로 담고, 장바구니에 위장박스가 있으면 칸을 그리지 않는다. */
#vcbn .vcbn-camo .vcbn-h {
  margin-bottom: 12px;
}
#vcbn .vcbn-camo-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
#vcbn .vcbn-camo-card {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  padding: 10px;
  border: 1px solid var(--bd);
  border-radius: 12px;
}
#vcbn .vcbn-camo-card img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  margin: 0;
  border-radius: 8px;
  background: var(--bg);
  object-fit: cover;
}
#vcbn .vcbn-camo-card b {
  margin-top: 5px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
  color: var(--tx);
  word-break: keep-all;
}
#vcbn .vcbn-camo-card em {
  margin-bottom: 7px;
  font-style: normal;
  font-size: 13px;
  font-weight: 700;
  color: var(--tx);
}
/* 이름이 두 줄이어도 두 카드의 버튼 높이를 맞춘다 */
#vcbn .vcbn-camo-add {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  height: 32px;
  margin: auto 0 0;
  padding: 0 12px;
  border: 1px solid #cfd4dc;
  border-radius: 8px;
  background: #fff;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  color: var(--tx);
  box-shadow: none;
  cursor: pointer;
}
#vcbn .vcbn-camo-add:hover {
  border-color: var(--tx);
}
#vcbn .vcbn-camo-add .l,
#vcbn .vcbn-camo-add .vcbn-spin {
  display: none;
}
#vcbn .vcbn-camo-add:disabled {
  cursor: default;
}
#vcbn .vcbn-camo-add.is-busy .t {
  display: none;
}
#vcbn .vcbn-camo-add.is-busy .l {
  display: inline;
}
#vcbn .vcbn-camo-add.is-busy .vcbn-spin {
  display: inline-block;
}
#vcbn .vcbn-camo-notes {
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
  font-size: 12px;
  line-height: 1.5;
  color: var(--mu2);
}
#vcbn .vcbn-camo-notes li {
  margin: 0;
}
#vcbn .vcbn-camo-notes li::before {
  content: "* ";
}

/* ═════════════ v2.16.0 고른 상품 기준 미리보기 ═════════════ */
/* 체크를 푼 상품 줄은 흐리게 (체크칸은 그대로 또렷하게) */
#vcbn .vcb-cart-item.vcbn-off > :not(.vcb-item-checkbox) {
  opacity: 0.45;
  transition: opacity 0.15s;
}
/* 하나도 고르지 않았을 때 — 본문 끝 버튼도 회색 (떠 있는 버튼은 위의 결제 회색 규칙과 같은 모양) */
#vcbn .vcbn-end .vcbn-paybtn.is-off {
  border-color: #d3d3d3;
  background: #d3d3d3;
  color: #fff;
}
/* 하나도 고르지 않았을 때 — 직전 금액이 남아 있는 할인·합계 칸은 흐리게 */
#vcbn.vcbn-none .vcbn-discount,
#vcbn.vcbn-none .vcbn-sum {
  opacity: 0.45;
}

/* ═════════════ v2.16.2 — 결제 화면 가독성 (참고: 무신사·크림·로마스토어 주문서) ═════════════
   글자 크기보다 색·위계·상자 종류가 문제였다 — 참고 화면들은 13~15px 인데도 라벨·금액이 거의 검정이고
   상자 모양이 하나뿐이다. 결제 화면(.vcbn-checkout)에만 건다. 이 블록을 지우면 종전 모양으로 돌아간다. */
#vcbn.vcbn-checkout {
  --tx: #191f28;
  --mu: #4e5968;
  --mu2: #8b95a1;
  --bd: #e5e8eb;
  line-height: 1.5;
}

/* 섹션 — 여백을 넓히고 제목을 또렷하게 (v2.27.1: 좌우 18px → 15px, 사용자 지정 — 장바구니와 같은 값) */
#vcbn.vcbn-checkout .vcbn-sec {
  padding: 22px 15px;
}
#vcbn.vcbn-checkout .vcbn-h {
  margin-bottom: 14px;
}
#vcbn.vcbn-checkout .vcbn-h h3,
#vcbn.vcbn-checkout .vcbn-gift h3,
#vcbn.vcbn-checkout .vcbn-gift h4,
#vcbn.vcbn-checkout .vcb-order-summary-wrapper > h3 {
  font-size: 18px;
  font-weight: 700;
  color: var(--tx);
}
#vcbn.vcbn-checkout .vcbn-ac {
  color: var(--mu);
}
/* 사은품 칸도 다른 섹션과 같은 여백 (사은품 블록은 .vcbn-sec 가 아니라 자식마다 칸을 잡는다) */
#vcbn.vcbn-checkout .vcbn-gift > *:not([hidden]):not(style):not(script) {
  padding: 22px 15px;
}

/* 입력 칸 — 라벨은 짙게(칸 이름이 눈의 기준), 「(선택 사항)」은 라벨보다 작고 흐리게 */
#vcbn.vcbn-checkout .form-row label {
  font-size: 14px;
  font-weight: 600;
  color: #333d4b;
}
#vcbn.vcbn-checkout .form-row label .optional {
  font-size: 13px;
  font-weight: 400;
  color: #6b7684;
}
#vcbn.vcbn-checkout .form-row input.input-text,
#vcbn.vcbn-checkout .form-row input[type="text"],
#vcbn.vcbn-checkout .form-row input[type="tel"],
#vcbn.vcbn-checkout .form-row input[type="email"],
#vcbn.vcbn-checkout .form-row select,
#vcbn.vcbn-checkout .form-row textarea,
#vcbn.vcbn-checkout .vcbn-in,
#vcbn.vcbn-checkout select#vcb-preset-select {
  border-color: #d1d6db;
}
/* 위 테두리가 상태 표시를 덮지 않게 — 포커스·검증 오류 테두리를 같은 범위로 다시 둔다(오류가 포커스보다 우선, 종전과 같은 순서) */
#vcbn.vcbn-checkout .form-row input:focus,
#vcbn.vcbn-checkout .form-row select:focus,
#vcbn.vcbn-checkout .form-row textarea:focus,
#vcbn.vcbn-checkout .vcbn-in:focus,
#vcbn.vcbn-checkout select#vcb-preset-select:focus {
  border-color: var(--tx);
}
#vcbn.vcbn-checkout .form-row.woocommerce-invalid .input-text,
#vcbn.vcbn-checkout .form-row.woocommerce-invalid select,
#vcbn.vcbn-checkout .form-row input.vcb-field-error,
#vcbn.vcbn-checkout .form-row select.vcb-field-error,
#vcbn.vcbn-checkout .form-row textarea.vcb-field-error {
  border-color: #e03131;
}
/* 「주문자 정보와 동일하게 입력」 — 점선 대신 다른 상자와 같은 실선 */
#vcbn.vcbn-checkout .vcbn-same {
  border: 1px solid var(--bd);
  background: #f9fafb;
  color: #333d4b;
}
/* 「입력 완료」 — 화면에서 가장 무거운 검정 덩어리라 결제 버튼과 겹쳐 보였다 → 테두리 버튼 */
#vcbn.vcbn-checkout .vcbn-btn-dark.vcbn-done {
  border-color: var(--tx);
  background: #fff;
  color: var(--tx);
}
#vcbn.vcbn-checkout .vcbn-locker {
  font-size: 15px;
}
#vcbn.vcbn-checkout .vcbn-locker span {
  color: var(--mu);
}
#vcbn.vcbn-checkout .vcbn-check {
  font-size: 15px;
}
#vcbn.vcbn-checkout .vcbn-check small {
  font-size: 13px;
}

/* 배송 방법 */
#vcbn.vcbn-checkout .vcb-shipping-option .shipping-title {
  font-size: 15px;
  font-weight: 700;
}
#vcbn.vcbn-checkout .vcb-shipping-option .shipping-desc,
#vcbn.vcbn-checkout .vcb-shipping-option .shipping-fee {
  font-size: 14px;
  line-height: 1.5;
  color: var(--mu);
}

/* 할인 */
#vcbn.vcbn-checkout .vcbn-dc-row .k,
#vcbn.vcbn-checkout .vcbn-dc-row .v,
#vcbn.vcbn-checkout .vcbn-dc-row .v b {
  font-size: 15px;
}
#vcbn.vcbn-checkout .vcbn-dc-foot {
  font-size: 14px;
  color: var(--mu);
}
#vcbn.vcbn-checkout .vcbn-best {
  height: 40px;
  font-size: 14px;
}

/* 사은품 */
#vcbn.vcbn-checkout .vcbn-gift .vavoom-gift-block .item-title {
  font-size: 14px;
  font-weight: 600;
  color: #333d4b;
}
#vcbn.vcbn-checkout .vcbn-gift .vavoom-gift-sub {
  font-size: 13px;
  color: var(--mu);
}
#vcbn.vcbn-checkout .vcbn-gift .vavoom-gift-block .vavoom-gift-nm {
  font-size: 15px;
  font-weight: 600;
  color: var(--tx);
}
#vcbn.vcbn-checkout .vcbn-gift .vavoom-gift-meta {
  font-size: 13px;
  line-height: 1.5;
  color: var(--mu);
}
#vcbn.vcbn-checkout .vcbn-gift .vavoom-gift-tag {
  font-size: 11px;
}

/* 주문 상품 */
#vcbn.vcbn-checkout .vcbn-mini .tx,
#vcbn.vcbn-checkout .vcb-checkout-item-name {
  font-size: 15px;
}
#vcbn.vcbn-checkout .vcbn-mini b,
#vcbn.vcbn-checkout .vcb-checkout-item-price {
  font-size: 15px;
  font-weight: 700;
}

/* 결제 정보 — 라벨은 진한 회색, 금액은 검정 */
#vcbn.vcbn-checkout .vcb-summary-row {
  font-size: 15px;
}
#vcbn.vcbn-checkout .vcb-summary-label {
  color: var(--mu);
}
#vcbn.vcbn-checkout .vcb-summary-value {
  font-weight: 600;
  color: var(--tx);
}
/* 할인 금액은 종전대로 강조색 (파일 머리 규칙: 강조색은 할인 금액과 결제 버튼에만) */
#vcbn.vcbn-checkout .vcb-summary-value.vcb-discount-amount {
  color: var(--p);
}
#vcbn.vcbn-checkout .vcb-summary-row.vcb-summary-total {
  font-size: 17px;
  font-weight: 700;
}
#vcbn.vcbn-checkout .vcb-summary-row.vcb-summary-total .vcb-summary-label {
  color: var(--tx);
}
#vcbn.vcbn-checkout .vcb-summary-row.vcb-summary-total .vcb-summary-value,
#vcbn.vcbn-checkout .vcb-summary-row.vcb-summary-total .vcb-summary-value bdi {
  font-size: 22px;
  font-weight: 700;
}
#vcbn.vcbn-checkout .vcb-point-notice {
  font-size: 14px;
  color: #333d4b;
}
#vcbn.vcbn-checkout .vcb-installment-button {
  font-size: 14px;
}

/* 결제수단 — v2.33.0 부터 세로 줄이라 이름 글자 15px (종전 버튼 글자 13.5px — v2.22.1) */
#vcbn.vcbn-checkout #payment ul.payment_methods > li > label {
  font-size: 15px;
  color: #333d4b;
}
#vcbn.vcbn-checkout #payment ul.payment_methods > li > input[type="radio"]:checked + label {
  font-weight: 700;
  color: var(--tx);
}
#vcbn.vcbn-checkout #payment .payment_box,
#vcbn.vcbn-checkout #payment .payment_box p {
  font-size: 14px;
  line-height: 1.6;
  color: #333d4b;
}
#vcbn.vcbn-checkout #payment div.pafw_bacs_receipt input[type="radio"] + label {
  font-size: 14px;
}

/* 약관 안내 — 우커머스가 같은 줄에 붙이는 오류 문구(.checkout-inline-error-message)는 빨강 그대로 두려고 뺀다 */
#vcbn.vcbn-checkout .woocommerce-terms-and-conditions-wrapper p:not(.checkout-inline-error-message),
#vcbn.vcbn-checkout .woocommerce-privacy-policy-text p:not(.checkout-inline-error-message) {
  font-size: 13px;
  line-height: 1.6;
  color: var(--mu);
}
#vcbn.vcbn-checkout .woocommerce-terms-and-conditions-wrapper p:not(.checkout-inline-error-message) a,
#vcbn.vcbn-checkout .woocommerce-privacy-policy-text p:not(.checkout-inline-error-message) a {
  color: #333d4b;
}

/* ═════════════ v2.35.0 — 결제수단 칩·설명 (사용자 선택 시안 15 「고른 줄만 설명 펼침 + 로고 칩」) ═════════════
   줄 모양은 위 「결제수단 · 약관 · 결제 버튼」 블록, 여기는 결제수단 ID 별 로고 칩과 설명 문구다.
   · 간편결제(네이버페이·토스페이·삼성페이·애플페이) 줄 오른쪽에 로고 칩 = 결제사 색 바탕 + 흰 로고. 네 칩 모두 92×26px, 로고 글자 높이도
     같다(12px 기준). 로고는 이 파일 안 data URI 라 추가 요청이 없다 — 마크는 content 의 그림, 「Pay」 글자는 사이트 글꼴 그대로.
     토스페이는 로고 한 장(토스 공식 로고를 흰색으로)이라 바탕 그림으로 넣는다. 머니 결제수단은 같은 결제사 칩을 쓴다.
     칩은 줄(li)의 ::after 라 이름 글자가 칩 밑으로 들어가지 않게 그 줄의 오른쪽 안쪽 여백을 넓힌다. 카드·무통장은 칩이 없다.
   · 설명은 고른 줄에만 나온다(label::after 의 content 를 :checked 에서만 준다). 고르면 줄이 두 줄 높이(약 64px)가 되어
     칩도 그 높이의 가운데로 내린다(:has — 못 쓰는 브라우저는 칩이 첫 줄 높이에 그대로).
   · (2.33.0·2.34.0 은 시안 16: 왼쪽 칩 + 늘 보이는 설명, 카드·계좌 회색 칩 「카드」·「계좌」, 고른 줄 검정 테두리 + 체크.)
   결제수단 ID 가 늘면 여기에 칩·설명을 더한다(없어도 동그라미 + 이름으로 보인다). 짝 ID 는 아래 v2.23.0 블록·VCB_ND::pay_pick_pairs() 와 같다. */
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_npay > label,
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_npay_money > label,
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_tosspay > label,
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_tosspay_money > label,
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_samsungpay > label,
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_applepay > label {
  padding-right: 116px; /* 칩 92 + 오른쪽 14 + 사이 10 */
}
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_npay::after,
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_npay_money::after,
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_tosspay::after,
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_tosspay_money::after,
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_samsungpay::after,
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_applepay::after {
  position: absolute;
  top: 13px; /* 줄 높이 52px 의 가운데 */
  right: 14px;
  display: block;
  width: 92px;
  height: 26px;
  overflow: hidden;
  border-radius: 5px;
  font-size: 12px;
  font-weight: 500;
  line-height: 26px;
  letter-spacing: -0.01em;
  text-align: center;
  white-space: nowrap;
  color: #fff;
  pointer-events: none;
}
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_npay::after,
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_npay_money::after {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8.5' height='8.5' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M16.273 12.845 7.376 0H0v24h7.726V11.156L16.624 24H24V0h-7.727v12.845Z'/%3E%3C/svg%3E") " pay";
  background: #03c75a;
  font-weight: 700;
  letter-spacing: -0.02em;
}
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_tosspay::after,
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_tosspay_money::after {
  content: "";
  background: #0064ff url("data:image/png;base64,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") center / auto 13px no-repeat;
}
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_samsungpay::after {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='54' height='8.5' viewBox='0 10.1 24 3.8'%3E%3Cpath fill='%23fff' d='M19.8166 10.2808l.0459 2.6934h-.023l-.7793-2.6934h-1.2837v3.3925h.8481l-.0458-2.785h.023l.8366 2.785h1.2264v-3.3925zm-16.149 0l-.6418 3.427h.9284l.4699-3.1175h.0229l.4585 3.1174h.9169l-.6304-3.4269zm5.1805 0l-.424 2.6132h-.023l-.424-2.6132H6.5788l-.0688 3.427h.8596l.023-3.0832h.0114l.573 3.0831h.8711l.5731-3.083h.023l.0228 3.083h.8596l-.0802-3.4269zm-7.2664 2.4527c.0343.0802.0229.1949.0114.2522-.0229.1146-.1031.2292-.3324.2292-.2177 0-.3438-.126-.3438-.3095v-.3323H0v.2636c0 .7679.6074.9971 1.2493.9971.6189 0 1.1346-.2178 1.2149-.7794.0458-.298.0114-.4928 0-.5616-.1605-.722-1.467-.9283-1.5588-1.3295-.0114-.0688-.0114-.1375 0-.1834.023-.1146.1032-.2292.3095-.2292.2063 0 .321.126.321.3095v.2063h.8595v-.2407c0-.745-.6762-.8596-1.1576-.8596-.6074 0-1.1117.2063-1.2034.7564-.023.149-.0344.2866.0114.4585.1376.7106 1.364.9169 1.5358 1.3524m11.152 0c.0343.0803.0228.1834.0114.2522-.023.1146-.1032.2292-.3324.2292-.2178 0-.3438-.126-.3438-.3095v-.3323h-.917v.2636c0 .7564.596.9857 1.2379.9857.6189 0 1.1232-.2063 1.2034-.7794.0459-.298.0115-.4814 0-.5616-.1375-.7106-1.4327-.9284-1.5243-1.318-.0115-.0688-.0115-.1376 0-.1835.0229-.1146.1031-.2292.3094-.2292.1948 0 .321.126.321.3095v.2063h.848v-.2407c0-.745-.6647-.8596-1.146-.8596-.6075 0-1.1004.1948-1.192.7564-.023.149-.023.2866.0114.4585.1376.7106 1.341.9054 1.513 1.3524m2.8882.4585c.2407 0 .3094-.1605.3323-.2522.0115-.0343.0115-.0917.0115-.126v-2.533h.871v2.4642c0 .0688 0 .1948-.0114.2292-.0573.6419-.5616.8482-1.192.8482-.6303 0-1.1346-.2063-1.192-.8482 0-.0344-.0114-.1604-.0114-.2292v-2.4642h.871v2.533c0 .0458 0 .0916.0115.126 0 .0917.0688.2522.3095.2522m7.1518-.0344c.2522 0 .3324-.1605.3553-.2522.0115-.0343.0115-.0917.0115-.126v-.4929h-.3553v-.5043H24v.917c0 .0687 0 .1145-.0115.2292-.0573.6303-.596.8481-1.2034.8481-.6075 0-1.1461-.2178-1.2034-.8481-.0115-.1147-.0115-.1605-.0115-.2293v-1.444c0-.0574.0115-.172.0115-.2293.0802-.6419.596-.8482 1.2034-.8482s1.1347.2063 1.2034.8482c.0115.1031.0115.2292.0115.2292v.1146h-.8596v-.1948s0-.0803-.0115-.1261c-.0114-.0802-.0802-.2521-.3438-.2521-.2521 0-.321.1604-.3438.2521-.0115.0458-.0115.1032-.0115.1605v1.5702c0 .0458 0 .0916.0115.126 0 .0917.0917.2522.3323.2522'/%3E%3C/svg%3E") " Pay";
  background: #1428a0;
}
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_applepay::after {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8.5' height='10.8' viewBox='2.6 0 18.8 24'%3E%3Cpath fill='%23fff' d='M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701'/%3E%3C/svg%3E") "\2009Pay";
  background: #000;
}
@supports selector(:has(*)) {
  #vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_npay:has(> input[type="radio"]:checked)::after,
  #vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_npay_money:has(> input[type="radio"]:checked)::after,
  #vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_tosspay:has(> input[type="radio"]:checked)::after,
  #vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_tosspay_money:has(> input[type="radio"]:checked)::after,
  #vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_samsungpay:has(> input[type="radio"]:checked)::after,
  #vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_applepay:has(> input[type="radio"]:checked)::after {
    top: 19px; /* 설명까지 나온 줄(약 64px)의 가운데 */
  }
}
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_card > input[type="radio"]:checked + label::after {
  content: "일시불 · 할부";
}
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_npay > input[type="radio"]:checked + label::after {
  content: "네이버페이에 등록한 카드";
}
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_npay_money > input[type="radio"]:checked + label::after {
  content: "네이버페이 포인트·머니";
}
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_tosspay > input[type="radio"]:checked + label::after {
  content: "토스페이에 등록한 카드";
}
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_tosspay_money > input[type="radio"]:checked + label::after {
  content: "토스머니(연결 계좌)";
}
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_samsungpay > input[type="radio"]:checked + label::after {
  content: "삼성페이에 등록한 카드";
}
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_nicepay_applepay > input[type="radio"]:checked + label::after {
  content: "지갑 앱에 등록한 카드";
}
#vcbn.vcbn-checkout #payment ul.payment_methods > li.payment_method_bacs > input[type="radio"]:checked + label::after {
  content: "계좌로 직접 입금";
}

/* ═════════════ v2.18.0 — 결제수단 안내 한 줄 (사용자 선택 시안 2) ═════════════
   「결제수단」 제목 아래 회색 한 줄(설정 문구). 글자 #4e5968 / 바탕 #f2f4f6 대비 약 6.4:1. */
#vcbn .vcbn-pay-note {
  margin: 0 0 12px;
  padding: 9px 12px;
  border-radius: 8px;
  background: #f2f4f6;
  font-size: 13.5px;
  line-height: 1.5;
  color: #4e5968;
}
#vcbn .vcbn-pay-note b {
  margin-right: 4px;
  font-weight: 700;
  color: #191f28;
}

/* ═════════════ v2.21.0 — 배송 방법 「필수」·고르기 전 안내 한 줄 (사용자 선택 시안 A) ═════════════
   오늘배송 기본 선택(2.19.0)을 없애고, 고객이 직접 고르게 하면서 고를 곳을 더 잘 보이게 한다.
   선택기(VCB_Shipping::render_selector)는 두 방법이 다 될 때만 hidden vcb_both_options_visible 을 넣는다 →
   그때만 제목 옆 「필수」, 그중 아무것도 체크 안 됐을 때만 빨간 안내 한 줄. 결제 화면 갱신으로 선택기가 다시 그려져도
   :has 가 바로 다시 판정하므로 스크립트가 없다. :has 를 못 쓰는 브라우저에서는 둘 다 안 보인다(종전과 같음 — 결제 버튼 회색·오류 안내는 그대로).
   글자 #c92a2a / 흰 바탕 대비 약 5.5:1, 「필수」 흰 글자 / #c92a2a 도 같은 대비. */
#vcbn .vcbn-shipmethod .vcbn-req,
#vcbn .vcbn-ship-need {
  display: none;
}
@supports selector(:has(*)) {
  #vcbn .vcbn-shipmethod:has(input[name="vcb_both_options_visible"]) .vcbn-req {
    display: inline-block;
  }
  #vcbn .vcbn-shipmethod:has(input[name="vcb_both_options_visible"]):not(:has(input[name="vcb_shipping_method"]:checked)) .vcbn-ship-need {
    display: block;
  }
}
#vcbn .vcbn-shipmethod .vcbn-req {
  margin-left: 6px;
  padding: 1px 6px;
  border-radius: 4px;
  background: #c92a2a;
  font-style: normal;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
  vertical-align: 2px;
  color: #fff;
}
#vcbn .vcbn-ship-need {
  margin: 0 0 10px;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.5;
  color: #c92a2a;
}

/* ═════════════ v2.23.0 — 간편결제 카드·머니 선택 창 (v2.24.0 부터 결제하기 누를 때 묻는다, 사용자 선택 시안) ═════════════
   설정 「간편결제 카드·머니 선택 창」이 켜지면 결제 화면 루트에 .vcbn-pp 가 붙는다. 짝(카드·머니 결제수단)이 둘 다 있을 때만
   머니 줄(네이버페이 머니·토스페이 머니)을 숨긴다. 보이는 줄(네이버페이·토스페이)은 평소처럼 고르고, 결제하기를 누르면
   vcb-nd.js initPayPick 이 카드·머니를 고르는 창을 띄운다. 고른 결과는 진짜 라디오라서, 머니를 고른 채 돌아오면(결제창 취소·오류)
   아래 :has 가 보이는 줄에 선택 표시와 설명(포인트·머니·토스머니로 결제)을 그린다. :has 를 못 쓰는 브라우저는 머니 줄이 그대로 보인다.
   v2.33.0: 세로 줄 모양에 맞춰 다시 씀. v2.35.0: 한 덩어리 목록(시안 15)에 맞춰 — 숨긴 머니 줄은 줄(label)과 로고 칩을 함께 감추고
   (안내 상자는 그대로 열린다), 선택 표시는 연회색 바탕 + 채운 동그라미, 설명은 고른 줄에만.
   짝 ID 는 class-vcb-nd.php VCB_ND::pay_pick_pairs() 와 같다. */
@supports selector(:has(*)) {
  #vcbn.vcbn-checkout.vcbn-pp #payment ul.payment_methods:has(> li.payment_method_nicepay_npay) > li.payment_method_nicepay_npay_money > label,
  #vcbn.vcbn-checkout.vcbn-pp #payment ul.payment_methods:has(> li.payment_method_nicepay_tosspay) > li.payment_method_nicepay_tosspay_money > label {
    display: none;
  }
  #vcbn.vcbn-checkout.vcbn-pp #payment ul.payment_methods:has(> li.payment_method_nicepay_npay) > li.payment_method_nicepay_npay_money::after,
  #vcbn.vcbn-checkout.vcbn-pp #payment ul.payment_methods:has(> li.payment_method_nicepay_tosspay) > li.payment_method_nicepay_tosspay_money::after {
    content: none;
  }
  /* 카드·머니를 함께 받는 줄을 골랐을 때의 설명 */
  #vcbn.vcbn-checkout.vcbn-pp #payment ul.payment_methods:has(> li.payment_method_nicepay_npay_money) > li.payment_method_nicepay_npay > input[type="radio"]:checked + label::after {
    content: "카드 · 포인트·머니";
  }
  #vcbn.vcbn-checkout.vcbn-pp #payment ul.payment_methods:has(> li.payment_method_nicepay_tosspay_money) > li.payment_method_nicepay_tosspay > input[type="radio"]:checked + label::after {
    content: "카드 · 토스머니";
  }
  /* 머니를 골랐을 때 — 보이는 줄에 선택 표시(고른 줄과 같은 모양) + 설명 */
  #vcbn.vcbn-checkout.vcbn-pp #payment ul.payment_methods:has(> li.payment_method_nicepay_npay_money > input[type="radio"]:checked) > li.payment_method_nicepay_npay > label,
  #vcbn.vcbn-checkout.vcbn-pp #payment ul.payment_methods:has(> li.payment_method_nicepay_tosspay_money > input[type="radio"]:checked) > li.payment_method_nicepay_tosspay > label {
    padding-top: 12px;
    padding-bottom: 12px;
    background: #f7f8fa;
    font-weight: 700;
    color: var(--tx);
  }
  #vcbn.vcbn-checkout.vcbn-pp #payment ul.payment_methods:has(> li.payment_method_nicepay_npay_money > input[type="radio"]:checked) > li.payment_method_nicepay_npay > label::before,
  #vcbn.vcbn-checkout.vcbn-pp #payment ul.payment_methods:has(> li.payment_method_nicepay_tosspay_money > input[type="radio"]:checked) > li.payment_method_nicepay_tosspay > label::before {
    border: 6px solid var(--tx);
  }
  #vcbn.vcbn-checkout.vcbn-pp #payment ul.payment_methods:has(> li.payment_method_nicepay_npay_money > input[type="radio"]:checked) > li.payment_method_nicepay_npay::after,
  #vcbn.vcbn-checkout.vcbn-pp #payment ul.payment_methods:has(> li.payment_method_nicepay_tosspay_money > input[type="radio"]:checked) > li.payment_method_nicepay_tosspay::after {
    top: 19px;
  }
  #vcbn.vcbn-checkout.vcbn-pp #payment ul.payment_methods:has(> li.payment_method_nicepay_npay_money > input[type="radio"]:checked) > li.payment_method_nicepay_npay > label::after {
    content: "포인트·머니로 결제";
  }
  #vcbn.vcbn-checkout.vcbn-pp #payment ul.payment_methods:has(> li.payment_method_nicepay_tosspay_money > input[type="radio"]:checked) > li.payment_method_nicepay_tosspay > label::after {
    content: "토스머니로 결제";
  }
  /* 키보드로 숨은 머니 라디오에 초점이 가면 보이는 줄에 초점 표시(기존 :focus-visible + label 과 같은 모양) */
  #vcbn.vcbn-checkout.vcbn-pp #payment ul.payment_methods:has(> li.payment_method_nicepay_npay_money > input[type="radio"]:focus-visible) > li.payment_method_nicepay_npay > label,
  #vcbn.vcbn-checkout.vcbn-pp #payment ul.payment_methods:has(> li.payment_method_nicepay_tosspay_money > input[type="radio"]:focus-visible) > li.payment_method_nicepay_tosspay > label {
    outline: 2px solid #1b64da;
    outline-offset: -2px;
  }
}

/* 고르는 창 (body 로 옮겨진 .vcbn-modal 안 — #vcbn 의 색 변수가 닿지 않아 색을 직접 쓴다) */
.vcbn-modal .vcbn-pp-box {
  max-width: 400px;
}
.vcbn-modal .vcbn-pp-opts {
  display: grid;
  gap: 8px;
}
.vcbn-modal .vcbn-pp-opt {
  display: block;
  width: 100%;
  min-height: 0;
  margin: 0;
  padding: 13px 14px;
  border: 1px solid #e5e8eb;
  border-radius: 12px;
  background: #fff;
  font-family: inherit;
  line-height: 1.35;
  letter-spacing: inherit;
  text-align: left;
  text-transform: none;
  color: #191f28;
  box-shadow: none;
  cursor: pointer;
}
.vcbn-modal .vcbn-pp-opt b {
  display: block;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  color: #191f28;
}
.vcbn-modal .vcbn-pp-opt span {
  display: block;
  margin-top: 2px;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.4;
  color: #4e5968;
}
.vcbn-modal .vcbn-pp-opt.is-current {
  border-color: #191f28;
  box-shadow: inset 0 0 0 1px #191f28;
}
.vcbn-modal .vcbn-pp-opt:focus-visible {
  outline: 2px solid #1b64da;
  outline-offset: 2px;
}
@media (hover: hover) {
  .vcbn-modal .vcbn-pp-opt:hover {
    background: #f8f9fb;
  }
}

/* ═════════════ v2.25.0 — 장바구니 쿠폰·포인트 보기 전용 · v2.27.0 하단 「주문하기」 위 말풍선 (시안 19) ═════════════
   「쿠폰 N장 · 보유 포인트 NP — 결제 단계에서 적용」 — 하단 고정 버튼(.vcbn-cta) 안, 버튼 바로 위. 꼬리가 버튼을 가리킨다.
   본문에는 쿠폰·포인트 칸이 없다. 하나도 고르지 않았을 때(.vcbn-none — 버튼이 「주문할 상품을 선택해 주세요」)는 숨긴다. */
#vcbn .vcbn-cbub {
  position: relative;
  margin: 0 0 10px;
  padding: 9px 12px;
  border-radius: 10px;
  background: var(--tx);
  font-size: 13px;
  line-height: 1.4;
  text-align: center;
  color: #fff;
}
#vcbn .vcbn-cbub b {
  font-weight: 600;
  color: #ffd166;
}
#vcbn .vcbn-cbub a {
  font-weight: 600;
  text-decoration: underline;
  color: #fff;
}
#vcbn .vcbn-cbub::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -6px;
  margin-left: -6px;
  border: 6px solid transparent;
  border-bottom: 0;
  border-top-color: var(--tx);
}
#vcbn.vcbn-none .vcbn-cbub {
  display: none;
}

/* 보기 전용 쿠폰 목록 (팝업은 body 로 옮겨져 #vcbn 색 변수가 닿지 않는다) — 「결제 단계에서 적용」 안내를 본문색으로 */
.vcbn-modal .vcb-coupon-dialog.is-view .vcb-cd-note {
  font-size: 13px;
  color: #41464f;
}
.vcbn-modal .vcb-coupon-dialog.is-view .vcb-cd-note b {
  font-weight: 600;
  color: #16181d;
}

/* ═════════════ v2.29.0 — 결제 입력칸 칸 안 제목 · 스위치 · 빠진 칸 (사용자 선택 시안 1~6, 2026-10-19 — v2.29.3 에서 포장·사은품 요약 줄은 없앰) ═════════════
   입력칸은 로마스토어 값: 높이 72(테두리 포함) · 모서리 12 · 여백 위 34(제목 자리)/옆 16/아래 12 · 제목 12px 500 회색 · 값 16px.
   제목(label)은 입력칸 위에 겹쳐 둔다(position:absolute, 누르면 입력칸이 받는다) — 테두리·포커스·오류 표시는 종전대로 입력칸이 맡고,
   우커머스·이 화면의 오류 문구는 줄 끝(입력칸 바로 아래)에 붙는다. 별표(*)는 숨기고 선택 칸만 이름에 「(선택)」(서버 field_args).
   v2.10.2 에서 숫자로 정한 라벨 13.5px·입력 15px 은 이 시안 값(12px·16px)으로 바뀐다. 이 블록을 지우면 종전 모양으로 돌아간다. */

/* 한 줄에 칸 하나 (종전: 휴대폰·이메일 / 받는 분·휴대폰 2열 — 그 규칙이 ID 선택자라 같은 ID 로 덮는다. 순서(order)는 종전 그대로) */
#vcbn.vcbn-checkout .vcbn-buyer .vcb-form-grid > *,
#vcbn.vcbn-checkout .vcbn-ship .vcb-form-grid > *,
#vcbn.vcbn-checkout .vcbn-buyer #billing_first_name_kr_field,
#vcbn.vcbn-checkout .vcbn-buyer #billing_first_name_field,
#vcbn.vcbn-checkout .vcbn-buyer #billing_phone_kr_field,
#vcbn.vcbn-checkout .vcbn-buyer #billing_phone_field,
#vcbn.vcbn-checkout .vcbn-buyer #billing_email_field,
#vcbn.vcbn-checkout .vcbn-buyer #billing_email_kr_field,
#vcbn.vcbn-checkout .vcbn-ship #shipping_first_name_kr_field,
#vcbn.vcbn-checkout .vcbn-ship #shipping_first_name_field,
#vcbn.vcbn-checkout .vcbn-ship #shipping_phone_kr_field,
#vcbn.vcbn-checkout .vcbn-ship #shipping_phone_field {
  grid-column: 1 / -1;
}
#vcbn.vcbn-checkout .vcbn-buyer .form-row,
#vcbn.vcbn-checkout .vcbn-ship .form-row,
#vcbn.vcbn-checkout .vcbn-request .form-row,
#vcbn.vcbn-checkout .vcbn-pack .form-row {
  position: relative;
  margin: 0 0 8px;
}

/* 칸 안 제목 — 입력칸 왼쪽 위. 체크칸 줄(label 안에 체크칸)은 제외 */
#vcbn.vcbn-checkout .vcbn-buyer .form-row > label:not(.checkbox):not(.woocommerce-form__label-for-checkbox),
#vcbn.vcbn-checkout .vcbn-ship .form-row > label:not(.checkbox):not(.woocommerce-form__label-for-checkbox),
#vcbn.vcbn-checkout .vcbn-request .form-row > label:not(.checkbox):not(.woocommerce-form__label-for-checkbox),
#vcbn.vcbn-checkout .vcbn-pack .form-row > label:not(.checkbox):not(.woocommerce-form__label-for-checkbox),
#vcbn.vcbn-checkout .vcbn-ship [id$="-addr1_field"]::before,
#vcbn.vcbn-checkout .vcbn-ship [id$="-addr2_field"]::before,
#vcbn.vcbn-checkout .vcbn-request .vcbn-has-preset .woocommerce-input-wrapper::before {
  position: absolute;
  top: 17px;
  right: 17px;
  left: 17px;
  z-index: 3;
  display: block;
  margin: 0;
  padding: 0;
  overflow: hidden;
  font-size: 12px;
  font-weight: 500;
  line-height: 16px;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: #6a7282;
  pointer-events: none;
}
/* 제목 줄이 없는 엠샵 주소 두 칸 · 배송 메시지 직접 입력 칸 */
#vcbn.vcbn-checkout .vcbn-ship [id$="-addr1_field"]::before {
  content: "도로명 주소";
}
#vcbn.vcbn-checkout .vcbn-ship [id$="-addr2_field"]::before {
  content: "상세 주소(선택)";
}
#vcbn.vcbn-checkout[data-addr2-req="1"] .vcbn-ship [id$="-addr2_field"]::before {
  content: "상세 주소";
}
#vcbn.vcbn-checkout .vcbn-request .vcbn-has-preset .woocommerce-input-wrapper::before {
  content: "메시지";
}
#vcbn.vcbn-checkout .vcbn-request .vcbn-has-preset .woocommerce-input-wrapper {
  position: relative;
  margin-top: 8px;
}
/* 별표 · 「(선택 사항)」 숨김 — 선택 칸은 이름에 「(선택)」이 들어 있다 */
#vcbn.vcbn-checkout .vcbn-buyer .form-row > label .required,
#vcbn.vcbn-checkout .vcbn-buyer .form-row > label .optional,
#vcbn.vcbn-checkout .vcbn-ship .form-row > label .required,
#vcbn.vcbn-checkout .vcbn-ship .form-row > label .optional,
#vcbn.vcbn-checkout .vcbn-request .form-row > label .required,
#vcbn.vcbn-checkout .vcbn-request .form-row > label .optional,
#vcbn.vcbn-checkout .vcbn-pack .form-row > label .required,
#vcbn.vcbn-checkout .vcbn-pack .form-row > label .optional {
  display: none;
}

/* 입력칸 상자 */
#vcbn.vcbn-checkout .vcbn-buyer .form-row input.input-text,
#vcbn.vcbn-checkout .vcbn-buyer .form-row select,
#vcbn.vcbn-checkout .vcbn-ship .form-row input.input-text,
#vcbn.vcbn-checkout .vcbn-ship .form-row select,
#vcbn.vcbn-checkout .vcbn-request .form-row input.input-text,
#vcbn.vcbn-checkout .vcbn-request .form-row select,
#vcbn.vcbn-checkout .vcbn-request .form-row textarea,
#vcbn.vcbn-checkout .vcbn-pack .form-row input.input-text:not(.vcbn-direct),
#vcbn.vcbn-checkout .vcbn-pack .form-row select {
  height: 72px;
  margin: 0 !important;
  padding: 34px 16px 12px;
  border: 1px solid #e3e6ec;
  border-radius: 12px;
  background-color: #fff;
  font-size: 16px !important;
  font-weight: 400;
  line-height: 24px;
  color: var(--tx);
}
#vcbn.vcbn-checkout .vcbn-buyer .form-row select,
#vcbn.vcbn-checkout .vcbn-ship .form-row select,
#vcbn.vcbn-checkout .vcbn-request .form-row select,
#vcbn.vcbn-checkout .vcbn-pack .form-row select {
  width: 100% !important;
  padding-right: 42px;
  background-position: right 16px center;
}
#vcbn.vcbn-checkout .vcbn-request .form-row textarea {
  height: 104px;
  resize: none;
}
#vcbn.vcbn-checkout .vcbn-buyer .form-row input::placeholder,
#vcbn.vcbn-checkout .vcbn-ship .form-row input::placeholder,
#vcbn.vcbn-checkout .vcbn-request .form-row textarea::placeholder,
#vcbn.vcbn-checkout .vcbn-pack .form-row input::placeholder {
  font-size: 14px !important;
  color: #a6adb8;
}
/* 읽기 전용(엠샵 우편번호·기본주소)도 흰 바탕 — 칸을 누르면 주소 검색이 열린다(엠샵 mshop-address.js) */
#vcbn.vcbn-checkout .vcbn-ship .form-row input[readonly] {
  background-color: #fff;
  cursor: pointer;
}
/* 포커스 — 진한 테두리, 맞닿은 칸(우편번호·도로명 주소) 위로 올라와 테두리가 가리지 않게 */
#vcbn.vcbn-checkout .vcbn-buyer .form-row input:focus,
#vcbn.vcbn-checkout .vcbn-buyer .form-row select:focus,
#vcbn.vcbn-checkout .vcbn-ship .form-row input:focus,
#vcbn.vcbn-checkout .vcbn-ship .form-row select:focus,
#vcbn.vcbn-checkout .vcbn-request .form-row select:focus,
#vcbn.vcbn-checkout .vcbn-request .form-row textarea:focus,
#vcbn.vcbn-checkout .vcbn-pack .form-row input:focus,
#vcbn.vcbn-checkout .vcbn-pack .form-row select:focus {
  position: relative;
  z-index: 2;
  border-color: var(--tx);
}

/* 우편번호 + 도로명 주소 — 한 덩어리 상자 (사이 줄은 옅게) */
#vcbn.vcbn-checkout .vcbn-ship [id$="-postnum_field"],
#vcbn.vcbn-checkout .vcbn-ship [id$="-postnum_field"].mshop-enable-kr {
  display: block !important;
  margin-bottom: 0;
}
#vcbn.vcbn-checkout .vcbn-ship [id$="-postnum_field"] input.postnum {
  width: 100% !important;
  padding-right: 108px;
}
#vcbn.vcbn-checkout .vcbn-ship [id$="-addr1_field"] {
  margin-top: -1px;
}
/* v2.29.1: 위 「입력칸 상자」 규칙(.form-row input.input-text)보다 약해 도로명 주소 칸의 위 모서리가 둥글게 남고 사이 줄이 두 줄로 보였다
   (사용자 지적 10-19 「보더값 이상해」) → 같은 꼴에 줄 ID 를 더해 덮는다. 포커스·오류도 같은 세기로 다시 둔다. */
#vcbn.vcbn-checkout .vcbn-ship .form-row[id$="-postnum_field"] input.input-text {
  border-radius: 12px 12px 0 0;
}
#vcbn.vcbn-checkout .vcbn-ship .form-row[id$="-addr1_field"] input.input-text {
  border-top-color: #eef0f3;
  border-radius: 0 0 12px 12px;
}
#vcbn.vcbn-checkout .vcbn-ship .form-row[id$="-addr1_field"] input.input-text:focus {
  border-top-color: var(--tx);
}
#vcbn.vcbn-checkout .vcbn-ship [id$="-addr2_field"] {
  margin-top: 0;
}
/* 「주소 검색」 — 우편번호 칸 안 오른쪽의 연회색 작은 버튼(칸 높이 72 가운데). 엠샵 CSS(mshop-address.css)가 배경 #202020·흰 글자를
   !important 로 걸어 두므로 배경·글자색은 !important 로 덮는다(v2.29.0 은 투명 배경이 밀려 검은 덩어리로 보였다 — v2.29.1 사용자 지적). */
#vcbn.vcbn-checkout .vcbn-ship .form-row a.ms-open-popup-link {
  position: absolute;
  top: 18px;
  right: 12px;
  z-index: 3;
  height: 36px;
  padding: 0 14px;
  border: 0;
  border-radius: 8px;
  background-color: #f2f4f6 !important;
  font-size: 14px;
  font-weight: 600;
  color: #191f28 !important;
}

/* 무인택배함 — 상세 주소 아래 글자 버튼 (시안 2) */
#vcbn.vcbn-checkout .vcbn-locker {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  width: auto;
  height: auto;
  margin: 2px 0 8px;
  padding: 6px 2px;
  border: 0;
  border-radius: 0;
  background: none;
  font-size: 14px;
  font-weight: 500;
  color: var(--mu);
}

/* 스위치 줄 — 「받는 분이 주문자와 같아요」 · 「야한박스 빼고 내용물만 보내기」 */
#vcbn.vcbn-checkout .vcbn-tg {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 8px;
  padding: 14px 16px;
  border-radius: 12px;
  background: #f6f7f9;
  cursor: pointer;
}
#vcbn.vcbn-checkout .vcbn-tg .tx {
  flex: 1;
  min-width: 0;
}
#vcbn.vcbn-checkout .vcbn-tg .tx b {
  display: block;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--tx);
}
#vcbn.vcbn-checkout .vcbn-tg .tx small {
  display: block;
  margin-top: 1px;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.4;
  color: var(--mu);
}
#vcbn.vcbn-checkout .vcbn-tg.is-agreed .tx small {
  font-weight: 600;
  color: #e5484d;
}
#vcbn.vcbn-checkout input.vcbn-sw {
  position: relative;
  flex: none;
  width: 44px;
  height: 26px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: #d1d6db;
  box-shadow: none;
  cursor: pointer;
  transition: background-color 0.15s;
  -webkit-appearance: none;
  appearance: none;
}
#vcbn.vcbn-checkout input.vcbn-sw::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
  transition: left 0.15s;
}
#vcbn.vcbn-checkout input.vcbn-sw:checked {
  background: #18293d;
}
#vcbn.vcbn-checkout input.vcbn-sw:checked::after {
  left: 21px;
}
#vcbn.vcbn-checkout input.vcbn-sw:focus-visible {
  outline: 2px solid #1b64da;
  outline-offset: 2px;
}
/* 켜면 받는 분 이름·휴대폰 칸을 숨긴다(값은 주문자 값으로 복사돼 제출된다). 엠샵이 줄에 넣는 인라인 display 보다 우선. */
#vcbn.vcbn-checkout .vcbn-ship.is-same #shipping_first_name_kr_field,
#vcbn.vcbn-checkout .vcbn-ship.is-same #shipping_first_name_field,
#vcbn.vcbn-checkout .vcbn-ship.is-same #shipping_phone_kr_field,
#vcbn.vcbn-checkout .vcbn-ship.is-same #shipping_phone_field {
  display: none !important;
}
/* 야한박스 스위치 줄은 포장 칸의 칸들 사이 */
#vcbn.vcbn-checkout .vcbn-pack .vcbn-boxrow {
  margin: 0;
}

/* 카드 — 회원 주문자 · 배송지 (주문자도 배송지와 같은 모양: 사용자 지정) */
#vcbn.vcbn-checkout .vcbn-card {
  padding: 16px;
  border: 1px solid #e3e6ec;
  border-radius: 12px;
  background: #fff;
}
#vcbn.vcbn-checkout .vcbn-card .nm {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 8px;
  font-size: 16px;
  line-height: 1.45;
}
#vcbn.vcbn-checkout .vcbn-card .nm b {
  font-size: 16px;
  font-weight: 600;
  color: var(--tx);
}
#vcbn.vcbn-checkout .vcbn-card .nm span {
  font-size: 15px;
  font-weight: 400;
  color: #4b5563;
}
#vcbn.vcbn-checkout .vcbn-card .nm em {
  padding: 1px 7px;
  border-radius: 999px;
  background: #f2f4f6;
  font-size: 12px;
  font-style: normal;
  font-weight: 500;
  color: var(--mu);
}
#vcbn.vcbn-checkout .vcbn-card .ad {
  margin-top: 4px;
  font-size: 15px;
  line-height: 1.45;
  word-break: break-all;
  color: var(--tx);
}
#vcbn.vcbn-checkout .vcbn-buyer .vcbn-card .ad {
  color: #4b5563;
}

/* 배송 방법이 하나뿐일 때의 한 줄 — 배송지 카드 안(회원 · 접힘) 또는 배송 방법 칸 */
#vcbn .vcbn-shipline {
  display: none;
}
#vcbn.is-ship-single .vcbn-shipline {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 14px;
  line-height: 1.45;
  color: #4b5563;
}
#vcbn.is-ship-single .vcbn-card .vcbn-shipline {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #f0f2f5;
}
#vcbn .vcbn-shipline b {
  font-weight: 600;
  color: var(--tx);
}
/* v2.32.0: 일반배송 하나뿐일 때 — 1줄 제목 / 2·3줄 vavoom-delivery 안내(큰 줄·작은 줄) / 4줄 오늘배송을 못 고르는 사유 */
#vcbn .vcbn-shipline .vcbn-shipline-title,
#vcbn .vcbn-shipline .vcbn-shipline-desc {
  display: block;
}
#vcbn .vcbn-shipline .vcbn-shipline-desc {
  margin-top: 2px;
}
#vcbn .vcbn-shipline .vcbn-shipline-note {
  display: block;
  margin-top: 4px;
  font-size: 13px;
  color: #6b7280;
}
/* v2.32.0: 배송 방법의 도착일(문구의 굵은 부분 — 예: 「내일(수) 도착」)은 굵게 + 사이트 메인 빨강(카드 둘·한 줄 모두) */
#vcbn .vcb-shipping-option .shipping-desc .vdlv-checkout b,
#vcbn .vcb-shipping-option .shipping-desc .vdlv-checkout strong,
#vcbn .vcbn-shipline .vdlv-checkout b,
#vcbn .vcbn-shipline .vdlv-checkout strong {
  font-weight: 700;
  color: var(--bde-palette-color-1, #ed2e1b);
}
#vcbn .vcbn-truck {
  flex: none;
  width: 20px;
  height: 20px;
  margin-top: -1px;
  color: #18293d;
}
/* 하나뿐이면 고르는 카드는 숨긴다(체크된 라디오는 그대로 제출). 회원 배송지 카드가 접혀 있으면 배송 방법 칸째 숨긴다(카드 안에 한 줄). */
#vcbn.is-ship-single .vcbn-shipmethod .vcb-shipping-selector {
  display: none;
}
#vcbn.is-ship-single .vcbn-ship.is-folded ~ .vcbn-shipmethod {
  display: none;
}

/* 비회원 — 포인트 줄 자리의 로그인 안내 (시안 3) */
#vcbn.vcbn-checkout .vcbn-dc-guest .vcbn-dc-login {
  flex: none;
  font-size: 14px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
  color: #18293d;
}

/* 송장 품목명 「직접 입력」 칸 (initBoxname 이 고르기 칸 아래에 만든다 — 제목 없이 자리표시만) */
#vcbn.vcbn-checkout .vcbn-pack .form-row input.vcbn-direct {
  height: 56px;
  margin-top: 8px !important;
  padding: 0 16px;
  border: 1px solid #e3e6ec;
  border-radius: 12px;
  font-size: 16px !important;
}

/* 빠진 칸 — 그 칸만 빨간 테두리 + 바로 밑 한 줄 (vcb-nd.js initValidate · 우커머스 칸 검사도 같은 빨강) */
#vcbn.vcbn-checkout .form-row.vcbn-err input:not([type="checkbox"]):not([type="radio"]),
#vcbn.vcbn-checkout .form-row.vcbn-err select,
#vcbn.vcbn-checkout .form-row.vcbn-err textarea,
#vcbn.vcbn-checkout .form-row.woocommerce-invalid input.input-text,
#vcbn.vcbn-checkout .form-row.woocommerce-invalid select {
  border-color: #e5484d;
}
#vcbn.vcbn-checkout .form-row.vcbn-err:not([id$="-postnum_field"]):not([id$="-addr1_field"]) input:not([type="checkbox"]):not([type="radio"]),
#vcbn.vcbn-checkout .form-row.vcbn-err select,
#vcbn.vcbn-checkout .form-row.vcbn-err textarea {
  box-shadow: inset 0 0 0 1px #e5484d;
}
/* 주소 덩어리는 바깥 테두리만 빨강, 사이 줄은 옅게 그대로 (v2.29.1: 도로명 주소 칸 규칙과 같은 세기 이상으로) */
#vcbn.vcbn-checkout .vcbn-ship .form-row.vcbn-err[id$="-addr1_field"] input.input-text,
#vcbn.vcbn-checkout .vcbn-ship .form-row.woocommerce-invalid[id$="-addr1_field"] input.input-text {
  border-color: #e5484d;
  border-top-color: #eef0f3;
}
#vcbn.vcbn-checkout .vcbn-err-msg,
#vcbn.vcbn-checkout .vcbn-buyer .form-row .checkout-inline-error-message,
#vcbn.vcbn-checkout .vcbn-ship .form-row .checkout-inline-error-message {
  margin: 6px 2px 0;
  padding: 0;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.4;
  color: #e5484d;
}
#vcbn.vcbn-checkout .vcbn-pay > .vcbn-err-msg {
  margin: 0 0 10px;
}
#vcbn.vcbn-checkout .vcbn-shipmethod.vcbn-err .vcb-shipping-option .shipping-card {
  border-color: #e5484d;
}

/* 배송 메시지 고르기 칸(vcb-main.js 가 만든 select#vcb-preset-select) — 종전 ID 규칙(2.10.2·2.16.2)보다 구체적으로 같은 상자 값을 준다 */
#vcbn.vcbn-checkout .vcbn-request select#vcb-preset-select {
  width: 100% !important;
  height: 72px;
  margin: 0 !important;
  padding: 34px 42px 12px 16px;
  border: 1px solid #e3e6ec;
  border-radius: 12px;
  background-color: #fff;
  background-position: right 16px center;
  font-size: 16px !important;
  line-height: 24px;
  color: var(--tx);
}
#vcbn.vcbn-checkout .vcbn-request select#vcb-preset-select:focus {
  position: relative;
  z-index: 2;
  border-color: var(--tx);
}

/* ═════════════ v2.29.2 — 장바구니 웰컴딜 미적용 사유 (vavoom-pricing 안내 내용을 상품 목록 바로 아래에) ═════════════
   마크업은 vavoom-pricing notice_html() 그대로(.vavoom-wd-notice — 그쪽 쇼트코드의 인라인 스타일은 안 실린다). 강조색(#FA5250)은 할인 금액·결제 버튼
   전용이라 제목은 「필수」 안내와 같은 경고 빨강 #c92a2a(흰 바탕 대비 약 5.5:1). */
#vcbn .vcbn-wd {
  margin: 12px 0 0;
}
#vcbn .vcbn-wd .vavoom-wd-notice {
  margin: 0;
  padding: 12px 14px;
  border: 0;
  border-radius: 10px;
  background: #fff5f4;
}
#vcbn .vcbn-wd .vavoom-wd-notice-title {
  margin: 0 0 6px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  color: #c92a2a;
}
#vcbn .vcbn-wd .vavoom-wd-notice-list {
  margin: 0;
  padding: 0 0 0 18px;
  list-style: disc;
}
#vcbn .vcbn-wd .vavoom-wd-notice-list li {
  margin: 2px 0;
  font-size: 13.5px;
  line-height: 1.55;
  color: #4e5968;
}
