/* ── Purchase Section (Stage 1: foundation) ── */

.purchase {
  padding: 72px var(--content-gutter);
  border-top: 1px solid var(--border-divider);
}

.purchase__heading {
  margin-bottom: 32px;
}

.purchase__empty {
  font-size: 15px;
  color: var(--text-muted);
  text-align: center;
  padding: 48px 0;
  border: 1px dashed var(--border-divider);
  border-radius: 12px;
}

.purchase__content[hidden],
.purchase__empty[hidden] {
  display: none;
}

.purchase__content {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 40px;
  align-items: start;
}

.purchase__image {
  border-radius: 16px;
  overflow: hidden;
  background: var(--black-card);
  border: 1px solid var(--border-divider);
}

.purchase__image img {
  width: 100%;
  height: auto;
  display: block;
}

.purchase__status {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 8px;
}

.purchase__name {
  font-size: 28px;
  font-weight: 700;
  color: var(--white);
  margin-bottom: 8px;
}

.purchase__price {
  font-size: 20px;
  font-weight: 700;
  color: var(--gold);
  margin-bottom: 20px;
}

.purchase__description {
  font-size: 15px;
  line-height: 1.7;
  color: var(--text-subtle);
  max-width: 480px;
}

@media (max-width: 768px) {
  .purchase__content {
    grid-template-columns: 1fr;
  }
}

/* ── Purchase Section (Stage 2: size, quantity, summary, inquiry) ── */

.purchase__options[hidden],
.purchase__inquiry[hidden] {
  display: none;
}

.purchase__field {
  margin-bottom: 20px;
}

.purchase__label {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin-bottom: 8px;
}

.purchase__label-optional {
  font-weight: 400;
  text-transform: none;
  letter-spacing: normal;
  color: var(--text-muted);
}

.purchase__select,
.purchase__textarea {
  width: 100%;
  max-width: 320px;
  background: var(--black-input);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text-primary);
  font: inherit;
  font-size: 14px;
  padding: 10px 12px;
}

.purchase__select:disabled {
  opacity: 0.75;
  cursor: default;
}

.purchase__textarea {
  max-width: 480px;
  resize: vertical;
}

.purchase__stepper {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  background: var(--black-input);
}

.purchase__stepper-btn {
  width: 36px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  color: var(--text-primary);
  transition: background 0.15s;
}

.purchase__stepper-btn:hover {
  background: var(--black-elevated);
}

.purchase__stepper-input {
  width: 48px;
  height: 40px;
  text-align: center;
  background: transparent;
  border: none;
  border-left: 1px solid var(--border);
  border-right: 1px solid var(--border);
  color: var(--text-primary);
  font: inherit;
  font-size: 14px;
  appearance: textfield;
}

.purchase__stepper-input::-webkit-outer-spin-button,
.purchase__stepper-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.purchase__summary {
  max-width: 320px;
  padding: 16px;
  background: var(--black-card);
  border: 1px solid var(--border-divider);
  border-radius: 10px;
  margin-bottom: 20px;
}

.purchase__summary-row {
  display: flex;
  justify-content: space-between;
  font-size: 14px;
  color: var(--text-secondary);
  padding: 4px 0;
}

.purchase__summary-row--total {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--border-divider);
  font-weight: 700;
  color: var(--white);
}

.purchase__summary-note {
  margin-top: 10px;
  font-size: 12px;
  color: var(--text-dim);
}

.purchase__checkout-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.purchase__checkout-btn:disabled:hover {
  opacity: 0.5;
  transform: none;
}

.purchase__inquiry-note {
  font-size: 14px;
  line-height: 1.6;
  color: var(--text-subtle);
  max-width: 420px;
  margin-bottom: 16px;
}