/* ====== ARCHIVE: REVIEWS ====== */
.sm-reviews-title{ margin:0 0 24px 0; }

/* ---------- ФИЛЬТРЫ ---------- */
.sm-filters{ display:flex; flex-wrap:wrap; row-gap:20px; column-gap:40px; margin-bottom:32px; }
.sm-filter{ display:flex; flex-direction:column; row-gap:8px; max-width:100%; position:relative; }
.sm-filter__label{ color:var(--sm-muted); line-height:1.4; }

/* Кнопки-фильтры */
.sm-filter__button{
  width:500px; max-width:100%;
  appearance:none; -webkit-appearance:none;
  background:var(--sm-on-brand)!important; color:var(--sm-muted);
  border:1px solid var(--sm-muted); border-radius:999px;
  padding:12px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:0;
  cursor:pointer; position:relative;
  box-shadow:none; text-shadow:none; background-image:none;
  transition:border-color .2s ease, color .2s ease, background-color .2s ease;
}

.sm-filter__button:hover,
.sm-filter__button:focus,
.sm-filter__button:active{
  background:var(--sm-on-brand)!important; border-color:var(--sm-text); color:var(--sm-muted); outline:none;
}
.sm-filter__button.is-selected .sm-filter__text{ color:var(--sm-text); }


/* Текст прижат влево, занимает всё свободное место */
.sm-filter__text{ 
  color:inherit; 
  flex:1 1 auto; 
  text-align:left; 
  }
/* Иконка прижата вправо, фиксированный размер */
.sm-filter__icon{ 
  flex:0 0 auto; 
  width:18px; 
  height:18px; 
  margin-left:12px; 
  transition:transform .2s ease; 
  }


.sm-filter__button[aria-expanded="true"] .sm-filter__icon{ transform:rotate(90deg); }


/* Выпадающее меню */
.sm-filter__menu{
  display:none; position:absolute; top:calc(100% + 10px); left:0;
  width:500px; max-width:100%; height:364px; background:var(--sm-on-brand);
  box-shadow:0 0 10px var(--sm-shadow); border-radius:16px; padding:8px 0;
  z-index:999; overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain;
}
.sm-filter__menu.is-open{ display:block; }

.sm-filter__item{ 
  display:block; padding:12px 20px; color:var(--sm-text); text-decoration:none; line-height:1.4; 
  }

/* 1) БАЗА для ссылок — должна идти ПЕРЕД hover */
.sm-filter__menu .sm-filter__item:link,
.sm-filter__menu .sm-filter__item:visited{
  color: var(--sm-text);
}

/* 2) Ховер/фокус — идёт ПОСЛЕ, чтобы перекрыть базу */
.sm-filter__menu .sm-filter__item:hover,
.sm-filter__menu .sm-filter__item:focus,
.sm-filter__menu .sm-filter__item:focus-visible{
  color: var(--sm-brand);
  background: var(--sm-on-brand);
  text-decoration: none;
  outline: none;
}

/* Скроллбар стандартный кастомизированный */

.sm-filter__menu::-webkit-scrollbar{ width:3px; }
.sm-filter__menu::-webkit-scrollbar-thumb{ background:var(--sm-muted); border-radius:3px; }
.sm-filter__menu::-webkit-scrollbar-track{ background:transparent; margin:10px; }





/* ---------- СПИСОК ОТЗЫВОВ ---------- */
.sm-reviews-list{ display:flex; flex-direction:column; gap:32px; }

/* Растягиваем карточки отзывов на 100% и убираем паддинги Astra */
.sm-reviews-list > article,
.sm-reviews-list > .ast-article-post,
.sm-reviews-list > .ast-grid-common-col{
  width:100% !important;
  margin:0 !important;
  align-self:stretch;
}
.ast-separate-container .sm-reviews-list article.ast-article-post{ padding:0 !important; }
.sm-review-card .entry-header,
.sm-review-card .entry-content,
.sm-review-card .entry-footer{ padding:0 !important; margin:0 !important; }



/* ---------- КАРТОЧКА ОТЗЫВА (внешняя обёртка) ---------- */
.sm-review-card{
  background:var(--sm-on-brand);
  border-radius:20px;
  box-shadow:0 4px 24px var(--sm-shadow);
  overflow:hidden;
  width:100%;
}

/* ВНУТРЕННИЕ ОТСТУПЫ — на внутренней обёртке */
.sm-review-card__inner{ padding:32px; }
@media (max-width:921px){ .sm-review-card__inner{ padding:16px; } }

/* Сетка 70/30 внутри карточки */
.sm-review-grid{
  display:grid;
  grid-template-columns:70% 30%;
  grid-template-areas: "left right";
  column-gap:8px; 
  row-gap:10px;
  align-items:start;
}

/* Привязка колонок к областям */
.sm-review-left{  grid-area:left;  display:flex; flex-direction:column; gap:24px; }
.sm-review-right{ grid-area:right; }

/* Мобайл: сначала правая колонка, потом левая */
@media (max-width:921px){
  .sm-review-grid{
    grid-template-columns:1fr;
    grid-template-areas:
      "right"
      "left";    
  }
}

/* Текст отзыва */
.sm-review-text{ margin:0; }

/* Сбрасываем лишние внешние отступы у первого/последнего элемента внутри текста отзыва */
.sm-review-text > *:first-child { margin-top: 0; }
.sm-review-text > *:last-child  { margin-bottom: 0 !important; }

/* На всякий случай – если внутри не только <p>, а списки/заголовки и т.п. */
.sm-review-text p:last-child { margin-bottom: 0 !important; }




/* Блок «Лечащие врачи» */
.sm-review-doctors{ display:flex; flex-direction:column; gap:12px; }
.sm-review-subtitle{ color:var(--sm-muted); margin:0; }
.sm-doctors-grid-mini{
  display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:16px;
}
@media (max-width:921px){ .sm-doctors-grid-mini{ grid-template-columns:1fr; } }

.sm-mini-doctor{
  display:flex; align-items:center; gap:16px;
  text-decoration:none; color:var(--sm-headline);
}

/* Кружок с фото: рамка 1px + плавный ховер по IMG */
.sm-mini-doctor__photo{
  width:70px; height:70px;
  border-radius:50%;
  overflow:hidden; flex:0 0 auto;
  background:var(--sm-on-brand);
  box-sizing:border-box;                 /* чтобы border не влиял на размер */
  border:1px solid var(--sm-on-brand);      /* базовая рамка */
  transition: border-color .2s ease;
}

/* Картинка / плейсхолдер внутри кружка */
.sm-mini-doctor__photo img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition: filter .2s ease;           /* затемняем саму картинку */
}
.sm-mini-doctor__img--placeholder{
  display:block; width:100%; height:100%;
  border-radius:50%; background:var(--sm-muted);
}

/* Ховер/фокус по всей карточке врача */
.sm-mini-doctor:hover .sm-mini-doctor__photo,
.sm-mini-doctor:focus-visible .sm-mini-doctor__photo{
  border-color: var(--sm-muted);      /* цвет рамки при наведении */
}
.sm-mini-doctor:hover .sm-mini-doctor__photo img,
.sm-mini-doctor:focus-visible .sm-mini-doctor__photo img{
  filter: brightness(1.09);               /* лёгкое затемнение фото */
}

.sm-mini-doctor__meta{ display:flex; flex-direction:column; }
.sm-mini-doctor__name{ margin:0 0 4px 0; font-weight:600; color:var(--sm-headline); }
.sm-mini-doctor__spec{ margin:0; color:var(--sm-muted); font-size:0.875rem; } /* sm-smalltitle эффект */



/* Блок «Оказанные услуги» */
.sm-review-services{ display:flex; flex-direction:column; gap:12px; }
.sm-chips{ display:flex; flex-wrap:wrap; gap:12px; }
.sm-chip{
  display:inline-flex; align-items:center; justify-content:center;
  padding:8px 24px; border-radius:999px;
  border:1px solid var(--sm-surface-subtle); background:var(--sm-surface-subtle);
  color:var(--sm-text); text-decoration:none;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.sm-chip:hover{
  background:var(--sm-on-brand);
  border-color:var(--sm-muted);
  color:var(--sm-text);
}
@media (max-width:921px){ .sm-chip{ padding:4px 24px; } }

/* Правая колонка */
.sm-review-right{
  display:flex; flex-direction:column; gap:16px; align-items:flex-end; text-align:right;
}
@media (max-width:921px){ .sm-review-right{ align-items:flex-start; text-align:left; gap:10px; } }

/* Рейтинг: 5 целочисленных звёзд */
.sm-stars{
  display:flex;
  align-items:center;
  gap:8px;            /* расстояние между звёздами */
}
.sm-star{
  width:18px;
  height:18px;
  display:inline-block;
}
.sm-star svg{
  width:100%;
  height:100%;
  display:block;
}
.sm-star path{              /* базовый (пустой) цвет */
  fill: var(--sm-muted);
}
.sm-star.is-on path{        /* «включённая» звезда */
  fill: var(--sm-rating);
}


/* Источник/имя/дата */
.sm-review-source{ color:var(--sm-muted); }
.sm-review-meta{ display:flex; flex-wrap:wrap; gap:16px; color:var(--sm-muted); }
