:root {
  --chk-size: 29px;
  --chk-border: #1e1e1e;
  --chk-fill: #1e1e1e;
}

.catalog__wrapper {
  width: 100%;
  min-height: 500px;
}

.catalog__image {
  height: 309px;
  width: 100%;
  display: flex;
  justify-content: space-between;
  padding: 0px 10%;
  background-color: #f6f5f3;
}

.catalog__image-name {
  width: 470px;
  height: 100%;
  display: flex;

  flex-direction: column;
  justify-content: center;
  text-align: left;
}

.catalog__image-name h2 {
  color: #292d32;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 600;

  font-size: 50px;

  line-height: 40px;
  letter-spacing: -2px;
  margin-bottom: 50px;
}

.catalog__image-name p {
  color: #292d32;
  font-weight: 300;
  font-style: Light;
  font-size: 25px;
  font-family: 'Inter', sans-serif;
  line-height: 40px;
  letter-spacing: -2px;
}

.catalog__image-img {
  width: 550px;
  height: 100%;
}

.catalog__image-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.catalog__container {
  width: 1330px;
  margin: 0 auto;
}

.catalog__container-results {
  margin-top: 15px;
  height: 45px;
  width: 100%;
  text-align: right;
}

.catalog__container-results span {
  font-family: 'Inter', sans-serif;
  font-weight: 300;
  font-style: Light;
  font-size: 16px;

  line-height: 40px;
  letter-spacing: 0.5px;
  text-align: right;
}

.catalog__container-wrapper {
  width: 100%;
  display: flex;
  justify-content: space-between;
}

/****FILTER***/
.catalog__filter {
  width: 297px;
}

.catalog__filter-line {
  width: 284px;
  height: 1px;
  background-color: #717171;
}

.catalog__filter-element {
  width: 100%;
}

.catalog__filter-element p {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 500;
  font-style: Medium;
  font-size: 25px;

  line-height: 60px;
  letter-spacing: 0.5px;
}

.catalog__filter__small {
  margin-bottom: 10px;
}
/* Контейнер чекбокса */
.chk {
  display: inline-flex;
  align-items: center;
}

/* Скрываем нативный, но оставляем доступным для клавиатуры/скринридеров */
.chk__input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  overflow: hidden;
  white-space: nowrap;
}

/* Кликабельная область: квадрат + текст */
.chk__label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  user-select: none;
  font-family: 'Inter', sans-serif;
  font-weight: 300;

  font-size: 16px;

  line-height: 40px;
  letter-spacing: 0.5px;
}

/* Квадрат 29×29, 1px рамка */
.chk__box {
  width: var(--chk-size);
  height: var(--chk-size);
  border: 1px solid var(--chk-border);
  border-radius: 0;
  /* изначально острые углы */
  background: transparent;
  transition: background 0.18s ease, border-radius 0.18s ease,
    border-color 0.18s ease, box-shadow 0.18s ease;
  flex: 0 0 auto;
}

/* Состояние :checked — закругляем и заливаем */
.chk__input:checked + .chk__label .chk__box {
  background: var(--chk-fill);
  border-color: var(--chk-fill);
  border-radius: 8px;
  /* радиус можно поменять при желании */
}

/* Ховер — чуть заметный эффект (опционально) */
.chk__label:hover .chk__box {
  box-shadow: 0 0 0 2px rgba(30, 30, 30, 0.06) inset;
}
/*****RESULTS********/
/***** RESULTS (GRID) *****/
.catalog__results {
  display: grid;
  grid-template-columns: repeat(3, 310px);
  /* максимум 3 в ряд */
  column-gap: 40px;
  /* горизонтальный зазор */
  row-gap: 68px;
  /* вертикальный зазор */
  width: calc(3 * 310px + 2 * 40px);
  /* = 1010px */
  margin: 0 auto;
  /* по центру контейнера */
}

/* карточка */
.catalog__element {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 310px;
  height: 444px;
  /* как у тебя было */
  text-decoration: none;
}

/* изображение 310x310 */
.catalog__element-img {
  width: 310px;
  height: 310px;
  display: grid;
  place-items: center;
  overflow: hidden;
}

.catalog__element-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* текст */
.catalog__element h4 {
  font-weight: 600;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 14px;
  line-height: 120%;
  margin-top: 35px;
  min-height: 40px;
  /* чтобы заголовки выравнивались */
  color: #1e1e1e;
}

.catalog__element p {
  width: 100%;
  text-align: left;
  font: 400 14px/100% 'Plus Jakarta Sans', sans-serif;
  color: #717171;
}

/* Фокус клавиатурой — видимая рамка доступности */
.chk__input:focus-visible + .chk__label .chk__box {
  outline: 2px solid #000;
  outline-offset: 2px;
}

/* Необязательно: disabled-состояние */
.chk__input:disabled + .chk__label {
  opacity: 0.6;
  cursor: not-allowed;
}

.catalog__clear {
  color: #1e1e1e;
  font-size: 20px;
  font-family: 'Plus Jakarta Sans', sans-serif;
  margin-left: 30px;
  text-shadow: 1px 1px 2px #1e1e1e7a;
}

@media only screen and (max-width: 1370px) {
  .catalog__container {
    width: 1200px;
  }
  .catalog__element {
    width: 270px;
    height: 390px;
  }
  .catalog__element-img {
    width: 270px;
    height: 270px;
  }
}

/* адаптивные брейкпоинты: 2 колонки и 1 колонка ниже */
@media (max-width: 1100px) {
  .catalog__results {
    grid-template-columns: repeat(2, 310px);
    width: calc(2 * 310px + 1 * 40px);
    /* 660px */
  }
}
@media (max-width: 900px) {
  .catalog__container {
    width: 100%;
  }
  .catalog__container-wrapper {
    flex-direction: column;
  }
  .catalog__image {
    flex-direction: column;
    height: initial;
    padding-top: 40px;
  }
  .catalog__image-name {
    width: 100%;
  }
  .catalog__image-name h2 {
    font-size: 34px;
    margin-bottom: 31px;
  }
  .catalog__image-name p {
    font-size: 19px;
    line-height: 32px;
  }
  .catalog__image-img {
    width: 100%;
  }
  .catalog__image-img img {
    object-fit: contain;
  }
  .catalog__container-results {
    width: 90%;
    margin: 0 auto;
  }
  .catalog__container-results span {
    font-size: 15px;
  }
  .catalog__container-wrapper {
    width: 90%;
    margin: 0 auto;
  }
  .catalog__filter {
    width: 100%;
  }
  .catalog__element {
    width: 100%;
    box-shadow:1px 1px 5px rgba(0,0,0, 0.1)
  }
  .catalog__element h4{
    display: block;
    width: 90%;
    margin: 0 auto;
    margin-top: 20px;
  }
  .catalog__element p{
        display: block;
    width: 90%;
    margin: 0 auto;
    margin-top: 20px;
  }
  .catalog__element-img {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .catalog__element-img img{
    object-fit:contain;
  }
}

@media (max-width: 700px) {
  .catalog__results {
    grid-template-columns: 310px;
    width: 310px;
  }
}
