/* Frontend options layout, styled to closely match the supplied reference. */
.single-product .wc-apo-fields {
  clear: both; box-sizing: border-box; width: 100%; margin: 18px 0;
  padding: 24px 28px; border: 1px solid #e5e1dc; border-radius: 14px;
  background: #fbf9f6; color: #342f2a; box-shadow: none;
}
.single-product .wc-apo-heading {
  margin: 0 0 22px; padding: 0; font-size: 1rem; line-height: 1.4;
  font-weight: 600; text-transform: uppercase; letter-spacing: .02em;
}
.single-product .wc-apo-field {
  box-sizing: border-box; width: 100%; margin: 0 0 18px; padding: 0;
}
.single-product .wc-apo-field:last-of-type { margin-bottom: 10px; }
.single-product .wc-apo-field-quantity {
  display: grid; grid-template-columns: minmax(0, 1fr) auto;
  align-items: center; column-gap: 20px; min-height: 48px;
}
.single-product .wc-apo-field-quantity > .wc-apo-label {
  margin: 0; padding: 0; font-size: 1rem; line-height: 1.4; font-weight: 400;
}
.single-product .wc-apo-field-quantity > .wc-apo-description {
  grid-column: 1 / -1; margin: 5px 0 0; font-size: .85rem; opacity: .72;
}
.single-product .wc-apo-quantity {
  display: flex; align-items: center; justify-content: flex-end; gap: 18px;
  margin: 0; padding: 0; box-shadow: none;
}
.single-product .wc-apo-quantity input[type="number"] {
  display: inline-block; flex: 0 0 24px; width: 24px !important;
  min-width: 24px; max-width: 24px; height: 40px; margin: 0 !important;
  padding: 0 !important; border: 0 !important; border-radius: 0 !important;
  outline: 0; background: transparent !important; color: #211d19;
  box-shadow: none !important; text-align: center; font: inherit; font-weight: 600;
  -moz-appearance: textfield; appearance: textfield;
}
.single-product .wc-apo-quantity input[type="number"]::-webkit-outer-spin-button,
.single-product .wc-apo-quantity input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none; margin: 0;
}
.single-product .wc-apo-quantity button {
  display: inline-flex !important; align-items: center; justify-content: center;
  box-sizing: border-box; flex: 0 0 42px; width: 42px !important;
  min-width: 42px !important; max-width: 42px; height: 42px !important;
  min-height: 42px; margin: 0 !important; padding: 0 !important;
  border: 1px solid #e4e0db !important; border-radius: 14px !important;
  background: transparent !important; color: #342f2a !important;
  box-shadow: none !important; text-shadow: none !important;
  font-size: 23px; font-weight: 400; line-height: 1; cursor: pointer;
}
.single-product .wc-apo-quantity button:hover,
.single-product .wc-apo-quantity button:focus {
  background: #f2eee8 !important; border-color: #d6d0c8 !important;
  box-shadow: none !important;
}
.single-product .wc-apo-field select,
.single-product .wc-apo-field input[type="text"],
.single-product .wc-apo-field input[type="date"],
.single-product .wc-apo-field textarea {
  box-sizing: border-box; width: 100%; max-width: 100%;
}
.single-product .wc-apo-choice { display: block; margin: 8px 0; }
.single-product .wc-apo-live-total {
  display: flex; justify-content: space-between; gap: 12px;
  border-top: 1px solid #e4e0db; padding-top: 14px; margin-top: 18px;
}
.single-product .wc-apo-info { opacity: .8; }
@media (max-width: 600px) {
  .single-product .wc-apo-fields { padding: 18px 16px; }
  .single-product .wc-apo-field-quantity { column-gap: 10px; }
  .single-product .wc-apo-quantity { gap: 10px; }
  .single-product .wc-apo-quantity button {
    flex-basis: 38px; width: 38px !important; min-width: 38px !important;
    max-width: 38px; height: 38px !important; min-height: 38px;
  }
}


/* Each section heading groups the fields until the next heading. */
.single-product .wc-apo-section {
  display:block; width:100%; box-sizing:border-box;
  margin:0 0 18px; padding:20px 0 4px;
  border-top:1px solid #e5e1dc;
}
.single-product .wc-apo-section:first-child { border-top:0; padding-top:0; }
.single-product .wc-apo-section .wc-apo-heading { margin-bottom:18px; }
.single-product .wc-apo-choice {
  display:flex; align-items:center; gap:10px; box-sizing:border-box;
  width:100%; margin:8px 0; padding:12px 14px;
  border:1px solid #e5e1dc; border-radius:10px; background:transparent;
  cursor:pointer;
}
.single-product .wc-apo-choice:has(input:checked) {
  border-color:#e7d28f; background:#fbf4dd;
}
.single-product .wc-apo-choice input { flex:0 0 auto; margin:0; }
.single-product .wc-apo-info {
  margin:0 0 14px; line-height:1.55; color:inherit; opacity:.78;
}


/* Product option headings and field labels sized for the cleaning configurator. */
.single-product .wc-apo-heading {
  font-size:18px !important;
  line-height:1.4;
  font-weight:600;
}
.single-product .wc-apo-field-quantity > .wc-apo-label {
  font-size:18px !important;
  line-height:1.45;
  font-weight:400;
}


.single-product .wc-apo-field-quantity > .wc-apo-quantity-heading {
  display:block; grid-column:1; grid-row:1;
  margin:0; padding:0; border:0; background:transparent;
  font-size:18px !important; line-height:1.45; font-weight:400;
}
.single-product .wc-apo-field-quantity > .wc-apo-quantity-heading .wc-apo-label {
  display:inline; margin:0; padding:0; font-size:18px !important;
  line-height:1.45; font-weight:400;
}
.single-product .wc-apo-field-quantity > .wc-apo-quantity {
  grid-column:2; grid-row:1;
}
.single-product .wc-apo-field-quantity > .wc-apo-description {
  grid-row:2;
}


/* Optional horizontal border/divider field configured from Product Options. */
.single-product .wc-apo-divider {
  display:block !important;
  width:100%;
  height:0;
  margin:18px 0;
  padding:0;
  border:0;
  border-top:1px solid #e5e1dc;
  background:transparent;
  opacity:1;
}
