/* Product purchase presentation. Load after the existing Mainstream product styles. */
.mainstream-theme .ms-product-immersive .ms-product-offer-card.ms-purchase-offer-ready {
  margin: 20px 0 22px;
  padding: 0;
  background: transparent;
  border: 0;
  border-top: 1px solid #d2d8c9;
  border-bottom: 1px solid #d2d8c9;
  border-radius: 0;
  box-shadow: none;
}
.mainstream-theme .ms-product-immersive .ms-purchase-offer-ready .ms-product-offer-details { margin: 0; }
.mainstream-theme .ms-product-immersive .ms-purchase-offer-ready summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 5px 14px;
  padding: 16px 0;
  min-height: 0;
  color: #263b31;
  cursor: pointer;
  list-style: none;
}
.mainstream-theme .ms-product-immersive .ms-purchase-offer-ready summary::-webkit-details-marker { display: none; }
.mainstream-theme .ms-product-immersive .ms-purchase-offer-ready .ms-product-offer-title {
  display: block;
  margin: 0;
  font-family: "DM Sans", "Instrument Sans", sans-serif;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1.2;
}
.mainstream-theme .ms-product-immersive .ms-purchase-offer-ready .ms-product-offer-action {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  line-height: 1.5;
  color: #626f60;
}
.mainstream-theme .ms-product-immersive .ms-purchase-offer-ready .ms-product-offer-action svg {
  position: static;
  display: block;
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  margin: 0;
  fill: none;
}
.mainstream-theme .ms-product-immersive .ms-purchase-offer-ready .ms-product-offer-message {
  grid-column: 1 / -1;
  display: block;
  margin: 0;
  font-family: "DM Sans", "Instrument Sans", sans-serif;
  font-size: 13px;
  font-weight: 400;
  color: #626f60;
  line-height: 1.5;
  letter-spacing: 0;
}
.mainstream-theme .ms-product-immersive .ms-purchase-offer-ready summary:hover .ms-product-offer-action { color: #263b31; }
.mainstream-theme .ms-product-immersive .ms-purchase-offer-ready summary:focus-visible { outline: 2px solid #365542; outline-offset: 5px; }
.mainstream-theme .ms-product-immersive .ms-purchase-offer-ready details[open] .ms-product-offer-action svg { transform: rotate(180deg); }
.mainstream-theme .ms-product-immersive .ms-purchase-offer-ready .ms-product-offer-conditions { padding: 0 0 15px; font-size: 12px; line-height: 1.6; color: #626f60; }
.mainstream-theme .ms-product-immersive .ms-purchase-offer-ready .ms-product-offer-conditions p { font-size: 12px; line-height: 1.6; margin: 0 0 8px; }

/* The native select remains the fallback until mainstream-product.js marks the group ready. */
.mainstream-theme .ms-product-immersive #product_form .ms-format-group { gap: 10px 12px; }
.mainstream-theme .ms-product-immersive #product_form .ms-format-group:not(.ms-format-ready) .ms-format-choice { display: none; }
.mainstream-theme .ms-product-immersive #product_form .ms-format-group.ms-format-ready .ms-format-choice.btn-variant {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 84px;
  min-height: 48px;
  margin: 0;
  padding: 12px 20px;
  background: #f0eee5;
  border: 0;
  border-radius: 12px;
  box-shadow: 3px 3px 7px #cfd1c4, -3px -3px 7px #ffffff;
  color: #4c5d4b;
  font-size: 16px;
  line-height: 1.2;
  font-weight: 500;
  transition: transform .16s ease, box-shadow .16s ease;
  cursor: pointer;
}
.mainstream-theme .ms-product-immersive #product_form .ms-format-group.ms-format-ready .ms-format-choice.btn-variant.selected {
  background: #365542;
  color: #fffdf7;
  font-weight: 700;
  box-shadow: inset 3px 3px 6px #243c2d, inset -3px -3px 6px #496c55;
}
.mainstream-theme .ms-product-immersive #product_form .ms-format-group.ms-format-ready .ms-format-choice.btn-variant.selected::after {
  content: "";
  position: absolute;
  top: 7px;
  right: 8px;
  width: 7px;
  height: 4px;
  border-left: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(-45deg);
}
.mainstream-theme .ms-product-immersive #product_form .ms-format-group.ms-format-ready .ms-format-choice.btn-variant:not(.selected):not(.btn-variant-no-stock):not(:disabled):not([aria-disabled="true"]):hover {
  transform: translateY(-1px);
  box-shadow: 4px 4px 8px #cfd1c4, -4px -4px 8px #ffffff;
}
.mainstream-theme .ms-product-immersive #product_form .ms-format-group.ms-format-ready .ms-format-choice.btn-variant:not(:disabled):not([aria-disabled="true"]):active {
  transform: none;
  box-shadow: inset 3px 3px 6px #c6ccbe, inset -3px -3px 6px #ffffff;
}
.mainstream-theme .ms-product-immersive #product_form .ms-format-group.ms-format-ready .ms-format-choice.btn-variant.selected:not(:disabled):not([aria-disabled="true"]):active {
  box-shadow: inset 3px 3px 6px #243c2d, inset -3px -3px 6px #496c55;
}
.mainstream-theme .ms-product-immersive #product_form .ms-format-choice.btn-variant:focus-visible { outline: 2px solid #365542; outline-offset: 5px; }
.mainstream-theme .ms-product-immersive #product_form .ms-format-selection { margin-top: 4px; }
.mainstream-theme .ms-product-immersive #product_form .ms-format-group.ms-format-ready .ms-format-choice.btn-variant:is(:disabled, [aria-disabled="true"]) { box-shadow: none; cursor: default; opacity: .55; }

/* Keep native action-row children and status messages; the extra rows span the grid. */
.mainstream-theme #product_form .ms-purchase-actions {
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr);
  align-items: start;
  column-gap: 16px;
  row-gap: 0;
  margin: 0 0 4px;
  padding: 0;
  width: 100%;
}
.mainstream-theme #product_form .ms-purchase-actions > .js-product-quantity-container,
.mainstream-theme #product_form .ms-purchase-actions > .js-buy-button-container {
  width: auto;
  max-width: none;
  min-width: 0;
  padding: 0 !important;
  margin: 0;
  flex: none;
}
.mainstream-theme #product_form .ms-purchase-actions > :not(.js-product-quantity-container):not(.js-buy-button-container) {
  grid-column: 1 / -1;
  min-width: 0;
  max-width: 100%;
}
.mainstream-theme #product_form .ms-purchase-actions > .col-12:not(.js-buy-button-container) { padding-left: 0; padding-right: 0; }
.mainstream-theme #product_form .ms-purchase-actions .js-quantity { margin: 0; }
.mainstream-theme #product_form .ms-purchase-actions .form-quantity {
  display: grid !important;
  grid-template-columns: 36px minmax(0, 1fr) 36px;
  align-items: center;
  gap: 0;
  width: 100%;
  height: 58px;
  min-height: 58px;
  padding: 0;
  margin: 0;
  border: 1px solid #d0d4c6;
  border-radius: 14px;
  background: transparent;
  box-shadow: none;
}
.mainstream-theme #product_form .ms-purchase-actions .form-control-container { min-width: 0; width: 100%; height: 100%; padding: 0; display: flex; align-items: center; justify-content: center; }
.mainstream-theme #product_form .ms-purchase-actions .js-quantity-input {
  width: 100%;
  height: 100%;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  text-align: center;
  color: #263b31;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  appearance: textfield;
  -moz-appearance: textfield;
}
.mainstream-theme #product_form .ms-purchase-actions .js-quantity-input::-webkit-inner-spin-button,
.mainstream-theme #product_form .ms-purchase-actions .js-quantity-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.mainstream-theme #product_form .ms-purchase-actions .ms-quantity-button {
  display: flex;
  align-items: center;
  justify-content: center;
  position: static;
  width: 100%;
  height: 100%;
  min-width: 0;
  padding: 0;
  margin: 0;
  flex: none;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: #263b31;
  line-height: 1;
  cursor: pointer;
}
/* Only our path-based icons use fill:none. Native sprite <use> icons retain their fill. */
.mainstream-theme #product_form .ms-purchase-actions .ms-quantity-button > svg { display: block; position: static; width: 16px; height: 16px; margin: 0; fill: none; }
.mainstream-theme #product_form .ms-purchase-actions .ms-quantity-button:disabled { opacity: .4; cursor: default; }
.mainstream-theme #product_form .ms-purchase-actions .ms-quantity-button:focus-visible,
.mainstream-theme #product_form .ms-purchase-actions .js-quantity-input:focus-visible { outline: 2px solid #365542; outline-offset: 2px; }
.mainstream-theme #product_form .ms-purchase-actions .js-addtocart[type="submit"],
.mainstream-theme #product_form .ms-purchase-actions .js-addtocart-placeholder {
  height: 58px;
  min-height: 58px;
  width: 100%;
  padding: 0 20px;
  border: 0;
  border-radius: 14px;
  background: #365542;
  color: #fffdf7;
  font-family: "DM Sans", "Instrument Sans", sans-serif;
  font-size: 16px;
  line-height: 1;
  font-weight: 700;
  box-shadow: 5px 6px 12px #bdc3b5, -5px -5px 12px #ffffff, inset 0 1px 1px #82967c;
}
.mainstream-theme #product_form .ms-purchase-actions .js-addtocart-placeholder { line-height: 58px; }
.mainstream-theme #product_form .ms-purchase-actions .js-addtocart[type="submit"] { cursor: pointer; transition: transform .18s ease, box-shadow .18s ease; }
.mainstream-theme #product_form .ms-purchase-actions .js-addtocart[type="submit"]:not(:disabled):not(.nostock):hover { transform: translateY(-1px); background: #304d3b; box-shadow: 6px 7px 14px #b7c0ad, -5px -5px 12px #ffffff, inset 0 1px 1px #82967c; }
.mainstream-theme #product_form .ms-purchase-actions .js-addtocart[type="submit"]:not(:disabled):not(.nostock):active { transform: none; box-shadow: inset 4px 4px 8px #243c2d, inset -3px -3px 7px #496c55; }
.mainstream-theme #product_form .ms-purchase-actions .js-addtocart[type="submit"]:focus-visible { outline: 2px solid #365542; outline-offset: 5px; }
.mainstream-theme #product_form .ms-purchase-actions .js-addtocart[type="submit"]:is(:disabled, .nostock) { background: #d9dfd2; color: #626f60; box-shadow: none; cursor: default; transform: none; opacity: 1; }
@media (max-width: 767px) {
  .mainstream-theme #product_form .ms-purchase-actions { grid-template-columns: 108px minmax(0, 1fr); column-gap: 14px; }
  .mainstream-theme #product_form .ms-purchase-actions .form-quantity { grid-template-columns: 34px minmax(0, 1fr) 34px; }
}
@media (prefers-reduced-motion: reduce) {
  .mainstream-theme .ms-product-immersive #product_form .ms-format-group.ms-format-ready .ms-format-choice.btn-variant,
  .mainstream-theme #product_form .ms-purchase-actions .js-addtocart[type="submit"] { transition: none; }
}

/* Product only. Native controls/results are retained for errors, restrictions,
   other services and the no-JavaScript fallback. */
.mainstream-theme #product_form #product-shipping-container.ms-delivery-enhanced{margin:20px 0 24px;padding:0;border:0;color:#263b31;font-family:"DM Sans","Instrument Sans",sans-serif;text-align:left}
.mainstream-theme #product_form .ms-delivery-summary [hidden],
.mainstream-theme #product_form .ms-delivery-summary[hidden]{display:none!important}
.mainstream-theme #product_form .ms-delivery-summary p{margin:0}
.mainstream-theme #product_form .ms-delivery-heading{display:flex;align-items:center;gap:6px}
.mainstream-theme #product_form .ms-delivery-title{color:#2c6743;font-size:16px;font-weight:600;line-height:1.4;letter-spacing:0}
.mainstream-theme #product_form .ms-delivery-info{display:inline-flex;align-items:center;justify-content:center;flex:0 0 26px;width:26px;height:26px;margin:-2px 0;padding:0;border:0;border-radius:50%;background:transparent;color:#6c7867;cursor:pointer}
.mainstream-theme #product_form .ms-delivery-info svg{display:block}
.mainstream-theme #product_form .ms-delivery-info:hover{color:#263b31;background:#e1e6dc}
.mainstream-theme #product_form .ms-delivery-summary button:focus-visible{outline:2px solid #365542;outline-offset:3px}
.mainstream-theme #product_form .ms-delivery-countdown{margin-top:3px;font-size:12px;line-height:1.5;color:#626f60;letter-spacing:0}
.mainstream-theme #product_form .ms-delivery-countdown strong{color:#394b3c;font-size:inherit;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.mainstream-theme #product_form .ms-delivery-route{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px;font-size:12px;line-height:1.5;color:#626f60}
.mainstream-theme #product_form .ms-delivery-service{min-width:0}
.mainstream-theme #product_form .ms-delivery-change{display:inline-flex;flex-shrink:0;align-items:center;gap:7px;margin:0;padding:3px 0 3px 6px;border:0;background:transparent;color:#55634f;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#a0aa98}
.mainstream-theme #product_form .ms-delivery-options{display:inline-flex;align-items:center;gap:7px;min-width:0;margin:0;padding:3px 0;border:0;background:transparent;color:#626f60;font:inherit;text-align:left;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#a0aa98;cursor:pointer}
.mainstream-theme #product_form .ms-delivery-options svg{flex:0 0 10px}
.mainstream-theme #product_form .ms-delivery-options[aria-expanded="true"] svg{transform:rotate(180deg)}
.mainstream-theme #product_form .ms-delivery-options:disabled{cursor:default;text-decoration:none}
.mainstream-theme #product_form .ms-delivery-options:disabled svg{visibility:hidden}
.mainstream-theme #product_form .ms-delivery-conditions{margin-top:11px;max-width:54ch;font-size:12px;line-height:1.6;color:#626f60}
.mainstream-theme #product_form .ms-delivery-native-note{display:block;margin-top:6px}
.mainstream-theme #product_form .ms-delivery-enhanced:not(.ms-delivery-has-quote):not(.ms-delivery-loading) .ms-delivery-summary{margin-bottom:10px}
.mainstream-theme #product_form .ms-delivery-has-quote .js-shipping-calculator-head,
.mainstream-theme #product_form .ms-delivery-loading .js-shipping-calculator-head,
.mainstream-theme #product_form .ms-delivery-loading .js-shipping-calculator-response,
.mainstream-theme #product_form .ms-delivery-has-quote:not(.ms-delivery-options-open) .js-shipping-calculator-response,
.mainstream-theme #product_form .ms-delivery-pending .js-shipping-calculator-response{display:none!important}
/* Native slideUp skips its final inline display:none when computed display is
   already none. Conceal this spinner without interfering with that lifecycle. */
.mainstream-theme #product_form .ms-delivery-loading .js-shipping-calculator-spinner{position:absolute!important;visibility:hidden!important;top:0;left:0;width:1px;height:1px;overflow:hidden;pointer-events:none}
.mainstream-theme #product_form .ms-delivery-options-open .js-shipping-calculator-response{margin-top:12px}
.mainstream-theme #product_form .ms-delivery-enhanced .js-shipping-calculator-form .form-label{display:none}
.mainstream-theme #product_form .ms-delivery-enhanced .js-shipping-input{min-height:40px;border-radius:7px;background:transparent;font-size:12px}
.mainstream-theme #product_form .ms-delivery-enhanced .js-calculate-shipping{min-height:40px;font-size:12px}
@media(max-width:767px){.mainstream-theme #product_form #product-shipping-container.ms-delivery-enhanced{margin:18px 0 22px}}

/* The photo viewer uses the existing Fancybox overlay. Keep the native media as
   a bounded fallback when its lightbox is unavailable or the product has video. */
.mainstream-theme .ms-product-immersive .ms-pdp-more-media > summary {
  font-size: 12px;
  line-height: 1.5;
}
.mainstream-theme .ms-product-immersive .ms-pdp-more-media > summary:focus-visible {
  outline: 2px solid #365542;
  outline-offset: 3px;
}
.mainstream-theme .ms-product-immersive .ms-pdp-more-media > summary:not(:focus-visible) { outline: none; }
.mainstream-theme .ms-product-immersive .ms-pdp-more-media .ms-pdp-native-media {
  max-height: min(60vh, 560px);
  max-height: min(60svh, 560px);
  overflow: auto;
  overscroll-behavior: contain;
}
.mainstream-theme .ms-product-immersive .ms-pdp-more-media.ms-pdp-lightbox-ready > summary { cursor: zoom-in; }

/* Shared product hierarchy: identity, price, format, delivery, purchase. */
.mainstream-theme .ms-product-immersive .ms-product-heading { margin-bottom: 24px; }
.mainstream-theme .ms-product-immersive .ms-product-identity { margin-bottom: 12px; }
.mainstream-theme .ms-product-immersive .ms-product-title {
  font-size: clamp(36px, 3.2vw, 46px);
  line-height: 1.08;
}
.mainstream-theme .ms-product-immersive .ms-payment-value { font-size: 32px; }
.mainstream-theme .ms-product-immersive .ms-payment-before { margin-bottom: 7px; }
.mainstream-theme .ms-product-immersive #btn-installments {
  display: inline-block;
  margin-top: 8px;
  font-size: 12px;
}
.mainstream-theme .ms-product-immersive #product_form {
  margin-top: 24px !important;
  padding-top: 22px;
  border-top: 1px solid #d2d8c9;
}
.mainstream-theme .ms-product-immersive #product_form .ms-format-group.ms-format-ready {
  gap: 12px;
  text-align: left !important;
}
.mainstream-theme .ms-product-immersive #product_form .ms-format-group.ms-format-ready .ms-format-label {
  display: block;
  flex: 0 0 100%;
  margin: 0 0 4px;
  color: #263b31;
  font-size: 14px;
  line-height: 1.4;
  font-weight: 600;
}
.mainstream-theme .ms-product-immersive #product_form .ms-format-group.ms-format-ready .ms-format-heading { display: none; }
.mainstream-theme .ms-product-immersive #product_form .ms-format-group.ms-format-ready .ms-format-choice.btn-variant {
  flex-direction: column;
  gap: 5px;
  min-width: 100px;
  min-height: 70px;
  padding: 11px 18px;
  font-size: 18px;
}
.mainstream-theme .ms-product-immersive #product_form .ms-format-group.ms-format-ready .ms-format-choice::before {
  font-size: 11px;
  line-height: 1.2;
  font-weight: 500;
  letter-spacing: .02em;
}
.mainstream-theme .ms-product-immersive #product_form .ms-format-choice[data-ms-format="decant"]::before { content: "Decant"; }
.mainstream-theme .ms-product-immersive #product_form .ms-format-choice[data-ms-format="bottle"]::before { content: "Frasco"; }
.mainstream-theme .ms-product-immersive #product_form .ms-format-group.ms-format-ready .ms-format-unavailable {
  width: auto;
  min-width: 100px;
  min-height: 70px;
  padding: 9px 18px;
  border-radius: 12px;
  flex-direction: column;
  gap: 3px;
}
.mainstream-theme .ms-product-immersive #product_form .ms-format-group.ms-format-ready .ms-format-unavailable::before { content: "Frasco"; font-size: 11px; }
.mainstream-theme .ms-product-immersive #product_form .ms-format-group.ms-format-ready .ms-format-unavailable span { border: 0; padding: 0; }
.mainstream-theme .ms-product-immersive #product_form .ms-format-selection {
  margin-top: 4px;
  font-size: 12px;
  line-height: 1.5;
  text-align: left;
}
.mainstream-theme .ms-product-immersive .ms-product-offer:has(.ms-purchase-offer-ready:not([hidden])) + #product_form {
  margin-top: 0 !important;
  padding-top: 0;
  border-top: 0;
}
@media (max-width: 359px) {
  .mainstream-theme .ms-product-immersive #product_form .ms-format-group.ms-format-ready .ms-format-choice.btn-variant {
    min-width: 80px;
    padding-inline: 10px;
  }
}
/* Native variant changes retain control of the notice's display state. */
.mainstream-theme .ms-product-immersive #product_form .ms-product-stock-notice {
  margin: 2px 0 20px !important;
  padding: 5px 0 5px 11px;
  border-left: 2px solid #ed6384;
  color: #b83459 !important;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  text-align: left !important;
}
.mainstream-theme .ms-product-immersive #product_form #product-shipping-container.ms-delivery-enhanced {
  margin: 22px 0 24px;
  padding-top: 20px;
  border-top: 1px solid #d2d8c9;
}
.mainstream-theme .ms-product-immersive #product_form .ms-delivery-change::before {
  content: "CEP";
  color: #626f60;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .03em;
}
@media (max-width: 767px) {
  .mainstream-theme .ms-product-immersive .ms-product-heading { margin-bottom: 20px; }
  .mainstream-theme .ms-product-immersive .ms-product-title { font-size: 36px; }
  .mainstream-theme .ms-product-immersive #product_form .ms-format-group.ms-format-ready { gap: 10px; }
  .mainstream-theme .ms-product-immersive #product_form .ms-format-group.ms-format-ready .ms-format-choice.btn-variant {
    min-width: min(88px, 24vw);
    padding-inline: 14px;
  }
}
