/*
 * Sakkinen Shop Theme - SWT contract overrides
 *
 * Theme styling must rely on the SWT contract wrappers only:
 * - .swt-block
 * - .swt-block--<module>
 * - [data-swt-block="..."]
 */

/* Base layout normalization: keep blocks aligned and full-width without shifts. */
:where(.swt-block, [data-swt-block]){
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0 0 18px 0;
  box-sizing: border-box;
}

:where(.swt-block, [data-swt-block]){
  margin-left: 0;
  margin-right: 0;
}

/* Ensure SWT blocks align inside WooCommerce summary grids. */
.single-product .summary.entry-summary :where(.swt-block, [data-swt-block]){
  align-self: stretch;
  justify-self: stretch;
}

/* Ensure SWT blocks span the full add-to-cart grid width. */
.single-product .woocommerce div.product form.cart :where(.swt-block, [data-swt-block]){
  grid-column: 1 / -1;
  justify-self: stretch;
  margin-bottom: 0;
}

/* Module-specific wrappers (no internal selectors). */
:where(.swt-block--measure, [data-swt-block="measure"]),
:where(.swt-block--install-allowance, [data-swt-block="install-allowance"]),
:where(.swt-block--units, [data-swt-block="units"]){
  width: 100%;
}

/* Input-group polish for units/measure steppers (contract selectors only). */
:where(.swt-block--units, [data-swt-block="units"], .swt-block--measure, [data-swt-block="measure"]) :where(button, input[type="number"], input[type="text"]){
  min-height: 44px;
  border: 1px solid rgba(16, 24, 40, .16);
  background: #fff;
  color: inherit;
  font: inherit;
  box-shadow: none;
  margin: 0;
}

:where(.swt-block--units, [data-swt-block="units"], .swt-block--measure, [data-swt-block="measure"]) .swt-measure__control{
  position: relative;
}

:where(.swt-block--units, [data-swt-block="units"], .swt-block--measure, [data-swt-block="measure"]) .swt-measure__input{
  width: 100%;
  padding-right: 120px;
  text-align: left;
}

:where(.swt-block--units, [data-swt-block="units"], .swt-block--measure, [data-swt-block="measure"]) .swt-measure__suffix{
  position: absolute;
  right: 90px;
  top: 50%;
  transform: translateY(-50%);
  margin: 0;
  pointer-events: none;
  opacity: .75;
  white-space: nowrap;
}

:where(.swt-block--units, [data-swt-block="units"], .swt-block--measure, [data-swt-block="measure"]) .swt-measure__stepper{
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  gap: 8px;
  margin: 0;
}

:where(.swt-block--units, [data-swt-block="units"], .swt-block--measure, [data-swt-block="measure"]) .swt-measure__stepper-btn{
  width: 34px;
  height: 34px;
  min-width: 34px;
  padding: 0;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

:where(.swt-block--units, [data-swt-block="units"], .swt-block--measure, [data-swt-block="measure"]) .swt-measure__stepper-btn:hover{
  background: rgba(16, 24, 40, .04);
}

:where(.swt-block--units, [data-swt-block="units"], .swt-block--measure, [data-swt-block="measure"]) :where(button){
  width: auto;
  min-width: 0;
}

:where(.swt-block--units, [data-swt-block="units"], .swt-block--measure, [data-swt-block="measure"]) .swt-measure__mode button{
  width: auto;
  min-width: 0;
  padding: 10px 12px;
  border-radius: 999px;
}
