/* =============================================
   PRODUCTS LISTING PAGE STYLES
   ============================================= */

/* ---- HERO ---- */
.products-hero {
  position: relative;
  min-height: 50vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding-top: 100px;
}
.products-hero-content h1{font-size:60px}
.products-hero-bg { position: absolute; inset: 0; z-index: 0; }
.products-hero-bg > img:first-child { width: 100%; height: 100%; object-fit: cover; }
.products-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(235, 248, 248, 0.15) 0%,
    rgba(215, 240, 240, 0.40) 100%
  );
}
.products-deco {
  position: absolute;
  width: 200px;
  height: 280px;
  object-fit: cover;
  border-radius: 20px;
  opacity: 0.8;
  z-index: 1;
}
.products-deco--left { left: -30px; top: 60px; transform: rotate(-15deg); }
.products-deco--right { right: -30px; top: 40px; transform: rotate(12deg); }
.products-hero-content {
  position: relative;
  z-index: 2;
  padding: 80px 32px 60px;
}

/* ---- FILTER BAR ---- */
.products-listing-section { background: var(--white); padding: 60px 0; }
.filter-bar {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  position: relative;
  z-index: 10;
}
.filter-label-text {
  font-size: 0.8rem;
  font-weight: 600;
  color: #78909c;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.filter-dropdowns { display: flex; gap: 10px; }
.filter-dropdown { position: relative; }
.filter-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #8b9fa1  !important; /* Muted design slate grey */
  color: var(--white) !important;
  border: none !important;
  border-radius: 15px !important;
  padding: 8px 20px !important;
  font-size: 0.82rem !important;
  font-weight: 500 !important;
  transition: var(--t);
  cursor: pointer;
}
.filter-btn:hover {
  background: #546e7a !important;
}
.filter-btn i {
  color: var(--white) !important;
}
.filter-menu {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  background: var(--white);
  border: 1px solid rgba(120, 144, 156, 0.2);
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(112, 144, 150, 0.1);
  min-width: 180px;
  z-index: 100;
  overflow: hidden;
  padding: 0;
}
.filter-menu.open { display: block; animation: fadeIn 0.2s ease; }
.filter-menu li {
  padding: 11px 18px;
  font-size: 0.875rem;
  color: #3e5a5e;
  cursor: pointer;
  transition: var(--t);
}
.filter-menu li:hover { background: rgba(206, 226, 230, 0.3); color: #112a2e; }
.filter-menu li:not(:last-child) { border-bottom: 1px solid rgba(120, 144, 156, 0.1); }

/* ---- PRODUCT CARDS ---- */
.product-card-link { display: block; text-decoration: none; color: inherit; height: 100%; }
.product-card {
  border-radius: 15px;
  overflow: hidden;
  position: relative;
  background: var(--white);
  box-shadow: 0 8px 24px rgba(112, 144, 150, 0.06);
  transition: var(--t);
  height: 100%;
}
.product-card:hover {
  box-shadow: 0 16px 40px rgba(112, 144, 150, 0.12);
  transform: translateY(-6px);
}
.product-img-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3/4;
}
.product-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.product-card:hover .product-img { transform: scale(1.08); }

.product-hover-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(17,42,46,0.3) 0%, rgba(17,42,46,0.8) 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  transition: var(--t);
  z-index: 2;
}
.product-card:hover .product-hover-overlay { opacity: 1; }
.product-hover-text {
  color: rgba(255,255,255,0.9);
  font-size: 0.82rem;
  line-height: 1.6;
  text-align: center;
  transform: translateY(10px);
  transition: var(--t);
}
.product-card:hover .product-hover-text { transform: translateY(0); }

.product-card-footer {
  position: absolute;
  bottom: 20px;
  left: 20px;
  z-index: 5;
  background: transparent;
  padding: 0;
  border-top: none;
  align-items: center;
}
.product-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 500;
  color: var(--white) !important;
  background: rgba(17, 42, 46, 0.5) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  padding: 8px 18px;
  border-radius: 99px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  transition: var(--t);
}
.product-card:hover .product-tag {
  background: #78909c !important; /* Exact design slate grey button */
  border-color: rgba(255, 255, 255, 0.4);
}
.product-tag--muted { background: rgba(0, 0, 0, 0.5) !important; }

/* Coming soon product */
.product-card--coming .product-img { opacity: 0.6; filter: grayscale(20%); }
.product-coming-overlay {
  position: absolute;
  inset: 0;
  background: rgba(17, 42, 46, 0.55);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px;
  z-index: 3;
}


.pd-cart-control-row {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 40px;
}

.pd-quantity-stepper {
  display: flex;
  align-items: center;
  
  
  border-radius: 14px;
  height: 54px;
  padding: 0 6px;
  box-shadow: 0 4px 15px rgba(0,0,0,0.01);
      height: 36px;
      margin-left: 10px;
}

.pd-quantity-stepper button {
  width: 42px;
  height: 42px;
  background: #8b9fa1;
  border: none;
  font-size: 1.25rem;
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  transition: background 0.2s ease;
  background: rgba(17, 42, 46, 0.5) !important;
  backdrop-filter: blur(10px);
}
.product-card:hover .pd-quantity-stepper button {
    background: #78909c !important;
    border-color: rgba(255, 255, 255, 0.4);
}

.pd-quantity-stepper button:hover {
  background: #e2ebed;
}

#qtyDisplay {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--brand-dark);
  width: 44px;
  text-align: center;
  color: #fff;
}

.pd-submit-cart-btn {
  flex-grow: 1;
  background-color: var(--brand-slate-button);
  color: #ffffff;
  border: none;
  border-radius: 14px;
  height: 54px;
  font-size: 1rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  cursor: pointer;
  transition: background-color 0.2s cubic-bezier(0.16, 1, 0.3, 1), transform 0.1s ease;
}

.pd-submit-cart-btn:hover {
  background-color: var(--brand-slate-hover);
}

.pd-submit-cart-btn:active {
  transform: scale(0.99);
}


/* Responsive */
@media (max-width: 768px) {
  .products-deco { display: none; }
  .products-hero-content { padding: 60px 20px 40px; }
  .products-hero-content h1{font-size: 20px}
}
