/* WordPress/WooCommerce-Anpassungen zum Entwurfsstil (assets/css/theme.css bleibt 1:1 wie im Entwurf) */

[hidden] { display: none !important; }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip:focus { position: fixed; z-index: 100; top: 8px; left: 8px; width: auto; height: auto; clip: auto; padding: 10px 14px; background: #fff; color: var(--teal); border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,.2); }

/* Preise aus WooCommerce (wc_price) erben Schrift und Farbe des Entwurfs */
.pr bdi, .pr .woocommerce-Price-amount { font: inherit; color: inherit; }

/* Produktseite: Formular statt <div>, Knöpfe statt Links */
form.buy { margin: 0; }
.bbtn { border: 0; cursor: pointer; }
.bbtn[disabled] { cursor: default; }
.bbtn.add[aria-disabled="true"] { cursor: not-allowed; }
.pdp-crumbs a:hover { color: var(--blue); }
.tabp > :first-child { margin-top: 0; }

/* WooCommerce-Hinweise im Stil des Entwurfs */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-notices-wrapper { max-width: var(--w); margin: 20px auto 0; padding-inline: 16px; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { list-style: none; margin: 0 0 12px; padding: 14px 18px; border-radius: 12px; background: #eef8fb; border: 1px solid #bfe6f1; color: var(--teal); font: 500 15px/1.5 var(--f-rob); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.woocommerce-error { background: #fdeeee; border-color: #f3c2c2; color: #8a1c1c; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; padding: 8px 16px; border-radius: 10px; background: var(--blue); color: #fff; font: 700 14px var(--f-mont); }

/* Formulare: Spam-Falle unsichtbar, Rückmeldung nach dem Absenden */
.form .hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-msg { grid-column: 1 / -1; margin: 0; padding: 12px 16px; border-radius: 12px; font: 500 15px/1.5 var(--f-rob); }
.form-msg.ok { background: #eaf7ef; color: #1f6b3a; }
.form-msg.err { background: #fdeeee; color: #8a1c1c; }

/* Warenkorb (Vorlage woocommerce/cart/cart.php) */
.cart .qn { width: 46px; height: 30px; text-align: center; border: 1px solid #ccc; border-radius: 6px; font: inherit; -moz-appearance: textfield; }
.cart .qn::-webkit-outer-spin-button, .cart .qn::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cart .q a.rm { color: #888; text-decoration: underline; font-size: 14px; }
.cart .upd { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.cart .cline img { width: 90px; height: 90px; object-fit: contain; }
.sum .bbtn { width: 100%; }

/* Kasse (WooCommerce-Blockkasse) im Stil des Entwurfs */
.page-content > .wp-block-woocommerce-checkout, .page-content > .woocommerce { max-width: var(--w); margin: 0 auto 60px; padding-inline: max(16px, env(safe-area-inset-left, 0px)) max(16px, env(safe-area-inset-right, 0px)); }
.wc-block-components-button:not(.is-link), .wc-block-components-checkout-place-order-button { background: var(--blue) !important; color: #fff !important; border: 0 !important; border-radius: 12px !important; font: 700 16px var(--f-mont) !important; min-height: 48px; }
.wc-block-components-button:not(.is-link):hover { background: #007ea2 !important; }
.wc-block-components-title, .wc-block-components-checkout-step__title { font-family: var(--f-mont) !important; font-weight: 800 !important; color: var(--teal); }
.wc-block-components-text-input input, .wc-block-components-combobox .components-combobox-control__input, .wc-block-components-textarea, .wc-blocks-components-select__select { border-radius: 10px !important; border-color: #CBD5E1 !important; }
.wc-block-components-sidebar-layout .wc-block-components-sidebar { background: var(--muted, #f6f8f9); border-radius: 20px; padding: 20px !important; }
.wc-block-components-totals-item__value, .wc-block-components-product-price { font-family: var(--f-mont); font-weight: 800; }
.wc-block-checkout__terms a, .wc-block-components-checkbox a { color: var(--blue); text-decoration: underline; }

/* Danke-Seite */
.thanks { max-width: 760px; margin: 0 auto 80px; }
.thx-box { background: var(--muted, #f6f8f9); border-radius: 20px; padding: 34px 28px; text-align: center; display: grid; gap: 12px; justify-items: center; }
.thx-box h2 { margin: 0; font: 800 26px/1.25 var(--f-mont); color: var(--teal); }
.thx-box p { margin: 0; font: 400 16px/1.6 var(--f-rob); color: var(--text); }
.thx-box.err h2 { color: #8a1c1c; }
.thx-facts { list-style: none; padding: 0; margin: 10px 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; width: 100%; }
.thx-facts li { background: #fff; border-radius: 14px; padding: 12px; display: grid; gap: 4px; }
.thx-facts span { font: 500 13px var(--f-rob); color: #64748B; }
.thx-facts b { font: 800 16px var(--f-mont); color: var(--teal); }
.thanks .woocommerce-order-details, .thanks .woocommerce-customer-details { margin-top: 30px; }
.thanks h2.woocommerce-order-details__title, .thanks h2.woocommerce-column__title { font: 800 20px var(--f-mont); color: var(--teal); }
.thanks table { width: 100%; border-collapse: collapse; font: 400 15px/1.5 var(--f-rob); }
.thanks th, .thanks td { text-align: left; padding: 10px 8px; border-bottom: 1px solid #e5e7eb; }

/* Kundenkonto */
.woocommerce-account .page-content > .woocommerce { display: grid; grid-template-columns: 240px 1fr; gap: 30px; align-items: start; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.woocommerce-MyAccount-navigation a { display: block; padding: 11px 14px; border-radius: 12px; background: var(--muted, #f6f8f9); color: var(--teal); font: 600 15px var(--f-mont); }
.woocommerce-MyAccount-navigation .is-active a, .woocommerce-MyAccount-navigation a:hover { background: var(--blue); color: #fff; }
.woocommerce-MyAccount-content { font: 400 16px/1.6 var(--f-rob); color: var(--text); min-width: 0; }
.woocommerce-MyAccount-content a { color: var(--blue); }
.woocommerce-account:not(.logged-in) .page-content > .woocommerce { display: block; max-width: 900px; }
#customer_login { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
#customer_login h2, .woocommerce-account:not(.logged-in) .page-content h2 { font: 800 22px var(--f-mont); color: var(--teal); text-align: center; margin: 0 0 16px; }
.woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword, .woocommerce-EditAccountForm, .woocommerce-address-fields { display: grid; gap: 14px; }
.woocommerce form .form-row { margin: 0; display: grid; gap: 6px; }
.woocommerce form .form-row label { font: 600 14px var(--f-sys); color: #333; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row select, .woocommerce form .form-row textarea { font: 400 15px var(--f-sys); padding: 11px 12px; border: 1px solid #CBD5E1; border-radius: 10px; width: 100%; background: #fff; }
.woocommerce .button, .woocommerce button.button { justify-self: start; display: inline-flex; align-items: center; justify-content: center; padding: 12px 26px; border-radius: 12px; border: 0; background: var(--blue); color: #fff; font: 700 15px var(--f-mont); cursor: pointer; }
.woocommerce-form-login__rememberme { display: flex !important; align-items: center; gap: 8px; font: 400 14px var(--f-sys) !important; }
.woocommerce-LostPassword a, .woocommerce-privacy-policy-text a { color: var(--blue); text-decoration: underline; }
.woocommerce-privacy-policy-text { font: 400 13px/1.5 var(--f-sys); color: #555; }
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { text-align: left; padding: 10px 8px; border-bottom: 1px solid #e5e7eb; }
@media (max-width: 760px) { .woocommerce-account .page-content > .woocommerce, #customer_login { grid-template-columns: 1fr; } }

/* 404 */
.e404 { max-width: 640px; margin: 0 auto 80px; display: grid; gap: 22px; text-align: center; font: 400 16px/1.6 var(--f-rob); color: var(--text); }
.e404 .s-row { display: flex; gap: 10px; }
.e404 .btnrow { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin: 0; }
.btn.ghost { background: #fff; color: var(--blue); border: 1px solid var(--blue); }

/* Warenkorb: Raster .wrap.cart bringt Breite und Abstände wie im Entwurf selbst mit */
.woocommerce-cart:not(.woocommerce-checkout) .page-content > .woocommerce, .woocommerce-checkout:not(.woocommerce-order-received) .page-content > .woocommerce { max-width: none; margin: 0; padding: 0; }

/* Blogbeiträge: Karten sind Gruppen-Blöcke (im Editor bearbeitbar); WordPress legt einen inneren Container an
   und die Absätze liegen direkt darin – gleiche Darstellung wie .pcard-a / .prose im Entwurf */
.pcard-a > .wp-block-group__inner-container { font: 400 15.5px/1.7 var(--f-rob); color: var(--text); margin-bottom: 18px; }
.pcard-a > .wp-block-group__inner-container > * { position: relative; }
.pcard-a > .wp-block-group__inner-container > p { margin: 0 0 14px; }
.pcard-a > .wp-block-group__inner-container > ul { margin: 0 0 14px; padding-left: 22px; }
.pcard-a > .wp-block-group__inner-container li { margin: 4px 0; }
.pcard-a > .wp-block-group__inner-container li::marker { color: var(--blue); }
.pcard-a > .wp-block-group__inner-container > :last-child { margin-bottom: 0; }
.pcard-a > .wp-block-group__inner-container > h2:first-child { margin-top: 0; text-align: center; margin-bottom: 16px; }

/* Kasse: Kurzbeschreibung in der Bestellübersicht ausblenden (nur Name, Preis, Menge) */
.wc-block-components-order-summary-item .wc-block-components-product-metadata__description { display: none; }
/* Konto: Pflicht-Sternchen in derselben Zeile wie die Beschriftung */
.woocommerce form .form-row label { display: block; text-align: left; }
.woocommerce form .form-row .required { display: inline; color: #c0392b; text-decoration: none; border: 0; }

/* Widerrufsformular (/my-account/withdraw-order/) */
.woocommerce form fieldset { border: 1px solid #CBD5E1; border-radius: 10px; padding: 10px 14px 12px; margin: 0; display: grid; gap: 6px; }
.woocommerce form fieldset legend { padding: 0 6px; font: 600 14px var(--f-sys); color: #333; }
.woocommerce form fieldset label { display: flex !important; align-items: center; gap: 8px; font: 400 15px var(--f-sys) !important; }

/* Kasse (klassisch, Vorlage woocommerce/checkout/form-checkout.php): Raster wie der Warenkorb */
.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle, .checkout_coupon, .co-login { max-width: var(--w); margin: 20px auto 0 !important; padding-inline: 16px; }
.co-main { display: grid; gap: 26px; }
.co-main h3 { font: 700 20px var(--f-mont); color: var(--teal); margin: 0 0 14px; }
.co .woocommerce-billing-fields__field-wrapper, .co .woocommerce-shipping-fields__field-wrapper, .co .woocommerce-additional-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.co .form-row { grid-column: 1 / -1; }
.co .form-row-first { grid-column: 1; }
.co .form-row-last { grid-column: 2; }
.co .form-row .optional { font-weight: 400; color: #777; }
.co .form-row.woocommerce-invalid input.input-text { border-color: #c0392b; }
.co #ship-to-different-address { font: 600 15px var(--f-sys); color: #333; margin: 6px 0 0; }
.co #ship-to-different-address label { display: flex; align-items: center; gap: 8px; }
.co .select2-container .select2-selection--single { height: 44px; border: 1px solid #CBD5E1; border-radius: 10px; }
.co .select2-container .select2-selection--single .select2-selection__rendered { line-height: 42px; padding-left: 12px; font: 400 15px/42px var(--f-sys); }
.co .select2-container .select2-selection--single .select2-selection__arrow { height: 42px; }
.co-sum { position: sticky; top: 20px; }
.co-sum h2 { font: 600 22px var(--f-mont); color: var(--teal); margin: 0; }
.co-sum table.shop_table { font: 400 14px/1.45 var(--f-sys); color: #333; }
.co-sum table.shop_table th, .co-sum table.shop_table td { padding: 9px 0; border-bottom: 1px solid #ddd; vertical-align: top; }
.co-sum table.shop_table td:last-child, .co-sum table.shop_table th:last-child { text-align: right; padding-left: 10px; white-space: nowrap; }
.co-sum .cpapbg-econt-choice { white-space: normal; font-size: 13px; color: var(--teal); margin-top: 4px; }
.co-sum table.shop_table thead th { font-weight: 700; color: #666; font-size: 13px; }
.co-sum .order-total th, .co-sum .order-total td { font: 700 20px var(--f-sys); border-bottom: 0; padding-top: 12px; }
.co-sum .order-total .includes_tax { display: block; font: 400 12px var(--f-sys); color: #666; }
.co-sum #shipping_method { list-style: none; margin: 0; padding: 0; text-align: left; white-space: normal; }
#payment ul.payment_methods { list-style: none; padding: 0; margin: 14px 0; display: grid; gap: 10px; }
#payment ul.payment_methods li > label { font: 600 15px var(--f-sys); color: #222; cursor: pointer; }
#payment ul.payment_methods li > input { margin-right: 8px; accent-color: var(--blue); }
#payment .payment_box { margin: 6px 0 0 24px; font: 400 13px/1.5 var(--f-sys); color: #555; }
#payment .payment_box p { margin: 0; }
#payment .place-order { display: grid; gap: 12px; margin: 0; padding: 0; }
#payment .woocommerce-terms-and-conditions-wrapper { font: 400 13px/1.5 var(--f-sys); color: #444; }
#payment .woocommerce-form__label-for-checkbox { display: flex; gap: 8px; align-items: flex-start; font: 400 14px/1.45 var(--f-sys); }
.woocommerce #payment #place_order { justify-self: stretch; width: 100%; min-height: 48px; border-radius: 12px; background: var(--blue); color: #fff; font: 700 16px var(--f-mont); }
.woocommerce #payment #place_order:hover { background: #007ea2; }
.co .blockUI.blockOverlay { border-radius: 20px; }
@media (max-width: 900px) { .co-sum { position: static; } }
@media (max-width: 600px) { .co .woocommerce-billing-fields__field-wrapper, .co .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; } .co .form-row-first, .co .form-row-last { grid-column: 1; } }
#payment .woocommerce-form__label-for-checkbox { display: block; position: relative; padding-left: 26px; }
#payment .woocommerce-form__label-for-checkbox input { position: absolute; left: 0; top: 3px; margin: 0; }
.co-sum table.shop_table thead { display: none; }
.woocommerce-form-login-toggle + .woocommerce-form-coupon-toggle { margin-top: 10px !important; }
.co .woocommerce-account-fields { margin-top: 4px; }
.co .create-account label { display: flex !important; align-items: center; gap: 8px; font: 400 14px var(--f-sys) !important; }
#payment .woocommerce-privacy-policy-text { font: 400 12px/1.5 var(--f-sys); color: #666; }

/* Kasse: Zusammenfassung etwas breiter, damit die Lieferadress-Felder der Kuriere Platz haben */
@media (min-width: 901px) { .cart.co { grid-template-columns: 1fr 440px; } }
/* Speedy-Formular (offizielles Plugin, Tabelle in der Bestellübersicht): Beschriftung über dem Feld, volle Breite */
.co-sum tr.speedy_row > td { padding: 4px 0 12px !important; border-bottom: 1px solid #ddd; }
#speedy_client_table, #speedy_client_table tbody, #speedy_client_table tr, #speedy_client_table td { display: block; width: 100%; border: 0 !important; padding: 0 !important; text-align: left !important; }
#speedy_client_table tr { margin-top: 10px; display: block !important; }
#speedy_client_table tr[style*="none"] { display: none !important; }
.speedy_row table:not(#speedy_client_table) { width: 100%; border-collapse: collapse; margin-top: 8px; font: 400 13px/1.4 var(--f-sys); }
.speedy_row table:not(#speedy_client_table) td, .speedy_row table:not(#speedy_client_table) th { border: 0 !important; border-bottom: 1px solid #e2e8f0 !important; padding: 5px 0 !important; text-align: left; }
.speedy_row table:not(#speedy_client_table) td:last-child { text-align: right; }
#speedy_client_table label { font: 600 13px var(--f-sys); color: #333; }
#speedy_client_table td > label:first-child { display: block; margin-bottom: 4px; }
#speedy_client_table input[type="text"], #speedy_client_table select { font: 400 14px var(--f-sys) !important; padding: 9px 10px !important; border: 1px solid #CBD5E1 !important; border-radius: 10px !important; background: #fff; color: #222 !important; width: 100%; box-sizing: border-box; }
#speedy_client_table td > label + input[type="text"] { width: 70px; display: inline-block; margin: 6px 6px 0 4px; }
#speedy_client_table #speedy_postcode { width: 90px; }
#speedy_client_table #to_office label { display: inline-flex !important; align-items: center; gap: 6px; margin: 2px 14px 2px 0; font-weight: 400; }
#speedy_client_table #to_office td:first-child label { display: block !important; font-weight: 600; }
.co-sum .woocommerce-shipping-totals th { white-space: nowrap; }
#speedy_client_table td, #speedy_client_table label, #speedy_client_table input, #speedy_client_table select { float: none !important; }
#speedy_client_table td:first-child { overflow: visible; }
#speedy_client_table td:first-child > label { display: block !important; width: auto !important; white-space: nowrap; margin-bottom: 4px; }
#speedy_client_table #to_office td:last-child { display: flex !important; flex-wrap: wrap; gap: 4px 16px; }

/* Econt (offizielles Plugin „Econt Delivery OneCheckout“): Formular von Econt direkt unter der Überschrift, Notizen zuletzt */
.co-main { display: flex; flex-direction: column; }
.co-main > #place_iframe_here, .co-main > #customer_details { order: 1; }
.co-main > .woocommerce-additional-fields { order: 2; }
#place_iframe_here { width: 100%; float: none; }
#place_iframe_here h3 { padding: 0 !important; margin: 0 0 10px !important; }
#delivery_with_econt_iframe { display: block; width: 100% !important; border: 0; }
#place_iframe_here .econt-button { padding: 10px 20px; border: 0; border-radius: 12px; background: var(--blue); color: #fff; font: 700 15px var(--f-mont); cursor: pointer; }
/* Speedy: Ort und PLZ in einer Zeile, PLZ-Feld schmal, damit nichts über den Kasten hinausragt */
#speedy_client_table tr:first-child td:last-child { display: flex !important; align-items: center; gap: 8px; }
#speedy_client_table #speedy_city { flex: 1 1 auto; min-width: 0; width: auto; }
#speedy_client_table label[for="speedy_postcode"] { flex: 0 0 auto; margin: 0; }
#speedy_client_table #speedy_postcode { flex: 0 0 64px; width: 64px !important; margin: 0 !important; padding-inline: 8px !important; }
