/* ============================================================
   yandoc — редизайн категорийного листинга (специальность+метро)
   Все классы с префиксом yd- чтобы не конфликтовать со style.css.
   Шрифт MuseoSansCyrl уже подключён темой глобально.
   ============================================================ */
:root{
  --yd-ground:#F7F8FA;--yd-surface:#FFFFFF;--yd-ink:#1E2632;--yd-mid:#3E4958;--yd-muted:#9397A2;
  --yd-border:#E6E6EB;--yd-border2:#D8D8E0;--yd-yellow:#FFCC00;--yd-red:#FC3F1D;--yd-link:#0070C0;--yd-link-ondark:#7FB8FF;--yd-star:#FD9F13;--yd-green:#1F9D57;
  --yd-fl:"MuseoSansCyrl300",Arial,sans-serif;--yd-fm:"MuseoSansCyrl500",Arial,sans-serif;--yd-fb:"MuseoSansCyrl700",Arial,sans-serif;
}
.yd-trust,.yd-trust *,.yd-controls,.yd-controls *,.yd-list,.yd-list *,.yd-band,.yd-band *,.yd-near,.yd-near *,.yd-allspec,.yd-allspec *,.yd-descr,.yd-descr *,.yd-within30,.yd-within30 *,.yd-found,.yd-found *,.yd-fmodal,.yd-fmodal *,.yd-overlay,.yd-mapbox,.yd-mapbox *{box-sizing:border-box;}

/* КОРЕНЬ «белой заливки между блоков»: у обёртки листинга в теме задан
   float:left без clearfix (style.css: .th-posts{width:100%;float:left;}).
   Из-за этого родитель не учитывал высоту плавающего блока — все блоки
   после ленты (яд-near и другие) схлопывались к началу ленты и растягивались,
   чтобы обтечь float, а их белый фон просвечивал в зазорах между карточками.
   Убираем float на страницах-листингах — обёртке незачем плавать. */
.th-posts.th-poststwo.th-postslist.taxonomy-speciality{float:none;}

/* ===== sticky-компактная шапка при скролле (только на страницах-листингах) =====
   Обычный размер — как на всём сайте; при скролле уменьшаем в ~1.5 раза и
   прячем «Найдётся врач»/выбор города, оставляя логотип, звонок и телефон.
   Цепочка, из-за которой sticky не работал (проверено через getComputedStyle
   по всем предкам #th-header):
   1) .th-wrapper (прямой родитель) — overflow:hidden в теме (style.css:582);
   2) главное: html,body{overflow-x:hidden} (style.css:45-46) — раз overflow-x
      не visible, overflow-y у html и body автоматически считается 'auto'
      (правило CSS). А проброс overflow с body на вьюпорт (обычное поведение
      страницы-скроллера) работает только если у САМОГО html overflow visible.
      У нас html тоже explicit overflow-x:hidden — проброса нет, html сам
      становится скролл-контейнером, и sticky внутри него не залипает.
   Возвращаем html overflow visible (body с overflow-x:hidden не трогаем —
   это платформенное поведение подхватит вьюпорт и защита от горизонтального
   скролла сохранится). */
.th-wrapper{overflow:visible;}
html{overflow:visible;}
#th-header{position:sticky;top:0;z-index:600;}
#th-header .th-topbar{transition:padding .2s ease;}
#th-header.yd-compact .th-topbar{padding:8px 0;}
#th-header.yd-compact .th-logo img{width:119px;height:30px;transition:width .2s,height .2s;}
#th-header.yd-compact .find_doctor,
#th-header.yd-compact .city_select{display:none;}
#th-header.yd-compact .head_phone{margin-left:20px;}
#th-header.yd-compact .head_phone strong{font-size:15px;}
#th-header.yd-compact .head_callback{font-size:11px;}

/* строка доверия (#1) */
.yd-trust{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;background:var(--yd-surface);border:1px solid var(--yd-border);border-radius:12px;padding:13px 18px;margin:16px 0;}
.yd-trust .t{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--yd-mid);font-family:var(--yd-fm);}
.yd-trust .t b{font-family:var(--yd-fb);color:var(--yd-ink);font-variant-numeric:tabular-nums;}
.yd-trust .t.verified b{color:var(--yd-green);}
.yd-trust .chk{width:17px;height:17px;flex:none;border-radius:50%;background:var(--yd-green);position:relative;}
.yd-trust .chk::after{content:"";position:absolute;left:5px;top:3.5px;width:4px;height:7px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(42deg);}
.yd-trust .yd-rating-cta{margin-left:auto;padding:6px 14px;}
.yd-trust .yd-rating-cta + .upd{margin-left:0;}
.yd-trust .upd{margin-left:auto;font-family:var(--yd-fl);font-size:12.5px;color:var(--yd-muted);}
@media(max-width:640px){.yd-trust .upd{margin-left:0;width:100%;}}

/* панель управления (#2): сортировка + фильтры + карта.
   Раньше чипы сортировки и кнопки фильтров/карты были в двух отдельных
   div-обёртках (.yd-sortset/.yd-rightset), которые на мобильном "распаковывали"
   через display:contents, чтобы всё скроллилось одной лентой. Оказалось,
   display:contents не меняет реальное родительское отношение в DOM
   (chip.parentElement всё равно оставался .yd-sortset), и на части
   тач-устройств лента с чипами двигалась отдельно от кнопок. Убрали обёртки
   из разметки совсем — теперь label/чипы/кнопки правда прямые дети
   .yd-controls, без всякого промежуточного слоя. */
/* margin-top/bottom сильно сокращены (18/28 → 10/12) — вместе с
   section.spec_sec_wrap2{padding-top} (ниже) над и под панелью сортировки
   было по 34px и 28px соответственно, при коротком H1 (2 строки, как на
   общей странице специальности без гео-фильтра) это читалось как разрыв
   вёрстки, хотя цифры отступов были ОДИНАКОВЫМИ что на общей странице,
   что на комбо специальность+метро — просто на комбо-странице H1 длиннее
   (переносится на 3-4 строки) и тот же отступ не так бросался в глаза. */
.yd-controls{display:flex;align-items:center;gap:10px;margin:4px 0 12px;flex-wrap:wrap;}
.yd-sort-lab{font-family:var(--yd-fl);font-size:13px;color:var(--yd-muted);margin-right:2px;}
.yd-chip{border:1px solid var(--yd-border2);background:var(--yd-surface);color:var(--yd-mid);border-radius:999px;padding:8px 15px;font-size:14px;font-family:var(--yd-fm);transition:.15s;text-decoration:none;display:inline-block;line-height:1.2;}
.yd-chip:hover{border-color:var(--yd-muted);color:var(--yd-ink);text-decoration:none;}
/* чипы сортировки теперь <button>, а не <a> (убрали ссылки на ?orderby=) —
   гасим дефолтный вид кнопки, чтобы выглядели ровно как раньше */
button.yd-chip{cursor:pointer;-webkit-appearance:none;appearance:none;margin:0;}
.yd-chip.on{background:var(--yd-border2);border-color:var(--yd-border2);color:var(--yd-ink);}
.yd-chip .ar{font-size:11px;opacity:.7;margin-left:5px;}
#yd-open-filters{margin-left:auto;}
.yd-ctrlbtn{display:inline-flex;align-items:center;gap:9px;border:1.5px solid var(--yd-border2);background:var(--yd-surface);color:var(--yd-ink);border-radius:11px;padding:9px 16px;font-family:var(--yd-fm);font-size:14.5px;transition:.15s;cursor:pointer;}
.yd-ctrlbtn:hover{border-color:var(--yd-muted);}
.yd-ctrlbtn svg{width:18px;height:18px;}
.yd-ctrlbtn .badge{background:var(--yd-red);color:#fff;font-family:var(--yd-fb);font-size:11px;border-radius:999px;min-width:18px;height:18px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;}
.yd-ctrlbtn.map{background:var(--yd-ink);color:#fff;border-color:var(--yd-ink);}
.yd-ctrlbtn.map:hover{background:#2b3a4a;}
/* дубль кнопки «Рейтинг …» для телефона (см. @media max-width:440px) */
.yd-controls .yd-ctrl-cta{display:none;}

/* карта */
.yd-mapbox{display:none;margin:16px 0;height:420px;border-radius:16px;overflow:hidden;position:relative;border:1px solid var(--yd-border);}
.yd-mapbox.open{display:block;}
.yd-mapbox #yd-map{width:100%;height:100%;}

/* ---- список и карточка ---- */
.yd-list{display:flex;flex-direction:column;gap:14px;clear:both;}
/* row-gap отдельно от column-gap (было gap:22px на оба) — между строкой
   "titles" (имя+специальности) и строкой "main" (стаж/рейтинг/отзыв/клиника)
   было слишком много воздуха; горизонтальный зазор до колонки book оставляем
   как был. */
.yd-card{position:relative;background:var(--yd-surface);border:1px solid var(--yd-border);border-radius:16px;padding:20px;display:grid;grid-template-columns:104px minmax(0,1fr) minmax(300px,40%);grid-template-areas:"photo titles book" "photo main book";gap:10px 22px;grid-template-rows:auto 1fr;transition:box-shadow .18s,border-color .18s;}
.yd-card:hover{box-shadow:0 6px 24px rgba(30,38,50,.08);border-color:var(--yd-border2);}
.yd-card.top{border-color:#FFE49A;box-shadow:0 0 0 1px #FFE49A;}
.yd-c-photo{grid-area:photo;}
.yd-c-titles{grid-area:titles;min-width:0;}
/* grid-template-rows:auto 1fr — колонка book (цена+слоты) выше левой части,
   и при auto auto сетка раздавала лишнюю высоту обеим строкам: под
   специальностью появлялась пустота перед «Стаж». Теперь весь излишек
   уходит в нижнюю строку main, под контент. */
.yd-c-main{grid-area:main;}
.yd-c-book{grid-area:book;}
.yd-c-photo{display:flex;flex-direction:column;align-items:center;gap:10px;}
.yd-c-photo a{display:block;}
/* круглые фото (как в макете); object-fit:contain — показывает фото целиком
   без обрезки. Пробовали cover со сдвигом кадра вверх (center 20%) — снимало
   обрезку макушки, но начинало резать подбородок. Contain не обрезает ничего
   ни сверху, ни снизу, ценой возможных лёгких полей, если фото не строго
   квадратное — поэтому фон полей всегда белый (не серый фон страницы) и
   обводка, чтобы кружок не сливался с серым фоном страницы вокруг. */
.yd-c-photo img{width:96px;height:96px;border-radius:50%;object-fit:contain;background:var(--yd-surface);border:1px solid var(--yd-border);}
.yd-c-main{min-width:0;}
.yd-c-name{font-family:var(--yd-fb);font-size:19px;line-height:1.2;letter-spacing:-.01em;}
.yd-c-name a{color:var(--yd-ink);text-decoration:none;}
.yd-c-name a:hover{color:var(--yd-link);}
.yd-c-specs{margin-top:5px;font-family:var(--yd-fl);font-size:14px;color:var(--yd-mid);}
/* специальность в карточке — не похоже на ссылку (было цвета yd-link) */
.yd-c-specs a{color:var(--yd-ink);}
/* стаж и категория — нейтральные серые плашки, как у DocDoc (26.10.2026) */
.yd-c-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;font-size:13px;line-height:1.3;color:var(--yd-mid);font-family:var(--yd-fm);}
.yd-c-meta span{background:#F0F2F5;border-radius:8px;padding:4px 10px;}
/* рейтинг под фото: звёзды + оценка в строку (в узкой колонке оценка
   переносится), число отзывов — отдельной строкой ниже */
.yd-c-rate{display:flex;align-items:center;justify-content:center;gap:2px 6px;flex-wrap:wrap;width:100%;text-align:center;}
.yd-c-rate .yd-stars{font-size:14px;letter-spacing:1px;}
.yd-c-rate .rc{flex:0 0 100%;text-decoration:none;}
.yd-c-rate .rc:hover{color:var(--yd-link);text-decoration:underline;}
.yd-stars{position:relative;display:inline-block;font-size:17px;line-height:1;letter-spacing:2px;font-family:Arial,sans-serif;}
.yd-stars .bg{color:#E2E5EA;}
.yd-stars .fg{position:absolute;left:0;top:0;color:var(--yd-star);overflow:hidden;white-space:nowrap;}
.yd-c-rate .score{font-family:var(--yd-fb);font-size:14px;color:var(--yd-ink);}
.yd-c-rate .rc{font-size:12.5px;color:var(--yd-muted);font-family:var(--yd-fm);}
.yd-c-rate .rec{font-size:13px;color:var(--yd-green);font-family:var(--yd-fm);}

/* превью отзыва (#5) */
.yd-review{position:relative;margin-top:13px;background:var(--yd-ground);border-radius:12px;padding:12px 14px 12px 16px;border:1px solid var(--yd-border);}
.yd-review::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;background:var(--yd-star);border-radius:3px;}
/* Карточка в листинге растягивалась по высоте самым длинным отзывом (PHP уже
   режет текст по символам до 180, но на узких мобильных экранах даже это
   легко даёт 5-6 строк) — ограничиваем видимую высоту тремя строками,
   независимо от длины исходного текста. */
.yd-review .txt{font-family:var(--yd-fl);font-size:13.5px;color:var(--yd-mid);line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.yd-review .m{margin-top:7px;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--yd-muted);flex-wrap:wrap;font-family:var(--yd-fm);}
.yd-review .m .who{color:var(--yd-mid);}
.yd-review .m .vf{display:inline-flex;align-items:center;gap:4px;color:var(--yd-green);}
/* "ещё N →" — раньше падало на глобальный цвет темы (бирюзовый #4bc2d5,
   нигде больше не встречается). Теперь в одной строке со строкой
   автор/дата/«отзыв проверен» (margin-left:auto прижимает её к правому
   краю той же строки, а не отдельной строкой под текстом отзыва — раньше
   между текстом и этой строкой был лишний вертикальный интервал).
   :hover тоже держит цвет явно — без этого выигрывает общий a:hover
   {color:#4bc2d5} из color.css (та же бирюзовая тема), т.к. сам класс
   не переопределял color на hover, только text-decoration. */
.yd-review-more{margin-left:auto;font-family:var(--yd-fm);font-size:11.5px;color:var(--yd-link);text-decoration:none;}
.yd-review-more:hover{color:var(--yd-link);text-decoration:underline;}

/* клиника + метро */
.yd-c-clinic{margin-top:12px;font-size:13.5px;color:var(--yd-mid);display:flex;flex-direction:column;gap:6px;font-family:var(--yd-fm);}
.yd-c-clinic .cl{display:flex;flex-wrap:wrap;gap:3px 10px;align-items:baseline;}
.yd-c-clinic .name{font-family:var(--yd-fb);color:var(--yd-ink);}
.yd-c-clinic .addr{color:var(--yd-muted);font-family:var(--yd-fl);font-size:13px;}
/* gap:2px и своя line-height:1.3 у .st — иначе межстрочный интервал
   определяет унаследованный line-height:24px (общий для тела страницы),
   который при переносе станций на несколько строк на мобильном ощутимо
   растягивает карточку по высоте. */
.yd-c-clinic .stations{display:flex;flex-wrap:wrap;gap:2px 14px;}
.yd-c-clinic .st{display:inline-flex;align-items:center;gap:6px;font-size:13px;line-height:1.3;}
.yd-c-clinic .st .dot{width:9px;height:9px;border-radius:50%;flex:none;}

/* колонка записи */
.yd-c-book{display:flex;flex-direction:column;gap:9px;border-left:1px solid var(--yd-border);padding-left:22px;}
.yd-price{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;}
.yd-price .now{font-family:var(--yd-fb);font-size:24px;color:var(--yd-ink);font-variant-numeric:tabular-nums;}
.yd-price .old{font-family:var(--yd-fl);font-size:15px;color:var(--yd-muted);text-decoration:line-through;}
.yd-price-note{font-family:var(--yd-fl);font-size:12px;color:var(--yd-muted);margin-top:-4px;}
/* "Цена по запросу" в карточке листинга — была мелкой (15px, из общего
   .yd-price-unknown, который используется и в сайдбаре страницы врача),
   терялась рядом с крупной ценой (24px) на соседних карточках. Здесь —
   крупнее, вровень с .yd-price .now. */
/* font-weight:700 тут не сработал бы сам по себе — шрифты подключены
   отдельными файлами на каждое начертание (MuseoSansCyrl500/700), а не
   одним переменным по weight, жирность даёт именно смена family на --yd-fb. */
.yd-c-book .yd-price-unknown{font-size:20px;font-family:var(--yd-fb);}
/* Соседние станции — заменили на комбо блок «Все специализации» (одинаковый на
   всех 17 739 страницах). Здесь набор свой у каждой станции. */
.yd-nearst{padding:8px 0 26px;}
.yd-nearst h2, .yd-nearst .yd-h2 {font-family:var(--yd-fb);font-size:22px;color:var(--yd-ink);margin:0 0 14px;}
.yd-nearst-links{display:flex;flex-wrap:wrap;gap:9px;}
.yd-nearst-links a{display:inline-block;background:var(--yd-surface);border:1px solid var(--yd-border2);border-radius:999px;padding:9px 16px;font-family:var(--yd-fm);font-size:14px;color:var(--yd-mid);text-decoration:none;line-height:1.25;transition:.15s;}
.yd-nearst-links a:hover{border-color:var(--yd-link);color:var(--yd-link);}
.yd-nearst-links a:focus-visible{outline:2px solid var(--yd-link);outline-offset:2px;}
@media(max-width:480px){.yd-nearst h2, .yd-nearst .yd-h2 {font-size:19px;}.yd-nearst-links a{font-size:13px;padding:8px 13px;}}
/* Партнёрская цена (флаг IsExclusivePrice в данных DocDoc: цена доступна при
   записи через партнёра). В ленте — короткая плашка у цены; на карточке врача
   версия с пояснением, см. .yd-exprice-line ниже. Красный из палитры темы:
   с жёлтой кнопкой записи не спорит и читается как ярлык скидки. */
.yd-exprice{display:inline-flex;align-items:center;background:var(--yd-red);color:#fff;font-family:var(--yd-fb);font-size:12px;padding:4px 9px;border-radius:7px;white-space:nowrap;line-height:1.25;}
/* строка под ценой — на странице врача. Текст темнее фирменного #FC3F1D:
   на белом фоне мелким кеглем чистый фирменный даёт контраст ниже нормы. */
.yd-exprice-line{display:flex;align-items:center;gap:6px;color:#C42D0E;font-family:var(--yd-fb);font-size:12.5px;line-height:1.3;}
.yd-exprice-line::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--yd-red);flex:none;}
.yd-exprice-note{font-family:var(--yd-fl);font-size:11.5px;color:var(--yd-muted);line-height:1.35;margin-top:2px;}
/* Отступ до кнопки был общим gap:9px колонки .yd-c-book (тот же, что между
   остальными элементами) — увеличиваем именно этот, не трогая соседние,
   явным margin-top на самой кнопке: 9px (общий gap) + 18px = 27px, втрое
   больше исходных 9px. */
.yd-btn-book{background:var(--yd-yellow);color:#1E2632;border:none;border-radius:10px;padding:14px 16px;font-family:var(--yd-fb);font-size:15px;transition:.15s;cursor:pointer;text-align:center;display:block;margin-top:18px;}
.yd-btn-book:hover{background:#F2C200;}
.yd-book-alt{font-family:var(--yd-fl);font-size:12.5px;color:var(--yd-muted);text-align:center;}
/* телефон записи — частично скрыт, полностью показывается по клику (data-full/data-tel — см. yandoc-listing.js) */
.yd-phone-block{margin-top:10px;padding-top:12px;border-top:1px dashed var(--yd-border);}
/* Телефон в правой колонке под блоком онлайн-записи (по образцу docdoc.ru):
   подпись строкой сверху, под ней номер + «Показать номер» в строку, всё
   по левому краю — как заголовок виджета слотов над ним, а не центрированной
   колонкой, как исходный .yd-phone-block под кнопкой. */
.yd-phone-block-main{margin-top:2px;padding-top:12px;border-top:1px dashed var(--yd-border);}
.yd-phone-block-main .yd-phone-title{text-align:left;margin-bottom:4px;}
.yd-phone-block-main .yd-book-phone{flex-direction:row;align-items:baseline;flex-wrap:wrap;width:auto;text-align:left;gap:6px;}
.yd-phone-block-main .yd-phone-num{color:var(--yd-link);text-decoration:underline;}
.yd-phone-title{font-family:var(--yd-fl);font-size:11.5px;color:var(--yd-muted);text-align:center;margin-bottom:6px;}
.yd-book-phone{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;padding:0;width:100%;text-align:center;cursor:pointer;text-decoration:none;}
.yd-phone-num{font-family:var(--yd-fb);font-size:16px;color:var(--yd-ink);letter-spacing:.2px;}
.yd-phone-cta{font-family:var(--yd-fl);font-size:11.5px;color:var(--yd-link);}
.yd-book-phone.yd-revealed .yd-phone-cta{display:none;}

.yd-card.top{padding-top:38px;}
.yd-topbadge{position:absolute;top:-14px;left:20px;background:var(--yd-star);color:#3A2400;font-family:var(--yd-fb);font-size:12px;padding:4px 11px;border-radius:8px;display:flex;align-items:center;gap:6px;box-shadow:0 3px 8px rgba(253,159,19,.3);z-index:2;white-space:nowrap;}
.yd-topbadge::before{content:"★";font-size:12px;}
/* плашка торчит на 14px над карточкой — даём место, чтобы не налезала на сортировку/предыдущую карточку */
.yd-card.top{margin-top:14px;}

@media(max-width:860px){
  .yd-card{grid-template-columns:84px 1fr;grid-template-areas:"photo titles" "photo main" "book book";}
  .yd-c-book{border-left:none;border-top:1px solid var(--yd-border);padding-left:0;padding-top:16px;}
}
@media(max-width:440px){
  /* блок доверия («N врачей принимают…») занимает много места
     перед первым врачом — на телефоне убираем совсем */
  .yd-trust{display:none;}
  /* кнопка «Рейтинг …» — в прокручиваемой строке, сразу после «На карте» */
  .yd-controls .yd-ctrl-cta{display:inline-flex;order:-1;flex:0 0 auto;white-space:nowrap;padding:8px 12px;}

  /* «На карте» — в начале строки (видна сразу); «Фильтры» — в конце,
     как было изначально. «На карте» — белая кнопка (не чёрная), «Фильтры»
     остаётся просто иконкой. */
  .yd-controls{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;}
  .yd-controls::-webkit-scrollbar{display:none;}
  .yd-sort-lab,.yd-chip{flex:0 0 auto;}
  .yd-ctrlbtn{padding:8px 12px;flex:0 0 auto;}
  .yd-ctrlbtn.map{order:-1;background:var(--yd-surface);border-color:var(--yd-border2);color:var(--yd-ink);}
  .yd-ctrlbtn.map svg path{stroke:#1E2632;}
  /* на тач-устройствах :hover срабатывает от касания и «залипает» при
     скролле строки — без этого override кнопка темнела (наследовала
     тёмный :hover-стиль десктопа, а текст/иконка оставались тёмными
     из override выше — получалось «чёрная кнопка с чёрным текстом») */
  .yd-ctrlbtn.map:hover,.yd-ctrlbtn.map:focus,.yd-ctrlbtn.map:active{
    background:var(--yd-surface);border-color:var(--yd-border2);color:var(--yd-ink);
  }
  .yd-ctrlbtn.map:hover svg path,.yd-ctrlbtn.map:focus svg path,.yd-ctrlbtn.map:active svg path{stroke:#1E2632;}
  #yd-open-filters{padding:8px;order:1;}
  #yd-open-filters .lbl{display:none;}
  .yd-ctrlbtn svg{width:17px;height:17px;}

  /* Фото прежнего размера, рядом с именем+специальностью (оба центрируются
     по высоте друг друга — раньше центровка шла по всей строке карточки,
     включая бейдж «выезд на дом», из-за чего у части врачей съезжало).
     Остальной текст (стаж, рейтинг, отзыв, клиника) — на всю ширину блока. */
  /* 2026-10-26, по образцу DocDoc: справа от фото сверху вниз имя,
     специальности, стаж+категория (всё по верхнему краю); ниже на всю
     ширину — цена, онлайн-запись, клиника с метро, телефон. Клиника лежит
     в .yd-c-main, телефон — в .yd-c-book, поэтому обе обёртки «растворяем»
     (display:contents) и раскладываем их детей по областям сетки. row-gap
     нулевой: пустые строки (нет слотов, скрыт fallback) не дают лишних
     отступов, интервалы — margin у самих блоков. */
  .yd-card{
    grid-template-columns:96px 1fr;
    grid-template-areas:"photo titles" "photo meta" "price price" "slots slots" "fb fb" "clinic clinic" "phone phone";
    grid-template-rows:auto 1fr;
    gap:0 14px;padding:16px;
  }
  .yd-c-photo{align-self:start;}
  .yd-c-titles{align-self:start;}
  .yd-c-main,.yd-c-book{display:contents;}
  .yd-c-meta{grid-area:meta;align-self:start;margin-top:8px;line-height:1.3;}
  .yd-c-specs{line-height:1.35;}
  .yd-c-price{grid-area:price;margin-top:14px;padding-top:14px;border-top:1px solid var(--yd-border);}
  .yd-c-book .yd-slots{grid-area:slots;margin-top:9px;}
  .yd-c-book-fallback{grid-area:fb;}
  .yd-c-clinic{grid-area:clinic;margin-top:14px;}
  .yd-phone-block-main{grid-area:phone;margin-top:14px;}

  /* «Запись по телефону» + номер/«Показать номер» — в одну строку */
  .yd-phone-block{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;}
  .yd-phone-title{margin-bottom:0;text-align:left;flex:0 0 auto;}
  .yd-book-phone{flex-direction:row;width:auto;text-align:left;gap:6px;flex:0 0 auto;}

  /* «Записаться на приём» — заметно крупнее текст на телефоне */
  .yd-btn-book{font-size:18px;padding:16px;}

  /* Все номера телефонов на странице — синие и подчёркнутые, чтобы было
     видно, что по ним можно нажать (номер в карточке врача, номер в блоке
     «Не нашли то, что искали» — там фон тёмный, поэтому цвет светлее). */
  .yd-phone-num{color:var(--yd-link);text-decoration:underline;}
  .yd-found .fb-phone{color:var(--yd-link-ondark);text-decoration:underline;}
}

/* блок «что говорят пациенты» (#6) */
.yd-band{margin-top:32px;}
.yd-band h2, .yd-band .yd-h2 {font-size:22px;letter-spacing:-.01em;font-family:var(--yd-fb);color:var(--yd-ink);}
.yd-band .lead{font-family:var(--yd-fl);color:var(--yd-mid);margin:6px 0 0;font-size:14.5px;max-width:78ch;}
.yd-quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px;}
@media(max-width:820px){.yd-quotes{grid-template-columns:1fr;}}
.yd-quote{background:var(--yd-surface);border:1px solid var(--yd-border);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:11px;}
.yd-quote .yd-stars{font-size:14px;}
.yd-quote .qt{font-family:var(--yd-fl);font-size:14px;color:var(--yd-ink);line-height:1.5;}
.yd-quote .qf{margin-top:auto;font-size:12.5px;color:var(--yd-muted);display:flex;flex-direction:column;gap:2px;font-family:var(--yd-fm);}
.yd-quote .qf .doc{color:var(--yd-link);}
.yd-quote .qf .vf{color:var(--yd-green);}

/* перелинковка / каталоги */
.yd-near{margin-top:32px;background:var(--yd-surface);border:1px solid var(--yd-border);border-radius:16px;padding:22px 22px 24px;}
.yd-near h2, .yd-near .yd-h2 {font-size:19px;margin-bottom:4px;font-family:var(--yd-fb);color:var(--yd-ink);}
.yd-near .col+.col{margin-top:18px;}
.yd-near .col h4, .yd-near .col .yd-h4 {font-size:13px;letter-spacing:.03em;text-transform:uppercase;color:var(--yd-muted);font-family:var(--yd-fb);margin-bottom:11px;}
.yd-tags{display:flex;flex-wrap:wrap;gap:9px;}
.yd-tags.clamp{position:relative;max-height:98px;overflow:hidden;transition:max-height .3s ease;}
.yd-tags.clamp.open{max-height:1400px;}
.yd-tags.clamp:not(.open)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:42px;background:linear-gradient(rgba(255,255,255,0),var(--yd-surface));pointer-events:none;}
.yd-tag{border:1px solid var(--yd-border2);border-radius:999px;padding:8px 15px;font-size:14px;color:var(--yd-mid);font-family:var(--yd-fm);background:var(--yd-ground);text-decoration:none;}
.yd-tag:hover{border-color:var(--yd-muted);color:var(--yd-ink);text-decoration:none;}
.yd-tag .n{color:var(--yd-muted);font-family:var(--yd-fl);font-size:12.5px;margin-left:5px;font-variant-numeric:tabular-nums;}
.yd-expand{margin-top:13px;display:inline-flex;align-items:center;gap:8px;background:none;border:none;color:var(--yd-link);font-family:var(--yd-fm);font-size:14px;padding:0;cursor:pointer;}
.yd-expand:hover{text-decoration:underline;}
.yd-expand .chev{width:12px;height:8px;transition:transform .2s;}
.yd-expand.open .chev{transform:rotate(180deg);}
.yd-expand .lbl-less{display:none;}
.yd-expand.open .lbl-more{display:none;}
.yd-expand.open .lbl-less{display:inline;}

/* «все специализации» A-Z */
.yd-allspec{margin-top:32px;background:var(--yd-surface);border:1px solid var(--yd-border);border-radius:16px;padding:24px 26px;}
.yd-allspec h2, .yd-allspec .yd-h2 {font-size:20px;margin-bottom:14px;font-family:var(--yd-fb);color:var(--yd-ink);}
.yd-azcols{columns:4 190px;column-gap:28px;}
.yd-azcols.clamp{position:relative;max-height:300px;overflow:hidden;transition:max-height .3s ease;}
.yd-azcols.clamp.open{max-height:4000px;}
.yd-azcols.clamp:not(.open)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:48px;background:linear-gradient(rgba(255,255,255,0),var(--yd-surface));pointer-events:none;}

/* обёртка-сворачивание для готового вывода (шорткод a-z-listing и т.п.) */
.yd-clip{position:relative;max-height:360px;overflow:hidden;transition:max-height .35s ease;}
.yd-clip.open{max-height:8000px;}
.yd-clip:not(.open)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:56px;background:linear-gradient(rgba(247,248,250,0),var(--yd-ground));pointer-events:none;}

/* описание специальности */
.yd-descr{margin-top:32px;background:var(--yd-surface);border:1px solid var(--yd-border);border-radius:16px;padding:24px 26px;}
.yd-descr h2, .yd-descr .yd-h2 {font-size:20px;margin-bottom:12px;font-family:var(--yd-fb);color:var(--yd-ink);}
.yd-descr p{font-family:var(--yd-fl);font-size:14.5px;color:var(--yd-mid);line-height:1.62;margin:0 0 12px;max-width:82ch;}
.yd-descr p:last-child{margin-bottom:0;}
.yd-descr b{font-family:var(--yd-fm);color:var(--yd-ink);}

/* блок «30 минут» — заголовок */
.yd-within30{margin-top:38px;clear:both;float:none;display:block;}
.yd-within30 h2, .yd-within30 .yd-h2 {font-size:21px;letter-spacing:-.01em;margin-bottom:6px;font-family:var(--yd-fb);color:var(--yd-ink);}
.yd-within30 .w30-lead{font-family:var(--yd-fl);color:var(--yd-mid);font-size:14.5px;margin:0 0 16px;max-width:78ch;}

/* «не нашли что искали» — CTA */
.yd-found{display:flex;align-items:center;gap:20px 28px;flex-wrap:wrap;margin-top:22px;background:var(--yd-ink);border-radius:16px;padding:24px 28px;color:#fff;text-decoration:none;transition:box-shadow .18s;}
.yd-found:hover{text-decoration:none;box-shadow:0 8px 26px rgba(30,38,50,.22);}
.yd-found .fb-left h2, .yd-found .fb-left .yd-h2 {color:#fff;font-size:22px;letter-spacing:-.01em;font-family:var(--yd-fb);}
.yd-found .fb-left p{font-family:var(--yd-fl);color:#C6CCD4;margin:7px 0 0;font-size:14.5px;max-width:56ch;}
.yd-found .fb-phone{margin-left:auto;font-family:var(--yd-fb);font-size:28px;color:var(--yd-yellow);white-space:nowrap;font-variant-numeric:tabular-nums;}
@media(max-width:640px){.yd-found .fb-phone{margin-left:0;font-size:24px;}}

/* модалка фильтров */
.yd-overlay{display:none;position:fixed;inset:0;z-index:9998;background:rgba(20,26,34,.42);}
.yd-overlay.open{display:block;}
.yd-fmodal{position:fixed;z-index:9999;top:0;right:0;bottom:0;width:360px;max-width:92vw;background:var(--yd-surface);transform:translateX(100%);transition:transform .22s;display:flex;flex-direction:column;box-shadow:-8px 0 40px rgba(30,38,50,.2);}
.yd-fmodal.open{transform:translateX(0);}
.yd-fmodal .fm-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--yd-border);}
.yd-fmodal .fm-head h3, .yd-fmodal .fm-head .yd-h3 {font-size:18px;font-family:var(--yd-fb);color:var(--yd-ink);margin:0;}
.yd-fmodal .fm-close{border:none;background:none;font-size:24px;color:var(--yd-muted);line-height:1;padding:4px;cursor:pointer;}
.yd-fmodal .fm-body{overflow:auto;padding:6px 20px 14px;flex:1;}
.yd-fgroup{padding:16px 0;border-bottom:1px solid var(--yd-border);}
.yd-fgroup h4, .yd-fgroup .yd-h4 {font-size:13px;letter-spacing:.03em;text-transform:uppercase;color:var(--yd-muted);font-family:var(--yd-fb);margin:0 0 12px;}
.yd-fopt{display:flex;align-items:center;gap:10px;padding:9px 0;font-size:14.5px;color:var(--yd-mid);font-family:var(--yd-fm);text-decoration:none;}
.yd-fopt::before{content:"";width:18px;height:18px;border:1.5px solid var(--yd-border2);border-radius:5px;flex:none;}
.yd-fopt:hover{color:var(--yd-ink);text-decoration:none;}
.yd-fopt.sel{color:var(--yd-ink);}
.yd-fopt.sel::before{background:var(--yd-ink);border-color:var(--yd-ink);}
.yd-freset{display:inline-block;margin-top:16px;font-family:var(--yd-fm);font-size:14px;color:var(--yd-link);}

/* старую панель сортировки заменяет .yd-controls (чипсы) — прячем на страницах со скриптом редизайна */
.sort_spec_left{display:none;}
/* захардкоженный блок-заглушка «последние отзывы» (фейковые повторяющиеся отзывы, чужой город/специальность) —
   его роль выполняет реальный блок .yd-band «Что говорят пациенты» */

/* ===== чистка старого верхнего блока (только на страницах-листингах) ===== */
.spec_main_sec h2,        /* старый общий H2 «Запишитесь на прием...» — есть H1 ниже */
.filter_block,            /* старая форма поиска — по решению скрываем на листинге */
.checkbox_wrap_mobile,    /* дубли чекбоксов дети/дом (моб) — есть модалка «Фильтры» */
.spec_sort_sec,           /* секция старых чекбоксов + старой сортировки — заменена панелью .yd-controls */
.map_button_block,        /* статичная карта-заглушка — дублирует кнопку «На карте» */
.discount_spec_block,     /* промо-баннер «Скидка» — на первом экране макета его нет вовсе */
.commission_spec_block, .spec_main_sec .yd-h2 {   /* промо-баннер «без комиссии» — аналогично */
    display:none !important;
}

/* подзаголовок под H1 (как в макете) */
.yd-h1-sub{font-family:var(--yd-fl);font-size:15px;color:var(--yd-mid);margin:6px 0 0;max-width:75ch;}

/* единый фон сверху донизу (в макете — без шва); у .change-breadcrumb был
   опечатанный инлайн background-color:transaprent, из-за чего браузер его
   игнорировал и просвечивал белый body на фоне серой секции ниже.
   H1 живёт в отдельном контейнере #th-main (вне .change-breadcrumb) — без
   явного фона он тоже показывал белый body, разрывая серую полосу надвое. */
.spec_main_sec,
.change-breadcrumb,
.change-breadcrumb .container,
#th-main,
#th-main .container{background:var(--yd-ground) !important;}

/* ширина контейнера контента (1110px) отличается от контейнера шапки (1194px,
   глобальный .container) — из-за этого шапка и текст/карточки ниже не совпадают
   по левому/правому краю. Выравниваем контент под ширину шапки. */
@media (min-width:1200px){
    .change-breadcrumb .container,
    .th-main .container,
    .spec_sec_wrap2 .container,
    .spec_main_sec .container{max-width:1194px !important;}
}

/* строка «Главная/Специальность • N врачей» — крошки и счётчик были разного
   кегля (22px/28px) и разного начертания (300 vs 500), из-за чего строка
   выглядела «вразнобой». Приводим оба к одному кеглю/начертанию/line-height
   и выравниваем по базовой линии (не по центру — так текст разной толщины
   визуально «прыгает» меньше). */
.change-breadcrumb .block.flex{align-items:baseline;gap:12px;}
.change-breadcrumb .item,
.change-breadcrumb .item a,
.change-breadcrumb{
    font-size:13px !important;
    line-height:20px !important;
    font-family:var(--yd-fl) !important;
    color:var(--yd-muted) !important;
}
/* в теме у .item задан отрицательный margin:0 -5px — слова стягивались
   вплотную к разделителю "/" между ними ("Главная/Гинекологи"). Убираем
   и даём каждой крошке симметричный отступ — так у "/" появляется воздух
   с обеих сторон ("Главная / Гинекологи"). */
.change-breadcrumb .item{margin:0 5px !important;}
.spec_kvo{
    font-size:13px !important;
    line-height:20px !important;
    font-family:var(--yd-fl) !important;
    color:var(--yd-muted) !important;
    margin:0 !important;
    padding-left:14px !important;
    display:inline-block;
    vertical-align:baseline;
    position:relative;
}
.spec_kvo::before{width:4px !important;height:4px !important;background:var(--yd-muted) !important;top:50% !important;}

/* ===== компактный верх (как в макете) — убираем большие пустые провалы ===== */
.spec_main_sec{padding:0 !important;margin:0 !important;}
.change-breadcrumb{padding:14px 0 0 !important;margin:0 !important;}
#th-main{padding:0 !important;margin:0 !important;}
#th-main .container{padding-top:0 !important;padding-bottom:0 !important;}
/* Небольшая прибавка отступа "крошки → H1" (6px → 10px). */
.main_spec_title_wrap{padding-bottom:0 !important;margin:10px 0 0 !important;}
.category-tax-title{margin:6px 0 2px !important;}
/* Было 16px — вместе с .yd-controls margin-top (см. выше) давало 34px
   между текстом-подзаголовком и панелью "На карте/Сортировать". */
section.spec_sec_wrap2{padding-top:2px !important;}

/* ===== мобильная защита от горизонтального переполнения ===== */
@media(max-width:768px){
    html,body{overflow-x:hidden;}
    /* min-width:0 — чтобы flex-элементы не распирали родителя шире вьюпорта */
    .yd-controls,.yd-trust,.yd-card,.yd-c-titles,.yd-c-main,.yd-c-book,.yd-c-clinic,.yd-c-clinic .stations{min-width:0;max-width:100%;}
    .yd-c-name,.yd-c-specs,.yd-c-clinic,.yd-review .txt,.yd-c-meta{overflow-wrap:anywhere;word-break:break-word;}
}

@media print{.yd-controls,.yd-mapbox,.yd-found,.yd-overlay,.yd-fmodal{display:none!important;}}

/* Блок перелинковки специальность → все её комбо (метро/районы).
   Станции/районы как yd-чипы; длинный список свёрнут (CSS-only, checkbox);
   ссылки в фирменном цвете (#1E2632, hover #FC3F1D), не браузерный синий. */
/* КОРЕНЬ бага с «неработающим отступом»: из-за лишнего </div> в легаси-шаблоне
   блок оказался СОСЕДОМ плавающей колонки .th-content (а не внутри неё) и без
   clear обтекал флоат — его бокс-верх вставал на уровень карточек, а padding/
   border/margin сверху уходили за карточки и были не видны. clear:both ставит
   блок честно ПОД список — после этого отступ и разделитель работают нормально. */
.taxonomy-near.yd-geo{clear:both;padding-top:72px;}
.yd-geo__title{font-size:23px;font-weight:700;color:var(--yd-ink);line-height:1.3;margin:0 0 24px;}
.yd-geo__cols{display:flex;flex-wrap:wrap;gap:32px;}
.yd-geo__col{flex:1 1 340px;min-width:0;}
.yd-geo__subtitle{font-size:16px;font-weight:700;color:var(--yd-ink);margin-bottom:14px;}
.yd-geo__count{font-size:13px;font-weight:600;color:var(--yd-muted);}
.yd-geo__cb{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}
.yd-geo__chips{display:flex;flex-wrap:wrap;gap:8px;}
.yd-geo__chips--collapsible{max-height:150px;overflow:hidden;transition:max-height .3s ease;}
.yd-geo__cb:checked + .yd-geo__chips--collapsible{max-height:4000px;}
.yd-geo__chip{display:inline-block;font-size:13px;font-weight:500;line-height:1.2;color:var(--yd-ink);background:var(--yd-ground);border:1px solid var(--yd-border);border-radius:8px;padding:7px 12px;text-decoration:none;transition:border-color .15s,color .15s;}
.yd-geo__chip:hover,.yd-geo__chip:focus{border-color:var(--yd-red);color:var(--yd-red);}
.yd-geo__more{display:inline-block;margin-top:14px;font-size:14px;font-weight:600;color:var(--yd-mid);cursor:pointer;user-select:none;}
.yd-geo__more:hover{color:var(--yd-ink);}
.yd-geo__more::after{content:"Показать все ▾";}
.yd-geo__cb:checked ~ .yd-geo__more::after{content:"Свернуть ▴";}
@media (max-width:767px){.yd-geo__cols{gap:26px;}.yd-geo__col{flex:1 1 100%;}}

/* ===== Страница рейтинга /speciality/{slug}/rating/ (1.4, tmp/plans/yandoc-seo-plan) =====
   Классы отработаны в мокапе (tmp/mockups/mockup_rating_block.png) на живых
   --yd- токенах, здесь перенесены без изменений в дизайн-логику. */
.yd-rating-page-head{margin:0 0 22px;}
.yd-rating-page-head h1{font-family:var(--yd-fb);font-size:26px;color:var(--yd-ink);margin:0 0 8px;letter-spacing:-.01em;}
.yd-rating-page-sub{font-family:var(--yd-fl);font-size:14.5px;color:var(--yd-mid);line-height:1.55;margin:0;}
.yd-rating-page-sub b{font-family:var(--yd-fm);color:var(--yd-ink);}

.yd-rating{background:var(--yd-surface);border:1px solid var(--yd-border);border-radius:16px;padding:8px 22px 14px;margin:0 0 24px;}
.yd-rating-upd{display:block;padding:14px 4px 2px;font-family:var(--yd-fl);font-size:12.5px;color:var(--yd-muted);}
.yd-rating-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;}
.yd-rating-item{display:grid;grid-template-columns:34px 52px 1fr auto;align-items:center;gap:14px;padding:13px 4px;border-bottom:1px solid var(--yd-border);text-decoration:none;}
.yd-rating-item:last-child{border-bottom:none;}
.yd-rating-item:hover{background:var(--yd-ground);border-radius:10px;}
.yd-rating-rank{font-family:var(--yd-fb);font-size:17px;color:var(--yd-muted);text-align:center;}
.yd-rating-item.top1 .yd-rating-rank{color:var(--yd-star);}
.yd-rating-item.top2 .yd-rating-rank,.yd-rating-item.top3 .yd-rating-rank{color:var(--yd-ink);}
.yd-rating-photo{width:52px;height:52px;border-radius:50%;object-fit:cover;border:1px solid var(--yd-border);}
.yd-rating-name{font-family:var(--yd-fb);font-size:15.5px;color:var(--yd-ink);}
.yd-rating-meta{margin-top:3px;display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-family:var(--yd-fm);font-size:13px;color:var(--yd-mid);}
.yd-rating-meta .stars{color:var(--yd-star);letter-spacing:-1px;font-size:13px;}
.yd-rating-meta .score{font-family:var(--yd-fb);color:var(--yd-ink);}
.yd-rating-meta .rc{color:var(--yd-muted);}
.yd-rating-meta .sep{color:var(--yd-border2);}
.yd-rating-price{font-family:var(--yd-fb);font-size:14.5px;color:var(--yd-ink);white-space:nowrap;text-align:right;}
.yd-rating-price .lab{display:block;font-family:var(--yd-fl);font-size:11px;color:var(--yd-muted);font-weight:normal;}

.yd-rating-note{background:var(--yd-surface);border:1px solid var(--yd-border);border-radius:16px;padding:16px 20px;margin:0 0 24px;font-family:var(--yd-fl);font-size:13px;color:var(--yd-muted);line-height:1.55;}
.yd-rating-note b{color:var(--yd-mid);font-family:var(--yd-fm);}

.yd-rating-back{display:inline-flex;align-items:center;gap:6px;margin:0 0 24px;font-family:var(--yd-fm);font-size:14.5px;color:var(--yd-link);text-decoration:none;}
.yd-rating-back:hover{text-decoration:underline;}

/* Кнопка "Рейтинг" на базовом хабе — рядом с блоком сортировки. */
.yd-rating-cta{display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--yd-star);background:#FFF8E8;color:var(--yd-ink);border-radius:11px;padding:9px 16px;font-family:var(--yd-fm);font-size:14.5px;text-decoration:none;transition:.15s;}
.yd-rating-cta:hover{background:var(--yd-star);color:#fff;text-decoration:none;}

/* Страницы цен на приём /ceny/ (includes/price-pages.php, page-ceny.php). */
.yd-price-crumbs{font-family:var(--yd-fl);font-size:13px;color:var(--yd-muted);margin:18px 0 10px;}
.yd-price-crumbs a{color:var(--yd-link);text-decoration:none;}
.yd-price-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 18px;}
.yd-price-kpis div{background:var(--yd-surface);border:1px solid var(--yd-border);border-radius:14px;padding:12px 14px;}
.yd-price-kpis span{display:block;font-family:var(--yd-fl);font-size:12.5px;color:var(--yd-muted);margin-bottom:4px;}
.yd-price-kpis b{font-family:var(--yd-fb);font-size:19px;color:var(--yd-ink);}
.yd-price-lead,.yd-price-text{font-family:var(--yd-fl);font-size:15px;color:var(--yd-mid);line-height:1.6;margin:0 0 14px;}
.yd-price-h2{font-family:var(--yd-fb);font-size:20px;color:var(--yd-ink);margin:26px 0 10px;}
/* Глобальные стили темы для table (рамки, центрирование, капитализация заголовков) перебиваем явно. */
.yd-price-page table.yd-price-table{width:100%;border-collapse:collapse;border:0;margin:0 0 18px;font-family:var(--yd-fl);font-size:14.5px;color:var(--yd-ink);background:none;}
.yd-price-page table.yd-price-table th{text-align:left;text-transform:none;font-family:var(--yd-fm);font-size:12.5px;color:var(--yd-muted);font-weight:normal;padding:8px 6px;border:0;border-bottom:1px solid var(--yd-border);background:none;line-height:1.3;}
.yd-price-page table.yd-price-table td{text-align:left;vertical-align:middle;padding:9px 6px;border:0;border-bottom:1px solid var(--yd-border);background:none;line-height:1.3;}
.yd-price-table a{color:var(--yd-link);text-decoration:none;}
.yd-price-bar{width:40%;}
.yd-price-bar span{display:block;margin:0;height:8px;border-radius:4px;background:var(--yd-star);}
.yd-price-cheap{margin:0 0 20px;padding-left:22px;font-family:var(--yd-fl);font-size:14.5px;color:var(--yd-ink);}
.yd-price-cheap li{padding:6px 0;border-bottom:1px solid var(--yd-border);}
.yd-price-cheap a{color:var(--yd-link);text-decoration:none;}
.yd-price-cheap .ok{color:var(--yd-muted);font-size:13px;margin:0 8px;}
.yd-price-cheap .promo{font-size:12px;color:#b45309;background:#FFF3E0;border-radius:6px;padding:1px 6px;}
.yd-price-cta{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 22px;}
.yd-price-other{font-family:var(--yd-fl);font-size:14px;color:var(--yd-mid);margin:0 0 30px;}
.yd-price-other a{color:var(--yd-link);}
@media (max-width:700px){
  .yd-price-kpis{grid-template-columns:repeat(2,1fr);}
  .yd-price-kpis b{font-size:17px;}
  .yd-price-table{font-size:13.5px;}
  .yd-price-bar{width:30%;}
}
.yd-price-doctors{margin:6px 0 10px;}
.yd-price-doctors .yd-list{margin:0 0 12px;}
.yd-price-all{display:inline-block;margin:0 0 18px;font-family:var(--yd-fm);font-size:15px;color:var(--yd-link);text-decoration:none;}
.yd-price-all:hover{text-decoration:underline;}
.yd-price-book{margin-left:10px;border:1.5px solid var(--yd-star);background:#FFF8E8;color:var(--yd-ink);border-radius:9px;padding:3px 12px;font-family:var(--yd-fm);font-size:13.5px;cursor:pointer;}
.yd-price-book:hover{background:var(--yd-star);}
.yd-price-sticky{display:none;}
@media (max-width:700px){
  .yd-price-sticky{display:block;position:fixed;left:12px;right:12px;bottom:12px;z-index:900;text-align:center;background:var(--yd-star);color:var(--yd-ink);font-family:var(--yd-fm);font-size:16px;padding:13px 10px;border-radius:12px;text-decoration:none;box-shadow:0 4px 14px rgba(0,0,0,.18);}
  .yd-price-page{padding-bottom:70px;}
  .yd-price-book{display:block;margin:6px 0 0;}
}
.yd-c-book:has(.yd-slots) .yd-c-price{margin-bottom:6px;}
/* 2026-10-25: компактная колонка записи в карточке листинга. Высоту карточки
   задавала она: тексты наследовали line-height темы (~2), подписи 12px
   занимали по 24px, кнопки времени по 38px, плюс пояснение под слотами в
   три строки. Теперь плотнее, как у DocDoc; пояснение остаётся в модалке. */
.yd-c-book{line-height:1.3;}
.yd-c-book .yd-slots-head{margin-bottom:8px;line-height:1.3;}
.yd-c-book .yd-slot-date{padding:5px 9px;line-height:1.2;}
.yd-c-book .yd-slot-strip{margin-bottom:8px;}
.yd-c-book .yd-slot-time{padding:5px 6px;line-height:1.2;}
.yd-c-book .yd-slot-more{min-height:0;}
.yd-c-book .yd-slots-note{display:none;}
.yd-c-book .yd-phone-block-main{padding-top:10px;}
.yd-c-book .yd-phone-block-main .yd-phone-title{margin-bottom:2px;}
.yd-price-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px;}
.yd-price-group[hidden]{display:none !important;}
/* 2026-10-21: крупнее заголовки разделов, распределение и округа рядом, выделенный фильтр «Специальная цена». */
.yd-price-page .yd-price-h2{font-size:24px;margin:28px 0 12px;}
.yd-price-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:28px;align-items:start;}
.yd-price-col .yd-price-h2{margin-top:6px;}
.yd-price-col .yd-price-text{font-size:14px;}
.yd-price-foot{font-family:var(--yd-fl);font-size:12.5px;color:var(--yd-muted);margin:-8px 0 0;}
.yd-chip.yd-chip-special{border-color:#F5B24A;background:#FFF4E2;color:#8A4B00;}
.yd-chip.yd-chip-special.on{background:#F5A623;border-color:#F5A623;color:#1E2632;}
@media (max-width:860px){
  .yd-price-grid{grid-template-columns:1fr;gap:0;}
  .yd-price-page .yd-price-h2{font-size:21px;}
}

/* Модалка записи в клинику на /ceny/ — оформление как у модалки клиники (скопировано из yandoc-clinic-page.css: .cp-mod, #cpClinicModal). */
#ydCenyClinicModal .modal-body h5, #ydCenyClinicModal .modal-body .yd-h5, #cpClinicModal). */
#ydCenyPickModal .modal-body h5, #ydCenyPickModal .modal-body .yd-h5{font-size:20px;margin:0 0 6px}
#ydCenyClinicModal .yd-ceny-clinic-name, #ydCenyPickModal .yd-ceny-clinic-name{margin:0 0 10px;color:#3E4958}
#ydCenyClinicModal .modal-content, #ydCenyPickModal .modal-content{border:0;border-radius:20px;box-shadow:0 24px 64px rgba(30,38,50,.28);overflow:hidden;font-family:"MuseoSansCyrl500",Arial,sans-serif;color:#1E2632;background:#fff}
#ydCenyClinicModal .modal-header, #ydCenyPickModal .modal-header{border:0;padding:14px 14px 0;display:flex;justify-content:flex-end;background:transparent}
#ydCenyClinicModal .modal-header .btn-close, #ydCenyPickModal .modal-header .btn-close{width:36px;height:36px;border-radius:50%;background:#F7F8FA;border:0;padding:0;margin:0;display:flex;align-items:center;justify-content:center;opacity:1;cursor:pointer}
#ydCenyClinicModal .modal-header .btn-close:hover, #ydCenyPickModal .modal-header .btn-close:hover{background:#ECEDF1}
#ydCenyClinicModal .modal-header .btn-close img, #ydCenyPickModal .modal-header .btn-close img{width:24px;height:24px}
#ydCenyClinicModal .modal-body h5, #ydCenyClinicModal .modal-body .yd-h5, #ydCenyPickModal .modal-body h5, #ydCenyPickModal .modal-body .yd-h5{font-family:"MuseoSansCyrl700",Arial,sans-serif;font-size:22px;line-height:1.25;margin:0 0 4px;color:#1E2632}
#ydCenyClinicModal .modal-dialog, #ydCenyPickModal .modal-dialog{max-width:480px}
#ydCenyClinicModal .modal-body, #ydCenyPickModal .modal-body{padding:0 24px 8px}
#ydCenyClinicModal .modal-body h5, #ydCenyClinicModal .modal-body .yd-h5, #ydCenyPickModal .modal-body h5, #ydCenyPickModal .modal-body .yd-h5{font-size:22px;margin:0 0 4px}
#ydCenyClinicModal .yd-ceny-clinic-name, #ydCenyPickModal .yd-ceny-clinic-name{margin:0 0 6px;color:#6F7580;font-size:14.5px}
#ydCenyClinicModal .modal-footer, #ydCenyPickModal .modal-footer{display:block;border:0;padding:8px 24px 24px;text-align:left;background:transparent}
#ydCenyClinicModal .modal-footer .form, #ydCenyPickModal .modal-footer .form{display:block;width:100%;float:none}
#ydCenyClinicModal .wpcf7 form p, #ydCenyPickModal .wpcf7 form p{margin:0 0 10px}
#ydCenyClinicModal .wpcf7 input[type=text], #ydCenyClinicModal .wpcf7 input[type=tel], #ydCenyClinicModal .wpcf7 input[type=email], #ydCenyPickModal .wpcf7 input[type=text], #ydCenyPickModal .wpcf7 input[type=tel], #ydCenyPickModal .wpcf7 input[type=email]{width:100%;height:52px;border:1.5px solid #D8D8E0;border-radius:12px;padding:0 16px;font-size:16px;font-family:"MuseoSansCyrl500",Arial,sans-serif;color:#1E2632;background:#fff;box-shadow:none;outline:0;transition:border-color .15s,box-shadow .15s}
#ydCenyClinicModal .wpcf7 input[type=text]:focus, #ydCenyClinicModal .wpcf7 input[type=tel]:focus, #ydCenyClinicModal .wpcf7 input[type=email]:focus, #ydCenyPickModal .wpcf7 input[type=text]:focus, #ydCenyPickModal .wpcf7 input[type=tel]:focus, #ydCenyPickModal .wpcf7 input[type=email]:focus{border-color:#1E2632;box-shadow:0 0 0 3px rgba(255,204,0,.5)}
#ydCenyClinicModal .modal-dialog .wpcf7 .wpcf7-submit, #ydCenyPickModal .modal-dialog .wpcf7 .wpcf7-submit{float:none;display:block;width:100%;height:52px;padding:0 20px;border:0;border-radius:14px;background:#FFCC00;color:#1E2632;font-family:"MuseoSansCyrl700",Arial,sans-serif;font-size:16px;cursor:pointer;transition:background .15s}
#ydCenyClinicModal .modal-dialog .wpcf7 .wpcf7-submit:hover, #ydCenyPickModal .modal-dialog .wpcf7 .wpcf7-submit:hover{background:#F2BE00}
#ydCenyClinicModal .modal-dialog .wpcf7 .wpcf7-submit:focus-visible, #ydCenyPickModal .modal-dialog .wpcf7 .wpcf7-submit:focus-visible{outline:2px solid #0070C0;outline-offset:2px}
#ydCenyClinicModal .wpcf7 .wpcf7-spinner, #ydCenyPickModal .wpcf7 .wpcf7-spinner{display:none}
#ydCenyClinicModal .wpcf7 form.submitting .wpcf7-submit, #ydCenyPickModal .wpcf7 form.submitting .wpcf7-submit{opacity:.7;pointer-events:none}
#ydCenyClinicModal .wpcf7 .wpcf7-response-output, #ydCenyPickModal .wpcf7 .wpcf7-response-output{margin:12px 0 0;padding:10px 12px;border-radius:10px;font-size:14px;border-width:1px}
#ydCenyClinicModal .form_under, #ydCenyPickModal .form_under{clear:both;float:none;display:block;width:100%;padding:0;margin:12px 0 0;text-align:left}
#ydCenyClinicModal .form_under p, #ydCenyPickModal .form_under p{margin:0;font-size:12.5px;line-height:1.5;color:#6F7580;text-align:left}
#ydCenyClinicModal .form_under a, #ydCenyPickModal .form_under a{color:#0070C0;text-decoration:underline}
@media(max-width:575px){#ydCenyClinicModal .modal-dialog, #ydCenyPickModal .modal-dialog{margin:12px;max-width:none}}
@media(max-width:575px){#ydCenyClinicModal .modal-body, #ydCenyPickModal .modal-body{padding-left:18px;padding-right:18px}}
@media(max-width:575px){#ydCenyClinicModal .modal-footer, #ydCenyPickModal .modal-footer{padding:8px 18px 20px}}
#ydCenyClinicModal .cp-callback, #ydCenyPickModal .cp-callback{margin:2px 0 12px;font-size:14px;line-height:1.45;color:#3E4958}
/* Ссылки на странице цен: без синего #23527c из bootstrap (a:hover/a:focus), который оставался после возврата на страницу. */
.yd-price-table a, .yd-price-cheap a, .yd-price-crumbs a, .yd-price-other a, a.yd-price-all, .yd-price-table a:visited, .yd-price-cheap a:visited, .yd-price-crumbs a:visited, .yd-price-other a:visited, a.yd-price-all:visited{color:var(--yd-link);}
.yd-price-table a:hover, .yd-price-cheap a:hover, .yd-price-crumbs a:hover, .yd-price-other a:hover, a.yd-price-all:hover, .yd-price-table a:focus, .yd-price-cheap a:focus, .yd-price-crumbs a:focus, .yd-price-other a:focus, a.yd-price-all:focus, .yd-price-table a:active, .yd-price-cheap a:active, .yd-price-crumbs a:active, .yd-price-other a:active, a.yd-price-all:active{color:var(--yd-ink);text-decoration:underline;}
.yd-price-page .yd-rating-cta, .yd-price-page .yd-rating-cta:visited, .yd-price-page .yd-rating-cta:focus{color:var(--yd-ink);text-decoration:none;}
/* Кнопка «Записаться» у клиник — стандартная жёлтая, как в листинге (.yd-btn-book), только компактнее. */
.yd-price-page .yd-price-book{margin-left:12px;background:var(--yd-yellow);color:#1E2632;border:none;border-radius:10px;padding:8px 16px;font-family:var(--yd-fb);font-size:14px;transition:.15s;cursor:pointer;}
.yd-price-page .yd-price-book:hover{background:#F2C200;}
@media (max-width:700px){.yd-price-page .yd-price-book{display:block;margin:8px 0 2px;padding:11px 16px;width:100%;}}
.yd-price-sticky{border:0;cursor:pointer;width:auto;}
.yd-price-sticky:hover,.yd-price-sticky:focus,.yd-price-sticky:active{color:var(--yd-ink);background:#F2C200;outline:none;}
/* /ceny/: карточки клиник из листинга клиник; название — h3 (h2 занят заголовком раздела). */
.yd-price-clinics{margin:0 0 22px;background:transparent;}
.yd-price-clinics .yh-card h3{margin:0;font-family:var(--fb);font-size:18px;line-height:1.2;}
.yd-price-clinics .yh-card h3 a{color:var(--ink);}
.yd-price-page .yd-price-clinics .yh-btn.yd-price-book{margin:0;display:block;width:100%;padding:0 12px;background:var(--yellow);}
.yd-price-cta{margin:4px 0 18px;}
