:root {
  --mz-orange: #f58200;
  --mz-ink: #171717;
  --mz-muted: #686868;
  --mz-line: #e6e1db;
  --mz-soft: #fffaf4;
}

/* The card follows the purchase button and uses the form's neutral style. */
.mz-bestpreis-card {
  display: block;
  grid-column: 1 / -1 !important;
  clear: both;
  width: 100%;
  max-width: none;
  min-width: 0;
  box-sizing: border-box;
  margin: 20px 0 0;
  padding: 0;
  border: 1px solid #dedede;
  border-radius: 10px;
  background: #f8f8f8;
  color: #333;
  font-family: inherit;
  font-size: 16px;
  line-height: 1.5;
  box-shadow: none;
  overflow-wrap: anywhere;
}
.mz-bestpreis-card__content { min-width: 0; padding: 20px 0 0; }
.mz-bestpreis-card__eyebrow,
.mz-bestpreis-eyebrow {
  display: block;
  color: #454545;
  font-family: inherit;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .03em;
}
.mz-bestpreis-card__eyebrow { margin: 0 20px 8px; }
.mz-bestpreis-card h3 {
  margin: 0 20px 12px;
  color: #333;
  font-family: inherit;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.35;
}
.mz-bestpreis-card p { margin: 0 20px 12px; color: #333; font: inherit; }
.mz-bestpreis-card small {
  display: block;
  margin: 0 20px;
  color: #454545;
  font-size: 16px;
  line-height: 1.5;
}
.mz-bestpreis-card__footer { display: block; margin-top: 16px; }
.mz-bestpreis-card__status { display: block; margin: 0 20px 16px; color: #454545; font-size: 16px; line-height: 1.5; }
.mz-bestpreis-card__button,
.mz-bestpreis-submit {
  min-height: 52px;
  padding: 12px 16px;
  border: 1px solid #171717;
  border-radius: 10px;
  background: #171717;
  color: #fff;
  font-family: inherit;
  font-size: 16px;
  line-height: 1.5;
  font-weight: 700;
  white-space: normal;
  cursor: pointer;
}
.mz-bestpreis-card__button {
  display: block;
  width: calc(100% + 2px);
  max-width: none;
  box-sizing: border-box;
  margin: 0 -1px -1px;
}
.mz-bestpreis-card__button:disabled { border-color: #ddd; background: #ddd; color: #454545; cursor: not-allowed; }
.mz-bestpreis-card__button:focus-visible { outline: 2px solid #333; outline-offset: 3px; }
.mz-bestpreis-card.is-ready .mz-bestpreis-card__status { color: #333; }

.mz-bestpreis-modal[aria-hidden="true"] { display: none; }
.mz-bestpreis-modal[aria-hidden="false"] { display: block; }

.mz-bestpreis-modal {
  position: fixed;
  z-index: 999999;
  inset: 0;
}

.mz-bestpreis-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .62);
  backdrop-filter: blur(3px);
}

.mz-bestpreis-dialog {
  position: relative;
  width: min(540px, calc(100% - 32px));
  max-height: calc(100vh - 40px);
  margin: 20px auto;
  padding: 30px;
  overflow-y: auto;
  border-radius: 16px;
  background: #fff;
  color: var(--mz-ink);
  font-family: inherit;
  font-size: 14px;
  line-height: 1.5;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .24);
}

.mz-bestpreis-dialog__close {
  position: absolute;
  top: 12px;
  right: 14px;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #555;
  font-size: 30px;
  cursor: pointer;
}

.mz-bestpreis-dialog h2 {
  margin: 0 40px 8px 0;
  font-size: 25px;
}

.mz-bestpreis-dialog__intro {
  margin: 0 0 18px;
  color: var(--mz-muted);
  font-size: 14px;
  line-height: 1.55;
}

.mz-bestpreis-summary,
.mz-bestpreis-rule {
  padding: 13px 15px;
  border-radius: 9px;
  background: var(--mz-soft);
}

.mz-bestpreis-summary span,
.mz-bestpreis-summary strong,
.mz-bestpreis-rule strong,
.mz-bestpreis-rule span {
  display: block;
}

.mz-bestpreis-summary span {
  margin-bottom: 3px;
  color: var(--mz-muted);
  font-size: 12px;
}

.mz-bestpreis-summary strong { font-size: 14px; }

.mz-bestpreis-form { margin-top: 18px; }

.mz-bestpreis-form > label {
  display: block;
  margin: 14px 0 6px;
  font-size: 14px;
  font-weight: 700;
}

.mz-bestpreis-form input[type="url"],
.mz-bestpreis-form select,
.mz-bestpreis-price-input {
  width: 100%;
  min-height: 44px;
  border: 1px solid #ccc7c1;
  border-radius: 7px;
  background: #fff;
}

.mz-bestpreis-form input[type="url"] {
  padding: 0 12px;
  font: inherit;
}

.mz-bestpreis-form select {
  padding: 0 12px;
  font: inherit;
}

.mz-bestpreis-price-input {
  display: flex;
  align-items: center;
}

.mz-bestpreis-price-input input {
  flex: 1;
  min-width: 0;
  padding: 0 12px;
  border: 0;
  outline: 0;
  font: inherit;
}

.mz-bestpreis-price-input span {
  padding-right: 12px;
  color: var(--mz-muted);
  font-size: 14px;
}

.mz-bestpreis-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 16px 0;
  color: #999;
  font-size: 11px;
}

.mz-bestpreis-divider::before,
.mz-bestpreis-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--mz-line);
}

.mz-bestpreis-upload {
  display: block;
  margin: 0 !important;
  padding: 14px;
  border: 1px dashed #bcb6af;
  border-radius: 8px;
  text-align: center;
  cursor: pointer;
}

.mz-bestpreis-upload span {
  display: block;
  margin-top: 3px;
  color: var(--mz-muted);
  font-size: 12px;
  font-weight: 400;
}

#mz-competitor-image {
  display: none !important;
}

.mz-bestpreis-rule {
  margin-top: 18px;
  border-left: 3px solid var(--mz-orange);
}

.mz-bestpreis-rule strong { margin-bottom: 3px; font-size: 14px; }
.mz-bestpreis-rule span { color: #555; font-size: 13px; line-height: 1.5; }
.mz-bestpreis-submit { width: 100%; margin-top: 18px; }
.mz-bestpreis-preview-note { margin: 8px 0 0; color: #8a8a8a; font-size: 12px; line-height: 1.45; text-align: center; }
.mz-bestpreis-field-note { margin: 5px 0 0; color: var(--mz-muted); font-size: 12px; line-height: 1.4; }
.mz-bestpreis-result {
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid #d9d4ce;
  border-radius: 8px;
  background: #f7f7f7;
  color: #333;
  font-size: 14px;
  line-height: 1.5;
}
.mz-bestpreis-result.is-offer,
.mz-bestpreis-result.is-already_better { border-color: #a9cfb2; background: #f0faf2; color: #245f33; }
.mz-bestpreis-result.is-counteroffer { border-color: #f0c27c; background: #fff8eb; color: #79510f; }
.mz-bestpreis-result.is-foreign,
.mz-bestpreis-result.is-error { border-color: #e2aaaa; background: #fff2f2; color: #832b2b; }
.mz-bestpreis-result__message {
  margin: 0;
  font: inherit;
}
.mz-bestpreis-accept {
  width: 100%;
  min-height: 42px;
  margin-top: 12px;
  padding: 9px 14px;
  border: 0;
  border-radius: 7px;
  background: var(--mz-orange);
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.mz-bestpreis-accept:disabled { opacity: .65; cursor: wait; }
.mz-bestpreis-alternative {
  display: block;
  margin: 10px auto 0;
  padding: 4px 8px;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-decoration: underline;
  cursor: pointer;
}
.mz-bestpreis-result__details {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 5px 10px;
  margin: 12px 0 0;
  padding-top: 10px;
  border-top: 1px solid currentColor;
}
.mz-bestpreis-result__details dt { font-weight: 700; }
.mz-bestpreis-result__details dd { margin: 0; overflow-wrap: anywhere; }
.mz-bestpreis-savings-row th,
.mz-bestpreis-savings-row td { color: #23713a; font-weight: 700; }
body.mz-bestpreis-open { overflow: hidden; }

@media (max-width: 620px) {
  .mz-bestpreis-card h3 { font-size: 20px; }
  .mz-bestpreis-card__icon { display: none; }
  .mz-bestpreis-card__footer { align-items: stretch; flex-direction: column; }
  .mz-bestpreis-dialog { padding: 24px 18px; }
}

/* Match the site font and keep request text readable on small screens. */
.mz-bestpreis-dialog { font-size: 16px; }
.mz-bestpreis-dialog__intro,
.mz-bestpreis-summary span,
.mz-bestpreis-summary strong,
.mz-bestpreis-form > label,
.mz-bestpreis-rule strong,
.mz-bestpreis-rule span,
.mz-bestpreis-preview-note,
.mz-bestpreis-field-note,
.mz-bestpreis-upload span,
.mz-bestpreis-result,
.mz-bestpreis-divider,
.mz-bestpreis-price-input span { font-size: 16px; line-height: 1.5; color: #454545; }
.mz-bestpreis-dialog input,
.mz-bestpreis-dialog select,
.mz-bestpreis-dialog button { font-family: inherit; }

/* Keep spacing even when the theme resets margins on form children. */
#mz-bestpreis-card.mz-bestpreis-card {
  margin: 0 !important;
  padding: 24px 0 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
#mz-bestpreis-card .mz-bestpreis-card__content {
  box-sizing: border-box;
  padding: 20px;
  border: 1px solid #dedede;
  border-radius: 10px;
  background: #f8f8f8;
}
#mz-bestpreis-card h3 { margin: 0; }
#mz-bestpreis-card .mz-bestpreis-card__status { margin: 12px 0 0; }
#mz-bestpreis-card .mz-bestpreis-card__status[hidden] { display: none !important; }
#mz-bestpreis-card .mz-bestpreis-card__footer { margin: 0 !important; padding: 12px 0 0; }
#mz-bestpreis-card .mz-bestpreis-card__button { width: 100% !important; margin: 0 !important; }

/* Quiet heading; incomplete-selection guidance belongs to the button. */
#mz-bestpreis-card h3 {
  font-family: inherit;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.5;
}
#mz-bestpreis-card .mz-bestpreis-card__button-label { display: block; }
#mz-bestpreis-card .mz-bestpreis-card__button .mz-bestpreis-card__status {
  display: block;
  margin: 4px 0 0;
  color: inherit;
  font-family: inherit;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: normal;
  text-transform: none;
}

/* The question is text, not a second button or field. */
#mz-bestpreis-card .mz-bestpreis-card__content {
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  text-align: center;
}
#mz-bestpreis-card .mz-bestpreis-card__button .mz-bestpreis-card__button-label,
#mz-bestpreis-card .mz-bestpreis-card__button .mz-bestpreis-card__status {
  font: inherit !important;
  letter-spacing: inherit !important;
  text-transform: inherit !important;
  color: inherit;
}

/* Match a form label, aligned with the left edge of the action button. */
#mz-bestpreis-card .mz-bestpreis-card__content { text-align: left; }
#mz-bestpreis-card h3 {
  text-align: left;
  text-transform: uppercase !important;
  font-family: inherit;
  font-size: 14px;
  font-weight: 400;
}

/* Compact request window, matching the neutral product form. */
.mz-bestpreis-dialog { box-sizing: border-box; width: min(540px, calc(100% - 32px)); color: #333; font-family: inherit; font-size: 16px; line-height: 1.5; }
.mz-bestpreis-dialog h2 { font-family: inherit; font-size: 22px; font-weight: 400; line-height: 1.4; margin-bottom: 20px; }
.mz-bestpreis-dialog .mz-bestpreis-summary { padding: 0 0 16px; border-radius: 0; border-bottom: 1px solid #dedede; background: transparent; }
.mz-bestpreis-dialog .mz-bestpreis-summary strong { font-weight: 400; color: #333; }
.mz-bestpreis-dialog .mz-bestpreis-form > label { margin: 20px 0 8px; color: #333; font-family: inherit; font-size: 16px; font-weight: 400; line-height: 1.5; }
.mz-bestpreis-dialog .mz-bestpreis-price-input,
.mz-bestpreis-dialog input[type="url"] { box-sizing: border-box; min-height: 48px; border: 1px solid #dedede; border-radius: 10px; background: #f8f8f8; }
.mz-bestpreis-dialog .mz-bestpreis-price-input input { width: 100%; box-sizing: border-box; min-height: 46px; background: transparent; box-shadow: none; border: 0; border-radius: 10px; font: inherit; }
.mz-bestpreis-dialog .mz-bestpreis-price-input:focus-within,
.mz-bestpreis-dialog input[type="url"]:focus-visible { outline: 2px solid #555; outline-offset: 2px; }
.mz-bestpreis-dialog .mz-bestpreis-field-note { margin: 6px 0 0; font-size: 16px; line-height: 1.5; color: #454545; }
.mz-bestpreis-conditions { margin: 20px 0 0; color: #454545; font-size: 16px; line-height: 1.5; }
.mz-bestpreis-conditions summary { cursor: pointer; }
.mz-bestpreis-conditions p { margin: 10px 0 0; font: inherit; }
.mz-bestpreis-dialog .mz-bestpreis-submit { box-sizing: border-box; min-height: 52px; width: 100%; margin: 20px 0 0; }
@media (max-width: 620px) { .mz-bestpreis-dialog h2 { font-size: 20px; } }

/* Consistent readable alignment, including the theme's mobile overrides. */
#mz-bestpreis-modal .mz-bestpreis-dialog,
#mz-bestpreis-modal .mz-bestpreis-dialog h2,
#mz-bestpreis-modal .mz-bestpreis-summary,
#mz-bestpreis-modal .mz-bestpreis-form > label,
#mz-bestpreis-modal .mz-bestpreis-field-note,
#mz-bestpreis-modal .mz-bestpreis-conditions,
#mz-bestpreis-modal .mz-bestpreis-conditions p,
#mz-bestpreis-modal .mz-bestpreis-result,
#mz-bestpreis-modal .mz-bestpreis-result p,
#mz-bestpreis-modal .mz-bestpreis-result dt,
#mz-bestpreis-modal .mz-bestpreis-result dd { text-align: left !important; }
#mz-bestpreis-modal .mz-bestpreis-dialog button { text-align: center !important; }
#mz-bestpreis-modal .mz-bestpreis-dialog__close { width: 44px; height: 44px; }
#mz-bestpreis-modal .mz-bestpreis-submit { font-size: 16px; line-height: 1.5; }
#mz-bestpreis-modal .mz-bestpreis-result.is-foreign,
#mz-bestpreis-modal .mz-bestpreis-result.is-error { color: #333; }
#mz-bestpreis-modal .mz-bestpreis-result__details { border-top-color: #dedede; }
#mz-bestpreis-modal .mz-bestpreis-result__details dd,
#mz-bestpreis-modal .mz-bestpreis-result__address { color: #333; }
#mz-bestpreis-modal .mz-bestpreis-result__disclosure { margin-top: 12px; font: inherit; }
#mz-bestpreis-modal .mz-bestpreis-result__disclosure summary { cursor: pointer; text-align: left; }
#mz-bestpreis-modal .mz-bestpreis-result__disclosure summary:focus-visible { outline: 2px solid #555; outline-offset: 3px; }
#mz-bestpreis-modal .mz-bestpreis-result__address { margin: 8px 0 0; font: inherit; overflow-wrap: anywhere; }
@media (max-width: 480px) {
  #mz-bestpreis-modal .mz-bestpreis-result__details { grid-template-columns: 100px minmax(0, 1fr); }
}
