.fpow-options {
  box-sizing: border-box;
  margin: 1rem 0 1.25rem;
  font-family: var(--fpow-font-family);
}

.fpow-group {
  border: 0;
  margin: 0 0 1rem;
  padding: 0;
}

.fpow-group legend,
.fpow-variation-buttons-active table.variations th.label {
  display: block;
  float: none;
  margin: 0 0 .45rem;
  padding: 0;
  width: 100%;
  color: inherit;
  font-weight: 600;
  line-height: 1.35;
  text-align: left;
}

.fpow-choice-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--fpow-gap);
}

.fpow-choice {
  display: inline-flex;
  margin: 0;
  cursor: pointer;
}

.fpow-choice > input,
.fpow-native-select {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
}

.fpow-button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 38px;
  padding: var(--fpow-padding-y) var(--fpow-padding-x);
  border: var(--fpow-border-width) solid var(--fpow-normal-border);
  border-radius: var(--fpow-radius);
  background: var(--fpow-normal-bg);
  color: var(--fpow-normal-text);
  font: inherit;
  font-size: var(--fpow-font-size);
  font-weight: var(--fpow-font-weight);
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: color .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.fpow-choice:hover .fpow-button,
.fpow-button:hover {
  border-color: var(--fpow-hover-border);
  background: var(--fpow-hover-bg);
  color: var(--fpow-hover-text);
}

.fpow-choice > input:focus-visible + .fpow-button,
.fpow-button:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

.fpow-choice.is-selected .fpow-button,
.fpow-choice > input:checked + .fpow-button,
.fpow-button.is-selected,
.fpow-button[aria-pressed="true"] {
  border-color: var(--fpow-selected-border);
  background: var(--fpow-selected-bg);
  color: var(--fpow-selected-text);
}

.fpow-button:disabled,
.fpow-button.is-disabled {
  border-color: var(--fpow-disabled-border);
  background: var(--fpow-disabled-bg);
  color: var(--fpow-disabled-text);
  cursor: not-allowed;
  opacity: .72;
}

.fpow-price-delta {
  margin-left: .35em;
  color: inherit;
  font-size: .82em;
  opacity: .86;
}

.fpow-price-summary {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-top: .35rem;
  padding-top: .85rem;
  border-top: 1px solid rgba(0, 0, 0, .12);
}

.fpow-total-price {
  font-size: 1.08em;
}

.fpow-size-group[hidden] {
  display: none !important;
}

.fpow-variation-buttons-active .variable-items-wrapper {
  display: none !important;
}

.fpow-variation-buttons-active table.variations,
.fpow-variation-buttons-active table.variations tbody,
.fpow-variation-buttons-active table.variations tr,
.fpow-variation-buttons-active table.variations td,
.fpow-variation-buttons-active table.variations th {
  display: block;
  width: 100%;
}

.fpow-variation-buttons-active table.variations tr {
  margin-bottom: 1rem;
}

@media (max-width: 767px) {
  .fpow-button {
    font-size: var(--fpow-mobile-font-size);
  }
  .fpow-choice-list {
    gap: max(5px, calc(var(--fpow-gap) * .8));
  }
}
