.gift-bundle,
.gift-recommendations {
  display: block;
  width: 100%;
  color: #2e302c;
}

.gift-bundle {
  padding: 20px;
  background: #fffaf4;
  border: 1px solid #d9bea0;
  border-radius: 14px;
  box-shadow: 0 8px 26px rgba(101, 65, 39, .07);
}

.gift-bundle .gift-bundle__heading { align-items: center; padding-bottom: 12px; margin-bottom: 10px; border-bottom: 1px solid #e7d4bf; }
.gift-bundle h2 { color: #563b2d; font-size: 20px; font-weight: 800; }
.gift-bundle__intro { margin: 0 0 13px; color: #806b5c; font-size: 12px; line-height: 1.45; }
.gift-bundle__shipping { margin: 0 0 12px; padding: 9px 11px; background: #f2f6f1; border: 1px solid #dce8dc; border-radius: 8px; }
.gift-bundle__shipping[data-qualified="true"] { color: #17613b; background: #e9f7ed; border-color: #acd7b6; }
.gift-bundle__shipping-line { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 12px; line-height: 1.4; }
.gift-bundle__shipping-line strong { font-weight: 700; }
.gift-bundle__shipping-track { height: 5px; margin-top: 7px; overflow: hidden; background: #dce6dc; border-radius: 99px; }
.gift-bundle__shipping-track span { display: block; width: 0; height: 100%; background: #18834d; border-radius: inherit; transition: width .2s ease; }

.gift-bundle__heading,
.gift-recommendations__heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.gift-bundle__eyebrow {
  display: block;
  margin-bottom: 3px;
  color: #a1664e;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.gift-bundle h2,
.gift-recommendations h2 {
  margin: 0;
  font-size: 19px;
  font-weight: 700;
  line-height: 1.25;
}

.gift-bundle__heading-note {
  color: #7b7068;
  font-size: 12px;
  white-space: nowrap;
}

.gift-bundle__tiers {
  display: grid;
  gap: 6px;
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
}

.gift-bundle__tier {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 8px 10px;
  cursor: pointer;
  background: #fff;
  border: 1px solid #e1c8af;
  border-radius: 9px;
  transition: border-color .15s, background-color .15s;
}

.gift-bundle__tier:has(input:checked) {
  background: #fbf1e4;
  border-color: #a56b3d;
  box-shadow: inset 4px 0 #ad7b4c;
}

.gift-bundle__tier:focus-within { outline: 2px solid #a36c48; outline-offset: 2px; }
.gift-bundle__tier input { width: 17px; height: 17px; margin: 0; accent-color: #a36c48; }
.gift-bundle__tier-copy,
.gift-bundle__tier-pricing { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; min-width: 0; }
.gift-bundle__tier-copy strong,
.gift-bundle__tier-pricing strong { color: #302720; font-size: 15px; font-weight: 800; line-height: 1.3; }
.gift-bundle__tier-copy small,
.gift-bundle__tier-pricing small { color: #756e67; font-size: 11px; line-height: 1.3; }
.gift-bundle__tier-pricing { justify-content: flex-end; text-align: right; white-space: nowrap; }
.gift-bundle__tier-copy small { color: #725949; font-size: 12px; font-weight: 600; }
.gift-bundle__tier-pricing small:not(:empty) { display: inline-block; justify-self: end; padding: 2px 6px; color: #315c46; background: #e7f0e8; border: 1px solid #c5d9c9; border-radius: 4px; font-weight: 700; }
.gift-bundle__tier-copy em {
  display: inline-block;
  padding: 2px 6px;
  margin-left: 4px;
  color: #77552e;
  background: #f3e3c7;
  border-radius: 99px;
  font-size: 9px;
  font-style: normal;
  vertical-align: 1px;
}
.gift-bundle__tier[data-quantity="3"] .gift-bundle__tier-copy em { color: #fff; background: #8c6038; }
.gift-bundle__tier[data-quantity="4"] .gift-bundle__tier-copy em { color: #fff; background: #315b46; }
.gift-bundle__tier[data-quantity="6"] .gift-bundle__tier-copy em { color: #fff; background: #b3453c; }

.gift-bundle__footnote {
  margin: 12px 0 0;
  color: #756e67;
  font-size: 11px;
  line-height: 1.45;
}
.gift-mix { margin-top: 10px; padding: 10px; background: #f8efe3; border: 1px solid #e1c8ad; border-radius: 9px; }
.gift-mix[hidden] { display: none; }
.gift-mix__heading { display: flex; justify-content: space-between; align-items: center; gap: 8px; color: #523b2e; }
.gift-mix__heading span { padding: 3px 7px; border: 1px solid #e0c6a8; border-radius: 20px; font-size: 10px; font-weight: 700; }
.gift-mix p { margin: 6px 0 0; color: #756357; font-size: 12px; line-height: 1.4; }
.gift-mix__row { display: flex; flex-wrap: nowrap; align-items: center; gap: 6px; padding: 5px 0; border-top: 1px dashed #dec9b4; }
.gift-mix__row strong { flex: 0 0 55px; font-size: 12px; }
.gift-mix__row select { flex: 1 1 95px; min-width: 0; padding: 6px; border: 1px solid #d7bfa7; border-radius: 6px; background: #fff; color: #302720; font-size: 12px; }
.gift-mix__row-price { flex: 0 0 auto; text-align: right; color: #735542; font-size: 11px; }
.gift-mix .gift-mix__total { font-weight: 700; color: #523b2e; }
.gift-mix .gift-mix__error { color: #a2342e; font-weight: 700; }
theme-product-detail[data-gift-mixing="true"] .payment-button-wrapper,
theme-product-detail[data-gift-mixing="true"] theme-input-number.quantity-selector__input { display: none !important; }
.gift-mix-checkout { width: 100%; padding: 13px; color: #fff; background: #365b4c; border: 0; border-radius: 5px; font-weight: 700; cursor: pointer; }
.gift-mix-checkout[hidden] { display: none !important; }
.gift-sticky { position: fixed; z-index: 90; inset: auto 0 0; display: block; background: #fff; border-top: 1px solid #e5ddd4; box-shadow: 0 -4px 18px rgba(48, 39, 32, .1); }
.gift-sticky[hidden] { display: none !important; }
.gift-sticky__inner { display: flex; align-items: center; gap: 14px; max-width: 1200px; min-height: 82px; padding: 10px 20px; margin: auto; }
.gift-sticky__image { flex: 0 0 56px; display: block; width: 56px; height: 56px !important; object-fit: cover; border-radius: 5px; }
.gift-sticky__product { display: grid; flex: 1 1 230px; min-width: 0; gap: 4px; }
.gift-sticky__product strong { overflow: hidden; color: #27221e; font-size: 14px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.gift-sticky__product span { color: #986644; font-size: 15px; font-weight: 700; line-height: 1.2; }
.gift-sticky__options { display: flex; justify-content: flex-end; gap: 8px; min-width: 0; }
.gift-sticky__options:empty { display: none; }
.gift-sticky__options select { max-width: 165px; min-width: 110px; min-height: 44px; padding: 0 12px; color: #30251f; background: #fffaf6; border: 1px solid #dec8b5; border-radius: 5px; font-size: 13px; font-weight: 600; }
.gift-sticky__button { flex: 0 0 180px; min-height: 46px; padding: 10px; color: #fff; background: #251c19; border: 0; border-radius: 5px; font-size: 13px; font-weight: 800; letter-spacing: .03em; cursor: pointer; }
.gift-sticky__button:disabled { cursor: not-allowed; opacity: .55; }
.gift-sticky__status:not(.visually-hidden) { display: block; max-width: 1200px; padding: 0 20px 8px; margin: auto; color: #a2342e; font-size: 12px; }
body:has(theme-gift-sticky:not([hidden])) { padding-bottom: 95px; }

.gift-recommendations {
  padding-top: 18px;
  border-top: 1px solid #e5d5c1;
}

.gift-recommendations__heading { margin-bottom: 5px; }
.gift-recommendations__heading a { color: #456d56; font-size: 12px; text-decoration: underline; white-space: nowrap; }
.gift-recommendations > p { margin: 0 0 12px; color: #756e67; font-size: 12px; }
.gift-recommendations__items {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
  min-height: 148px;
}
.gift-recommendations__placeholder { grid-column: 1 / -1; align-self: center; color: #8c8177; font-size: 12px; }
.gift-recommendations__card {
  min-width: 0;
  padding: 7px;
  background: #fff;
  border: 1px solid #e5dcd1;
  border-radius: 10px;
}
.gift-recommendations__card > a { display: block; color: inherit; text-decoration: none; }
.gift-recommendations__media {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  background: #f6f1e9;
  border-radius: 6px;
}
.gift-recommendations__image {
  display: block;
  width: 100%;
  height: 100% !important;
  object-fit: cover;
}
.gift-recommendations__title {
  display: -webkit-box;
  min-height: 30px;
  margin: 6px 0 3px;
  overflow: hidden;
  font-size: 11px;
  line-height: 1.35;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.gift-recommendations__price { display: block; margin-bottom: 7px; color: #9e503e; font-size: 12px; font-weight: 700; }
.gift-recommendations__add {
  display: block;
  width: 100%;
  padding: 7px 4px;
  color: #fff;
  cursor: pointer;
  background: #365b4c;
  border: 0;
  border-radius: 5px;
  font-size: 11px;
  font-weight: 700;
  text-align: center;
}
.gift-recommendations__add:hover { background: #294638; }
.gift-recommendations__card theme-quick-add-modal { display: block; }
.quick-add-modal__modal .gift-recommendations { display: none; }
.product-detail__info > .sales-bundle-root { display: none !important; }

@media (max-width: 959px) {
  .product-detail__main,
  .product-detail__main > .product-detail__col {
    min-width: 0;
    max-width: 100%;
  }
  .gift-bundle { padding: 15px; }
  .gift-bundle h2,
  .gift-recommendations h2 { font-size: 17px; }
  .gift-bundle__heading-note { font-size: 11px; }
  .gift-bundle__tier { grid-template-columns: 17px minmax(0, 1fr) auto; gap: 5px; padding: 7px; }
  .gift-bundle__tier-copy strong,
  .gift-bundle__tier-pricing strong { font-size: 12px; }
  .gift-bundle__tier-copy em { font-size: 9px; }
  .gift-recommendations__items {
    grid-auto-columns: minmax(116px, 40%);
    grid-auto-flow: column;
    grid-template-columns: none;
    overflow-x: auto;
    scroll-snap-type: x proximity;
  }
  .gift-recommendations__card { scroll-snap-align: start; }
}

@media (max-width: 600px) {
  body:has(theme-gift-sticky:not([hidden])) { padding-bottom: 150px; }
  .gift-sticky__inner { flex-wrap: wrap; gap: 6px 8px; min-height: 0; padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); }
  .gift-sticky__image { flex-basis: 42px; width: 42px; height: 42px !important; }
  .gift-sticky__product { flex: 1 1 calc(100% - 60px); }
  .gift-sticky__product strong { font-size: 12px; }
  .gift-sticky__product span { font-size: 13px; }
  .gift-sticky__options { flex: 1 1 150px; justify-content: stretch; }
  .gift-sticky__options select { flex: 1 1 0; width: 0; min-width: 0; min-height: 40px; padding: 0 5px; font-size: 11px; }
  .gift-sticky__button { flex: 1 0 110px; min-height: 40px; font-size: 12px; }
  .gift-bundle__tier-copy { flex-wrap: nowrap; white-space: nowrap; gap: 4px; }
  .gift-bundle__tier-copy strong[data-mobile],
  .gift-bundle__tier-copy small[data-mobile],
  .gift-bundle__tier-copy small[data-mobile] b { font-size: 0; }
  .gift-bundle__tier-copy [data-mobile]::before { content: attr(data-mobile); font-size: 11px; }
  .gift-bundle__tier-copy em { display: none; }
  .gift-bundle__tier-pricing { flex-wrap: nowrap; }
  .gift-bundle__tier-pricing { gap: 3px; }
  .gift-bundle__tier-pricing small { font-size: 10px; }
  .gift-mix__row { gap: 4px; }
  .gift-mix__row strong { flex-basis: 43px; }
  .gift-mix__row select { flex-basis: 70px; padding: 6px 3px; }
}

@media (prefers-reduced-motion: reduce) {
  .gift-bundle__tier { transition: none; }
}
