/* R4.8.5.2: keep OPA home product-card design and use a compact cart button. */
.opa-r4852-purchase-row { display:flex; align-items:center; justify-content:space-between; gap:.85rem; }
.opa-r4852-purchase-row .opa-r112-product-price { min-width:0; }
.opa-r4852-cart-form { margin:0; padding:0; flex:0 0 auto; }
.opa-r4852-cart-button { display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; width:44px; height:44px; padding:10px; border:1px solid #1d5e91; border-radius:50%; background:#1d5e91; color:#fff; text-decoration:none; cursor:pointer; transition:background .15s ease, box-shadow .15s ease; }
.opa-r4852-cart-button svg { display:block; width:22px; height:22px; }
.opa-r4852-cart-button:hover,.opa-r4852-cart-button:focus-visible { background:#123f65; color:#fff; box-shadow:0 0 0 3px rgba(29,94,145,.13); }
.opa-r4852-cart-button:disabled { opacity:.6; cursor:progress; }
.opa-r4852-cart-button--details { background:#fff; color:#1d5e91; }
.opa-r4852-cart-button--details:hover,.opa-r4852-cart-button--details:focus-visible { color:#fff; }

/* R4.8.5.3: equal-height homepage product cards and edge-aligned footer. */
.opa-r112-product-track { align-items: stretch; }
.opa-r112-product-track > .opa-r112-product-card {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  height: auto;
  min-height: 100%;
}
.opa-r112-product-card > .opa-r112-product-info {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  width: 100%;
}
.opa-r112-product-card .opa-r4852-purchase-row {
  width: 100%;
  margin-top: auto;
  padding-top: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .85rem;
}
.opa-r112-product-card .opa-r4852-purchase-row .opa-r112-product-price {
  margin-right: auto;
}
.opa-r112-product-card .opa-r4852-cart-form,
.opa-r112-product-card .opa-r4852-purchase-row > .opa-r4852-cart-button {
  margin-left: auto;
}
.opa-r4853-feedback {
  max-width: 75rem;
  margin: 1rem auto;
  padding: .8rem 1rem;
  background: #fff5f3;
  border: 1px solid #dfafa6;
  border-radius: .7rem;
  color: #8b2d1e;
  font-size: .95rem;
}

/* R4.8.5.4: Higher specificity than legacy OPA frontend !important rules.
   Heights track the tallest real card (CSS + JS recalculation) on each viewport. */
html body.opa-r17-home .opa-r112-product-track[data-opa-r112-product-track] {
  align-items: stretch !important;
}
html body.opa-r17-home .opa-r112-product-track[data-opa-r112-product-track]
> .opa-r112-product-card[data-opa-r112-product-card] {
  display: flex !important;
  flex-direction: column !important;
  align-self: stretch !important;
  height: auto !important;
  min-height: var(--opa-r4854-card-height, 0px) !important;
  box-sizing: border-box !important;
}
html body.opa-r17-home .opa-r112-product-track[data-opa-r112-product-track]
> .opa-r112-product-card[data-opa-r112-product-card] > .opa-r112-product-info {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  width: 100% !important;
  min-height: 0 !important;
}
html body.opa-r17-home .opa-r112-product-track[data-opa-r112-product-track]
> .opa-r112-product-card[data-opa-r112-product-card] .opa-r4852-purchase-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-top: auto !important;
  width: 100% !important;
}
