/* ============================================================
   ALL 2GETHER — Shop-Styles
   WooCommerce (klassisch + Blocks) · Event Tickets · Warenkorb
   Erbt Design-Tokens aus assets/css/style.css (:root)
   ============================================================ */

/* ---------- WooCommerce Grundgerüst ins Theme-Layout ---------- */
.woocommerce, .woocommerce-page { color: var(--text); }
.woocommerce a { color: var(--gold); }
.woocommerce a:hover { color: var(--gold-soft); }
.woocommerce .woocommerce-breadcrumb { color: var(--muted-2); font-size: .82rem; margin-bottom: 1.5rem; }
.woocommerce .woocommerce-breadcrumb a { color: var(--muted); }

/* Seiten-Titel im Shop */
.woocommerce h1, .woocommerce h2, .woocommerce-products-header__title {
  font-family: var(--font-display); text-transform: uppercase; letter-spacing: -.01em;
}
.woocommerce-products-header__title.page-title { font-size: clamp(2rem, 5vw, 3.4rem); margin-bottom: 1.5rem; }

/* ---------- Buttons ---------- */
.woocommerce a.button, .woocommerce button.button, .woocommerce .button,
.woocommerce #respond input#submit, .woocommerce input.button,
.woocommerce input.button.alt, .woocommerce a.button.alt, .woocommerce button.button.alt,
.wc-block-components-button, .wp-element-button,
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button,
.tribe-common-c-btn, .tribe-tickets__tickets-buy {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  background: var(--btn-bg) !important; color: var(--btn-text) !important;
  border: none !important; border-radius: 180px !important;
  font-family: var(--font-body); font-weight: 700; text-transform: uppercase;
  letter-spacing: .1em; font-size: .82rem; line-height: 1.2;
  padding: .9rem 1.9rem !important; cursor: pointer;
  transition: background .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease);
  box-shadow: none; text-decoration: none;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce .button:hover,
.woocommerce input.button:hover, .woocommerce input.button.alt:hover, .woocommerce a.button.alt:hover,
.wc-block-components-button:hover, .wp-element-button:hover,
.tribe-common-c-btn:hover, .tribe-tickets__tickets-buy:hover {
  background: var(--btn-bg-hover) !important; color: var(--btn-text) !important;
  transform: translateY(-2px); box-shadow: 0 12px 30px -10px rgba(7,56,147,.55);
}
.woocommerce .button.disabled, .woocommerce button.button:disabled,
.wc-block-components-button:disabled { opacity: .5 !important; pointer-events: none; }

/* „Ghost"-Buttons (z. B. Warenkorb ansehen) */
.woocommerce .button.wc-backward, .woocommerce a.added_to_cart {
  background: transparent !important; color: var(--text) !important;
  border: 1.5px solid var(--line) !important;
}
.woocommerce .button.wc-backward:hover, .woocommerce a.added_to_cart:hover {
  border-color: var(--text) !important; background: rgba(255,255,255,.06) !important;
}

/* ---------- Hinweise / Notices ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error,
.woocommerce-noreviews, .wc-block-components-notice-banner {
  background: var(--surface) !important; color: var(--text) !important;
  border-top: none; border-radius: 8px; padding: 1rem 1.2rem;
  border-left: 3px solid var(--gold) !important; list-style: none;
  box-shadow: none;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { color: var(--gold); }
.woocommerce-error { border-left-color: var(--red) !important; }
.wc-block-components-notice-banner.is-error { border-left: 3px solid var(--red) !important; }
.wc-block-components-notice-banner.is-success { border-left: 3px solid var(--gold) !important; }

/* ---------- Formularfelder (Kasse, Konto, Login) ---------- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce .select2-container--default .select2-selection--single,
.woocommerce-page input[type="text"], .woocommerce-page input[type="email"],
.woocommerce-page input[type="tel"], .woocommerce-page input[type="password"],
.woocommerce-page input[type="number"], .woocommerce-page select, .woocommerce-page textarea,
.wc-block-components-text-input input, .wc-block-components-select select {
  background: var(--surface) !important; color: var(--text) !important;
  border: 1px solid var(--line) !important; border-radius: 6px !important;
  padding: .85rem 1rem !important; font: inherit; min-height: 48px;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce-page select:focus, .woocommerce-page textarea:focus,
.wc-block-components-text-input input:focus {
  outline: none; border-color: var(--gold) !important; box-shadow: none;
}
.woocommerce form .form-row label, .woocommerce-page label,
.wc-block-components-text-input label { color: var(--muted); font-weight: 600; }
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--text); line-height: 46px; }
.select2-dropdown { background: var(--surface); border-color: var(--line); color: var(--text); }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--btn-bg); }

/* ---------- Shop-Übersicht (Produkt-Grid) ---------- */
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 2.5vw, 1.5rem); margin: 0; }
.woocommerce ul.products li.product { width: auto !important; margin: 0 !important; float: none !important;
  background: var(--surface); border: 1px solid var(--line-2); border-radius: 10px; overflow: hidden;
  padding: 0 0 1.2rem; transition: transform .3s var(--ease), border-color .3s; text-align: left; }
.woocommerce ul.products li.product:hover { transform: translateY(-4px); border-color: var(--line); }
.woocommerce ul.products li.product a img { margin: 0 0 1rem; border-radius: 0; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--font-display); text-transform: uppercase; font-size: 1.4rem; padding: 0 1.2rem; }
.woocommerce ul.products li.product .price { color: var(--text) !important; font-weight: 700; padding: 0 1.2rem; display: block; margin-bottom: .8rem; }
.woocommerce ul.products li.product .price del { color: var(--muted-2); font-weight: 400; }
.woocommerce ul.products li.product .price ins { color: var(--gold); text-decoration: none; }
.woocommerce ul.products li.product .button { margin: 0 1.2rem; }
.woocommerce span.onsale { background: var(--gold); color: #16130a; border-radius: 40px; min-height: auto; min-width: auto; padding: .3rem .8rem; font-weight: 700; }

/* ---------- Einzelprodukt ---------- */
.woocommerce div.product .product_title { font-family: var(--font-display); text-transform: uppercase; font-size: clamp(1.8rem, 4vw, 3rem); }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--gold); font-size: 1.6rem; font-weight: 700; }
.woocommerce div.product .woocommerce-tabs ul.tabs { border: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: var(--surface); border: 1px solid var(--line-2); border-radius: 40px; margin-right: .5rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--btn-bg); border-color: var(--btn-bg); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--btn-text); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }

/* Mengenfeld */
.woocommerce .quantity .qty, .wc-block-components-quantity-selector input {
  background: var(--surface); color: var(--text); border: 1px solid var(--line); border-radius: 6px;
  min-height: 48px; width: 80px; text-align: center;
}
.wc-block-components-quantity-selector { border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }

/* ---------- Warenkorb ---------- */
.woocommerce table.shop_table {
  background: var(--surface); border: 1px solid var(--line-2); border-radius: 10px; border-collapse: separate; color: var(--text);
}
.woocommerce table.shop_table th { color: var(--muted); text-transform: uppercase; letter-spacing: .08em; font-size: .74rem; border-bottom: 1px solid var(--line-2); }
.woocommerce table.shop_table td { border-top: 1px solid var(--line-2); }
.woocommerce-cart table.cart img { width: 72px; border-radius: 6px; }
.woocommerce a.remove { color: var(--red) !important; border: 1px solid var(--line); border-radius: 50%; }
.woocommerce a.remove:hover { background: var(--red) !important; color: #fff !important; }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-cart .cart-collaterals .cart_totals {
  background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 1.5rem; float: none; width: 100%;
}
.woocommerce .cart_totals h2 { font-family: var(--font-display); text-transform: uppercase; }
.woocommerce .cart_totals .order-total .amount { color: var(--gold); }
.woocommerce .coupon .input-text { max-width: 220px; }

/* ---------- Kasse (Checkout) ---------- */
.woocommerce-checkout #customer_details { margin-bottom: 2rem; }
.woocommerce-checkout h3, .woocommerce-checkout #order_review_heading { font-family: var(--font-display); text-transform: uppercase; letter-spacing: -.01em; }
.woocommerce-checkout #payment, .woocommerce #order_review {
  background: var(--surface) !important; border: 1px solid var(--line); border-radius: 10px; padding: 1.5rem;
}
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--line-2); }
.woocommerce-checkout #payment ul.payment_methods li { list-style: none; }
.woocommerce-checkout #payment div.payment_box {
  background: var(--bg-2) !important; color: var(--muted); border-radius: 8px;
}
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--bg-2) !important; }
.woocommerce-checkout #payment label { color: var(--text); }
.woocommerce-info a, .woocommerce-checkout-review-order-table .order-total .amount { color: var(--gold); }

/* Block-Checkout (neuer WooCommerce-Blocks-Flow) */
.wc-block-checkout, .wp-block-woocommerce-checkout, .wp-block-woocommerce-cart { color: var(--text); }
.wc-block-components-panel, .wc-block-checkout__sidebar .wc-block-components-totals-wrapper,
.wc-block-cart__sidebar > .wc-block-components-panel, .wc-block-checkout__main .wc-block-checkout__form,
.wc-block-components-sidebar { background: var(--surface); border: 1px solid var(--line-2); border-radius: 10px; }
.wc-block-components-totals-item__value, .wc-block-components-order-summary-item__total-price { color: var(--text); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color: var(--gold); }
.wc-block-components-product-price__value { color: var(--gold); }
.wc-block-components-title, .wc-block-checkout__actions, .wc-block-components-checkout-step__heading { color: var(--text); }
.wc-block-components-radio-control__option { border-color: var(--line-2); }

/* ---------- Bestellung erhalten / Danke ---------- */
.woocommerce .woocommerce-order .woocommerce-order-overview,
.woocommerce ul.order_details {
  background: var(--surface); border: 1px solid var(--line-2); border-radius: 10px; padding: 1.5rem; list-style: none;
}
.woocommerce ul.order_details li { border-right: 1px solid var(--line-2); color: var(--muted); }
.woocommerce ul.order_details li strong { color: var(--text); }
.woocommerce-order .woocommerce-thankyou-order-received { font-family: var(--font-display); text-transform: uppercase; font-size: 1.6rem; }
/* BACS / Bankverbindung hervorheben */
.woocommerce-order .woocommerce-bacs-bank-details { background: var(--bg-2); border: 1px dashed var(--gold); border-radius: 8px; padding: 1.2rem 1.4rem; margin-top: 1rem; }
.woocommerce-order .woocommerce-bacs-bank-details h2, .wc-bacs-bank-details-account-name { color: var(--gold); }

/* ---------- Mein Konto ---------- */
.woocommerce-account .woocommerce-MyAccount-navigation ul { border: 1px solid var(--line-2); border-radius: 10px; overflow: hidden; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--line-2); }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: .9rem 1.2rem; color: var(--muted); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a, .woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--surface); color: var(--gold); }

/* ---------- Header-Warenkorb ---------- */
.a2g-cart { position: relative; display: inline-flex; align-items: center; justify-content: center; color: var(--text); }
.a2g-cart svg { display: block; }
.a2g-cart__count {
  position: absolute; top: -8px; right: -10px; min-width: 18px; height: 18px; padding: 0 4px;
  background: var(--btn-bg); color: var(--btn-text); border-radius: 40px;
  font-size: .68rem; font-weight: 700; display: grid; place-items: center; line-height: 1;
}
.a2g-cart__count:empty, .a2g-cart__count[data-count="0"] { display: none; }
@media (max-width: 860px) { .nav-links .a2g-cart { align-self: flex-start; } }

/* ---------- Event Tickets (StellarWP) — dunkles Theming ---------- */
.event-tickets, .tribe-tickets, .tribe-common {
  --tec-color-background: transparent;
  --tec-color-text-primary: var(--text);
  --tec-color-text-secondary: var(--muted);
  color: var(--text);
}
.tribe-tickets__tickets-form, .event-tickets .tribe-tickets__tickets-item,
.tribe-tickets__rsvp-wrapper, .tribe-tickets__commerce-order-report-title {
  background: var(--surface) !important; border: 1px solid var(--line-2) !important; border-radius: 10px;
  color: var(--text);
}
.tribe-tickets__tickets-item { padding: 1.2rem 1.4rem !important; margin-bottom: 1rem; }
.tribe-tickets__tickets-item-content-title, .tribe-common-h4, .tribe-common-h5, .tribe-common-h6,
.tribe-tickets__tickets-item-content-description { color: var(--text) !important; }
.tribe-tickets__tickets-item-content-description, .tribe-common-b3, .tribe-common-b2 { color: var(--muted) !important; }
.tribe-tickets__tickets-item-extra-price, .tribe-tickets__tickets-price, .tribe-amount { color: var(--gold) !important; font-weight: 700; }
.tribe-tickets__tickets-item-quantity input, .tribe-tickets-quantity {
  background: var(--surface) !important; color: var(--text) !important; border: 1px solid var(--line) !important; border-radius: 6px !important;
}
.tribe-tickets__tickets-footer, .tribe-tickets__footer { background: transparent !important; border-top: 1px solid var(--line-2); color: var(--text); }
.tribe-tickets__tickets-footer-total-wrap .tribe-amount { color: var(--gold) !important; }
/* Ticketformular-Anker-Box auf der Event-Seite */
.a2g-ticket-embed { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 1.5rem; }
.a2g-ticket-embed h3 { font-family: var(--font-display); text-transform: uppercase; margin-bottom: 1rem; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 780px) {
  .woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2,
  .woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2 { width: 100%; float: none; }
  .woocommerce-cart .cart-collaterals .cart_totals { width: 100%; }
  .woocommerce table.shop_table_responsive tr td { text-align: right; }
  .woocommerce table.shop_table_responsive tr td::before { color: var(--muted); }
  .wc-block-checkout__main, .wc-block-checkout__sidebar { width: 100%; }
}
@media (max-width: 560px) {
  .woocommerce ul.products { grid-template-columns: 1fr; }
  .woocommerce a.button, .woocommerce button.button, .wc-block-components-button { width: 100%; }
}
