/* Phönix Kasse: links drei Schritte (Angaben, Zeit, Bezahlung), rechts die Bestellübersicht mit Kasse-Knopf.
   Grundsätze: Fortschritt zeigen, wenig Felder pro Zeile, Summe direkt am Knopf, ein einziger Aktions-Knopf in Orange. */
.phx-kasse { --act: #f76707; --act-2: #ff922b; --act-bg: #fff4ea; --ok: #1f9d63; }
.phx-co { padding-block: 18px 64px; }
.phx-co .woocommerce { display: block; }
.phx .screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.phx-co-head, .phx-co .woocommerce > *, .phx-co .woocommerce-order { max-width: 1100px; margin-inline: auto; }

/* Fortschritt: 1 erledigt – 2 jetzt – 3 gleich */
.phx-track { list-style: none; margin: 0 0 18px; padding: 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 14px; font-weight: 700; color: var(--ink-2); }
.phx-track li { display: flex; align-items: center; gap: 8px; }
.phx-track li + li::before { content: ""; width: clamp(18px, 4vw, 44px); height: 2px; border-radius: 2px; background: var(--line); margin-right: 2px; }
.phx-track li.done + li::before { background: var(--ok); }
.phx-track .n { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-size: 13px; border: 2px solid var(--line); background: var(--surface); }
.phx-track .done .n { background: var(--ok); border-color: var(--ok); color: #fff; }
.phx-track .now { color: var(--ink); }
.phx-track .now .n { background: var(--lacquer); border-color: var(--lacquer); color: #fff; box-shadow: 0 0 0 4px rgba(179, 23, 58, .14); }
.phx-track a { color: inherit; text-decoration: none; display: flex; align-items: center; gap: 8px; border-radius: 8px; transition: color .15s; }
.phx-track a:hover { color: var(--ok); }
.phx-co-title { font-family: var(--font-display); font-weight: 400; font-size: clamp(26px, 3.6vw, 34px); line-height: 1.1; margin: 10px 0 18px; }

/* Hinweise */
.phx-co .woocommerce-error, .phx-co .woocommerce-info, .phx-co .woocommerce-message, .phx-checkout-note {
	list-style: none; margin: 0 0 16px; padding: 12px 14px; border-radius: 12px; font-size: 15px; border: 1px solid var(--line); background: var(--surface);
}
.phx-co .woocommerce-error { background: #fdecea; border-color: #f2c2bb; color: #7d1420; }
.phx-co .woocommerce-error li { margin: 2px 0; }
.phx-co .woocommerce-info { background: var(--amber-bg); border-color: #efd6a6; }
.phx-checkout-note p { margin: 0; }
.phx-co .woocommerce-form-coupon-toggle, .phx-co .checkout_coupon { display: none; }

/* Aufbau */
.phx-co form.phx-checkout { display: grid; grid-template-columns: minmax(0, 1fr) 390px; gap: 24px; align-items: start; }
.phx-co form.phx-checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.phx-co-main { display: grid; gap: 14px; counter-reset: phxstep; min-width: 0; }
.phx-co #customer_details { display: grid; gap: 14px; }
.phx-co #customer_details .col-1, .phx-co #customer_details .col-2 { width: auto; float: none; padding: 0; }
.phx-co #customer_details .col-2:empty, .phx-co .woocommerce-shipping-fields:empty { display: none; }
.phx-co wc-order-attribution-inputs { display: none; }
/* WooCommerce-Clearfix wäre im Raster eine leere Zeile und schob „Ihre Angaben“ unter „Ihre Bestellung“ */
.phx-co #customer_details::before, .phx-co #customer_details::after { display: none; }

/* Karten der drei Schritte */
.phx-co .woocommerce-billing-fields, .phx-co .woocommerce-additional-fields, .phx-co-step {
	background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 16px 18px 18px;
	box-shadow: 0 1px 2px rgba(60, 25, 15, .04); transition: border-color .2s, box-shadow .2s;
}
.phx-co .woocommerce-billing-fields:focus-within, .phx-co .woocommerce-additional-fields:focus-within, .phx-co-step:focus-within {
	border-color: rgba(224, 178, 82, .9); box-shadow: 0 0 0 3px rgba(224, 178, 82, .18), 0 8px 22px rgba(60, 25, 15, .07);
}
.phx-co .woocommerce-billing-fields > h3, .phx-co .woocommerce-additional-fields > h3, .phx-co-step > h3 {
	display: flex; align-items: center; gap: 10px; margin: 0 0 14px; font-family: var(--font-display); font-weight: 400; font-size: 20px; line-height: 1.2;
}
.phx-co .woocommerce-billing-fields > h3::before, .phx-co .woocommerce-additional-fields > h3::before, .phx-co-step > h3::before {
	counter-increment: phxstep; content: counter(phxstep);
	width: 28px; height: 28px; flex: none; display: grid; place-items: center; border-radius: 8px; transform: rotate(-4deg);
	background: var(--lacquer); color: #fff; font-family: var(--font-body); font-weight: 700; font-size: 15px; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .3);
}

/* Felder: kompakt, in sinnvollen Paaren */
.phx-co .woocommerce-billing-fields__field-wrapper, .phx-co .woocommerce-additional-fields__field-wrapper { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.phx-co .form-row { grid-column: span 6; margin: 0; padding: 0; display: grid; gap: 4px; min-width: 0; align-content: start; }
.phx-co form .form-row, .phx-co form .form-row-first, .phx-co form .form-row-last { float: none !important; width: auto !important; }
.phx-co #billing_first_name_field, .phx-co #billing_last_name_field, .phx-co #billing_email_field, .phx-co #billing_phone_field { grid-column: span 3; }
.phx-co #billing_address_1_field, .phx-co #billing_city_field { grid-column: span 4; }
.phx-co #billing_address_2_field, .phx-co #billing_postcode_field { grid-column: span 2; }
.phx-co .phx-hidden { display: none !important; }
.phx-co .form-row label { font-size: 13px; font-weight: 700; color: var(--ink-2); letter-spacing: .01em; }
.phx-co form .form-row .required { display: inline; color: #d6455a; font-weight: 700; font-size: 15px; line-height: 1; margin-left: 2px; text-decoration: none; border: 0; }
/* Pflicht-Häkchen Liefer- & Zahlungsbedingungen: gut klickbar, bei Fehlen fetter roter Rahmen */
.phx-co p.legal { padding: 12px 14px !important; border: 2px solid transparent; transition: border-color .2s, background .2s; }
.phx-co p.legal::before { display: none; }
.phx-co p.legal label.woocommerce-form__label-for-checkbox { display: flex !important; gap: 10px; align-items: flex-start; cursor: pointer; color: var(--ink); font-size: 14px; }
.phx-co p.legal input.input-checkbox { width: 22px; height: 22px; flex: none; margin: 0 !important; accent-color: var(--act); cursor: pointer; }
/* Häkchen fehlt: dezent wie die übrigen Pflichtfelder (feiner Rand, zarter Grund, Hinweis darunter) */
.phx-co p.legal.phx-legal-missing { border: 1.5px solid #e8a3ae; background: #fff7f8 !important; box-shadow: none; border-radius: 12px; }
.phx-co p.legal.phx-legal-missing input.input-checkbox { outline: 2px solid #e8a3ae; outline-offset: 2px; }
.phx-co p.legal.phx-legal-missing .phx-err { margin: 8px 0 0 32px; }
.phx-req-note { margin: -8px 0 12px; font-size: 12.5px; color: var(--ink-2); }
.phx-req-note .required { color: #d6455a; font-weight: 700; }

/* Pflichtfeld fehlt / falsch: rot umrandet, zart rot hinterlegt, kurzer Hinweis darunter */
.phx-co form .form-row.phx-missing label { color: #b4233a; }
.phx-co form .form-row.phx-missing .input-text, .phx-co form .form-row.phx-missing select, .phx-co form .form-row.phx-missing textarea {
	border-color: #d6455a !important; background: #fff1f2 !important; box-shadow: 0 0 0 3px rgba(214, 69, 90, .14) !important;
}
.phx-co form .form-row.phx-missing .input-text:focus, .phx-co form .form-row.phx-missing select:focus { border-color: #d6455a; box-shadow: 0 0 0 3px rgba(214, 69, 90, .22); background: #fff; }
.phx-err { display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: #b4233a; margin-top: 2px; }
.phx-err::before { content: "!"; width: 16px; height: 16px; flex: none; border-radius: 50%; background: #d6455a; color: #fff; font-size: 11px; display: grid; place-items: center; }
.phx-co form .form-row.phx-shake { animation: phxshake .35s ease-in-out; }
@keyframes phxshake { 25% { transform: translateX(-5px); } 50% { transform: translateX(5px); } 75% { transform: translateX(-3px); } }
.phx-form-alert { grid-column: 1 / -1; display: flex; align-items: center; gap: 10px; margin: 0; padding: 12px 14px; border-radius: 12px; background: #fff1f2; border: 1px solid #f2c2bb; color: #7d1420; font-weight: 700; font-size: 15px; }
.phx-co .form-row .optional { display: none; }
.phx-co .woocommerce-input-wrapper { display: block; position: relative; }
.phx-co form .form-row .input-text, .phx-co form .form-row select, .phx-co form .form-row textarea {
	width: 100%; height: 44px; border-radius: 10px; border: 1.5px solid var(--line); background: #fffdfb; padding: 0 12px; font-size: 16px; line-height: 1.3; min-width: 0; color: var(--ink); box-sizing: border-box;
	transition: border-color .15s, box-shadow .15s, background .15s;
}
.phx-co form .form-row textarea { height: auto; min-height: 64px; padding: 10px 12px; resize: vertical; }
.phx-co .input-text::placeholder, .phx-co textarea::placeholder { color: #a8968c; }
.phx-co form .form-row .input-text:hover, .phx-co form .form-row select:hover, .phx-co form .form-row textarea:hover { border-color: #e5b98f; }
.phx-co form .form-row .input-text:focus, .phx-co form .form-row select:focus, .phx-co form .form-row textarea:focus { outline: none; border-color: var(--act); background: #fff; box-shadow: 0 0 0 3px rgba(247, 103, 7, .14); }
/* richtig ausgefüllt: grüner Haken, falsch: rot */
.phx-co form .form-row.woocommerce-validated .input-text:not(:focus) { padding-right: 34px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%231f9d63' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") no-repeat right 10px center / 18px; }
.phx-co form .form-row.woocommerce-invalid .input-text, .phx-co form .form-row.woocommerce-invalid select { border-color: #d6455a; background: #fff7f7; }
.phx-co .description { font-size: 12.5px; color: var(--ink-2); display: block !important; position: static !important; background: none !important; padding: 0 !important; margin: 0; }
.phx-co .description::before { display: none !important; }
.phx-co form .phx-when select { font-weight: 700; height: 48px; background-color: var(--act-bg); border-color: #f7c79c; cursor: pointer; }

/* Wie möchten Sie bestellen? Gast / Anmelden / Konto anlegen */
.phx-acc { border: 0; margin: 0 0 16px; padding: 0; min-width: 0; }
.phx-acc legend { font-family: var(--font-display); font-size: 19px; margin-bottom: 10px; padding: 0; }
.phx-acc-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.phx-acc-tile { position: relative; display: grid; gap: 3px; align-content: start; padding: 13px 14px 13px 44px; border: 1.5px solid var(--line); border-radius: 14px; background: var(--surface); cursor: pointer; transition: border-color .15s, background .15s, box-shadow .15s, transform .15s; }
.phx-acc-tile:hover { border-color: #e5b98f; transform: translateY(-1px); }
.phx-acc-tile:has(input:checked) { border-color: var(--act); background: var(--act-bg); box-shadow: 0 0 0 1px var(--act); }
.phx-acc-tile input { position: absolute; left: 14px; top: 15px; appearance: none; -webkit-appearance: none; width: 20px; height: 20px; margin: 0; border-radius: 50%; border: 2px solid #c9b6aa; background: #fff; cursor: pointer; }
.phx-acc-tile input:checked { border-color: var(--act); box-shadow: inset 0 0 0 4px #fff, inset 0 0 0 10px var(--act); }
.phx-acc-tile .t { font-weight: 700; font-size: 15px; line-height: 1.25; text-wrap: balance; } /* „Ich habe schon / ein Konto“ statt einzelnem „Konto“ */
.phx-acc-tile .s { font-size: 13px; color: var(--ink-2); line-height: 1.35; }
.phx-acc-login { margin-top: 10px; padding: 14px; border-radius: 14px; background: var(--surface); border: 1px solid var(--line); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 12px; align-items: end; }
.phx-acc-login .form-row { display: grid; gap: 4px; margin: 0; }
.phx-acc-login label { font-size: 13px; font-weight: 700; color: var(--ink-2); }
.phx-acc-login .input-text { width: 100%; height: 44px; border-radius: 10px; border: 1.5px solid var(--line); background: #fffdfb; padding: 0 12px; font-size: 16px; }
.phx-acc-login .input-text:focus { outline: none; border-color: var(--act); box-shadow: 0 0 0 3px rgba(247, 103, 7, .14); }
.phx-acc-login-act { grid-column: 1 / -1; margin: 0; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.phx-acc-login-act a { color: var(--lacquer-text); font-size: 14px; }
/* „Anmelden“ = Aktion → Orange mit weißer Schrift (vorher dunkler Block, Schrift unsichtbar) */
.phx-co .phx-acc-btn, .phx-acc-btn { height: 46px; min-width: 140px; padding: 0 24px; border: 0; border-radius: 12px; background: linear-gradient(145deg, var(--act-2), var(--act)) !important; color: #fff !important; font: inherit; font-weight: 700; font-size: 16px; cursor: pointer; box-shadow: 0 6px 14px rgba(247, 103, 7, .28); transition: transform .15s, box-shadow .15s; }
.phx-co .phx-acc-btn:hover, .phx-acc-btn:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(247, 103, 7, .38); color: #fff !important; }
.phx-acc-login .phx-err { grid-column: 1 / -1; }
.phx-acc-known { margin: 0 0 14px; padding: 10px 14px; border-radius: 12px; background: var(--jade-bg); color: var(--ink); font-size: 14.5px; }
@media (max-width: 760px) {
	.phx-acc-tiles { grid-template-columns: minmax(0, 1fr); }
	.phx-acc-login { grid-template-columns: minmax(0, 1fr); }
}

/* Sperre direkt über dem Knopf (Mindestbestellwert, leerer Warenkorb, PLZ, Öffnungszeit): freundliche Karte wie „Kasse gesperrt“ – ein Satz, ein Weg */
.phx-co .phx-block { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 12px; align-items: start; margin: 0; padding: 16px; background: var(--surface); border: 1px solid #f3d9b0; border-radius: 16px; box-shadow: var(--shadow); color: var(--ink); font-size: 14.5px; line-height: 1.45; text-wrap: pretty; }
.phx-co .phx-block[hidden] { display: none; }
.phx-co .phx-block .han { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 10px; background: var(--amber-bg); color: var(--amber); font-family: var(--font-han); font-weight: 900; font-size: 22px; transform: rotate(-4deg); box-shadow: inset 0 0 0 2px rgba(138, 83, 0, .2); }
.phx-co .phx-block h3 { margin: 2px 0 4px; font-family: var(--font-display); font-weight: 400; font-size: 19px; line-height: 1.25; color: var(--ink); }
.phx-co .phx-block p { margin: 0 0 10px; color: var(--ink-2); }
.phx-co .phx-block p strong { color: #e8590c; white-space: nowrap; }
.phx-co .phx-block ul { margin: 0 0 10px; padding-left: 18px; color: var(--ink-2); }
.phx-co .phx-block .bar { height: 10px; margin: 0 0 12px; border-radius: 6px; background: #f1e7dc; overflow: hidden; }
.phx-co .phx-block .bar i { display: block; height: 100%; border-radius: 6px; background: linear-gradient(90deg, #e03131, #f76707 35%, #fab005 70%, #40c057); background-size: var(--full, 100%) 100%; transition: width .3s ease; }
.phx-co .phx-block-link { display: inline-flex; align-items: center; min-height: 42px; padding: 0 20px; border-radius: 12px; background: linear-gradient(145deg, var(--act-2), var(--act)); color: #fff !important; font-weight: 700; text-decoration: none; box-shadow: 0 6px 16px rgba(247, 103, 7, .28); transition: transform .18s, box-shadow .18s; }
.phx-co .phx-block-link:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(247, 103, 7, .4), 0 0 0 3px rgba(224, 178, 82, .6); }
.phx-checkout-note.is-error { background: #fff1f2; border: 2px solid #d6455a; color: #7d1420; }
.phx-checkout-note.is-error a { color: #b4233a; font-weight: 700; }
.phx-co .phx-shake { animation: phxshake .4s ease-in-out 2; }
.phx-co .phx-form-alert { border-width: 1px; border-color: #f2c2bb; font-weight: 600; } /* Hinweis oben: ruhig, nicht schreiend */

/* Häkchen Liefer- & Zahlungsbedingungen: Kästchen und erste Textzeile auf einer Linie */
.phx-co p.legal label.phx-legal-label { display: grid !important; grid-template-columns: 22px minmax(0, 1fr); column-gap: 10px; align-items: start; cursor: pointer; font-weight: 400; font-size: 14px; line-height: 1.45; color: var(--ink); }
.phx-co p.legal label.phx-legal-label input.input-checkbox { width: 22px; height: 22px; margin: 0 !important; accent-color: var(--act); cursor: pointer; }
.phx-co .phx-legal-text { padding-top: 1px; text-wrap: pretty; display: grid; gap: 1px; }
.phx-co .phx-legal-text .legal-title { font-weight: 700; font-size: 15px; }
.phx-co .phx-legal-text .legal-sub { color: var(--ink-2); }
.phx-co .nobr { white-space: nowrap; }
.phx-co .wc-gzd-checkbox-placeholder-legal .phx-legal-info { margin: 8px 2px 0; padding: 0; font-size: 12.5px; line-height: 1.45; color: var(--ink-2); text-wrap: pretty; }

/* Gast oder Kundenkonto */
.phx-co .woocommerce-account-fields { margin-top: 14px; padding: 12px 14px; border-radius: 12px; background: var(--paper); border: 1.5px dashed #e5c9a8; }
.phx-co .woocommerce-account-fields .create-account { margin: 0; }
.phx-co .woocommerce-account-fields label.checkbox { display: flex !important; gap: 10px; align-items: flex-start; font-weight: 700 !important; font-size: 14.5px; cursor: pointer; color: var(--ink); }
.phx-co .woocommerce-account-fields input#createaccount { width: 20px; height: 20px; flex: none; accent-color: var(--act); margin: 1px 0 0; }
.phx-co .woocommerce-account-fields div.create-account { margin-top: 10px; display: grid; gap: 10px; }
.phx-co .woocommerce-account-fields div.create-account .clear { display: none; }

/* Schritt 3: Bezahlung als Kacheln */
.phx-co #phxPayBox #payment { background: none; border-radius: 0; padding: 0; }
.phx-co #payment ul.payment_methods { list-style: none; margin: 0; padding: 0; border: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; }
.phx-co #payment ul.payment_methods li {
	position: relative; border: 1.5px solid var(--line); border-radius: 12px; padding: 13px 14px 13px 46px; background: #fffdfb; cursor: pointer; margin: 0;
	transition: border-color .15s, background .15s, box-shadow .15s, transform .15s;
}
.phx-co #payment ul.payment_methods li:hover { border-color: #e5b98f; transform: translateY(-1px); box-shadow: 0 6px 16px rgba(60, 25, 15, .08); }
.phx-co #payment ul.payment_methods li:has(input:checked) { border-color: var(--act); background: var(--act-bg); box-shadow: 0 0 0 1px var(--act); }
.phx-co #payment ul.payment_methods li > input {
	position: absolute; left: 14px; top: 14px; appearance: none; -webkit-appearance: none; width: 20px; height: 20px; margin: 0; border-radius: 50%;
	border: 2px solid #c9b6aa; background: #fff; cursor: pointer; transition: border-color .15s, box-shadow .15s;
}
.phx-co #payment ul.payment_methods li > input:checked { border-color: var(--act); box-shadow: inset 0 0 0 4px #fff, inset 0 0 0 10px var(--act); }
.phx-co #payment ul.payment_methods li label { font-weight: 700; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.phx-co #payment ul.payment_methods li label img { max-height: 22px; width: auto; margin: 0; }
.phx-co #payment div.payment_box { background: none; padding: 4px 0 0; margin: 0; font-size: 13.5px; color: var(--ink-2); }
.phx-co #payment div.payment_box p { margin: 0; text-wrap: pretty; } /* keine einsamen Wörter in der letzten Zeile */
.phx-co #payment div.payment_box .nw { white-space: nowrap; } /* „QR-Code“, „Banking-App“ nie am Bindestrich trennen */
.phx-co #payment div.payment_box::before { display: none; }
.phx-co #order_payment_heading, .phx-co .ppcp-messages { display: none !important; }

/* Bestellübersicht rechts */
.phx-co-side { display: grid; gap: 12px; align-self: start; min-width: 0; }
.phx-co-side.is-sticky { position: sticky; top: 16px; }
.admin-bar .phx-co-side.is-sticky { top: 48px; }
.phx-sum { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 2px 4px rgba(60, 25, 15, .05), 0 16px 36px rgba(60, 25, 15, .10); overflow: hidden; }
.phx-sum-head {
	display: flex; align-items: center; gap: 10px; padding: 12px 16px; color: var(--on-night);
	background: radial-gradient(260px 120px at 100% 0, rgba(179, 23, 58, .55), transparent 70%), var(--night);
	border-bottom: 3px solid var(--gold);
}
.phx-sum-head .han { width: 32px; height: 32px; flex: none; display: grid; place-items: center; border-radius: 7px; background: var(--lacquer); color: #fff; font-family: var(--font-han); font-size: 18px; transform: rotate(-5deg); box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .3); }
.phx-co .phx-sum-head h3#order_review_heading { display: block; margin: 0; flex: 1; font-family: var(--font-display); font-weight: 400; font-size: 21px; }
.phx-sum-edit { color: var(--gold-soft); font-size: 14px; font-weight: 700; text-decoration: none; padding: 6px 10px; border-radius: 8px; border: 1px solid rgba(243, 215, 154, .35); transition: background .15s, color .15s; }
.phx-sum-edit:hover { background: var(--gold-soft); color: var(--night); }
.phx-co #order_review { display: flex; flex-direction: column; padding: 4px 16px 16px; }
.phx-co #order_review > table.shop_table { order: 1; }
.phx-co #order_review > .wc-gzd-checkbox-placeholder { order: 2; }
.phx-co #order_review > .wc-gzd-order-submit, .phx-co #order_review > .form-row.place-order { order: 3; }
.phx-co #order_review > .ppc-button-wrapper { order: 4; margin-top: 8px; }

.phx-co table.shop_table { width: 100%; border-collapse: collapse; font-size: 15px; margin: 0; border: 0; }
.phx-co table.shop_table thead { display: none; }
.phx-co table.shop_table th, .phx-co table.shop_table td { padding: 9px 0; border: 0; text-align: left; vertical-align: middle; background: none; font-weight: 400; }
.phx-co table.shop_table tbody tr + tr td { border-top: 1px dashed var(--line); }
.phx-co table.shop_table td.product-total, .phx-co table.shop_table tfoot td { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; padding-left: 10px; }
.phx-co table.shop_table td.product-total { font-weight: 700; }
.phx-co table.shop_table dl.variation { display: none; }

.phx-ci { display: flex; align-items: center; gap: 12px; min-width: 0; }
.phx-ci-pic { position: relative; width: 52px; height: 52px; flex: none; border-radius: 10px; display: grid; place-items: center; overflow: visible;
	background: linear-gradient(160deg, rgba(255, 255, 255, .55), rgba(255, 255, 255, 0) 60%), var(--t, var(--tile-1));
	box-shadow: inset 0 0 0 3px var(--t, var(--tile-1)), inset 0 0 0 4px rgba(163, 32, 27, .22); }
.phx-ci-pic.phx-tone-1 { --t: var(--tile-1); } .phx-ci-pic.phx-tone-2 { --t: var(--tile-2); }
.phx-ci-pic.phx-tone-3 { --t: var(--tile-3); } .phx-ci-pic.phx-tone-4 { --t: var(--tile-4); }
.phx-ci-pic img { width: 100%; height: 100%; object-fit: cover; border-radius: 10px; }
.phx-ci-glyph { font-family: var(--font-han); font-weight: 900; font-size: 27px; line-height: 1; color: rgba(130, 34, 22, .3); }
.phx-ci-qty { position: absolute; top: -7px; right: -8px; min-width: 24px; height: 22px; padding: 0 6px; border-radius: 11px; display: grid; place-items: center;
	background: var(--night); color: #fff; font-size: 12px; font-weight: 700; box-shadow: 0 0 0 2px var(--surface); }
.phx-ci-txt { display: grid; gap: 1px; min-width: 0; line-height: 1.25; }
.phx-ci-nr { font-size: 12px; font-weight: 700; color: var(--lacquer-text); letter-spacing: .02em; }
.phx-ci-name { font-weight: 700; font-size: 15px; overflow-wrap: break-word; -webkit-hyphens: auto; hyphens: auto; } /* lange Gerichtnamen mit Trennstrich statt mitten im Wort */
.phx-ci-var { font-size: 13px; color: var(--ink-2); }

.phx-co table.shop_table tfoot tr:first-child th, .phx-co table.shop_table tfoot tr:first-child td { border-top: 1px solid var(--line); padding-top: 12px; }
.phx-co table.shop_table tfoot th, .phx-co table.shop_table tfoot td { padding: 5px 0; color: var(--ink-2); }
.phx-co table.shop_table tfoot td { color: var(--ink); }
.phx-co #shipping_method { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; justify-items: end; }
.phx-co #shipping_method li { display: flex; gap: 6px; align-items: center; margin: 0; }
.phx-co #shipping_method input[type="radio"] { accent-color: var(--act); width: 17px; height: 17px; margin: 0; }
.phx-co #shipping_method li label { cursor: pointer; }
.phx-co #shipping_method li:hover label { color: var(--act); }
.phx-co table.shop_table .order-total th, .phx-co table.shop_table .order-total td { padding-top: 12px; border-top: 2px solid var(--ink); color: var(--ink); vertical-align: baseline; }
.phx-co table.shop_table .order-total th { font-weight: 700; font-size: 17px; }
.phx-co table.shop_table .order-total td strong { font-family: var(--font-display); font-weight: 400; font-size: 28px; line-height: 1; }
.phx-co table.shop_table small, .phx-co .includes_tax, .phx-co .wc-gzd-cart-info, .phx-co table.shop_table .order-tax th, .phx-co table.shop_table .order-tax td { color: var(--ink-2); font-size: 13px; font-weight: 400; }
.phx-co .includes_tax { display: block; }

/* Rechtlicher Hinweis: ruhig, lesbar, direkt vor dem Knopf */
.phx-co .wc-gzd-checkbox-placeholder:empty { display: none; }
.phx-co .wc-gzd-checkbox-placeholder-legal { margin-top: 12px; }
.phx-co .wc-gzd-checkbox-placeholder p.form-row { display: block; margin: 0; }
.phx-co p.legal { padding: 12px 14px !important; position: relative; background: var(--paper); border-radius: 10px; font-size: 14px; line-height: 1.45; color: var(--ink); }
.phx-co p.legal a { color: var(--lacquer-text); font-weight: 700; text-underline-offset: 2px; }
.phx-co p.legal a:hover { color: var(--act); }
.phx-co .woocommerce-form__label-for-checkbox { font-weight: 400 !important; display: flex !important; gap: 10px; align-items: flex-start; }

/* Der eine Aktions-Knopf */
.phx-co .place-order { padding: 0 !important; margin: 12px 0 0 !important; display: grid; gap: 10px; }
.phx-co #place_order {
	width: 100%; min-height: 58px; border: 0; border-radius: 14px; float: none; cursor: pointer; padding: 10px 18px;
	background: linear-gradient(145deg, var(--act-2), var(--act)); color: #fff; font-weight: 700; font-size: 18px; letter-spacing: .01em;
	text-shadow: 0 1px 1px rgba(120, 40, 0, .25); box-shadow: 0 8px 20px rgba(247, 103, 7, .35);
	transition: transform .18s, box-shadow .18s, filter .18s;
}
.phx-co #place_order:hover { transform: translateY(-2px); filter: saturate(1.1) brightness(1.04); box-shadow: 0 14px 30px rgba(247, 103, 7, .45), 0 0 0 3px rgba(224, 178, 82, .6); }
.phx-co #place_order:active { transform: translateY(0); }
.phx-co .blockUI.blockOverlay { border-radius: 18px; }

.phx-legal-info { margin: 0; padding: 0 16px 16px; font-size: 12.5px; line-height: 1.45; color: var(--ink-2); }
.phx-legal-info a { color: var(--lacquer-text); }

/* Vertrauen unter der Übersicht */
.phx-trust { list-style: none; margin: 0; padding: 4px 6px; display: grid; gap: 6px; font-size: 13.5px; color: var(--ink-2); }
.phx-trust li { display: flex; align-items: center; gap: 8px; }
.phx-trust svg { width: 17px; height: 17px; flex: none; fill: var(--ok); }
.phx-trust a { color: inherit; font-weight: 700; }
.phx-trust a:hover { color: var(--lacquer-text); }

/* Kasse gesperrt (z. B. Mindestbestellwert): ein Satz, ein Weg */
.phx-co-stop { display: flex; gap: 16px; align-items: flex-start; max-width: 640px; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 22px; box-shadow: var(--shadow); }
.phx-co-stop .han { width: 46px; height: 46px; flex: none; display: grid; place-items: center; border-radius: 10px; background: var(--amber-bg); color: var(--amber); font-family: var(--font-han); font-weight: 900; font-size: 24px; transform: rotate(-4deg); box-shadow: inset 0 0 0 2px rgba(138, 83, 0, .2); }
.phx-co-stop h2 { margin: 0 0 6px; font-family: var(--font-display); font-weight: 400; font-size: 24px; }
.phx-co-stop p { margin: 0 0 16px; color: var(--ink-2); }
.phx-co-stop-btn { display: inline-flex; align-items: center; min-height: 50px; padding: 0 26px; border-radius: 14px; background: linear-gradient(145deg, var(--act-2), var(--act)); color: #fff; font-weight: 700; font-size: 17px; text-decoration: none; box-shadow: 0 8px 20px rgba(247, 103, 7, .3); transition: transform .18s, box-shadow .18s; }
.phx-co-stop-btn:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(247, 103, 7, .42), 0 0 0 3px rgba(224, 178, 82, .6); }

/* Zahlart: der ganze Kasten ist anklickbar */
.phx-co #payment ul.payment_methods li { cursor: pointer; }
.phx-co #payment ul.payment_methods li .payment_box, .phx-co #payment ul.payment_methods li .payment_box p { cursor: pointer; }
/* Danke-Seite: alles in einer mittigen, gleich breiten Spalte; Seite füllt den Bildschirm (Fußzeile springt nicht hoch) */
.phx-co.is-thanks { min-height: calc(100vh - 260px); display: flex; flex-direction: column; }
.phx-co.is-thanks .phx-co-head { width: 100%; max-width: 720px; }
.phx-co.is-thanks .phx-thanks, .phx-co.is-thanks .phx-payinfo, .phx-co.is-thanks .woocommerce-order-details, .phx-co.is-thanks .phx-done { width: 100%; max-width: 720px; margin-inline: auto; box-sizing: border-box; }
.phx-co.is-thanks .phx-thanks { text-align: center; justify-items: center; padding: 28px 24px; }
.phx-co.is-thanks .phx-thanks .pill { justify-self: center; }
.phx-co.is-thanks .phx-thanks p:last-child { max-width: 56ch; text-wrap: pretty; }
.phx-co.is-thanks .woocommerce-order-details { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 18px 22px; margin-bottom: 20px; }
.phx-co.is-thanks .phx-od-head { margin: 0 0 8px; font-family: var(--font-display); font-weight: 400; font-size: 22px; }
.phx-co.is-thanks .woocommerce-order-details table { width: 100%; }
.phx-done { display: grid; justify-items: center; gap: 6px; text-align: center; padding: 22px 16px 6px; }
.phx-done-t { margin: 0; font-size: 18px; font-weight: 700; color: var(--ink); text-wrap: balance; }
.phx-done-t span { color: #1f9d63; }
.phx-done-s { margin: 0; color: var(--ink-2); }
.phx-done-acts { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-top: 10px; }
.phx-done-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 24px; border-radius: 14px; background: linear-gradient(145deg, var(--act-2), var(--act)); color: #fff !important; font-weight: 700; text-decoration: none; box-shadow: 0 6px 16px rgba(247, 103, 7, .28); }
.phx-done-btn.ghost { background: #fff; color: var(--ink) !important; border: 1.5px solid var(--line); box-shadow: none; }
.phx-done-btn:hover { transform: translateY(-1px); }
/* Danke-Seite: Bezahl-Anleitung (PayPal-QR-Code / Echtzeitüberweisung) als auffällige Karte */
.phx-payinfo { max-width: 760px; margin: 0 0 20px; padding: 22px; border-radius: 18px; background: linear-gradient(180deg, #fff7ec, #fff); border: 2px solid #f7c79c; box-shadow: 0 10px 28px rgba(247, 103, 7, .12); display: grid; gap: 12px; }
.phx-payinfo h3 { margin: 0; font-family: var(--font-display); font-weight: 400; font-size: clamp(22px, 3.4vw, 28px); color: var(--lacquer-text, #b3173a); text-wrap: balance; }
.phx-payinfo .pi-steps { margin: 0; font-size: 16px; text-wrap: pretty; }
.phx-payinfo .pi-body { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: start; }
.phx-payinfo.has-qr .pi-body { grid-template-columns: minmax(200px, 280px) minmax(0, 1fr); }
@media (max-width: 640px) { .phx-payinfo.has-qr .pi-body { grid-template-columns: minmax(0, 1fr); } }
.phx-payinfo .pi-qr { background: #fff; border-radius: 16px; padding: 10px; border: 1px solid var(--line); justify-self: center; width: min(280px, 100%); }
.phx-payinfo .pi-qr img { display: block; width: 100%; height: auto; border-radius: 10px; }
.phx-payinfo .pi-qr a { display: block; cursor: zoom-in; }
.phx-payinfo .pi-zoom { display: block; margin-top: 6px; text-align: center; font-size: 12.5px; color: var(--ink-2); }
.phx-payinfo .pi-list { margin: 0; display: grid; gap: 8px; }
.phx-payinfo .pi-row { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 4px 12px; align-items: center; padding: 8px 0; border-bottom: 1px dashed #f3d29b; }
.phx-payinfo .pi-row:last-child { border-bottom: 0; }
.phx-payinfo dt { color: var(--ink-2); font-size: 14px; }
.phx-payinfo dd { margin: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: 17px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.phx-payinfo dd.strong { font-weight: 700; font-size: 19px; }
.phx-payinfo .pi-copy { flex: none; border: 1.5px solid #f7c79c; background: #fff; color: #c2410c; border-radius: 10px; padding: 6px 12px; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; min-height: 36px; }
.phx-payinfo .pi-copy:hover { background: #fff1e3; }
.phx-payinfo .pi-note { margin: 0; font-size: 14px; color: var(--ink-2); }
@media (max-width: 480px) { .phx-payinfo .pi-row { grid-template-columns: minmax(0, 1fr); } }
/* Danke-Seite */
.phx-thanks { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 22px; margin: 0 0 20px; display: grid; gap: 10px; max-width: 760px; }
.phx-thanks h2 { margin: 0; font-family: var(--font-display); font-weight: 400; font-size: clamp(30px, 5vw, 40px); }
.phx-thanks p { margin: 0; }
.phx-thanks .phx-when { font-size: 24px; font-weight: 700; }
.phx-thanks .pill { justify-self: start; }
.phx-thanks .pill.ok { background: var(--jade-bg); color: var(--jade); }
.phx-thanks .pill.wait { background: var(--amber-bg); color: var(--amber); }
.phx-thanks .pill .dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.phx-co .woocommerce-order { max-width: 760px; display: grid; gap: 16px; margin-inline: 0; }
.phx-co .woocommerce-order-overview { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 14px; color: var(--ink-2); }
.phx-co .woocommerce-order-overview li { border: 0; padding: 0; margin: 0; }
.phx-co .woocommerce-thankyou-order-received { display: none; }
.phx-co .woocommerce-order-details, .phx-co .woocommerce-customer-details { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 18px; }
.phx-co .woocommerce-customer-details address { font-style: normal; border: 0; padding: 0; }

@media (max-width: 920px) {
	.phx-co form.phx-checkout { grid-template-columns: minmax(0, 1fr); }
	.phx-co-side.is-sticky { position: static; }
}
@media (max-width: 560px) {
	.phx-co .woocommerce-billing-fields, .phx-co .woocommerce-additional-fields, .phx-co-step { padding: 14px 14px 16px; }
	.phx-co #billing_address_1_field, .phx-co #billing_address_2_field, .phx-co #billing_email_field, .phx-co #billing_phone_field { grid-column: span 6; }
	.phx-track { font-size: 13px; }
	.phx-track li:not(.now) { font-size: 0; gap: 0; }
	.phx-track li:not(.now) .n { font-size: 13px; }
}
