/* Lamilka Child 0.6.93 / Build 127 — canonical payment spacing rhythm.
 *
 * One internal spacing scale now owns the live Tour and Transfer Card Details
 * stage. Dynamic currency quotes, validation errors and consent can appear or
 * disappear without creating a cramped or double-spaced composition.
 *
 * Scale:
 *   8px  — micro/helper spacing
 *   12px — label/control and divider spacing
 *   16px — field-to-field spacing
 *   20px — functional-group spacing
 *   24px — major payment-block spacing
 *   32px — reserved for separate stages (not used inside the card form)
 */
body .lamilka-detail__booking .lmp-direct-payment,
body .lamilka-transfer__booking .lmp-direct-payment {
  --lamilka-payment-space-xs: 8px;
  --lamilka-payment-space-sm: 12px;
  --lamilka-payment-space-md: 16px;
  --lamilka-payment-space-lg: 20px;
  --lamilka-payment-space-xl: 24px;
  --lamilka-payment-space-2xl: 32px;
}

/* Heading -> fields is one functional group. Keep the approved card/frame
 * dimensions; this layer changes only internal rhythm. The extra 8px bottom
 * form padding combines with the existing 16px panel padding for a 24px final
 * breathing space after Back. */
body .lamilka-detail__booking .lmp-direct-payment .lmp-direct-payment__form,
body .lamilka-transfer__booking .lmp-direct-payment .lmp-direct-payment__form {
  padding: var(--lamilka-payment-space-lg) 0 var(--lamilka-payment-space-xs) !important;
}

/* Every standalone card field uses the same 16px step to the next field/group. */
body .lamilka-detail__booking .lmp-direct-payment .lmp-direct-payment__form > label,
body .lamilka-transfer__booking .lmp-direct-payment .lmp-direct-payment__form > label {
  margin: 0 0 var(--lamilka-payment-space-md) !important;
}

/* Labels sit 12px above their controls everywhere, including Expiry and CVC. */
body .lamilka-detail__booking .lmp-direct-payment .lmp-direct-payment__card-panel label > .lmp-direct-payment__label,
body .lamilka-transfer__booking .lmp-direct-payment .lmp-direct-payment__card-panel label > .lmp-direct-payment__label {
  margin: 0 0 var(--lamilka-payment-space-sm) !important;
}

/* Expiry/CVC is one field group: stable horizontal gap, no inherited outer
 * margin. Its following block owns the next vertical distance. */
body .lamilka-detail__booking .lmp-direct-payment .lmp-direct-payment__card-panel .lmp-direct-payment__row,
body .lamilka-transfer__booking .lmp-direct-payment .lmp-direct-payment__card-panel .lmp-direct-payment__row {
  gap: var(--lamilka-payment-space-sm) !important;
  margin: 0 !important;
}

body .lamilka-detail__booking .lmp-direct-payment .lmp-direct-payment__card-panel .lmp-direct-payment__row > label,
body .lamilka-transfer__booking .lmp-direct-payment .lmp-direct-payment__card-panel .lmp-direct-payment__row > label {
  margin: 0 !important;
}

/* TRY quote / EUR correction cards are functional blocks. When hidden they
 * consume no space; when present they always sit 20px below the card fields. */
body .lamilka-detail__booking .lmp-direct-payment .lmp-direct-payment__currency:not([hidden]),
body .lamilka-transfer__booking .lmp-direct-payment .lmp-direct-payment__currency:not([hidden]) {
  margin: var(--lamilka-payment-space-lg) 0 0 !important;
}

/* Provider/card errors use the same functional-block rhythm whether or not a
 * currency quote is visible. No negative margins and no layout collapse. */
body .lamilka-detail__booking .lmp-direct-payment .lmp-direct-payment__error:not([hidden]),
body .lamilka-transfer__booking .lmp-direct-payment .lmp-direct-payment__error:not([hidden]) {
  margin: var(--lamilka-payment-space-lg) 0 0 !important;
}

/* Consent is a major boundary. 12px before + 12px after the divider gives a
 * consistent 24px content-to-content separation from whichever block precedes
 * it: Expiry/CVC, currency quote, or an error message. */
body .lamilka-detail__booking .lmp-direct-payment .lmp-direct-payment__consent,
body .lamilka-transfer__booking .lmp-direct-payment .lmp-direct-payment__consent {
  margin: var(--lamilka-payment-space-sm) 0 0 !important;
  padding: var(--lamilka-payment-space-sm) 0 0 !important;
}

/* Consent -> primary action is always a 24px major-block gap. */
body .lamilka-detail__booking .lmp-direct-payment .lmp-direct-payment__submit,
body .lamilka-transfer__booking .lmp-direct-payment .lmp-direct-payment__submit {
  margin-top: var(--lamilka-payment-space-xl) !important;
}

/* Primary action -> security helper -> Back follows 16px then 12px. */
body .lamilka-detail__booking .lmp-direct-payment .lmp-direct-payment__card-panel .lmp-direct-payment__trust,
body .lamilka-transfer__booking .lmp-direct-payment .lmp-direct-payment__card-panel .lmp-direct-payment__trust {
  margin: 0 !important;
  padding-top: var(--lamilka-payment-space-md) !important;
}

body .lamilka-detail__booking .lmp-direct-payment .lmp-direct-payment__back,
body .lamilka-transfer__booking .lmp-direct-payment .lmp-direct-payment__back {
  margin: var(--lamilka-payment-space-sm) 0 0 !important;
}
