/* Terminliste auf der Kursseite. Farben kommen aus sk-site, mit Rückfall für fremde Themes. */
.kuku-sessions { display: grid; gap: 14px; margin: 24px 0; }
.kuku-session { border: 1px solid rgba(116, 69, 52, .25); border-radius:4px; padding: 16px 18px; background: #fff; display: grid; gap: 10px; }
.kuku-session.is-full { opacity: .6; }
.kuku-when { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; font-size: 1.05rem; }
.kuku-when span { color: #744534; }
.kuku-seats { font-size: .9rem; color: #303b70; }
.kuku-extras { font-size: .9rem; color: #50575e; }
.kuku-subtitle { margin: 0 0 12px; font-size: 1.05rem; color: #50575e; }
.kuku-offer-image { margin: 0 0 16px; }
.kuku-offer-image img { display: block; max-width: 100%; height: auto; border-radius: 0; }
.kuku-description { margin: 0 0 18px; }
.kuku-description p { margin: 0 0 12px; }
.kuku-form { display: grid; gap: 10px; grid-template-columns: 1fr; align-items: end; }
.kuku-form label { display: grid; gap: 4px; font-size: .9rem; }
.kuku-form input[type=text], .kuku-form select { width: 100%; padding: 10px 12px; border: 1px solid #a59a8d; border-radius:4px; font: inherit; background: #fff; }
.kuku-price { font-weight: 600; }
.kuku-button { padding: 12px 18px; border: 0; border-radius:4px; background: #744534; color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.kuku-button:hover, .kuku-button:focus-visible { background: #4e2c22; }
.kuku-none { font-style: italic; }
@media (min-width: 700px) {
    .kuku-form { grid-template-columns: 2fr 1.4fr auto; }
    .kuku-seatform { grid-template-columns: 1fr 1fr 2fr auto; }
}
.kuku-groupfields { grid-column: 1 / -1; display: grid; gap: 8px; margin: 0; padding: 0; border: 0; min-width: 0; }
.kuku-groupfields legend { padding: 0; margin: 0 0 6px; font-size: .9rem; }
.kuku-groupfields label { grid-template-columns: 1fr 90px; align-items: center; gap: 10px; }
.kuku-groupfields input[type=number] { width: 100%; padding: 10px 12px; border: 1px solid #a59a8d; border-radius: 4px; font: inherit; background: #fff; }
.kuku-groupnote { color: #50575e; }
.kuku-seatform .kuku-names { grid-column: 1 / -1; }
.kuku-seatform .kuku-price { grid-column: 1 / -1; }
.kuku-namesform { grid-template-columns: 1fr; }
.kuku-namesform .kuku-session { margin-bottom: 14px; }

.kuku-offer { margin: 0 0 36px; }
.kuku-offer-title { margin: 28px 0 8px; }
.kuku-hint { font-size: .9rem; color: #50575e; margin: 6px 0 0; }
.kuku-cardbuy { margin: 22px 0 0; padding: 18px; border-radius:4px; background: #f7f2eb; border: 1px solid rgba(116, 69, 52, .25); }
.kuku-cardbuy h4 { margin: 0 0 6px; }
.kuku-cardbuy p { margin: 0 0 12px; font-size: .95rem; }
.kuku-cardform input[type=date] { width: 100%; padding: 10px 12px; border: 1px solid #a59a8d; border-radius:4px; font: inherit; background: #fff; }
.kuku-cardbox { display: grid; gap: 4px; padding: 18px; border-radius:4px; background: #744534; color: #fff; margin: 0 0 20px; }
.kuku-cardbox strong { font-size: 1.2rem; }
.kuku-cardleft { font-size: 1.05rem; font-weight: 600; }
.kuku-note { padding: 12px 14px; border-left: 4px solid #2e7d32; background: #e7f5e9; margin: 0 0 16px; }
.kuku-note.is-error { border-color: #c0392b; background: #fdecea; }
.kuku-link { background: none; border: 0; padding: 0; color: #744534; text-decoration: underline; cursor: pointer; font: inherit; }
.kuku-find input[type=email] { width: 100%; padding: 10px 12px; border: 1px solid #a59a8d; border-radius:4px; font: inherit; }
.kuku-remove { font-size: .85em; margin-left: 8px; }
@media (min-width: 700px) {
    .kuku-cardform { grid-template-columns: 1.3fr 1.6fr 1.1fr auto; }
}

.kuku-gift { margin: 14px 0 0; padding: 12px 18px; border-radius:4px; border: 1px dashed rgba(116, 69, 52, .45); }
.kuku-gift summary { cursor: pointer; font-weight: 600; color: #744534; }
.kuku-gift p { margin: 10px 0 12px; font-size: .95rem; }
.kuku-voucherbox { background: #303b70; }
.kuku-redeem input[type=email] { width: 100%; padding: 10px 12px; border: 1px solid #a59a8d; border-radius:4px; font: inherit; background: #fff; }
@media (min-width: 700px) {
    .kuku-giftform { grid-template-columns: 1.5fr 1.5fr auto; }
}
@media print {
    header, footer, nav, .kuku-noprint, .sk-leiste, .site-header, .site-footer { display: none !important; }
    .kuku-cardbox { color: #000; background: #fff; border: 2px solid #000; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

.kuku-when .kuku-example { display: inline-block; align-self: flex-start; margin-top: 4px; padding: 2px 8px; border: 1px solid #b08a00; border-radius: 0; background: #fff8dc; color: #6b5300; font-size: .8rem; }

/* Vorlage für Angebote (inc/offer_view.php, ab 0.19.0): nur das Nötigste, die Gestaltung kommt später aus dem Theme. */
.kuku-entry { margin: 0 0 48px; }
.kuku-entry-image { margin: 0 0 16px; }
.kuku-entry-image img, .kuku-entry-gallery img { display: block; max-width: 100%; height: auto; border-radius: 0; }
.kuku-entry-subtitle { margin: 0 0 12px; font-size: 1.05rem; color: #50575e; }
.kuku-entry-summary { font-weight: 600; }
.kuku-entry-description p { margin: 0 0 12px; }
.kuku-entry-heading { margin: 28px 0 10px; }
.kuku-entry-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; margin: 24px 0; }
.kuku-entry-gallery figure { margin: 0; }
.kuku-entry-faq-item { border-top: 1px solid rgba(116, 69, 52, .25); padding: 10px 0; }
.kuku-entry-faq-item summary { cursor: pointer; font-weight: 600; }
.kuku-entry-inquiry { margin: 24px 0; }
.kuku-entry-inquiry .kuku-button { display: inline-block; text-decoration: none; }
.kuku-entry.is-list + .kuku-entry.is-list { border-top: 1px solid rgba(116, 69, 52, .25); padding-top: 32px; }

/* Mein Angebot (Event-Angebot, 0.20.0) */
.kuku-quote { max-width: 640px; }
.kuku-quote-facts { display: grid; grid-template-columns: max-content 1fr; gap: 6px 18px; margin: 16px 0; }
.kuku-quote-facts dt { font-weight: 600; }
.kuku-quote-facts dd { margin: 0; }
.kuku-quote-text { border-left: 3px solid rgba(116, 69, 52, .25); padding-left: 14px; margin: 16px 0; }
.kuku-quote-note { padding: 12px 14px; border-left: 4px solid #744534; background: #f6efe9; margin: 16px 0; }
.kuku-quote-accept { margin: 20px 0; }
.kuku-quote-hint { font-size: .9em; margin: 8px 0 0; }
@media (max-width: 480px) { .kuku-quote-facts { grid-template-columns: 1fr; gap: 0; } .kuku-quote-facts dd { margin-bottom: 8px; } }

/* Hinweisleiste auf der Startseite (inc/home_link.php, 0.23.0): Braun der Werkstatt, heller Text, eckig, am Handy ein bis zwei Zeilen. */
.kuku-homebar { background: #744534; color: #fff; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px 28px; padding: 8px 16px; font-size: 1rem; line-height: 1.4; border-radius: 0; margin: 0; text-align: center; }
.kuku-homebar .kuku-homebar-link, .kuku-homebar .kuku-homebar-item { color: #fff; font-weight: 600; text-decoration: none; border-bottom: 2px solid rgba(255,255,255,.45); border-radius: 0; padding: 6px 2px; white-space: nowrap; }
.kuku-homebar [aria-current="page"] { border-bottom-color: #fff; }
.kuku-homebar .kuku-homebar-link:hover, .kuku-homebar .kuku-homebar-item:hover { border-bottom-color: #fff; color: #fff; }
.kuku-homebar .kuku-homebar-link:focus-visible, .kuku-homebar .kuku-homebar-item:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
/* Warenkorb-Symbol im Balken (0.46.0, Z1) und die Zahl dahinter, die balken.js einträgt */
.kuku-homebar .kuku-homebar-warenkorb { display: inline-flex; align-items: center; gap: 6px; }
.kuku-homebar .kuku-cart-emoji { font-weight: normal; }
.kuku-homebar .kuku-cart-n { font-size: .85rem; line-height: 1; min-width: 1.4em; padding: 3px 5px; background: #fff; color: #744534; border-radius: 4px; text-align: center; }
.kuku-menu-mobil .kuku-cart-n { margin-left: 6px; font-size: .85rem; }
@media (max-width: 480px) { .kuku-homebar { gap: 2px 18px; padding: 6px 12px; font-size: .95rem; } .kuku-homebar .kuku-homebar-link, .kuku-homebar .kuku-homebar-item { padding: 10px 2px; } }
/* Dieselben Einträge im Kopf-Menü nur in der Handy-Ansicht (sk-site klappt das Menü bis 880 px ein, Astra allein bis 921 px); am Rechner steht der Balken (UX-Prüfung B3).
   Ändert sich die Grenze in sk-site (sk.css, .sk-nav-button), hier mitziehen. */
@media (min-width: 881px) { .kuku-menu-mobil { display: none !important; } }
/* Gutschein verschenken: Kursauswahl (B7) */
.kuku-gift-choice, .entry-content ul.kuku-gift-choice { list-style: none; padding: 0; margin: 16px 0; display: grid; gap: 8px; }   /* 0.53.1: Theme rückte die Liste um 20 px ein */
.kuku-gift-choice a { display: block; padding: 14px 16px; border: 2px solid #744534; color: #744534; font-weight: 600; text-decoration: none; border-radius: 4px; }
.kuku-gift-choice a:hover, .kuku-gift-choice a:focus-visible { background: #744534; color: #fff; }
.sk-wave-kopf + .kuku-homebar { margin-top: clamp(10px, 2vw, 24px); }
/* 0.55.0: Symbole im Kopf (Modus header) nur als Grundgerüst; Farben, Größen und Ort setzt das Theme (sk-site). Rückwege kuku-back in allen Modi. */
.kuku-tool { display: inline-flex; align-items: center; gap: 6px; position: relative; text-decoration: none; }
.kuku-tool-icon { display: block; flex: none; }
.kuku-tool .kuku-cart-n[hidden] { display: none; }
.kuku-tool .kuku-cart-n { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 4px; box-sizing: border-box; font-size: 12px; font-weight: 700; line-height: 1; border-radius: 4px; }
.kuku-back-row { margin: 0 0 8px; }
.kuku-back { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; text-decoration: none; }
/* Pfeil-SVG (kuku_arrow, 0.56.2): 1 em, auf der Grundlinie wie Schrift, Abstand zum Text am Pfeil selbst (auch in Absätzen ohne Flex) */
.kuku-arrow { display: inline-block; width: 1em; height: 1em; flex: none; vertical-align: -.14em; }
.kuku-arrow-left { margin-right: .35em; }
.kuku-arrow-right { margin-left: .35em; }
.kuku-back:hover, .kuku-back:focus-visible { text-decoration: underline; }
/* [kuku_gift_choice layout="liste"] (0.55.1): je Kurs eine Zeile mit Name und ›, feine Trennlinien, ganze Zeile klickbar, mindestens 48 px, eckig, auf Rechner und Handy gleich */
.kuku-gift-choice.kuku-gift-liste, .entry-content ul.kuku-gift-choice.kuku-gift-liste { display: block; max-width: 560px; margin: 12px 0 0; border-top: 1px solid rgba(116, 69, 52, .25); }
.kuku-gift-liste li { margin: 0; border-bottom: 1px solid rgba(116, 69, 52, .25); }
.kuku-gift-liste a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 10px 6px; box-sizing: border-box; border: 0; border-radius: 0; background: transparent; color: #744534; font-weight: 600; text-decoration: none; }
.kuku-gift-liste a::after { content: ""; flex: none; width: 1em; height: 1em; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.75' stroke-linecap='square'%3E%3Cpath d='M4 12h15M13 5l7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.75' stroke-linecap='square'%3E%3Cpath d='M4 12h15M13 5l7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat; }   /* Pfeil wie kuku_arrow (0.56.2) */
.kuku-gift-liste a:hover, .kuku-gift-liste a:focus-visible { background: rgba(116, 69, 52, .08); color: #744534; }

/* Kinderfelder (0.27.0) auf „Meine Buchung" */
.kuku-child { margin: 6px 0 14px; padding: 10px 12px; border: 1px solid rgba(116, 69, 52, .25); border-radius: 4px; display: grid; gap: 8px; min-width: 0; }
.kuku-child legend { padding: 0 4px; font-size: .9rem; }
.kuku-child input[type=number], .kuku-child input[type=tel], .kuku-child textarea { width: 100%; padding: 10px 12px; border: 1px solid #a59a8d; border-radius: 4px; font: inherit; background: #fff; box-sizing: border-box; }
.kuku-child .kuku-check { display: flex; gap: 8px; align-items: flex-start; font-size: .9rem; }
.kuku-child .kuku-check input { margin-top: 4px; flex: none; }

/* 0.29.0: Umbuchen und Absagen auf „Meine Buchung“ */
.kuku-seatactions { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 14px; }
.kuku-seatactions a.kuku-button { display: inline-block; text-decoration: none; padding: 8px 14px; }
.kuku-seatactions a.kuku-button.is-secondary { background: transparent; color: #744534; border: 1px solid #744534; }
.kuku-targets { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 6px; }

/* Kundenkonto (0.33.0): die Reiter in „Mein Konto“ nutzen die Karten der Terminliste; Knöpfe sind Links, am Handy untereinander. */
.woocommerce-account .kuku-button { display: inline-block; text-decoration: none; margin: 0 6px 8px 0; }
.woocommerce-account .kuku-sessions { margin: 12px 0 20px; }
.woocommerce-account .kuku-session .kuku-when { word-break: break-word; }
.woocommerce-account .kuku-gift summary { padding: 4px 0; }
@media (max-width: 600px) { .woocommerce-account .kuku-button { display: block; text-align: center; margin: 0 0 8px; } }

/* Kasse in Schritten (0.36.0, assets/kasse-schritte.js). ALLES unter body.kuku-steps-on: die Klasse setzt nur das Skript nach erfolgreichem Aufbau, ohne JavaScript bleibt die einseitige Kasse.
   Der aktuelle Schritt steht in body[data-kuku-step]. Bestellknopf und PayPal-Knopf werden nur über ihren Behälter .kuku-submit-pane versteckt, nie am Knopf selbst (PayPal setzt dort Inline-Stile). */
.kuku-steps { max-width: 760px; margin: 0 auto 20px; }
.kuku-steps__bar { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; }
.kuku-steps__step { display: flex; align-items: center; margin: 0; padding: 0; }
.kuku-steps__step:not(:last-child) { flex: 1; }
.kuku-steps__step:not(:last-child)::after { content: ""; flex: 1; height: 3px; min-width: 14px; margin: 0 10px; background: #d9cfc4; border-radius: 2px; }
.kuku-steps__step.is-done:not(:last-child)::after { background: #744534; }
.kuku-steps__item { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0; margin: 0; border: 0; background: none; font: inherit; color: #50575e; text-align: left; }
button.kuku-steps__item { cursor: pointer; color: #744534; }
button.kuku-steps__item:hover .kuku-steps__label { text-decoration: underline; }
button.kuku-steps__item:focus-visible { outline: 3px solid #303b70; outline-offset: 3px; border-radius: 4px; }
.kuku-steps__num { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; border: 2px solid #8a7e72; background: #fff; color: #50575e; font-weight: 700; font-size: 1rem; line-height: 1; }
.is-done .kuku-steps__num { background: #744534; border-color: #744534; color: #fff; }
.is-current .kuku-steps__num { background: #303b70; border-color: #303b70; color: #fff; box-shadow: 0 0 0 4px rgba(48, 59, 112, .18); }
.kuku-steps__label { font-size: .95rem; line-height: 1.25; }
.is-current .kuku-steps__label { font-weight: 700; color: #1d2327; }
.kuku-steps__status { margin: 14px 0 4px; font-size: .95rem; color: #50575e; line-height: 1.5; }
.kuku-steps__status strong { color: #1d2327; }
.kuku-steps .kuku-steps__title { margin: 0 0 6px; font-size: 1.5rem; line-height: 1.25; scroll-margin-top: 16px; }
.kuku-steps .kuku-steps__title:focus { outline: none; }
.kuku-steps .kuku-steps__title:focus-visible { outline: 3px solid #303b70; outline-offset: 4px; }
.kuku-steps__errors { margin: 10px 0 0; padding: 12px 14px; border-left: 4px solid #c0392b; background: #fdecea; }
.kuku-steps__errors p { margin: 0 0 6px; font-weight: 600; }
.kuku-steps__errors ul { margin: 0; padding-left: 20px; }
.kuku-steps__errors a { color: #8e1f12; }
@media (max-width: 600px) {
    .is-todo .kuku-steps__label, .is-done .kuku-steps__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .kuku-steps__step:not(:last-child)::after { margin: 0 8px; }
    .kuku-steps__step.is-current { flex: 2; }
    .kuku-steps .kuku-steps__title { font-size: 1.3rem; }
}

body.kuku-steps-on .entry-content > .woocommerce { max-width: 760px; margin-left: auto; margin-right: auto; padding-left: 16px; padding-right: 16px; box-sizing: border-box; }
body.kuku-steps-on form.checkout { display: flex; flex-direction: column; gap: 18px; }
body.kuku-steps-on form.checkout > * { order: 5; }
body.kuku-steps-on form.checkout > .woocommerce-NoticeGroup { order: 0; margin: 0; }
body.kuku-steps-on form.checkout > #customer_details { order: 1; }
body.kuku-steps-on form.checkout > .kuku-steps__nav--1 { order: 2; }
body.kuku-steps-on form.checkout > .kuku-summary { order: 3; }
body.kuku-steps-on form.checkout > #order_review { order: 4; }
body.kuku-steps-on #order_review_heading, body.kuku-steps-on #order_payment_heading, body.kuku-steps-on .woocommerce-billing-fields > h3 { display: none !important; }
body.kuku-steps-on #customer_details, body.kuku-steps-on #customer_details .col-1, body.kuku-steps-on #customer_details .col-2, body.kuku-steps-on #order_review { float: none; width: 100%; max-width: none; margin: 0; padding-left: 0; padding-right: 0; box-sizing: border-box; }
body.kuku-steps-on #customer_details .col-2:empty { display: none; }
body.kuku-steps-on #customer_details { padding: 20px; background: #fff; border: 1px solid rgba(116, 69, 52, .25); border-radius: 4px; }
body.kuku-steps-on #order_review { display: flex; flex-direction: column; gap: 14px; }
body.kuku-steps-on #order_review > * { order: 10; margin-top: 0; margin-bottom: 0; }
body.kuku-steps-on #order_review > .kuku-sibling-note { order: 1; }
body.kuku-steps-on #order_review > #payment { order: 2; }
body.kuku-steps-on #order_review > .kuku-steps__nav--2 { order: 3; }
body.kuku-steps-on #order_review > .woocommerce-checkout-review-order-table { order: 5; width: 100%; }
body.kuku-steps-on #order_review > .wc-gzd-checkbox-placeholder { order: 6; }
body.kuku-steps-on #order_review > .kuku-submit-pane { order: 7; }
body.kuku-steps-on #order_review > .kuku-steps__nav--3 { order: 8; }

/* Felder */
body.kuku-steps-on .woocommerce-billing-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
body.kuku-steps-on .woocommerce-billing-fields__field-wrapper > .form-row { float: none; width: 100%; margin: 0; padding: 0; grid-column: 1 / -1; }
body.kuku-steps-on .woocommerce-billing-fields__field-wrapper > .form-row-first, body.kuku-steps-on .woocommerce-billing-fields__field-wrapper > .form-row-last { grid-column: auto; }
body.kuku-steps-on #customer_details label { display: block; margin: 0 0 5px; font-size: .95rem; }
body.kuku-steps-on #customer_details .woocommerce-input-wrapper { display: block; }
body.kuku-steps-on #customer_details input.input-text, body.kuku-steps-on #customer_details select { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid #a59a8d; border-radius: 4px; font: inherit; font-size: 1rem; background: #fff; box-sizing: border-box; }
body.kuku-steps-on #customer_details input.input-text:focus, body.kuku-steps-on #customer_details select:focus { outline: 3px solid rgba(48, 59, 112, .35); outline-offset: 0; border-color: #303b70; }
body.kuku-steps-on #customer_details .woocommerce-invalid input.input-text, body.kuku-steps-on #customer_details .woocommerce-invalid select { border-color: #c0392b; }
.kuku-field-error { display: block; margin-top: 5px; font-size: .9rem; color: #8e1f12; }
@media (max-width: 600px) { body.kuku-steps-on .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr; } body.kuku-steps-on .woocommerce-billing-fields__field-wrapper > .form-row-first, body.kuku-steps-on .woocommerce-billing-fields__field-wrapper > .form-row-last { grid-column: 1 / -1; } body.kuku-steps-on #customer_details { padding: 16px; } }

/* Zahlungsart */
body.kuku-steps-on #payment { background: none; border-radius: 0; padding: 0; }
body.kuku-steps-on #payment ul.wc_payment_methods { list-style: none; margin: 0; padding: 0; border: 0; display: grid; gap: 10px; }
body.kuku-steps-on #payment ul.wc_payment_methods > li { margin: 0; padding: 14px 16px; border: 1px solid #a59a8d; border-radius: 4px; background: #fff; }
body.kuku-steps-on #payment ul.wc_payment_methods > li:has(input:checked) { border-color: #744534; background: #f7f2eb; box-shadow: 0 0 0 1px #744534; }
body.kuku-steps-on #payment ul.wc_payment_methods > li label { font-weight: 600; cursor: pointer; }
body.kuku-steps-on #payment .payment_box { margin: 8px 0 0; padding: 0; background: none; color: #50575e; font-size: .95rem; }
body.kuku-steps-on #payment .payment_box::before { display: none; }
body.kuku-steps-on .kuku-sibling-note { margin: 0; padding: 10px 14px; background: #f7f2eb; border-left: 4px solid #744534; }

/* Knöpfe */
.kuku-steps__nav { display: flex; gap: 12px; justify-content: space-between; align-items: center; }
.kuku-steps__nav--1 { justify-content: flex-end; }
.kuku-steps__nav .kuku-button { min-height: 48px; padding: 12px 24px; }
.kuku-steps__back { min-height: 48px; padding: 10px 18px; border: 1px solid #744534; border-radius: 4px; background: transparent; color: #744534; font: inherit; font-weight: 600; cursor: pointer; }
.kuku-steps__back:hover { background: #f7f2eb; }
.kuku-steps__back:focus-visible, .kuku-steps__nav .kuku-button:focus-visible, .kuku-summary .kuku-link:focus-visible { outline: 3px solid #303b70; outline-offset: 3px; }
@media (max-width: 600px) { .kuku-steps__nav { flex-direction: column-reverse; align-items: stretch; } .kuku-steps__nav .kuku-button, .kuku-steps__back { width: 100%; } }

/* Zusammenfassung (Schritt 3) */
.kuku-summary { padding: 18px 20px; background: #f7f2eb; border: 1px solid rgba(116, 69, 52, .25); border-radius: 4px; }
.kuku-summary__title { margin: 0 0 12px; font-size: 1.15rem; }
.kuku-summary__block { padding: 12px 0; border-top: 1px solid rgba(116, 69, 52, .2); }
.kuku-summary__block:first-of-type { border-top: 0; padding-top: 0; }
.kuku-summary__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.kuku-summary__head h4 { margin: 0; font-size: 1rem; }
.kuku-summary__lines { margin: 4px 0 0; line-height: 1.55; overflow-wrap: anywhere; }
.kuku-summary .kuku-link { min-height: 32px; font-size: .95rem; }

/* Schrittweise ein- und ausblenden */
body.kuku-steps-on:not([data-kuku-step="1"]) #customer_details,
body.kuku-steps-on:not([data-kuku-step="1"]) .kuku-steps__nav--1,
body.kuku-steps-on:not([data-kuku-step="1"]) .woocommerce-form-login-toggle,
body.kuku-steps-on:not([data-kuku-step="1"]) form.woocommerce-form-login { display: none !important; }
body.kuku-steps-on:not([data-kuku-step="2"]) #payment,
body.kuku-steps-on:not([data-kuku-step="2"]) .kuku-steps__nav--2,
body.kuku-steps-on:not([data-kuku-step="2"]) .kuku-sibling-note { display: none !important; }
body.kuku-steps-on:not([data-kuku-step="3"]) .wc-gzd-checkbox-placeholder,
body.kuku-steps-on:not([data-kuku-step="3"]) .kuku-submit-pane,
body.kuku-steps-on:not([data-kuku-step="3"]) .kuku-steps__nav--3,
body.kuku-steps-on:not([data-kuku-step="3"]) .kuku-summary { display: none !important; }
@media (prefers-reduced-motion: reduce) { .kuku-steps *, .kuku-steps { scroll-behavior: auto; transition: none; } }

body.kuku-steps-on #order_review > .woocommerce-checkout-review-order-table { margin: 0 !important; width: 100% !important; box-sizing: border-box; }
body.kuku-steps-on .woocommerce-checkout-review-order-table .wc-gzd-cart-item-thumbnail { display: none; }
body.kuku-steps-on .woocommerce-checkout-review-order-table td, body.kuku-steps-on .woocommerce-checkout-review-order-table th { padding: 10px 12px; }
body.kuku-steps-on .kuku-summary p { margin: 4px 0 0; }
body.kuku-steps-on .kuku-summary__block { margin: 0; }
/* Astra setzt die Bestellübersicht als schmale rechte Spalte mit Rahmen; in den Schritten steht alles untereinander. */
body.kuku-steps-on form.checkout #order_review, body.kuku-steps-on form.checkout #customer_details { float: none !important; width: 100% !important; max-width: none !important; margin: 0 !important; border: 0 !important; box-sizing: border-box; }
body.kuku-steps-on form.checkout #order_review { padding: 0 !important; background: none !important; }
body.kuku-steps-on form.checkout #customer_details { padding: 20px !important; border: 1px solid rgba(116, 69, 52, .25) !important; }
body.kuku-steps-on form.checkout #order_review > * { max-width: 100%; box-sizing: border-box; }
body.kuku-steps-on #payment ul.wc_payment_methods > li > input[type=radio] { margin: 0 10px 0 0; vertical-align: middle; }
body.kuku-steps-on #payment ul.wc_payment_methods > li > label { display: inline; }
/* Der Kopf der Website bleibt beim Scrollen stehen: beim Schrittwechsel die Leiste darunter anhalten. */
body.kuku-steps-on .kuku-steps { scroll-margin-top: 190px; }
@media (max-width: 600px) { body.kuku-steps-on .kuku-steps { scroll-margin-top: 110px; } body.kuku-steps-on .kuku-submit-pane #place_order { width: 100%; } }

/* Vor- und Nachname je Platz (0.37.0): eine Zeile je Platz; mit namen.js sind nur so viele Zeilen sichtbar, wie Plätze gewählt sind. */
.kuku-namerows { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 8px; }
.kuku-namerows legend { padding: 0; margin: 0 0 6px; font-size: .9rem; }
.kuku-namerows legend small { color: #50575e; }
.kuku-namerow { display: grid; grid-template-columns: 5.5rem 1fr 1fr; gap: 8px; align-items: center; }
.kuku-namerow[hidden] { display: none; }
.kuku-namerow-label { font-size: .9rem; color: #50575e; }
.kuku-namerow.has-sib { grid-template-columns: 5.5rem 1fr 1fr 8.5rem; }   /* 0.52.15: Kästchen „Geschwister“ hinten an der Zeile */
.kuku-sib label { display: inline-flex; gap: 6px; align-items: center; font-size: .95rem; font-weight: 400; margin: 0; white-space: nowrap; min-height: 44px; }
.kuku-sib input { width: 20px; height: 20px; margin: 0; }
.kuku-nojs-note { color: #50575e; }
.kuku-namerows.kuku-js .kuku-nojs-note { display: none; }
.kuku-cardform .kuku-cardname { grid-column: 1 / -1; }
.kuku-cardname .kuku-namerow { grid-template-columns: 1fr 1fr; }
.kuku-cardname .kuku-namerow-label { display: none; }
.kuku-namesform .kuku-namerow { margin: 4px 0; }
@media (max-width: 699px) {
    .kuku-namerow { grid-template-columns: 1fr 1fr; }
    .kuku-namerow-label { grid-column: 1 / -1; }
    .kuku-namerow.has-sib { grid-template-columns: 1fr 1fr; }
    .kuku-namerow.has-sib .kuku-sib { grid-column: 1 / -1; }
    .kuku-namerow.has-sib .kuku-sib:empty { display: none; }
}

/* Kursanzeige schmaler (0.37.0): Termine und Buchung höchstens 800 px breit, mittig wie der Rest der Seite, Überschrift auf derselben Kante, 16 px Seitenrand.
 * Der Astra-Block-Layout-Selektor (.ast-page-builder-template .entry-content[data-ast-blocks-layout] > *) setzt max-width: none, darum die längeren Selektoren. */
.kuku-block:not(.kuku-quotepage), .kuku-entry-booking .kuku-block, body .entry-content > .kuku-block:not(.kuku-quotepage) { max-width: 800px; margin-left: auto; margin-right: auto; box-sizing: border-box; }
.kuku-heading, .kuku-heading + .kuku-block { padding-left: 16px; padding-right: 16px; }
body .entry-content > .kuku-heading, .kuku-heading { max-width: 800px; margin-left: auto; margin-right: auto; box-sizing: border-box; }

/* ---------- Buchungsweg (0.40.0, O38) ---------- */
/* Liste /angebote/: unter jedem Angebot links der Knopf „Buchen“, rechts der nächste freie Termin. */
.kuku-entry-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px 18px; margin: 16px 0 0; }
.kuku-entry-actions .kuku-button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; text-decoration: none; }
.kuku-entry-next { display: grid; gap: 2px; text-align: right; font-size: .95rem; }
.kuku-entry-actions.is-nobutton .kuku-entry-next { text-align: left; }
.kuku-entry-next-label { color: #50575e; }
.kuku-entry-next-date { font-weight: 600; color: #744534; text-decoration: none; }
.kuku-entry-next-date:hover, .kuku-entry-next-date:focus-visible { text-decoration: underline; }
.kuku-cartbar { margin: 0 0 18px; padding: 10px 14px; border-left: 4px solid #744534; background: #f7f2eb; }
.kuku-cartbar a { font-weight: 600; }
@media (max-width: 480px) {
    .kuku-entry-actions { gap: 8px 10px; }
    .kuku-entry-next { font-size: .9rem; }
}

/* Kurzblock auf den Inhaltsseiten */
.kuku-teaser-offer { margin: 0 0 26px; }
.kuku-teaser-list { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 8px; }
.kuku-teaser-list li { margin: 0; border: 1px solid rgba(116, 69, 52, .25); border-radius: 4px; background: #fff; }
.kuku-teaser-list li.is-full { opacity: .6; padding: 12px 16px; display: grid; gap: 4px; }
.kuku-teaser-list li > a { display: grid; gap: 4px; padding: 12px 16px; min-height: 44px; color: inherit; text-decoration: none; box-sizing: border-box; }
.kuku-teaser-list li > a:hover, .kuku-teaser-list li > a:focus-visible { background: #f7f2eb; }
.kuku-teaser-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 0; }
.kuku-teaser-actions .kuku-button { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; }
.kuku-teaser-also { color: #50575e; }

/* Buchungsseite /buchen/<name>/ */
.kuku-book-head { margin: 0 0 18px; }
.kuku-book-title { margin: 0 0 8px; }
.kuku-book-meta { margin: 0 0 6px; color: #50575e; }
.kuku-book-more { margin: 0 0 6px; }
.kuku-pick { margin: 0 0 22px; }
.kuku-pick-title { margin: 0 0 10px; font-size: 1.2rem; }
.kuku-pick-buttons { display: flex; flex-wrap: wrap; gap: 10px; }
.kuku-choice { display: inline-flex; align-items: center; min-height: 48px; padding: 10px 18px; border: 2px solid #744534; border-radius: 4px; background: #fff; color: #744534; font-weight: 600; text-decoration: none; box-sizing: border-box; }
.kuku-choice:hover, .kuku-choice:focus-visible { background: #f7f2eb; }
.kuku-choice.is-active { background: #744534; color: #fff; }
/* 0.52.4: Auswahlkarten (Zween 19.10.2026: „optisch bitte mal anders“). Ecken 4 px wie die ganze Seite (Melanie: nichts Rundes). Raster, je Karte Art, Preis, eine Zeile; gewählt = Rahmen, heller Grund, ✓. Überschreibt die Knopf-Regeln oben. */
.kuku-pick-cards, .kuku-pick-courses { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; max-width: 760px; }
.kuku-pick-cards .kuku-choice, .kuku-pick-courses .kuku-choice { position: relative; display: grid; align-content: start; gap: 2px; min-height: 0; padding: 14px 16px; border: 1px solid rgba(116, 69, 52, .3); border-radius: 4px; background: #fff; color: #2b211c; font-weight: 400; text-decoration: none; width: auto; justify-content: stretch; }
.kuku-pick-cards .kuku-choice:hover, .kuku-pick-cards .kuku-choice:focus-visible, .kuku-pick-courses .kuku-choice:hover, .kuku-pick-courses .kuku-choice:focus-visible { border-color: #744534; background: #fcfaf7; }
.kuku-pick-cards .kuku-choice.is-active { border-color: #744534; box-shadow: 0 0 0 1px #744534; background: #f7f2eb; color: #2b211c; }
.kuku-pick-cards .kuku-choice, .kuku-pick-courses .kuku-choice, .kuku-choice span { text-decoration: none !important; }   /* die Seite unterstreicht jeden Link */
.kuku-choice-name { font-weight: 700; color: #744534; font-size: 1.05rem; padding-right: 26px; }
.kuku-choice-price { font-weight: 700; font-size: 1.15rem; }
.kuku-choice-note, .kuku-choice-when { font-size: .9rem; color: #5c524b; }
.kuku-choice-check { position: absolute; top: 12px; right: 12px; width: 20px; height: 20px; border-radius: 2px; border: 2px solid rgba(116, 69, 52, .4); box-sizing: border-box; }
.kuku-choice.is-active .kuku-choice-check { background: #744534; border-color: #744534; }
.kuku-choice.is-active .kuku-choice-check::after { content: "✓"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 12px; font-weight: 700; }
.kuku-pick-courses { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.kuku-pick-courses .kuku-choice { gap: 4px; padding: 16px 18px; }
.kuku-pick-courses .kuku-choice-note { margin-top: 4px; }
.kuku-choice-go { margin-top: 10px; justify-self: start; padding: 8px 14px; border-radius: 4px; background: #744534; color: #fff; font-weight: 600; }
.kuku-bookpart { margin: 0 0 32px; }
.kuku-bookpart[hidden] { display: none; }
.kuku-bookpart-title { margin: 0 0 12px; font-size: 1.3rem; }
.kuku-bookpage.kuku-js .kuku-bookpart-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.kuku-bookform { grid-template-columns: 1fr; margin: 0 0 14px; }
.kuku-bookform + .kuku-bookform { margin-top: 26px; padding-top: 22px; border-top: 1px solid rgba(116, 69, 52, .25); }
.kuku-slots { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 10px; }
.kuku-slots legend { padding: 0; margin: 0 0 8px; font-weight: 600; }
.kuku-slot { display: flex; gap: 12px; align-items: flex-start; padding: 12px 16px; min-height: 44px; border: 1px solid rgba(116, 69, 52, .25); border-radius: 4px; background: #fff; cursor: pointer; box-sizing: border-box; font-size: 1rem; }
.kuku-slot:has(input:checked) { border-color: #744534; background: #f7f2eb; box-shadow: 0 0 0 1px #744534; }
.kuku-slot.is-full { opacity: .6; cursor: not-allowed; }
.kuku-slot[hidden], .kuku-more-slots[hidden] { display: none; }   /* 0.56.3: „Weitere Termine anzeigen“ */
.kuku-more-slots { margin: 4px 0 0; }
.kuku-block .kuku-more-slots a.kuku-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; text-decoration: none; }
@media (max-width: 600px) { .kuku-block .kuku-more-slots a.kuku-button { display: flex; width: 100%; box-sizing: border-box; } }
.kuku-slot input[type=radio] { flex: none; margin: 4px 0 0; width: 20px; height: 20px; }
.kuku-slot-text { display: grid; gap: 4px; min-width: 0; }
.kuku-bookform .kuku-names, .kuku-bookform .kuku-price, .kuku-bookform .kuku-groupfields { grid-column: 1 / -1; }
.kuku-bookform .kuku-button, .kuku-cardform .kuku-button, .kuku-giftform .kuku-button { min-height: 48px; justify-self: start; }
.kuku-bookpart .kuku-cardbuy.is-bare { margin: 0; padding: 0; border: 0; background: none; }
.kuku-bookpart .kuku-gift.is-open { margin: 0; padding: 0; border: 0; }
.kuku-redeem-hint { margin: 16px 0 0; }
.kuku-book-texts { margin-top: 36px; }
@media (max-width: 480px) {
    .kuku-pick-buttons { flex-direction: column; }
    .kuku-choice { width: 100%; justify-content: center; }
    .kuku-pick-cards { grid-template-columns: 1fr 1fr; }
    .kuku-pick-cards .kuku-choice, .kuku-pick-courses .kuku-choice { width: auto; }
    .kuku-bookform .kuku-button, .kuku-cardform .kuku-button, .kuku-giftform .kuku-button { width: 100%; justify-self: stretch; }
}

/* Warenkorb-Seite als Schritt: „Zur Kasse“ und „Weiter stöbern“ nebeneinander, am Handy untereinander. Nichts davon gilt für Seiten ohne body.woocommerce-cart. */
.kuku-cart-added { max-width: 800px; margin-left: auto; margin-right: auto; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:not(.kuku-checkout) { display: none; }
.woocommerce-cart table.cart td.actions, .woocommerce-cart .cross-sells, .woocommerce-cart .woocommerce-shipping-calculator { display: none; }   /* Mengenfeld, „Warenkorb aktualisieren“, Gutscheincode von WooCommerce, Versand, Querverkauf: bei uns sinnlos */
.woocommerce-cart table.cart .product-thumbnail { display: none; }   /* der Träger-Artikel hat kein Bild, sonst steht das graue Platzhalterbild von WooCommerce in jeder Zeile */
.kuku-cart-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin: 0 0 14px; }
.kuku-cart-actions .kuku-checkout { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 24px; text-decoration: none; }
.kuku-cart-more { min-height: 44px; display: inline-flex; align-items: center; font-weight: 600; color: #744534; }
@media (max-width: 600px) {
    .kuku-cart-actions { flex-direction: column; align-items: stretch; }
    .kuku-cart-actions .kuku-checkout { width: 100%; }
    .kuku-cart-more { justify-content: center; }
}

/* 0.46.0 (UX-Prüfung B16): Pflicht-Häkchen groß und die ganze Zeile tippbar (Label umschließt das Kästchen): AGB und Widerruf an der Kasse (Felder von Germanized, nur hier gestaltet,
   Germanized selbst bleibt unverändert), Einwilligung bei den Kinderangaben, Bestätigung beim Konto löschen. Kästchen 28 px, Zeile mindestens 48 px hoch.
   Das Label bleibt ein Block mit linkem Innenabstand, nur das Kästchen steht absolut davor: der Text (auch mit Links) bleibt normaler Fließtext und wird nicht in Flex-Spalten zerrissen. */
.kuku-child .kuku-check,
.kuku-form label.kuku-check,
body.woocommerce-checkout .wc-gzd-checkbox-placeholder label.checkbox,
body.woocommerce-checkout .wc-gzd-checkbox-placeholder label.woocommerce-form__label-for-checkbox,
body.woocommerce-checkout p.validate-required label.woocommerce-form__label-for-checkbox {
    display: block; position: relative; box-sizing: border-box; width: 100%; min-height: 48px; padding: 10px 12px 10px 52px;
    border: 1px solid rgba(116, 69, 52, .35); border-radius: 4px; background: #fff; cursor: pointer; font-size: 1rem; line-height: 1.4;
}
.kuku-child .kuku-check input[type=checkbox],
.kuku-form label.kuku-check input[type=checkbox],
body.woocommerce-checkout .wc-gzd-checkbox-placeholder label input[type=checkbox],
body.woocommerce-checkout p.validate-required label.woocommerce-form__label-for-checkbox input[type=checkbox] {
    position: absolute; left: 12px; top: 10px; width: 28px !important; height: 28px !important; min-width: 28px; margin: 0; accent-color: #744534; cursor: pointer;
}
.kuku-child .kuku-check:focus-within,
.kuku-form label.kuku-check:focus-within,
body.woocommerce-checkout .wc-gzd-checkbox-placeholder label:focus-within { outline: 3px solid #303b70; outline-offset: 2px; }

/* 0.46.0 (UX-Prüfung B4): „Link per Mail schicken“ (inc/mein_bereich.php) auf Mein Konto, Meine Buchung, Meine Karte und Dein Preisangebot */
.kuku-mb { margin: 28px 0; padding: 18px; border: 1px solid rgba(116, 69, 52, .25); border-radius: 4px; background: #f7f2eb; }
.kuku-mb h3 { margin: 0 0 10px; }
.kuku-mb .kuku-form { grid-template-columns: 1fr; align-items: stretch; }
.kuku-mb input[type=email] { width: 100%; padding: 12px; border: 1px solid #a59a8d; border-radius: 4px; font: inherit; background: #fff; box-sizing: border-box; }
.kuku-mb-intro { margin: 0 0 16px; }

/* 0.52.4 (Zween 19.10.2026: „das Blau beim Überfahren ist nicht gut“): auf Warenkorb, Kasse, Mein Konto und den Buchungsseiten färbt sich ein Link beim Überfahren dunkelbraun statt blau (sk.css: a:hover = --sk-blau). */
body.woocommerce-cart a:hover, body.woocommerce-cart a:focus, body.woocommerce-checkout a:hover, body.woocommerce-checkout a:focus, body.woocommerce-account a:hover, body.woocommerce-account a:focus,
.kuku-block a:hover, .kuku-block a:focus { color: #4e2c22; }
body.woocommerce-cart .sk-marke:hover, body.woocommerce-checkout .sk-marke:hover, body.woocommerce-cart .plugoff-whatsapp-button:hover, body.woocommerce-checkout .plugoff-whatsapp-button:hover { color: inherit; }
.kuku-block .kuku-choice-go, .kuku-block .kuku-choice-go:hover, .kuku-block a.kuku-button:hover, .kuku-block a.kuku-button:focus { color: #fff; }
.kuku-block .kuku-choice.is-active:hover { color: #2b211c; }
.kuku-block .kuku-choice-course:hover .kuku-choice-go { background: #4e2c22; color: #fff; }
.kuku-price .kuku-vat { display: block; font-weight: 400; font-size: .85rem; color: #5c524b; margin-top: 2px; }
.kuku-bookform > .kuku-vat { grid-column: 1 / -1; color: #5c524b; }

/* 0.52.4 (Regie/Zween 19.10.2026, Kasse): Kästchen AGB/Widerruf (und alle Pflicht-Kästchen von Germanized) als EIN Rahmen, Kästchen links, Text bündig daneben.
   Auf scheibenundkleister.de setzte eine Regel des Themes das Label auf display:inline: der Rahmen zerfiel dann je Zeile in eigene Kästen. Deshalb !important und alle Wrapper-Klassen. */
body.woocommerce-checkout .checkbox-legal label.woocommerce-form__label-for-checkbox,
body.woocommerce-checkout .legal label.woocommerce-form__label-for-checkbox,
body.woocommerce-checkout .wc-terms-and-conditions label.woocommerce-form__label-for-checkbox {
    display: block !important; position: relative; box-sizing: border-box; width: 100%; min-height: 48px; padding: 10px 12px 10px 52px !important; margin: 0;
    border: 1px solid rgba(116, 69, 52, .35); border-radius: 4px; background: #fff; line-height: 1.4; text-indent: 0;
}
body.woocommerce-checkout .checkbox-legal label.woocommerce-form__label-for-checkbox input[type=checkbox],
body.woocommerce-checkout .legal label.woocommerce-form__label-for-checkbox input[type=checkbox] {
    position: absolute !important; left: 12px; top: 10px; margin: 0 !important; float: none;
}
body.woocommerce-checkout .checkbox-legal label > span, body.woocommerce-checkout .legal label > span { display: inline; border: 0; padding: 0; margin: 0; background: none; }
body.woocommerce-checkout .checkbox-legal, body.woocommerce-checkout p.legal { border: 0 !important; padding: 0 !important; background: none !important; }
.kuku-required-note { margin: 0 0 12px; font-size: .9rem; color: #5c524b; }
.kuku-required-note .required, body.woocommerce-checkout .required { color: #a3341f; text-decoration: none; border: 0; }
body.woocommerce-checkout .payment_box .kuku-pay-hint { display: block; font-size: 16px; line-height: 1.45; color: #1d1d1b; }   /* 0.52.6: Satz unter der Zahlart PayPal, gut lesbar auch bei 375 px */

/* 0.52.8 (Regie/Zween 19.10.2026): nur eine Zahlart = keine Auswahl. Kein Schritt „Zahlungsart“, keine Überschrift, kein Radio, kein Rahmen; der Satz zu PayPal steht im letzten
   Schritt nach dem Kästchen AGB/Widerruf direkt über dem PayPal-Knopf. „* Pflichtfeld“ oben über den Rechnungsdaten. */
body.kuku-steps-on form.checkout > .kuku-required-note { order: 1; margin: 0 0 -8px; }
body.kuku-pay-single.kuku-steps-on[data-kuku-step="3"] #payment { display: block !important; }
body.kuku-pay-single.kuku-steps-on #order_review > #payment { order: 7; }
body.kuku-pay-single.kuku-steps-on #order_review > .kuku-submit-pane { order: 8; }
body.kuku-pay-single.kuku-steps-on #order_review > .kuku-steps__nav--3 { order: 9; }
body.kuku-pay-single #payment ul.wc_payment_methods > li { padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; }
body.kuku-pay-single #payment ul.wc_payment_methods > li > input, body.kuku-pay-single #payment ul.wc_payment_methods > li > label { display: none !important; }
body.kuku-pay-single #payment .payment_box { display: block !important; margin: 0 !important; padding: 0 !important; background: none !important; color: #1d1d1b; }
body.kuku-pay-single #payment .payment_box::before { display: none !important; }
body.kuku-pay-single #payment .payment_box p, body.kuku-pay-single #payment .payment_box .kuku-pay-hint { margin: 0; font-size: 16px; line-height: 1.45; }
/* 0.52.10: Verweis und Erklärung zu Preisgruppen mit Nachweis (wie .sk-fn der Startseite; auf Seiten ohne sk-site gilt diese Regel) */
.kuku-fn { font-size: .72em; line-height: 0; font-weight: 600; margin-left: 1px; }
.kuku-fn a { text-decoration: none; padding: 0 2px; }
.kuku-fn-note { margin: 14px 0 0; font-size: .95rem; line-height: 1.5; }
/* 0.53.1: „In den Kalender eintragen“ (Meine Buchung, Meine Karte) als umrandeter Knopf mit Abstand; vorher klebte der Link als halber brauner Knopf unter „Angaben speichern“ */
.kuku-ics { margin: 16px 0 0; }
.kuku-ics a.kuku-button { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; background: transparent; color: #744534; border: 1px solid #744534; box-sizing: border-box; }
.kuku-ics a.kuku-button:hover, .kuku-ics a.kuku-button:focus-visible, .kuku-block .kuku-ics a.kuku-button:hover { background: #f1dfd2; color: #744534; }
/* 0.90.1 (Germanized raus, A2): Kasse in Schritten im Standard-DOM von WooCommerce. body.kuku-wc-dom setzt assets/kasse-schritte.js, wenn #place_order in #payment steht (ohne Germanized).
   #payment trägt dann Zahlarten (Schritt 2) UND Kästchen samt Bestellknopf in .place-order (Schritt 3): je Schritt nur den passenden Teil zeigen.
   § 312j Abs. 2 BGB: in Schritt 3 steht #payment hinter der Tabelle (Termin, Gesamtsumme, § 19-Zeile), also Übersicht immer über Kästchen und Knopf. */
body.kuku-steps-on.kuku-wc-dom[data-kuku-step="3"] #payment { display: block !important; }
body.kuku-steps-on.kuku-wc-dom[data-kuku-step="3"] #order_review > #payment { order: 6; }
body.kuku-steps-on.kuku-wc-dom:not(.kuku-pay-single)[data-kuku-step="3"] #payment ul.wc_payment_methods,
body.kuku-steps-on.kuku-wc-dom:not([data-kuku-step="3"]) #payment .place-order { display: none !important; }
body.kuku-steps-on.kuku-wc-dom #payment .place-order { float: none; width: 100%; margin: 0; padding: 0; }
body.kuku-steps-on.kuku-wc-dom #payment .place-order > .legal, body.kuku-steps-on.kuku-wc-dom #payment .place-order > .kuku-invoice-hint { margin: 0 0 12px; }
/* Nur eine Zahlart: der Satz zur Zahlart steht wie mit Germanized NACH den Kästchen direkt über dem Knopf (0.52.8). .place-order löst sich dafür in #payment auf. */
body.kuku-pay-single.kuku-steps-on.kuku-wc-dom[data-kuku-step="3"] #payment { display: flex !important; flex-direction: column; gap: 12px; }
body.kuku-pay-single.kuku-steps-on.kuku-wc-dom[data-kuku-step="3"] #payment .place-order { display: contents; }
body.kuku-pay-single.kuku-steps-on.kuku-wc-dom #payment .place-order > * { order: 1; margin: 0; }
body.kuku-pay-single.kuku-steps-on.kuku-wc-dom #payment > ul.wc_payment_methods { order: 2; }
body.kuku-pay-single.kuku-steps-on.kuku-wc-dom #payment .place-order > #place_order { order: 3; }
