.mppo-product-options {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 1rem 0;
}

.mppo-option-group {
  min-width: 0;
}

.mppo-option-group .form-control,
.mppo-option-group .form-select {
  width: 100%;
}

.mppo-configuration-summary,
.mppo-front-error {
  grid-column: 1 / -1;
}

.mppo-option-heading {
  display: flex;
  flex-direction: column;
  gap: .2rem;
  margin-bottom: .45rem;
}

.mppo-option-label {
  font-weight: 600;
}

.mppo-required {
  color: #c00;
}

.mppo-help,
.mppo-price-impact,
.mppo-radio-button small {
  color: #6c757d;
}

.mppo-radio-list {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.mppo-radio-button {
  cursor: pointer;
  margin: 0;
}

.mppo-radio-button input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.mppo-radio-button > span {
  align-items: center;
  border: 1px solid #ced4da;
  border-radius: .25rem;
  display: inline-flex;
  gap: .35rem;
  min-height: 2.5rem;
  padding: .5rem .75rem;
}

.mppo-radio-button input:checked + span {
  border-color: currentColor;
  box-shadow: 0 0 0 1px currentColor;
}

.mppo-radio-button input:focus-visible + span {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

.mppo-number {
  max-width: 12rem;
}

.mppo-front-error {
  margin: .75rem 0 0;
}

.mppo-option-group--presentation-hidden {
  display: none !important;
}

.mppo-engraving-ux {
  margin-top: .55rem;
}

.mppo-symbol-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
}

.mppo-symbol-button {
  align-items: center;
  background: transparent;
  border: 1px solid #ced4da;
  border-radius: .25rem;
  cursor: pointer;
  display: inline-flex;
  font-size: 1rem;
  justify-content: center;
  line-height: 1;
  min-height: 2rem;
  min-width: 2rem;
  padding: .3rem .45rem;
}

.mppo-symbol-button:hover,
.mppo-symbol-button:focus-visible {
  border-color: currentColor;
}

.mppo-symbol-button:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

.mppo-engraving-preview-wrap {
  border: 1px solid #e1e3e5;
  border-radius: .3rem;
  margin-top: .75rem;
  padding: .7rem .85rem;
}

.mppo-engraving-preview-label {
  color: #6c757d;
  display: block;
  font-size: .78rem;
  font-weight: 600;
  margin-bottom: .35rem;
}

.mppo-engraving-preview {
  font-size: 1.35rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.mppo-engraving-preview--empty {
  color: #8a8f94;
}

.mppo-engraving-preview--classic {
  font-family: Georgia, 'Times New Roman', serif;
}

.mppo-engraving-preview--elegant {
  font-family: 'Palatino Linotype', Palatino, 'Book Antiqua', Georgia, serif;
  font-style: italic;
  letter-spacing: .025em;
}

.mppo-engraving-preview--handwriting {
  font-family: 'Snell Roundhand', 'Segoe Script', 'Bradley Hand', cursive;
  font-style: italic;
}

.mppo-engraving-preview--modern {
  font-family: Arial, Helvetica, sans-serif;
  font-weight: 300;
  letter-spacing: .06em;
}

.mppo-engraving-preview--serif {
  font-family: 'Baskerville', 'Times New Roman', Times, serif;
  font-weight: 600;
}

@media (max-width: 767.98px) {
  .mppo-product-options {
    grid-template-columns: 1fr;
  }

  .mppo-configuration-summary,
  .mppo-front-error {
    grid-column: 1;
  }
}

@media (max-width: 575.98px) {
  .mppo-engraving-preview {
    font-size: 1.2rem;
  }
}


/* 1.6.1: live customer-facing configuration summary */
.mppo-configuration-summary {
  background: #f8f9fa;
  border: 1px solid #e1e3e5;
  border-radius: .45rem;
  margin-top: .35rem;
  padding: 1rem 1.05rem;
}

.mppo-configuration-summary__header {
  border-bottom: 1px solid #e1e3e5;
  margin-bottom: .75rem;
  padding-bottom: .65rem;
}

.mppo-configuration-summary__eyebrow {
  color: #6c757d;
  display: block;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .04em;
  margin-bottom: .1rem;
  text-transform: uppercase;
}

.mppo-configuration-summary__title {
  display: block;
  font-size: 1.05rem;
}

.mppo-configuration-summary__list {
  display: grid;
  gap: .42rem;
  margin: 0;
}

.mppo-configuration-summary__row {
  align-items: baseline;
  display: grid;
  gap: .75rem;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
}

.mppo-configuration-summary__row dt,
.mppo-configuration-summary__row dd {
  margin: 0;
}

.mppo-configuration-summary__row dt {
  color: #6c757d;
  font-size: .9rem;
}

.mppo-configuration-summary__row dd {
  font-size: .92rem;
  font-weight: 600;
  overflow-wrap: anywhere;
  text-align: right;
}

.mppo-configuration-summary__empty {
  color: #6c757d;
  font-size: .9rem;
  margin: 0;
}

.mppo-configuration-summary__total {
  align-items: baseline;
  border-top: 1px solid #e1e3e5;
  display: flex;
  justify-content: space-between;
  margin-top: .8rem;
  padding-top: .75rem;
}

.mppo-configuration-summary__total strong {
  font-size: 1.15rem;
}

.mppo-configuration-summary__tax {
  color: #6c757d;
  display: block;
  margin-top: .1rem;
  text-align: right;
}

@media (max-width: 575.98px) {
  .mppo-configuration-summary {
    padding: .85rem .9rem;
  }

  .mppo-configuration-summary__row {
    gap: .35rem;
    grid-template-columns: 1fr;
  }

  .mppo-configuration-summary__row dd {
    text-align: left;
  }
}

/* 1.6.2: OPTION -> OPTIONSGRUPPE -> WERT presentation */
.mppo-option-section {
  grid-column: 1 / -1;
  min-width: 0;
}
.mppo-option-section__title {
  border-bottom: 1px solid #e1e3e5;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .04em;
  margin: .35rem 0 .8rem;
  padding-bottom: .45rem;
  text-transform: uppercase;
}
.mppo-option-section__grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 767.98px) {
  .mppo-option-section__grid { grid-template-columns: 1fr; }
}

/* 1.7.1 – engraving controls are kept inside the matching ring column. */
.mppo-engraving-ux > .mppo-option-group {
  margin-top: .75rem;
  min-width: 0;
}
.mppo-engraving-ux > .mppo-option-group .mppo-option-heading { margin-bottom: .35rem; }
.mppo-engraving-ux > .mppo-option-group .mppo-option-label { font-size: .85rem; font-weight: 600; }
.mppo-engraving-ux > .mppo-option-group .mppo-select { width: 100%; }

/* 1.7.8: cart-only presentation of frozen MPPO configuration */
body#cart .product-line-grid-body:has(.mppo-cart-configuration) > a[data-target^="#product-customizations-modal-"],
body#cart .product-line-grid-body:has(.mppo-cart-configuration) > .js-customization-modal {
  display: none !important;
}

body#cart .mppo-cart-configuration {
  border-top: 1px solid #e5e7eb;
  margin-top: .9rem;
  padding-top: .85rem;
}

body#cart .mppo-cart-configuration__eyebrow {
  color: #0b223f;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .055em;
  margin-bottom: .75rem;
  text-transform: uppercase;
}

body#cart .mppo-cart-configuration__columns {
  display: grid;
  gap: 1.35rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body#cart .mppo-cart-configuration__column h3 {
  color: #0b223f;
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 .55rem;
}

body#cart .mppo-cart-configuration dl {
  margin: 0;
}

body#cart .mppo-cart-configuration__row {
  display: grid;
  gap: .65rem;
  grid-template-columns: minmax(5.5rem, .8fr) minmax(0, 1.2fr);
  padding: .18rem 0;
}

body#cart .mppo-cart-configuration__row dt,
body#cart .mppo-cart-configuration__row dd {
  font-size: .82rem;
  line-height: 1.35;
  margin: 0;
  overflow-wrap: anywhere;
}

body#cart .mppo-cart-configuration__row dt {
  color: #6b7280;
  font-weight: 400;
}

body#cart .mppo-cart-configuration__row dd {
  color: #1f2937;
  font-weight: 500;
}

body#cart .mppo-cart-configuration__shared {
  border-top: 1px solid #eef0f2;
  margin-top: .75rem;
  padding-top: .55rem;
}

@media (max-width: 767.98px) {
  body#cart .mppo-cart-configuration__columns {
    grid-template-columns: 1fr;
    gap: .9rem;
  }
}

/* 1.7.10: Classic 8.2 exposes MPPO through displayCartExtraProductActions.
   Hide it in the action cell until front.js relocates it into the product body. */
body#cart .cart-line-product-actions > .mppo-cart-configuration {
  display: none;
}


/* 1.7.11: wider Moreen cart presentation + larger product image. */
@media (min-width: 768px) {
  body#cart .product-line-grid-left .product-image,
  body#cart .product-line-grid-left .product-image picture {
    display: block;
  }

  body#cart .product-line-grid-left .product-image img {
    width: 140px;
    height: 140px;
    max-width: 100%;
    object-fit: contain;
  }

  body#cart .mppo-cart-configuration--wide {
    clear: both;
    width: 75%;
    margin-left: 25%;
    padding-right: 1rem;
    box-sizing: border-box;
  }

  body#cart .mppo-cart-configuration--wide .mppo-cart-configuration__columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
  }

  body#cart .mppo-cart-configuration--wide .mppo-cart-configuration__row {
    grid-template-columns: minmax(6.5rem, .9fr) minmax(7rem, 1.1fr);
    gap: .85rem;
  }

  body#cart .mppo-cart-configuration--wide .mppo-cart-configuration__row dd {
    overflow-wrap: normal;
    word-break: normal;
  }
}

@media (max-width: 767.98px) {
  body#cart .product-line-grid-left .product-image img {
    width: 100px;
    height: 100px;
    object-fit: contain;
  }

  body#cart .mppo-cart-configuration--wide {
    clear: both;
    width: 100%;
    margin-left: 0;
    padding: .9rem 0 0;
  }
}


/* 1.7.13 cart configured-price discount presentation */
body#cart .mppo-cart-product-discount {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 3px;
}
body#cart .mppo-cart-product-discount .regular-price {
  color: #777;
  text-decoration: line-through;
  font-size: 14px;
  font-weight: 400;
}
body#cart .mppo-cart-product-discount .discount-percentage {
  display: inline-block;
  padding: 4px 9px;
  background: #f39a70;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
}

/* 1.7.14 Moreen cart price palette: black + red */
body#cart .product-line-grid .product-line-info.product-price .current-price .price,
body#cart .product-line-grid .product-line-actions .product-price,
body#cart .product-line-grid .product-line-actions .product-price strong,
body#cart .cart-summary .cart-summary-line .value,
body#cart .cart-summary .cart-total .value {
  color: #111 !important;
}

body#cart .product-line-grid .product-line-info.product-price.has-discount .current-price .price {
  color: #c1121f !important;
}

body#cart .product-line-grid .product-discount .regular-price,
body#cart .mppo-cart-product-discount .regular-price {
  color: #333 !important;
  text-decoration: line-through;
}

body#cart .product-line-grid .product-discount .discount,
body#cart .product-line-grid .product-discount .discount-percentage,
body#cart .mppo-cart-product-discount .discount-percentage {
  background: #c1121f !important;
  color: #fff !important;
  border-color: #c1121f !important;
}
