/**
 * InFront — category / listing product-card actions
 * Matches cart + checkout primary CTA styling (ift-cart-totals).
 */

/* Equal-height cards; pin CTA to the bottom of each card */
.products-grid .js-product-miniature-wrapper {
  display: flex;
  flex-direction: column;
}

.products-grid .product-miniature,
.product-miniature.product-miniature-grid {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.products-grid .product-miniature .product-description,
.product-miniature.product-miniature-grid .product-description {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  padding-top: 0.35rem;
  padding-bottom: 0.5rem;
}

/* Overlay layout (layout 3): flex the inner stack too */
.products-grid .product-miniature-layout-3 .product-description-inner {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
}

/* Square thumbs (see ift-a11y.css) — keep title close to the image */
.product-miniature .thumbnail-container {
  margin-bottom: 0;
}

.product-miniature .product-title {
  margin-top: 0;
}

/*
 * Pin price level across cards, directly above add-to-cart.
 * Flexible space sits between title/meta and the price block.
 */
.products-grid .product-miniature .product-description > .product-price-and-shipping,
.products-grid .product-miniature-layout-3 .product-description-inner > .product-price-and-shipping,
.product-miniature.product-miniature-grid .product-description > .product-price-and-shipping {
  margin-top: auto;
  padding-top: 0.5rem;
  flex-shrink: 0;
}

.product-miniature .ift-product-card-cta {
  display: flex;
  flex-direction: column;
  width: 100%;
  margin-top: auto; /* fallback when price is hidden */
  padding-top: 0.5rem;
  flex-shrink: 0;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
}

/* Keep CTA flush under price (no shared flex gap between them) */
.products-grid .product-miniature .product-description > .product-price-and-shipping ~ .ift-product-card-cta,
.products-grid .product-miniature-layout-3 .product-description-inner > .product-price-and-shipping ~ .ift-product-card-cta,
.product-miniature.product-miniature-grid .product-description > .product-price-and-shipping ~ .ift-product-card-cta {
  margin-top: 0;
}

.product-miniature .ift-product-card-cta .product-add-cart {
  margin-top: 0;
  width: 100%;
}

.product-miniature .ift-product-card-cta .product-add-cart form,
.product-miniature .ift-product-card-cta .input-group-add-cart {
  width: 100% !important;
  max-width: 100%;
  margin: 0;
}

/* Timer cap sits on top of the add-to-cart button */
.product-miniature .ift-product-card-cta .price-countdown-wrapper,
.product-miniature .ift-product-card-cta .ift-sale-timer {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  line-height: 1;
}

.product-miniature .ift-product-card-cta .price-countdown,
.product-miniature .ift-product-card-cta .ift-sale-timer__bar {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
  width: 100%;
  margin: 0;
  padding: 0.4rem 0.55rem;
  border: 0;
  border-radius: 0;
  background: linear-gradient(180deg, #0f172a 0%, #111827 100%);
  color: #f8fafc;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  box-shadow: none;
}

.product-miniature .ift-product-card-cta .price-countdown-title,
.product-miniature .ift-product-card-cta .ift-sale-timer__label {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin: 0;
  padding: 0;
  border: 0;
  color: #94a3b8;
  font-size: 0.625rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.product-miniature .ift-product-card-cta .price-countdown-title .fa,
.product-miniature .ift-product-card-cta .ift-sale-timer__label .fa {
  margin: 0;
  color: #38bdf8;
  font-size: 0.7rem;
}

.product-miniature .ift-product-card-cta .price-countdown-title .time-txt,
.product-miniature .ift-product-card-cta .ift-sale-timer__label .time-txt {
  color: #94a3b8;
}

.product-miniature .ift-product-card-cta .count-down-timer,
.product-miniature .ift-product-card-cta .ift-sale-timer__digits {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  color: #f8fafc;
}

.product-miniature .ift-product-card-cta .countdown-time-group {
  display: inline-flex;
  align-items: baseline;
  gap: 0.12rem;
  color: #94a3b8;
  font-size: 0.5625rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.product-miniature .ift-product-card-cta .countdown-time {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.45rem;
  padding: 0.12rem 0.28rem;
  border-radius: 5px;
  background: rgba(56, 189, 248, 0.14);
  color: #7dd3fc;
  font-size: 0.75rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
  line-height: 1.2;
}

/* Kill the old orange/full-width bar look under the price */
.product-miniature .product-price-and-shipping > .price-countdown-wrapper {
  display: none;
}

.product-miniature .product-add-cart {
  margin-top: 0;
  width: 100%;
}

.product-miniature .product-add-cart form {
  margin: 0;
  width: 100%;
  max-width: 100%;
}

.product-miniature .input-group-add-cart {
  display: flex;
  align-items: stretch;
  gap: 0.4rem;
  width: 100% !important;
  max-width: 100%;
}

.product-miniature .input-group-add-cart .input-qty {
  flex: 0 0 3rem;
  width: 3rem;
  min-height: 2.5rem;
  padding: 0.35rem 0.25rem;
  border: 1px solid var(--ift-totals-line, #e2e8f0);
  border-radius: 10px;
  background: var(--ift-totals-soft, #f8fafc);
  color: var(--ift-totals-ink, #0f172a);
  font-size: 0.875rem;
  font-weight: 700;
  text-align: center;
  box-shadow: none;
}

.product-miniature .input-group-add-cart .input-qty:focus {
  border-color: #7dd3fc;
  outline: 0;
  box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.15);
}

/* Primary add-to-cart — same language as .ift-cart-totals__checkout-btn */
.product-miniature .product-add-cart .btn-product-list.add-to-cart,
.product-miniature .product-add-cart .btn.btn-product-list.add-to-cart {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  flex: 1 1 auto;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 2.5rem !important;
  height: auto !important;
  padding: 0.5rem 0.85rem !important;
  border: 0 !important;
  border-radius: 12px;
  background: linear-gradient(
    135deg,
    var(--ift-totals-brand-dark, #0f766e) 0%,
    var(--ift-totals-brand, #0ea5e9) 55%,
    var(--ift-totals-brand-2, #10b981) 100%
  ) !important;
  background-image: linear-gradient(
    135deg,
    var(--ift-totals-brand-dark, #0f766e) 0%,
    var(--ift-totals-brand, #0ea5e9) 55%,
    var(--ift-totals-brand-2, #10b981) 100%
  ) !important;
  box-shadow: 0 8px 20px rgba(14, 165, 233, 0.28);
  color: #fff !important;
  font-size: 0.875rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.2;
  text-transform: none;
  text-decoration: none !important;
  white-space: nowrap;
  touch-action: manipulation;
  transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}

/* When timer is stacked on the button, share edges */
.product-miniature .ift-product-card-cta:has(.price-countdown-wrapper) .product-add-cart .btn-product-list.add-to-cart,
.product-miniature .ift-product-card-cta:has(.price-countdown-wrapper) .product-add-cart .btn.btn-product-list.add-to-cart,
.product-miniature .ift-product-card-cta:has(.price-countdown-wrapper) .product-add-cart > .btn-product-list:not(.add-to-cart),
.product-miniature .ift-product-card-cta:has(.price-countdown-wrapper) .product-add-cart a.btn-product-list {
  border-radius: 0 !important;
  box-shadow: none !important;
  transform: none;
}

.product-miniature .ift-product-card-cta:has(.price-countdown-wrapper):hover .product-add-cart .btn-product-list.add-to-cart {
  filter: brightness(1.04);
}

.product-miniature .product-add-cart .btn-product-list.add-to-cart:hover,
.product-miniature .product-add-cart .btn-product-list.add-to-cart:focus,
.product-miniature .product-add-cart .btn.btn-product-list.add-to-cart:hover,
.product-miniature .product-add-cart .btn.btn-product-list.add-to-cart:focus {
  transform: translateY(-1px);
  box-shadow: 0 12px 26px rgba(14, 165, 233, 0.34);
  filter: brightness(1.03);
  color: #fff !important;
}

.product-miniature .ift-product-card-cta:has(.price-countdown-wrapper) .product-add-cart .btn-product-list.add-to-cart:hover,
.product-miniature .ift-product-card-cta:has(.price-countdown-wrapper) .product-add-cart .btn-product-list.add-to-cart:focus {
  transform: none;
  box-shadow: none !important;
}

.product-miniature .product-add-cart .btn-product-list.add-to-cart:active {
  transform: translateY(0);
  box-shadow: 0 6px 14px rgba(14, 165, 233, 0.22);
}

.product-miniature .product-add-cart .btn-product-list.add-to-cart:disabled,
.product-miniature .product-add-cart .btn-product-list.add-to-cart.disabled {
  opacity: 0.55;
  transform: none;
  box-shadow: none;
  filter: none;
  pointer-events: none;
}

.product-miniature .product-add-cart .btn-product-list.add-to-cart .bag-icon,
.product-miniature .product-add-cart .btn-product-list.add-to-cart .spinner-icon,
.product-miniature .product-add-cart .btn-product-list.add-to-cart .fa {
  color: #fff !important;
  font-size: 0.85rem;
}

.product-miniature .product-add-cart .btn-product-list.add-to-cart .spinner-icon {
  display: none;
}

.product-miniature .product-add-cart .btn-product-list.add-to-cart.processing .bag-icon,
.product-miniature .product-add-cart .btn-product-list.add-to-cart.added .bag-icon {
  display: none;
}

.product-miniature .product-add-cart .btn-product-list.add-to-cart.processing .spinner-icon {
  display: inline-block;
}

/* Fallback “View” when not purchasable — matches cart secondary actions */
.product-miniature .product-add-cart > .btn-product-list:not(.add-to-cart),
.product-miniature .product-add-cart a.btn-product-list {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 2.5rem !important;
  height: auto !important;
  padding: 0.5rem 0.85rem !important;
  border: 1px solid var(--ift-totals-line, #e2e8f0) !important;
  border-radius: 12px;
  background: var(--ift-totals-soft, #f8fafc) !important;
  background-image: none !important;
  box-shadow: none;
  color: var(--ift-totals-ink, #0f172a) !important;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  text-transform: none;
  text-decoration: none !important;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.product-miniature .product-add-cart > .btn-product-list:not(.add-to-cart):hover,
.product-miniature .product-add-cart > .btn-product-list:not(.add-to-cart):focus,
.product-miniature .product-add-cart a.btn-product-list:hover,
.product-miniature .product-add-cart a.btn-product-list:focus {
  background: #f0f9ff !important;
  border-color: #bae6fd !important;
  color: var(--ift-totals-brand-dark, #0f766e) !important;
  transform: none;
  filter: none;
}

/* List view: keep button a sensible width */
.product-miniature-list .ift-product-card-cta {
  width: auto;
  min-width: 11rem;
}

.product-miniature-list .product-add-cart .btn-product-list.add-to-cart,
.product-miniature-list .product-add-cart > .btn-product-list:not(.add-to-cart),
.product-miniature-list .product-add-cart a.btn-product-list {
  width: auto;
  min-width: 9.5rem;
}

@media (max-width: 575.98px) {
  .product-miniature .product-add-cart .btn-product-list.add-to-cart,
  .product-miniature .product-add-cart > .btn-product-list:not(.add-to-cart),
  .product-miniature .product-add-cart a.btn-product-list {
    min-height: 2.65rem;
    font-size: 0.8125rem;
  }

  .product-miniature .ift-product-card-cta .countdown-time {
    min-width: 1.3rem;
    font-size: 0.6875rem;
  }
}

/* —— Sale / discount flags (product image badges) —— */
.product-miniature .product-flags.js-product-flags {
  position: absolute;
  top: 0.55rem;
  left: 0.55rem;
  right: auto;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.3rem;
  margin: 0;
  padding: 0;
  list-style: none;
  pointer-events: none;
}

.product-miniature .product-flags .product-flag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 !important;
  padding: 0.28rem 0.55rem !important;
  border: 0 !important;
  border-radius: 999px !important;
  font-size: 0.6875rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.03em;
  line-height: 1.2 !important;
  text-transform: uppercase;
  white-space: nowrap;
  box-shadow: 0 6px 14px rgba(15, 23, 42, 0.14);
}

.product-miniature .product-flags .product-flag.on-sale {
  background: rgba(255, 255, 255, 0.96) !important;
  color: var(--ift-totals-brand-dark, #0f766e) !important;
  border: 1px solid #bae6fd !important;
  box-shadow: 0 4px 12px rgba(14, 165, 233, 0.14);
}

.product-miniature .product-flags .product-flag.discount {
  background: linear-gradient(
    135deg,
    var(--ift-totals-brand-dark, #0f766e) 0%,
    var(--ift-totals-brand, #0ea5e9) 55%,
    var(--ift-totals-brand-2, #10b981) 100%
  ) !important;
  color: #fff !important;
  box-shadow: 0 6px 14px rgba(14, 165, 233, 0.28);
}

.product-miniature .product-flags .product-flag.new {
  background: #0f172a !important;
  color: #7dd3fc !important;
}

.product-miniature .product-flags .product-flag.pack,
.product-miniature .product-flags .product-flag.online-only {
  background: #f8fafc !important;
  color: #0f172a !important;
  border: 1px solid #e2e8f0 !important;
}

/* —— Left-column category tree — ink rail / filter-panel design —— */
#left-column .block-categories,
.block-categories {
  --ift-tree-ink: #0f172a;
  --ift-tree-muted: #64748b;
  --ift-tree-brand-dark: #0f766e;
  --ift-tree-brand: #0ea5e9;
  --ift-tree-brand-2: #10b981;
  --ift-tree-line: #e2e8f0;
  --ift-tree-wash: #f1f5f9;
  background: var(--ift-tree-wash) !important;
  border: 1px solid var(--ift-tree-line) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin-bottom: 1.5rem !important;
  width: 100%;
  overflow: hidden;
}

#left-column .block-categories .block-title,
.block-categories .block-title {
  position: relative;
  padding: 0.85rem 1rem !important;
  margin: 0 !important;
  border-bottom: none !important;
  background: var(--ift-tree-ink);
}

#left-column .block-categories .block-title::after,
.block-categories .block-title::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  border-radius: 0;
  background: linear-gradient(
    90deg,
    var(--ift-tree-brand-dark),
    var(--ift-tree-brand) 55%,
    var(--ift-tree-brand-2)
  );
}

#left-column .block-categories .block-title a.back-to-parent,
.block-categories .block-title a.back-to-parent {
  color: #f8fafc !important;
  text-decoration: none !important;
  font-size: 0.75rem !important;
  font-weight: 800 !important;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

#left-column .block-categories .block-title a.back-to-parent:hover,
.block-categories .block-title a.back-to-parent:hover {
  color: #7dd3fc !important;
}

#left-column .block-categories .block-title a.back-to-parent i,
.block-categories .block-title a.back-to-parent i {
  display: inline-block !important;
  margin-right: 0 !important;
  font-size: 0.7rem !important;
  color: #38bdf8 !important;
}

#left-column .block-categories .category-top-menu.block-content,
.block-categories .category-top-menu.block-content {
  padding: 0.35rem 0 !important;
  background: #fff;
}

#left-column .block-categories .category-sub-menu,
.block-categories .category-sub-menu {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: block;
}

#left-column .block-categories .category-sub-menu li.category-tree-item + li.category-tree-item,
.block-categories .category-sub-menu li.category-tree-item + li.category-tree-item {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

#left-column .block-categories .category-sub-menu li.category-tree-item + li.category-tree-item::before,
.block-categories .category-sub-menu li.category-tree-item + li.category-tree-item::before {
  display: none !important;
  content: none !important;
  border: 0 !important;
}

#left-column .block-categories .category-tree-item,
.block-categories .category-tree-item {
  border-bottom: 1px solid var(--ift-tree-line);
}

#left-column .block-categories .category-tree-item:last-child,
.block-categories .category-tree-item:last-child {
  border-bottom: 0;
}

#left-column .block-categories .category-tree-item .collapse,
.block-categories .category-tree-item .collapse {
  border-left: none !important;
  margin: 0 !important;
  padding: 0 0 0.25rem 0.85rem !important;
  background: #f8fafc !important;
  border-radius: 0 !important;
  box-shadow: inset 3px 0 0 rgba(14, 165, 233, 0.35);
}

#left-column .block-categories .category-tree-item .collapse .category-tree-item,
.block-categories .category-tree-item .collapse .category-tree-item {
  border-bottom-color: #eef2f7;
}

#left-column .block-categories .category-tree-node-wrapper,
.block-categories .category-tree-node-wrapper {
  transition: background-color 0.15s ease, color 0.15s ease;
  border-radius: 0 !important;
  margin-bottom: 0 !important;
  cursor: pointer;
  min-height: 2.5rem;
  display: flex !important;
  align-items: center;
  width: 100%;
  position: relative;
  padding: 0.45rem 0.85rem 0.45rem 1rem !important;
  gap: 0.35rem;
  background: transparent !important;
  box-shadow: none !important;
}

#left-column .block-categories .category-tree-node-wrapper::before,
.block-categories .category-tree-node-wrapper::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.45rem;
  bottom: 0.45rem;
  width: 3px;
  border-radius: 0 2px 2px 0;
  background: transparent;
  transition: background 0.15s ease;
}

#left-column .block-categories .category-tree-node-wrapper:hover,
.block-categories .category-tree-node-wrapper:hover {
  background-color: #f8fafc !important;
}

#left-column .block-categories .category-tree-node-wrapper:hover::before,
.block-categories .category-tree-node-wrapper:hover::before {
  background: rgba(14, 165, 233, 0.45);
}

#left-column .block-categories .category-tree-item:has(> .collapse.show) > .category-tree-node-wrapper,
.block-categories .category-tree-item:has(> .collapse.show) > .category-tree-node-wrapper {
  background: #f8fafc !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

#left-column .block-categories .category-tree-item:has(> .collapse.show) > .category-tree-node-wrapper::before,
.block-categories .category-tree-item:has(> .collapse.show) > .category-tree-node-wrapper::before {
  background: linear-gradient(
    180deg,
    var(--ift-tree-brand-dark),
    var(--ift-tree-brand),
    var(--ift-tree-brand-2)
  );
}

#left-column .block-categories .category-tree-item:has(> .collapse.show) > .category-tree-node-wrapper a,
.block-categories .category-tree-item:has(> .collapse.show) > .category-tree-node-wrapper a {
  font-weight: 700 !important;
  color: var(--ift-tree-brand-dark) !important;
}

#left-column .block-categories .chevron-hat,
.block-categories .chevron-hat {
  margin-left: auto;
  flex-shrink: 0;
  color: var(--ift-tree-muted) !important;
  width: 1.25rem;
  height: 1.25rem;
  display: flex !important;
  align-items: center;
  justify-content: center;
  border-radius: 0;
  background: transparent !important;
  transition: transform 0.2s ease, color 0.15s ease;
}

#left-column .block-categories .category-tree-node-wrapper:hover .chevron-hat,
.block-categories .category-tree-node-wrapper:hover .chevron-hat {
  color: var(--ift-tree-brand) !important;
  background: transparent !important;
}

#left-column .block-categories .category-tree-item:has(> .collapse.show) > .category-tree-node-wrapper .chevron-hat,
.block-categories .category-tree-item:has(> .collapse.show) > .category-tree-node-wrapper .chevron-hat {
  transform: rotate(180deg);
  color: var(--ift-tree-brand-dark) !important;
  background: transparent !important;
}

#left-column .block-categories .category-tree-node-wrapper.active,
.block-categories .category-tree-node-wrapper.active {
  background: rgba(14, 165, 233, 0.1) !important;
  box-shadow: none !important;
}

#left-column .block-categories .category-tree-node-wrapper.active::before,
.block-categories .category-tree-node-wrapper.active::before {
  background: linear-gradient(
    180deg,
    var(--ift-tree-brand-dark),
    var(--ift-tree-brand),
    var(--ift-tree-brand-2)
  );
}

#left-column .block-categories .category-tree-node-wrapper.active a,
#left-column .block-categories .category-tree-node-wrapper.active a .text-muted,
.block-categories .category-tree-node-wrapper.active a,
.block-categories .category-tree-node-wrapper.active a .text-muted {
  color: var(--ift-tree-ink) !important;
  font-weight: 800 !important;
}

#left-column .block-categories .category-tree-node-wrapper.active .text-muted,
.block-categories .category-tree-node-wrapper.active .text-muted {
  background: transparent !important;
  border-color: transparent !important;
  color: var(--ift-tree-brand-dark) !important;
  box-shadow: none !important;
}

#left-column .block-categories .category-tree-node-wrapper.active .chevron-hat,
.block-categories .category-tree-node-wrapper.active .chevron-hat {
  color: var(--ift-tree-brand-dark) !important;
  background: transparent !important;
}

#left-column .block-categories .category-item-link,
.block-categories .category-item-link {
  display: flex !important;
  align-items: baseline;
  flex-wrap: wrap;
  padding: 0 !important;
  color: #334155 !important;
  text-decoration: none !important;
  flex-grow: 1;
  min-width: 0;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  letter-spacing: -0.01em;
}

#left-column .block-categories .category-item-link:hover,
.block-categories .category-item-link:hover {
  color: var(--ift-tree-brand-dark) !important;
}

#left-column .block-categories .category-item-link .text-muted,
.block-categories .category-item-link .text-muted {
  font-size: 0.6875rem !important;
  margin-left: 0.35rem !important;
  color: var(--ift-tree-muted) !important;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em;
  line-height: 1.2;
  box-shadow: none !important;
  font-variant-numeric: tabular-nums;
}

#left-column .block-categories .category-item-link::before,
#left-column .block-categories .category-item-link::after,
#left-column .block-categories .category-sub-link::before,
#left-column .block-categories .category-sub-link::after,
.block-categories .category-item-link::before,
.block-categories .category-item-link::after,
.block-categories .category-sub-link::before,
.block-categories .category-sub-link::after {
  display: none !important;
  content: none !important;
}

