/**
 * Klaro WooCommerce Accessibility Styles
 *
 * @package Klaro
 * @since 1.4.0
 */

/* ==========================================================================
   WOOCOMMERCE ACCESSIBILITY STYLES
   ========================================================================== */

/* WooCommerce uses same layout as regular pages - single column by default */

/* Shop Page Layout */
.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--spacing-lg);
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Product Cards */
.woocommerce ul.products li.product {
  padding: var(--spacing-md);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-background);
  display: flex;
  flex-direction: column;
  float: none;
  width: auto;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-heading);
  margin: var(--spacing-sm) 0;
}

.woocommerce ul.products li.product a {
  text-decoration: none;
}

.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title,
.woocommerce ul.products li.product a:focus .woocommerce-loop-product__title {
  text-decoration: underline;
  text-decoration-thickness: 2px;
}

.woocommerce ul.products li.product a:focus {
  outline: var(--focus-outline-width) solid var(--color-focus);
  outline-offset: var(--focus-outline-offset);
}

/* Product Loop Prices */
.woocommerce ul.products li.product .price {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-text);
  margin: var(--spacing-xs) 0;
}

/* Product Images */
.woocommerce ul.products li.product img {
  border-radius: 8px;
  margin-bottom: var(--spacing-sm);
}

/* Sale Badge */
.woocommerce span.onsale {
  min-width: var(--touch-target-min);
  min-height: 28px;
  padding: var(--spacing-xs) var(--spacing-sm);
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--color-background);
  background-color: var(--color-text);
  border-radius: 8px;
  position: absolute;
  top: var(--spacing-sm);
  left: var(--spacing-sm);
  z-index: 1;
}

/* Buttons - 44px touch targets */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .button {
  min-width: var(--touch-target-min);
  min-height: var(--touch-target-min);
  padding: var(--spacing-sm) var(--spacing-lg);
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--color-background);
  background-color: var(--color-text);
  border: 1px solid var(--color-text);
  border-radius: 8px;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-xs);
  transition: none;
}

.woocommerce a.button:hover,
.woocommerce a.button:focus,
.woocommerce button.button:hover,
.woocommerce button.button:focus,
.woocommerce input.button:hover,
.woocommerce input.button:focus,
.woocommerce .button:hover,
.woocommerce .button:focus {
  background-color: var(--color-background);
  color: var(--color-text);
  outline: var(--focus-outline-width) solid var(--color-focus);
  outline-offset: var(--focus-outline-offset);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
  background-color: var(--color-link);
  border-color: var(--color-link);
}

.woocommerce a.button.alt:hover,
.woocommerce a.button.alt:focus {
  background-color: var(--color-background);
  color: var(--color-link);
}

/* Price Display */
.woocommerce .price {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-text);
  margin: var(--spacing-sm) 0;
}

.woocommerce .price del {
  opacity: 0.7;
  text-decoration: line-through;
  margin-right: var(--spacing-xs);
}

.woocommerce .price ins {
  text-decoration: none;
  font-weight: 700;
}

/* Star Ratings */
.woocommerce .star-rating {
  display: inline-block;
  font-size: 1rem;
  color: var(--color-text);
}

/* Cart Table */
.woocommerce table.shop_table {
  width: 100%;
  margin: var(--spacing-lg) 0;
  border-collapse: collapse;
  border: 1px solid var(--color-border);
}

.woocommerce table.shop_table th {
  padding: var(--spacing-sm);
  text-align: left;
  font-weight: 700;
  background: var(--color-text);
  color: var(--color-background);
  border: 1px solid var(--color-border);
}

.woocommerce table.shop_table td {
  padding: var(--spacing-sm);
  border: 1px solid var(--color-border);
  vertical-align: middle;
}

.woocommerce table.shop_table tbody tr:nth-child(even) {
  background: #F5F5F5;
}

/* Remove Button - 44px touch target */
.woocommerce a.remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--touch-target-min);
  min-height: var(--touch-target-min);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-text);
  background: var(--color-background);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  text-decoration: none;
}

.woocommerce a.remove:hover,
.woocommerce a.remove:focus {
  background: var(--color-text);
  color: var(--color-background);
  outline: var(--focus-outline-width) solid var(--color-focus);
  outline-offset: var(--focus-outline-offset);
}

/* Quantity Controls */
.woocommerce .quantity {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-xs);
}

.woocommerce .quantity .qty {
  min-width: 60px;
  min-height: var(--touch-target-min);
  padding: var(--spacing-sm);
  font-size: 1rem;
  text-align: center;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  color: var(--color-text);
  background-color: var(--color-background);
}

.woocommerce .quantity .qty:focus {
  outline: var(--focus-outline-width) solid var(--color-focus);
  outline-offset: var(--focus-outline-offset);
}

/* Quantity +/- Buttons (JS enhanced) */
.klaro-qty-btn {
  width: var(--touch-target-min);
  height: var(--touch-target-min);
  padding: 0;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-text);
  background: var(--color-background);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.klaro-qty-btn:hover,
.klaro-qty-btn:focus {
  background: var(--color-text);
  color: var(--color-background);
  outline: var(--focus-outline-width) solid var(--color-focus);
  outline-offset: var(--focus-outline-offset);
}

/* Single Product Add to Cart Form - Uniform Heights */
.woocommerce div.product form.cart {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--spacing-sm);
}

.woocommerce div.product form.cart .quantity {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-xs);
}

.woocommerce div.product form.cart .quantity .qty {
  width: 70px;
  height: var(--touch-target-min);
  padding: 0;
  font-size: 1rem;
  text-align: center;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  color: var(--color-text);
  background-color: var(--color-background);
}

.woocommerce div.product form.cart button.single_add_to_cart_button {
  height: var(--touch-target-min);
  padding: 0 var(--spacing-lg);
  font-size: 1.125rem;
  font-weight: 600;
}

/* Form Fields */
.woocommerce form .form-row {
  margin-bottom: var(--spacing-md);
}

.woocommerce form .form-row label {
  display: block;
  margin-bottom: var(--spacing-xs);
  font-weight: 600;
  font-size: 1.125rem;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea {
  width: 100%;
  max-width: 600px;
  padding: var(--spacing-sm);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--color-text);
  background-color: var(--color-background);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  min-height: var(--touch-target-min);
}

.woocommerce form .form-row input:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus {
  outline: var(--focus-outline-width) solid var(--color-focus);
  outline-offset: var(--focus-outline-offset);
}

/* Error States */
.woocommerce form .form-row.woocommerce-invalid input,
.woocommerce form .form-row.woocommerce-invalid select {
  border-color: #CC0000;
  border-width: 3px;
}

.woocommerce form .form-row.woocommerce-invalid label {
  color: #CC0000;
}

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  padding: var(--spacing-md);
  padding-left: calc(var(--spacing-md) + 2.5em);
  margin-bottom: var(--spacing-lg);
  font-weight: 600;
  border-radius: 8px;
  list-style: none;
  position: relative;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--spacing-xs);
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
  font-size: 2em;
  position: absolute;
  left: var(--spacing-md);
  top: 50%;
  transform: translateY(-50%);
  line-height: 1;
}

.woocommerce-message {
  background: #E5F7E5;
  border: 3px solid #006600;
  color: #000000;
}

.woocommerce-error {
  background: #FFE5E5;
  border: 3px solid #CC0000;
  color: #000000;
}

.woocommerce-error li {
  margin-bottom: var(--spacing-xs);
}

.woocommerce-info {
  background: #E5F0FF;
  border: 3px solid #0051A5;
  color: #000000;
}

/* Product Tabs */
.woocommerce-tabs {
  margin: var(--spacing-xl) 0;
}

.woocommerce-tabs ul.tabs {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-xs);
  border-bottom: 2px solid var(--color-border);
}

.woocommerce-tabs ul.tabs li {
  margin: 0;
  padding: 0.1em 1em;
}

.woocommerce-tabs ul.tabs li a {
  display: block;
  min-height: var(--touch-target-min);
  padding: 0;
  font-weight: 600;
  color: var(--color-text) !important;
  background: var(--color-background) !important;
  border: 1px solid var(--color-border);
  border-bottom: none;
  border-radius: 4px 4px 0 0;
  text-decoration: none;
  text-shadow: none !important;
}

.woocommerce-tabs ul.tabs li.active a,
.woocommerce-tabs ul.tabs li a[aria-selected="true"] {
  background: var(--color-text) !important;
  color: var(--color-background) !important;
  text-shadow: none !important;
}

.woocommerce-tabs ul.tabs li a:hover {
  background: var(--color-text) !important;
  color: var(--color-background) !important;
}

.woocommerce-tabs ul.tabs li a:focus {
  outline: var(--focus-outline-width) solid var(--color-focus);
  outline-offset: var(--focus-outline-offset);
  z-index: 1;
  position: relative;
}

.woocommerce-tabs .panel {
  padding: var(--spacing-lg);
  border: none;
}

.woocommerce-tabs .panel h2 {
  margin-top: 0;
}

/* Product attributes table (Additional Information tab) */
.woocommerce table.shop_attributes td {
  padding: var(--spacing-xs) var(--spacing-sm);
}

/* Ensure tab panel content is visible */
.woocommerce div.product .woocommerce-tabs .panel {
  background: var(--color-background);
  color: var(--color-text);
}

/* Pagination */
.woocommerce nav.woocommerce-pagination ul {
  display: flex;
  gap: var(--spacing-sm);
  flex-wrap: wrap;
  list-style: none;
  margin: var(--spacing-xl) 0;
  padding: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
  margin: 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  min-width: var(--touch-target-min);
  min-height: var(--touch-target-min);
  padding: var(--spacing-sm) var(--spacing-md);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  text-decoration: none;
  color: var(--color-text);
  background: var(--color-background);
}

.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--color-text);
  color: var(--color-background);
}

.woocommerce nav.woocommerce-pagination ul li a:focus {
  outline: var(--focus-outline-width) solid var(--color-focus);
  outline-offset: var(--focus-outline-offset);
}

/* Shop Controls */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
  margin-bottom: var(--spacing-md);
}

.woocommerce .woocommerce-ordering select {
  min-height: var(--touch-target-min);
  padding: var(--spacing-sm);
  font-size: 1rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
}

/* Single Product */
.woocommerce div.product {
  margin-bottom: var(--spacing-xl);
}

.woocommerce div.product .product_title {
  font-size: 2rem;
  margin-bottom: var(--spacing-md);
}

.woocommerce div.product .woocommerce-product-gallery {
  margin-bottom: var(--spacing-lg);
}

.woocommerce div.product .woocommerce-product-gallery img {
  border-radius: 8px;
}

.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs {
  display: flex;
  gap: var(--spacing-sm);
  margin-top: var(--spacing-sm);
  list-style: none;
  padding: 0;
}

.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li {
  margin: 0;
}

.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs img {
  min-width: var(--touch-target-min);
  min-height: var(--touch-target-min);
  border: 2px solid transparent;
  border-radius: 8px;
  cursor: pointer;
}

.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs img:focus,
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs img.flex-active {
  border-color: var(--color-focus);
  outline: var(--focus-outline-width) solid var(--color-focus);
  outline-offset: var(--focus-outline-offset);
}

/* Variations */
.woocommerce div.product .variations {
  margin-bottom: var(--spacing-md);
}

.woocommerce div.product .variations td {
  padding: var(--spacing-sm) 0;
}

.woocommerce div.product .variations select {
  min-height: var(--touch-target-min);
  padding: var(--spacing-sm);
  font-size: 1rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  min-width: 200px;
}

/* Cart Totals */
.woocommerce .cart-collaterals .cart_totals {
  margin-top: var(--spacing-lg);
}

.woocommerce .cart-collaterals .cart_totals h2 {
  font-size: 1.5rem;
  margin-bottom: var(--spacing-md);
}

/* Checkout */
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3 {
  font-size: 1.5rem;
  margin-bottom: var(--spacing-md);
}

.woocommerce-checkout #order_review_heading {
  font-size: 1.5rem;
  margin: var(--spacing-lg) 0 var(--spacing-md);
}

.woocommerce-checkout .woocommerce-checkout-review-order-table {
  margin-bottom: var(--spacing-lg);
}

/* Payment Methods */
.woocommerce-checkout #payment {
  background: #F5F5F5;
  padding: var(--spacing-lg);
  border-radius: 8px;
}

.woocommerce-checkout #payment ul.payment_methods {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--spacing-lg);
}

.woocommerce-checkout #payment ul.payment_methods li {
  padding: var(--spacing-md);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  margin-bottom: var(--spacing-sm);
  background: var(--color-background);
}

.woocommerce-checkout #payment ul.payment_methods li label {
  font-weight: 600;
  cursor: pointer;
}

.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] {
  min-width: 20px;
  min-height: 20px;
  margin-right: var(--spacing-sm);
}

/* ==========================================================================
   WOOCOMMERCE BLOCKS - CART
   ========================================================================== */

/* Cart table header - styled like theme buttons */
.wc-block-cart-items__header th,
th.wc-block-cart-items__header-image,
th.wc-block-cart-items__header-product,
th.wc-block-cart-items__header-total {
  text-align: center !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  padding: var(--spacing-sm) !important;
  background: var(--color-text) !important;
  color: var(--color-background) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: 4px;
}

.wc-block-cart-items__header th span,
th.wc-block-cart-items__header-image span,
th.wc-block-cart-items__header-product span,
th.wc-block-cart-items__header-total span {
  display: block !important;
  text-align: center !important;
  color: var(--color-background) !important;
}

/* Cart items table - full width */
table.wc-block-cart-items {
  width: 100% !important;
}

/* Cart items - accessible font sizes */
.wc-block-cart-items td {
  font-size: 1rem;
  vertical-align: middle;
}

table.wc-block-cart-items .wc-block-cart-items__row .wc-block-components-product-name {
  font-size: 1.125rem !important;
  font-weight: 600;
  color: var(--color-link);
  line-height: var(--line-height-base) !important;
  max-width: none !important;
}

.wc-block-cart-items .wc-block-components-product-metadata {
  font-size: 1rem;
}

.wc-block-cart-items .wc-block-components-product-price {
  font-size: 1.125rem;
  font-weight: 700;
}

/* Quantity selector - accessible flex layout */
.wc-block-components-quantity-selector {
  display: inline-flex !important;
  align-items: stretch !important;
  width: auto !important;
  max-width: none !important;
  border: 1px solid var(--color-border) !important;
  border-radius: 4px !important;
  overflow: visible !important;
}

.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
  order: 2 !important;
  width: 50px !important;
  min-height: var(--touch-target-min) !important;
  font-size: 1rem !important;
  text-align: center !important;
  border: none !important;
  border-left: 1px solid var(--color-border) !important;
  border-right: 1px solid var(--color-border) !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--color-text);
  background: var(--color-background);
  -moz-appearance: textfield;
  appearance: textfield;
}

.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input::-webkit-inner-spin-button,
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
  width: var(--touch-target-min) !important;
  height: var(--touch-target-min) !important;
  min-width: var(--touch-target-min) !important;
  min-height: var(--touch-target-min) !important;
  flex-shrink: 0 !important;
  font-size: 1.25rem !important;
  font-weight: 700;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  background: var(--color-background) !important;
  color: var(--color-text) !important;
  cursor: pointer;
  position: static !important;
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button--minus {
  order: 1 !important;
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button--plus {
  order: 3 !important;
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover,
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:focus {
  background: var(--color-text) !important;
  color: var(--color-background) !important;
}

/* Cart totals */
.wc-block-cart .wc-block-cart__totals-title {
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  line-height: var(--line-height-base) !important;
}

.wc-block-cart .wc-block-components-totals-wrapper {
  font-size: 1rem;
}

.wc-block-cart .wc-block-components-totals-item__label,
.wc-block-cart .wc-block-components-totals-item__value {
  font-size: 1.125rem;
}

.wc-block-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-size: 1.25rem;
  font-weight: 700;
}

/* Cart block buttons - match primary navigation style */
.wc-block-cart .wc-block-cart__submit-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: var(--touch-target-min);
  padding: 0.1em 1em !important;
  font-size: 1.125rem !important;
  font-weight: 600 !important;
  color: var(--color-text) !important;
  background: var(--color-background) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: 4px !important;
  text-decoration: none !important;
  text-align: center;
  cursor: pointer;
}

.wc-block-cart .wc-block-cart__submit-button:hover,
.wc-block-cart .wc-block-cart__submit-button:focus {
  background: var(--color-text) !important;
  color: var(--color-background) !important;
}

.wc-block-cart .wc-block-components-button {
  min-height: var(--touch-target-min);
  font-size: 1.125rem;
  font-weight: 600;
}

/* ==========================================================================
   WOOCOMMERCE BLOCKS - CHECKOUT
   ========================================================================== */

/* Checkout fields - ensure logical field order */
.wc-block-checkout__billing-fields .wc-block-components-address-form,
.wc-block-checkout__shipping-fields .wc-block-components-address-form {
  display: flex !important;
  flex-wrap: wrap !important;
}

.wc-block-components-address-form > .wc-block-components-address-form__first_name { order: 1; }
.wc-block-components-address-form > .wc-block-components-address-form__last_name { order: 2; }
.wc-block-components-address-form > .wc-block-components-address-form__company { order: 3; }
.wc-block-components-address-form > .wc-block-components-address-form__address_1 { order: 4; }
.wc-block-components-address-form > .wc-block-components-address-form__address_2 { order: 5; }
.wc-block-components-address-form > .wc-block-components-country-input { order: 6; }

.wc-block-checkout__billing-fields .wc-block-components-address-form .wc-block-components-country-input:first-child,
.wc-block-checkout__shipping-fields .wc-block-components-address-form .wc-block-components-country-input:first-child {
  margin-top: 12px !important;
}
.wc-block-components-address-form > .wc-block-components-address-form__city { order: 7; }
.wc-block-components-address-form > .wc-block-components-state-input { order: 8; }
.wc-block-components-address-form > .wc-block-components-address-form__postcode { order: 9; }
.wc-block-components-address-form > .wc-block-components-address-form__phone { order: 10; }

/* Checkout fields - all fields full width for accessibility */
.wc-block-checkout__billing-fields .wc-block-components-address-form .wc-block-components-text-input,
.wc-block-checkout__billing-fields .wc-block-components-address-form .wc-block-components-select-input,
.wc-block-checkout__billing-fields .wc-block-components-address-form .wc-block-components-state-input,
.wc-block-checkout__billing-fields .wc-block-components-address-form .wc-block-components-country-input,
.wc-block-checkout__shipping-fields .wc-block-components-address-form .wc-block-components-text-input,
.wc-block-checkout__shipping-fields .wc-block-components-address-form .wc-block-components-select-input,
.wc-block-checkout__shipping-fields .wc-block-components-address-form .wc-block-components-state-input,
.wc-block-checkout__shipping-fields .wc-block-components-address-form .wc-block-components-country-input {
  flex: 0 0 100% !important;
}

.wc-block-checkout .wc-block-components-text-input label,
.wc-block-checkout .wc-block-components-combobox label {
  font-size: 1rem;
}

/* Checkbox labels (e.g. "Add a note to your order") */
.wc-block-checkout .wc-block-components-checkbox label,
.wc-block-components-checkbox label {
  font-size: 1rem !important;
  line-height: var(--line-height-base) !important;
}

/* Order notes textarea */
.wc-block-checkout .wc-block-components-textarea {
  font-size: 1rem !important;
  min-height: 100px;
}

.wc-block-checkout .wc-block-components-text-input input,
.wc-block-checkout .wc-block-components-text-input textarea,
.wc-block-checkout .wc-block-components-combobox input,
.wc-block-checkout select {
  font-size: 1rem;
  min-height: var(--touch-target-min);
}

.wc-block-checkout .wc-block-components-title {
  font-size: 1.5rem;
  font-weight: 700;
}

.wc-block-checkout .wc-block-components-totals-item__label,
.wc-block-checkout .wc-block-components-totals-item__value {
  font-size: 1.125rem;
}

.wc-block-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-size: 1.25rem;
  font-weight: 700;
}

.wc-block-checkout .wc-block-components-order-summary .wc-block-components-order-summary-item__description {
  font-size: 1rem;
}

.wc-block-checkout .wc-block-components-order-summary .wc-block-components-product-name {
  font-size: 1.125rem;
  font-weight: 600;
}

.wc-block-checkout .wc-block-components-order-summary .wc-block-components-product-price {
  font-size: 1.125rem;
  font-weight: 700;
}

.wc-block-checkout .wc-block-components-checkout-place-order-button,
.wc-block-checkout .wc-block-components-button {
  min-height: var(--touch-target-min);
  font-size: 1.125rem;
  font-weight: 600;
}

/* Checkout payment methods */
.wc-block-checkout .wc-block-components-radio-control__label {
  font-size: 1rem;
  font-weight: 600;
}

.wc-block-checkout .wc-block-components-radio-control__description {
  font-size: 1rem;
}

.wc-block-checkout .wc-block-components-radio-control__input {
  min-width: 20px;
  min-height: 20px;
}

/* ==========================================================================
   MY ACCOUNT
   ========================================================================== */

.woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0 0 var(--spacing-lg);
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--spacing-xs);
}

.woocommerce-MyAccount-navigation ul li {
  margin: 0;
  padding: 0;
  border: none;
}

.woocommerce-MyAccount-navigation ul li a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: var(--touch-target-min);
  padding: 0.1em 1em;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--color-text);
  background: var(--color-background);
  border: 1px solid var(--color-border);
  border-radius: 4px;
  text-align: center;
  text-decoration: none;
}

.woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-MyAccount-navigation ul li a:focus {
  background: var(--color-text);
  color: var(--color-background);
}

.woocommerce-MyAccount-navigation ul li.is-active a {
  background: var(--color-text);
  color: var(--color-background);
  font-weight: 700;
}

/* My Account buttons - match navigation style */
.woocommerce-MyAccount-content .woocommerce-Button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--touch-target-min);
  padding: 0.1em 1em;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--color-text);
  background: var(--color-background);
  border: 1px solid var(--color-border);
  border-radius: 4px;
  text-align: center;
  text-decoration: none;
}

.woocommerce-MyAccount-content .woocommerce-Button:hover,
.woocommerce-MyAccount-content .woocommerce-Button:focus {
  background: var(--color-text);
  color: var(--color-background);
}

/* My Account content */
.woocommerce-MyAccount-content {
  font-size: 1rem;
}

.woocommerce-MyAccount-content table {
  font-size: 1rem;
}

.woocommerce-MyAccount-content a {
  font-weight: 600;
}

/* ==========================================================================
   HIGH CONTRAST MODE
   ========================================================================== */

.klaro-high-contrast .woocommerce ul.products li.product {
  border-color: var(--color-border);
  background: var(--color-background);
}

.klaro-high-contrast .woocommerce a.button,
.klaro-high-contrast .woocommerce button.button,
.klaro-high-contrast .woocommerce .button {
  background-color: var(--color-text);
  color: var(--color-background);
  border-color: var(--color-text);
}

.klaro-high-contrast .woocommerce a.button:hover,
.klaro-high-contrast .woocommerce a.button:focus,
.klaro-high-contrast .woocommerce button.button:hover,
.klaro-high-contrast .woocommerce button.button:focus {
  background-color: var(--color-background);
  color: var(--color-text);
}

.klaro-high-contrast .woocommerce table.shop_table tbody tr:nth-child(even) {
  background: var(--color-background);
}

.klaro-high-contrast .woocommerce-message,
.klaro-high-contrast .woocommerce-error,
.klaro-high-contrast .woocommerce-info {
  background: var(--color-background);
  color: var(--color-text);
  border-color: var(--color-text);
}

.klaro-high-contrast .woocommerce span.onsale {
  background: var(--color-focus);
  color: var(--color-background);
  border: 2px solid var(--color-text);
}

.klaro-high-contrast .woocommerce-checkout #payment {
  background: var(--color-background);
  border: 1px solid var(--color-border);
}

.klaro-high-contrast .wc-block-cart-items__header th,
.klaro-high-contrast th.wc-block-cart-items__header-image,
.klaro-high-contrast th.wc-block-cart-items__header-product,
.klaro-high-contrast th.wc-block-cart-items__header-total {
  background: #FFFFFF !important;
  color: #000000 !important;
  border-color: #FFFFFF !important;
}

.klaro-high-contrast .wc-block-cart-items__header th span,
.klaro-high-contrast th.wc-block-cart-items__header-image span,
.klaro-high-contrast th.wc-block-cart-items__header-product span,
.klaro-high-contrast th.wc-block-cart-items__header-total span {
  color: #000000 !important;
}

.klaro-high-contrast .woocommerce-MyAccount-navigation ul li a {
  border-color: var(--color-border);
  color: var(--color-text);
  background: var(--color-background);
}

.klaro-high-contrast .woocommerce-MyAccount-navigation ul li a:hover,
.klaro-high-contrast .woocommerce-MyAccount-navigation ul li a:focus,
.klaro-high-contrast .woocommerce-MyAccount-navigation ul li.is-active a {
  background: var(--color-text);
  color: var(--color-background);
}

/* ==========================================================================
   MONOCHROME MODE
   ========================================================================== */

.klaro-monochrome .woocommerce .price {
  color: var(--color-text);
}

.klaro-monochrome .woocommerce span.onsale {
  background: var(--color-text);
  color: var(--color-background);
}

.klaro-monochrome .wc-block-cart-items__header th,
.klaro-monochrome th.wc-block-cart-items__header-image,
.klaro-monochrome th.wc-block-cart-items__header-product,
.klaro-monochrome th.wc-block-cart-items__header-total {
  background: var(--color-text) !important;
  color: var(--color-background) !important;
}

.klaro-monochrome .wc-block-cart-items__header th span,
.klaro-monochrome th.wc-block-cart-items__header-image span,
.klaro-monochrome th.wc-block-cart-items__header-product span,
.klaro-monochrome th.wc-block-cart-items__header-total span {
  color: var(--color-background) !important;
}

/* High contrast mode - ensure prices are visible */
.klaro-high-contrast .woocommerce .price,
.klaro-high-contrast .woocommerce .price .woocommerce-Price-amount,
.klaro-high-contrast .woocommerce .price bdi,
.klaro-high-contrast .woocommerce .price .woocommerce-Price-currencySymbol {
  color: #FFFFFF !important;
  font-size: 1.25rem;
}

.klaro-high-contrast .woocommerce ul.products li.product .price,
.klaro-high-contrast .woocommerce ul.products li.product .price .woocommerce-Price-amount,
.klaro-high-contrast .woocommerce ul.products li.product .price bdi {
  color: #00D4FF !important;
  font-size: 1.1rem;
}

/* ==========================================================================
   RESPONSIVE - MOBILE
   ========================================================================== */

@media (max-width: 768px) {
  .woocommerce ul.products {
    grid-template-columns: 1fr;
  }

  .woocommerce table.shop_table,
  .woocommerce table.shop_table thead,
  .woocommerce table.shop_table tbody,
  .woocommerce table.shop_table th,
  .woocommerce table.shop_table td,
  .woocommerce table.shop_table tr {
    display: block;
  }

  .woocommerce table.shop_table thead {
    position: absolute;
    left: -10000px;
  }

  .woocommerce table.shop_table tr {
    margin-bottom: var(--spacing-md);
    border: 1px solid var(--color-border);
    border-radius: 8px;
    overflow: hidden;
  }

  .woocommerce table.shop_table td {
    border: none;
    border-bottom: 1px solid var(--color-border);
    position: relative;
    padding-left: 50%;
    min-height: var(--touch-target-min);
    display: flex;
    align-items: center;
  }

  .woocommerce table.shop_table td::before {
    content: attr(data-title);
    position: absolute;
    left: var(--spacing-sm);
    font-weight: 700;
    width: 45%;
  }

  .woocommerce table.shop_table td.actions {
    padding-left: var(--spacing-sm);
    flex-direction: column;
    align-items: stretch;
    gap: var(--spacing-sm);
  }

  .woocommerce table.shop_table td.actions::before {
    display: none;
  }

  .woocommerce-tabs ul.tabs {
    flex-direction: column;
  }

  .woocommerce-tabs ul.tabs li a {
    border-radius: 8px;
    border: 1px solid var(--color-border);
  }

}
