.zola-order-widget, .zola-order-widget * { box-sizing: border-box; }

/* ── Modal ── */
.z-modal-overlay {
  display: none; position: fixed; inset: 0; background: rgba(122,14,140,0.55);
  z-index: 1000; align-items: center; justify-content: center; padding: 20px;
  opacity: 0; transition: opacity 0.3s ease;
}
.z-modal-overlay.is-open { display: flex; opacity: 1; }
.z-modal {
  background: #F7F3E9; color: #7A0E8C; width: 100%; max-width: 560px; max-height: 92vh;
  overflow-y: auto; position: relative; transform: translateY(24px);
  transition: transform 0.35s ease;
}
.z-modal-overlay.is-open .z-modal { transform: translateY(0); }
.z-modal-close {
  position: sticky; top: 0; display: flex; justify-content: flex-end;
  padding: 14px 18px 0; background: #F7F3E9; z-index: 10;
}
.z-modal-close-btn {
  background: none; border: none; cursor: pointer; font-size: 22px;
  color: #7A0E8C; line-height: 1; padding: 4px 8px;
}
.z-modal-body { padding: 4px 36px 36px; }

.z-modal-title {
  font-family: 'Cormorant Garamond', serif; font-size: 30px; font-weight: 500;
  color: #7A0E8C; margin-bottom: 24px;
}

.z-field { margin-bottom: 16px; }
.z-label { display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #7A0E8C; margin-bottom: 6px; }
.z-input, .z-select {
  width: 100%; border: 1.5px solid #7A0E8C; background: #fff; color: #7A0E8C;
  padding: 13px 14px; font-family: 'Jost', sans-serif; font-size: 14px; outline: none;
}
.z-input::placeholder { color: #B98ACA; }
.z-input:focus, .z-select:focus { border-width: 2px; }

/* ── Variant cards ── */
.z-variants { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 4px 0 18px; }
.z-variant input[type="radio"] { display: none; }
.z-variant-card {
  border: 1.5px solid #7A0E8C; background: #fff; padding: 14px 12px;
  cursor: pointer; transition: background 0.15s;
}
.z-variant input:checked + .z-variant-card { background: #7A0E8C; }
.z-variant input:checked + .z-variant-card .z-variant-name,
.z-variant input:checked + .z-variant-card .z-variant-price,
.z-variant input:checked + .z-variant-card .z-variant-eur { color: #F7F3E9; }
.z-variant input:checked + .z-variant-card .z-variant-oldprice { color: #D9B3E6; }
.z-variant-name { font-size: 12.5px; font-weight: 600; margin-bottom: 6px; color: #7A0E8C; }
.z-variant-price-row { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.z-variant-price { font-family: 'Arial', sans-serif; font-size: 19px; color: #7A0E8C; }
.z-variant-oldprice { font-size: 11px; color: #A368B3; text-decoration: line-through; }
.z-variant-eur { font-size: 10.5px; color: #7A0E8C; display: block; margin-top: 2px; }

/* ── Delivery type ── */
.z-delivery-types { display: flex; gap: 10px; margin-bottom: 14px; }
.z-delivery-types label { flex: 1; }
.z-delivery-types input[type="radio"] { display: none; }
.z-delivery-card {
  border: 1.5px solid #7A0E8C; background: #fff; color: #7A0E8C;
  text-align: center; padding: 11px 8px; font-size: 12.5px; font-weight: 500; cursor: pointer;
}
.z-delivery-types input:checked + .z-delivery-card { background: #7A0E8C; color: #F7F3E9; }

.z-delivery-note { font-size: 11.5px; color: #7A0E8C; margin: -4px 0 14px; opacity: 0.85; }

/* ── Price summary ── */
.z-summary {
  border-top: 1.5px solid #7A0E8C; border-bottom: 1.5px solid #7A0E8C;
  padding: 14px 2px; margin: 18px 0 20px; font-size: 13.5px;
}
.z-summary-row { display: flex; justify-content: space-between; margin-bottom: 6px; }
.z-summary-row.is-total { margin-top: 8px; padding-top: 8px; border-top: 1px dashed #7A0E8C; font-weight: 600; font-size: 16px; }

.z-submit {
  width: 100%; background: #7A0E8C; color: #F7F3E9; font-family: 'Jost', sans-serif;
  font-size: 13.5px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase;
  padding: 17px; border: none; cursor: pointer;
}
.z-submit:disabled { opacity: 0.6; cursor: not-allowed; }

.z-status { font-size: 13px; color: #7A0E8C; margin-top: 14px; line-height: 1.6; text-align: center; }
.z-status.is-error { color: #8C1A1A; }
.z-status.is-success { font-weight: 600; }
