/**
 * Horizon Theme — Merch / Shop + WooCommerce overrides
 */

/* ==========================================================================
   WooCommerce base resets
   ========================================================================== */

.woocommerce,
.woocommerce-page {
  color: var(--hp-text);
}

/* Kill WC default styles we replace */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  background: var(--hp-gold) !important;
  color: #0a0a0a !important;
  border: none !important;
  border-radius: var(--hp-r-sm) !important;
  font-family: var(--hp-font-body) !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  height: 48px !important;
  padding: 0 1.5rem !important;
  display: inline-flex !important;
  align-items: center !important;
  transition: background var(--hp-dur) var(--hp-ease) !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
  background: var(--hp-gold-light) !important;
  color: #0a0a0a !important;
}

.woocommerce a.button.alt,
.woocommerce button.button.alt {
  background: var(--hp-gold) !important;
}

/* WC form fields */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  background: var(--hp-bg) !important;
  border: 1px solid var(--hp-border) !important;
  color: var(--hp-text) !important;
  border-radius: var(--hp-r-sm) !important;
  padding: 0.75rem 1rem !important;
  font-family: var(--hp-font-body) !important;
  transition: border-color var(--hp-dur) var(--hp-ease) !important;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
  border-color: var(--hp-border-strong) !important;
  box-shadow: 0 0 0 3px var(--hp-gold-muted) !important;
  outline: none !important;
}

.woocommerce form .form-row label {
  color: var(--hp-text-muted) !important;
  font-size: var(--hp-text-sm) !important;
  font-weight: 500 !important;
}

/* ==========================================================================
   Shop archive (Merch page)
   ========================================================================== */

.hp-shop-header {
  background: var(--hp-bg-surface);
  border-bottom: 1px solid var(--hp-border);
  padding: var(--hp-sp-12) 0 var(--hp-sp-10);
  margin-top: var(--hp-header-h);
}

.hp-category-filter {
  display: flex;
  gap: var(--hp-sp-2);
  flex-wrap: wrap;
  margin-bottom: var(--hp-sp-8);
}

.hp-shop-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--hp-sp-6);
}

/* WC product loop within our grid */
.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--hp-sp-6);
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.woocommerce ul.products li.product {
  background: var(--hp-bg-surface);
  border: 1px solid var(--hp-border);
  border-radius: var(--hp-r-md);
  overflow: hidden;
  transition: border-color var(--hp-dur) var(--hp-ease),
              box-shadow var(--hp-dur) var(--hp-ease),
              transform var(--hp-dur) var(--hp-ease);
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  width: auto !important;
}

.woocommerce ul.products li.product:hover {
  border-color: var(--hp-border-strong);
  box-shadow: var(--hp-shadow-raised);
  transform: translateY(-2px);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--hp-font-body) !important;
  font-size: var(--hp-text-sm) !important;
  font-weight: 600 !important;
  color: var(--hp-text) !important;
  padding: var(--hp-sp-4) var(--hp-sp-4) var(--hp-sp-2) !important;
}

.woocommerce ul.products li.product .price {
  color: var(--hp-gold) !important;
  font-weight: 600 !important;
  font-size: var(--hp-text-sm) !important;
  padding: 0 var(--hp-sp-4) var(--hp-sp-4) !important;
}

.woocommerce ul.products li.product img {
  border-radius: 0 !important;
  margin-bottom: 0 !important;
}

/* ==========================================================================
   Cart page
   ========================================================================== */

.woocommerce-cart .woocommerce {
  max-width: var(--hp-content-max);
  margin: 0 auto;
  padding: var(--hp-sp-12) var(--hp-content-pad);
}

.woocommerce-cart table.cart {
  background: var(--hp-bg-surface) !important;
  border: 1px solid var(--hp-border) !important;
  border-radius: var(--hp-r-md) !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  overflow: hidden !important;
}

.woocommerce-cart table.cart thead th {
  background: var(--hp-bg-raised) !important;
  color: var(--hp-text-muted) !important;
  font-size: var(--hp-text-xs) !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  border-bottom: 1px solid var(--hp-border) !important;
  padding: var(--hp-sp-4) var(--hp-sp-6) !important;
}

.woocommerce-cart table.cart td {
  border-bottom: 1px solid var(--hp-border) !important;
  padding: var(--hp-sp-6) !important;
  color: var(--hp-text) !important;
  background: transparent !important;
  vertical-align: middle !important;
}

.woocommerce-cart .cart-collaterals .cart_totals {
  background: var(--hp-bg-surface);
  border: 1px solid var(--hp-border);
  border-radius: var(--hp-r-md);
  padding: var(--hp-sp-6);
}

.woocommerce-cart .cart_totals h2 {
  font-size: var(--hp-text-xl) !important;
  margin-bottom: var(--hp-sp-6) !important;
}

.woocommerce-cart .cart_totals table {
  width: 100%;
}

.woocommerce-cart .cart_totals table td,
.woocommerce-cart .cart_totals table th {
  padding: var(--hp-sp-3) 0 !important;
  border: none !important;
  border-bottom: 1px solid var(--hp-border) !important;
  color: var(--hp-text) !important;
  background: transparent !important;
}

.woocommerce-cart .cart_totals .order-total .amount {
  color: var(--hp-gold) !important;
  font-size: var(--hp-text-xl) !important;
  font-weight: 600 !important;
}

/* ==========================================================================
   Checkout
   ========================================================================== */

.woocommerce-checkout .woocommerce {
  max-width: var(--hp-content-max);
  margin: 0 auto;
  padding: var(--hp-sp-12) var(--hp-content-pad);
}

.woocommerce-checkout #customer_details h3,
.woocommerce-checkout #order_review_heading {
  font-family: var(--hp-font-display) !important;
  font-size: var(--hp-text-2xl) !important;
  color: var(--hp-text) !important;
  margin-bottom: var(--hp-sp-6) !important;
}

.woocommerce-checkout #order_review {
  background: var(--hp-bg-surface);
  border: 1px solid var(--hp-border);
  border-radius: var(--hp-r-md);
  padding: var(--hp-sp-6);
}

.woocommerce-checkout table.shop_table {
  width: 100%;
  border-collapse: collapse;
}

.woocommerce-checkout table.shop_table td,
.woocommerce-checkout table.shop_table th {
  padding: var(--hp-sp-3) 0 !important;
  border-bottom: 1px solid var(--hp-border) !important;
  color: var(--hp-text) !important;
}

.woocommerce-checkout .order-total .amount {
  color: var(--hp-gold) !important;
  font-weight: 600 !important;
}

/* ==========================================================================
   My Account
   ========================================================================== */

.woocommerce-account .woocommerce {
  max-width: var(--hp-content-max);
  margin: 0 auto;
  padding: var(--hp-sp-12) var(--hp-content-pad);
}

.woocommerce-MyAccount-navigation {
  background: var(--hp-bg-surface);
  border: 1px solid var(--hp-border);
  border-radius: var(--hp-r-md);
  overflow: hidden;
}

.woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: var(--hp-sp-4) var(--hp-sp-6);
  color: var(--hp-text-muted) !important;
  border-bottom: 1px solid var(--hp-border);
  font-size: var(--hp-text-sm);
  transition: color var(--hp-dur) var(--hp-ease),
              background var(--hp-dur) var(--hp-ease);
}

.woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-MyAccount-navigation ul li.is-active a {
  color: var(--hp-gold) !important;
  background: var(--hp-gold-muted);
}

/* My Vault CTA card in account dashboard */
.hp-myvault-cta {
  background: var(--hp-bg-surface);
  border: 1px solid var(--hp-border-strong);
  border-radius: var(--hp-r-md);
  padding: var(--hp-sp-6);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--hp-sp-4);
  text-decoration: none;
  transition: border-color var(--hp-dur) var(--hp-ease),
              box-shadow var(--hp-dur) var(--hp-ease);
  margin-bottom: var(--hp-sp-6);
}

.hp-myvault-cta:hover {
  border-color: var(--hp-gold);
  box-shadow: var(--hp-shadow-gold);
}

.hp-myvault-cta__text {
  font-weight: 600;
  color: var(--hp-text);
  font-size: var(--hp-text-base);
}

.hp-myvault-cta__sub {
  font-size: var(--hp-text-sm);
  color: var(--hp-text-muted);
  margin-top: var(--hp-sp-1);
}

/* ==========================================================================
   Shipping teaser banner
   ========================================================================== */

.hp-shipping-teaser {
  background: var(--hp-bg-raised);
  border-top: 1px solid var(--hp-border);
  border-bottom: 1px solid var(--hp-border);
  text-align: center;
  padding: var(--hp-sp-4) 0;
  font-size: var(--hp-text-sm);
  color: var(--hp-text-muted);
}

.hp-shipping-teaser a {
  color: var(--hp-gold);
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1024px) {
  .woocommerce ul.products,
  .hp-shop-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 640px) {
  .woocommerce ul.products,
  .hp-shop-grid {
    grid-template-columns: 1fr !important;
  }
}
