.mzp-wrap {
  --mzp-accent: #7a3f78;
  --mzp-accent-dark: #5d2d5b;
  --mzp-ink: #242126;
  --mzp-muted: #6d6870;
  --mzp-line: #ded9df;
  --mzp-soft: #f7f3f7;
  --mzp-white: #fff;
  color: var(--mzp-ink);
  margin: 2rem auto;
  max-width: 920px;
}

.mzp-wrap *, .mzp-wrap *::before, .mzp-wrap *::after { box-sizing: border-box; }
.mzp-intro { margin: 0 0 2rem; max-width: 720px; }
.mzp-intro h2 { font-size: clamp(2rem, 5vw, 3.5rem); line-height: 1.05; margin: .2rem 0 1rem; }
.mzp-intro p { color: var(--mzp-muted); font-size: 1.08rem; line-height: 1.65; }
.mzp-intro .mzp-kicker { color: var(--mzp-accent); font-size: .78rem; font-weight: 800; letter-spacing: .13em; margin: 0; text-transform: uppercase; }

.mzp-card, .mzp-choice {
  background: var(--mzp-white);
  border: 1px solid var(--mzp-line);
  border-radius: 18px;
  box-shadow: 0 8px 30px rgba(36, 33, 38, .05);
  margin: 0 0 1.25rem;
  overflow: hidden;
}

.mzp-card { padding: clamp(1.25rem, 3vw, 2rem); }
.mzp-card__heading, .mzp-section-title { align-items: flex-start; display: flex; gap: 1rem; }
.mzp-card__heading { margin-bottom: 1.5rem; }
.mzp-card__heading h3, .mzp-section-title h3 { font-size: 1.35rem; line-height: 1.2; margin: 0 0 .25rem; }
.mzp-card__heading p, .mzp-section-title p { color: var(--mzp-muted); margin: 0; }
.mzp-section-title { margin: 2.25rem 0 1.2rem; }
.mzp-step { align-items: center; background: var(--mzp-accent); border-radius: 50%; color: #fff; display: inline-flex; flex: 0 0 32px; font-size: .9rem; font-weight: 800; height: 32px; justify-content: center; }

.mzp-fields { display: grid; gap: 1.1rem; }
.mzp-fields--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mzp-field { display: grid; gap: .42rem; margin: 0; }
.mzp-field > span, .mzp-fieldset legend { color: var(--mzp-ink); font-size: .92rem; font-weight: 700; }
.mzp-field input, .mzp-field textarea {
  background: #fff;
  border: 1px solid #cfc8d0;
  border-radius: 10px;
  color: var(--mzp-ink);
  font: inherit;
  margin: 0;
  min-height: 48px;
  padding: .75rem .85rem;
  width: 100%;
}
.mzp-field textarea { resize: vertical; }
.mzp-field input:focus, .mzp-field textarea:focus { border-color: var(--mzp-accent); box-shadow: 0 0 0 3px rgba(122, 63, 120, .14); outline: none; }

.mzp-choice { transition: border-color .2s ease, box-shadow .2s ease; }
.mzp-choice.is-enabled { border-color: var(--mzp-accent); box-shadow: 0 10px 35px rgba(93, 45, 91, .11); }
.mzp-choice__image, .mzp-choice__placeholder { aspect-ratio: 16 / 6; display: block; object-fit: cover; width: 100%; }
.mzp-choice__placeholder { align-content: center; background: linear-gradient(135deg, #f4eef4, #ebe4ec); color: var(--mzp-accent); display: grid; justify-items: center; min-height: 180px; }
.mzp-choice__placeholder span { font-size: 3rem; line-height: 1; }
.mzp-choice__placeholder strong { margin-top: .35rem; }
.mzp-choice__placeholder small { color: var(--mzp-muted); margin-top: .1rem; }

.mzp-choice__toggle { align-items: center; cursor: pointer; display: flex; gap: .9rem; margin: 0; padding: 1.25rem clamp(1.25rem, 3vw, 2rem); }
.mzp-choice__toggle input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.mzp-choice__check { align-items: center; border: 2px solid #aaa1ab; border-radius: 7px; display: flex; flex: 0 0 26px; height: 26px; justify-content: center; transition: .15s ease; }
.mzp-choice__toggle input:checked + .mzp-choice__check { background: var(--mzp-accent); border-color: var(--mzp-accent); }
.mzp-choice__toggle input:checked + .mzp-choice__check::after { border: solid #fff; border-width: 0 2px 2px 0; content: ''; height: 11px; transform: rotate(45deg) translate(-1px, -1px); width: 6px; }
.mzp-choice__toggle input:focus-visible + .mzp-choice__check { box-shadow: 0 0 0 4px rgba(122, 63, 120, .2); }
.mzp-choice__toggle strong, .mzp-choice__toggle small { display: block; }
.mzp-choice__toggle strong { font-size: 1.12rem; }
.mzp-choice__toggle small { color: var(--mzp-muted); margin-top: .2rem; }
.mzp-choice__body { border-top: 1px solid var(--mzp-line); padding: clamp(1.25rem, 3vw, 2rem); }
.mzp-choice__body[hidden] { display: none; }
.mzp-choice__body h4 { font-size: 1rem; margin: 1.7rem 0 .75rem; }

.mzp-fieldset { border: 0; margin: 0; padding: 0; }
.mzp-fieldset > legend {
  display: block;
  float: none;
  margin: 0 0 .75rem;
  padding: 0;
  position: static;
  width: 100%;
}
.mzp-date-options { clear: both; display: grid; gap: .75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mzp-date { margin: 0; position: relative; }
.mzp-date input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.mzp-date > span { border: 1px solid var(--mzp-line); border-radius: 12px; cursor: pointer; display: block; padding: .9rem 1rem; }
.mzp-date strong, .mzp-date small { display: block; }
.mzp-date small { color: var(--mzp-muted); margin-top: .2rem; }
.mzp-date input:checked + span { background: var(--mzp-soft); border-color: var(--mzp-accent); box-shadow: inset 0 0 0 1px var(--mzp-accent); }
.mzp-date input:focus-visible + span { box-shadow: 0 0 0 4px rgba(122, 63, 120, .2); }

.mzp-menu { border: 1px solid var(--mzp-line); border-radius: 12px; margin-bottom: 1.5rem; overflow: hidden; }
.mzp-menu__row { align-items: center; display: flex; gap: 1rem; justify-content: space-between; padding: .85rem 1rem; }
.mzp-menu__row + .mzp-menu__row { border-top: 1px solid var(--mzp-line); }
.mzp-menu__description > strong, .mzp-menu__description > span { display: block; }
.mzp-menu__description strong { line-height: 1.3; }
.mzp-menu__description span { color: var(--mzp-muted); font-size: .88rem; margin-top: .18rem; }
.mzp-menu__description .woocommerce-Price-amount,
.mzp-menu__description .woocommerce-Price-currencySymbol,
.mzp-menu__description bdi { display: inline; white-space: nowrap; }
.mzp-quantity { align-items: center; border: 1px solid #cfc8d0; border-radius: 9px; display: grid; flex: 0 0 auto; grid-template-columns: 38px 42px 38px; overflow: hidden; }
.mzp-quantity button { background: var(--mzp-soft); border: 0; border-radius: 0; color: var(--mzp-ink); cursor: pointer; font-size: 1.25rem; height: 40px; margin: 0; padding: 0; }
.mzp-quantity button:hover { background: #ece3ed; color: var(--mzp-accent-dark); }
.mzp-quantity input { appearance: textfield; border: 0; border-left: 1px solid var(--mzp-line); border-radius: 0; border-right: 1px solid var(--mzp-line); box-shadow: none; font: inherit; height: 40px; margin: 0; min-height: 0; padding: 0; text-align: center; width: 42px; }
.mzp-quantity input::-webkit-inner-spin-button, .mzp-quantity input::-webkit-outer-spin-button { appearance: none; margin: 0; }
.mzp-inline-options { display: flex; gap: 1.5rem; }
.mzp-inline-options label { align-items: center; display: flex; gap: .35rem; }

.mzp-submitbar { align-items: center; background: var(--mzp-ink); border-radius: 16px; color: #fff; display: flex; gap: 1.5rem; justify-content: space-between; margin-top: 1.5rem; padding: 1.15rem 1.25rem; }
.mzp-submitbar > div > span, .mzp-submitbar > div > strong, .mzp-submitbar > div > small { display: block; }
.mzp-submitbar > div > span { font-size: .8rem; opacity: .72; text-transform: uppercase; }
.mzp-submitbar > div > strong { font-size: 1.45rem; line-height: 1.2; white-space: nowrap; }
.mzp-submitbar > div > small { opacity: .72; }
.mzp-submitbar .woocommerce-Price-amount,
.mzp-submitbar .woocommerce-Price-currencySymbol,
.mzp-submitbar bdi { display: inline; white-space: nowrap; }
.mzp-submit { background: var(--mzp-accent); border: 0; border-radius: 10px; color: #fff; cursor: pointer; font: inherit; font-weight: 800; min-height: 50px; padding: .8rem 1.2rem; }
.mzp-submit:hover { background: var(--mzp-accent-dark); color: #fff; }
.mzp-submit:disabled { cursor: wait; opacity: .7; }

.mzp-errors { background: #fff5f5; border: 1px solid #d63638; border-radius: 12px; color: #7a1f20; margin-bottom: 1.25rem; padding: 1rem 1.2rem; }
.mzp-errors:focus { outline: 3px solid rgba(214, 54, 56, .2); }
.mzp-errors ul { margin: .5rem 0 0 1.2rem; }

@media (max-width: 680px) {
  .mzp-fields--two, .mzp-date-options { grid-template-columns: 1fr; }
  .mzp-choice__image, .mzp-choice__placeholder { aspect-ratio: 16 / 8; }
  .mzp-menu__row { align-items: flex-start; }
  .mzp-submitbar { align-items: stretch; flex-direction: column; }
  .mzp-submit { width: 100%; }
}

@media (max-width: 420px) {
  .mzp-menu__row { gap: .6rem; padding: .8rem; }
  .mzp-quantity { grid-template-columns: 34px 38px 34px; }
  .mzp-quantity input { width: 38px; }
}
