/* Advanced Product Fields questions inside the buy form, drawn like the theme's own .field controls.
   Plugin markup: .wapf-field-group > .wapf-field-container > .wapf-field-label + .wapf-field-input + .wapf-field-description */

.wapf-field-group, .wapf-section { display: grid; gap: var(--space-md); margin: 0; }
/* The plugin sets inline width:NN% for side-by-side fields; one column keeps the buy box tidy. */
.buy .wapf-field-container { width: 100% !important; display: grid; gap: var(--space-2xs); margin: 0; }

.buy .wapf-field-label { margin: 0; }
.buy .wapf-field-label label {
  display: block; margin: 0;
  font-family: var(--font-display); font-weight: var(--wt-hair); font-size: var(--text-xs);
  text-transform: uppercase; letter-spacing: var(--track-hair); line-height: 1.4; color: var(--color-ink-2);
}
.buy .wapf-required { border: 0; text-decoration: none; cursor: inherit; color: var(--color-orange-text); }

.buy .wapf-field-input { margin: 0; }
.buy .wapf-field-input :is(input[type="text"], input[type="number"], input[type="email"], input[type="date"], input[type="tel"], textarea, select) {
  width: 100%; max-width: none; min-height: 48px; margin: 0; padding: var(--space-xs) var(--space-sm);
  border: var(--rule-bold) solid var(--color-rule-2); border-radius: var(--radius-input);
  background-color: var(--color-paper); color: var(--color-ink); box-shadow: none;
  font-family: var(--font-body); font-size: var(--text-base); line-height: 1.4;
}
.buy .wapf-field-input textarea { min-height: 7rem; resize: vertical; }
.buy .wapf-field-input select {
  appearance: none; padding-right: 2.75rem; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--color-ink) 50%), linear-gradient(135deg, var(--color-ink) 50%, transparent 50%);
  background-position: calc(100% - 1.35rem) 55%, calc(100% - 1rem) 55%;
  background-size: .4rem .4rem; background-repeat: no-repeat;
}
.buy .wapf-field-input :is(input, textarea, select)::placeholder { color: var(--color-muted); }
.buy .wapf-field-input :is(input, textarea, select):hover { border-color: var(--color-ink); }
.buy .wapf-field-input :is(input, textarea, select):disabled { background-color: var(--color-paper-2); color: var(--color-muted); cursor: not-allowed; }

.buy .wapf-field-description { font-size: var(--text-xs); line-height: 1.5; color: var(--color-muted); }
.buy .wapf-field-description p { margin: 0; font-size: inherit; }

/* Radios and checkboxes */
.buy :is(.wapf-radios, .wapf-checkboxes) { display: grid; gap: var(--space-2xs); }
.buy :is(.wapf-radio, .wapf-checkbox) label { display: flex; align-items: center; gap: var(--space-xs); min-height: 44px; font-size: var(--text-base); cursor: pointer; }
.buy :is(.wapf-radio, .wapf-checkbox) input { width: 1.25rem; height: 1.25rem; margin: 0; accent-color: var(--color-ink); }
.buy .wapf-pricing-hint { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--color-muted); }

/* Option price summary */
.buy .wapf-product-totals { display: grid; gap: var(--space-2xs); padding-top: var(--space-md); border-top: var(--rule-hair) solid var(--color-rule); font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: var(--text-xs); color: var(--color-ink-2); }
.buy .wapf-product-totals > div { display: flex; justify-content: space-between; gap: var(--space-md); }
.buy .wapf-grand-total { color: var(--color-ink); font-weight: var(--wt-mid); }

/* ACF "please note" intro that precedes the questions */
.wapf-intro { padding: var(--space-md); border-left: var(--bar-w) solid var(--color-accent); background: var(--color-paper-2); font-size: var(--text-xs); line-height: 1.5; color: var(--color-ink-2); }
.wapf-intro h5 { margin: 0 0 var(--space-3xs); font-family: var(--font-display); font-weight: var(--wt-hair); font-size: var(--text-xs); text-transform: uppercase; letter-spacing: var(--track-hair); color: var(--color-ink); }
.wapf-intro p { margin: 0 0 var(--space-2xs); font-size: inherit; }
