/**
 * File: assets/css/frontend/cart-part3.css
 * Purpose: Split piece of a larger source file (1.0.191 file-size programme; cascade/build order unchanged). Continuation part 3 of assets/css/frontend/cart.css (split for the 300-line standard; cascade order is preserved by the enqueue chain).
 * Scope: Same feature scope as the source file named in the provenance line; not a standalone design source.
 * Package: HyperDAF Engine
 */
.hdf-coupon-box {
  margin-top: var(--hdf-engine-space-2);
  padding-block: var(--hdf-engine-space-4);
  border-block: var(--hdf-engine-border-width-default) solid var(--hdf-engine-color-border-subtle);
}

.hdf-coupon-box__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--hdf-engine-space-3);
  margin-bottom: var(--hdf-engine-space-3);
}

.hdf-coupon-box__heading h3 {
  margin: 0;
  color: var(--hdf-engine-color-text-secondary);
  font-size: var(--hdf-engine-font-size-sm);
  font-weight: var(--hdf-engine-font-weight-semibold);
}

.hdf-coupon-box__heading span {
  color: var(--hdf-engine-color-text-muted);
  font-size: var(--hdf-engine-font-size-xs);
}

.hdf-coupon-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--hdf-engine-space-2);
}

.hdf-coupon-form input,
.hdf-coupon-form button {
  min-height: var(--hdf-engine-control-height-md);
}

.hdf-coupon-applied {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--hdf-engine-space-3);
  padding: var(--hdf-engine-space-3);
  border: var(--hdf-engine-border-width-default) solid var(--hdf-engine-color-success);
  border-radius: var(--hdf-engine-radius-sm);
  background: var(--hdf-engine-color-success-soft);
}

.hdf-coupon-applied > span {
  display: grid;
  gap: var(--hdf-engine-space-1);
}

.hdf-coupon-applied strong {
  color: var(--hdf-engine-color-success-text);
}

.hdf-coupon-applied small {
  color: var(--hdf-engine-color-text-muted);
}

.hdf-cart-summary__checkout {
  width: 100%;
  min-height: var(--hdf-engine-button-height-lg);
  margin-top: var(--hdf-engine-space-5);
  justify-content: center;
}

.hdf-cart-summary__checkout .hdf-engine-icon {
  width: var(--hdf-engine-font-size-md);
  height: var(--hdf-engine-font-size-md);
}

.hdf-cart-summary__assurances {
  display: grid;
  gap: var(--hdf-engine-space-2);
  margin: var(--hdf-engine-space-4) 0 0;
  padding: 0;
  list-style: none;
}

.hdf-cart-summary__assurances li {
  display: grid;
  grid-template-columns: var(--hdf-engine-font-size-md) minmax(0, 1fr);
  align-items: start;
  gap: var(--hdf-engine-space-2);
  color: var(--hdf-engine-color-text-muted);
  font-size: var(--hdf-engine-font-size-xs);
  line-height: var(--hdf-engine-line-height-base);
}

.hdf-cart-summary__assurances li > span {
  display: inline-flex;
  color: var(--hdf-engine-color-success);
}

.hdf-cart-summary__assurances .hdf-engine-icon {
  width: var(--hdf-engine-font-size-sm);
  height: var(--hdf-engine-font-size-sm);
}

.hdf-cart-summary__footer {
  margin-top: var(--hdf-engine-space-4);
  padding-top: var(--hdf-engine-space-4);
  border-top: var(--hdf-engine-border-width-default) solid var(--hdf-engine-color-border-subtle);
}

.hdf-cart-summary__empty-form {
  margin: 0;
}

.hdf-cart-summary__empty {
  display: inline-flex;
  width: 100%;
  min-height: var(--hdf-engine-button-height-sm);
  align-items: center;
  justify-content: center;
  gap: var(--hdf-engine-space-2);
  border: var(--hdf-engine-border-width-default) solid var(--hdf-engine-color-border);
  border-radius: var(--hdf-engine-radius-md);
  background: var(--hdf-engine-color-surface-muted);
  color: var(--hdf-engine-color-text-secondary);
  font: inherit;
  font-size: var(--hdf-engine-font-size-sm);
  font-weight: var(--hdf-engine-font-weight-semibold);
  text-decoration: none;
  cursor: pointer;
  transition: border-color var(--hdf-engine-motion-fast) var(--hdf-engine-motion-easing),
    background-color var(--hdf-engine-motion-fast) var(--hdf-engine-motion-easing),
    color var(--hdf-engine-motion-fast) var(--hdf-engine-motion-easing),
    transform var(--hdf-engine-motion-fast) var(--hdf-engine-motion-easing);
}

.hdf-cart-summary__empty:hover,
.hdf-cart-summary__empty:focus-visible {
  border-color: var(--hdf-engine-color-danger);
  background: var(--hdf-engine-color-danger-soft);
  color: var(--hdf-engine-color-danger-text);
  transform: translateY(-1px);
}

.hdf-cart-summary__empty > span {
  font-size: var(--hdf-engine-font-size-lg);
  line-height: 1;
}

.hdf-cart-summary__empty > strong {
  font: inherit;
}

.hdf-cart-notice {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--hdf-engine-space-3);
  margin-bottom: var(--hdf-engine-space-4);
  padding: var(--hdf-engine-space-3) var(--hdf-engine-space-4);
  border: var(--hdf-engine-border-width-default) solid var(--hdf-engine-color-success);
  border-radius: var(--hdf-engine-radius-sm);
  background: var(--hdf-engine-color-success-soft);
  color: var(--hdf-engine-color-success-text);
}

.hdf-cart-notice--error {
  border-color: var(--hdf-engine-color-danger);
  background: var(--hdf-engine-color-danger-soft);
  color: var(--hdf-engine-color-danger-text);
}

.hdf-cart-notice__icon,
.hdf-cart-notice__dismiss {
  display: inline-flex;
}

.hdf-cart-notice__icon .hdf-engine-icon,
.hdf-cart-notice__dismiss .hdf-engine-icon {
  width: var(--hdf-engine-font-size-md);
  height: var(--hdf-engine-font-size-md);
}

.hdf-cart-notice__message {
  font-size: var(--hdf-engine-font-size-sm);
  font-weight: var(--hdf-engine-font-weight-medium);
}

.hdf-cart-notice__dismiss {
  padding: var(--hdf-engine-space-1);
  border: 0;
  background: transparent;
  color: currentColor;
  cursor: pointer;
}

.hdf-cart-empty {
  max-width: var(--hdf-engine-layout-content);
  margin-inline: auto;
  padding: clamp(var(--hdf-engine-space-7), 7vw, var(--hdf-engine-space-11));
  text-align: center;
}

.hdf-cart-empty__mark {
  display: inline-grid;
  width: var(--hdf-engine-space-10);
  height: var(--hdf-engine-space-10);
  place-items: center;
  border: var(--hdf-engine-border-width-default) solid var(--hdf-engine-color-border);
  border-radius: var(--hdf-engine-radius-round);
  background: var(--hdf-engine-color-surface-muted);
  color: var(--hdf-engine-color-primary-strong);
  font-weight: var(--hdf-engine-font-weight-bold);
}

.hdf-cart-empty h2 {
  margin: var(--hdf-engine-space-5) 0 var(--hdf-engine-space-2);
  color: var(--hdf-engine-color-text-strong);
  font-size: var(--hdf-engine-font-size-2xl);
}

.hdf-cart-empty p {
  margin: 0 auto var(--hdf-engine-space-5);
  color: var(--hdf-engine-color-text-muted);
}

.hdf-cart-page button:focus-visible,
.hdf-cart-page a:focus-visible,
.hdf-cart-page input:focus-visible {
  outline: var(--hdf-engine-border-width-strong) solid var(--hdf-engine-color-focus);
  outline-offset: var(--hdf-engine-space-1);
}


.hdf-cart-line__remove button {
  width: var(--hdf-engine-cart-quantity-height, var(--hdf-engine-control-height-md));
  height: var(--hdf-engine-cart-quantity-height, var(--hdf-engine-control-height-md));
  min-width: var(--hdf-engine-cart-quantity-height, var(--hdf-engine-control-height-md));
  justify-content: center;
  border: var(--hdf-engine-border-width-default) solid transparent;
  border-radius: var(--hdf-engine-control-radius);
  color: var(--hdf-engine-color-danger-text);
}

.hdf-cart-line__remove button:hover,
.hdf-cart-line__remove button:focus-visible {
  border-color: var(--hdf-engine-color-danger);
  background: var(--hdf-engine-color-danger-soft);
  text-decoration: none;
}

.hdf-cart-summary__checkout,
.hdf-cart-progress li.is-current > span {
  border-color: var(--hdf-engine-cart-primary, var(--hdf-engine-color-primary-strong));
  background: var(--hdf-engine-cart-primary, var(--hdf-engine-color-primary-strong));
}

.hdf-cart-summary {
  position: static !important;
  top: auto !important;
}


/* D9 (2026-10-22 device audit): the empty panel's fluid padding above
 * (2rem floor, growing at 7vw) left the message column at 292px (74.9%)
 * on a 390px phone and ballooned to 53.76px per side at 768px. Below
 * desktop widths the panel uses calmer padding; the desktop clamp on the
 * base rule is unchanged. */
@media (max-width: 63.999rem) {
  .hdf-cart-empty {
    padding: var(--hdf-engine-cart-panel-padding);
  }
}

@media (max-width: 47.999rem) {
  .hdf-cart-empty {
    padding-inline: var(--hdf-engine-space-3);
  }
}
