/* Product Grid */

.product-grid {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr;
  @media (min-width: 768px) {
    grid-template-columns: repeat(2, 1fr);
  }
  @media (min-width: 1024px) {
    grid-template-columns: repeat(3, 1fr);
  }
}

.product-img-wrapper {
  position: relative;
}

.badge-sale {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.5rem;
  background-color: var(--lila);
  text-transform: uppercase;
  color: var(--white);
  font-weight: 700;
  font-size: 12px;
}

.product-img {
  box-shadow: 0 20px 80px var(--shadow);
}

.product-name {
  font-weight: 700;
  font-size: 1.2rem;
  text-align: center;
}

.product-price {
  font-weight: 700;
  font-size: 1.2rem;
  color: var(--brown);
}

.product-btn {
  font-weight: 700;
  font-size: 1rem;
  width: 60%;
  height: fit-content;
}

/* Product Filters */
.filters-form {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transform: translateY(-10px);
  transition: 0.3s ease;
}

.filters-form.active {
  max-height: 500px;
  opacity: 1;
  transform: translateY(0);
}

#filters-toggle.hidden {
  display: none;
}

.filters-fieldset {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  border-top: solid 2px #b92770;
  border-bottom: solid 2px #b92770;
  border-right: none;
  border-left: none;
  @media (min-width: 768px) {
    grid-template-columns: repeat(2, 1fr);
  }
  @media (min-width: 1024px) {
    grid-template-columns: repeat(4, 1fr);
  }
}
.filter-group {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  justify-items: start;
}

.filter-group label, .filter-group {
  font-weight: 700;
  font-size: 17px;
  color: var(--brown);
  display: grid;
  grid-template-columns: 1fr;
}

.filter-group input {
  display: none;
}

.filter-group span {
  width: 22px;
  height: 22px;
  border: 3px solid var(--gray-line);
  border-radius: 50%;
  display: inline-block;
  position: relative;
  align-self: center;
}

.filter-group input:checked + span::after {
  content: "";
  width: 12px;
  height: 12px;
  background: var(--brown);
  border-radius: 50%;
  position: absolute;
  top: 2px;
  left: 2px;
}

.filter-group select:valid {
  border-color: #b92770;
}

.filter-group select {
  font-weight: 400;
  font-size: 13px;
  color: #727174;
  border: 2px solid #e9e9ed;
  padding: 0.5rem;
  width: 100%;
}

#filters-toggle svg {
  fill: var(--brown);
  transition: transform 0.3s ease;
}

#filters-toggle:hover svg {
  fill: var(--lila-accent);
  transform: scale(1.1);
}

.btn-filter {
  background-color: #b41c74;
  color: #fff;
  padding: 0.75rem 1rem;
  border: none;
  cursor: pointer;
  font-weight: 600;
  height: fit-content;
}

.btn-filter:hover {
  background-color: #a01868;
}

/* Pagination */

.pagination {
  display: flex;
  justify-content: space-between;
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  font-weight: 500;
}

.pagination [aria-current="page"] {
  background: var(--lila);
  color: var(--white);
  width: 1.75rem;
  height: 1.75rem;
  border: none;
  border-radius: 0.25rem;
}

.pagination button {
  width: 1.75rem;
  height: 1.75rem;
  background: transparent;
  color: black;
  border: none;
}

.pagination [aria-current="prev"], .pagination [aria-current="next"] {
  background: transparent;
  color: black;
  font-size: 0.75rem;
  font-weight: 700;
  width: fit-content;
  height: 2rem;
  padding-left: 1rem;
  padding-right: 1rem;
  border: 2px solid var(--lila);
  border-radius: 0.25rem;
  white-space: nowrap;
  flex-shrink: 0;
}

/* Main content: Catatlog and Sidebar*/
.catalog {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  padding-top: 1rem;
  padding-bottom: 3rem;
  @media (min-width: 768px) {
    grid-template-columns: 2fr 1fr;
  }
}
.catalog-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3.5rem;
  align-items: center;
}
.catalog-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.search {
  display: flex;
  justify-content: end;
  position: relative; /* важно для абсолютного позиционирования иконки */
  display: inline-block;
}

#search-models {
  font-weight: 400;
  font-size: 1rem;
  color: var(--brown);
  border: 2px solid var(--border);
  padding: 0.5rem  1rem;
  padding: 0.5rem 1rem;
  font-weight: 400;
  font-size: 1rem;
  width: 100%;
}

.search-icon {
  position: absolute;
  top: 50%;
  right: 10px; /* отступ от правого края */
  transform: translateY(-50%);
  pointer-events: none; /* чтобы клик проходил по input */
  display: flex;
  align-items: center;
  justify-content: center;
}

.search-icon svg {
  width: 20px;
  height: 20px;
  fill: var(--brown);
}

.results-info {
font-weight: 400;
  font-size: 1rem;
  color: var(--brown);
}

.sorting select {
  border: 2px solid var(--border);
  padding: 0.5rem 1rem;
  font-weight: 400;
  font-size: 1rem;
  color: var(--brown);
}

.sorting select::placeholder {
  font-weight: 700;
  color: var(--brown);
}

.sidebar {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  height: fit-content;
}
/* Top Best Products */
.top-sets {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
.top-sets h2 {
  font-weight: 700;
  font-size: 1.25rem;
}
.product-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
.top-best-product {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
}
.top-best-product a {
  max-height: 5rem;
  max-width: 5rem;
  overflow: hidden;
}
.mini-img {
  align-self: center;
  object-fit: cover;
  width: 100%;
  height: 100%;
  display: block;  
}
.mini-img-shadow{
  box-shadow: 0px 7px 15px 0px var(--mini-shadow);
}
.mini-wrapper {
  display: grid;
  height: 100%;
  align-content: space-between;
}
.mini-name,
.mini-price {
  font-weight: 400;
  font-size: 1rem;
  text-align: left;
  color: black;
}
.mini-rating {
  display: flex;
  align-items: center;
  justify-content: start;
  gap: 0.25rem;
}
/* ------------------ Rating stars ------------------ */

.rating {
  fill: #f5b423;
}

.rating-empty {
  fill: #e9e9ed;
}
