/* CATALOG LISTING */

.catalog-listing {
   background: #F8F8F8;
}

.catalog-listing__header {
   margin-bottom: clamp(28px, 4vw, 44px);
}

.catalog-listing__top {
   display: grid;
   gap: 18px;
   margin-bottom: clamp(28px, 4vw, 42px);
}

.catalog-listing__filters {
   display: flex;
   flex-wrap: wrap;
   gap: 12px 14px;
   min-width: 0;
}

.catalog-listing__filter {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   min-height: 36px;
   padding: 0 18px;
   border: 1px solid rgba(50, 50, 50, 0.14);
   border-radius: var(--border-radius);
   background: var(--white-color);
   color: var(--gray-color);
   font-size: var(--fs-14);
   font-weight: 600;
   line-height: 1;
   transition:
      color var(--transition),
      background var(--transition),
      border-color var(--transition),
      box-shadow var(--transition),
      transform var(--transition);
}

.catalog-listing__filter:hover {
   color: var(--turquoise-color);
   border-color: rgba(34, 138, 138, 0.35);
   transform: translateY(-1px);
}

.catalog-listing__filter.is-active {
   color: var(--white-color);
   background: var(--turquoise-color);
   border-color: var(--turquoise-color);
   box-shadow: 0 10px 22px rgba(34, 138, 138, 0.18);
}

.catalog-listing__sort-wrap {
   display: flex;
   justify-content: flex-end;
   width: 100%;
   margin-top: 10px;
}

.catalog-listing__sort {
   width: 260px;
   max-width: 100%;
   height: 42px;
   padding: 0 42px 0 14px;
   border: 1px solid rgba(50, 50, 50, 0.14);
   border-radius: var(--border-radius);
   background-color: var(--white-color);
   color: var(--gray-color);
   font-size: var(--fs-14);
   font-weight: 500;
   outline: none;
   appearance: none;
   background-image:
      linear-gradient(45deg, transparent 50%, #8A8A8A 50%),
      linear-gradient(135deg, #8A8A8A 50%, transparent 50%);
   background-position:
      calc(100% - 17px) 18px,
      calc(100% - 12px) 18px;
   background-size:
      5px 5px,
      5px 5px;
   background-repeat: no-repeat;
   transition:
      border-color var(--transition),
      box-shadow var(--transition);
}

.catalog-listing__sort:focus {
   border-color: var(--turquoise-color);
   box-shadow: 0 0 0 3px rgba(34, 138, 138, 0.12);
}


.catalog-listing__meta {
   margin: 18px 0 24px;
   color: #72777f;
   font-size: 14px;
}

.catalog-listing__meta strong {
   color: #151515;
   font-weight: 600;
}

.catalog-listing__result {
   position: relative;
}

.catalog-listing__result.is-loading {
   opacity: 0.65;
   pointer-events: none;
}

.catalog-listing__empty {
   padding: 28px;
   border-radius: var(--border-radius);
   background: var(--white-color);
   color: var(--gray-color);
   font-size: var(--fs-16);
   text-align: center;
}

.catalog-listing__bottom {
   display: flex;
   justify-content: center;
   margin-top: clamp(34px, 4vw, 54px);
}

.catalog-listing__load {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 10px;
   min-height: 48px;
   padding: 0 28px;
   border: 0;
   border-radius: var(--border-radius);
   background: var(--black-color);
   color: var(--white-color);
   font-size: var(--fs-14);
   font-weight: 600;
   line-height: 1;
   transition:
      background var(--transition),
      transform var(--transition),
      box-shadow var(--transition);
}

.catalog-listing__load img {
   display: block;
   width: 16px;
   height: 16px;
   object-fit: contain;
   flex: 0 0 auto;
   filter: brightness(0) invert(1);
}

.catalog-listing__load:hover {
   background: var(--turquoise-color);
   transform: translateY(-1px);
   box-shadow: 0 12px 26px rgba(34, 138, 138, 0.25);
}

.catalog-listing__load:disabled {
   opacity: 0.55;
   cursor: default;
   transform: none;
   box-shadow: none;
}

.catalog-listing__load[hidden] {
   display: none;
}

.catalog-listing__bottom:has(.catalog-listing__load[hidden]) {
   display: none;
}

/* ARTICLE SECTION */

.article-section {
   background: var(--white-color);
   padding: clamp(54px, 7vw, 96px) 0;
}

.article-section__header {
   margin-bottom: clamp(34px, 5vw, 58px);
}

/* Контент из текстового редактора */

.article-content {
   max-width: 100%;
   color: var(--black-color);
   font-size: var(--fs-16);
   line-height: 1.65;
}

.article-content>*:first-child {
   margin-top: 0;
}

.article-content>*:last-child {
   margin-bottom: 0;
}

.article-content p {
   margin: 0 0 22px;
   color: var(--black-color);
   font-size: var(--fs-18);
   line-height: 1.65;
}

.article-content h2,
.article-content h3,
.article-content h4 {
   margin: clamp(34px, 4vw, 52px) 0 18px;
   font-family: var(--family-cormorant);
   font-weight: 500;
   line-height: 1.18;
   text-transform: uppercase;
   color: var(--black-color);
}

.article-content h2 {
   font-size: var(--h3);
}

.article-content h3 {
   font-size: var(--h3);
}

.article-content h4 {
   font-size: clamp(22px, 2.2vw, 28px);
}

.article-content ul,
.article-content ol {
   margin: 0 0 24px;
   padding-left: 22px;
}

.article-content li {
   margin: 0 0 7px;
   color: var(--black-color);
   font-size: var(--fs-18);
   line-height: 1.55;
}

.article-content li::marker {
   color: var(--turquoise-color);
}

.article-content a {
   color: var(--turquoise-color);
   text-decoration: underline;
   text-underline-offset: 3px;
   transition: color var(--transition);
}

.article-content a:hover {
   color: var(--orange-color);
}

.article-content strong,
.article-content b {
   font-weight: 700;
}

.article-content blockquote {
   margin: clamp(28px, 4vw, 44px) 0;
   padding: 24px 28px;
   border-left: 4px solid var(--turquoise-color);
   background: #F8F8F8;
   color: var(--black-color);
   font-size: var(--fs-18);
   line-height: 1.55;
}

.article-content blockquote p {
   margin: 0;
   font-size: inherit;
}

.article-content table {
   width: 100%;
   margin: 28px 0;
   border-collapse: collapse;
   font-size: var(--fs-18);
}

.article-content th,
.article-content td {
   padding: 14px 16px;
   border: 1px solid rgba(50, 50, 50, 0.12);
   text-align: left;
}

.article-content th {
   background: #F8F8F8;
   font-weight: 700;
}

.article-content ul li {
   list-style-type: circle;
}


/* CATALOG LISTING ADAPTIVE */

@media (max-width: 1180px) {
   .catalog-listing__filters {
      gap: 10px 12px;
   }

   .catalog-listing__filter {
      min-height: 34px;
      padding: 0 15px;
   }
}

@media (max-width: 900px) {
   .catalog-listing__top {
      gap: 16px;
   }

   .catalog-listing__sort-wrap {
      justify-content: flex-end;
      margin-top: 8px;
   }

   .catalog-listing__sort {
      width: 240px;
   }
}

@media (max-width: 640px) {
   .catalog-listing__header {
      margin-bottom: 26px;
   }

   .catalog-listing__top {
      gap: 14px;
      margin-bottom: 28px;
   }

   .catalog-listing__filters {
      flex-wrap: nowrap;
      overflow-x: auto;
      overflow-y: hidden;
      gap: 10px;
      margin-left: -14px;
      margin-right: -14px;
      padding: 0 14px 5px;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
   }

   .catalog-listing__filters::-webkit-scrollbar {
      display: none;
   }

   .catalog-listing__filter {
      flex: 0 0 auto;
      min-height: 34px;
      padding: 0 14px;
      font-size: 13px;
      white-space: nowrap;
   }

   .catalog-listing__sort-wrap {
      justify-content: stretch;
      margin-top: 8px;
   }

   .catalog-listing__sort {
      width: 100%;
      height: 42px;
   }

   .catalog-listing__empty {
      padding: 22px 16px;
      font-size: var(--fs-14);
   }

   .catalog-listing__bottom {
      margin-top: 30px;
   }

   .catalog-listing__load {
      width: 100%;
      min-height: 48px;
   }
}

@media (max-width: 420px) {
   .catalog-listing__filter {
      min-height: 32px;
      padding: 0 12px;
      font-size: 12px;
   }

   .catalog-listing__sort {
      height: 40px;
      font-size: 13px;
   }

   .catalog-listing__load {
      min-height: 46px;
   }
}