/* Оформление заказа. */
.order-wrap { padding: 32px 0 56px; }
.order-head { margin-bottom: 28px; }
.order-head .section-title { margin-top: 6px; }

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

.order-fieldset { border: 1px solid var(--hairline); border-radius: var(--r-lg); padding: 24px; margin-bottom: 20px; background: var(--paper); }
.order-fieldset legend { font-family: var(--font-display); text-transform: uppercase; letter-spacing: .1em; font-size: .82rem; color: var(--brand); padding: 0 10px; }
.order-form label { display: block; font-size: .85rem; font-weight: 500; color: var(--steel); margin-bottom: 16px; }
.order-form label span { color: var(--danger); }
.order-form input, .order-form select, .order-form textarea {
  width: 100%; margin-top: 7px; padding: 12px 14px; border: 1px solid var(--hairline);
  border-radius: var(--r); font-family: var(--font-body); font-size: .95rem; color: var(--ink);
  background: var(--surface); transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.order-form input:focus, .order-form select:focus, .order-form textarea:focus {
  outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px rgba(21,88,156,.12);
}
.order-form .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.order-form .w-half { max-width: 220px; }

.pay-options { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.pay-opt { display: flex; align-items: center; gap: 8px; border: 1px solid var(--hairline); border-radius: var(--r); padding: 11px 16px; cursor: pointer; margin: 0; transition: border-color .2s var(--ease); }
.pay-opt:has(input:checked) { border-color: var(--brand); background: var(--brand-tint); }
.pay-opt input { width: auto; margin: 0; }
.pay-opt span { color: var(--ink); }

.form-msg { min-height: 0; margin-bottom: 12px; font-size: .9rem; }
.form-msg.error { color: var(--danger); padding: 12px 14px; background: rgba(192,57,43,.08); border-radius: var(--r); border-left: 3px solid var(--danger); }
.btn-submit { padding: 16px; font-size: .92rem; }

.order-summary { position: sticky; top: 104px; border: 1px solid var(--hairline); border-radius: var(--r-lg); padding: 26px; background: var(--paper); }
.order-summary h3 { font-family: var(--font-display); text-transform: uppercase; letter-spacing: .06em; font-size: 1.1rem; margin-bottom: 18px; }
.summary-items { margin-bottom: 16px; }
.summary-item { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; font-size: .88rem; color: var(--steel); border-bottom: 1px solid var(--hairline-2); }
.summary-empty { color: var(--steel-light); font-size: .88rem; }
.summary-row { display: flex; justify-content: space-between; padding: 9px 0; font-size: .92rem; }
.summary-row.total { border-top: 1px solid var(--hairline); margin-top: 8px; padding-top: 16px; }
.summary-row.total strong { font-family: var(--font-display); font-size: 1.4rem; }
.back-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; font-size: .86rem; color: var(--steel); }
.back-link:hover { color: var(--brand); }
.btn-disabled { opacity: .5; pointer-events: none; }

@media (max-width: 860px) {
  .order-grid { grid-template-columns: 1fr; }
  .order-summary { position: static; }
  .order-form .grid-2 { grid-template-columns: 1fr; }
}
