/* --------------------------------------------------------------------------
   Tear Sheets — Front-end button styles
   Two modes: icon_only (bare icon link) and text_only (themed button).
   -------------------------------------------------------------------------- */

/* text_only: styled button inheriting theme's .button / .wp-element-button.
   !important on display/width/flex overrides block-theme global styles that
   force .wp-element-button to width:100% and display:block. */
a.ts-print-button,
a.ts-print-button.button,
a.ts-print-button.wp-element-button {
  display: inline-flex !important;
  width: auto !important;
  min-width: 0 !important;
  flex: 0 0 auto !important;
  align-items: center;
  align-self: center;
  margin-left: .6em;
}

/* icon_only: bare icon link — no button chrome, just the icon itself. */
.ts-print-icon-link {
  display: inline-flex !important;
  width: auto !important;
  flex: 0 0 auto !important;
  align-items: center;
  align-self: center;
  line-height: 0;
  text-decoration: none;
  margin-left: .6em;
  vertical-align: middle;
}

/* Icon image sizing */
.ts-print-icon-link .ts-icon-img {
  height: 2em;
  width: auto;
  display: block;
}

/* a11y: visually-hidden label for icon-only links */
.screen-reader-text,
.ts-print-icon-link .screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(1px,1px,1px,1px);
  white-space: nowrap; border: 0;
}

/* --------------------------------------------------------------------------
   Product page grid/flex fix
   Simple products:   button is a direct child of form.cart
   Variable products: button is inside .woocommerce-variation-add-to-cart
   WooCommerce block styles inject grid-column:1/-1 on non-.quantity children;
   block themes apply width:100% to .wp-element-button globally.
   -------------------------------------------------------------------------- */
form.cart > a.ts-print-button,
form.cart > a.ts-print-icon-link,
.woocommerce-variation-add-to-cart a.ts-print-button,
.woocommerce-variation-add-to-cart a.ts-print-icon-link {
  grid-column: auto !important;
  width: auto !important;
  min-width: 0 !important;
  flex: 0 0 auto !important;
  justify-self: start;
  align-self: center;
}

/* When our button is present (either mode), group all buttons to the left so there
   is no gap between Add to Cart and Print/icon (overrides space-between / flex-grow). */
form.cart:has(.ts-print-button),
form.cart:has(.ts-print-icon-link),
.woocommerce-variation-add-to-cart:has(.ts-print-button),
.woocommerce-variation-add-to-cart:has(.ts-print-icon-link) {
  justify-content: flex-start !important;
}
form.cart:has(.ts-print-button) button[type="submit"],
form.cart:has(.ts-print-button) .single_add_to_cart_button,
form.cart:has(.ts-print-icon-link) button[type="submit"],
form.cart:has(.ts-print-icon-link) .single_add_to_cart_button,
.woocommerce-variation-add-to-cart:has(.ts-print-button) button[type="submit"],
.woocommerce-variation-add-to-cart:has(.ts-print-button) .single_add_to_cart_button,
.woocommerce-variation-add-to-cart:has(.ts-print-icon-link) button[type="submit"],
.woocommerce-variation-add-to-cart:has(.ts-print-icon-link) .single_add_to_cart_button {
  flex-grow: 0 !important;
}

/* --------------------------------------------------------------------------
   Mini cart
   -------------------------------------------------------------------------- */

/* Block mini-cart: make the Print button share the row with the other two
   buttons at equal width (flex: 1 1 0% prevents it stretching alone when
   it wraps, by giving all siblings the same flex basis). */
.wc-block-mini-cart__footer-actions .ts-tear-sheets-button--minicart {
  flex: 1 1 0% !important;
  width: auto !important;
  min-width: 0 !important;
  box-sizing: border-box;
}

/* Classic mini-cart (Storefront / non-block): full-width on its own row */
.widget_shopping_cart .buttons .ts-tear-sheets-button--minicart,
.woocommerce-mini-cart__buttons .ts-tear-sheets-button--minicart {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin-top: 8px;
  float: none;
  clear: both;
}
