/* ================================================================
   IDA CHECKOUT — Design System v6.5.2
   CSS-variable driven, preset-switchable, white-label ready.
   All values reference tokens — nothing hardcoded except fallbacks.
   ================================================================ */

/* ── Design token defaults (overridden by PHP injection) ─────── */
:root {
  --ida-co-primary:       #E9530D;
  --ida-co-bg:            #0D0D0D;
  --ida-co-surface:       #111111;
  --ida-co-surface-2:     #1a1a1a;
  --ida-co-border:        #1e1e1e;
  --ida-co-text:          #ffffff;
  --ida-co-text-muted:    #888888;
  --ida-co-success:       #4caf82;
  --ida-co-input-bg:      #0a0a0a;
  --ida-co-input-border:  #2a2a2a;
  --ida-co-btn-text:      #000000;
  --ida-co-radius:        0px;
  --ida-co-font:          'Barlow Condensed', sans-serif;
  --ida-co-tracking:      .12em;
  --ida-co-density:       1;
  /* Typography scale (set by PHP) */
  --ida-co-font-scale:    1;
  --ida-co-input-pad:     10px 13px;
  --ida-co-input-height:  42px;
  --ida-co-input-fs:      14px;
  --ida-co-container-width: 880px;
  /* Derived spacing scale */
  --ida-co-gap:           calc(20px * var(--ida-co-density));
  --ida-co-pad:           calc(24px * var(--ida-co-density));
  --ida-co-pad-sm:        calc(14px * var(--ida-co-density));
}

/* ── Page base ────────────────────────────────────────────────── */
body.ida-checkout-page {
  background: var(--ida-co-bg) !important;
  color: var(--ida-co-text) !important;
  font-family: var(--ida-co-font) !important;
  min-height: 100vh;
}

.ida-checkout-page .site-header,
.ida-checkout-page #masthead,
.ida-checkout-page .main-navigation,
.ida-checkout-page header.entry-header,
.ida-checkout-page .page-header {
  display: none !important;
}

.ida-checkout-page .site-content,
.ida-checkout-page #primary,
.ida-checkout-page .entry-content,
.ida-checkout-page main {
  background: var(--ida-co-bg) !important;
  padding: 0 !important;
  margin: 0 !important;
  max-width: none !important;
}

/* ── Root shortcode container ─────────────────────────────────── */
.ida-co {
  background: var(--ida-co-bg);
  color: var(--ida-co-text);
  font-family: var(--ida-co-font);
  min-height: 100vh;
  padding: var(--ida-co-pad) max(16px, env(safe-area-inset-left, 16px));
  padding-bottom: calc(var(--ida-co-pad) + env(safe-area-inset-bottom, 0px));
  max-width: var(--ida-co-container-width, 880px);
  margin: 0 auto;
  box-sizing: border-box;
}

/* ── Logo ─────────────────────────────────────────────────────── */
.ida-co-logo {
  margin-bottom: var(--ida-co-gap);
}
.ida-co-logo img {
  height: 36px;
  width: auto;
  display: block;
  filter: brightness(0) invert(1);
  opacity: .85;
}

/* ── Section title ────────────────────────────────────────────── */
.ida-co-section-title {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: var(--ida-co-tracking);
  text-transform: uppercase;
  color: var(--ida-co-text-muted);
  margin: 0 0 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.ida-co-section-title::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--ida-co-border);
}

/* Diamond divider variant */
.ida-co[data-divider="diamond"] .ida-co-section-title::after {
  background: none;
  border-top: 1px solid var(--ida-co-border);
}
.ida-co[data-divider="diamond"] .ida-co-section-title::before {
  content: '◆';
  font-size: 6px;
  color: var(--ida-co-primary);
  order: 99;
}

/* ── Cart items ───────────────────────────────────────────────── */
.ida-co-items {
  display: grid;
  gap: 0;
  background: var(--ida-co-surface);
  border: 1px solid var(--ida-co-border);
  border-radius: var(--ida-co-radius);
  overflow: hidden;
  margin-bottom: var(--ida-co-gap);
}

.ida-co-item {
  display: grid;
  grid-template-columns: 72px 1fr auto auto auto;
  align-items: center;
  gap: 14px;
  padding: var(--ida-co-pad-sm) var(--ida-co-pad-sm);
  border-bottom: 1px solid var(--ida-co-border);
  transition: background .15s;
}
.ida-co-item:last-child { border-bottom: none; }
.ida-co-item:hover { background: var(--ida-co-surface-2); }

.ida-co-item-img-wrap {
  width: 72px;
  height: 72px;
  background: var(--ida-co-surface-2);
  border: 1px solid var(--ida-co-border);
  border-radius: calc(var(--ida-co-radius) * 0.5);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.ida-co-item-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ida-co-item-info { min-width: 0; }

.ida-co-item-name {
  font-size: calc(13px * var(--ida-co-font-scale, 1));
  font-weight: 700;
  color: var(--ida-co-text);
  letter-spacing: .02em;
  line-height: 1.3;
}

.ida-co-item-attrs {
  font-size: calc(11px * var(--ida-co-font-scale, 1));
  color: var(--ida-co-text-muted);
  margin-top: 3px;
  letter-spacing: .03em;
}

/* Controls wrapper — inline on desktop, own row on mobile */
.ida-co-item-controls {
  display: contents; /* transparent to grid on desktop */
}

.ida-co-item-qty-wrap {
  display: flex;
  align-items: center;
  gap: 2px;
  white-space: nowrap;
}
.ida-co-qty-btn {
  width: 28px;
  height: 28px;
  background: var(--ida-co-surface-2);
  border: 1px solid var(--ida-co-border);
  border-radius: var(--ida-co-radius);
  color: var(--ida-co-text);
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .12s, border-color .12s;
  flex-shrink: 0;
  -webkit-tap-highlight-color: transparent;
}
.ida-co-qty-btn:hover {
  background: var(--ida-co-primary);
  border-color: var(--ida-co-primary);
  color: var(--ida-co-btn-text);
}
.ida-co-qty-btn:active { transform: scale(.92); }
.ida-co-qty-btn:disabled {
  opacity: .3;
  cursor: not-allowed;
}
.ida-co-qty-val {
  min-width: 32px;
  text-align: center;
  font-size: 14px;
  font-weight: 900;
  color: var(--ida-co-text);
}
/* Remove item button */
.ida-co-item-remove {
  background: transparent;
  border: none;
  color: var(--ida-co-text-muted);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--ida-co-radius);
  flex-shrink: 0;
  transition: color .12s, background .12s;
  -webkit-tap-highlight-color: transparent;
  align-self: center;
}
.ida-co-item-remove:hover {
  color: #e05555;
  background: rgba(224,85,85,.08);
}
/* Loading state while updating */
.ida-co-item.is-updating {
  opacity: .5;
  pointer-events: none;
  transition: opacity .2s;
}

.ida-co-item-price {
  text-align: right;
  font-size: calc(15px * var(--ida-co-font-scale, 1));
  font-weight: 900;
  color: var(--ida-co-text);
  white-space: nowrap;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

/* ── Price badge ──────────────────────────────────────────────── */
.ida-co-price-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--ida-co-primary);
  color: var(--ida-co-btn-text);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 2px;
}

/* ── Totals ───────────────────────────────────────────────────── */
.ida-co-totals {
  background: var(--ida-co-surface);
  border: 1px solid var(--ida-co-border);
  border-radius: var(--ida-co-radius);
  overflow: hidden;
  margin-bottom: var(--ida-co-gap);
}

.ida-co-totals-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 10px var(--ida-co-pad-sm);
  border-bottom: 1px solid var(--ida-co-border);
  font-size: 13px;
  gap: 16px;
}
.ida-co-totals-row:last-child { border-bottom: none; }

.ida-co-totals-row span:first-child {
  color: var(--ida-co-text-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: var(--ida-co-tracking);
  text-transform: uppercase;
}

.ida-co-totals-total {
  background: var(--ida-co-surface-2);
  border-top: 2px solid var(--ida-co-border);
}
.ida-co-totals-total span:first-child {
  color: var(--ida-co-text) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  letter-spacing: var(--ida-co-tracking) !important;
}
.ida-co-totals-total span:last-child {
  font-size: calc(22px * var(--ida-co-font-scale, 1));
  font-weight: 900;
  color: var(--ida-co-text);
  letter-spacing: -.01em;
}

/* ── Shipping display ─────────────────────────────────────────── */
.ida-co-shipping-cell {
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.ida-co-shipping-was {
  color: var(--ida-co-text-muted);
  text-decoration: line-through;
  font-size: 12px;
}
.ida-co-shipping-free {
  color: var(--ida-co-success);
  font-weight: 900;
  font-size: 13px;
}
.ida-co-shipping-note {
  font-size: 11px;
  color: var(--ida-co-text-muted);
  font-weight: 400;
}
.ida-co-totals-free-shipping .ida-co-totals-row {
  color: var(--ida-co-success);
}

/* ── Trust signals ────────────────────────────────────────────── */
.ida-co-trust {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: var(--ida-co-gap);
  padding: 12px var(--ida-co-pad-sm);
  background: var(--ida-co-surface);
  border: 1px solid var(--ida-co-border);
  border-radius: var(--ida-co-radius);
}
.ida-co-trust-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: calc(11px * var(--ida-co-font-scale, 1));
  font-weight: 700;
  color: var(--ida-co-text-muted);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.ida-co-trust-icon {
  color: var(--ida-co-primary);
  font-size: 14px;
  flex-shrink: 0;
}

/* ── Review actions ───────────────────────────────────────────── */
.ida-co-review-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: var(--ida-co-gap);
}

.ida-co-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--ida-co-font);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: var(--ida-co-tracking);
  text-transform: uppercase;
  padding: 14px 20px;
  border: none;
  border-radius: var(--ida-co-radius);
  cursor: pointer;
  transition: transform .15s, filter .15s, box-shadow .15s;
  text-decoration: none;
  white-space: nowrap;
  -webkit-tap-highlight-color: transparent;
}
.ida-co-btn:active { transform: scale(.97); }

.ida-co-btn-primary {
  background: var(--ida-co-primary);
  color: var(--ida-co-btn-text);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 7px), calc(100% - 7px) 100%, 0 100%);
}
.ida-co-btn-primary:hover {
  filter: brightness(1.1);
  box-shadow: 0 4px 20px color-mix(in srgb, var(--ida-co-primary) 40%, transparent);
}

.ida-co-btn-secondary {
  background: transparent;
  color: var(--ida-co-text);
  border: 1px solid var(--ida-co-border);
}
.ida-co-btn-secondary:hover {
  border-color: var(--ida-co-text-muted);
  background: var(--ida-co-surface);
}

/* ── Quote badge ──────────────────────────────────────────────── */
.ida-co-quote-badge {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: color-mix(in srgb, var(--ida-co-primary) 8%, transparent);
  border: 1px solid color-mix(in srgb, var(--ida-co-primary) 30%, transparent);
  border-radius: var(--ida-co-radius);
  padding: 14px var(--ida-co-pad-sm);
  margin-bottom: var(--ida-co-gap);
}
.ida-co-quote-badge-icon {
  font-size: 20px;
  color: var(--ida-co-primary);
  line-height: 1;
  flex-shrink: 0;
}
.ida-co-quote-badge-title {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: var(--ida-co-tracking);
  text-transform: uppercase;
  color: var(--ida-co-primary);
  margin-bottom: 3px;
}
.ida-co-quote-badge-body {
  font-size: 12px;
  color: var(--ida-co-text-muted);
  line-height: 1.5;
}

/* ── Procurement panel ────────────────────────────────────────── */
.ida-co-procurement-panel {
  background: var(--ida-co-surface);
  border: 1px solid var(--ida-co-border);
  border-radius: var(--ida-co-radius);
  padding: var(--ida-co-pad-sm);
  margin-bottom: var(--ida-co-gap);
}
.ida-co-procurement-label {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: var(--ida-co-tracking);
  text-transform: uppercase;
  color: var(--ida-co-primary);
  margin-bottom: 10px;
}
.ida-co-procurement-link-wrap {
  display: flex;
  gap: 8px;
  align-items: center;
}
.ida-co-procurement-link-wrap .ida-co-input {
  flex: 1;
  font-size: 11px;
  font-family: monospace;
}
.ida-co-procurement-hint {
  font-size: 11px;
  color: var(--ida-co-text-muted);
  margin-top: 8px;
  line-height: 1.5;
}

/* ── Two-column confirm layout ────────────────────────────────── */
.ida-co-confirm-layout {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: var(--ida-co-gap);
  align-items: start;
}
@media (max-width: 720px) {
  .ida-co-confirm-layout {
    grid-template-columns: 1fr;
  }
}

/* Compact item list in summary column */
.ida-co-items--compact .ida-co-item {
  grid-template-columns: 48px 1fr auto auto;
  gap: 10px;
  padding: 8px 12px;
}
.ida-co-items--compact .ida-co-item-img-wrap {
  width: 48px;
  height: 48px;
}
.ida-co-items--compact .ida-co-item-name {
  font-size: 12px;
}

/* ── Billing form ─────────────────────────────────────────────── */
.ida-co-fields-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
@media (max-width: 500px) {
  .ida-co-fields-grid { grid-template-columns: 1fr; }
}

/* Full-width fields */
.ida-co-fields-grid .ida-co-field:has(input[name="billing_address_1"]),
.ida-co-fields-grid .ida-co-field:has(input[name="billing_address_2"]),
.ida-co-fields-grid .ida-co-field:has(input[name="billing_company"]),
.ida-co-fields-grid .ida-co-field:has(textarea),
.ida-co-field--full {
  grid-column: 1 / -1;
}

.ida-co-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ida-co-field label {
  font-size: calc(10px * var(--ida-co-font-scale, 1));
  font-weight: 900;
  letter-spacing: var(--ida-co-tracking);
  text-transform: uppercase;
  color: var(--ida-co-text-muted);
}

.ida-co-field-hint {
  font-size: 11px;
  color: var(--ida-co-text-muted);
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  margin-left: 6px;
}

.ida-co-field .required { color: var(--ida-co-primary); }

.ida-co-input,
.ida-co-select,
.ida-co-textarea {
  background: var(--ida-co-input-bg);
  border: 1px solid var(--ida-co-input-border);
  border-radius: var(--ida-co-radius);
  color: var(--ida-co-text);
  font-family: var(--ida-co-font);
  font-size: var(--ida-co-input-fs, 14px);
  font-weight: 500;
  padding: var(--ida-co-input-pad, 10px 13px);
  width: 100%;
  box-sizing: border-box;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
  -webkit-appearance: none;
  appearance: none;
}
.ida-co-input:focus,
.ida-co-select:focus,
.ida-co-textarea:focus {
  border-color: var(--ida-co-primary);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--ida-co-primary) 20%, transparent);
}
.ida-co-input::placeholder,
.ida-co-textarea::placeholder { color: var(--ida-co-text-muted); opacity: 1; }

.ida-co-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 34px;
  cursor: pointer;
}

.ida-co-textarea {
  min-height: 80px;
  resize: vertical;
}

/* ── Company fields toggle ────────────────────────────────────── */
.ida-co-company-toggle-row {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.ida-co-company-toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: 1px solid var(--ida-co-border);
  border-radius: var(--ida-co-radius);
  color: var(--ida-co-text-muted);
  font-family: var(--ida-co-font);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 8px 12px;
  cursor: pointer;
  transition: border-color .15s, color .15s;
}
.ida-co-company-toggle-btn:hover,
.ida-co-company-toggle.is-open .ida-co-company-toggle-btn {
  border-color: var(--ida-co-primary);
  color: var(--ida-co-primary);
}
.ida-co-toggle-hint {
  font-size: 10px;
  color: var(--ida-co-text-muted);
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  margin-left: 2px;
}
.ida-co-skip-company {
  background: transparent;
  border: none;
  color: var(--ida-co-text-muted);
  font-family: var(--ida-co-font);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  cursor: pointer;
  padding: 4px 0;
  margin-left: auto;
  transition: color .15s;
  white-space: nowrap;
}
.ida-co-skip-company:hover { color: var(--ida-co-text-muted); opacity: .6; }

.ida-co-company-fields {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 12px;
}

/* ── Payment methods ──────────────────────────────────────────── */
.ida-co-payment-section {
  background: var(--ida-co-surface);
  border: 1px solid var(--ida-co-border);
  border-radius: var(--ida-co-radius);
  overflow: hidden;
  margin-bottom: var(--ida-co-gap);
}
.ida-co-payment-section .woocommerce-checkout-payment {
  padding: var(--ida-co-pad-sm);
}
.ida-co-payment-section .wc_payment_method label {
  color: var(--ida-co-text) !important;
  font-size: 13px !important;
}
.ida-co-payment-section .payment_box {
  background: var(--ida-co-surface-2) !important;
  color: var(--ida-co-text-muted) !important;
  font-size: 12px !important;
}

/* ── Place order button ───────────────────────────────────────── */
.ida-co-place-order-wrap {
  margin-top: var(--ida-co-gap);
}
.ida-co-place-order-wrap #place_order,
.ida-co-place-order-wrap .button.alt {
  width: 100%;
  background: var(--ida-co-primary) !important;
  color: var(--ida-co-btn-text) !important;
  font-family: var(--ida-co-font) !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  letter-spacing: var(--ida-co-tracking) !important;
  text-transform: uppercase !important;
  padding: 16px 24px !important;
  border: none !important;
  border-radius: var(--ida-co-radius) !important;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%);
  cursor: pointer !important;
  transition: filter .15s, box-shadow .15s !important;
}
.ida-co-place-order-wrap #place_order:hover {
  filter: brightness(1.12) !important;
  box-shadow: 0 6px 24px color-mix(in srgb, var(--ida-co-primary) 35%, transparent) !important;
}

/* ── Freight waiver notice ────────────────────────────────────── */
.ida-co-freight-waiver-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  background: color-mix(in srgb, var(--ida-co-success) 8%, transparent);
  border: 1px solid color-mix(in srgb, var(--ida-co-success) 25%, transparent);
  border-radius: var(--ida-co-radius);
  padding: 10px 14px;
  font-size: 11px;
  color: var(--ida-co-success);
  margin-bottom: var(--ida-co-gap);
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.ida-co-freight-waiver-notice::before { content: '✓'; font-size: 14px; }

/* ── Expired / empty states ───────────────────────────────────── */
.ida-co-expired,
.ida-co-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 60vh;
  text-align: center;
  gap: 16px;
}
.ida-co-expired-icon,
.ida-co-empty-icon {
  font-size: 48px;
  color: var(--ida-co-primary);
  opacity: .4;
}
.ida-co-expired-title,
.ida-co-empty-title {
  font-size: 20px;
  font-weight: 900;
  letter-spacing: var(--ida-co-tracking);
  text-transform: uppercase;
  color: var(--ida-co-text);
}
.ida-co-expired-body,
.ida-co-empty-body {
  font-size: 13px;
  color: var(--ida-co-text-muted);
  max-width: 400px;
  line-height: 1.6;
}

/* ── Owner-operator mode (below corporate threshold) ─────────── */
.ida-co[data-mode="owner-operator"] .ida-co-confirm-layout {
  grid-template-columns: 1fr;
}
.ida-co[data-mode="owner-operator"] .ida-co-confirm-summary {
  display: none;
}

/* ── Texture overlay (optional, InterDiamant brand) ──────────── */
.ida-co[data-texture="1"]::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image: repeating-linear-gradient(
    -45deg,
    transparent,
    transparent 4px,
    color-mix(in srgb, var(--ida-co-primary) 3%, transparent) 4px,
    color-mix(in srgb, var(--ida-co-primary) 3%, transparent) 5px
  );
  pointer-events: none;
  z-index: 0;
}
.ida-co[data-texture="1"] > * { position: relative; z-index: 1; }

/* ── WooCommerce overrides ────────────────────────────────────── */
.ida-checkout-page .woocommerce-notices-wrapper { display: none; }
.ida-checkout-page .woocommerce-privacy-policy-text { display: none; }
.ida-checkout-page .woocommerce form .form-row {
  padding: 0 !important;
  margin: 0 !important;
}
.ida-checkout-page .woocommerce-checkout .select2-container .select2-selection--single {
  background: var(--ida-co-input-bg) !important;
  border-color: var(--ida-co-input-border) !important;
  height: 42px !important;
}
.ida-checkout-page .select2-selection__rendered {
  color: var(--ida-co-text) !important;
  line-height: 42px !important;
  padding-left: 13px !important;
}

/* ── Loading state ────────────────────────────────────────────── */
.ida-co-btn.is-loading {
  opacity: .6;
  pointer-events: none;
  position: relative;
}
.ida-co-btn.is-loading::after {
  content: '';
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 14px;
  height: 14px;
  border: 2px solid transparent;
  border-top-color: currentColor;
  border-radius: 50%;
  animation: ida-co-spin .7s linear infinite;
}
@keyframes ida-co-spin { to { transform: translateY(-50%) rotate(360deg); } }

/* ── Menu cart shortcode ──────────────────────────────────────── */
.ida-menu-cart {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  color: inherit;
  position: relative;
  padding: 4px 2px;
  font-family: inherit;
}
.ida-menu-cart-icon { vertical-align: middle; flex-shrink: 0; }
.ida-menu-cart-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  background: var(--ida-cart-primary, #E9530D);
  color: #000;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0;
  transition: transform .2s cubic-bezier(.34,1.56,.64,1);
  vertical-align: middle;
}
.ida-menu-cart-count.is-empty,
.ida-menu-cart-count:empty { display: none !important; }
.ida-menu-cart:hover .ida-menu-cart-count,
.ida-menu-cart:focus .ida-menu-cart-count { transform: scale(1.2); }
.ida-menu-cart-label { font-size: inherit; }
.ida-menu-cart-total { font-size: 12px; opacity: .75; }
.ida-dark-header .ida-menu-cart,
.ida-dark .ida-menu-cart { color: #fff; }

/* ================================================================
   RESPONSIVE — IDA Checkout
   Mobile-first additions: 640 / 480 / 380
   ================================================================ */

/* ── 640px — tablet / large phone ────────────────────────────── */
@media (max-width: 640px) {

  .ida-co {
    padding: 16px 14px;
    padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  }

  /* Confirm layout: earlier collapse — no fixed 360px sidebar */
  .ida-co-confirm-layout {
    grid-template-columns: 1fr;
  }

  /* Reduce gap between sections */
  :root {
    --ida-co-gap: calc(16px * var(--ida-co-density));
    --ida-co-pad: calc(16px * var(--ida-co-density));
    --ida-co-pad-sm: calc(12px * var(--ida-co-density));
  }

  /* Trust signals: smaller text, tighter gaps */
  .ida-co-trust {
    padding: 10px 12px;
    gap: 12px;
  }
  .ida-co-trust-item {
    font-size: 10px;
  }

  /* Review action buttons: stack early */
  .ida-co-review-actions {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  /* Compact layout in confirm summary column */
  .ida-co-items--compact .ida-co-item {
    grid-template-columns: 40px 1fr auto auto;
    padding: 6px 10px;
    gap: 8px;
  }
  .ida-co-items--compact .ida-co-item-img-wrap {
    width: 40px;
    height: 40px;
  }

  /* Section title stays readable */
  .ida-co-section-title {
    font-size: 9px;
  }

  /* Totals total value */
  .ida-co-totals-total span:last-child {
    font-size: calc(20px * var(--ida-co-font-scale, 1));
  }

  /* Procurement link: stack input and button */
  .ida-co-procurement-link-wrap {
    flex-direction: column;
    gap: 8px;
  }
  .ida-co-procurement-link-wrap .ida-co-input {
    width: 100%;
  }
  .ida-co-procurement-link-wrap .ida-co-btn {
    width: 100%;
    justify-content: center;
  }
}

/* ── 480px — standard phone ───────────────────────────────────── */
@media (max-width: 480px) {

  .ida-co {
    padding: 12px 12px;
    padding-bottom: calc(20px + env(safe-area-inset-bottom, 0px));
  }

  /* ── Item row: 2-row card layout ─────────────────────────── */
  /* Row 1: [image] [product name + attrs]                        */
  /* Row 2: [image] [qty controls · price · ×]                   */
  .ida-co-item {
    grid-template-columns: 56px 1fr;
    grid-template-rows: auto auto;
    gap: 4px 10px;
    padding: 10px 10px;
    align-items: start;
  }

  .ida-co-item-img-wrap {
    width: 56px;
    height: 56px;
    grid-row: 1 / 3;
    align-self: start;
  }

  .ida-co-item-info {
    grid-column: 2;
    grid-row: 1;
    padding-bottom: 2px;
    min-width: 0;
  }

  .ida-co-item-name {
    font-size: calc(13px * var(--ida-co-font-scale, 1));
    line-height: 1.35;
  }

  /* Controls div sits on row 2, spans remaining width */
  .ida-co-item-controls {
    grid-column: 2;
    grid-row: 2;
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
  }

  .ida-co-item-qty-wrap {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
  }

  .ida-co-item-price {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    flex-direction: row;
    font-size: calc(14px * var(--ida-co-font-scale, 1));
  }

  .ida-co-item-remove {
    flex-shrink: 0;
    align-self: center;
  }

  /* Qty buttons slightly smaller */
  .ida-co-qty-btn {
    width: 26px;
    height: 26px;
    font-size: 15px;
  }
  .ida-co-qty-val {
    min-width: 26px;
    font-size: 13px;
  }

  /* Item price font */
  .ida-co-item-price {
    font-size: calc(14px * var(--ida-co-font-scale, 1));
  }

  /* Price badge: very small on mobile */
  .ida-co-price-badge {
    font-size: 8px;
    padding: 2px 5px;
  }

  /* Totals: tighter */
  .ida-co-totals-row {
    padding: 8px 10px;
    font-size: 12px;
  }
  .ida-co-totals-row span:first-child {
    font-size: 10px;
  }
  .ida-co-totals-total span:last-child {
    font-size: calc(18px * var(--ida-co-font-scale, 1));
  }

  /* Shipping note: hide verbose text */
  .ida-co-shipping-note {
    display: none;
  }

  /* Trust signals: tighten further */
  .ida-co-trust {
    gap: 8px;
  }
  .ida-co-trust-item {
    font-size: 9px;
    gap: 4px;
  }
  .ida-co-trust-icon {
    font-size: 12px;
  }

  /* Button: full width */
  .ida-co-btn {
    width: 100%;
    justify-content: center;
    font-size: 12px;
    padding: 13px 16px;
  }

  /* Fields grid: single column */
  .ida-co-fields-grid {
    grid-template-columns: 1fr;
  }

  /* Logo: smaller */
  .ida-co-logo img {
    height: 28px;
  }

  /* Section title: tighter bottom margin */
  .ida-co-section-title {
    margin-bottom: 8px;
    font-size: 9px;
  }

  /* Company toggle row: stack on tiny screens */
  .ida-co-company-toggle-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .ida-co-skip-company {
    margin-left: 0;
    align-self: flex-end;
  }

  /* Quote badge: hide icon to save space */
  .ida-co-quote-badge-icon {
    display: none;
  }

  /* Place order button */
  .ida-co-place-order-wrap #place_order,
  .ida-co-place-order-wrap .button.alt {
    font-size: 14px !important;
    padding: 14px 20px !important;
  }
}

/* ── 380px — small phones (SE, older Androids) ────────────────── */
@media (max-width: 380px) {

  .ida-co {
    padding: 10px 10px;
  }

  .ida-co-item {
    padding: 8px 8px;
    gap: 0 8px;
  }

  .ida-co-item-img-wrap {
    width: 48px;
    height: 48px;
  }

  /* Collapse the item controls further: stack price below qty */
  .ida-co-item-price {
    font-size: 13px;
  }

  .ida-co-qty-btn {
    width: 24px;
    height: 24px;
    font-size: 14px;
  }
  .ida-co-qty-val {
    min-width: 22px;
    font-size: 12px;
  }

  /* Totals: minimal */
  .ida-co-totals-row {
    padding: 7px 8px;
  }

  .ida-co-btn {
    font-size: 11px;
    padding: 12px 14px;
  }

  /* Trust signals: 2 per row max */
  .ida-co-trust {
    padding: 8px 10px;
  }
}

/* ── Safe area: ensure last items aren't hidden behind home bar ── */
@media (max-width: 767px) {

  /* When mobile nav is present, add enough bottom clearance */
  body.ida-has-mobile-nav .ida-co {
    padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px));
  }

  /* Keep the Continue to Details button above the mobile nav */
  .ida-co-review-actions {
    position: sticky;
    bottom: env(safe-area-inset-bottom, 0px);
    background: linear-gradient(
      to top,
      var(--ida-co-bg) 70%,
      transparent 100%
    );
    padding-top: 16px;
    padding-bottom: 16px;
    margin-top: 4px;
    z-index: 10;
  }

  body.ida-has-mobile-nav .ida-co-review-actions {
    bottom: calc(64px + env(safe-area-inset-bottom, 0px));
  }
}
