/* WooCommerce pages (cart, checkout, My Account, notices) in the RWP design.
   WooCommerce's own stylesheets are switched off in functions.php; this file
   styles its classic markup with the site's tokens from styles.css. */

.woo-wrap { display: grid; gap: 24px; }
.woocommerce :where(h2, h3) { font-family: var(--font-display); font-stretch: 106%; font-size: var(--fs-lg, 1.25rem); margin-bottom: 14px; }
.woocommerce a:not(.btn):not(.button) { color: var(--accent-ink); }
.woocommerce .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.woocommerce abbr.required, .woocommerce .required { color: var(--danger); text-decoration: none; border: 0; }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews {
  list-style: none; display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; justify-content: space-between;
  padding: 14px 18px; margin: 0 0 18px; border-radius: var(--r-ctl); border: 1px solid var(--line-2); background: var(--panel); color: var(--fg); font-size: var(--fs-sm);
}
.woocommerce-message { border-color: var(--accent-line); background: var(--accent-wash); }
.woocommerce-error { border-color: rgba(255, 107, 99, 0.45); background: rgba(255, 107, 99, 0.08); display: grid; }
.woocommerce-error li { list-style: none; }
.woocommerce-notices-wrapper:empty { display: none; }

/* Buttons */
.woocommerce :is(.button, button.button, a.button, input.button, #place_order) {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 20px; border-radius: var(--r-pill);
  font-weight: 600; font-size: var(--fs-sm); cursor: pointer; border: 1px solid var(--line-2); background: var(--panel-2); color: var(--fg); text-decoration: none;
  transition: background-color 0.2s, border-color 0.2s, transform 0.15s;
}
.woocommerce :is(.button, button.button, a.button):hover { border-color: var(--accent-line); background: var(--panel-3); }
.woocommerce :is(.button.alt, .checkout-button, #place_order, .woocommerce-form-login__submit, .woocommerce-form-register__submit) {
  background: var(--btn-grad); color: #fff; border-color: transparent; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 10px 30px -12px rgb(var(--accent-rgb) / 0.55);
}
.woocommerce #place_order, .woocommerce .checkout-button { width: 100%; min-height: 54px; font-size: var(--fs-base, 1rem); }
.woocommerce :is(.button, button):disabled, .woocommerce .button.disabled { opacity: 0.5; cursor: not-allowed; }

/* Forms */
.woocommerce :is(input.input-text, input[type='text'], input[type='email'], input[type='tel'], input[type='password'], input[type='number'], textarea, select) {
  width: 100%; min-height: 48px; padding: 12px 14px; border-radius: var(--r-ctl); background: var(--bg-2); border: 1px solid var(--line-2); color: var(--fg); font: inherit;
}
.woocommerce textarea { min-height: 110px; }
.woocommerce select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' fill='%23a9b4ca'%3E%3Cpath d='M213.66 101.66l-80 80a8 8 0 0 1-11.32 0l-80-80a8 8 0 0 1 11.32-11.32L128 164.69l74.34-74.35a8 8 0 0 1 11.32 11.32z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 16px; padding-right: 40px; }
.woocommerce :is(input, textarea, select):focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-wash); }
.woocommerce .form-row { display: grid; gap: 6px; margin: 0 0 14px; }
.woocommerce .form-row label { font-size: var(--fs-sm); color: var(--fg-2); font-weight: 500; }
.woocommerce .form-row.woocommerce-invalid :is(input, select) { border-color: var(--danger); }
.woocommerce :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper) { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.woocommerce :is(.form-row-wide, #billing_address_1_field, #billing_address_2_field, #shipping_address_1_field, #shipping_address_2_field, #billing_country_field, #shipping_country_field, #billing_company_field, #billing_email_field) { grid-column: 1 / -1; }
.woocommerce input[type='checkbox'], .woocommerce input[type='radio'] { accent-color: var(--accent-btn); width: 18px; height: 18px; }
.woocommerce .woocommerce-form__label-for-checkbox { display: inline-flex; gap: 10px; align-items: center; }
.woocommerce .select2-container .select2-selection--single { height: 48px; border-radius: var(--r-ctl); background: var(--bg-2); border: 1px solid var(--line-2); }
.woocommerce .select2-container .select2-selection__rendered { line-height: 46px !important; color: var(--fg) !important; padding-left: 14px !important; }
.woocommerce .select2-container .select2-selection__arrow { height: 46px !important; }
.select2-dropdown { background: var(--panel); border-color: var(--line-2); color: var(--fg); }
.select2-search__field { background: var(--bg-2); color: var(--fg); border-color: var(--line-2) !important; }
.select2-results__option--highlighted { background: var(--accent-btn) !important; }

/* Tables (cart, order review, orders, order details) */
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-panel); overflow: hidden; font-size: var(--fs-sm); }
.woocommerce table.shop_table :is(th, td) { padding: 14px 16px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.woocommerce table.shop_table th { color: var(--fg-3); font-weight: 600; font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: 0.08em; }
.woocommerce table.shop_table tr:last-child :is(th, td) { border-bottom: 0; }
.woocommerce table.shop_table :is(.order-total, .cart-subtotal) :is(th, td) { color: var(--fg); font-size: var(--fs-sm); text-transform: none; letter-spacing: 0; }
.woocommerce table.shop_table .order-total .amount { font-size: 1.15rem; font-weight: 700; }
.woocommerce .product-thumbnail img { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; }
.woocommerce a.remove { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: var(--fg-3) !important; font-size: 18px; text-decoration: none; border: 1px solid var(--line-2); }
.woocommerce a.remove:hover { color: var(--danger) !important; border-color: var(--danger); }
.woocommerce .quantity .qty { width: 84px; text-align: center; }
.woocommerce .actions .coupon { display: inline-flex; gap: 10px; align-items: center; }
.woocommerce .actions .coupon .input-text { width: 180px; }
.woocommerce .actions { text-align: right; }

/* Cart */
.woocommerce-cart .woo-wrap > .woocommerce { display: grid; gap: 24px; }
.woocommerce .cart-collaterals { display: grid; justify-content: end; }
.woocommerce .cart_totals { width: min(440px, 100%); display: grid; gap: 14px; }
.woocommerce .woocommerce-shipping-methods { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.woocommerce .cart-empty { font-size: var(--fs-md, 1.1rem); }
.woocommerce .return-to-shop .button { background: var(--btn-grad); color: #fff; border-color: transparent; }

/* Checkout */
.woocommerce form.checkout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.woocommerce form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.woocommerce form.checkout #customer_details { display: grid; gap: 24px; }
.woocommerce form.checkout #order_review_heading { display: none; }
.woocommerce #order_review { position: sticky; top: 100px; display: grid; gap: 18px; padding: clamp(20px, 3vw, 28px); border-radius: var(--r-panel); background: var(--panel); border: 1px solid var(--line); }
.woocommerce #order_review::before { content: 'Order summary'; font-family: var(--font-display); font-stretch: 106%; font-weight: 700; font-size: 1.15rem; }
.woocommerce #order_review table.shop_table { border: 0; background: transparent; }
.woocommerce #payment { display: grid; gap: 16px; }
.woocommerce #payment ul.payment_methods { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.woocommerce #payment ul.payment_methods > li { padding: 14px; border-radius: var(--r-ctl); border: 1px solid var(--line-2); background: var(--bg-2); }
.woocommerce #payment .payment_box { margin-top: 10px; font-size: var(--fs-sm); color: var(--fg-2); }
.woocommerce .woocommerce-terms-and-conditions-wrapper { font-size: var(--fs-xs); color: var(--fg-3); }
.woocommerce .rwp-attest { display: grid; gap: 14px; padding: 0; border: 0; margin: 0; }
.woocommerce .rwp-attest legend { font-weight: 600; margin-bottom: 4px; }
.woocommerce .woocommerce-form-coupon-toggle .woocommerce-info { justify-content: flex-start; }
.woocommerce form.checkout_coupon { display: flex; gap: 10px; margin-bottom: 18px; }

/* Order received */
.woocommerce .woocommerce-order { display: grid; gap: 22px; }
.woocommerce ul.order_details { list-style: none; padding: 18px; margin: 0; display: flex; flex-wrap: wrap; gap: 18px 36px; border-radius: var(--r-panel); background: var(--panel); border: 1px solid var(--line); font-size: var(--fs-sm); color: var(--fg-3); }
.woocommerce ul.order_details strong { display: block; color: var(--fg); font-size: var(--fs-base, 1rem); }
.woocommerce .woocommerce-customer-details address { font-style: normal; padding: 16px; border-radius: var(--r-ctl); border: 1px solid var(--line); background: var(--panel); color: var(--fg-2); }

/* My Account */
.woocommerce-account .woo-wrap > .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 32px; align-items: start; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 8px; display: grid; gap: 2px; border-radius: var(--r-panel); background: var(--panel); border: 1px solid var(--line); }
.woocommerce-MyAccount-navigation a { display: block; padding: 10px 14px; border-radius: var(--r-ctl); color: var(--fg-2) !important; text-decoration: none; font-size: var(--fs-sm); }
.woocommerce-MyAccount-navigation .is-active a, .woocommerce-MyAccount-navigation a:hover { background: var(--panel-2); color: var(--fg) !important; }
.woocommerce-MyAccount-content { display: grid; gap: 16px; }
.woocommerce-account:not(.logged-in) .woo-wrap > .woocommerce { display: block; max-width: 520px; }
.woocommerce :is(.woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword, .woocommerce-EditAccountForm, .woocommerce-address-fields) { padding: clamp(22px, 3vw, 32px); border-radius: var(--r-panel); background: var(--panel); border: 1px solid var(--line); }
.woocommerce .u-columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
.woocommerce .woocommerce-Addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }
.woocommerce .woocommerce-LostPassword { font-size: var(--fs-sm); }
.woocommerce fieldset { border: 1px solid var(--line); border-radius: var(--r-ctl); padding: 16px; margin: 0 0 16px; }

/* WooCommerce's loading overlay, dark instead of white */
.blockUI.blockOverlay { background: var(--bg) !important; opacity: 0.55 !important; }

/* Sticky header sits below the WordPress toolbar when you're signed in as staff */
.admin-bar .site-header { top: var(--wp-admin--admin-bar--height, 32px); }

/* Product page form (single-product.php) */
.buybox.cart .qty input[type='number'] { -moz-appearance: textfield; }

@media (max-width: 1023px) {
  .woocommerce form.checkout { grid-template-columns: 1fr; }
  .woocommerce #order_review { position: static; }
  .woocommerce-account .woo-wrap > .woocommerce { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .woocommerce :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper) { grid-template-columns: 1fr; }
  .woocommerce table.shop_table_responsive thead { display: none; }
  .woocommerce table.shop_table_responsive tr { display: grid; padding: 10px 0; border-bottom: 1px solid var(--line); }
  .woocommerce table.shop_table_responsive td { display: flex; justify-content: space-between; gap: 12px; border: 0; padding: 6px 16px; }
  .woocommerce table.shop_table_responsive td::before { content: attr(data-title); color: var(--fg-3); font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: 0.06em; }
  .woocommerce .actions { text-align: left; }
  .woocommerce .actions .coupon { display: grid; }
}
