/* Kajinga Checkout — CI: #179AFC / #33CC33 / #07234B */
.kchk { --kchk-primary: #179AFC; --kchk-success: #33CC33; --kchk-navy: #07234B;
    max-width: 480px; margin: 75px auto; font-family: Poppins, Helvetica, Arial, sans-serif; color: var(--kchk-navy); }
.kchk-summary { background: #f5f9ff; border-radius: 10px; padding: 20px; margin-bottom: 20px; }
.kchk-summary h3 { margin: 0 0 8px; }
.kchk-price { font-size: 24px; margin: 8px 0 0; }
.kchk-price span { font-size: 15px; font-weight: normal; }
.kchk-tax-note { font-size: 12px; color: #667; margin: 4px 0 0; }
.kchk-step h4 { margin: 0 0 12px; }
.kchk label { display: block; font-size: 14px; margin-bottom: 4px; font-weight: 600; }
.kchk input[type="email"], .kchk input[type="text"], .kchk select {
    width: 100%; min-height: 48px; font-size: 16px; padding: 10px 14px;
    border: 1px solid #ccd5e0; border-radius: 10px; box-sizing: border-box; }
.kchk input:focus, .kchk select:focus { outline: 2px solid var(--kchk-primary); border-color: var(--kchk-primary); }
.kchk-check label { font-weight: normal; font-size: 13px; }
.kchk-check input { margin-right: 6px; }
.kchk-btn { display: block; width: 100%; min-height: 52px; margin-top: 16px; cursor: pointer;
    background: var(--kchk-success); color: #fff; font-size: 17px; font-weight: 600;
    border: 0; border-radius: 10px; }
.kchk-btn:hover { filter: brightness(0.95); }
.kchk-btn[disabled] { opacity: 0.6; cursor: wait; }
.kchk-secure { text-align: center; font-size: 12px; color: #667; margin-top: 10px; }
.kchk-message { background: #fdecea; color: #b71c1c; border-radius: 10px; padding: 12px 16px; margin-top: 14px; font-size: 14px; }
.kchk-success { background: #edfaed; border: 1px solid var(--kchk-success); border-radius: 10px; padding: 20px; text-align: center; }
@media (max-width: 600px) { .kchk { padding: 0 4px; } }

/* Conversion-Layer V1 — Templates, Trust, Headline */
.kchk-headline { font-size: 13px; font-weight: 600; color: var(--kchk-primary); margin: 0 0 4px; text-transform: uppercase; letter-spacing: .04em; }
.kchk-subline { font-size: 14px; color: #556; margin: 4px 0 0; }
.kchk-total { font-size: 15px; margin: 8px 0 0; border-top: 1px solid #dbe5f0; padding-top: 8px; }
.kchk-total strong { font-size: 18px; }
/* 1.1.1 (F3/F12): Gesamtbetrag unmittelbar vor dem Bestellknopf — bewusst ohne display-Angabe, damit `hidden` wirkt. */
.kchk-pay-total { font-size: 16px; margin: 12px 0 8px; text-align: right; }
.kchk-pay-total strong { font-size: 20px; }
.kchk-trust { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 16px; }
.kchk-badge { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: #4a5a6a; }
.kchk-badge svg { color: var(--kchk-success); flex-shrink: 0; }
.kchk-badge em { font-style: normal; }
/* modern/trust: 2-Spalten ab Desktop (Formular links, Zusammenfassung rechts) */
@media (min-width: 860px) {
    .kchk-tpl-modern, .kchk-tpl-trust { max-width: 900px; display: grid; grid-template-columns: 1fr 340px; grid-template-areas: "steps summary" "steps trust" "steps msg" "steps success"; gap: 24px; align-items: start; }
    .kchk-tpl-modern .kchk-summary, .kchk-tpl-trust .kchk-summary { grid-area: summary; margin-bottom: 0; position: sticky; top: 20px; }
    .kchk-tpl-modern #kchk-step-contact, .kchk-tpl-trust #kchk-step-contact,
    .kchk-tpl-modern #kchk-step-payment, .kchk-tpl-trust #kchk-step-payment { grid-area: steps; }
    .kchk-tpl-modern .kchk-trust, .kchk-tpl-trust .kchk-trust { grid-area: trust; justify-content: flex-start; }
    .kchk-tpl-modern #kchk-message, .kchk-tpl-trust #kchk-message { grid-area: msg; }
    .kchk-tpl-modern #kchk-success, .kchk-tpl-trust #kchk-success { grid-area: success; }
}
/* T5 — Adressblock (optional, eingeklappt) + PLZ-Autofill */
.kchk-address { margin: 4px 0 12px; }
.kchk-address-toggle { background: none; border: 0; color: var(--kchk-primary); font-size: 14px; font-weight: 600; cursor: pointer; padding: 6px 0; }
.kchk-address-fields { margin-top: 8px; }
.kchk-address-row { display: grid; grid-template-columns: 120px 1fr; gap: 12px; }
@media (max-width: 480px) { .kchk-address-row { grid-template-columns: 1fr; } }

.kchk-bumps { margin: 4px 0 16px; }
.kchk-bump { display: flex; gap: 12px; align-items: flex-start; border: 2px dashed var(--kchk-success); border-radius: 10px; background: #f4fdf4; padding: 14px 16px; margin-bottom: 12px; cursor: pointer; }
.kchk-bump input { margin-top: 3px; width: 20px; height: 20px; flex-shrink: 0; }
.kchk-bump-body { display: flex; flex-direction: column; gap: 4px; }
.kchk-bump-headline { font-size: 15px; }
.kchk-bump-desc { font-size: 13px; color: #556; }
.kchk-bump-cta { font-size: 13px; font-weight: 600; color: #1b7d1b; }
.kchk-bump-price strong { font-size: 16px; }
.kchk-bump-price del { font-size: 13px; color: #889; margin-left: 6px; }

/* 1.1.5 — Auswahlkarten je Zahlungsweg (kajinga-pay ≥ 2.7.8) */
.kchk-options { display: flex; flex-direction: column; gap: 10px; margin: 8px 0 12px; }
.kchk-option { display: flex; gap: 12px; align-items: flex-start; border: 2px solid #dfe3ea; border-radius: 10px; background: #fff; padding: 12px 14px; cursor: pointer; }
.kchk-option:has(input:checked) { border-color: var(--kchk-primary); background: #f3f9ff; }
.kchk-option input { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; }
.kchk-option-body { display: flex; flex-direction: column; gap: 2px; }
.kchk-option-label { font-size: 15px; }
.kchk-option-amount { font-size: 18px; font-weight: 700; }
.kchk-option-desc { font-size: 13px; color: #556; }

/* T8 — PayPal-Buttons unter dem Stripe Payment Element */
.kchk-paypal-separator { text-align: center; font-size: 13px; color: #667; margin: 18px 0 10px; }
#kchk-paypal-buttons { min-height: 45px; }
