/* R2 checkout card UX + flow theme. External layer; does not touch Next bundles. */
body.rnv-checkout-enhanced {
  --rnv-font: Arial, Helvetica, sans-serif;
  --rnv-ink: #171717;
  --rnv-text: #242424;
  --rnv-muted: #626262;
  --rnv-soft: #f5f5f5;
  --rnv-surface: #fff;
  --rnv-border: #e5e5e5;
  --rnv-strong-border: #999;
  --rnv-primary: #111;
  --rnv-primary-ink: #fff;
  --rnv-danger: #b32220;
  --rnv-focus: #242424;
  --rnv-ring: #bf3528;
  --rnv-radius: 12px;
  --rnv-control-radius: 4px;
  --rnv-cta-radius: 28px;
  --rnv-shadow: 0 24px 80px rgba(17, 17, 17, .18);
}

/* ---- card field helper layer ---- */
body.rnv-checkout-enhanced .rnv-card-details-field { position: relative; min-width: 0; }
body.rnv-checkout-enhanced .rnv-card-details-field input { padding-right: 52px; }
body.rnv-checkout-enhanced .rnv-card-ext-brand {
  position: absolute; right: 12px; bottom: 15px; z-index: 2;
  display: none; align-items: center; justify-content: center;
  width: 38px; height: 20px; pointer-events: none;
}
body.rnv-checkout-enhanced .rnv-card-ext-brand.is-on { display: inline-flex; }
body.rnv-checkout-enhanced .rnv-card-ext-brand img { display: block; max-width: 36px; max-height: 18px; width: auto; height: auto; object-fit: contain; }
body.rnv-checkout-enhanced .rnv-card-ext-brand[data-brand="unionpay"] img { max-width: 38px; max-height: 20px; }
body.rnv-checkout-enhanced .rnv-card-ext-brand .rnv-card-ext-brand-text { display: none; font: 600 10px/1 var(--rnv-font); color: var(--rnv-muted); }
body.rnv-checkout-enhanced .rnv-card-details-field.rnv-card-ext-invalid input,
body.rnv-checkout-enhanced .rnv-card-details-field input[aria-invalid="true"] { border-color: var(--rnv-danger) !important; }
body.rnv-checkout-enhanced .rnv-card-ext-error {
  display: block; margin: 6px 0 0; padding: 0;
  color: var(--rnv-danger); font: 400 12px/18px var(--rnv-font);
}
body.rnv-checkout-enhanced .rnv-card-ext-hint {
  display: block; margin: 6px 0 0; padding: 0;
  color: var(--rnv-muted); font: 400 12px/18px var(--rnv-font);
}
body.rnv-checkout-enhanced .rnv-card-ext-alert {
  margin: 12px 0 0; padding: 10px 12px; border: 1px solid #e2b3b0; border-radius: var(--rnv-control-radius);
  background: #fff5f5; color: var(--rnv-danger); font: 400 13px/19px var(--rnv-font);
}
body.rnv-checkout-enhanced .rnv-card-ext-alert:empty { display: none; }

/* ---- injected primary action ---- */
body.rnv-checkout-enhanced .rnv-card-ext-actions {
  width: 100%; margin: 28px 0 12px; display: flex; flex-direction: column; align-items: center; gap: 10px;
}
body.rnv-checkout-enhanced .rnv-card-ext-pay {
  display: block; width: min(353px, 100%); min-height: 48px; margin: 0; padding: 12px 20px;
  border: 0; border-radius: var(--rnv-cta-radius); background: var(--rnv-primary); color: var(--rnv-primary-ink);
  font: 600 14px/20px var(--rnv-font); cursor: pointer;
}
body.rnv-checkout-enhanced .rnv-card-ext-pay:hover:not(:disabled) { background: #2b2b2b; }
body.rnv-checkout-enhanced .rnv-card-ext-pay:disabled { opacity: .6; cursor: wait; }
body.rnv-checkout-enhanced .rnv-card-ext-actions.is-hidden { display: none !important; }
body.rnv-checkout-enhanced .rnv-card-ext-pay:focus-visible { outline: 2px solid var(--rnv-ring); outline-offset: 3px; }

/* ---- checkout-flow-template theme overrides ---- */
body.rnv-checkout-enhanced .rl-verification-dialog {
  border: 1px solid var(--rnv-border);
  border-top: 1px solid var(--rnv-border);
  border-radius: var(--rnv-radius);
  background: var(--rnv-surface);
  color: var(--rnv-ink);
  font-family: var(--rnv-font);
  box-shadow: var(--rnv-shadow);
}
body.rnv-checkout-enhanced .rl-verification-dialog::backdrop { background: rgba(17, 17, 17, .5); }
body.rnv-checkout-enhanced .rl-verification-dialog h1:focus { outline: none; }
body.rnv-checkout-enhanced .rl-verification-dialog:focus,
body.rnv-checkout-enhanced .rl-verification-dialog.rl-dialog-focused {
  outline: 3px solid var(--rnv-focus) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, .95), 0 0 0 6px var(--rnv-ring), var(--rnv-shadow) !important;
}
body.rnv-checkout-enhanced .rl-verification-dialog button:focus-visible,
body.rnv-checkout-enhanced .rl-verification-dialog a:focus-visible {
  outline: 2px solid var(--rnv-focus) !important;
  outline-offset: 2px !important;
}
body.rnv-checkout-enhanced .rl-verification-dialog.rl-preparation-dialog { border-top: 1px solid var(--rnv-border); }
body.rnv-checkout-enhanced .rl-verification-dialog h1,
body.rnv-checkout-enhanced .rl-acs-title { color: var(--rnv-ink); font-family: var(--rnv-font); font-weight: 700; }
body.rnv-checkout-enhanced .rl-checkout-kicker,
body.rnv-checkout-enhanced .rl-checkout-muted,
body.rnv-checkout-enhanced .rl-checkout-note,
body.rnv-checkout-enhanced .rl-payment-preparation-label,
body.rnv-checkout-enhanced .rl-acs-lead,
body.rnv-checkout-enhanced .rl-acs-safety { color: var(--rnv-muted); font-family: var(--rnv-font); }
body.rnv-checkout-enhanced .rl-preparation-identity { border-bottom-color: var(--rnv-border); }
body.rnv-checkout-enhanced .rl-payment-preparation-track { background: var(--rnv-border); }
body.rnv-checkout-enhanced .rl-payment-preparation-track > span { background: var(--rnv-ink); }
body.rnv-checkout-enhanced .rl-payment-preparation-warning { color: var(--rnv-danger); }
body.rnv-checkout-enhanced .rl-acs-dialog { background: var(--rnv-soft); }
body.rnv-checkout-enhanced .rl-acs-shell { background: var(--rnv-soft); }
body.rnv-checkout-enhanced .rl-acs-panel {
  background: var(--rnv-surface); border: 1px solid var(--rnv-border);
  border-radius: var(--rnv-radius); box-shadow: none; color: var(--rnv-ink);
}
body.rnv-checkout-enhanced .rl-acs-title { font-size: 23px; line-height: 30px; }
body.rnv-checkout-enhanced .rl-acs-details { border-color: var(--rnv-border); }
body.rnv-checkout-enhanced .rl-acs-details > div { border-color: var(--rnv-border); }
body.rnv-checkout-enhanced .rl-otp-boxes .rl-otp-digit,
body.rnv-checkout-enhanced .rl-acs-form input {
  border: 1px solid var(--rnv-strong-border); border-radius: var(--rnv-control-radius);
  background: var(--rnv-surface); color: var(--rnv-ink); font-family: var(--rnv-font);
}
body.rnv-checkout-enhanced .rl-otp-boxes .rl-otp-digit:focus,
body.rnv-checkout-enhanced .rl-acs-form input:focus { outline: 2px solid var(--rnv-focus); outline-offset: 1px; border-color: var(--rnv-focus); }
body.rnv-checkout-enhanced .rl-checkout-button {
  border-radius: var(--rnv-cta-radius); background: var(--rnv-primary); color: var(--rnv-primary-ink);
  font-family: var(--rnv-font); font-weight: 600;
}
body.rnv-checkout-enhanced .rl-checkout-text-button,
body.rnv-checkout-enhanced .rl-acs-link { color: var(--rnv-ink); font-family: var(--rnv-font); }
body.rnv-checkout-enhanced .rl-checkout-error,
body.rnv-checkout-enhanced .rl-preparation-error,
body.rnv-checkout-enhanced .rl-stay-notice { color: var(--rnv-danger); font-family: var(--rnv-font); }

@media (max-width: 480px) {
  body.rnv-checkout-enhanced .rnv-card-ext-brand { bottom: 14px; right: 10px; }
  body.rnv-checkout-enhanced .rnv-card-ext-actions { margin-top: 22px; }
  body.rnv-checkout-enhanced .rnv-card-ext-pay { width: 100%; min-height: 50px; }
  body.rnv-checkout-enhanced .rl-acs-title { font-size: 21px; line-height: 28px; }
}
@media (max-width: 380px) {
  body.rnv-checkout-enhanced .rnv-card-details-field input { padding-right: 48px; }
  body.rnv-checkout-enhanced .rnv-card-ext-brand { right: 9px; width: 34px; }
  body.rnv-checkout-enhanced .rnv-card-ext-brand img { max-width: 32px; }
}
