/* Отзывы (редизайн 30.09.2026): раздел /opinions/ и страница отзыва. Язык — как у вузов, услуг
   и событий: #272727 текст, #e9423d акцент, #62ba87 / #2f7a4f зелёный, светлые подложки.
   Текст отзыва — классы uni-prose (university-prose.css) + op-prose ниже. Телефон — opinions-mobile.css. */

.op-section-title { display: flex; align-items: center; gap: 12px; margin: 0 0 24px; font-size: clamp(24px, 1.2vw + 16px, 32px); font-weight: 600; line-height: 1.2; color: #272727; }
.op-section-title::before { content: ""; flex: none; width: 4px; height: 1em; border-radius: 2px; background: #62ba87; }

a.op-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 24px; border-radius: 14px; font-size: 16px; font-weight: 600; text-decoration: none; transition: background .2s; }
a.op-btn--primary { background: #e9423d; color: #fff; }
a.op-btn--primary:hover { background: #d63530; color: #fff; }

/* метка уровня программы */
.op-tag { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; line-height: 1.3; white-space: nowrap; }
.op-tag--foundation { background: #fff3dc; color: #8a5a00; }
.op-tag--bachelor { background: #e3f3ea; color: #23703f; }
.op-tag--master { background: #fde8e7; color: #b52d28; }

/* ---------- шапка раздела ---------- */
.op-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px 40px; margin: 8px 0 28px; }
.op-head__text { flex: 1 1 520px; max-width: 760px; }
.op-head__title { margin: 0 0 14px; font-size: clamp(34px, 2.6vw + 16px, 56px); font-weight: 600; line-height: 1.05; color: #272727; }
.op-head__lead { margin: 0; font-size: 18px; font-weight: 500; line-height: 1.55; color: #272727; }
.op-stats { display: flex; gap: 12px; margin: 0; padding: 0; list-style: none; }
.op-stats li { display: flex; align-items: center; gap: 10px; padding: 14px 20px; border-radius: 18px; background: #f3f9f5; font-size: 15px; font-weight: 500; color: #272727; white-space: nowrap; }
.op-stats b { font-size: 28px; font-weight: 700; line-height: 1; color: #2f7a4f; }

/* ---------- фильтр: выпадающие окна поверх страницы ---------- */
.op-filter { position: relative; z-index: 20; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 0 0 28px; }
.op-dd { position: relative; }
.op-dd > summary { list-style: none; }
.op-dd > summary::-webkit-details-marker { display: none; }
.op-dd__toggle {
  display: flex; align-items: center; gap: 10px; min-width: 240px; max-width: 420px; height: 52px; padding: 0 18px;
  border: 1.5px solid #dcdcdc; border-radius: 14px; background: #fff; cursor: pointer; user-select: none; transition: border-color .2s;
}
.op-dd__toggle:hover, .op-dd[open] .op-dd__toggle { border-color: #272727; }
.op-dd__toggle.is-set { border-color: #62ba87; background: #f3f9f5; }
.op-dd__toggle:focus-visible { outline: 2px solid #62ba87; outline-offset: 2px; }
.op-dd__label { font-size: 14px; font-weight: 600; color: #2f7a4f; }
.op-dd__value { flex: 1; min-width: 0; overflow: hidden; font-size: 16px; font-weight: 600; color: #272727; text-overflow: ellipsis; white-space: nowrap; }
.op-dd__arrow { flex: none; color: #272727; transition: transform .2s; }
.op-dd[open] .op-dd__arrow { transform: rotate(180deg); }
.op-dd__panel {
  position: absolute; top: calc(100% + 8px); left: 0; z-index: 30; display: grid; gap: 2px; min-width: 100%; width: max-content; max-width: min(420px, 90vw);
  padding: 8px; border: 1px solid #e6efe9; border-radius: 16px; background: #fff; box-shadow: 0 18px 44px rgba(39, 39, 39, .16);
}
a.op-dd__opt {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 11px 14px; border-radius: 10px;
  font-size: 15px; font-weight: 500; line-height: 1.35; color: #272727; text-decoration: none;
}
a.op-dd__opt:hover { background: #f3f9f5; color: #272727; }
a.op-dd__opt[aria-current="true"] { background: #e3f3ea; font-weight: 700; color: #23703f; }
.op-dd__count { flex: none; min-width: 26px; padding: 2px 8px; border-radius: 999px; background: #f1f3f2; font-size: 12px; font-weight: 700; text-align: center; color: #272727; }
.op-filter__status { font-size: 15px; color: #272727; }
.op-filter__status a { margin-left: 10px; font-weight: 600; color: #e9423d; }

/* ---------- карточки отзывов ---------- */
.op-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.op-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
/* нечётное число карточек в 2 колонки — первая на всю ширину, чтобы последняя не осталась одна */
.op-grid:not(.op-grid--3) > :first-child:nth-last-child(odd):not(:only-child) { grid-column: 1 / -1; }
a.op-card {
  display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 22px; align-items: center; padding: 18px;
  border: 1px solid #e6efe9; border-radius: 24px; background: #fff; color: #272727; text-decoration: none;
  transition: box-shadow .2s, transform .2s;
}
a.op-card:hover { box-shadow: 0 14px 34px rgba(39, 39, 39, .1); transform: translateY(-2px); color: #272727; }
.op-card__photo { width: 140px; height: 140px; border-radius: 18px; overflow: hidden; background: #e3f3ea; }
.op-card__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.op-card__body { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-width: 0; }
.op-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.op-card__uni { font-size: 13px; font-weight: 600; line-height: 1.3; color: #2f7a4f; }
.op-card__program { font-size: 18px; font-weight: 600; line-height: 1.3; overflow-wrap: break-word; transition: color .2s; }
a.op-card:hover .op-card__program { color: #e9423d; }
.op-card__author { font-size: 15px; font-weight: 500; line-height: 1.35; }
.op-card__more { margin-top: 2px; font-size: 14px; font-weight: 600; color: #e9423d; }
.op-grid--3 a.op-card { grid-template-columns: 96px minmax(0, 1fr); gap: 16px; padding: 14px; border-radius: 20px; }
.op-grid--3 .op-card__photo { width: 96px; height: 96px; border-radius: 14px; }
.op-grid--3 .op-card__program { font-size: 16px; }
.op-empty { padding: 28px; border-radius: 20px; background: #f3f9f5; font-size: 16px; color: #272727; }
.op-empty a { font-weight: 600; color: #e9423d; }
.op .pagination { margin-top: 32px; }

/* заявка: вёрстка uni-help (universities.css), без серого текста */
.op-help { margin-top: 72px; }
.op-help .uni-help__desc { color: #272727; }

/* ---------- страница отзыва ---------- */
.op-page__head { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 32px; align-items: center; max-width: 1100px; margin: 8px 0 48px; }
.op-page__photo { width: 160px; height: 160px; border-radius: 26px; overflow: hidden; box-shadow: 0 14px 36px rgba(39, 39, 39, .12); }
.op-page__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.op-page__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 12px; }
.op-page__uni { font-size: 15px; font-weight: 600; color: #2f7a4f; text-decoration: none; }
a.op-page__uni:hover { color: #e9423d; }
.op-page__title { margin: 0 0 12px; font-size: clamp(26px, 1.6vw + 16px, 42px); font-weight: 600; line-height: 1.15; color: #272727; overflow-wrap: break-word; }
.op-page__byline { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 15px; font-weight: 500; color: #272727; }
.op-page__byline > * + *::before { content: "·"; margin-right: 18px; color: #62ba87; font-weight: 700; }

.op-page__layout { display: grid; grid-template-columns: minmax(0, 720px) 320px; justify-content: space-between; gap: 56px; align-items: start; margin-bottom: 56px; }
.op-page__aside { position: sticky; top: 24px; }
.op-aside { display: flex; flex-direction: column; gap: 12px; padding: 26px; border-radius: 22px; background: #272727; color: #fff; }
.op-aside__title { font-size: 22px; font-weight: 600; line-height: 1.25; }
.op-aside__text { margin: 0 0 6px; font-size: 15px; line-height: 1.5; color: #e8e8e8; }
a.op-aside__link { align-self: center; margin-top: 4px; font-size: 15px; font-weight: 600; color: #fff; text-decoration: underline; text-underline-offset: 3px; }
a.op-aside__link:hover { color: #8fd3aa; }

/* текст отзыва: крупнее, свободнее, первый абзац — лид, нумерованные советы — кружки */
.op-prose { max-width: 720px; font-size: 18px; line-height: 1.75; }
.op-prose p { margin-bottom: 20px; }
.op-prose .op-lead { font-size: 21px; font-weight: 500; line-height: 1.6; }
.op-prose ol { margin: 0 0 24px; padding: 0; list-style: none; counter-reset: op; }
.op-prose ol > li { position: relative; margin: 0 0 16px; padding-left: 46px; counter-increment: op; }
.op-prose ol > li::before {
  content: counter(op); position: absolute; left: 0; top: .1em; display: flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: 50%; background: #e3f3ea; font-size: 15px; font-weight: 700; color: #23703f;
}

/* следующий отзыв и возврат к списку */
.op-page__nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; max-width: 720px; margin-bottom: 64px; padding-top: 32px; border-top: 1px solid #e6efe9; }
a.op-next { display: flex; flex-direction: column; gap: 10px; flex: 1 1 360px; max-width: 520px; padding: 18px 20px; border-radius: 22px; background: #f3f9f5; color: #272727; text-decoration: none; transition: background .2s; }
a.op-next:hover { background: #e3f3ea; color: #272727; }
.op-next__label { font-size: 14px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #e9423d; }
.op-next__card { display: flex; align-items: center; gap: 16px; }
.op-next__photo { flex: none; width: 72px; height: 72px; border-radius: 14px; overflow: hidden; }
.op-next__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.op-next__text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.op-next__program { font-size: 17px; font-weight: 600; line-height: 1.3; }
.op-next__author { font-size: 15px; }
a.op-back { font-size: 16px; font-weight: 600; color: #272727; text-decoration: none; }
a.op-back:hover { color: #e9423d; }
.op-others { margin-bottom: 8px; }

/* ---------- ноутбук / планшет ---------- */
@media (max-width: 1199px) {
  .op-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .op-grid--3 > :nth-child(3) { display: none; } /* 2 + 1 — одинокая карточка; на планшете две */
  .op-page__layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .op-page__aside { position: static; max-width: 720px; }
  .op-aside { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
  .op-aside__title, .op-aside__text { flex: 1 1 100%; margin: 0; }
  a.op-aside__link { align-self: auto; margin: 0; }
}
@media (max-width: 1022px) {
  .op-grid { grid-template-columns: minmax(0, 1fr); }
  .op-grid--3 { grid-template-columns: minmax(0, 1fr); }
  .op-grid--3 > :nth-child(3) { display: grid; }
}

/* ---------- блок «Отзывы» на главной (карточки uni-review — university.css) ---------- */
.home-reviews__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-bottom: 2px; }
.home-reviews__uni { font-size: 13px; font-weight: 600; line-height: 1.3; color: #2f7a4f; }
.home-reviews .uni-reviews { padding-bottom: 8px; }
