/* Participant Portal — Payments CSS */
.pp-payment-options-wrap,.pp-payment-form-wrap,.pp-pay-thankyou,.pp-pay-failed {
    max-width: 720px; margin: 32px auto; padding: 36px;
}
.pp-pay-header           { text-align: center; margin-bottom: 28px; }
.pp-pay-logo             { height: 48px; width: auto; margin-bottom: 14px; }
.pp-pay-title,.pp-pay-form-title { color: var(--pp-primary); font-family: var(--pp-font-heading,sans-serif); font-size: 1.5rem; font-weight: 800; margin: 0 0 6px; }
.pp-pay-amount-display   { font-size: 2rem; font-weight: 800; color: var(--pp-secondary); margin: 0 0 4px; }
.pp-pay-programme        { color: var(--pp-text-muted); font-size: 0.875rem; margin: 0 0 0; }
.pp-pay-intro            { color: var(--pp-text-secondary); margin: 0 0 8px; }

/* Payment options grid */
.pp-pay-options-grid     { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px,1fr)); gap: 20px; margin-bottom: 24px; }
.pp-pay-option-card      { background: var(--pp-surface-subtle); border: 1.5px solid var(--pp-border); border-radius: 10px; padding: 24px; text-align: center; }
.pp-pay-option-card-featured { border-color: var(--pp-secondary); background: var(--pp-info-bg); }
.pp-pay-option-badge     { display: inline-block; background: var(--pp-secondary); color: #fff; border-radius: 12px; padding: 2px 12px; font-size: 11px; font-weight: 700; margin-bottom: 8px; }
.pp-pay-option-type      { font-weight: 700; color: var(--pp-primary); margin-bottom: 8px; }
.pp-pay-option-amount    { font-size: 1.6rem; font-weight: 800; color: var(--pp-secondary); margin-bottom: 10px; }
.pp-pay-option-desc      { font-size: 0.875rem; color: var(--pp-text-secondary); margin-bottom: 16px; line-height: 1.6; }
.pp-pay-contact          { text-align: center; color: var(--pp-text-muted); font-size: 0.875rem; }

/* Payment form */
.pp-pay-summary          { display: flex; justify-content: space-between; align-items: center;
    background: var(--pp-surface-subtle); border: 1px solid var(--pp-border); border-radius: 8px;
    padding: 14px 18px; margin: 20px 0; font-size: 1rem; }
.pp-pay-summary strong   { font-size: 1.2rem; color: var(--pp-secondary); }
.pp-pay-submit-btn       { width: 100%; padding: 15px; font-size: 1.05rem; }
.pp-pay-secure-note      { text-align: center; font-size: 0.8rem; color: var(--pp-text-muted); margin-top: 10px; }

/* Thank-you */
.pp-pay-thankyou         { text-align: center; }
.pp-pay-ty-icon          { font-size: 3rem; color: var(--pp-success); margin-bottom: 10px; }
.pp-pay-ty-title         { color: var(--pp-success); font-family: var(--pp-font-heading,sans-serif); font-size: 1.6rem; margin: 0 0 8px; }
.pp-pay-ty-type          { font-weight: 600; color: var(--pp-secondary); margin: 0 0 16px; }
.pp-pay-ty-msg           { color: var(--pp-text-secondary); line-height: 1.8; margin-bottom: 16px; }
.pp-pay-ty-ref,.pp-pay-ty-email { font-size: 0.875rem; color: var(--pp-text-muted); margin-bottom: 6px; }
.pp-pay-ty-actions       { display: flex; justify-content: center; gap: 12px; margin-top: 20px; flex-wrap: wrap; }

/* Failed */
.pp-pay-failed           { text-align: center; }
.pp-pay-fail-icon        { font-size: 3rem; color: var(--pp-error); margin-bottom: 10px; font-weight: 900; }
.pp-pay-fail-msg         { color: var(--pp-text-secondary); line-height: 1.8; margin-bottom: 16px; }
.pp-pay-fail-ref         { font-size: 0.875rem; color: var(--pp-text-muted); margin-bottom: 16px; }
.pp-pay-fail-actions     { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }

@media (max-width: 600px) {
    .pp-payment-options-wrap,.pp-payment-form-wrap,.pp-pay-thankyou,.pp-pay-failed { padding: 20px; }
    .pp-pay-options-grid { grid-template-columns: 1fr; }
    .pp-pay-amount-display { font-size: 1.5rem; }
}
