.ave-embedded-payment,
.ave-embedded-payment *,
.ave-embedded-payment *::before,
.ave-embedded-payment *::after { box-sizing: border-box; }
.ave-embedded-payment {
  min-width: 0;
  padding: var(--ave-space-6);
  color: var(--ave-n700);
  background: var(--ave-n100);
  border: var(--ave-border);
  border-radius: var(--ave-radius-lg);
  font: 400 16px/1.5 var(--ave-font);
}
.ave-embedded-payment [hidden] { display: none !important; }
.ave-embedded-payment__heading { display: flex; align-items: flex-start; gap: var(--ave-space-4); margin-bottom: var(--ave-space-6); }
.ave-embedded-payment__heading > div { min-width: 0; }
.ave-embedded-payment__heading h3 { margin: 0; color: var(--ave-navy); font: 600 20px/1.4 var(--ave-font); }
.ave-embedded-payment__heading p,
.ave-embedded-payment__summary p { margin: var(--ave-space-2) 0 0; font: inherit; color: var(--ave-n600); }
.ave-embedded-payment__icon { display: grid; place-items: center; flex: 0 0 auto; width: var(--ave-space-12); height: var(--ave-space-12); color: var(--ave-ocean); background: var(--ave-n200); border-radius: var(--ave-radius-md); }
.ave-embedded-payment__icon svg { width: var(--ave-space-6); height: var(--ave-space-6); }
.ave-embedded-payment__summary { padding: var(--ave-space-4); margin-bottom: var(--ave-space-6); background: var(--ave-n200); border: var(--ave-border); border-radius: var(--ave-radius-md); }
.ave-embedded-payment__summary > div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--ave-space-2) var(--ave-space-4); }
.ave-embedded-payment__summary strong { color: var(--ave-navy); font: 600 20px/1.4 var(--ave-font); }
.ave-embedded-payment__identity { margin: 0; }
.ave-embedded-payment__fields { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ave-space-6); margin-bottom: var(--ave-space-6); }
.ave-embedded-payment__fields label { display: grid; gap: var(--ave-space-2); min-width: 0; color: var(--ave-navy); font: 600 16px/1.5 var(--ave-font); }
.ave-embedded-payment__fields label > span { display: none; }
.ave-embedded-payment__fields input.ave-field { width: 100%; min-width: 0; min-height: 44px; padding: var(--ave-space-3) var(--ave-space-4); border: var(--ave-border); border-radius: var(--ave-radius-md); box-shadow: none; background: var(--ave-n100); color: var(--ave-n700); font: 400 16px/1.5 var(--ave-font); }
.ave-embedded-payment__fields input.ave-field:focus { border-color: var(--ave-ocean); }
.ave-embedded-payment__fields small { color: var(--ave-n600); font: 400 12px/1.333333 var(--ave-font); }
.ave-embedded-payment__consent { display: flex; align-items: flex-start; gap: var(--ave-space-3); margin: 0 0 var(--ave-space-6); font-weight: 400; }
.ave-embedded-payment__consent input { flex: 0 0 auto; width: var(--ave-space-6); height: var(--ave-space-6); margin: 0; accent-color: var(--ave-ocean); }
.ave-embedded-payment__consent a { color: var(--ave-ocean); }
.ave-embedded-payment .ave-button { max-width: 100%; min-height: 44px; margin: 0; padding: var(--ave-space-4) var(--ave-space-6); border-radius: var(--ave-radius-md); font: 600 16px/1.25 var(--ave-font); text-decoration: none !important; white-space: normal; }
.ave-embedded-payment .ave-button--primary { color: var(--ave-n100); background: var(--ave-ocean); border: 1px solid var(--ave-ocean); }
.ave-embedded-payment .ave-button--primary:hover { color: var(--ave-n100); background: var(--ave-ocean); box-shadow: var(--ave-shadow-1); }
.ave-embedded-payment .ave-button--primary:active { background: var(--ave-navy); }
.ave-embedded-payment .ave-button--secondary { color: var(--ave-ocean); background: var(--ave-n100); border: 1px solid var(--ave-ocean); }
.ave-embedded-payment .ave-button--secondary:hover { color: var(--ave-ocean); background: var(--ave-n200); }
.ave-embedded-payment .ave-button--secondary:active { color: var(--ave-navy); border-color: var(--ave-navy); }
.ave-embedded-payment .ave-button:disabled { color: var(--ave-n600); background: var(--ave-n200); border-color: var(--ave-n400); opacity: 1; cursor: not-allowed; box-shadow: none; }
.ave-embedded-payment :is(button, input, a):focus-visible { outline: 3px solid var(--ave-ocean); outline-offset: 4px; box-shadow: none; }
.ave-embedded-payment__loading { display: flex; align-items: center; gap: var(--ave-space-3); padding: var(--ave-space-4) 0; color: var(--ave-navy); }
.ave-embedded-payment__spinner { display: inline-block; flex: 0 0 auto; width: var(--ave-space-6); height: var(--ave-space-6); border: 2px solid var(--ave-n300); border-top-color: var(--ave-ocean); border-radius: var(--ave-radius-full); animation: ave-payment-spin 1s linear infinite; }
.ave-embedded-payment__notice,
.ave-embedded-payment__message { margin: 0 0 var(--ave-space-6); padding: var(--ave-space-4); color: var(--ave-navy); background: var(--ave-n200); border: var(--ave-border); border-left: 4px solid var(--ave-ocean); border-radius: var(--ave-radius-md); overflow-wrap: anywhere; }
.ave-embedded-payment__notice { border-left-color: var(--ave-warning); }
.ave-embedded-payment__message[data-kind="error"] { border-left-color: var(--ave-error); }
.ave-embedded-payment__message[data-kind="success"] { border-left-color: var(--ave-success); }
.ave-embedded-payment__message strong { display: block; font-weight: 600; }
.ave-embedded-payment__message p { margin: var(--ave-space-2) 0 0; color: var(--ave-n700); font: inherit; }
.ave-embedded-payment__card,
.ave-embedded-payment__challenge { width: 100%; min-width: 0; margin-block: var(--ave-space-4); }
.ave-embedded-payment__card > div,
.ave-embedded-payment__challenge > div { max-width: 100%; min-width: 0; }
/* Preserve the field-to-submit gap when the provider injects its button styles. */
.ave-embedded-payment [data-embedded-card] button[type="submit"] { margin-block-start: var(--ave-space-6) !important; }
.ave-embedded-payment__actions { display: flex; flex-wrap: wrap; gap: var(--ave-space-3); }
.ave-embedded-payment__actions:has(> :not([hidden])) { margin-top: var(--ave-space-4); }
.ave-embedded-payment__security { display: flex; align-items: flex-start; gap: var(--ave-space-2); margin: var(--ave-space-6) 0 0; padding-top: var(--ave-space-4); border-top: var(--ave-border); color: var(--ave-n600); font: 400 12px/1.333333 var(--ave-font); }
.ave-embedded-payment__security svg { flex: 0 0 auto; width: var(--ave-space-4); height: var(--ave-space-4); color: var(--ave-ocean); }
@keyframes ave-payment-spin { to { transform: rotate(360deg); } }
@media (min-width: 768px) {
  .ave-embedded-payment { padding: var(--ave-space-8); }
  .ave-embedded-payment__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .ave-embedded-payment__spinner { animation: none; }
}
