/* ===========================================================
   PRODUCT GRID - DOGELEXUS UI
   PART 1
=========================================================== */

.product-archive{
  max-width:1320px;
  margin-inline:auto;
  padding:0 0 3rem;
}

.pa-toolbar{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  margin-bottom:1.5rem;
}

.pa-title{

  margin:0;

  font-size:1.45rem;

  font-weight:700;

  line-height:1.2;

  color:#FFFFFF;

  text-shadow:
  0 0 12px rgba(111,44,255,.22);

}

.pa-left{

  display:flex;

  flex-wrap:wrap;

  align-items:center;

  gap:.75rem;

}

.pa-filter-badge{

  display:flex;

  align-items:center;

  gap:.45rem;

  padding:.48rem .70rem;

  font-size:.72rem;

  line-height:1;

  color:#D6CFFF;

  background:linear-gradient(
    180deg,
    #170D2D,
    #11071F
  );

  border:1px solid rgba(120,70,255,.25);

  border-radius:10px;

  box-shadow:
  inset 0 1px 0 rgba(255,255,255,.04),
  0 0 14px rgba(111,44,255,.10);

}

.pa-filter-badge strong{

  color:#FFFFFF;

}

.pa-filter-badge .clear{

  display:inline-flex;

  align-items:center;

  justify-content:center;

  text-decoration:none;

  min-width:18px;

  height:18px;

  background:rgba(111,44,255,.18);

  color:#D6CFFF;

  border-radius:5px;

  transition:.3s;

}

.pa-filter-badge .clear:hover{

  background:#6F2CFF;

  color:#fff;

}

.pa-right{

  display:flex;

  gap:1rem;

  flex-wrap:wrap;

  align-items:flex-start;

}

/* ================= SEARCH ================= */

.pa-search{

  display:flex;

  align-items:center;

  gap:.55rem;

  padding:.45rem .55rem;

  background:linear-gradient(
    180deg,
    #170D2D,
    #11071F
  );

  border:1px solid rgba(120,70,255,.24);

  border-radius:10px;

  box-shadow:
  inset 0 1px 0 rgba(255,255,255,.04);

}

.pa-search input[type=text]{

  min-width:200px;

  border:0;

  outline:none;

  background:transparent;

  color:#FFFFFF;

  font-size:.82rem;

  padding:.35rem .45rem;

}

.pa-search input::placeholder{

  color:#8E82C8;

}

.pa-search button{

  border:none;

  cursor:pointer;

  padding:.52rem .9rem;

  border-radius:8px;

  background:linear-gradient(
    135deg,
    #6F2CFF,
    #8B3DFF,
    #9B5CFF
  );

  color:#FFFFFF;

  font-size:.72rem;

  font-weight:700;

  letter-spacing:.3px;

  transition:.30s;

  box-shadow:
  0 0 14px rgba(111,44,255,.25);

}

.pa-search button:hover{

  transform:translateY(-2px);

  box-shadow:
  0 0 22px rgba(111,44,255,.38);

}

/* ================= SORT ================= */

.pa-sort{

  display:flex;

  align-items:center;

  gap:.45rem;

  padding:.45rem .6rem;

  font-size:.72rem;

  background:linear-gradient(
    180deg,
    #170D2D,
    #11071F
  );

  border:1px solid rgba(120,70,255,.24);

  border-radius:10px;

  color:#D6CFFF;

}

.pa-sort select{

  background:#24123E;

  color:#FFFFFF;

  border:1px solid rgba(120,70,255,.25);

  border-radius:8px;

  outline:none;

  padding:.38rem .55rem;

}

/* ================= EMPTY ================= */

.pa-empty{

  padding:3rem 1rem;

  text-align:center;

  border-radius:14px;

  border:1px dashed rgba(120,70,255,.30);

  background:linear-gradient(
    180deg,
    #170D2D,
    #11071F
  );

}

.pa-empty p{

  margin:0 0 1rem;

  color:#D6CFFF;

  font-size:.92rem;

}

.btn-reset{

  display:inline-flex;

  align-items:center;

  justify-content:center;

  text-decoration:none;

  padding:.65rem 1.2rem;

  border-radius:10px;

  background:linear-gradient(
    135deg,
    #6F2CFF,
    #8B3DFF,
    #9B5CFF
  );

  color:#FFFFFF;

  font-size:.75rem;

  font-weight:700;

  transition:.30s;

  box-shadow:
  0 0 18px rgba(111,44,255,.25);

}

.btn-reset:hover{

  transform:translateY(-2px);

  box-shadow:
  0 0 24px rgba(111,44,255,.40);

}
/* ===========================================================
   PRODUCT GRID - DOGELEXUS UI
   PART 2 (GRID & PRODUCT CARD)
=========================================================== */

/* ================= GRID ================= */

.pa-grid{

  display:grid;

  gap:1rem;

  grid-template-columns:repeat(auto-fill,minmax(180px,1fr));

  align-items:stretch;

}

/* ================= CARD ================= */

.pa-card{

  position:relative;

  display:flex;

  flex-direction:column;

  min-width:0;

  overflow:hidden;

  text-decoration:none;

  color:inherit;

  padding:0;

  border-radius:16px;

  background:linear-gradient(
    180deg,
    #170D2D 0%,
    #11071F 55%,
    #0B0715 100%
  );

  border:1px solid rgba(120,70,255,.22);

  transition:.30s cubic-bezier(.4,0,.2,1);

  box-shadow:
  inset 0 1px 0 rgba(255,255,255,.04),
  0 0 16px rgba(111,44,255,.10);

}

.pa-card:hover{

  transform:
  translateY(-6px)
  scale(1.02);

  border-color:rgba(155,92,255,.45);

  box-shadow:
  0 0 20px rgba(111,44,255,.24),
  0 0 42px rgba(155,92,255,.15);

}

/* ================= IMAGE ================= */

.pa-card .thumb{

  aspect-ratio:1/1;

  display:flex;

  align-items:center;

  justify-content:center;

  overflow:hidden;

  position:relative;

  background:linear-gradient(
    180deg,
    #24123E,
    #170D2D
  );

}

.pa-card .thumb::after{

  content:"";

  position:absolute;

  inset:0;

  background:

  radial-gradient(
    circle at center,
    rgba(155,92,255,.08),
    transparent 70%
  );

  pointer-events:none;

}

.pa-card img{

  width:100%;

  height:100%;

  display:block;

  object-fit:cover;

  transition:.45s;

}

.pa-card:hover img{

  transform:scale(1.08);

}

/* ================= DISCOUNT ================= */

.badge-disc{

  position:absolute;

  top:10px;

  left:10px;

  padding:5px 8px;

  border-radius:8px;

  font-size:.60rem;

  font-weight:700;

  letter-spacing:.4px;

  color:#FFFFFF;

  background:linear-gradient(
    135deg,
    #6F2CFF,
    #8B3DFF,
    #9B5CFF
  );

  box-shadow:
  0 0 14px rgba(111,44,255,.35);

}

/* ================= BODY ================= */

.pa-card .body{

  display:flex;

  flex-direction:column;

  gap:.45rem;

  padding:.75rem .80rem .85rem;

  min-height:96px;

}

/* ================= TITLE ================= */

.pa-card .title{

  margin:0;

  height:2.5em;

  overflow:hidden;

  font-size:.78rem;

  line-height:1.3;

  font-weight:700;

  color:#FFFFFF;

  transition:.3s;

}

.pa-card:hover .title{

  color:#DCC7FF;

}

/* ================= PRICE ================= */

.pa-card .prices{

  display:flex;

  flex-wrap:wrap;

  align-items:baseline;

  gap:.45rem;

}

.pa-card .prices .final{

  font-size:.90rem;

  font-weight:700;

  color:#B98CFF;

  text-shadow:

  0 0 10px rgba(111,44,255,.28);

}

.pa-card .prices .ori{

  font-size:.66rem;

  font-weight:500;

  color:#7E72AA;

  text-decoration:line-through;

}

/* ================= CATEGORY ================= */

.pa-card .cat{

  align-self:flex-start;

  margin-top:auto;

  padding:.30rem .55rem;

  border-radius:999px;

  font-size:.56rem;

  font-weight:700;

  letter-spacing:.6px;

  text-transform:uppercase;

  color:#D6CFFF;

  background:linear-gradient(
    180deg,
    #24123E,
    #170D2D
  );

  border:1px solid rgba(120,70,255,.25);

}

/* ================= META ================= */

.pa-card .meta-line{

  margin-top:4px;

  font-size:.65rem;

  color:#AFA3DA;

}

.pa-card .meta-line .sold{

  display:inline-block;

  padding:3px 7px;

  border-radius:6px;

  background:rgba(111,44,255,.15);

  border:1px solid rgba(120,70,255,.22);

  color:#D6CFFF;

  font-weight:600;

  letter-spacing:.3px;

}

/* ================= SPEC ================= */

.pa-card .spec-chips{

  margin-top:2px;

  margin-bottom:4px;

  max-width:100%;

  overflow:hidden;

  white-space:nowrap;

  text-overflow:ellipsis;

  font-size:.62rem;

  font-weight:500;

  color:#A99FE0;

  opacity:.95;

}

.pa-card .spec-chips .spec-divider{

  color:#7466A9;

  margin:0 2px;

}

/* ===========================================================
   PRODUCT GRID - DOGELEXUS UI
   PART 3
   PAGINATION + MOBILE FILTER + RESPONSIVE
=========================================================== */

/* ================= PAGINATION ================= */

.pa-pagination{

  margin-top:2rem;

  display:flex;

  flex-wrap:wrap;

  justify-content:center;

  align-items:center;

  gap:.45rem;

  font-size:.75rem;

}

.pa-pagination a,
.pa-pagination span{

  min-width:38px;
  height:38px;

  display:flex;

  align-items:center;
  justify-content:center;

  padding:0 .75rem;

  text-decoration:none;

  border-radius:10px;

  font-weight:700;

  transition:.30s;

  color:#D6CFFF;

  background:linear-gradient(
    180deg,
    #170D2D,
    #11071F
  );

  border:1px solid rgba(120,70,255,.24);

  box-shadow:
  inset 0 1px 0 rgba(255,255,255,.03);

}

.pa-pagination a:hover{

  transform:translateY(-2px);

  color:#FFFFFF;

  border-color:rgba(155,92,255,.45);

  box-shadow:
  0 0 18px rgba(111,44,255,.25);

}

.pa-pagination .current{

  color:#FFFFFF;

  border-color:rgba(155,92,255,.50);

  background:linear-gradient(
    135deg,
    #6F2CFF,
    #8B3DFF,
    #9B5CFF
  );

  box-shadow:
  0 0 22px rgba(111,44,255,.35);

}

.pa-pagination .gap{

  background:transparent;

  border:none;

  color:#8E82C8;

}

/* ================= MOBILE FILTER ================= */

.pa-mobile-filterbar{

  display:none;

}

@media (max-width:640px){

  .pa-btn-filter{
    display:none;
  }

  .pa-mobile-filterbar{

    display:flex !important;

    align-items:center;

    gap:10px;

    position:sticky;

    top:0;

    z-index:20;

    padding:10px 12px;

    margin:-.5rem -1rem .8rem;

    background:linear-gradient(
      180deg,
      #170D2D,
      #11071F
    );

    border-bottom:1px solid rgba(120,70,255,.22);

    backdrop-filter:blur(10px);

    -webkit-backdrop-filter:blur(10px);

  }

  .pa-mobile-filterbar .mf-scroll{

    display:flex;

    gap:8px;

    overflow-x:auto;

    scrollbar-width:none;

    -webkit-overflow-scrolling:touch;

    flex:1;

  }

  .pa-mobile-filterbar .mf-scroll::-webkit-scrollbar{

    display:none;

  }

  .mf-chip{

    flex:0 0 auto;

    white-space:nowrap;

    padding:.48rem .8rem;

    border-radius:999px;

    text-decoration:none;

    font-size:.76rem;

    font-weight:700;

    color:#D6CFFF;

    background:#24123E;

    border:1px solid rgba(120,70,255,.22);

    transition:.30s;

  }

  .mf-chip:hover{

    background:#6F2CFF;

    color:#FFFFFF;

  }

  .mf-chip.active{

    background:linear-gradient(
      135deg,
      #6F2CFF,
      #9B5CFF
    );

    border-color:transparent;

    color:#FFFFFF;

    box-shadow:
    0 0 16px rgba(111,44,255,.35);

  }

  .mf-filter-btn{

    width:40px;

    height:40px;

    flex:0 0 auto;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    cursor:pointer;

    background:linear-gradient(
      135deg,
      #6F2CFF,
      #9B5CFF
    );

    border:none;

    color:#FFFFFF;

    box-shadow:
    0 0 16px rgba(111,44,255,.35);

    transition:.30s;

  }

  .mf-filter-btn:hover{

    transform:scale(1.05);

  }

  .mf-filter-btn svg{

    width:18px;

    height:18px;

  }

  .mf-filter-btn .mf-badge{

    position:absolute;

    top:-3px;

    right:-3px;

    min-width:18px;

    height:18px;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:0 4px;

    border-radius:999px;

    background:#FFD54A;

    color:#1A0F2E;

    font-size:.62rem;

    font-weight:700;

    box-shadow:
    0 0 10px rgba(255,213,74,.40);

  }

}

/* ================= SPEC CHIP ================= */

.pa-card .spec-chips{

  font-size:.62rem;

  font-weight:500;

  color:#A99FE0;

  opacity:.95;

  line-height:1.2;

  overflow:hidden;

  white-space:nowrap;

  text-overflow:ellipsis;

  margin-top:3px;

  margin-bottom:4px;

}

.pa-card .spec-divider{

  color:#7365AA;

}

/* ================= RESPONSIVE ================= */

@media (max-width:640px){

  .product-archive{

    padding:0 1rem 3rem;

  }

  .pa-grid{

    grid-template-columns:
    repeat(auto-fill,minmax(150px,1fr));

    gap:.85rem;

  }

  .pa-toolbar{

    display:none;

  }

  .pa-right{

    display:none;

  }

  .pa-search input[type=text]{

    min-width:130px;

  }

  .pa-sort{

    width:100%;

    justify-content:center;

  }

  .pa-card{

    border-radius:14px;

  }

  .pa-card .body{

    padding:.70rem;

  }

  .pa-card .title{

    font-size:.73rem;

  }

  .pa-card .prices .final{

    font-size:.82rem;

  }

}

@media (max-width:420px){

  .pa-grid{

    grid-template-columns:
    repeat(2,1fr);

    gap:.75rem;

  }

  .pa-card .title{

    font-size:.70rem;

  }

  .pa-card .prices .final{

    font-size:.78rem;

  }

  .pa-card .cat{

    font-size:.52rem;

  }

}