.abp-item-block { margin: 1rem 0; }
.abp-offer { display: flex; gap: .75rem; align-items: center; padding: .75rem;
  border: 1px solid var(--bs-border-color, #dee2e6); border-radius: .5rem; text-decoration: none; color: inherit; }
.abp-offer:hover { border-color: var(--bs-primary, #0d6efd); }
.abp-offer__img { width: 64px; height: 64px; object-fit: contain; flex: 0 0 auto; }
.abp-offer__text { display: flex; flex-direction: column; gap: .15rem; }
.abp-offer__label { font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; color: var(--bs-primary, #0d6efd); }
.abp-offer__name { font-weight: 600; }
.abp-offer__prices { display: flex; gap: .5rem; align-items: baseline; flex-wrap: wrap; }
.abp-offer__old { text-decoration: line-through; opacity: .6; }
.abp-offer__new { font-weight: 700; }
.abp-offer__save { font-size: .85rem; color: #198754; }
.abp-pack { margin: 1rem 0; padding: .9rem; border: 1px solid var(--bs-border-color, #dee2e6); border-radius: .5rem; }
.abp-pack__title { font-weight: 600; margin-bottom: .5rem; }
.abp-pack__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .6rem; }
.abp-pack__item { display: grid; grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas: "img name" "img opts"; column-gap: .7rem; row-gap: .4rem; align-items: center;
  padding: .55rem .65rem; border: 1px solid var(--bs-border-color, #dee2e6);
  border-radius: .4rem; background: var(--bs-tertiary-bg, #f8f9fa); }
.abp-pack__img { grid-area: img; width: 80px; height: 80px; object-fit: contain; }
.abp-pack__name { grid-area: name; }
.abp-pack__savings { margin-top: .75rem; padding-top: .6rem; border-top: 1px dashed var(--bs-border-color, #dee2e6); }
.abp-pack__badge { display: inline-block; margin-left: .4rem; padding: .1rem .45rem;
  border-radius: .3rem; background: #198754; color: #fff; font-size: .85rem; }
.product-container:has(.abp-pack) .product__add-to-cart-container,
.product-container:has(.abp-pack) .product-add-to-cart,
.quickview:has(.abp-pack) .product__add-to-cart-container,
.quickview:has(.abp-pack) .product__add-to-cart,
.quickview:has(.abp-pack) .product-add-to-cart {
    display: none !important;
}
.product-container:has(.abp-pack) .product__variants,
.quickview:has(.abp-pack) .product__variants {
    display: none !important;
}
.abp-pack__options { grid-area: opts; display: flex; flex-wrap: wrap; align-items: center;
  gap: .45rem .8rem; }
.abp-pack__choice { display: flex; gap: .4rem; align-items: center; }
.abp-pack__choice label { margin: 0; font-size: .9rem; white-space: nowrap; }
.abp-pack__select { width: auto; min-width: 5.5rem; }
.abp-pack .asc-wrap { margin: 0; }
@media (max-width: 575.98px) {
  .abp-pack__item { grid-template-areas: "img name" "opts opts"; }
}
.abp-pack__item--perso { grid-template-areas: "img name" "img opts" "img perso"; }
.abp-pack__perso { grid-area: perso; min-width: 0; }
.abp-pack__perso .abcu { margin: 0; }
.abp-pack__item[data-abp-missing] { border-color: #b02a37; box-shadow: 0 0 0 1px #b02a37; }
@media (max-width: 575.98px) {
  .abp-pack__item--perso { grid-template-areas: "img name" "opts opts" "perso perso"; }
}
.abp-pack__add { margin-top: .75rem; width: 100%; }
.abp-pack__error { margin-top: .5rem; color: #b02a37; }
.abp-cart-item { border-left: 3px solid var(--bs-primary, #0d6efd); padding-left: .75rem;
  background: var(--bs-tertiary-bg, #f8f9fa); }
.abp-cart-item--first { margin-top: .75rem; border-top-left-radius: .4rem; border-top-right-radius: .4rem; }
.abp-cart-item--first::before { content: attr(data-abp-head); display: block; padding: .5rem 0 .25rem;
  font-weight: 600; color: var(--bs-primary, #0d6efd); }
.abp-cart-item--last { margin-bottom: .75rem; border-bottom-left-radius: .4rem; border-bottom-right-radius: .4rem; }
.abp-cart-pack { margin: .25rem 0; }
.abp-cart-item .abp-cart-pack__badge { display: none; }
.abp-cart-item:not(.abp-cart-item--last) { margin-bottom: 0; }
.abp-cart-item:not(.abp-cart-item--first) { margin-top: 0; padding-top: .75rem; }
.abp-cart-item--last { padding-bottom: .75rem; }
.abp-cart-pack__badge { display: inline-block; padding: .1rem .5rem; border-radius: .3rem; font-size: .85rem;
  background: var(--bs-primary-bg-subtle, #cfe2ff); color: var(--bs-primary-text-emphasis, #052c65); }
.abp-dialog { width: min(28rem, calc(100% - 32px)); max-height: calc(100% - 32px); overflow: auto; border: 0;
  border-radius: 1rem; padding: 1.75rem 1.5rem 1.25rem; text-align: center;
  background: var(--bs-body-bg, #fff); color: var(--bs-body-color, #212529);
  box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, .28); }
.abp-dialog[open] { animation: abp-in .18s ease-out; }
.abp-dialog::backdrop { background: rgba(15, 23, 42, .55); backdrop-filter: blur(2px); }
@keyframes abp-in { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
.abp-dialog__x { position: absolute; top: .6rem; right: .6rem; width: 2.25rem; height: 2.25rem; border: 0;
  border-radius: 50%; background: transparent; color: var(--bs-secondary-color, #6c757d); cursor: pointer; }
.abp-dialog__x:hover { background: var(--bs-tertiary-bg, #f1f3f5); }
.abp-dialog__x svg, .abp-dialog__icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.abp-dialog__x svg { width: 1.1rem; height: 1.1rem; }
.abp-dialog__icon { width: 3.25rem; height: 3.25rem; margin: 0 auto .75rem; padding: .8rem; border-radius: 50%;
  background: var(--bs-warning-bg-subtle, #fff3cd); color: var(--bs-warning-text-emphasis, #997404); }
.abp-dialog__title { font-size: 1.25rem; font-weight: 700; margin: 0 0 .4rem; }
.abp-dialog__lead { margin: 0 auto 1.1rem; max-width: 24rem; color: var(--bs-secondary-color, #495057); line-height: 1.45; }
.abp-dialog__loss { color: var(--bs-danger, #dc3545); white-space: nowrap; }
.abp-dialog__rest { text-align: left; border: 1px solid var(--bs-border-color, #dee2e6); border-radius: .75rem;
  padding: .75rem .9rem; margin-bottom: 1.25rem; background: var(--bs-tertiary-bg, #f8f9fa); }
.abp-dialog__rest-label { font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em;
  color: var(--bs-secondary-color, #6c757d); margin-bottom: .5rem; }
.abp-dialog__items { list-style: none; margin: 0; padding: 0; }
.abp-dialog__item { display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; gap: .75rem; align-items: center;
  padding: .35rem 0; }
.abp-dialog__item + .abp-dialog__item { border-top: 1px dashed var(--bs-border-color, #dee2e6); }
.abp-dialog__thumb { width: 3rem; height: 3rem; border-radius: .5rem; overflow: hidden; background: var(--bs-body-bg, #fff);
  display: flex; align-items: center; justify-content: center; }
.abp-dialog__thumb img { width: 100%; height: 100%; object-fit: contain; }
.abp-dialog__name { font-size: .9rem; line-height: 1.3; overflow: hidden; display: -webkit-box;
  -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.abp-dialog__price { text-align: right; white-space: nowrap; font-size: .95rem; }
.abp-dialog__old { color: var(--bs-secondary-color, #6c757d); font-size: .85rem; margin-right: .15rem; }
.abp-dialog__new { color: var(--bs-danger, #dc3545); }
.abp-dialog__total { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
  margin-top: .5rem; padding-top: .5rem; border-top: 1px solid var(--bs-border-color, #dee2e6); font-weight: 600; }
.abp-dialog__actions { display: flex; flex-direction: column; gap: .35rem; }
.abp-dialog__keep { width: 100%; padding: .7rem 1rem; font-weight: 600; }
.abp-dialog__remove { color: var(--bs-secondary-color, #6c757d); text-decoration: underline; }
.abp-dialog__remove:hover { color: var(--bs-danger, #dc3545); }
@media (max-width: 575.98px) {
  .abp-dialog { width: 100%; max-width: none; margin: auto 0 0; border-radius: 1rem 1rem 0 0; padding-bottom: 1.5rem; }
  .abp-dialog[open] { animation-name: abp-up; }
  @keyframes abp-up { from { transform: translateY(100%); } to { transform: none; } }
}
@media (prefers-reduced-motion: reduce) { .abp-dialog[open] { animation: none; } }
