/* WooCommerce and Woo Blocks refinements for The Glimm House. */

/* WooCommerce Blocks checkout — the current checkout page uses these
   components instead of the classic .form-row markup above. */
.wc-block-components-checkout, .wc-block-components-order-summary, .wc-block-components-sidebar { color: var(--brown); font-family: Lato, Arial, sans-serif; font-weight: 300; }
.wc-block-components-checkout h2, .wc-block-components-checkout h3, .wc-block-components-order-summary h2, .wc-block-components-order-summary h3 { color: var(--brown); font-family: "Playfair Display", Georgia, serif; font-weight: 400; }
.wc-block-components-checkout .wc-block-components-checkout-step__heading { margin-bottom: 18px; }
.wc-block-components-checkout .wc-block-components-checkout-step__heading-content, .wc-block-components-checkout .wc-block-components-checkout-step__heading-title { color: var(--brown); font-family: "Playfair Display", Georgia, serif; font-size: 25px; font-weight: 400; }
.wc-block-components-checkout .wc-block-components-checkout-step__description { color: var(--brown-muted); font-size: 13px; }
.wc-block-components-text-input, .wc-block-components-combobox .wc-block-components-combobox-control { margin-bottom: 17px; }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input, .wc-block-components-text-input.has-error input, .wc-block-components-combobox .wc-block-components-combobox-control input.has-error { min-height: 48px !important; border: 1px solid rgba(189,176,170,.4) !important; border-radius: 0 !important; background: var(--cream) !important; box-shadow: none !important; color: var(--brown) !important; font-family: Lato, Arial, sans-serif !important; font-size: 14px !important; font-weight: 300 !important; padding: 18px 13px 7px !important; }
.wc-block-components-text-input input:focus, .wc-block-components-combobox .wc-block-components-combobox-control input:focus { border-color: var(--sage) !important; box-shadow: 0 0 0 3px rgba(127,160,138,.12) !important; outline: 0 !important; }
.wc-block-components-text-input label, .wc-block-components-combobox .wc-block-components-combobox-control label { top: 8px !important; left: 13px !important; color: var(--brown-muted) !important; font-family: Lato, Arial, sans-serif !important; font-size: 9px !important; font-weight: 300 !important; letter-spacing: .12em !important; line-height: 1 !important; text-transform: uppercase !important; }
.wc-block-components-text-input input::placeholder, .wc-block-components-combobox .wc-block-components-combobox-control input::placeholder { color: var(--brown-light) !important; opacity: 1; }
.wc-block-components-select { margin-bottom: 17px; }
.wc-block-components-select .wc-block-components-select__container { min-height: 48px; border: 1px solid rgba(189,176,170,.4); border-radius: 0; background: var(--cream); }
.wc-block-components-select .wc-block-components-select__label { top: 8px; left: 13px; color: var(--brown-muted); font-family: Lato, Arial, sans-serif; font-size: 9px; font-weight: 300; letter-spacing: .12em; text-transform: uppercase; }
.wc-block-components-select .wc-block-components-select__select { min-height: 48px; color: var(--brown); font-family: Lato, Arial, sans-serif; font-size: 14px; font-weight: 300; padding: 18px 35px 6px 13px; }
.wc-block-components-select .wc-block-components-select__container:focus-within { border-color: var(--sage); box-shadow: 0 0 0 3px rgba(127,160,138,.12); }
.wc-block-components-checkbox, .wc-block-components-radio-control { color: var(--brown-muted); font-size: 14px; }
.wc-block-components-checkbox label, .wc-block-components-radio-control__option { color: var(--brown-muted); font-size: 14px; font-weight: 300; }
.wc-block-components-checkbox input[type="checkbox"], .wc-block-components-radio-control__input { accent-color: var(--sage); }
.wc-block-components-checkbox .wc-block-components-checkbox__label { color: var(--brown-muted); }
.wc-block-components-radio-control { border: 1px solid rgba(189,176,170,.25); border-radius: 0; background: var(--warm-white); }
.wc-block-components-radio-control__option { border-bottom-color: rgba(189,176,170,.2); }
.wc-block-components-radio-control__option:last-child { border-bottom: 0; }
.wc-block-components-radio-control__option-checked { background: var(--sage-pale); }
.wc-block-components-button, .wc-block-components-checkout-place-order-button { min-height: 48px !important; border: 1px solid var(--sage) !important; border-radius: 0 !important; background: var(--sage) !important; color: var(--warm-white) !important; font-family: Lato, Arial, sans-serif !important; font-size: 10px !important; font-weight: 300 !important; letter-spacing: .22em !important; text-transform: uppercase !important; transition: .25s ease !important; }
.wc-block-components-button:hover, .wc-block-components-button:focus, .wc-block-components-checkout-place-order-button:hover, .wc-block-components-checkout-place-order-button:focus { border-color: var(--sage-light) !important; background: var(--sage-light) !important; color: #fff !important; }
.wc-block-components-order-summary { border: 1px solid rgba(189,176,170,.35); border-radius: 0; background: var(--warm-white); }
.wc-block-components-order-summary .wc-block-components-order-summary-item__description, .wc-block-components-order-summary .wc-block-components-order-summary-item__total-price { color: var(--brown); font-size: 14px; }
.wc-block-components-order-summary .wc-block-components-order-summary-item__quantity { border-color: var(--brown-light); background: var(--gold); color: #fff; }
.wc-block-components-totals-wrapper { border-color: rgba(189,176,170,.25); }
.wc-block-components-totals-item { color: var(--brown-muted); font-size: 13px; }
.wc-block-components-totals-item__value, .wc-block-components-totals-item__label { color: var(--brown); }
.wc-block-components-totals-footer-item { border-top-color: rgba(189,176,170,.25); color: var(--brown); font-family: "Playfair Display", Georgia, serif; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color: var(--gold); font-size: 20px; }
.wc-block-components-notice-banner { border: 1px solid rgba(127,160,138,.25) !important; border-top: 2px solid var(--sage) !important; border-radius: 0 !important; background: var(--sage-pale) !important; color: var(--brown-muted) !important; }
.wc-block-components-notice-banner.is-error { border-color: rgba(224,168,179,.35) !important; border-top-color: var(--blush-dark) !important; background: var(--blush-light) !important; }
.wc-block-components-validation-error { color: var(--blush-dark); font-size: 11px; }

/* WooCommerce Cart block */
.wc-block-cart { color: var(--brown); font-family: Lato, Arial, sans-serif; font-weight: 300; }
.wc-block-cart table.wc-block-cart-items { border-collapse: collapse; border: 0; background: transparent; }
.wc-block-cart table.wc-block-cart-items th { border-bottom: 1px solid rgba(189,176,170,.35); color: var(--brown-muted); font-size: 9px; font-weight: 300; letter-spacing: .2em; text-transform: uppercase; }
.wc-block-cart table.wc-block-cart-items td { border-bottom: 1px solid rgba(189,176,170,.35); padding: 20px 0; }
.wc-block-cart .wc-block-components-product-name { color: var(--brown); font-family: "Playfair Display", Georgia, serif; font-size: 15px; font-weight: 400; }
.wc-block-cart .wc-block-components-product-price, .wc-block-cart .wc-block-components-product-metadata { color: var(--brown-muted); font-size: 12px; }
.wc-block-components-quantity-selector { height: 34px; border: 1px solid rgba(189,176,170,.6) !important; border-radius: 0 !important; background: var(--cream) !important; }
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input { color: var(--brown) !important; font-family: Lato, Arial, sans-serif !important; font-size: 12px !important; font-weight: 300 !important; }
.wc-block-components-quantity-selector button.wc-block-components-quantity-selector__button { min-width: 34px; border: 0 !important; border-radius: 0 !important; background: transparent !important; color: var(--brown-muted) !important; font-size: 16px !important; }
.wc-block-components-quantity-selector button.wc-block-components-quantity-selector__button:hover { background: var(--sage-pale) !important; color: var(--sage) !important; }
.wc-block-cart-item__remove-link { color: var(--brown-light) !important; font-size: 11px !important; text-decoration: none !important; }
.wc-block-cart-item__remove-link:hover { color: var(--blush-dark) !important; }
.wc-block-cart .wc-block-cart__submit-button { min-height: 48px; border-radius: 0; background: var(--sage); color: #fff; font-size: 10px; font-weight: 300; letter-spacing: .22em; text-transform: uppercase; }
.wc-block-cart .wc-block-cart__submit-button:hover { background: var(--sage-light); color: #fff; }
.wc-block-cart .wc-block-components-totals-coupon-link { color: var(--brown-muted); font-size: 12px; text-decoration: none; }
.wc-block-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-family: "Playfair Display", Georgia, serif; font-size: 21px; font-weight: 400; text-transform: none; }
.wc-block-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color: var(--gold); font-family: "Playfair Display", Georgia, serif; font-size: 21px; }

/* Form system alignment
   Figma specifies a visible label above each field (rather than Woo Blocks'
   default floating label), a 46px warm-grey control, and 16px inner spacing. */
.wc-block-components-text-input {
  display: flex !important;
  flex-direction: column-reverse !important;
  margin-bottom: 18px !important;
}
.wc-block-components-text-input label {
  position: static !important;
  display: block !important;
  height: auto !important;
  margin: 0 0 8px !important;
  overflow: visible !important;
  transform: none !important;
  color: var(--brown-muted) !important;
  font-size: 9px !important;
  font-weight: 300 !important;
  letter-spacing: .22em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}
.wc-block-components-text-input input,
.wc-block-components-text-input.has-error input {
  box-sizing: border-box !important;
  min-height: 46px !important;
  height: 46px !important;
  padding: 13px 16px !important;
  background: var(--cream-dark) !important;
}
.wc-blocks-components-select {
  margin-bottom: 18px !important;
}
.wc-blocks-components-select__container {
  display: flex !important;
  flex-direction: column !important;
  min-height: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.wc-blocks-components-select__label {
  position: static !important;
  display: block !important;
  order: 0 !important;
  margin: 0 0 8px !important;
  color: var(--brown-muted) !important;
  font-family: Lato, Arial, sans-serif !important;
  font-size: 9px !important;
  font-weight: 300 !important;
  letter-spacing: .22em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}
.wc-blocks-components-select__select {
  order: 1 !important;
  box-sizing: border-box !important;
  min-height: 46px !important;
  height: 46px !important;
  border: 1px solid rgba(189,176,170,.4) !important;
  border-radius: 0 !important;
  background-color: var(--cream-dark) !important;
  color: var(--brown) !important;
  font-family: Lato, Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 300 !important;
  padding: 13px 42px 13px 16px !important;
}
.wc-blocks-components-select__container:focus-within {
  border: 0 !important;
  box-shadow: none !important;
}
.wc-blocks-components-select__select:focus {
  border-color: var(--sage) !important;
  box-shadow: 0 0 0 3px rgba(127,160,138,.12) !important;
  outline: 0 !important;
}
.wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.wpcf7 select,
.wpcf7 textarea,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  background: var(--cream-dark) !important;
}

@media (max-width: 620px) {
  .wc-block-cart table.wc-block-cart-items td { padding: 15px 0; }
  .wc-block-cart .wc-block-cart-items__row { grid-template-columns: 72px 1fr; }
  .wc-block-cart .wc-block-cart__sidebar { margin-top: 38px; }
}

/* Product cards — keep WooCommerce's default float/percentage sizing from
   shrinking cards inside the two-column mobile grid. The Figma card pattern
   keeps the image ratio, title and price aligned while the purchase action
   remains a hover/focus affordance. */
.woocommerce ul.products li.product.product-card {
  width: auto !important;
  min-width: 0;
  float: none !important;
  margin: 0 !important;
}
.woocommerce ul.products li.product.product-card .product-card__image {
  width: 100%;
  aspect-ratio: 1 / 1;
}
.woocommerce ul.products li.product.product-card .product-card__image > a.woocommerce-LoopProduct-link {
  display: block;
  width: 100%;
  height: 100%;
}
.woocommerce ul.products li.product.product-card .product-card__image img {
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
}
.woocommerce ul.products li.product.product-card .woocommerce-loop-product__title {
  width: 100%;
  min-height: 3.3em;
  padding: 18px 14px 3px;
  line-height: 1.2;
}
.woocommerce ul.products li.product.product-card .price { padding-bottom: 19px; }
.woocommerce ul.products li.product.product-card:hover .product-card__image img { transform: none; }
.woocommerce ul.products { row-gap: 24px; padding-bottom: 48px; }

@media (max-width: 900px) {
  .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
  .woocommerce ul.products li.product.product-card .woocommerce-loop-product__title { padding: 14px 12px 3px; font-size: 14px; }
  .woocommerce ul.products li.product.product-card .product-card__image .button {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: auto;
    min-height: 32px;
    max-height: 32px;
    margin: 0;
    padding: 7px 10px;
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity .18s ease, transform .18s ease, background-color .18s ease;
  }
  .woocommerce ul.products li.product.product-card:hover .product-card__image .button,
  .woocommerce ul.products li.product.product-card:focus-within .product-card__image .button { opacity: 1; pointer-events: auto; transform: none; }
}

@media (hover: none) {
  .product-card .product-card__image .button,
  .woocommerce ul.products li.product.product-card .product-card__image .button {
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }
}
