.featured-section {
  max-width: 1240px;
  margin: 0 auto 34px;
  padding: 26px;
  border: 1px solid #ead9bb;
  border-radius: 28px;
  background: linear-gradient(135deg, #fff9ed, #f8f0df);
}

.featured-section .product-grid {
  padding-bottom: 0;
}

.search {
  min-width: min(520px, 100%);
}

.product-image {
  position: relative;
}

.product-image-button {
  display: block;
  border: 0;
  padding: 0;
  color: inherit;
  text-align: inherit;
  cursor: pointer;
}

.out-of-stock-badge {
  position: absolute;
  right: 12px;
  bottom: 12px;
  border-radius: 999px;
  background: rgba(23, 63, 53, .92);
  padding: 6px 10px;
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.add-button-icon { display: none; }
.card-review-summary { display: block; margin-top: 6px; color: #95620d; font-size: 10px; font-weight: 800; }
.card-purchase-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.card-buy-now { min-height: 38px; border: 1px solid var(--ink); border-radius: 11px; background: #fff; padding: 8px 10px; color: var(--ink); font-size: 10px; font-weight: 800; cursor: pointer; }

.card-qty-control {
  display: inline-grid;
  flex: 0 0 auto;
  min-height: 38px;
  overflow: hidden;
  grid-template-columns: 34px minmax(28px, auto) 34px;
  align-items: center;
  border: 1px solid var(--ink);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
}
.card-qty-control button {
  display: grid;
  width: 34px;
  height: 36px;
  place-items: center;
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
  font-size: 18px;
  font-weight: 800;
  cursor: pointer;
}
.card-qty-control button:active { background: rgba(23, 63, 53, .1); }
.card-qty-control span { min-width: 28px; font-size: 12px; font-weight: 800; text-align: center; }

.featured-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 6px 10px;
  border-radius: 999px;
  background: #d89f4b;
  color: #173f35;
  box-shadow: 0 5px 16px rgba(23, 63, 53, .18);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.product-code {
  color: #285c4e;
  font: 600 10px/1.3 "DM Sans", sans-serif;
  letter-spacing: .02em;
  overflow-wrap: anywhere;
}

.product-detail-modal { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; padding: 22px; }
.product-detail-modal.hidden { display: none; }
.product-detail-backdrop { position: absolute; border: 0; background: rgba(10,31,26,.66); inset: 0; backdrop-filter: blur(4px); cursor: pointer; }
.product-detail-panel { position: relative; z-index: 1; display: flex; width: min(1000px,100%); max-width: 100%; height: min(90dvh,900px); max-height: min(90vh,900px); overflow: hidden; flex-direction: column; border-radius: 26px; background: #fff; box-shadow: 0 28px 90px rgba(5,30,23,.35); }
.product-detail-close { position: absolute; z-index: 4; top: 14px; right: 14px; display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid #dce6e1; border-radius: 50%; background: rgba(255,255,255,.96); box-shadow: 0 5px 18px rgba(10,31,26,.12); color: #173f35; font-size: 27px; cursor: pointer; }
.product-detail-layout { display: grid; flex: 1 1 auto; width: 100%; min-width: 0; min-height: 0; grid-template-columns: minmax(0,1.08fr) minmax(300px,.92fr); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; }
.product-detail-media { min-width: 0; background: #f4f0e8; padding: 24px; }
.product-detail-stage { display: grid; overflow: hidden; aspect-ratio: 1/1; place-items: center; border-radius: 18px; background: #ebe5da; color: #718079; }
.product-detail-stage img { width: 100%; height: 100%; object-fit: contain; }
.product-detail-stage img.hidden,.product-detail-stage span.hidden { display: none; }
.product-detail-thumbnails { display: flex; width: 100%; min-width: 0; gap: 9px; overflow-x: auto; overscroll-behavior-x: contain; padding-top: 12px; }
.product-detail-thumb { flex: 0 0 68px; width: 68px; height: 68px; overflow: hidden; border: 2px solid transparent; border-radius: 10px; background: #fff; padding: 0; cursor: pointer; }
.product-detail-thumb.active { border-color: var(--gold); }
.product-detail-thumb img { width: 100%; height: 100%; object-fit: cover; }
.product-detail-video { margin-top: 18px; }
.product-detail-video.hidden,.product-detail-video iframe.hidden,.product-detail-video video.hidden,.product-detail-video a.hidden { display: none; }
.product-detail-video h3 { margin: 0 0 9px; font-size: 14px; }
.product-detail-video iframe,.product-detail-video video { width: 100%; aspect-ratio: 16/9; border: 0; border-radius: 14px; background: #10221d; }
.product-detail-video a { display: inline-flex; border-radius: 999px; background: var(--ink); padding: 10px 15px; color: #fff; font-size: 12px; font-weight: 700; text-decoration: none; }
.product-detail-copy { display: flex; min-width: 0; flex-direction: column; padding: 64px 34px 34px; }
.product-detail-category { margin: 0 0 9px; color: var(--gold); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.product-detail-copy h2 { margin: 0; overflow-wrap: anywhere; font-family: Georgia,serif; font-size: clamp(28px,4vw,43px); font-weight: 500; line-height: 1.08; }
.product-detail-code { margin: 12px 0 0; color: #285c4e; font-size: 12px; font-weight: 650; overflow-wrap: anywhere; }
.product-detail-description { margin: 21px 0 0; color: #66746f; font-size: 14px; line-height: 1.7; white-space: pre-line; }
.product-alert-button { display:inline-flex; width:fit-content; min-height:43px; align-items:center; gap:8px; margin-top:16px; border:1px solid #238b62; border-radius:999px; background:#ecf8f2; padding:9px 15px; color:#145f44; font-size:12px; font-weight:800; cursor:pointer; }
.product-alert-button > span:first-child { color:#25a46f; font-size:16px; }
.product-alert-button:disabled { opacity:.65; cursor:wait; }
.product-detail-purchase { position: relative; z-index: 3; display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 18px; border-top: 1px solid #dbe5df; background: rgba(255,255,255,.98); box-shadow: 0 -12px 30px rgba(10,31,26,.1); padding: 13px 24px max(13px,env(safe-area-inset-bottom)); backdrop-filter: blur(16px); }
.product-detail-purchase > div { min-width: 0; }
.product-detail-action-buttons { display: flex; flex: 1 1 auto; align-items: center; justify-content: flex-end; gap: 9px; }
.product-detail-purchase .add-button { flex: 1 1 190px; width: auto; max-width: 280px; min-height: 50px; border-radius: 14px; font-size: 14px; }
.product-detail-share,.product-detail-save { display: inline-flex; flex: 0 0 auto; min-height: 50px; align-items: center; justify-content: center; gap: 7px; border: 1px solid var(--ink); border-radius: 14px; background: #fff; padding: 10px 15px; color: var(--ink); font-size: 13px; font-weight: 800; cursor: pointer; }
.product-detail-save > span:first-child { color:#a14654; font-size:20px; line-height:1; }
.product-detail-save.active { border-color:#c57684; background:#fff0f2; }
.product-detail-share svg { width: 18px; height: 18px; fill: currentColor; }
.product-detail-share:active,.product-detail-save:active { background: #edf3f0; }
.product-detail-purchase strong,.product-detail-purchase small,.product-detail-purchase span { display: block; }
.product-detail-purchase strong { font-size: 23px; line-height: 1.1; }
.product-detail-purchase small { margin-top: 3px; color: #66746f; }
.product-detail-purchase span { margin-top: 3px; color: #9b342c; font-size: 11px; font-weight: 750; }
.product-detail-purchase span.available-to-order { color: #17614d; }

@media (max-width: 760px) {
  .product-detail-modal { align-items: end; padding: 0; }
  .product-detail-panel { height: 94dvh; max-height: 94vh; border-radius: 24px 24px 0 0; }
  .product-detail-layout { grid-template-columns: 1fr; }
  .product-detail-media { padding: 16px; }
  .product-detail-copy { width: 100%; max-width: 100%; overflow: hidden; padding: 28px 20px 32px; }
  .product-detail-purchase { width: 100%; min-width: 0; gap: 12px; padding: 10px 12px max(10px,env(safe-area-inset-bottom)); }
  .product-detail-action-buttons { min-width: 0; gap: 7px; }
  .product-detail-purchase .add-button { flex-basis: 145px; width: auto; max-width: 230px; min-width: 0; }
  .product-detail-share,.product-detail-save { padding: 10px 12px; }
  .product-detail-purchase strong { font-size: 20px; }
  .product-detail-purchase small,.product-detail-purchase span { overflow: hidden; max-width: 38vw; text-overflow: ellipsis; white-space: nowrap; }
}

@media (max-width: 370px) {
  .product-detail-purchase { gap: 8px; }
  .product-detail-share,.product-detail-save { width: 48px; padding: 10px; }
  .product-detail-share span,.product-detail-save span:last-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}

@media (max-width: 950px) {
  .featured-section {
    margin-right: 12px;
    margin-left: 12px;
  }
}

@media (max-width: 690px) {
  .featured-section {
    padding: 18px;
    border-radius: 22px;
  }
}

@media (max-width: 460px) {
  .featured-section { margin-right: 6px; margin-left: 6px; padding: 12px; border-radius: 18px; }
  .featured-section .section-heading { margin-bottom: 12px; }
  .featured-section .section-heading h2 { font-size: 24px; }
  .product-grid { gap: 8px; }
  .product-card { border-radius: 14px; }
  .product-card .product-image { aspect-ratio: 1.2 / 1; }
  .product-card .featured-badge { top: 7px; left: 7px; padding: 4px 7px; font-size: 8px; }
  .product-card .out-of-stock-badge { right: 7px; bottom: 7px; padding: 4px 7px; font-size: 8px; }
  .product-card .product-info { padding: 9px; }
  .product-card .product-category,
  .product-card .product-code,
  .product-card .product-info > p,
  .product-card .price small { display: none; }
  .product-card .product-info h3 { display: -webkit-box; min-height: 34px; overflow: hidden; font-size: 12px; line-height: 1.38; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .product-card .product-bottom { flex-direction: row; align-items: center; gap: 7px; padding-top: 7px; }
  .product-card .price strong { font-size: 15px; }
  .product-card .add-button { display: grid; flex: 0 0 36px; width: 36px; height: 36px; min-height: 36px; place-items: center; border-radius: 50%; padding: 0; font-size: 21px; }
  .product-card .add-button-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .product-card .add-button-icon { display: inline; line-height: 1; }
  .product-card .card-qty-control { flex-basis: 84px; min-height: 36px; grid-template-columns: 28px 28px 28px; }
  .product-card .card-qty-control button { width: 28px; height: 34px; font-size: 17px; }
  .product-card .card-qty-control span { min-width: 28px; font-size: 11px; }
  .product-card .card-purchase-actions { gap: 4px; }
  .product-card .card-buy-now { width: 36px; height: 36px; overflow: hidden; border-radius: 50%; padding: 0; color: transparent; font-size: 0; }
  .product-card .card-buy-now::after { content: '›'; display: grid; height: 34px; place-items: center; color: var(--ink); font-size: 24px; }
}

.bundle-section { max-width: 1240px; margin: 20px auto 38px; padding: 26px; }
.bundle-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.bundle-card { display: flex; min-width: 0; flex-direction: column; gap: 13px; border: 1px solid #dce6e1; border-radius: 20px; background: linear-gradient(145deg,#fff,#f5f0e5); padding: 18px; box-shadow: 0 12px 32px rgba(23,63,53,.07); }
.bundle-card h3,.bundle-card p { margin: 0; }.bundle-card h3 { font-family: Georgia,serif; font-size: 22px; }.bundle-card p { color: #66746f; font-size: 12px; }
.bundle-products { display: flex; min-height: 64px; align-items: center; gap: 8px; overflow-x: auto; }
.bundle-products span { flex: 0 0 58px; position: relative; }.bundle-products img { width: 58px; height: 58px; border-radius: 12px; background: #eee8dc; object-fit: cover; }.bundle-products b { position: absolute; right: -3px; bottom: -3px; border-radius: 999px; background: var(--ink); padding: 2px 6px; color: #fff; font-size: 9px; }
.bundle-offer { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-top: auto; }.bundle-price strong,.bundle-price small { display: block; }.bundle-price strong { font-size: 20px; }.bundle-price small { color: #66746f; text-decoration: line-through; }.bundle-saving { color: #17614d!important; font-weight: 800; }
.bundle-add,.buy-now-button { min-height: 44px; border: 1px solid var(--ink); border-radius: 12px; background: #fff; padding: 9px 14px; color: var(--ink); font-size: 12px; font-weight: 800; cursor: pointer; }.bundle-add { background: var(--ink); color: #fff; }
.product-review-summary { width: fit-content; margin-top: 10px; border: 0; background: transparent; padding: 0; color: #8b5b0e; font-size: 12px; font-weight: 800; cursor: pointer; }
.quantity-offers { margin-top: 13px; border-radius: 12px; background: #f3f8f5; padding: 10px 12px; color: #285c4e; font-size: 12px; }.quantity-offers strong { display: block; margin-bottom: 4px; }.quantity-offers span { display: inline-block; margin: 2px 10px 2px 0; }
.product-reviews { margin-top: 24px; border-top: 1px solid #dfe7e2; padding-top: 18px; }.product-reviews h3 { margin: 0 0 10px; font-size: 15px; }.product-review { padding: 10px 0; border-bottom: 1px solid #edf1ef; }.product-review:last-child { border-bottom: 0; }.product-review strong,.product-review small { display: block; }.product-review small { margin-top: 4px; color: #66746f; }.review-stars { color: #d08a21; letter-spacing: 1px; }
.order-review-section { max-width: 760px; margin: 24px auto; border: 1px solid #dfe7e2; border-radius: 22px; background: #fff; padding: 24px; }.order-review-section h2,.order-review-section > p { margin: 0 0 8px; }.order-review-card { margin-top: 15px; border-top: 1px solid #e7ece9; padding-top: 15px; }.order-review-form { display: grid; grid-template-columns: 130px 1fr; gap: 9px; margin-top: 10px; }.order-review-form label { color: #66746f; font-size: 12px; }.order-review-form select,.order-review-form input,.order-review-form textarea { width: 100%; margin-top: 4px; border: 1px solid #dfe7e2; border-radius: 10px; background: #fff; padding: 10px; }.order-review-form textarea { min-height: 82px; resize: vertical; }.order-review-form .review-wide { grid-column: 1/-1; }.order-review-form button { width: fit-content; border: 0; border-radius: 10px; background: var(--ink); padding: 10px 16px; color: #fff; font-weight: 800; cursor: pointer; }
.bundle-cart-saving { color: #17614d; }

.store-recommendations { margin-top:1.15rem; border-top:1px solid rgba(18,76,62,.14); padding-top:1rem; }
.recommendation-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:.75rem; margin-bottom:.8rem; }
.recommendation-heading h3 { margin:0 0 .25rem; color:var(--ink,#123f35); font:700 1.15rem/1.2 system-ui,sans-serif; }
.recommendation-heading p { margin:0; color:#6a756f; font-size:.78rem; }
.recommendation-proof-badge,.recommendation-combo-badge { flex:0 0 auto; border-radius:999px; background:#e9f6ef; padding:.32rem .55rem; color:#147047; font-size:.58rem; font-weight:850; letter-spacing:.04em; text-transform:uppercase; }
.recommendation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }
.recommendation-card { min-width:0; border:1px solid rgba(18,76,62,.15); border-radius:15px; overflow:hidden; background:#fff; display:grid; grid-template-columns:92px minmax(0,1fr); box-shadow:0 4px 18px rgba(22,66,55,.06); }
.recommendation-card img,.recommendation-image-placeholder { width:92px; height:100%; min-height:132px; object-fit:cover; background:#f4f0e5; display:grid; place-items:center; color:#7b837e; font-size:.65rem; }
.recommendation-copy { min-width:0; padding:.65rem; display:flex; flex-direction:column; align-items:flex-start; gap:.25rem; }
.recommendation-copy strong { width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--ink,#123f35); font-size:.78rem; }
.recommendation-copy small { color:#76807b; font-size:.68rem; }
.recommendation-copy b { color:var(--ink,#123f35); font-size:.86rem; }
.recommendation-action-row { width:100%; display:flex; align-items:center; gap:.4rem; margin-top:auto; padding-top:.35rem; }
.recommendation-quantity { flex:0 0 auto; display:flex; align-items:center; border:1px solid #d8e3dd; border-radius:999px; overflow:hidden; background:#f8fbf9; }
.recommendation-quantity button { width:27px; height:29px; border:0; background:transparent; color:var(--ink,#124c3e); font-size:1rem; font-weight:800; cursor:pointer; }
.recommendation-quantity input { width:30px; height:29px; border:0; background:transparent; color:var(--ink,#124c3e); text-align:center; font-size:.7rem; font-weight:800; appearance:textfield; }
.recommendation-quantity input::-webkit-inner-spin-button,.recommendation-quantity input::-webkit-outer-spin-button { appearance:none; margin:0; }
.recommendation-add { min-height:31px; flex:1 1 auto; border:0; border-radius:999px; background:var(--primary,#124c3e); color:#fff; padding:.45rem .6rem; font-weight:800; font-size:.66rem; cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.recommendation-add:disabled { opacity:.55; cursor:wait; }
.recommendation-compact { margin:.5rem 1rem 0; padding-bottom:.7rem; }
.checkout-modal .recommendation-compact { margin:1rem 0 0; }
.order-status-page > .store-recommendations { width:min(760px,100%); margin:1.25rem auto 0; border:1px solid rgba(18,76,62,.14); border-radius:20px; padding:1.15rem; background:#fffdf7; }
@media (max-width:680px) {
  .recommendation-grid { grid-template-columns:1fr; }
  .product-detail-copy .recommendation-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .product-detail-copy .recommendation-card { grid-template-columns:1fr; }
  .product-detail-copy .recommendation-card img,.product-detail-copy .recommendation-image-placeholder { width:100%; height:116px; }
  .product-detail-copy .recommendation-action-row { align-items:stretch; flex-direction:column; }
  .product-detail-copy .recommendation-quantity { align-self:flex-start; }
  .recommendation-proof-badge { display:none; }
}

@media (max-width: 760px) {
  .bundle-section { margin: 10px 6px 28px; padding: 12px; }.bundle-grid { grid-template-columns: 1fr; }.bundle-card { flex-direction: row; flex-wrap: wrap; }.bundle-card h3,.bundle-card > p,.bundle-products { flex-basis: 100%; }.bundle-offer { width: 100%; }
  .product-detail-action-buttons { display: grid; grid-template-columns: 48px 48px minmax(78px,.8fr) minmax(92px,1fr); }.product-detail-share,.product-detail-save { width: 48px; padding: 10px; }.product-detail-share span,.product-detail-save span:last-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }.product-detail-purchase .add-button,.buy-now-button { width: 100%; min-width: 0; padding: 8px; }
  .order-review-form { grid-template-columns: 1fr; }.order-review-form .review-wide { grid-column: auto; }
}

/* Conversion-focused cart using each tenant's own brand and offer rules. */
.cart-drawer { width:min(480px,100vw); background:#f3f6f7; }
.cart-drawer-head { min-height:70px; justify-content:flex-start; background:#fff; padding:14px 18px; }
.cart-drawer-head h2 { flex:1; font:800 1.15rem/1.2 system-ui,sans-serif; }
.cart-drawer-head .drawer-actions { margin-left:auto; }
.cart-savings-banner { display:flex; min-height:40px; align-items:center; justify-content:center; gap:.45rem; background:#e5f8ed; padding:.55rem 1rem; color:#17834e; font-size:.82rem; }
.cart-savings-banner > span { display:grid; width:20px; height:20px; place-items:center; border-radius:50%; background:#22a861; color:#fff; font-size:.7rem; }
.cart-scroll { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:14px; }
.cart-progress-card,.cart-offers-card,.cart-order-card,.cart-bill-card,.cart-savings-card,.cart-scroll > .store-recommendations { margin:0 0 14px; border:1px solid #dde3e5; border-radius:18px; background:#fff; box-shadow:0 2px 7px rgba(26,49,42,.035); }
.cart-progress-card,.cart-offers-card,.cart-bill-card,.cart-savings-card { padding:16px; }
.cart-order-card { overflow:hidden; padding:16px 16px 0; }
.cart-section-heading { margin-bottom:14px; }
.cart-section-heading > div { display:flex; align-items:center; gap:10px; }
.cart-section-heading strong { display:block; color:#17221f; font-size:1rem; line-height:1.2; }
.cart-section-heading small { display:block; margin-top:2px; color:#7a8581; font-size:.7rem; }
.cart-section-icon { display:grid; flex:0 0 40px; width:40px; height:40px; place-items:center; border:1px solid #e5e9e8; border-radius:12px; background:#fbfcfc; color:var(--ink,#124c3e); font-weight:850; }
.cart-reward-track { position:relative; height:7px; overflow:hidden; border-radius:999px; background:#edf1ef; }
.cart-reward-track i { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--ink,#124c3e),var(--gold,#d6a547)); transition:width .25s ease; }
.cart-reward-milestones { display:flex; margin-top:11px; gap:8px; overflow-x:auto; scrollbar-width:none; }
.cart-reward-milestones::-webkit-scrollbar { display:none; }
.cart-reward { flex:1 0 88px; min-width:0; text-align:center; }
.cart-reward > span { display:grid; width:30px; height:30px; margin:0 auto 5px; place-items:center; border-radius:50%; background:#eef1f0; color:#99a29f; font-size:.68rem; font-weight:900; }
.cart-reward.unlocked > span { background:#def4e6; color:#17834e; }
.cart-reward strong,.cart-reward small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cart-reward strong { color:#27332f; font-size:.68rem; }
.cart-reward small { margin-top:2px; color:#7b8581; font-size:.6rem; }
.cart-offer-list { display:grid; gap:0; }
.cart-offer { display:grid; grid-template-columns:40px minmax(0,1fr) auto; align-items:center; gap:10px; border-top:1px dashed #dce2df; padding:13px 0; }
.cart-offer:first-child { border-top:0; padding-top:0; }
.cart-offer:last-child { padding-bottom:0; }
.cart-offer-mark { display:grid; width:36px; height:36px; place-items:center; border-radius:11px; background:#e4f6ea; color:#199050; font-weight:900; }
.cart-offer-copy { min-width:0; }
.cart-offer-copy strong,.cart-offer-copy small { display:block; }
.cart-offer-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#1d2925; font-size:.76rem; }
.cart-offer-copy small { display:-webkit-box; overflow:hidden; margin-top:3px; color:#737f7a; font-size:.66rem; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.cart-offer-action { min-width:70px; border:1px solid var(--ink,#124c3e); border-radius:10px; background:#fff; padding:.55rem .65rem; color:var(--ink,#124c3e); font-size:.66rem; font-weight:850; cursor:pointer; }
.cart-offer.locked .cart-offer-action { border-color:#dfe4e2; color:#929b97; }
.cart-offer.applied .cart-offer-action { border-color:#b9e0c8; background:#e9f8ef; color:#17834e; }
.cart-scroll .cart-items { display:block; overflow:visible; flex:none; padding:0; }
.cart-scroll .cart-empty { margin:16px 0 24px; }
.cart-scroll .cart-line { display:grid; grid-template-columns:64px minmax(0,1fr) auto; align-items:center; gap:11px; padding:13px 0; }
.cart-line-media { display:grid; width:64px; height:64px; overflow:hidden; place-items:center; border:1px solid #e6e9e7; border-radius:12px; background:#f7f5ee; color:#89938f; font-size:.55rem; text-align:center; }
.cart-line-media img { width:100%; height:100%; object-fit:cover; }
.cart-line-copy { min-width:0; }
.cart-line-copy > strong { display:-webkit-box; overflow:hidden; font-size:.76rem; line-height:1.35; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.cart-line-copy > small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cart-line-actions { margin-top:8px; }
.cart-line-actions .qty-control { border-color:color-mix(in srgb,var(--ink,#124c3e) 35%,#fff); color:var(--ink,#124c3e); }
.cart-line-actions .qty-control button { background:color-mix(in srgb,var(--ink,#124c3e) 8%,#fff); color:var(--ink,#124c3e); font-weight:900; }
.cart-line-pricing { min-width:58px; text-align:right; }
.cart-line-pricing del { display:block; color:#8f9894; font-size:.62rem; }
.cart-line-pricing strong { display:block; margin-top:2px; color:var(--ink,#124c3e); font-size:.8rem; }
.cart-add-more { width:calc(100% + 32px); min-height:48px; margin:0 -16px; border:0; border-top:1px solid #e5e9e7; background:#fff; color:#38443f; font-size:.72rem; cursor:pointer; }
.cart-add-more strong { color:var(--ink,#124c3e); }
.cart-bill-card .total-row { margin:10px 0; }
.cart-bill-card .total-row.grand { margin-top:14px; padding-top:14px; font-size:1rem; }
.cart-savings-card { border-color:#cce9d8; background:#edfbf2; }
.cart-savings-card-head { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:10px; }
.cart-savings-card-head > strong { color:#183a2d; }
.cart-savings-card-head > b { border-radius:8px; background:#28a85f; padding:7px 10px; color:#fff; }
#cartSavingsBreakdown { border-radius:12px; background:#fff; padding:4px 12px; }
#cartSavingsBreakdown > div { display:flex; justify-content:space-between; gap:14px; border-top:1px dashed #dce7df; padding:9px 0; color:#44534d; font-size:.72rem; }
#cartSavingsBreakdown > div:first-child { border-top:0; }
#cartSavingsBreakdown strong { color:#17834e; }
.cart-scroll .recommendation-compact { padding:16px; }
.cart-scroll .recommendation-grid { display:flex; overflow-x:auto; gap:10px; padding:2px 1px 7px; scroll-snap-type:x proximity; scrollbar-width:none; }
.cart-scroll .recommendation-grid::-webkit-scrollbar { display:none; }
.cart-scroll .recommendation-card { flex:0 0 145px; display:grid; grid-template-columns:1fr; scroll-snap-align:start; border-radius:14px; }
.cart-scroll .recommendation-card img,.cart-scroll .recommendation-image-placeholder { width:100%; height:108px; min-height:108px; object-fit:cover; }
.cart-scroll .recommendation-copy { padding:9px; }
.cart-scroll .recommendation-copy strong { font-size:.7rem; }
.cart-scroll .recommendation-action-row { align-items:stretch; flex-direction:column; }
.cart-scroll .recommendation-quantity { align-self:flex-start; }
.recommendation-price { display:flex; align-items:baseline; gap:5px; }
.recommendation-price del { color:#929a96; font-size:.6rem; }
.recommendation-price b { color:var(--ink,#124c3e); }
.cart-footer { display:grid; grid-template-columns:minmax(80px,.55fr) minmax(170px,1fr); align-items:center; gap:10px; flex:0 0 auto; border-top:1px solid #dfe4e2; background:#fff; padding:12px 14px max(12px,env(safe-area-inset-bottom)); box-shadow:0 -8px 24px rgba(19,42,35,.08); }
.cart-footer.hidden { display:none; }
.cart-footer-summary { min-width:0; padding-left:3px; }
.cart-footer-summary span,.cart-footer-summary strong { display:block; }
.cart-footer-summary span { color:#7c8682; font-size:.65rem; }
.cart-footer-summary strong { margin-top:2px; color:var(--ink,#124c3e); font-size:1.05rem; }
.cart-footer .primary-button { min-height:52px; margin:0; }
.cart-footer .checkout-assurance { grid-column:1/-1; margin:0; }
.price del { display:block; color:#8e9793; font-size:.68rem; }
.price .product-saving { display:block; margin-top:2px; color:#17834e; font-size:.62rem; font-weight:800; }

@media (max-width:520px) {
  .cart-drawer { width:100vw; }
  .cart-scroll { padding:10px; }
  .cart-progress-card,.cart-offers-card,.cart-order-card,.cart-bill-card,.cart-savings-card,.cart-scroll > .store-recommendations { margin-bottom:10px; border-radius:16px; }
  .cart-footer .checkout-assurance { display:none; }
}
