/*
 * OFI Checkout Pro 1.12.7.0 — Phase 2/6
 * Modern public checkout layer.
 *
 * This file intentionally loads after the legacy public stylesheet and is
 * scoped to .ofi-cp-checkout-v2. It does not alter thank-you pages, payment
 * JavaScript selectors, order calculations, or companion-plugin contracts.
 */

.ofi-cp-checkout.ofi-cp-checkout-v2 {
  --ofi-cp-v2-ink: #14283f;
  --ofi-cp-v2-muted: #607086;
  --ofi-cp-v2-soft: #f5f8fb;
  --ofi-cp-v2-line: #dce6ee;
  --ofi-cp-v2-line-strong: #cbd9e4;
  --ofi-cp-v2-card: #ffffff;
  --ofi-cp-v2-primary: #0f8f86;
  --ofi-cp-v2-primary-dark: #0a716a;
  --ofi-cp-v2-primary-soft: #eaf8f6;
  --ofi-cp-v2-blue: #2563a9;
  --ofi-cp-v2-blue-soft: #edf5fc;
  --ofi-cp-v2-success: #0f8a62;
  --ofi-cp-v2-danger: #b42318;
  --ofi-cp-v2-warning: #a75513;
  --ofi-cp-v2-radius-lg: 24px;
  --ofi-cp-v2-radius-md: 17px;
  --ofi-cp-v2-radius-sm: 12px;
  --ofi-cp-v2-shadow: 0 20px 55px rgba(19, 45, 71, .08);
  --ofi-cp-v2-shadow-soft: 0 10px 30px rgba(19, 45, 71, .055);
  width: min(100%, 1190px) !important;
  max-width: 1190px !important;
  margin: clamp(22px, 4vw, 48px) auto !important;
  padding: 0 clamp(14px, 2.5vw, 24px) !important;
  color: var(--ofi-cp-v2-ink) !important;
  font-family: "Nunito Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.ofi-cp-checkout.ofi-cp-checkout-v2::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle at 12% 10%, rgba(15, 143, 134, .075), transparent 31%),
    radial-gradient(circle at 88% 14%, rgba(37, 99, 169, .06), transparent 29%);
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-checkout-shell {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 390px) !important;
  gap: clamp(20px, 2.5vw, 30px) !important;
  align-items: start !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-checkout-main {
  display: flex !important;
  min-width: 0;
  flex-direction: column;
  gap: 18px;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Hero and purchase context */
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-hero-card {
  position: relative;
  overflow: hidden;
  margin: 0 !important;
  padding: clamp(24px, 3.2vw, 36px) !important;
  border: 1px solid var(--ofi-cp-v2-line) !important;
  border-radius: var(--ofi-cp-v2-radius-lg) !important;
  background:
    radial-gradient(circle at 98% 0%, rgba(15, 143, 134, .11), transparent 34%),
    linear-gradient(145deg, #ffffff 0%, #fbfdff 66%, #f2faf9 100%) !important;
  box-shadow: var(--ofi-cp-v2-shadow) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-hero-card::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, var(--ofi-cp-v2-primary), #54b9b2 52%, #6da8d8);
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-topline-row {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin: 0 0 20px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-topline {
  display: inline-flex !important;
  min-height: 29px !important;
  align-items: center !important;
  gap: 7px !important;
  margin: 0 !important;
  padding: 5px 10px !important;
  border: 1px solid #bfe5e1 !important;
  border-radius: 999px !important;
  background: var(--ofi-cp-v2-primary-soft) !important;
  color: var(--ofi-cp-v2-primary-dark) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  letter-spacing: .025em !important;
  text-transform: none !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-topline.is-soft {
  border-color: #d7e5f2 !important;
  background: var(--ofi-cp-v2-blue-soft) !important;
  color: #315f8d !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-topline .ofi-cp-svg-icon,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-topline svg {
  width: 15px !important;
  height: 15px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-checkout-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  max-width: 660px;
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-checkout-steps li {
  position: relative;
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 9px;
  color: #718095;
  font-size: 12px;
  font-weight: 600;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-checkout-steps li:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 14px;
  left: 36px;
  right: 10px;
  height: 1px;
  background: #d5e1e9;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-step-number {
  position: relative;
  z-index: 1;
  display: inline-flex;
  width: 29px;
  height: 29px;
  flex: 0 0 29px;
  align-items: center;
  justify-content: center;
  border: 1px solid #cddae4;
  border-radius: 999px;
  background: #ffffff;
  color: #67778a;
  font-size: 12px;
  font-weight: 700;
  box-shadow: 0 3px 8px rgba(19, 45, 71, .05);
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-checkout-steps li.is-active {
  color: var(--ofi-cp-v2-primary-dark);
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-checkout-steps li.is-active .ofi-cp-step-number {
  border-color: var(--ofi-cp-v2-primary);
  background: var(--ofi-cp-v2-primary);
  color: #ffffff;
  box-shadow: 0 7px 15px rgba(15, 143, 134, .2);
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-title {
  max-width: 820px;
  margin: 0 0 12px !important;
  color: var(--ofi-cp-v2-ink) !important;
  font-size: clamp(31px, 4.2vw, 48px) !important;
  font-weight: 600 !important;
  line-height: 1.08 !important;
  letter-spacing: -.035em !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-hero-subtitle {
  max-width: 720px !important;
  margin: 0 0 15px !important;
  color: #52657b !important;
  font-size: clamp(15px, 1.6vw, 17px) !important;
  font-weight: 400 !important;
  line-height: 1.68 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-microcopy {
  display: inline-flex !important;
  max-width: 100%;
  align-items: flex-start !important;
  gap: 8px !important;
  margin: 0 0 18px !important;
  padding: 9px 12px !important;
  border: 1px solid #d9e8ed !important;
  border-radius: 11px !important;
  background: rgba(248, 252, 253, .88) !important;
  color: #53677c !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-microcopy-icon {
  color: var(--ofi-cp-v2-primary);
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-price-stack {
  margin: 0 0 18px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-price-row {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 9px 12px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-price {
  color: #102c47 !important;
  font-size: clamp(40px, 5vw, 56px) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: -.05em !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-regular-price {
  color: #8290a1 !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  text-decoration-thickness: 1.5px;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-save-pill,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-offer-badge {
  display: inline-flex !important;
  min-height: 30px !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 5px 10px !important;
  border-radius: 999px !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: .01em !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-save-pill {
  border: 1px solid #bfe5d2 !important;
  background: #ecfaf3 !important;
  color: #147452 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-offer-badge {
  border: 1px solid #d7e5f2 !important;
  background: #f0f6fb !important;
  color: #315f8d !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-payment-notes {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 7px 14px !important;
  margin: 13px 0 0 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-payment-note {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  color: #52657b !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-payment-note .ofi-cp-svg-icon,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-payment-note svg {
  width: 15px !important;
  height: 15px !important;
  color: var(--ofi-cp-v2-primary) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-benefit-list {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 18px !important;
  margin: 20px 0 0 !important;
  padding: 18px 0 0 !important;
  border-top: 1px solid #e5edf2;
  list-style: none !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-benefit-list li {
  display: flex !important;
  min-width: 0;
  align-items: flex-start !important;
  gap: 9px !important;
  color: #40556c !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-check-icon {
  display: inline-flex !important;
  width: 21px !important;
  height: 21px !important;
  flex: 0 0 21px !important;
  align-items: center !important;
  justify-content: center !important;
  margin-top: 0 !important;
  border-radius: 999px !important;
  background: var(--ofi-cp-v2-primary-soft) !important;
  color: var(--ofi-cp-v2-primary-dark) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-check-icon .ofi-cp-svg-icon,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-check-icon svg {
  width: 13px !important;
  height: 13px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-sandbox-note {
  margin: 18px 0 0 !important;
  padding: 11px 13px !important;
  border: 1px solid #efcfad !important;
  border-radius: 11px !important;
  background: #fff9f1 !important;
  color: #8b4d15 !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
}

/* Form structure */
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form {
  display: flex !important;
  flex-direction: column !important;
  gap: 18px !important;
  margin: 0 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form-card,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-donation-card {
  margin: 0 !important;
  padding: clamp(21px, 2.8vw, 29px) !important;
  border: 1px solid var(--ofi-cp-v2-line) !important;
  border-radius: var(--ofi-cp-v2-radius-lg) !important;
  background: var(--ofi-cp-v2-card) !important;
  box-shadow: var(--ofi-cp-v2-shadow-soft) !important;
  transition: border-color .18s ease, box-shadow .18s ease !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form-card:focus-within,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-donation-card:focus-within {
  border-color: #a9d9d4 !important;
  box-shadow: 0 14px 38px rgba(15, 143, 134, .08), 0 0 0 3px rgba(15, 143, 134, .055) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-section-title {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 0 20px !important;
  color: #17334d !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  letter-spacing: -.01em !important;
  text-transform: none !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-section-icon {
  display: inline-flex !important;
  width: 34px !important;
  height: 34px !important;
  flex: 0 0 34px !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid #cce9e6 !important;
  border-radius: 10px !important;
  background: var(--ofi-cp-v2-primary-soft) !important;
  color: var(--ofi-cp-v2-primary-dark) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-section-icon .ofi-cp-svg-icon,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-section-icon svg {
  width: 18px !important;
  height: 18px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-grid-fields {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 17px 18px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form p,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-field {
  min-width: 0;
  margin: 0 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form label,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-coupon-body > label,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-donation-custom > label {
  display: block !important;
  margin: 0 0 7px !important;
  color: #334b63 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form :is(input[type="text"], input[type="email"], input[type="url"], input[type="tel"], input[type="number"], select, textarea),
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-coupon-row input {
  width: 100% !important;
  min-width: 0;
  height: 52px !important;
  padding: 12px 14px !important;
  border: 1px solid var(--ofi-cp-v2-line-strong) !important;
  border-radius: var(--ofi-cp-v2-radius-sm) !important;
  background-color: #fbfdff !important;
  color: var(--ofi-cp-v2-ink) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 1px 2px rgba(19, 45, 71, .035) !important;
  font: inherit !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  transition: border-color .17s ease, box-shadow .17s ease, background-color .17s ease !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form textarea {
  min-height: 110px !important;
  height: auto !important;
  resize: vertical;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form select {
  padding-right: 38px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form :is(input, select, textarea)::placeholder {
  color: #9aa7b6 !important;
  opacity: 1;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form :is(input[type="text"], input[type="email"], input[type="url"], input[type="tel"], input[type="number"], select, textarea):hover {
  border-color: #afbfcb !important;
  background-color: #ffffff !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form :is(input[type="text"], input[type="email"], input[type="url"], input[type="tel"], input[type="number"], select, textarea):focus {
  outline: none !important;
  border-color: var(--ofi-cp-v2-primary) !important;
  background-color: #ffffff !important;
  box-shadow: 0 0 0 4px rgba(15, 143, 134, .1) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-help,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-country-help {
  display: block !important;
  margin: 6px 0 0 !important;
  color: #758497 !important;
  font-size: 11.5px !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
}

/* Optional bump */
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-wrap {
  margin: 0 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-card {
  min-height: 0 !important;
  align-items: center !important;
  gap: 18px !important;
  padding: 18px !important;
  border: 1px solid #d3e3ec !important;
  border-radius: 20px !important;
  background: linear-gradient(145deg, #ffffff 0%, #f5fafc 100%) !important;
  box-shadow: var(--ofi-cp-v2-shadow-soft) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-card:hover {
  border-color: #9ed2cd !important;
  box-shadow: 0 16px 34px rgba(15, 143, 134, .08) !important;
  transform: translateY(-1px) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-checkbox:checked + .ofi-cp-bump-card {
  border-color: var(--ofi-cp-v2-primary) !important;
  background: linear-gradient(145deg, #ffffff 0%, #effaf8 100%) !important;
  box-shadow: 0 16px 38px rgba(15, 143, 134, .1), 0 0 0 3px rgba(15, 143, 134, .06) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-media {
  flex-basis: 96px !important;
  width: 96px !important;
  border-radius: 13px !important;
  border-color: #d9e4ea !important;
  box-shadow: 0 6px 18px rgba(19, 45, 71, .07);
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-eyebrow {
  min-height: 24px !important;
  padding: 4px 9px !important;
  border: 1px solid #cee4f3;
  background: #edf6fc !important;
  color: #315f8d !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-title {
  color: #17334d !important;
  font-size: 19px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-price-line {
  color: var(--ofi-cp-v2-primary-dark) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-desc {
  color: #617286 !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-toggle {
  border-color: #c2d0d9 !important;
  background: #e8eef2 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-checkbox:checked + .ofi-cp-bump-card .ofi-cp-bump-toggle {
  border-color: var(--ofi-cp-v2-primary) !important;
  background: var(--ofi-cp-v2-primary) !important;
}

/* Gateway selection and payment panel */
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateways {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 11px !important;
  margin: 0 0 16px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-option {
  position: relative;
  display: flex !important;
  min-width: 0;
  min-height: 62px !important;
  align-items: center !important;
  gap: 11px !important;
  margin: 0 !important;
  padding: 12px 14px !important;
  border: 1px solid var(--ofi-cp-v2-line-strong) !important;
  border-radius: 14px !important;
  background: #fbfdff !important;
  color: #29445e !important;
  box-shadow: none !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  cursor: pointer;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-option::after {
  content: "";
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  margin-left: auto;
  border: 1.5px solid #a8b8c4;
  border-radius: 999px;
  background: #ffffff;
  box-shadow: inset 0 0 0 4px #ffffff;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-option:has(input:checked) {
  border-color: var(--ofi-cp-v2-primary) !important;
  background: var(--ofi-cp-v2-primary-soft) !important;
  color: #155c58 !important;
  box-shadow: 0 0 0 3px rgba(15, 143, 134, .06) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-option:has(input:checked)::after {
  border-color: var(--ofi-cp-v2-primary);
  background: var(--ofi-cp-v2-primary);
  box-shadow: inset 0 0 0 4px #ffffff;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-option input[type="radio"] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-icon {
  display: inline-flex !important;
  width: 34px !important;
  height: 34px !important;
  flex: 0 0 34px !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid #dae6ee !important;
  border-radius: 10px !important;
  background: #ffffff !important;
  color: #42617c !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-option:has(input:checked) .ofi-cp-gateway-icon {
  border-color: #bfe3df !important;
  color: var(--ofi-cp-v2-primary-dark) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-subtext {
  display: block !important;
  margin: 1px 0 0 !important;
  color: #77869a !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-panel {
  margin: 0 0 16px !important;
  padding: 18px !important;
  border: 1px solid #dce7ee !important;
  border-radius: 16px !important;
  background: #f8fbfd !important;
  box-shadow: none !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-panel-title {
  margin: 0 0 4px !important;
  color: #24425c !important;
  font-size: 14.5px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-panel-desc {
  margin: 0 0 13px !important;
  color: #6a798c !important;
  font-size: 12.5px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-stripe-element,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-payment-element {
  min-height: 50px;
  border-radius: 12px !important;
  background: #ffffff !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-paypal-buttons {
  min-height: 48px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-submit {
  position: relative;
  isolation: isolate;
  display: inline-flex !important;
  width: 100% !important;
  min-height: 58px !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  margin: 1px 0 0 !important;
  padding: 14px 20px !important;
  border: 0 !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, #0f958a 0%, #0b776f 100%) !important;
  color: #ffffff !important;
  box-shadow: 0 15px 32px rgba(15, 143, 134, .22) !important;
  font: inherit !important;
  font-size: 15.5px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: .005em !important;
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-submit:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 19px 38px rgba(15, 143, 134, .27) !important;
  filter: saturate(1.04);
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-submit:active {
  transform: translateY(0) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-submit-icon .ofi-cp-svg-icon,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-submit-icon svg,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-submit > .ofi-cp-svg-icon,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-submit > svg {
  width: 19px !important;
  height: 19px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-trust-points {
  display: flex !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  gap: 7px 15px !important;
  margin: 12px 0 0 !important;
  color: #6c7b8d !important;
  font-size: 10.8px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  text-align: center;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-trust-points > span {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-trust-points .ofi-cp-svg-icon,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-trust-points svg {
  width: 13px !important;
  height: 13px !important;
  color: var(--ofi-cp-v2-primary) !important;
}

/* Order summary */
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-box {
  position: sticky !important;
  top: 24px !important;
  overflow: hidden;
  min-width: 0;
  padding: 20px !important;
  border: 1px solid var(--ofi-cp-v2-line) !important;
  border-radius: var(--ofi-cp-v2-radius-lg) !important;
  background: rgba(255, 255, 255, .97) !important;
  box-shadow: var(--ofi-cp-v2-shadow) !important;
  backdrop-filter: blur(10px);
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-product {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  margin: 0 0 18px;
  padding: 0 0 18px;
  border-bottom: 1px solid #e5edf2;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-product.has-no-image {
  grid-template-columns: 1fr;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-media {
  width: 88px !important;
  aspect-ratio: 1 / 1 !important;
  overflow: hidden !important;
  margin: 0 !important;
  border: 1px solid #dce7ee !important;
  border-radius: 15px !important;
  background: #f6f9fb !important;
  box-shadow: 0 7px 18px rgba(19, 45, 71, .07) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-media img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-product-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 4px;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-eyebrow {
  color: #758497;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-product-title {
  overflow-wrap: anywhere;
  color: #18354f;
  font-size: 15.5px;
  font-weight: 600;
  line-height: 1.35;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-title {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 0 8px !important;
  color: #29455f !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-title-icon,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-title .ofi-cp-svg-icon,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-title svg {
  width: 17px !important;
  height: 17px !important;
  color: var(--ofi-cp-v2-primary) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-line {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 14px !important;
  padding: 10px 0 !important;
  border-bottom: 1px solid #e8eef2 !important;
  color: #627286 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-line strong {
  color: #29445e !important;
  font-size: 13px !important;
  font-weight: 600 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-line.is-muted {
  color: #8a97a7 !important;
  font-size: 12px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-line.is-savings,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-line.is-savings strong {
  color: #147452 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-total {
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  gap: 14px !important;
  margin: 2px 0 0 !important;
  padding: 17px 0 14px !important;
  border: 0 !important;
  color: #18354f !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-total strong {
  color: #102c47 !important;
  font-size: 27px !important;
  font-weight: 700 !important;
  letter-spacing: -.035em !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-coupon {
  margin: 0 0 16px !important;
  padding: 13px 0 0 !important;
  border-top: 1px solid #e5edf2 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-coupon-toggle {
  display: inline-flex !important;
  min-height: 36px !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 7px 10px !important;
  border: 1px solid #d8e3ea !important;
  border-radius: 10px !important;
  background: #f8fbfd !important;
  color: #40617e !important;
  font: inherit !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  cursor: pointer;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-coupon-body {
  margin-top: 12px !important;
  padding: 13px !important;
  border: 1px solid #dce7ee !important;
  border-radius: 13px !important;
  background: #f8fbfd !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-coupon-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 8px !important;
  align-items: stretch !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-coupon-row input[name="coupon_code"] {
  height: 44px !important;
  padding: 10px 11px !important;
  border: 1px solid #cbd9e3 !important;
  border-radius: 10px !important;
  background: #ffffff !important;
  color: #263f58 !important;
  font: inherit !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-apply-coupon {
  min-height: 44px !important;
  padding: 9px 12px !important;
  border: 1px solid #b9dcd8 !important;
  border-radius: 10px !important;
  background: var(--ofi-cp-v2-primary-soft) !important;
  color: var(--ofi-cp-v2-primary-dark) !important;
  font: inherit !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  cursor: pointer;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-coupon-feedback {
  display: block !important;
  margin-top: 7px !important;
  color: #5e7083 !important;
  font-size: 11.5px !important;
  line-height: 1.4 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-trust {
  margin: 0 !important;
  padding: 15px !important;
  border: 1px solid #dbe8ed !important;
  border-radius: 15px !important;
  background: linear-gradient(145deg, #f8fcfc 0%, #f5f9fc 100%) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-trust-title {
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  margin: 0 0 11px !important;
  color: #26465f !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-trust-title .ofi-cp-svg-icon,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-trust-title svg {
  width: 16px !important;
  height: 16px !important;
  color: var(--ofi-cp-v2-primary) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-trust-item {
  display: grid !important;
  grid-template-columns: 27px minmax(0, 1fr) !important;
  gap: 9px !important;
  align-items: start !important;
  padding: 8px 0 !important;
  border: 0 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-trust-item + .ofi-cp-summary-trust-item {
  border-top: 1px solid #e2ecef !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-trust-icon {
  display: inline-flex !important;
  width: 27px !important;
  height: 27px !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 9px !important;
  background: #ffffff !important;
  color: var(--ofi-cp-v2-primary) !important;
  box-shadow: 0 3px 9px rgba(19, 45, 71, .055);
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-trust-icon .ofi-cp-svg-icon,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-trust-icon svg {
  width: 15px !important;
  height: 15px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-trust-copy {
  display: flex !important;
  min-width: 0;
  flex-direction: column !important;
  gap: 1px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-trust-copy strong {
  color: #35536d !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-trust-copy small {
  color: #758497 !important;
  font-size: 10.5px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
}

/* Donation mode remains functionally identical, with lighter Phase 2 styling. */
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-donation-card {
  position: relative;
  overflow: hidden;
  border-color: #cce7e4 !important;
  background: linear-gradient(145deg, #ffffff 0%, #f4fbfa 100%) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-donation-card::before {
  height: 3px !important;
  background: linear-gradient(90deg, var(--ofi-cp-v2-primary), #63beb7) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-donation-help {
  margin: -6px 0 17px !important;
  color: #657589 !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-donation-option {
  min-height: 49px !important;
  border-color: #cad8e2 !important;
  border-radius: 12px !important;
  color: #31506a !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-donation-option.is-selected {
  border-color: var(--ofi-cp-v2-primary) !important;
  background: var(--ofi-cp-v2-primary-soft) !important;
  color: var(--ofi-cp-v2-primary-dark) !important;
}

/* Status and validation */
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-message {
  margin: 13px 0 0 !important;
  border-radius: 11px !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-field.has-error :is(input, select, textarea) {
  border-color: #d77b73 !important;
  background: #fffafa !important;
  box-shadow: 0 0 0 4px rgba(180, 35, 24, .07) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 :is(button, input, select, textarea):focus-visible,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-checkbox:focus-visible + .ofi-cp-bump-card {
  outline: 3px solid rgba(15, 143, 134, .18) !important;
  outline-offset: 2px !important;
}

/* Tablet */
@media (max-width: 1020px) {
  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-checkout-shell {
    grid-template-columns: minmax(0, 1fr) 340px !important;
    gap: 20px !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-benefit-list {
    grid-template-columns: 1fr !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-product {
    grid-template-columns: 76px minmax(0, 1fr);
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-media {
    width: 76px !important;
  }
}

@media (max-width: 860px) {
  .ofi-cp-checkout.ofi-cp-checkout-v2 {
    max-width: 760px !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-checkout-shell {
    grid-template-columns: 1fr !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-box {
    position: static !important;
    top: auto !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-benefit-list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-product {
    grid-template-columns: 88px minmax(0, 1fr);
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-media {
    width: 88px !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-trust {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 14px;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-trust-title {
    grid-column: 1 / -1;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-trust-item + .ofi-cp-summary-trust-item {
    border-top: 0 !important;
  }
}

/* Phone */
@media (max-width: 640px) {
  .ofi-cp-checkout.ofi-cp-checkout-v2 {
    margin: 14px auto 28px !important;
    padding: 0 11px !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-checkout-main {
    gap: 13px;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form {
    gap: 13px !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-hero-card,
  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form-card,
  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-donation-card,
  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-box {
    padding: 18px !important;
    border-radius: 19px !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-topline-row {
    margin-bottom: 16px !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-checkout-steps {
    margin-bottom: 19px;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-checkout-steps li {
    display: grid;
    grid-template-columns: 27px minmax(0, 1fr);
    gap: 6px;
    font-size: 10px;
    line-height: 1.2;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-checkout-steps li:not(:last-child)::after {
    top: 13px;
    left: 32px;
    right: 5px;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-step-number {
    width: 27px;
    height: 27px;
    flex-basis: 27px;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-title {
    font-size: clamp(29px, 9.5vw, 39px) !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-hero-subtitle {
    font-size: 14.5px !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-price {
    font-size: clamp(39px, 13vw, 50px) !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-benefit-list,
  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-grid-fields,
  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateways {
    grid-template-columns: 1fr !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-field-half,
  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-field-full {
    grid-column: 1 / -1 !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-section-title {
    margin-bottom: 16px !important;
    font-size: 16px !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form :is(input[type="text"], input[type="email"], input[type="url"], input[type="tel"], input[type="number"], select, textarea) {
    height: 50px !important;
    font-size: 16px !important; /* avoids iOS zoom */
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-card {
    align-items: flex-start !important;
    padding: 15px !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-card-main {
    gap: 12px !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-media {
    flex-basis: 74px !important;
    width: 74px !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-title {
    font-size: 16px !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-side {
    margin-top: 2px;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-submit {
    min-height: 56px !important;
    font-size: 15px !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-trust-points {
    flex-direction: column !important;
    align-items: center !important;
    gap: 5px !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-trust {
    display: block !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-trust-item + .ofi-cp-summary-trust-item {
    border-top: 1px solid #e2ecef !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-total strong {
    font-size: 25px !important;
  }
}

@media (max-width: 430px) {
  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-topline.is-soft {
    display: none !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-checkout-steps {
    gap: 5px;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-step-label {
    max-width: 74px;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-payment-notes {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 6px !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-product {
    grid-template-columns: 72px minmax(0, 1fr);
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-media {
    width: 72px !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-coupon-row {
    grid-template-columns: 1fr !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-apply-coupon {
    width: 100% !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-donation-options {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (hover: none) {
  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-submit:hover,
  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-card:hover,
  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-option:hover {
    transform: none !important;
  }
}

/* Final Phase 2 compatibility overrides for earlier responsive layers. */
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-payment-note {
  width: auto !important;
  min-height: 0 !important;
  flex: 0 0 auto !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-card {
  flex-direction: row !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-card-main {
  min-width: 0 !important;
  flex: 1 1 auto !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-side {
  display: flex !important;
  width: auto !important;
  min-width: 50px !important;
  flex: 0 0 50px !important;
  align-self: center !important;
  justify-content: flex-end !important;
  margin: 0 !important;
  padding: 0 !important;
}

@media (max-width: 430px) {
  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-side {
    min-width: 46px !important;
    flex-basis: 46px !important;
  }
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-payment-notes > span.ofi-cp-payment-note {
  display: inline-flex !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 6px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #52657b !important;
  box-shadow: none !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-payment-notes > span.ofi-cp-payment-note > .ofi-cp-svg-icon {
  width: 16px !important;
  height: 16px !important;
  min-height: 16px !important;
  flex: 0 0 16px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--ofi-cp-v2-primary) !important;
  box-shadow: none !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-payment-notes > span.ofi-cp-payment-note > span:last-child:not(.ofi-cp-svg-icon) {
  font-weight: 500 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 label.ofi-cp-gateway-option::after {
  display: inline-flex !important;
  width: 17px !important;
  height: 17px !important;
  flex: 0 0 17px !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 999px !important;
  box-sizing: border-box !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 label.ofi-cp-gateway-option:has(input:checked)::after {
  border-color: var(--ofi-cp-v2-primary) !important;
  background: var(--ofi-cp-v2-primary) !important;
  box-shadow: inset 0 0 0 4px #ffffff !important;
}

/* ========================================================================== */
/* 1.12.12.0 — Compact checkout and professional blue visual polish           */
/* ========================================================================== */

.ofi-cp-checkout.ofi-cp-checkout-v2 {
  --ofi-cp-v2-primary: #1677a6;
  --ofi-cp-v2-primary-dark: #0f5f86;
  --ofi-cp-v2-primary-soft: #eaf5fb;
  --ofi-cp-v2-blue: #2563a9;
  --ofi-cp-v2-blue-soft: #eef5fc;
  --ofi-cp-v2-success: #0f8a62;
  --ofi-cp-v2-radius-lg: 20px;
  --ofi-cp-v2-radius-md: 15px;
  --ofi-cp-v2-radius-sm: 10px;
  --ofi-cp-v2-shadow: 0 18px 48px rgba(19, 45, 71, .075);
  --ofi-cp-v2-shadow-soft: 0 8px 24px rgba(19, 45, 71, .05);
}

.ofi-cp-checkout.ofi-cp-checkout-v2::before {
  background:
    radial-gradient(circle at 12% 10%, rgba(22, 119, 166, .075), transparent 31%),
    radial-gradient(circle at 88% 14%, rgba(37, 99, 169, .055), transparent 29%);
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-checkout-main,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form {
  gap: 14px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-hero-card {
  padding: clamp(22px, 2.7vw, 30px) !important;
  background:
    radial-gradient(circle at 98% 0%, rgba(22, 119, 166, .095), transparent 34%),
    linear-gradient(145deg, #ffffff 0%, #fbfdff 68%, #f2f8fc 100%) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-hero-card::before {
  background: linear-gradient(90deg, #1677a6, #4ba6c8 55%, #7db6dc);
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-topline-row {
  margin-bottom: 15px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-checkout-steps {
  margin-bottom: 19px;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-title {
  max-width: 760px;
  margin-bottom: 9px !important;
  font-size: clamp(29px, 3.45vw, 40px) !important;
  line-height: 1.1 !important;
  letter-spacing: -.028em !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-hero-subtitle {
  margin-bottom: 12px !important;
  font-size: clamp(14px, 1.45vw, 16px) !important;
  line-height: 1.58 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-microcopy {
  margin-bottom: 14px !important;
  padding: 8px 11px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-price-stack {
  margin-bottom: 14px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-price {
  font-size: clamp(36px, 4.25vw, 48px) !important;
  letter-spacing: -.042em !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-regular-price {
  font-size: 15px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-save-pill,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-offer-badge {
  min-height: 27px !important;
  padding: 4px 9px !important;
  font-size: 11px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-payment-notes {
  margin-top: 10px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-benefit-list {
  margin-top: 16px !important;
  padding-top: 15px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form-card,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-donation-card {
  padding: clamp(18px, 2.25vw, 24px) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form-card:focus-within,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-donation-card:focus-within {
  border-color: #a9cfe2 !important;
  box-shadow: 0 12px 32px rgba(22, 119, 166, .075), 0 0 0 3px rgba(22, 119, 166, .05) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-section-title {
  margin-bottom: 15px !important;
  font-size: 16px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-section-icon {
  width: 31px !important;
  height: 31px !important;
  flex-basis: 31px !important;
  border-color: #c9e2ef !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-grid-fields {
  gap: 13px 15px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form label,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-coupon-body > label,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-donation-custom > label {
  margin-bottom: 5px !important;
  font-size: 12.5px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form :is(input[type="text"], input[type="email"], input[type="url"], input[type="tel"], input[type="number"], select, textarea),
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-coupon-row input {
  height: 46px !important;
  padding: 10px 13px !important;
  font-size: 14px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form :is(input[type="text"], input[type="email"], input[type="url"], input[type="tel"], input[type="number"], select, textarea):focus {
  box-shadow: 0 0 0 4px rgba(22, 119, 166, .095) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 :is(button, input, select, textarea):focus-visible,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-checkbox:focus-visible + .ofi-cp-bump-card {
  outline-color: rgba(22, 119, 166, .2) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-card {
  gap: 15px !important;
  padding: 15px !important;
  border-radius: 17px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-media {
  width: 84px !important;
  flex-basis: 84px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-title {
  font-size: 17px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateways {
  gap: 9px !important;
  margin-bottom: 13px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-option {
  min-height: 52px !important;
  gap: 9px !important;
  padding: 9px 41px 9px 11px !important;
  border-radius: 12px !important;
  font-size: 13px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 label.ofi-cp-gateway-option::after {
  position: absolute !important;
  top: 50% !important;
  right: 12px !important;
  margin: 0 !important;
  transform: translateY(-50%) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-option:has(input:checked) {
  box-shadow: 0 0 0 3px rgba(22, 119, 166, .055) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-icon {
  width: 30px !important;
  height: 30px !important;
  flex-basis: 30px !important;
  border-radius: 9px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-subtext {
  margin-top: 0 !important;
  font-size: 10px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-panel {
  margin-bottom: 13px !important;
  padding: 15px !important;
  border-radius: 14px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-panel-desc {
  margin-bottom: 10px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-submit {
  min-height: 53px !important;
  padding: 12px 18px !important;
  border-radius: 12px !important;
  background: linear-gradient(135deg, #167fb0 0%, #0f628d 100%) !important;
  box-shadow: 0 13px 28px rgba(22, 119, 166, .22) !important;
  font-size: 15px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-submit:hover {
  box-shadow: 0 17px 34px rgba(22, 119, 166, .27) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-box {
  padding: 18px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-product {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 11px !important;
  margin-bottom: 15px !important;
  padding-bottom: 15px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-media {
  width: min(100%, 180px) !important;
  height: 180px !important;
  aspect-ratio: 1 / 1 !important;
  align-self: center !important;
  margin: 0 auto !important;
  border-radius: 14px !important;
  background: linear-gradient(145deg, #f8fbfd, #eef5f9) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-media img {
  object-fit: contain !important;
  padding: 8px !important;
  box-sizing: border-box !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-product-copy {
  align-items: center !important;
  text-align: center !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-product.has-no-image .ofi-cp-summary-product-copy {
  align-items: flex-start !important;
  text-align: left !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-eyebrow {
  font-size: 10px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-product-title {
  font-size: 15px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-total strong {
  font-size: 25px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-trust {
  padding: 13px !important;
  border-radius: 13px !important;
}

@media (max-width: 640px) {
  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-title {
    font-size: clamp(27px, 8.4vw, 35px) !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-price {
    font-size: clamp(36px, 11.5vw, 45px) !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-form :is(input[type="text"], input[type="email"], input[type="url"], input[type="tel"], input[type="number"], select, textarea) {
    height: 48px !important;
    font-size: 16px !important;
  }

  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-media {
    width: min(100%, 165px) !important;
    height: 165px !important;
  }
}


/* Hotfix 1.12.12.1 — selector alignment and larger summary image */
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-option {
  min-height: 54px !important;
  padding-right: 48px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 label.ofi-cp-gateway-option::after {
  right: 15px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-option.is-paypal {
  padding-right: 52px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-card {
  align-items: center !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-bump-side {
  min-width: 42px !important;
  flex-basis: 42px !important;
  justify-content: center !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-box {
  padding: 20px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-product {
  gap: 12px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-media {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 3 !important;
  align-self: stretch !important;
  margin: 0 !important;
  border-radius: 16px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-media img {
  padding: 12px !important;
}

@media (max-width: 640px) {
  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-media {
    aspect-ratio: 1 / 1 !important;
  }
}


/* Hotfix 1.12.12.2 — summary image sizing refinement */
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-media {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  padding: 12px !important;
  background: linear-gradient(145deg, #f8fbfd, #eef5f9) !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-media img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

@media (max-width: 640px) {
  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-summary-media {
    padding: 10px !important;
  }
}


/* Hotfix 1.12.12.3 — payment method label spacing */
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-option {
  gap: 11px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-icon + span {
  margin-left: 3px !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-option.is-paypal .ofi-cp-gateway-icon + span {
  margin-left: 4px !important;
}


/* Hotfix 1.12.12.4 — hide unselected order bump from summary */
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-order-line.is-hidden {
  display: none !important;
}

/* =========================================================
   FASE 3 R4 — Checkout Performance RC1
   Lightweight placeholder while Stripe Payment Element stays deferred until
   buyer intent. Payment and pricing logic are unchanged.
========================================================= */
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-stripe-deferred {
  display: flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  padding: 10px 12px;
  border: 1px dashed #d7e1e8;
  border-radius: 12px;
  background: #f8fbfc;
  color: #607086;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.45;
  text-align: center;
}


/* =========================================================
   FASE 3 R4 HF1 — Explicit payment-method selection
   No gateway is preselected. The neutral state explains the next action; Stripe
   mounts only after Card is selected and PayPal remains on-demand.
========================================================= */
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-copy {
  display: flex !important;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-name {
  display: block;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateway-badge {
  display: inline-flex;
  align-items: center;
  min-height: 19px;
  padding: 2px 7px;
  border: 1px solid #cce9e5;
  border-radius: 999px;
  background: #f0fbf9;
  color: #08766d;
  font-size: 9.5px;
  font-weight: 700;
  line-height: 1.2;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-payment-choice {
  display: flex;
  min-height: 76px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin: 0 0 16px;
  padding: 15px 18px;
  border: 1px dashed #cfdde6;
  border-radius: 14px;
  background: #f9fbfd;
  color: #607086;
  text-align: center;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-payment-choice strong {
  color: #29445e;
  font-size: 13.5px;
  font-weight: 700;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-payment-choice span {
  max-width: 430px;
  font-size: 12px;
  line-height: 1.45;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-gateways.has-error .ofi-cp-gateway-option {
  border-color: #d96a63 !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-submit.is-awaiting-gateway,
.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-submit.is-awaiting-gateway:hover {
  background: #dfe7ec !important;
  color: #66788a !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  filter: none !important;
  transform: none !important;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-stripe-preparing {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 12px 14px;
  border: 1px dashed #cfe0e7;
  border-radius: 12px;
  background: #f8fbfc;
  color: #526b7e;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
}

.ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-stripe-spinner {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  border: 2px solid #c9ddd9;
  border-top-color: #0f9488;
  border-radius: 999px;
  animation: ofi-cp-hf1-spin .8s linear infinite;
}

@keyframes ofi-cp-hf1-spin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .ofi-cp-checkout.ofi-cp-checkout-v2 .ofi-cp-stripe-spinner {
    animation: none;
    border-top-color: #c9ddd9;
  }
}
