/* Имплантист.ру MVP UI (clean medical, blue accents) */
:root{
  --bg: #f6f9ff;
  --surface: #ffffff;
  --text: #0f1b2d;
  --muted: #5b6b82;
  --border: rgba(15,27,45,.10);
  --blue: #1f6feb;
  --blue-2: #0b5ed7;
  --teal: #0ea5a4;
  --success: #0f766e;
  --warning: #b45309;
  --shadow: 0 10px 30px rgba(15, 27, 45, .08);
  --radius: 16px;
  --radius-sm: 12px;
  --container: 1080px;
  --header-height: 64px;
}

*{ box-sizing:border-box; }
html{ overflow-x: hidden; }
html,body{ height:100%; }
body{
  margin:0;
  overflow-x: hidden;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Inter, Arial, "Noto Sans", "Helvetica Neue", sans-serif;
  color:var(--text);
  background: linear-gradient(180deg,
    #f8faff 0%,
    #f4f8ff 15%,
    #f2f6ff 35%,
    #f4f8ff 65%,
    #f6f9ff 85%,
    #f8faff 100%);
  background-attachment: fixed;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
body > main{
  flex: 1 0 auto;
  padding-top: var(--header-height);
  padding-bottom: 28px;
}
body.page-index main{
  padding-top: 0;
}
.hero-spacer{
  height: 80px;
  min-height: 80px;
  flex-shrink: 0;
}

a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
button, input, select{ font:inherit; }

/* Главная страница — шире */
body.page-index .container{
  --container: 1160px;
}
/* Внутренние страницы — чуть уже главной */
body:has(main.results) .container,
body:has(main.detail) .container,
body:has(main.section) .container,
body:has(main.compare-page) .container{
  --container: 1040px;
}
.container{
  width:min(var(--container), calc(100% - 8px));
  margin-inline:auto;
}
/* Шапка: высота в :root (--header-height), отступ body > main { padding-top: var(--header-height) } */
.topbar-wrap{
  height: 0;
  min-height: 0;
  flex-shrink: 0;
  overflow: visible;
}
.topbar .container{
  --container: 1160px;
}

.topbar{
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 20;
  height: var(--header-height);
  min-height: var(--header-height);
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #1e293b;
  border-bottom: 1px solid rgba(255, 255, 255, .12);
  box-shadow: none;
  transition: transform 0.25s ease;
  will-change: transform;
}
.topbar--hidden{
  transform: translateY(-100%);
}
.topbar .brand__wordmark{ color: #fff; }
.topbar .brand__sub{ color: rgba(255, 255, 255, .65); }
.topbar .brand:hover{ opacity: 1; color: #fff; }
.topbar .brand__icon{ filter: brightness(0) invert(1); opacity: .95; }
.topbar .city{ background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .25); color: #fff; }
.topbar .city--trigger{ color: #fff; }
.topbar .city svg{ color: rgba(255, 255, 255, .9); }
.topbar .btn--ghost{ background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .25); color: rgba(255, 255, 255, .9); }
.topbar .btn--ghost:hover{ background: rgba(255, 255, 255, .22); color: #fff; }
.topbar .btn--primary{ background: #fff; color: #1e293b; border: none; }
.topbar .btn--primary:hover{ background: #e2e8f0; color: #1e293b; box-shadow: 0 6px 20px rgba(0, 0, 0, .15); }

.topbar__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:0;
  min-height: var(--header-height);
}

.brand{
  display:inline-flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
  text-decoration:none;
  color:inherit;
  transition: opacity .2s ease;
}
.brand:hover{
  opacity: .92;
}
.brand__row{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.brand__icon{
  display:none;
  width:20px;
  height:26px;
  object-fit:contain;
  flex-shrink:0;
}
.brand__wordmark{
  font-size: 20px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--text);
  line-height: 1.1;
  margin-right: -0.22em;
}
.brand__sub{
  display:block;
  font-size: 11px;
  color: var(--muted);
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.3;
}
.brand__name{
  font-weight: 800;
  letter-spacing: .2px;
}
@media (max-width: 480px){
  .brand__wordmark{ font-size: 17px; letter-spacing: 0.14em; margin-right: -0.14em; }
}

.city{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border:1px solid var(--border);
  background: rgba(255,255,255,.72);
  border-radius: 999px;
}
.city select{
  border:0;
  background:transparent;
  color:var(--text);
  font-weight:650;
  outline:none;
  max-width: 170px;
}
.city--trigger{
  appearance:none;
  border:none;
  background:none;
  cursor:pointer;
}

.btn{
  appearance:none;
  border:1px solid transparent;
  border-radius: 999px;
  padding:12px 16px;
  font-weight:750;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  transition: transform .25s cubic-bezier(.34, 1.56, .64, 1), box-shadow .3s ease, background .2s ease, border-color .2s ease, color .2s ease, filter .2s ease;
  user-select:none;
  text-decoration: none;
}
.btn:focus-visible{
  outline: 2px solid var(--blue);
  outline-offset: 2px;
}
.btn:not(:disabled):hover{
  transform: translateY(-2px) scale(1.01);
}
.btn:not(:disabled):active{
  transform: translateY(0) scale(0.995);
  transition-duration: .1s;
}
.btn:disabled,
.btn[disabled]{
  cursor: not-allowed;
  opacity: .85;
}
.btn--primary{
  background: linear-gradient(135deg, var(--blue), var(--blue-2));
  color: white;
  border-color: transparent;
  box-shadow: 0 10px 24px rgba(31,111,235,.28), 0 4px 8px rgba(31,111,235,.15);
}
.btn--primary:not(:disabled):hover{
  box-shadow: 0 20px 45px rgba(31,111,235,.4), 0 8px 18px rgba(31,111,235,.25), 0 0 0 1px rgba(255,255,255,.1) inset;
  background: linear-gradient(135deg, #3b82f6, #2563eb);
  filter: brightness(1.08);
}
.btn--primary:not(:disabled):active{
  box-shadow: 0 6px 16px rgba(31,111,235,.3);
  filter: none;
}
.btn--success{
  background: var(--success, #0f766e);
  color: white;
  border-color: var(--success, #0f766e);
  box-shadow: 0 10px 24px rgba(15,118,110,.28);
}
.btn--success:not(:disabled):hover{
  box-shadow: 0 20px 45px rgba(15,118,110,.4), 0 0 0 1px rgba(255,255,255,.12) inset;
  filter: brightness(1.1);
}
.btn--success:not(:disabled):active{
  box-shadow: 0 6px 16px rgba(15,118,110,.25);
  filter: none;
}
.btn--error{
  background: #dc2626;
  color: white;
  border-color: #dc2626;
  box-shadow: 0 10px 24px rgba(220,38,38,.28);
}
.btn--error:not(:disabled):hover{
  box-shadow: 0 20px 45px rgba(220,38,38,.4);
  filter: brightness(1.1);
}
.btn--error:not(:disabled):active{
  box-shadow: 0 6px 16px rgba(220,38,38,.25);
  filter: none;
}
.btn--ghost{
  background: rgba(255,255,255,.72);
  border: 1px solid var(--border);
  color: var(--text);
}
.btn--ghost:not(:disabled):hover{
  background: #fff;
  box-shadow: 0 12px 32px rgba(0,0,0,.12), 0 4px 12px rgba(0,0,0,.06);
  border-color: rgba(0,0,0,.08);
}
.btn--ghost:not(:disabled):active{
  box-shadow: 0 4px 14px rgba(0,0,0,.08);
}
.btn--outline{
  background: transparent;
  border: 2px solid var(--border);
  color: var(--text);
  font-weight: 500;
}
.btn--outline:not(:disabled):hover{
  border-color: var(--blue);
  color: var(--blue);
  background: rgba(31,111,235,.08);
  box-shadow: 0 12px 32px rgba(31,111,235,.2), 0 0 0 1px rgba(31,111,235,.15);
}
.btn--outline:not(:disabled):active{
  box-shadow: 0 4px 14px rgba(31,111,235,.15);
}
.btn--white-outline{
  background: #fff;
  border: 2px solid var(--blue);
  color: var(--blue);
  font-weight: 500;
}
.btn--white-outline:not(:disabled):hover{
  border-color: var(--blue-2);
  color: var(--blue-2);
  background: rgba(31,111,235,.06);
  box-shadow: 0 8px 24px rgba(31,111,235,.2);
}
.btn--white-outline:not(:disabled):active{
  box-shadow: 0 4px 14px rgba(31,111,235,.15);
}
.btn--sm{
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 700;
}
.btn--sm:not(:disabled):hover{
  transform: translateY(-2px) scale(1.01);
}
.btn--subtle{
  background: rgba(31,111,235,.10);
  border: 1px solid rgba(31,111,235,.20);
  color: #1147a6;
}
.btn--subtle:not(:disabled):hover{
  background: rgba(31,111,235,.18);
  border-color: rgba(31,111,235,.4);
  box-shadow: 0 12px 32px rgba(31,111,235,.22);
  filter: brightness(1.05);
}
.btn--subtle:not(:disabled):active{
  box-shadow: 0 4px 14px rgba(31,111,235,.12);
  filter: none;
}

.pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border:1px solid var(--border);
  border-radius: 999px;
  background: rgba(255,255,255,.7);
  color: var(--muted);
  font-weight: 650;
  font-size: 13px;
}
.pill--success{
  border-color: var(--success, #0d9668);
  background: rgba(13, 150, 104, .1);
  color: var(--success, #0d9668);
}

.hero{
  padding: 44px 0 24px;
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  background: transparent;
}
.hero__grid{
  display: block;
  position: relative;
  z-index: 1;
}
.hero .card{
  max-width: 100%;
}
.card{
  background: rgba(255,255,255,.82);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.card--tight{ padding:16px; }
.card--pad{ padding:22px; }

.hero h1{
  margin: 10px 0 12px;
  font-size: 40px;
  line-height: 1.12;
  letter-spacing: -0.6px;
}
.hero p{
  margin: 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.55;
}

.hero__brands{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 14px;
  margin-top: 16px;
  padding: 12px 0;
}
.hero__brands-label{
  font-size: 13px;
  font-weight: 700;
  color: var(--muted);
}
.hero__brands-icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 10px;
  background: rgba(31,111,235,.12);
  color: #0b4ea6;
}
.hero__brands-list{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.hero__brand{
  display: inline-block;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  color: #0b4ea6;
  background: rgba(31,111,235,.1);
  border: 1px solid rgba(31,111,235,.25);
}
.hero__utp-sub{
  margin-top: 14px;
  font-size: 14px;
  font-weight: 600;
  color: var(--muted);
  line-height: 1.45;
}

.hero__urgency{
  margin: 8px 0 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
}
.hero__actions{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 20px;
}
.hero__actions .btn{
  min-width: 160px;
}
.hero__cta-secondary{
  min-width: 0;
}

/* Герой — минималистичный, акцентная полоса слева */
.hero--v3{ padding: 24px 0; }
.hero__v3-inner{
  padding: 24px 24px 24px 28px;
  border-radius: var(--radius);
  background: #fff;
  border: 1px solid var(--border);
  border-left: 4px solid var(--blue);
  box-shadow: 0 4px 20px rgba(15,27,45,.06);
}
.hero__v3-pill{
  background: rgba(31,111,235,.08);
  border-color: rgba(31,111,235,.2);
  color: #0b4ea6;
}
.hero--v3 h1{ font-size: 36px; letter-spacing: -0.5px; }
.hero--v3 .hero__actions{ margin-top: 18px; }

/* Герой с подложкой: картинка от края до края, текст и кнопки поверх; высота увеличена, картинка «отдалена» */
.hero--cover{
  position: relative;
  padding: 0;
  margin: 0;
  overflow: visible;
  border-radius: var(--radius);
  width: 100%;
  max-width: min(var(--container), calc(100% - 16px));
  margin-inline: auto;
  min-height: 520px;
  height: 520px;
}
body.page-index .hero--cover{
  max-width: min(1160px, calc(100% - 16px));
}
.hero__cover{
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  overflow: hidden;
}
.hero__cover-img{
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 42%;
}
.hero__overlay{
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg,
    rgba(255,255,255,.28) 0%,
    rgba(255,255,255,.06) 45%,
    transparent 65%);
  pointer-events: none;
}
.hero--cover .hero__container{
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 100%;
  padding: 36px 0;
  box-sizing: border-box;
}
.hero--cover .hero__container.container{
  width: min(var(--container), calc(100% - 16px));
  max-width: min(1160px, calc(100% - 16px));
  margin-inline: auto;
  padding-inline: 16px;
}
.hero__grid--cover{
  display: flex;
  align-items: center;
  width: 100%;
}
.hero__v3-inner--cover{
  max-width: 52%;
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 12px 24px 16px 0;
}
.hero--cover .hero__v3-inner--cover .hero__utp-sub{ margin-top: 8px; }
.hero--cover .hero__v3-inner--cover .hero__actions{
  margin-top: 16px;
  flex-wrap: wrap;
  gap: 10px;
}
.hero--cover .hero__v3-inner--cover h1,
.hero--cover .hero__v3-inner--cover p,
.hero--cover .hero__v3-inner--cover .hero__urgency{
  text-shadow: 0 1px 3px rgba(255,255,255,.85), 0 0 24px rgba(255,255,255,.4);
}
.hero--cover .hero__v3-inner--cover .hero__v3-pill{
  text-shadow: none;
}
@media (max-width: 900px){
  .hero__overlay{
    background: linear-gradient(180deg,
      rgba(255,255,255,.4) 0%,
      transparent 50%);
  }
  .hero__v3-inner--cover{ max-width: 100%; padding-right: 0; }
}
@media (max-width: 600px){
  .hero-spacer{ height: 72px; min-height: 72px; }
  .hero--cover{ min-height: 420px; height: 420px; }
  .hero--cover .hero__container{ padding: 24px 0; }
  .hero--cover .hero__container.container{ padding-inline: 12px; }
  .hero--cover h1{ font-size: 26px; }
  .hero--cover .hero__v3-inner--cover .hero__actions{ flex-direction: column; align-items: flex-start; }
}
/* Кнопки «Получить подбор» и «Найти клиники» — синий контур */
.hero--v3 .btn--outline{
  border: 1px solid var(--blue);
  color: var(--blue);
  background: transparent;
}
.hero--v3 .btn--outline:not(:disabled):hover{
  border-color: var(--blue-2);
  color: var(--blue-2);
  background: rgba(31,111,235,.08);
  transform: translateY(-2px) scale(1.01);
  box-shadow: 0 12px 32px rgba(31,111,235,.2), 0 0 0 1px rgba(31,111,235,.15);
}

/* Блок видео о сервисе (7–10 сек, цикличное): между hero и «Как работает» */
.hero-promo{
  padding: 0 0 22px;
}
.hero-promo__wrap{
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  background: linear-gradient(135deg, #0b3d82 0%, #1a5fb4 35%, #2d7dd2 70%, #1a5fb4 100%);
  aspect-ratio: 21 / 9;
  max-height: 320px;
  box-shadow: 0 8px 32px rgba(11,61,130,.25);
}
.hero-promo__video{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-promo__video[src]:not([src=""]){
  position: relative;
  z-index: 1;
}
.hero-promo__fallback{
  position: absolute;
  inset: 0;
  z-index: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #0b3d82 0%, #1a5fb4 35%, #2d7dd2 70%, #1a5fb4 100%);
  background-size: 200% 200%;
  animation: hero-promo-bg 8s ease-in-out infinite;
}
.hero-promo__video[src]:not([src=""]).is-loaded ~ .hero-promo__fallback{
  display: none;
}
.hero-promo__film{
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero-promo__phrase{
  position: absolute;
  font-size: clamp(18px, 3.2vw, 28px);
  font-weight: 700;
  color: #fff;
  text-shadow: 0 2px 12px rgba(0,0,0,.3);
  letter-spacing: -0.02em;
  opacity: 0;
  transform: scale(0.92);
  animation: hero-promo-phrase 8s ease-in-out infinite;
}
.hero-promo__phrase--1{ animation-delay: 0s; }
.hero-promo__phrase--2{ animation-delay: -2s; }
.hero-promo__phrase--3{ animation-delay: -4s; }
.hero-promo__phrase--4{ animation-delay: -6s; }
@keyframes hero-promo-bg{
  0%, 100%{ background-position: 0% 50%; }
  50%{ background-position: 100% 50%; }
}
@keyframes hero-promo-phrase{
  0%, 22%{ opacity: 1; transform: scale(1); }
  25%, 100%{ opacity: 0; transform: scale(0.92); }
}

.hero-illustration{
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  display: block;
}
.hero-illustration__img{
  display: block;
  width: 100%;
  height: 200px;
  min-height: 200px;
  object-fit: cover;
  object-position: center;
}
/* В статье блога (main.detail) — картинка без обрезки/зума, целиком как в карточке */
main.detail .hero-illustration__img{
  height: auto;
  min-height: 0;
  max-height: 360px;
  object-fit: contain;
  object-position: center top;
}
.hero-illustration__badge{
  position: absolute;
  top: 16px;
  right: 18px;
  background: rgba(255,255,255,.95);
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--border);
  font-size: 11px;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 6px;
}

.segmented{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top: 10px;
}
.segmented button{
  border-radius: 999px;
  border:1px solid var(--border);
  background: rgba(255,255,255,.7);
  padding:10px 12px;
  cursor:pointer;
  font-weight: 700;
  color: var(--text);
}
.segmented button[aria-pressed="true"]{
  background: rgba(31,111,235,.12);
  border-color: rgba(31,111,235,.25);
  color: #1147a6;
}

.section{
  padding: 22px 0;
}
.section__head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:16px;
  margin-bottom: 14px;
}
.section__head--stack{ flex-direction: column; align-items: flex-start; }
.services-page__head{ margin-bottom: 20px; }
.services-page__head .section__title{ font-size: 1.5rem; }
.services-page__badges-row{ display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; align-items: center; }
.services-page__hint-badge{ display: inline-flex; align-items: flex-start; padding: 8px 14px; font-size: 13px; font-weight: 600; color: var(--muted); background: var(--bg-muted, #f1f5f9); border: 1px solid var(--border); border-radius: 999px; line-height: 1.35; max-width: 420px; }
.services-page__hint-badge .services-page__hint-icon{ flex-shrink: 0; width: 18px; height: 18px; margin-right: 8px; margin-top: 1px; }
.services-page__hint-badge .services-page__hint-icon svg{ width: 100%; height: 100%; }
.services-page__hint-badge--v2{ background: transparent; border: 2px solid var(--blue); color: var(--blue); border-radius: 10px; }
.services-page__hint-badge--v3{ background: linear-gradient(135deg, rgba(31,111,235,.08), rgba(31,111,235,.04)); border: 1px solid rgba(31,111,235,.2); color: var(--blue); border-radius: 8px; }
.services-page__hint-badge--v4{ background: var(--text); color: #fff; border: none; border-radius: 999px; font-weight: 500; }
.services-page__hint-badge--v5{ background: #fef9e7; border: 1px solid #e8d86b; color: #7a6a1a; border-radius: 12px; font-weight: 500; }
.services-page__hint-badge--lightbulb{ background: #fff; border: 1px solid var(--border); color: var(--text); border-radius: 12px; font-weight: 500; white-space: nowrap; max-width: none; }
.services-page__hint-icon--yellow{ color: #ca8a04; }
.services-page__hint-icon--yellow svg{ stroke: currentColor; }
.services-page__hint-badge--v6{ background: #e8f4fd; border: 1px solid rgba(31,111,235,.35); color: #0d4a8a; border-radius: 10px; font-weight: 500; }
.services-page__hint-badge--v7{ background: #f0fdf4; border: 1px solid rgba(22,163,74,.3); color: #14532d; border-radius: 10px; font-weight: 500; }
.services-page__hint-badge--v8{ background: #f5f3ff; border: 1px solid rgba(99,102,241,.35); color: #3730a3; border-radius: 10px; font-weight: 500; }
.section__title{
  margin:0;
  font-size: 22px;
  letter-spacing: -0.2px;
}
.section__action--end{ text-align: right; }
.section__hint{
  margin:0;
  color:var(--muted);
  font-size: 14px;
}

.grid-3{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.grid-4{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
@media (max-width: 900px){
  .grid-4{ grid-template-columns: repeat(2, 1fr); }
}
.grid-cards{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.grid-cards--blog{
  min-width: 0;
}
.grid-cards--blog .service-card{
  min-width: 0;
  overflow: hidden;
}
.service-card--blog .service-card__blog-link{
  color: inherit;
  text-decoration: none;
  display: block;
  min-width: 0;
}
.service-card__blog-img-wrap{
  display: block;
  width: 100%;
  aspect-ratio: 600 / 360;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: linear-gradient(145deg, rgba(31,111,235,.06), rgba(31,111,235,.02));
  margin-bottom: 10px;
}
.service-card__blog-img-wrap img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  vertical-align: middle;
}

.feature{
  display:flex;
  gap:12px;
  align-items:flex-start;
}
.icon{
  width:38px; height:38px;
  border-radius: 12px;
  display:grid;
  place-items:center;
  background: rgba(31,111,235,.12);
  border:1px solid rgba(31,111,235,.18);
  color:#1147a6;
  flex: 0 0 auto;
}
.feature h3{
  margin:0 0 6px;
  font-size: 16px;
}
.feature p{
  margin:0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.45;
}

/* Блок «Как работает» — карточки с иконкой сверху */
.how-block--v2 .section__head{ margin-bottom: 20px; }
.how-block__grid--v2{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.how-block--v2 .how-block__card{
  padding: 20px 16px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: #fff;
  text-align: center;
  transition: border-color .2s, box-shadow .2s;
}
.how-block--v2 .how-block__card:hover{
  border-color: rgba(31,111,235,.3);
  box-shadow: 0 6px 20px rgba(31,111,235,.08);
}
.how-block__icon-wrap{
  width: 52px;
  height: 52px;
  margin: 0 auto 14px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, rgba(31,111,235,.12), rgba(31,111,235,.06));
  color: #1147a6;
}
.how-block__card-title{ margin: 0 0 8px; font-size: 16px; font-weight: 700; }
.how-block__card-desc{ margin: 0; font-size: 13px; line-height: 1.5; color: var(--muted); }
@media (max-width: 900px){
  .how-block__grid--v2{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 500px){
  .how-block__grid--v2{ grid-template-columns: 1fr; }
}

.service-card{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:16px;
}
.service-card__graphic{
  width: 100%;
  aspect-ratio: 3 / 2;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: linear-gradient(145deg, rgba(31,111,235,.06), rgba(31,111,235,.02));
  border: 1px solid rgba(31,111,235,.12);
  color: rgba(31,111,235,.75);
  display: flex;
  align-items: center;
  justify-content: center;
}
.service-card__graphic svg,
.service-card__graphic img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* Hover для окошек «О сервисе Имплантист» (карточки с .service-card__graphic) */
.service-card:has(.service-card__graphic){
  transition: transform .25s ease, box-shadow .25s ease, border-color .2s ease;
}
.service-card:has(.service-card__graphic):hover{
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(15,27,45,.12), 0 6px 16px rgba(15,27,45,.06);
  border-color: rgba(31,111,235,.25);
}
.service-card:has(.service-card__icon){
  flex-direction:row;
  align-items:flex-start;
  gap:18px;
  padding:20px;
}
.service-card__icon{
  width:56px;
  height:56px;
  border-radius:14px;
  background: linear-gradient(145deg, rgba(31,111,235,.14), rgba(31,111,235,.06));
  border:1px solid rgba(31,111,235,.2);
  display:grid;
  place-items:center;
  color:#0b4ea6;
  flex-shrink:0;
  box-shadow: 0 2px 8px rgba(11,78,166,.08);
}
.service-card__icon svg{
  width:28px;
  height:28px;
}
.service-card__body{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.service-card__title{
  margin:0;
  font-weight:800;
  letter-spacing:-0.2px;
  font-size: 1.05em;
}
.service-card__meta{
  margin:0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.45;
}
.service-card__footer{
  margin-top:auto;
  display:flex;
  align-items:stretch;
  gap:10px;
}
.service-card__footer .pill,
.service-card__footer .btn{
  flex:1 1 0;
  min-width:0;
  padding:10px 14px;
  font-size:13px;
  font-weight:650;
  border-radius:10px;
  justify-content:center;
  white-space:nowrap;
}
.service-card__footer .pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.service-card__footer .btn{
  text-align:center;
}
.service-card__unavailable{
  display: none;
}
.service-card--unavailable .service-card__footer .service-card__btn--disabled,
.service-card--unavailable .service-card__footer .btn--primary:not([href]){ opacity: .7; pointer-events: none; cursor: default; }
.service-card--unavailable .service-card__footer .pill{ text-decoration: line-through; color: var(--muted); }
.service-card__title a{ color: inherit; text-decoration: none; font-weight: inherit; }
.service-card__title a:hover{ text-decoration: underline; color: var(--blue); }
.services-group{ margin-bottom: 2rem; }
.services-group:last-child{ margin-bottom: 0; }
.services-group__title{ font-size: 1.1rem; font-weight: 700; color: var(--muted); margin: 0 0 12px; letter-spacing: .02em; }
#services-root .grid-cards,
#popular-services-root.grid-cards{ align-items: stretch; }
#services-root .service-card,
#popular-services-root .service-card{ height: 100%; min-height: 220px; display: flex; flex-direction: column; align-items: stretch; }
#services-root .service-card__row,
#popular-services-root .service-card__row{ display: flex; flex: 1; min-height: 0; gap: 18px; align-items: stretch; }
#services-root .service-card__body,
#popular-services-root .service-card__body{ flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column; }
#services-root .service-card__meta,
#popular-services-root .service-card__meta{ flex: 1 1 auto; min-height: 0; margin-bottom: 14px; }
#services-root .service-card__footer,
#popular-services-root .service-card__footer{ width: 100%; margin-top: auto; flex-shrink: 0; flex-wrap: nowrap; justify-content: flex-end; align-items: center; gap: 10px; padding-top: 4px; }
#services-root .service-card__footer .btn,
#popular-services-root .service-card__footer .btn{ flex: 0 0 auto; min-width: 0; }
@media (min-width: 769px) and (max-width: 980px){
  #services-root .grid-cards,
  #popular-services-root.grid-cards{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px){
  #services-root .grid-cards,
  #popular-services-root.grid-cards{ grid-template-columns: 1fr; gap: 12px; }
  #services-root .service-card,
  #popular-services-root .service-card{ min-height: 180px; }
  #services-root .service-card__row,
  #popular-services-root .service-card__row{ gap: 14px; }
  #services-root .service-card__footer,
  #popular-services-root .service-card__footer{ padding-top: 10px; flex-wrap: wrap; }
}
@media (max-width: 480px){
  .services-page__head .section__title{ font-size: 1.25rem; }
  #services-root .service-card,
  #popular-services-root .service-card{ padding: 14px; min-height: 160px; }
  #services-root .service-card__icon,
  #popular-services-root .service-card__icon{ width: 48px; height: 48px; }
  #services-root .service-card__icon svg,
  #popular-services-root .service-card__icon svg{ width: 24px; height: 24px; }
}
.service-card__badge-row{ min-height: 28px; flex-shrink: 0; }
.service-card__badge-row:empty{ min-height: 0; }
.service-card__badge-row:not(:empty){ margin: -20px -20px 0 -20px; width: calc(100% + 40px); border-top-left-radius: var(--radius, 16px); border-top-right-radius: var(--radius, 16px); overflow: hidden; }
.service-card__badge{ display: block; width: 100%; text-align: center; font-size: 11px; font-weight: 800; padding: 6px 12px; border-radius: 0; box-sizing: border-box; }
.service-card__badge--top{ background: linear-gradient(135deg, #2d7ad1, #5a9af5); color: #fff; }
.service-card__badge--unavailable{ background: linear-gradient(135deg, rgba(217, 159, 111, .28), rgba(250, 235, 215, .45)); color: #8b6914; border: none; border-bottom: 1px solid rgba(180, 120, 60, .2); }
.service-card:has(.service-card__badge-row){ flex-direction: column; }
.service-card:has(.service-card__badge-row) .service-card__row{ flex: 1; min-height: 0; }
@media (max-width: 480px){
  .service-card__badge-row:not(:empty){ margin: -14px -14px 0 -14px; width: calc(100% + 28px); border-top-left-radius: var(--radius, 16px); border-top-right-radius: var(--radius, 16px); }
}
.tag{
  font-size:12px;
  font-weight:800;
  color:#0b4ea6;
  background: rgba(31,111,235,.10);
  border:1px solid rgba(31,111,235,.18);
  padding:6px 10px;
  border-radius: 999px;
}

.lead-magnet__card{
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: 32px;
  align-items: start;
  background: rgba(255,255,255,.85);
  border-color: rgba(31,111,235,.2);
  padding: 28px 26px;
}
.lead-magnet__badge{
  display: inline-block;
  margin-bottom: 10px;
}
.lead-magnet__title{
  margin: 0 0 12px;
  font-size: 22px;
  line-height: 1.25;
  letter-spacing: -0.02em;
}
.lead-magnet__desc{
  margin: 0 0 14px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.5;
}
.lead-magnet__list{
  margin: 0;
  padding-left: 1.2em;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.6;
}
.lead-magnet__list li{
  margin-bottom: 4px;
}
.lead-magnet__form-wrap{
  min-width: 0;
  padding-left: 20px;
  box-sizing: border-box;
}
.lead-magnet__form{
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 14px;
  max-width: 100%;
}
.lead-magnet__form .field{
  flex: none;
  min-width: 0;
  margin: 0;
}
.lead-magnet__form .field.form__consent{ margin: 0; }
.lead-magnet__form .btn{
  margin-top: 2px;
  padding: 12px 20px;
}
.lead-magnet__form-row{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  min-width: 0;
}
.lead-magnet__form-row .field{ margin: 0; min-width: 0; }
.lead-magnet__form-row .input{ min-width: 0; max-width: 100%; box-sizing: border-box; }
.lead-magnet__form--clinic{ gap: 10px; }
.lead-magnet__form--clinic .field.form__consent{ margin-top: 2px; }
.lead-magnet__form--clinic .btn{ margin-top: 2px; }
.lead-magnet__success{
  margin-top: 8px;
}
.lead-magnet__social-wrap{
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 10px;
  flex-wrap: wrap;
}
.lead-magnet__social-label{
  margin: 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
}
.lead-magnet__social{
  display: flex;
  align-items: center;
  gap: 8px;
}
.lead-magnet__social-link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: rgba(91, 107, 130, .15);
  color: var(--muted);
  transition: background .15s, color .15s;
}
.lead-magnet__social-link:hover{
  background: rgba(91, 107, 130, .25);
  color: var(--text);
}

/* Варианты оформления лид-магнита (выбор одного) */
.lead-magnet-variants-caption{
  margin: 0 0 16px;
  font-size: 15px;
  font-weight: 600;
  color: var(--muted);
}
.lead-magnet-variants{
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.lead-magnet-variant{ position: relative; }
.lead-magnet-variant__label{
  display: inline-block;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--muted);
}

.lead-magnet__card--v1{ /* текущий — без изменений */ }

.lead-magnet__card--v2{
  border-left: 4px solid var(--blue);
  box-shadow: 0 4px 20px rgba(31,111,235,.12);
}

.lead-magnet__card--v3{
  border-left: 4px solid var(--teal);
  box-shadow: 0 4px 20px rgba(14,165,164,.1);
}

.lead-magnet__card--v4{
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #1e3a5f 0%, #2d4a6f 100%);
  border: none;
  box-shadow: 0 8px 28px rgba(0,0,0,.2);
}
/* Декоративные сердца на подложке (SVG, не картинка) */
.lead-magnet__card--v4 .lead-magnet__deco{
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
.lead-magnet__card--v4 .lead-magnet__content,
.lead-magnet__card--v4 .lead-magnet__form-wrap{ position: relative; z-index: 1; }
/* Консультация на странице клиник: одна колонка, форма под текстом слева */
.lead-magnet__card--consultation{
  grid-template-columns: 1fr;
}
.lead-magnet__card--consultation .lead-magnet__form-wrap{
  padding-left: 0;
  max-width: 320px;
}
/* Анимация биения сердца: пульс масштаба + контраст (яркость) */
@keyframes lead-magnet-heartbeat-1{
  0%, 55%, 100%{ transform: rotate(-14deg) scale(1); filter: drop-shadow(0 0 8px rgba(225,70,70,.25)) brightness(1); opacity: .88; }
  15%{ transform: rotate(-14deg) scale(1.1); filter: drop-shadow(0 0 14px rgba(225,70,70,.4)) brightness(1.35); opacity: 1; }
  28%{ transform: rotate(-14deg) scale(1); filter: drop-shadow(0 0 8px rgba(225,70,70,.25)) brightness(1); opacity: .88; }
  40%{ transform: rotate(-14deg) scale(1.06); filter: drop-shadow(0 0 11px rgba(225,70,70,.35)) brightness(1.2); opacity: .96; }
}
@keyframes lead-magnet-heartbeat-2{
  0%, 55%, 100%{ transform: translateY(-50%) rotate(11deg) scale(1); filter: drop-shadow(0 0 8px rgba(225,70,70,.25)) brightness(1); opacity: .88; }
  15%{ transform: translateY(-50%) rotate(11deg) scale(1.1); filter: drop-shadow(0 0 14px rgba(225,70,70,.4)) brightness(1.35); opacity: 1; }
  28%{ transform: translateY(-50%) rotate(11deg) scale(1); filter: drop-shadow(0 0 8px rgba(225,70,70,.25)) brightness(1); opacity: .88; }
  40%{ transform: translateY(-50%) rotate(11deg) scale(1.06); filter: drop-shadow(0 0 11px rgba(225,70,70,.35)) brightness(1.2); opacity: .96; }
}
@keyframes lead-magnet-heartbeat-3{
  0%, 55%, 100%{ transform: rotate(12deg) scale(1); filter: drop-shadow(0 0 8px rgba(225,70,70,.25)) brightness(1); opacity: .88; }
  15%{ transform: rotate(12deg) scale(1.1); filter: drop-shadow(0 0 14px rgba(225,70,70,.4)) brightness(1.35); opacity: 1; }
  28%{ transform: rotate(12deg) scale(1); filter: drop-shadow(0 0 8px rgba(225,70,70,.25)) brightness(1); opacity: .88; }
  40%{ transform: rotate(12deg) scale(1.06); filter: drop-shadow(0 0 11px rgba(225,70,70,.35)) brightness(1.2); opacity: .96; }
}

.lead-magnet__heart{
  position: absolute;
  color: rgba(225, 70, 70, 0.78);
  filter: drop-shadow(0 0 8px rgba(225, 70, 70, 0.25));
  transition: color .25s;
  animation-duration: 1.5s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}
.lead-magnet__card--v4:hover .lead-magnet__heart{ color: rgba(239, 85, 85, 0.92); }
/* 1 — большое: левый верхний угол */
.lead-magnet__heart--1{
  width: 118px;
  height: 118px;
  left: 1%;
  top: 2%;
  transform: rotate(-14deg) scale(1);
  animation-name: lead-magnet-heartbeat-1;
}
/* 2 — среднее: в центр-слева, под текстом, слева от полей */
.lead-magnet__heart--2{
  width: 56px;
  height: 56px;
  left: 22%;
  top: 72%;
  transform: translateY(-50%) rotate(11deg) scale(1);
  bottom: auto;
  animation-name: lead-magnet-heartbeat-2;
}
/* 3 — маленькое: правое верхнее (повёрнуто вправо на ~15°) */
.lead-magnet__heart--3{
  width: 36px;
  height: 36px;
  right: 3%;
  top: 4%;
  transform: rotate(12deg) scale(1);
  animation-name: lead-magnet-heartbeat-3;
}
@media (max-width: 768px){
  .lead-magnet__heart--1{ left: 0; top: 0; width: 80px; height: 80px; }
  .lead-magnet__heart--2{ left: 18%; top: 68%; width: 44px; height: 44px; }
  .lead-magnet__heart--3{ right: 2%; top: 2%; width: 28px; height: 28px; }
}
.lead-magnet__card--v4 .lead-magnet__title,
.lead-magnet__card--v4 .lead-magnet__desc{ color: rgba(255,255,255,.95); }
.lead-magnet__card--v4 .lead-magnet__desc{ opacity: .9; }
.lead-magnet__card--v4 .label{ color: rgba(255,255,255,.9); }
.lead-magnet__card--v4 .input{
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.3);
  color: #fff;
}
.lead-magnet__card--v4 .input::placeholder{ color: rgba(255,255,255,.5); }
.lead-magnet__card--v4 .check span,
.lead-magnet__card--v4 .check a{ color: rgba(255,255,255,.85); }
.lead-magnet__card--v4 .check a{ text-decoration: underline; }
.lead-magnet__card--v4 .btn--primary{
  background: #fff;
  color: #1e3a5f;
  border: none;
}
.lead-magnet__card--v4 .btn--primary:hover{ background: #e2e8f0; color: #1e3a5f; }
.lead-magnet__card--v4 .btn--primary:hover::after{ content: " ❤️"; }

/* Лид-магнит консультации на странице клиник: тёмно-серые поля как в макете */
.lead-magnet__card--consultation .input{
  background: rgba(45, 55, 72, 0.85);
  border: 1px solid rgba(255,255,255,.22);
  color: #fff;
}
.lead-magnet__card--consultation .input::placeholder{ color: rgba(255,255,255,.5); }
.lead-magnet__form--compact-consultation{
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.lead-magnet__form--compact-consultation .field{ margin: 0; }
.lead-magnet__form--compact-consultation .btn{ margin-top: 4px; }
/* Блок «Подберём клинику» перед футером на странице клиник */
.lead-magnet--clinics-footer{ padding: 32px 0 40px; }

.lead-magnet__card--v5{
  border: none;
  border-top: 4px solid var(--success);
  box-shadow: 0 4px 18px rgba(15,118,110,.15);
}

.lead-magnet__card--v6{
  background: #fff;
  border: 1px solid var(--border);
  box-shadow: none;
}

.lead-magnet__card--v7{
  background: linear-gradient(135deg, rgba(31,111,235,.06) 0%, rgba(31,111,235,.02) 100%);
  border: 1px solid rgba(31,111,235,.2);
}

.lead-magnet__card--v8{
  border-left: 4px solid #7c3aed;
  box-shadow: 0 4px 20px rgba(124,58,237,.12);
}
.lead-magnet__card--v8 .btn--primary{
  background: linear-gradient(135deg, #7c3aed, #6d28d9);
  border: none;
}

.lead-magnet__card--v9{
  border-left: 4px solid var(--warning);
  box-shadow: 0 4px 18px rgba(180,83,9,.12);
}
.lead-magnet__card--v9 .btn--primary{
  background: linear-gradient(135deg, #d97706, #b45309);
  border: none;
}

.lead-magnet__card--v10{
  border: 2px solid var(--blue);
  background: #fff;
  box-shadow: 0 2px 12px rgba(31,111,235,.08);
}

.lead-magnet__card--v11{
  border-radius: 20px;
  box-shadow: 0 12px 40px rgba(15,27,45,.1), 0 4px 12px rgba(15,27,45,.06);
}

@media (max-width: 768px){
  .lead-magnet__card{ grid-template-columns: 1fr; padding: 22px; }
  .lead-magnet__form{ max-width: none; }
  .lead-magnet__form-wrap{ padding-left: 0; }
  .lead-magnet__form-row{ grid-template-columns: 1fr; }
}

/* Блок «Наша миссия» под «О сервисе Имплантист» */
.mission--wide{
  width: 100%;
  padding-inline: 0;
}
.mission--wide .mission__wrap{
  width: 100%;
  padding: 22px 0;
  background: transparent;
}
.mission__card{
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(31,111,235,.12);
  border-left: 4px solid rgba(31,111,235,.5);
  box-shadow: 0 2px 12px rgba(31,111,235,.06);
  text-align: center;
  padding: 24px 28px;
}
.mission__title{
  margin: 0 0 12px;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--text);
}
.mission__text{
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: var(--muted);
}

/* Рейтинги в городе: вкладки Клиники / Врачи */
.city-ratings__card{
  background: rgba(255,255,255,.8);
  border-color: rgba(31,111,235,.15);
  border-left: 4px solid var(--blue);
  box-shadow: 0 4px 20px rgba(15,27,45,.06);
}
.city-ratings__head{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px 24px;
  margin-bottom: 20px;
}
.city-ratings__tabs{
  display: flex;
  gap: 0;
  background: rgba(31,111,235,.08);
  border: 1px solid rgba(31,111,235,.18);
  border-radius: 999px;
  padding: 4px;
}
.city-ratings__tab{
  padding: 8px 18px;
  font-size: 14px;
  font-weight: 600;
  color: var(--muted);
  background: transparent;
  border: none;
  border-radius: 999px;
  cursor: pointer;
  transition: color .2s, background .2s;
}
.city-ratings__tab:hover{
  color: var(--text);
}
.city-ratings__tab.is-active{
  color: #fff;
  background: var(--blue);
  box-shadow: 0 2px 6px rgba(31,111,235,.35);
}
.city-ratings__panel{
  min-height: 120px;
}
.city-ratings__panel.is-hidden{
  display: none !important;
}
.city-ratings__list{
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.city-ratings__item{
  display: grid;
  grid-template-columns: 2rem 1fr minmax(5rem, auto) minmax(160px, 240px);
  align-items: center;
  gap: 12px 20px;
  padding: 10px 12px;
  border-radius: 10px;
  color: var(--text);
  text-decoration: none;
  transition: background .2s;
}
.city-ratings__item:hover{
  background: rgba(31,111,235,.16);
}
.city-ratings__num{
  font-weight: 800;
  font-size: 15px;
  color: var(--muted);
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.city-ratings__num--gold{ color: #d4a017; }
.city-ratings__num--silver{ color: #9ca3af; }
.city-ratings__num--bronze{ color: #b87333; }
.city-ratings__medal{
  width: 22px;
  height: 22px;
  display: block;
  flex-shrink: 0;
}
.city-ratings__name{
  min-width: 0;
  font-weight: 600;
  font-size: 15px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.city-ratings__rating-cell{
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px;
  min-width: 5rem;
}
.city-ratings__item .stars{
  flex-shrink: 0;
  font-size: 14px;
}
.city-ratings__item .stars svg{
  width: 14px;
  height: 14px;
}
.city-ratings__reviews{
  font-size: 12px;
  color: var(--muted);
  font-weight: 500;
  white-space: nowrap;
}
.city-ratings__meta{
  font-size: 13px;
  color: var(--muted);
  font-weight: 500;
  text-align: right;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.city-ratings__empty-item{
  list-style: none;
  margin: 0;
  padding: 0;
}
.city-ratings__empty{
  padding: 20px 16px;
  background: rgba(31,111,235,.06);
  border: 1px dashed rgba(31,111,235,.25);
  border-radius: 12px;
  text-align: left;
}
.city-ratings__empty-title{
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
}
.city-ratings__empty-text{
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: var(--muted);
}
.city-ratings__empty-text--sm{ font-size: 13px; margin-top: 4px; }
.city-ratings__empty-ctas{
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.city-ratings__empty-label{
  margin: 0;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: var(--blue);
}
.city-ratings__empty-btn{
  margin-top: 2px;
}
.city-ratings__empty-btn + .city-ratings__empty-btn{ margin-top: 8px; }
.city-ratings__more-wrap{
  margin: 0;
  text-align: right;
}
.city-ratings__more{
  font-size: 14px;
  font-weight: 500;
}
.city-ratings__more.btn--outline{
  border: 1px solid var(--blue);
  color: var(--blue);
  background: transparent;
}
.city-ratings__more.btn--outline:hover{
  border-color: var(--blue-2);
  color: var(--blue-2);
  background: rgba(31,111,235,.06);
  transform: translateY(-2px) scale(1.01);
  box-shadow: 0 12px 32px rgba(31,111,235,.2);
}

/* Прайс-лист клиники (услуги и цены) — по принципу рейтингов, горизонтальные линии */
.section-block--pricelist{
  background: linear-gradient(180deg, rgba(248,250,253,.95) 0%, #fff 100%);
  border: 1px solid rgba(31,111,235,.12);
  box-shadow: 0 2px 16px rgba(31,111,235,.06);
}
.section-block--pricelist .clinic-pricelist__main-title{
  margin: 0 0 4px;
  font-size: 20px;
  font-weight: 800;
  color: var(--blue);
  letter-spacing: -0.02em;
}
.price-list-wrap{ margin: 0; }
.clinic-pricelist{
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 14px;
}
.clinic-pricelist thead tr{
  border-bottom: 2px solid rgba(31,111,235,.2);
  background: rgba(31,111,235,.06);
}
.clinic-pricelist th{
  padding: 12px 12px;
  text-align: left;
  font-weight: 700;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--blue);
}
.clinic-pricelist__th-price,
.clinic-pricelist td.clinic-pricelist__price{
  width: 130px;
  min-width: 130px;
  box-sizing: border-box;
}
.clinic-pricelist__th-price{ text-align: right; }
.clinic-pricelist tbody tr{
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.clinic-pricelist tbody tr:nth-child(even){
  background: rgba(31,111,235,.03);
}
.clinic-pricelist tbody tr:last-child{ border-bottom: none; }
.clinic-pricelist tbody tr:hover{ background: rgba(31,111,235,.07); }
.clinic-pricelist td{
  padding: 12px;
  vertical-align: top;
}
.clinic-pricelist__name{ font-weight: 600; color: var(--text); }
.clinic-pricelist__link{ color: var(--text); text-decoration: none; }
.clinic-pricelist__link:hover{ color: var(--blue); text-decoration: underline; }
.clinic-pricelist__link--btn{
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  text-align: left;
}
.clinic-pricelist__link--btn:hover{ color: var(--blue); text-decoration: underline; }
.service-desc-modal__text{ margin: 0; line-height: 1.5; color: var(--text); }
.clinic-pricelist__note{ color: var(--muted); font-size: 13px; line-height: 1.4; }
.clinic-pricelist__price{ font-weight: 700; color: var(--text); white-space: nowrap; text-align: right; }
.clinic-pricelist__row--hidden{ display: none; }
.clinic-services-show-more{ margin-top: 4px; }
.clinic-pricelist-divider{
  margin: 20px 0 14px;
  border: none;
  border-top: 1px solid var(--border);
}
.clinic-pricelist__section-title{
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
}
.clinic-pricelist__subtitle{
  margin: 0 0 10px;
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
}
.clinic-pricelist-extra{ margin-top: 4px; }
.clinic-pricelist--extra tbody tr:first-child{ border-top: none; }
.clinic-pricelist--extra tbody tr:nth-child(even){ background: rgba(31,111,235,.03); }
@media (max-width: 640px){
  .clinic-pricelist th, .clinic-pricelist td{ padding: 10px 8px; font-size: 13px; }
  .clinic-pricelist__th-note{ min-width: 0; }
}

@media (max-width: 560px){
  .city-ratings__head{ flex-direction: column; align-items: stretch; }
  .city-ratings__tabs{ justify-content: center; }
  .city-ratings__item{ grid-template-columns: 1.75rem 1fr minmax(4.5rem, auto) minmax(120px, 180px); gap: 8px 12px; }
}

.lead-variants-caption{
  margin: 0 0 12px;
  font-size: 15px;
  font-weight: 600;
  color: var(--muted);
}
.lead-variants{
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.lead-variant{
  position: relative;
}
.lead-variant__label{
  display: inline-block;
  margin-bottom: 6px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--muted);
}
.card.lead.card--pad{
  padding: 14px 20px 14px !important;
}
.card.lead{
  padding: 14px 20px 14px;
}
.card.lead.card--pad.lead--v1,
.card.lead.lead--v1{
  border-left: 4px solid var(--blue);
  box-shadow: 0 4px 20px rgba(15,27,45,.06);
}
.card.lead.lead--v2{
  border-left: 4px solid var(--teal);
  box-shadow: 0 4px 20px rgba(14,165,164,.08);
}
.card.lead.lead--v3{
  border: 1px solid var(--border);
  border-left-width: 4px;
  border-left-color: var(--blue);
  box-shadow: none;
  background: var(--surface);
}
.card.lead.lead--v4{
  background: linear-gradient(135deg, #1a365d 0%, #2c5282 100%);
  border: none;
  box-shadow: 0 8px 24px rgba(0,0,0,.15);
}
.card.lead.lead--v4 h2,
.card.lead.lead--v4 p{ color: rgba(255,255,255,.95); }
.card.lead.lead--v4 p{ opacity: .9; }
.card.lead.lead--v4 .input{
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.25);
  color: #fff;
}
.card.lead.lead--v4 .input::placeholder{ color: rgba(255,255,255,.5); }
.card.lead.lead--v4 .label{ color: rgba(255,255,255,.9); }
.card.lead.lead--v4 .check span,
.card.lead.lead--v4 .check a{ color: rgba(255,255,255,.85); }
.card.lead.lead--v4 .check a{ text-decoration: underline; }
.card.lead.lead--v4 .btn--primary{
  background: #fff;
  color: #1a365d;
  border: none;
}
.card.lead.lead--v4 .btn--primary:hover{ background: #e2e8f0; color: #1a365d; }
.card.lead.lead--v5{
  border: none;
  border-top: 4px solid var(--success);
  box-shadow: 0 4px 16px rgba(15,118,110,.12);
  background: var(--surface);
}
.card.lead.card--pad.lead--v1{
  border-left: 4px solid var(--blue);
  box-shadow: 0 4px 20px rgba(15,27,45,.06);
}
.lead{
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: 20px 24px;
  align-items: start;
}
.lead__form-wrap{
  min-width: 0;
  padding-left: 20px;
  box-sizing: border-box;
  overflow: hidden;
}
.lead__form{
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-width: 100%;
  min-width: 0;
}
.lead__form-row{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  min-width: 0;
}
.lead__form-row .field{ margin: 0; min-width: 0; }
.lead__form-row .input{
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.lead__form-actions{
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
}
.lead__form-actions .field.form__consent{ margin: 0; padding: 0; }
.lead__form-actions .field.form__consent .check{ margin: 0; }
.lead__form-actions .btn--primary{
  width: 100%;
  padding: 10px 18px;
  margin: 0;
}
.lead .btn--primary{
  padding: 10px 18px;
}
.lead h2{
  margin: 0 0 4px;
  font-size: 21px;
  line-height: 1.25;
}
.lead > div:first-child{
  margin-top: 0;
  padding-top: 0;
}
.lead p{
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.4;
}

/* На главной карта на всю ширину (блок вынесен из .container) */
.section--map-full .map-wrap{
  width: 100%;
  border-radius: 0;
}
.section--map-full .map-cta--in-container{
  margin-top: 10px;
  padding: 0 16px 16px;
  max-width: var(--container, 1160px);
  margin-left: auto;
  margin-right: auto;
}
.map-wrap{
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
}
.map-wrap{
  position: relative;
}
.map-wrap--collapsed .clinics-map{
  height: 200px;
  cursor: pointer;
  border-radius: 12px;
  overflow: hidden;
  background: linear-gradient(165deg, #e4eaf0 0%, #dce4ee 50%, #e6ecf4 100%);
  box-shadow: 0 2px 12px rgba(0,0,0,.08);
}
.clinics-map__roads{ fill: none; }
.clinics-map__road--major{ stroke: rgba(0,0,0,.3); stroke-width: 3; stroke-linecap: round; }
.clinics-map__road--minor{ stroke: rgba(0,0,0,.2); stroke-width: 1.9; stroke-linecap: round; }
.clinics-map__road--small{ stroke: rgba(0,0,0,.12); stroke-width: 1; stroke-linecap: round; }
.clinics-map__road--tiny{ stroke: rgba(0,0,0,.07); stroke-width: .5; stroke-linecap: round; }
.clinics-map__road--diag{ stroke: rgba(0,0,0,.18); stroke-width: 1.4; stroke-linecap: round; }
.clinics-map__clinic{ fill: rgba(31,111,235,.9); stroke: #fff; stroke-width: 1; filter: drop-shadow(0 1px 3px rgba(31,111,235,.35)); }
.clinics-map__routes{
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: 12px;
}
.map-wrap:not(.map-wrap--collapsed) .clinics-map__routes{ display: none; }
.clinics-map__routes-svg{
  width: 100%;
  height: 100%;
  display: block;
}
.clinics-map__route-line{
  fill: none;
  stroke: rgba(18, 72, 180, 0.88);
  stroke-width: 0.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 100 100;
  stroke-dashoffset: 100;
  animation: clinics-map-route-draw 5.5s ease-in-out infinite;
}
.clinics-map__route-line--1{ animation-delay: 0s; }
.clinics-map__route-line--2{ animation-delay: 0.35s; }
.clinics-map__route-line--3{ animation-delay: 0.7s; }
.clinics-map__route-line--4{ animation-delay: 1.05s; }
.clinics-map__route-line--5{ animation-delay: 1.4s; }
.clinics-map__route-line--6{ animation-delay: 1.75s; }
.clinics-map__route-line--7{ animation-delay: 2.1s; }
.clinics-map__route-line--8{ animation-delay: 2.45s; }
.clinics-map__route-line--9{ animation-delay: 2.8s; }
.clinics-map__route-line--10{ animation-delay: 0.15s; }
.clinics-map__route-line--11{ animation-delay: 0.5s; }
.clinics-map__route-line--12{ animation-delay: 0.85s; }
@keyframes clinics-map-route-draw{
  0%{ stroke-dashoffset: 100; opacity: 1; }
  55%{ stroke-dashoffset: 0; opacity: 1; }
  85%{ opacity: 0; }
  100%{ stroke-dashoffset: 0; opacity: 0; }
}
.clinics-map__route-dot{
  offset-distance: 0%;
  animation: clinics-map-route-dot 5.5s ease-in-out infinite;
  stroke: #fff;
  stroke-width: 0.6;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.3));
}
.clinics-map__route-dot--c1{ fill: #1f6feb; }
.clinics-map__route-dot--c2{ fill: #0d9488; }
.clinics-map__route-dot--c3{ fill: #ea580c; }
.clinics-map__route-dot--c4{ fill: #7c3aed; }
.clinics-map__route-dot--c5{ fill: #059669; }
.clinics-map__route-dot--c6{ fill: #dc2626; }
.clinics-map__route-dot--c7{ fill: #0284c7; }
.clinics-map__route-dot--c8{ fill: #ca8a04; }
.clinics-map__route-dot--c9{ fill: #be185d; }
.clinics-map__route-dot--c10{ fill: #0e7490; }
.clinics-map__dot-shape{
  fill: inherit;
  stroke: #fff;
  stroke-width: 0.6;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.3));
}
.clinics-map__dot-shape--person{ }
.clinics-map__dot-shape--car{ }
.clinics-map__route-dot--1{ animation-delay: 0s; }
.clinics-map__route-dot--2{ animation-delay: 0.35s; }
.clinics-map__route-dot--3{ animation-delay: 0.7s; }
.clinics-map__route-dot--4{ animation-delay: 1.05s; }
.clinics-map__route-dot--5{ animation-delay: 1.4s; }
.clinics-map__route-dot--6{ animation-delay: 1.75s; }
.clinics-map__route-dot--7{ animation-delay: 2.1s; }
.clinics-map__route-dot--8{ animation-delay: 2.45s; }
.clinics-map__route-dot--9{ animation-delay: 2.8s; }
.clinics-map__route-dot--10{ animation-delay: 0.15s; }
.clinics-map__route-dot--11{ animation-delay: 0.5s; }
.clinics-map__route-dot--12{ animation-delay: 0.85s; }
@keyframes clinics-map-route-dot{
  0%{ offset-distance: 0%; opacity: 1; }
  55%{ offset-distance: 100%; opacity: 1; }
  85%{ opacity: 0; }
  100%{ offset-distance: 100%; opacity: 0; }
}
@media (prefers-reduced-motion: reduce){
  .clinics-map__route-line,
  .clinics-map__route-dot{ animation: none; }
  .clinics-map__route-line{ stroke-dashoffset: 0; opacity: 0.5; }
  .clinics-map__route-dot{ offset-distance: 100%; opacity: 0.5; }
  .clinics-map__dot-shape{ opacity: 0.8; }
}
.clinics-map__road--major,
.clinics-map__road--minor,
.clinics-map__road--small,
.clinics-map__road--tiny,
.clinics-map__road--diag{ vector-effect: non-scaling-stroke; }
.clinics-map{
  width: 100%;
  height: 380px;
  background: #e8eef5;
  position: relative;
}
.clinics-map__open{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0 0 2rem 0;
  border: none;
  background: linear-gradient(180deg, rgba(255,255,255,.45) 0%, rgba(232, 238, 245, .62) 100%);
  cursor: pointer;
  font: inherit;
  color: var(--text);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  transition: background .2s;
}
.clinics-map__open:hover{
  background: linear-gradient(180deg, rgba(255,255,255,.35) 0%, rgba(220, 228, 240, .55) 100%);
}
.clinics-map__open-text{
  font-size: 16px;
  font-weight: 600;
  text-shadow: 0 1px 2px rgba(255,255,255,.9);
}
.map-wrap:not(.map-wrap--collapsed) .clinics-map__open{
  display: none;
}
.clinics-map .leaflet-popup-content-wrapper{
  border-radius: 10px;
  box-shadow: 0 4px 14px rgba(0,0,0,.12);
}
.clinics-map .leaflet-popup-content{
  margin: 12px 14px;
  font-size: 14px;
}
.clinics-map .leaflet-popup-content strong{ display: block; margin-bottom: 4px; }
.section__hint--map{
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
}
.clinics-map .map-popup-wrapper .leaflet-popup-content{
  margin: 0;
  min-width: 240px;
}
.clinics-map .map-popup{
  padding: 2px 0 0;
}
.clinics-map .map-popup__name{
  display: block;
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 10px;
  color: var(--text);
  line-height: 1.25;
  padding-right: 20px;
}
.clinics-map .map-popup__body{
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.clinics-map .map-popup__row{
  font-size: 13px;
  color: var(--muted);
  line-height: 1.4;
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.clinics-map .map-popup__row .map-popup__label{
  flex: 0 0 auto;
  white-space: nowrap;
  color: var(--muted);
}
.clinics-map .map-popup__row strong{
  display: inline;
  color: var(--text);
  font-weight: 600;
}
.clinics-map .map-popup__row--address .map-popup__label + *{
  min-width: 0;
  word-break: break-word;
}
.clinics-map .map-popup__row--price .map-popup__price{
  font-size: 14px;
  color: var(--text);
}
.clinics-map .map-popup__btn{
  display: block;
  text-align: center;
  margin-top: 14px;
  padding: 9px 14px;
  font-size: 13px;
  font-weight: 600;
  color: #fff;
  background: #0b4ea6;
  border-radius: 8px;
  text-decoration: none;
  transition: background .2s;
}
.clinics-map .map-popup__btn:hover{
  background: #0a3d8a;
  color: #fff;
}
.clinics-map .map-popup-link{
  display: inline-block;
  margin-top: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #0b4ea6;
}
.clinics-map .map-popup-link:hover{ text-decoration: underline; }

/* Map markers with price on the marker */
.map-marker-price{ background: none !important; border: none !important; }
.map-marker-price__pin{
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  padding: 4px 8px;
  background: #fff;
  border: 2px solid #0b4ea6;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
  font-size: 12px;
  font-weight: 700;
  color: #0b4ea6;
  white-space: nowrap;
}
.map-marker-price__pin::after{
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -6px;
  border: 6px solid transparent;
  border-top-color: #0b4ea6;
}
.map-marker-price__pin::before{
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border: 5px solid transparent;
  border-top-color: #fff;
  z-index: 1;
}

/* Конструктор стоимости: пошаговый квиз, на всю ширину */
.cost-constructor{
  width: 100%;
  max-width: none;
}
.cost-constructor__progress{
  margin-bottom: 24px;
  padding: 16px 20px;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(31,111,235,.06), rgba(31,111,235,.02));
  border: 1px solid rgba(31,111,235,.12);
}
.cost-constructor__progress-track{
  width: 100%;
  height: 16px;
  border-radius: 999px;
  background: rgba(31,111,235,.1);
  overflow: hidden;
  position: relative;
}
.cost-constructor__progress-bar{
  height: 100%;
  border-radius: 999px;
  width: 20%;
  transition: width .45s cubic-bezier(.22,.61,.36,1), transform .2s ease-out;
  background: linear-gradient(90deg, #1f6feb, #3b82f6, #60a5fa);
  background-size: 200% 100%;
  box-shadow: 0 0 18px rgba(31,111,235,.4);
  animation: cost-constructor-progress-stripes 1.1s linear infinite;
  position: relative;
}
.cost-constructor__progress-bar::after{
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translate(50%, -50%);
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 0 12px rgba(31,111,235,.55);
}
.cost-constructor__progress-bar.is-complete{
  animation: none;
  background: linear-gradient(90deg, #16a34a, #22c55e);
}
@keyframes cost-constructor-progress-stripes{
  0%{
    background-position: 0 0;
  }
  100%{
    background-position: -200% 0;
  }
}
.cost-constructor__progress-steps{
  display: flex;
  gap: 12px;
  margin-top: 14px;
  justify-content: center;
  align-items: center;
}
.cost-constructor__progress-dot{
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #fff;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all .25s ease;
  border: 2px solid var(--border);
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.cost-constructor__progress-dot.is-active{
  background: linear-gradient(145deg, #1f6feb, #2563eb);
  color: #fff;
  border-color: #1f6feb;
  box-shadow: 0 4px 14px rgba(31,111,235,.4);
  transform: scale(1.08);
}
.cost-constructor__progress-dot.is-complete{
  background: rgba(34,197,94,.15);
  color: transparent;
  border-color: rgba(34,197,94,.35);
  position: relative;
  font-size: 0;
}
.cost-constructor__progress-dot.is-complete::after{
  content: "✓";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 700;
  color: #16a34a;
}
.cost-constructor__progress-text{
  margin: 10px 0 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  text-align: center;
}
.cost-constructor__quiz-step{
  display: none;
  animation: cost-constructor-fadeIn .3s ease;
  flex-direction: column;
}
.cost-constructor__quiz-step.is-active{
  display: flex;
}
.cost-constructor__quiz-step[hidden]{ display: none !important; }
.cost-constructor__quiz-step .cost-constructor__block:first-of-type{
  flex: 1;
  min-height: 0;
  padding-right: 4px;
}
.cost-constructor__quiz-step--result{ min-height: auto; }
.cost-constructor__result-summary{
  margin-bottom: 16px;
  padding: 12px 14px;
  border-radius: 10px;
  background: rgba(31,111,235,.06);
  border: 1px solid rgba(31,111,235,.15);
  font-size: 13px;
  line-height: 1.5;
  color: var(--text);
}
.cost-constructor__result-summary:empty{ display: none; }
.cost-constructor__result-summary-title{
  font-weight: 700;
  margin: 0 0 6px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: var(--muted);
}
.cost-constructor__result-summary-list{
  margin: 0;
  padding: 0;
  list-style: none;
}
.cost-constructor__result-summary-list li{
  margin: 2px 0;
  padding: 0;
}
.cost-constructor__result-summary-list li + li{ margin-top: 4px; }
@keyframes cost-constructor-fadeIn{
  from{ opacity: 0; transform: translateY(8px); }
  to{ opacity: 1; transform: translateY(0); }
}
.cost-constructor__step-hint{
  margin: 0 0 14px;
  font-size: 13px;
  color: var(--muted);
}
/* Шаг 1: услуги в 2 столбца */
.cost-constructor__step--service .cost-constructor__options{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px 20px;
}
@media (max-width: 600px){
  .cost-constructor__step--service .cost-constructor__options{ grid-template-columns: 1fr; }
}
/* Шаг 3: системы имплантов — блоки по сегментам, в каждом заголовок + «Выбрать все» + опции в 2 колонки */
[data-quiz-step="3"] .cost-constructor__options{
  display: flex;
  flex-direction: column;
  gap: 18px;
}
[data-quiz-step="3"] .cost-constructor__segment-group{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px 20px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
}
[data-quiz-step="3"] .cost-constructor__segment-group:first-child{
  padding-top: 0;
  border-top: none;
}
[data-quiz-step="3"] .cost-constructor__segment-row{
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
[data-quiz-step="3"] .cost-constructor__segment-row .cost-constructor__segment{
  margin: 0;
  padding: 0;
  border: none;
}
[data-quiz-step="3"] .cost-constructor__segment-select-all{
  font-size: 12px;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: 8px;
  background: transparent;
  border: 2px solid var(--blue);
  color: var(--blue);
}
[data-quiz-step="3"] .cost-constructor__segment-select-all:hover{
  background: rgba(31,111,235,.08);
  color: #0b4ea6;
}
/* Шаг 5: доп. процедуры в 2 колонки */
[data-quiz-step="5"] .cost-constructor__options{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px 20px;
}
@media (max-width: 600px){
  [data-quiz-step="3"] .cost-constructor__options,
  [data-quiz-step="5"] .cost-constructor__options{ grid-template-columns: 1fr; }
}
.cost-constructor__nav{
  display: flex;
  gap: 12px;
  margin-top: auto;
  padding-top: 20px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
}
.cost-constructor__btn-prev{ flex: 0 0 auto; order: 1; }
.cost-constructor__btn-next{ flex: 0 0 auto; order: 2; min-width: 140px;
  padding: 12px 24px;
  font-size: 15px;
  font-weight: 700;
  border-radius: 10px;
  background: linear-gradient(145deg, #1f6feb, #2563eb);
  box-shadow: 0 4px 14px rgba(31,111,235,.35);
  transition: transform .15s, box-shadow .2s;
}
.cost-constructor__btn-next:hover:not(:disabled){
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(31,111,235,.45);
}
.cost-constructor__btn-next:disabled{
  opacity: .6;
  cursor: not-allowed;
}
.cost-constructor__result-head{
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.cost-constructor__result-icon{
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(145deg, rgba(34,197,94,.2), rgba(34,197,94,.1));
  color: #16a34a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 700;
  flex-shrink: 0;
}
.cost-constructor__quiz-step--result .cost-constructor__plan-title{ margin: 0; }
.cost-constructor__help{ margin-top: 12px; }
.cost-constructor__btn-back-result{ margin-top: 12px; }
.cost-constructor__grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 16px;
  margin-bottom: 12px;
  align-items: start;
}
.cost-constructor__col--left,
.cost-constructor__col--right{
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}
@media (max-width: 720px){
  .cost-constructor__grid{ grid-template-columns: 1fr; }
}

/* Квиз: один столбец сверху вниз, без бокового разнесения */
.cost-constructor__quiz{
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 14px;
}
.cost-constructor__step-details[hidden]{ display: none !important; }
.cost-constructor__step-details .cost-constructor__block-title--sub{ margin-top: 0; }
.cost-constructor__details-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 16px;
  margin-bottom: 12px;
  align-items: start;
}
.cost-constructor__col-left{
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.cost-constructor__col-systems{
  min-height: 0;
}
/* Системы и коронки — опции в 2 колонки, чтобы не растягивать по вертикали */
.cost-constructor__col-systems .cost-constructor__options,
.cost-constructor__block--full .cost-constructor__options{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px 10px;
}
.cost-constructor__details-grid .cost-constructor__block--full{ grid-column: 1 / -1; }
.cost-constructor__block--full .cost-constructor__options{ grid-template-columns: repeat(2, 1fr); }
@media (max-width: 720px){
  .cost-constructor__details-grid{ grid-template-columns: 1fr; }
  .cost-constructor__col-systems .cost-constructor__options,
  .cost-constructor__block--full .cost-constructor__options{ grid-template-columns: 1fr; }
}
.cost-constructor__extras-wrap{
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(255,255,255,.5);
  overflow: hidden;
}
.cost-constructor__extras-toggle{
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 10px 14px;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: background .15s;
}
.cost-constructor__extras-toggle:hover{ background: rgba(31,111,235,.06); }
.cost-constructor__extras-toggle-icon{
  font-size: 10px;
  color: var(--muted);
  transition: transform .2s;
}
.cost-constructor__extras-wrap.is-open .cost-constructor__extras-toggle-icon{ transform: rotate(180deg); }
.cost-constructor__extras-content[hidden]{ display: none !important; }
.cost-constructor__extras-content{
  padding: 0 14px 14px;
}
.cost-constructor__extras-content .cost-constructor__options{ margin-top: 4px; }
.cost-constructor__block-title{
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
}
.cost-constructor__block-title--sub{
  margin-top: 10px;
}
.cost-constructor__options{
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.cost-constructor__options--compact{ gap: 6px; }
.cost-constructor__option--disabled{
  opacity: .65;
  pointer-events: none;
}
.cost-constructor__option--disabled .cost-constructor__option-price{ color: var(--muted); }
.cost-constructor__segment{
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--muted);
  margin-top: 8px;
}
.cost-constructor__segment:first-child{ margin-top: 0; }
.cost-constructor__option{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.6);
  cursor: pointer;
  transition: border-color .15s, background .15s;
}
.cost-constructor__option:hover{
  background: rgba(255,255,255,.9);
  border-color: rgba(31,111,235,.25);
}
.cost-constructor__option input{ margin: 0; accent-color: #0b4ea6; }
.cost-constructor__option-label{ flex: 1; font-weight: 600; font-size: 14px; }
.cost-constructor__option-country{ font-weight: 400; font-size: 12px; color: var(--muted); margin-left: 6px; }
.cost-constructor__option-price{ font-size: 13px; color: var(--muted); }
.cost-constructor__option input:checked + .cost-constructor__option-label,
.cost-constructor__option input:checked ~ .cost-constructor__option-price{ color: #0b4ea6; }
.cost-constructor__option:has(input:checked){
  border-color: rgba(11,78,166,.4);
  background: rgba(31,111,235,.08);
}
.cost-constructor__option--select{
  flex-direction: row;
  align-items: center;
  gap: 10px;
  cursor: default;
}
.cost-constructor__option--select .cost-constructor__option-label{
  flex: 0 0 auto;
  cursor: pointer;
}
.cost-constructor__option--select select{
  flex: 1;
  min-width: 100px;
  padding: 6px 10px;
  border-radius: 8px;
  border: 1px solid var(--border);
  font-size: 13px;
  background: #fff;
  color: var(--text);
  cursor: pointer;
}
.cost-constructor__plan-title{
  margin: 0 0 10px;
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
}
.cost-constructor__plan-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 6px;
}
@media (max-width: 720px){
  .cost-constructor__plan-grid{ grid-template-columns: 1fr; }
}
.cost-constructor__plan-card{
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.7);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.cost-constructor__plan-card--focus{
  border-color: rgba(11,78,166,.45);
  background: rgba(31,111,235,.08);
  box-shadow: 0 0 0 2px rgba(11,78,166,.15);
}
.cost-constructor__plan-badge{
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--muted);
}
.cost-constructor__plan-desc{
  margin: 0;
  font-size: 13px;
  color: var(--muted);
  line-height: 1.35;
}
.cost-constructor__plan-value{
  font-size: 20px;
  color: var(--text);
  margin-top: 4px;
}
.cost-constructor__plan-btn{
  margin-top: auto;
  width: 100%;
  text-align: center;
  font-size: 13px;
}
.cost-constructor__total{
  padding: 16px 18px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(31,111,235,.1), rgba(31,111,235,.05));
  border: 1px solid rgba(31,111,235,.2);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
}
.cost-constructor__total-label{ font-size: 15px; color: var(--muted); }
.cost-constructor__total-value{ font-size: 22px; letter-spacing: -0.02em; color: #0b4ea6; }
.cost-constructor__cta{ margin-top: 14px; display: inline-flex; }

.procedure-compare__intro{
  margin: 0 0 18px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.5;
}
.procedure-compare__table-wrap{
  overflow-x: auto;
  margin-bottom: 18px;
  border-radius: 12px;
  border: 1px solid var(--border);
}
.procedure-compare__table{
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.procedure-compare__table th,
.procedure-compare__table td{
  padding: 12px 14px;
  text-align: left;
  border-bottom: 1px solid var(--border);
}
.procedure-compare__table th{
  font-weight: 600;
  color: var(--text);
}
.procedure-compare__table th:first-child{
  background: rgba(31,111,235,.06);
  color: var(--text);
}
.procedure-compare__table th.procedure-compare__th--yes{
  background: rgba(31,111,235,.1);
  color: var(--blue);
}
.procedure-compare__table th.procedure-compare__th--no{
  background: rgba(31,111,235,.1);
  color: var(--muted);
}
.procedure-compare__table tbody tr:last-child td{ border-bottom: none; }
.procedure-compare__table tbody tr:hover td{ background: rgba(31,111,235,.1); }
/* Глобальное выделение колонки при наведении (все таблицы на сайте) */
table th, table td{ transition: background .18s ease; }
table[data-hover-col="0"] th:nth-child(1), table[data-hover-col="0"] td:nth-child(1){ background: rgba(31,111,235,.22) !important; }
table[data-hover-col="1"] th:nth-child(2), table[data-hover-col="1"] td:nth-child(2){ background: rgba(31,111,235,.22) !important; }
table[data-hover-col="2"] th:nth-child(3), table[data-hover-col="2"] td:nth-child(3){ background: rgba(31,111,235,.22) !important; }
table[data-hover-col="3"] th:nth-child(4), table[data-hover-col="3"] td:nth-child(4){ background: rgba(31,111,235,.22) !important; }
table[data-hover-col="4"] th:nth-child(5), table[data-hover-col="4"] td:nth-child(5){ background: rgba(31,111,235,.22) !important; }
table[data-hover-col="5"] th:nth-child(6), table[data-hover-col="5"] td:nth-child(6){ background: rgba(31,111,235,.22) !important; }
table[data-hover-col="6"] th:nth-child(7), table[data-hover-col="6"] td:nth-child(7){ background: rgba(31,111,235,.22) !important; }
table[data-hover-col="7"] th:nth-child(8), table[data-hover-col="7"] td:nth-child(8){ background: rgba(31,111,235,.22) !important; }
table[data-hover-col="8"] th:nth-child(9), table[data-hover-col="8"] td:nth-child(9){ background: rgba(31,111,235,.22) !important; }
table[data-hover-col="9"] th:nth-child(10), table[data-hover-col="9"] td:nth-child(10){ background: rgba(31,111,235,.22) !important; }
table[data-hover-col="10"] th:nth-child(11), table[data-hover-col="10"] td:nth-child(11){ background: rgba(31,111,235,.22) !important; }
table[data-hover-col="11"] th:nth-child(12), table[data-hover-col="11"] td:nth-child(12){ background: rgba(31,111,235,.22) !important; }
table[data-hover-col="12"] th:nth-child(13), table[data-hover-col="12"] td:nth-child(13){ background: rgba(31,111,235,.22) !important; }
table[data-hover-col="13"] th:nth-child(14), table[data-hover-col="13"] td:nth-child(14){ background: rgba(31,111,235,.22) !important; }
table[data-hover-col="14"] th:nth-child(15), table[data-hover-col="14"] td:nth-child(15){ background: rgba(31,111,235,.22) !important; }
table[data-hover-col="15"] th:nth-child(16), table[data-hover-col="15"] td:nth-child(16){ background: rgba(31,111,235,.22) !important; }
table[data-hover-col="16"] th:nth-child(17), table[data-hover-col="16"] td:nth-child(17){ background: rgba(31,111,235,.22) !important; }
table[data-hover-col="17"] th:nth-child(18), table[data-hover-col="17"] td:nth-child(18){ background: rgba(31,111,235,.22) !important; }
table[data-hover-col="18"] th:nth-child(19), table[data-hover-col="18"] td:nth-child(19){ background: rgba(31,111,235,.22) !important; }
table[data-hover-col="19"] th:nth-child(20), table[data-hover-col="19"] td:nth-child(20){ background: rgba(31,111,235,.22) !important; }
.procedure-compare__yes{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--blue);
  font-weight: 600;
}
.procedure-compare__icon--check{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: rgba(31,111,235,.15);
  color: var(--blue);
  font-size: 12px;
  line-height: 1;
  flex-shrink: 0;
}
.procedure-compare__no{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 500;
}
.procedure-compare__no--often{
  color: var(--muted);
}
.procedure-compare__no--often .procedure-compare__icon--cross{
  color: var(--muted);
  background: rgba(0,0,0,.08);
}
.procedure-compare__no--sometimes{
  color: var(--muted);
}
.procedure-compare__no--sometimes .procedure-compare__icon--question{
  color: var(--muted);
  background: rgba(31,111,235,.1);
}
.procedure-compare__icon--cross,
.procedure-compare__icon--question{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  flex-shrink: 0;
}
.procedure-compare__muted{ color: var(--muted); }
.procedure-compare__tip{
  margin: 0 0 14px;
  font-size: 14px;
  color: var(--muted);
  line-height: 1.5;
}
.procedure-compare__action{
  margin: 0;
  text-align: right;
}
.procedure-compare__action .btn--outline{
  border: 1px solid var(--blue);
  color: var(--blue);
  background: transparent;
}
.procedure-compare__action .btn--outline:hover{
  border-color: var(--blue-2);
  color: var(--blue-2);
  background: rgba(31,111,235,.06);
  transform: translateY(-2px) scale(1.01);
  box-shadow: 0 12px 32px rgba(31,111,235,.2);
}

.pill--financing{
  background: rgba(5, 150, 105, .12);
  border-color: rgba(5, 150, 105, .25);
  color: #047857;
}
.pill--allinclusive{
  background: rgba(14, 165, 233, .12);
  border-color: rgba(14, 165, 233, .25);
  color: #0369a1;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.pill--allinclusive::before{
  content: "";
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230369a1' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 11l3 3L22 4'/%3E%3Cpath d='M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11'/%3E%3C/svg%3E") center/contain no-repeat;
}

.my-treatment__grid{
  display: grid;
  gap: 20px;
}
@media (min-width: 720px){
  .my-treatment__grid{ grid-template-columns: repeat(2, 1fr); }
}
.my-treatment__grid .section-block:last-child{ grid-column: 1 / -1; }

.auth-gate{ padding: 24px 0 40px; }
.auth-gate__card{ padding: 28px 24px; }
.auth-gate__form.form{ flex-direction: column; align-items: stretch; gap: 16px; }

/* Блок «Что получает клиника после регистрации» на странице входа */
.clinic-login-advantages{
  margin-top: 28px;
  padding: 24px 24px 28px;
  background: linear-gradient(135deg, rgba(31, 111, 235, 0.06) 0%, rgba(31, 111, 235, 0.02) 50%, rgba(14, 165, 233, 0.05) 100%);
  border-radius: 14px;
  border: 1px solid rgba(31, 111, 235, 0.2);
  box-shadow: 0 2px 12px rgba(31, 111, 235, 0.06);
}
.clinic-login-advantages__title{
  font-size: 17px;
  font-weight: 700;
  margin: 0 0 18px;
  color: var(--text);
  letter-spacing: -0.01em;
  display: flex;
  align-items: center;
  gap: 10px;
}
.clinic-login-advantages__title::before{
  content: "";
  width: 4px;
  height: 22px;
  border-radius: 2px;
  background: linear-gradient(180deg, var(--blue, #1f6feb) 0%, #0ea5e9 100%);
}
.clinic-login-advantages__list{
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.clinic-login-advantages__item{
  display: flex;
  align-items: flex-start;
  gap: 14px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--text);
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.7);
  border-radius: 10px;
  border: 1px solid rgba(31, 111, 235, 0.1);
  transition: background 0.2s, border-color 0.2s, box-shadow 0.2s;
}
.clinic-login-advantages__item:hover{
  background: rgba(255, 255, 255, 0.95);
  border-color: rgba(31, 111, 235, 0.2);
  box-shadow: 0 2px 8px rgba(31, 111, 235, 0.08);
}
.clinic-login-advantages__icon{
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(31, 111, 235, 0.15) 0%, rgba(14, 165, 233, 0.12) 100%);
  color: var(--blue, #1f6feb);
}
.clinic-login-advantages__icon svg{
  width: 20px;
  height: 20px;
}

.topbar__link{
  font-size: 14px;
  font-weight: 600;
  color: var(--muted);
  text-decoration: none;
}
.topbar__link:hover{ color: var(--text); }

.cabinet-greeting{
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
  margin: 0 0 8px;
}
.cabinet__head .section__title{ margin-top: 0; }

.my-treatment__clinics-list.mini-grid{ display: grid; gap: 12px; }
.my-treatment__price-note{ color: var(--muted); }

.config-list{
  margin: 0;
  padding-left: 20px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.6;
}
.config-list li{ margin-bottom: 8px; }
.config-list li:last-child{ margin-bottom: 0; }
.config-clinics{
  display: inline-block;
  color: var(--blue);
  font-weight: 650;
  margin-top: 2px;
}

.steps{
  display: flex;
  flex-direction: column;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}
.step{
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 14px 0;
  border-bottom: 1px solid var(--border);
}
.step:last-child{ border-bottom: none; padding-bottom: 0; }
.step:first-child{ padding-top: 0; }
.step__icon{
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--success);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 12px;
  font-weight: 800;
}
.step__icon svg{ width: 14px; height: 14px; }
.step__icon--circle{
  background: var(--blue);
}
.step--current .step__icon--circle{ box-shadow: 0 0 0 3px rgba(31,111,235,.25); }
.step__body{ flex: 1; min-width: 0; }
.step__body strong{ font-size: 14px; }

.form{
  display:flex;
  gap:10px;
  align-items:stretch;
  flex-wrap:wrap;
}
.field{
  flex: 1 1 240px;
  min-width: 200px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.label{
  font-size: 12px;
  font-weight: 750;
  color: var(--muted);
}
.input{
  width:100%;
  border:1px solid var(--border);
  background: rgba(255,255,255,.85);
  border-radius: 14px;
  padding:12px 14px;
  outline:none;
}
.input:focus{
  border-color: rgba(31,111,235,.45);
  box-shadow: 0 0 0 4px rgba(31,111,235,.14);
}
.help{
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}
.error{
  color: #b42318;
  font-size: 12px;
  font-weight: 650;
  display:none;
}
.error.is-visible{ display:block; }

.footer{
  padding: 26px 0 34px;
  color: var(--muted);
  font-size: 13px;
}
.footer--dark{
  background: #1e293b;
  color: rgba(255,255,255,.85);
  margin-top: 0;
}
.footer--dark .footer__grid{
  border-bottom-color: rgba(255,255,255,.12);
}
.footer--dark .footer__col-title,
.footer--dark .footer__logo-name{
  color: #fff;
  font-weight: 700;
}
.footer--dark .footer__link{
  color: rgba(255,255,255,.78);
  transition: color .2s ease, transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}
.footer--dark .footer__link:hover{
  color: #fff;
  transform: translateY(-1px);
}
.footer--dark .footer__link--accent,
.footer--dark .footer__link--b2b{
  color: #60a5fa;
}
.footer--dark .footer__link--accent:hover,
.footer--dark .footer__link--b2b:hover{
  color: #93c5fd;
  transform: translateY(-1px);
}
.footer__utp{
  display: block;
  margin-top: 6px;
  font-weight: 600;
  color: rgba(255,255,255,.9);
}
.footer__link--tel{
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin-bottom: 8px;
}
.footer--dark .footer__link--tel{
  color: #fff;
}
.footer__link--b2b{
  display: inline-block;
  margin-top: 12px;
  padding: 10px 16px;
  white-space: nowrap;
  background: rgba(96, 165, 250, .2);
  border: 1px solid rgba(96, 165, 250, .5);
  border-radius: 8px;
  font-weight: 700;
  font-size: 14px;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}
.footer__link--b2b:hover{
  background: rgba(96, 165, 250, .3);
  border-color: #60a5fa;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(96, 165, 250, .2);
}
.footer__link--b2b:active{
  transform: translateY(0);
}
.footer__cabinet-heart{
  opacity: 0;
  transition: opacity .2s ease;
  margin-left: 2px;
}
.footer__link--b2b:hover .footer__cabinet-heart{
  opacity: 1;
}
.footer--dark .footer__desc,
.footer--dark .footer__copy{
  color: rgba(255,255,255,.65);
}
.footer--dark .footer__disclaimer{
  color: rgba(255,255,255,.5);
  font-size: 12px;
}
.footer__grid{
  display: grid;
  grid-template-columns: 1.1fr 2fr 1fr;
  gap: 28px 24px;
  align-items: start;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 16px;
}
@media (max-width: 900px){
  .footer__grid{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px){
  .footer__grid{ grid-template-columns: 1fr; }
}
.footer__brand{
  max-width: 280px;
}
.footer__logo{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: inherit;
  margin-bottom: 8px;
}
.footer__logo-mark{
  width: 40px;
  height: 40px;
  border-radius: 6px;
  object-fit: contain;
  display: block;
  flex-shrink: 0;
}
.footer--dark .footer__logo-mark{
  filter: brightness(0) invert(1);
  opacity: .95;
}
.footer__logo-name{
  font-size: 20px;
  font-weight: 800;
  letter-spacing: 0.08em;
}
.footer__desc{
  margin: 0;
  line-height: 1.5;
  font-size: 13px;
}
.footer__copy{
  margin: 10px 0 0;
  font-size: 12px;
}
.footer__col-title{
  font-size: 13px;
  font-weight: 750;
  margin-bottom: 10px;
}
.footer__col .footer__link{
  margin-bottom: 6px;
}
.footer__services-cols{
  display: flex;
  flex-wrap: nowrap;
  gap: 24px;
  align-items: flex-start;
}
.footer__services-col{
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
}
.footer__services-col .footer__link{
  margin-bottom: 6px;
  white-space: nowrap;
}
.footer__services-col .footer__link:last-child{
  margin-bottom: 0;
}
@media (max-width: 900px){
  .footer__services-cols{ flex-wrap: wrap; gap: 16px; }
}
@media (max-width: 520px){
  .footer__services-cols{ flex-direction: column; }
}
.footer__cols{
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}
.footer__link{
  display: block;
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 4px;
  text-decoration: none;
  transition: color .15s ease;
}
.footer__legal{
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px 24px;
  margin-bottom: 14px;
}
.footer__legal-left{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px 24px;
}
.footer__legal-right{
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.footer__legal .footer__link{
  margin-bottom: 0;
}
.footer__social{
  display: flex;
  align-items: center;
  gap: 10px;
}
.footer__apps{
  display: flex;
  align-items: center;
  gap: 8px;
}
.footer__app-badge{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  background: rgba(255,255,255,.1);
  border-radius: 8px;
  color: rgba(255,255,255,.7);
  font-size: 11px;
  font-weight: 600;
}
.footer__app-badge--soon{
  cursor: default;
  opacity: .9;
}
.footer__app-badge svg{
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}
.footer__app-soon{
  color: rgba(255,255,255,.6);
}
.footer__social-link{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,.12);
  color: rgba(255,255,255,.85);
  transition: background .2s ease, color .2s ease;
}
.footer__social-link:hover{
  background: rgba(255,255,255,.22);
  color: #fff;
}
.footer__disclaimer{
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,.08);
  font-size: 12px;
  line-height: 1.5;
  max-width: 720px;
}
.footer--compare{ background: transparent; }
.footer--compare .footer__disclaimer--center{
  text-align: center;
  margin: 0 auto;
  border-top-color: var(--border);
  color: var(--muted);
}
.footer__bottom{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.footer__dev{
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,.08);
  text-align: right;
}
.footer__legal-right .footer__dev{
  margin-top: 0;
  padding-top: 0;
  border-top: none;
  margin-left: 12px;
  align-self: center;
}
.footer__legal-right .footer__dev-link{
  flex-direction: row;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 6px 10px;
}
.footer__legal-right .footer__dev-label{
  line-height: 1.2;
}
.footer__dev-link{
  display: inline-flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  color: rgba(255,255,255,.55);
  font-size: 11px;
  text-decoration: none;
  padding: 10px 14px;
  margin: -10px -14px -10px 0;
  border-radius: 12px;
  position: relative;
  overflow: hidden;
  transition: color .25s ease, transform .25s cubic-bezier(.34, 1.56, .64, 1), box-shadow .35s ease, background .25s ease;
}
.footer__dev-link::before{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, rgba(255,255,255,.4), rgba(96,165,250,.6), rgba(255,255,255,.2));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity .25s ease;
}
.footer__dev-link:hover{
  color: #fff;
  transform: scale(1.08) translateY(-3px);
  box-shadow: 0 0 0 1px rgba(255,255,255,.2), 0 8px 32px rgba(96,165,250,.45), 0 0 60px rgba(96,165,250,.25);
  background: rgba(255,255,255,.08);
}
.footer__dev-link:hover::before{ opacity: 1; }
.footer__dev-link:active{ transform: scale(1.02) translateY(-1px); }
@keyframes footer-viqq-shimmer{
  0%{ background-position: -120% 0; }
  100%{ background-position: 220% 0; }
}
.footer__dev-link:hover .footer__dev-label{
  background: linear-gradient(90deg, #fff 0%, #93c5fd 40%, #fff 70%, #93c5fd 100%);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: footer-viqq-shimmer .9s ease-in-out;
}
.footer__dev-label{ letter-spacing: .02em; }
.footer__dev-logo{
  height: 32px;
  width: auto;
  display: block;
  opacity: .92;
  transition: opacity .25s ease, transform .25s ease;
}
.footer__dev-link:hover .footer__dev-logo{ opacity: 1; transform: scale(1.06); }
.footer__dev-link.is-viqq-burst .footer__dev-logo{ animation: viqq-burst-pulse .4s ease-out; }
@keyframes viqq-burst-pulse{
  0%{ transform: scale(1); }
  50%{ transform: scale(1.2); }
  100%{ transform: scale(1.06); }
}
.footer--compare .footer__dev{ border-top-color: var(--border); text-align: right; }
.footer--compare .footer__dev-link{ color: var(--muted); }
.footer--compare .footer__dev-link:hover{ color: var(--text); }
.footer--compare .footer__dev-logo{ filter: none; }

/* Results layout */
.results{
  padding: 24px 0 40px;
}
.consultation-block{
  margin-bottom: 16px;
  padding: 20px 20px 22px;
}
.consultation-block__title{
  margin: 0 0 6px;
  font-size: 18px;
  font-weight: 800;
}
.consultation-block__hint{
  margin: 0 0 16px;
  font-size: 14px;
  color: var(--muted);
  line-height: 1.45;
}
.consultation-block__form{
  display: flex;
  flex-wrap: wrap;
  gap: 12px 16px;
  align-items: flex-start;
}
.consultation-block__form textarea{
  flex: 1 1 100%;
  min-width: 200px;
  min-height: 72px;
  resize: vertical;
}
.consultation-block__form .input{ min-width: 180px; }
.consultation-block__form input[type="email"]{ flex: 1 1 220px; }
.consultation-block__form input[type="tel"]{ flex: 1 1 180px; }
.consultation-block__form .btn{ flex: 0 1 auto; }
@media (min-width: 720px){
  .consultation-block__form .btn{ margin-top: 0; }
}

/* Объединённый блок: карта слева + консультация справа, лид-магнит по высоте как карта, без зазора */
.map-consultation-section{ padding: 22px 0; }
.map-consultation{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  align-items: stretch;
}
.map-consultation__map{
  min-width: 0;
}
.map-consultation__consultation{
  display: flex;
  min-width: 0;
}
.map-consultation__consultation .lead-magnet__card{
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.map-consultation__consultation .lead-magnet__card .lead-magnet__content{
  flex-shrink: 0;
}
.map-consultation__consultation .lead-magnet__card .lead-magnet__form-wrap{
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: 0;
}
/* При открытой карте — карта на всю ширину сверху, консультация под ней */
.map-consultation:has(.map-wrap:not(.map-wrap--collapsed)){
  grid-template-columns: 1fr;
}
.map-consultation:has(.map-wrap:not(.map-wrap--collapsed)) .map-consultation__map .clinics-map{
  min-height: 420px;
}
@media (max-width: 768px){
  .map-consultation{ grid-template-columns: 1fr; }
}
.map-consultation__consultation .consultation-block__title--compact{
  margin: 0 0 6px;
  font-size: 17px;
  font-weight: 800;
}
.map-consultation__consultation .consultation-block__hint--compact{
  margin: 0 0 14px;
  font-size: 13px;
  line-height: 1.45;
}
.map-consultation__consultation .consultation-block__form--compact{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  align-items: flex-end;
}
.map-consultation__consultation .consultation-block__form--compact textarea{
  flex: 1 1 100%;
  min-height: 56px;
  resize: vertical;
}
.map-consultation__consultation .consultation-block__form--compact .input{
  min-width: 0;
}
.map-consultation__consultation .consultation-block__form--compact input[type="email"]{
  flex: 1 1 160px;
}
.map-consultation__consultation .consultation-block__form--compact input[type="text"]{
  flex: 1 1 160px;
}
.map-consultation__consultation .consultation-block__form--compact .btn{
  flex: 0 1 auto;
}

.results .sort-bar{ margin-bottom: 16px; }
.results__grid{
  display:grid;
  grid-template-columns: 320px 1fr;
  gap: 16px;
  align-items:start;
}
.filters .group{
  padding: 14px 14px 16px;
  border-top: 1px solid var(--border);
}
.filters .group:first-child{ border-top:0; }
.filters h3{
  margin:0 0 10px;
  font-size: 14px;
  letter-spacing: .1px;
}
.check--standalone{ margin-bottom: 12px; }
.check--with-icon .filter-option__icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.check--with-icon .filter-option__icon svg{
  width: 16px;
  height: 16px;
}
.filter-option__icon--allinclusive{ color: var(--accent, #0ea5e9); }
.filter-option__icon--recommended{ color: #eab308; }
.price-presets{
  display: grid;
  gap: 8px;
}
.range{
  display:grid;
  gap:10px;
}
.range__row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 650;
}
.range input[type="range"]{
  width:100%;
}
.checklist{
  display:grid;
  gap:10px;
}
.filter-segment{
  display:block;
  grid-column: 1 / -1;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--muted);
  margin-top: 12px;
  margin-bottom: 2px;
}
.filter-segment:first-child{ margin-top: 0; }
.filter-option-country{
  font-size: 12px;
  color: var(--muted);
  font-weight: 400;
}
.check{
  display:flex;
  align-items:center;
  gap:10px;
  font-size: 13px;
  color: var(--text);
}
.check input{ width:16px; height:16px; }
.form__consent a{
  color: var(--blue);
  text-decoration: underline;
}
.form__consent a:hover{
  color: var(--blue);
  text-decoration: underline;
}

.list-wrap{ display: flex; flex-direction: column; gap: 16px; }
.sponsor-banner{
  display: block;
  margin-bottom: 4px;
}
.sponsor-banner__label{
  display: inline-block;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #fff;
  background: var(--blue);
  padding: 4px 10px;
  border-radius: 0 6px 0 0;
  line-height: 1.2;
}
.sponsor-banner__link{
  display: block;
  position: relative;
  line-height: 0;
  border-radius: 0 0 8px 8px;
  overflow: hidden;
  border: 1px solid var(--border);
  border-top: none;
}
.sponsor-banner__img-wrap{
  display: block;
  position: relative;
  min-height: 120px;
  background: linear-gradient(135deg, #e0f2fe 0%, #f0f9ff 100%);
}
.sponsor-banner__img{
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 970/250;
  object-fit: cover;
  vertical-align: middle;
}
.popular-filters{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 14px 20px;
  padding: 18px 20px;
  margin-bottom: 14px;
  background: rgba(255,255,255,.92);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.popular-filters__head{
  flex: 0 1 100%;
  min-width: 0;
}
.popular-filters__label{
  display: block;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: .02em;
  color: var(--text);
  margin: 0 0 2px;
}
.popular-filters__hint{
  margin: 0;
  font-size: 12px;
  font-weight: 500;
  color: var(--muted);
  line-height: 1.4;
}
.popular-filters__chips{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.popular-filters__chips .chip{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--surface);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: .02em;
  color: var(--muted);
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
  box-shadow: 0 1px 2px rgba(15,27,45,.04);
}
.popular-filters__chips .chip:hover{
  border-color: rgba(31,111,235,.4);
  color: var(--text);
  background: rgba(255,255,255,.98);
  box-shadow: 0 2px 8px rgba(31,111,235,.08);
}
.popular-filters__chips .chip.chip--active{
  border-color: var(--blue);
  background: rgba(31,111,235,.1);
  color: var(--blue);
  box-shadow: 0 2px 8px rgba(31,111,235,.12);
}
.sort-bar{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
  padding: 12px 14px;
  background: rgba(255,255,255,.7);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 13px;
}
.sort-bar__label{ font-weight: 700; color: var(--muted); }
.sort-chips{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.sort-chips .chip{
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.9);
  font-weight: 650;
  font-size: 13px;
  color: var(--muted);
  cursor: pointer;
  transition: border-color .2s, background .2s, color .2s;
}
.sort-chips .chip:hover{ border-color: rgba(31,111,235,.35); color: var(--text); }
.sort-chips .chip input{ position: absolute; opacity: 0; pointer-events: none; }
.sort-chips .chip:has(input:checked){
  border-color: var(--blue);
  background: rgba(31,111,235,.12);
  color: var(--blue);
}
.active-filters{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-top: 12px;
  padding: 10px 0;
  min-height: 40px;
}
.section__head .active-filters{ flex-basis: 100%; order: 2; }
.active-filters:empty{ display: none !important; }
.active-filters[hidden]{ display: none !important; }
.active-filter-tag{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(31,111,235,.1);
  border: 1px solid rgba(31,111,235,.25);
  font-size: 12px;
  font-weight: 700;
  color: var(--blue);
}
.active-filter-tag button{
  margin: 0;
  padding: 0;
  width: 18px;
  height: 18px;
  border: none;
  border-radius: 50%;
  background: rgba(31,111,235,.2);
  color: var(--blue);
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  display: grid;
  place-items: center;
}
.active-filter-tag button:hover{ background: rgba(31,111,235,.35); }
.range__value{
  margin: 0 0 8px;
  font-size: 13px;
  color: var(--muted);
  font-weight: 650;
}
.range__value strong{ color: var(--text); }

.filters-actions__btns{ display: flex; flex-direction: row; flex-wrap: wrap; gap: 8px; }
.filters-actions .btn{ flex: 0 1 auto; padding: 6px 12px; font-size: 13px; }

.list{
  display:grid;
  gap: 12px;
}
.clinic{
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.clinic__top{
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 18px;
  align-items: start;
}
.clinic__top-left{
  display: flex;
  flex-direction: column;
  gap: 0;
  flex-shrink: 0;
}
.clinic__left-info{
  margin-top: 10px;
  min-width: 0;
}
.clinic__contact-block{
  background: linear-gradient(135deg, rgba(31,111,235,.06) 0%, rgba(31,111,235,.02) 100%);
  border: 1px solid rgba(31,111,235,.12);
  border-radius: 12px;
  padding: 12px 14px;
  margin-top: 8px;
}
.clinic__contact-block .sources{
  margin-bottom: 10px;
  flex-wrap: wrap;
  gap: 6px 10px;
}
.clinic__contact-block .clinic__price-row{
  margin-top: 0;
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(31,111,235,.1);
}
.clinic__contact-actions{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 12px;
}
.clinic__contact-actions .clinic__messengers{
  flex-basis: 100%;
  margin-top: 4px;
  padding-top: 8px;
  border-top: 1px solid rgba(31,111,235,.1);
}
.clinic__contact-btn{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  color: var(--blue);
  background: rgba(31,111,235,.08);
  border: 1px solid rgba(31,111,235,.2);
  text-decoration: none;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
  font-family: inherit;
  line-height: 1.2;
}
.clinic__contact-btn:hover{
  background: rgba(31,111,235,.14);
  border-color: rgba(31,111,235,.35);
  color: var(--blue-2, #1a5fd6);
}
.clinic__contact-btn svg{
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.clinic__contact-btn--phone svg{ color: var(--blue); }
.clinic__contact-btn--site svg{ color: var(--blue); }
.clinic__messengers{
  display: flex;
  align-items: center;
  gap: 8px;
}
.clinic__messenger-link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(31,111,235,.08);
  border: 1px solid rgba(31,111,235,.2);
  color: var(--blue);
  transition: background .15s ease, border-color .15s ease, transform .15s ease;
}
.clinic__messenger-link:hover{
  background: rgba(31,111,235,.14);
  transform: scale(1.05);
}
.clinic__messenger-link svg{
  width: 22px;
  height: 22px;
}
.clinic__messenger-link--wa:hover{ background: rgba(37,211,102,.15); color: #25d366; }
.clinic__messenger-link--tg:hover{ background: rgba(0,136,204,.15); color: #0088cc; }
.clinic__left-info .clinic__price-row{
  margin-top: 0;
  margin-bottom: 6px;
}
.clinic__left-info .clinic__contact-row--inline{
  margin-bottom: 0;
}
.clinic__left-info .sources{
  margin-bottom: 8px;
  flex-wrap: wrap;
  gap: 6px 10px;
}
.clinic__left-info .clinic__contact-block .clinic__price-row{
  margin-top: 0;
  margin-bottom: 12px;
}
.clinic__price-row{
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 10px 0 12px;
  flex-wrap: wrap;
}
.clinic__price-label{
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
}
.clinic__price-value{
  font-size: 18px;
  font-weight: 900;
  letter-spacing: -0.3px;
  color: var(--text);
  white-space: nowrap;
}
.clinic__price-block{
  margin: 0;
  padding: 10px 0 4px;
  line-height: 1.2;
}
.clinic__price-range{
  margin: 10px 0 12px;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: -0.3px;
  color: var(--text);
}
.clinic__contact-row--inline{
  margin-bottom: 10px;
}
.clinic__address-link{
  font-size: 13px;
  font-weight: 600;
  color: var(--blue);
  text-decoration: none;
}
.clinic__address-link:hover{ text-decoration: underline; }
.clinic__bottom-badges{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
}
.clinic__bottom .clinic__bottom-badges + .clinic__cta-btns{
  margin-left: auto;
}
.source--pill{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(31,111,235,.08);
  border: 1px solid rgba(31,111,235,.2);
  font-size: 12px;
  font-weight: 650;
  color: var(--text);
}
.source--pill svg{ width: 14px; height: 14px; flex-shrink: 0; color: var(--blue); }
.clinic__bottom .source--pill{ color: var(--muted); }
.clinic__bottom .source--pill svg{ color: var(--muted); }
.clinic__content .clinic-card__phone-disclaimer{
  margin-top: 14px;
  margin-bottom: 6px;
  line-height: 1.5;
}
.clinic__content{
  min-width: 0;
}
.clinic__ratings{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  margin-bottom: 6px;
  font-size: 12px;
}
.clinic__rating-our{
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  padding: 4px 8px;
  border-radius: var(--radius-sm);
  background: linear-gradient(135deg, rgba(31,111,235,.1), rgba(31,111,235,.05));
  border: 1px solid rgba(31,111,235,.2);
}
.clinic__rating-our-label{
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--blue);
}
.clinic__rating-our-value{
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.clinic__rating-our-value .stars{ color: var(--blue); }
.clinic__rating-our-value .stars svg{ width: 14px; height: 14px; }
.clinic__rating-our-value .stars strong{ font-size: 14px; color: var(--text); }
.clinic__rating-our-reviews{
  font-size: 11px;
  color: var(--muted);
  font-weight: 500;
}
.clinic__rating-ext{
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  border-radius: var(--radius-sm);
  background: rgba(15,27,45,.04);
  border: 1px solid var(--border);
}
.clinic__rating-ext-label{
  font-size: 10px;
  font-weight: 600;
  color: var(--muted);
  letter-spacing: 0.02em;
}
.clinic__rating-ext-value{
  font-size: 14px;
  color: var(--text);
  font-weight: 700;
}
.clinic__rating-line{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-weight: 650;
}
.clinic__rating-line .stars{ color: inherit; }
.clinic__rating-line .stars strong{ color: var(--text); }
.clinic__rating-line--ext{ font-size: 12px; }
.clinic__rating-label{ white-space: nowrap; }
.clinic-card__phone-reveal{
  cursor: pointer;
  color: var(--blue);
  font-weight: 600;
  text-decoration: none;
  border: none;
  background: none;
  padding: 0;
  font: inherit;
}
.clinic-card__phone-reveal:hover{ text-decoration: underline; }
.clinic-card__phone-reveal.is-revealed{ cursor: default; }
.clinic-card__phone-reveal.is-revealed:hover{ text-decoration: none; }
.clinic-card__phone-reveal a{ color: inherit; font-weight: inherit; text-decoration: inherit; }
.clinic-card__phone-disclaimer{ display: block; margin-top: 8px; margin-bottom: 4px; font-size: 11px; line-height: 1.5; }
.clinic__bottom .clinic-card__phone-disclaimer{ margin-top: 12px; margin-bottom: 0; }
.clinic__website-reveal{
  cursor: pointer;
  color: var(--blue);
  font-weight: 600;
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  text-decoration: underline;
}
.clinic__website-reveal:hover{ opacity: .9; }
.clinic__website-reveal:disabled{ cursor: default; opacity: 1; }
.clinic__bottom{
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 20px;
}
.clinic__bottom .clinic-card__phone{
  margin: 0;
  font-size: 13px;
}
.clinic__cta-btns{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin-left: auto;
}
.clinic__cta-btns .btn{ width: auto; min-width: 140px; }

.clinic__header{
  display: flex;
  justify-content: flex-end;
  margin-bottom: 8px;
}
.clinic__content-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.clinic__content-head .clinic__badges{
  margin-bottom: 0;
}
.clinic__title-row{
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.clinic__title-row .clinic__title{ margin-bottom: 0; }
.clinic__confirmed-icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  border-radius: 50%;
}
.clinic__confirmed-icon svg{
  width: 14px;
  height: 14px;
}
.clinic__confirmed-icon--yes{
  background: rgba(22, 163, 74, .15);
  color: #16a34a;
}
.clinic__confirmed-icon--no{
  background: rgba(100, 116, 139, .2);
  color: var(--muted);
}
.compare-check--icon{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 650;
  color: var(--muted);
  cursor: pointer;
}
.compare-check--icon:hover{ color: var(--blue); }
.compare-check--icon input{ margin: 0; accent-color: var(--blue); }
.compare-check--icon .compare-check__icon{
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.compare-check--pill{
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid rgba(31,111,235,.25);
  background: rgba(31,111,235,.06);
  color: var(--text);
  transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.compare-check--pill:hover{
  border-color: var(--blue);
  background: rgba(31,111,235,.1);
  color: var(--blue);
}
.compare-check--pill .compare-check__icon{ color: var(--blue); }

.clinic__doctors{
  border-top: 1px solid var(--border);
  margin-top: 14px;
  padding-top: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 14px 18px;
}
.clinic__doctors--grid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px 16px;
}
.clinic__doctor{
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--text);
  text-decoration: none;
  border-radius: 10px;
  padding: 4px 4px 4px 0;
  transition: background 0.15s ease;
}
a.clinic__doctor:hover{ background: rgba(14, 165, 233, 0.1); }
.clinic__doctor-avatar{
  width: 52px;
  height: 52px;
  border-radius: var(--radius-sm);
  object-fit: cover;
  object-position: center center;
  background: var(--border);
  flex-shrink: 0;
}
.clinic__doctor-info{ display: flex; flex-direction: column; gap: 0; line-height: 1.3; }
.clinic__doctor-name{ font-weight: 700; color: var(--text); }
.clinic__doctor .stars{ font-size: 12px; }
.clinic__doctor .stars svg{ width: 14px; height: 14px; }

.clinic__bottom .clinic__contact-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
}
.clinic__website-inline{
  font-size: 13px;
}
.clinic__website-inline a{
  color: var(--blue);
  font-weight: 600;
}
.clinic__website-inline a:hover{ text-decoration: underline; }

.clinic__service-tag,
.clinic__tag{
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.clinic__tag-icon{
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  color: var(--muted);
}

.clinic__usp{
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 14px;
  padding: 12px 14px 12px 14px;
  border-left: 4px solid var(--blue);
  background: linear-gradient(90deg, rgba(31, 111, 235, .07) 0%, rgba(31, 111, 235, .02) 100%);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
.clinic__usp-icon{
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  color: var(--blue);
}
.clinic__usp-icon svg{
  width: 100%;
  height: 100%;
}
.clinic__usp-text{
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: var(--text);
  font-weight: 600;
  letter-spacing: -0.01em;
}

.clinic__thumb-wrap{
  width: 100%;
  max-width: 220px;
  height: 120px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--border);
  flex-shrink: 0;
}
.clinic__top-left .clinic__thumb-wrap{
  max-width: none;
  width: 220px;
}
.clinic__thumb{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (max-width: 640px){
  .clinic__top{ grid-template-columns: 1fr; }
  .clinic__top-left{ width: 100%; }
  .clinic__top-left .clinic__thumb-wrap{ width: 100%; max-width: none; }
  .clinic__thumb-wrap{ width: 100%; height: 140px; max-width: none; }
  .clinic__price-block{ padding: 8px 0; }
  .clinic__bottom{ flex-direction: column; align-items: stretch; }
  .clinic__cta-btns{ margin-left: 0; }
  .clinic__cta-btns .btn{ width: 100%; min-width: 0; }
}
.clinic__badges{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  margin-bottom: 8px;
}
.clinic__badges .badge-recommend,
.clinic__badges .badge-paid{
  position: static;
  top: auto;
  left: auto;
  right: auto;
}
.clinic__title{
  margin:0 0 6px;
  font-size: 18px;
  letter-spacing: -0.2px;
}
.clinic__meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px 14px;
  align-items:center;
  color: var(--muted);
  font-size: 13px;
  font-weight: 650;
  margin-bottom: 12px;
}
.stars{
  display:inline-flex;
  gap:4px;
  align-items:center;
}
.stars svg{ width:16px; height:16px; color: #f59e0b; }
.price{
  margin-top: 10px;
  display:flex;
  align-items:baseline;
  gap:10px;
}
.price__value{
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -0.4px;
}
.price__from{
  color: var(--muted);
  font-size: 12px;
  font-weight: 750;
}
.clinic__price-range{
  margin: 8px 0 0;
  font-size: 15px;
  font-weight: 800;
  color: var(--text);
}
.clinic__services{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 10px;
  margin-top: 10px;
  margin-bottom: 4px;
}
.clinic__service-tag{
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  background: rgba(14,165,164,.08);
  border: 1px solid rgba(14,165,164,.2);
  border-radius: 999px;
  padding: 4px 10px;
}
.clinic__features{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin-top: 10px;
  margin-bottom: 6px;
}
.clinic__tag{
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  background: rgba(15,27,45,.06);
  border-radius: 999px;
  padding: 4px 10px;
}
.clinic__service-tag .clinic__tag-icon{ color: rgba(14,165,164,.9); }
.clinic__tag .clinic__tag-icon{ color: var(--muted); }
.compare-check{
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 650;
  color: var(--muted);
  cursor: pointer;
}
.compare-check input{ margin: 0; accent-color: var(--blue); }
.sources{
  margin-top: 8px;
  display:flex;
  flex-wrap:wrap;
  gap:8px 10px;
  align-items:center;
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
}
.source{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.source svg{ width:16px; height:16px; }
.source--clinic{
  padding:4px 8px;
  border-radius:999px;
  background: rgba(16,185,129,.12);
  border:1px solid rgba(16,185,129,.4);
}
.source--clinic svg{
  color:#059669;
}
.source--review{
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(245,158,11,.12);
  border: 1px solid rgba(245,158,11,.35);
  color: #b45309;
}
.source--review svg{ color: #b45309; }
.clinic__source-foot{
  margin: 6px 0 12px 0;
  padding: 0 0 12px 0;
  font-size: 12px;
  line-height: 1.3;
  white-space: nowrap;
  border-bottom: 1px solid var(--border);
}
.source--review.source--foot{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  font-size: 12px;
  font-weight: 500;
  color: var(--muted);
  background: transparent;
  border: none;
}
.source--review.source--foot svg{
  width: 14px;
  height: 14px;
  color: var(--muted);
  opacity: 0.85;
  flex-shrink: 0;
}
.cta-col{
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: stretch;
  min-width: 210px;
}
.cta-col .btn{ width: 100%; }
.cta-col .compare-check{ margin-bottom: 4px; }

/* Панели сравнения в шапке: одна строка, компактно */
.compare-bars-slot{
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px;
  flex: 0 1 auto;
  min-width: 0;
  max-width: 220px;
  padding: 0;
  background: none;
  border: none;
}
.compare-bars-slot--in-header .compare-bar-wrap{
  position: static;
  bottom: auto;
  left: auto;
  right: auto;
  padding: 0;
  background: none;
  border: none;
  box-shadow: none;
  flex-shrink: 0;
}
.compare-bars-slot .compare-bar--compact{
  max-width: none;
  margin: 0;
  padding: 3px 6px 3px 8px;
  background: rgba(31,111,235,.08);
  border: 1px solid rgba(31,111,235,.2);
  border-radius: 6px;
  gap: 4px;
  white-space: nowrap;
}
.compare-bars-slot .compare-bar--compact .compare-bar__link{
  font-size: 12px;
  font-weight: 600;
}
.compare-bars-slot .compare-bar--compact .compare-bar__close{
  padding: 0 4px;
  font-size: 14px;
  line-height: 1.2;
  min-width: 20px;
}

.compare-bar-wrap{
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 100;
  padding: 12px 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.99) 100%);
  border-top: 1px solid var(--border);
  box-shadow: 0 -4px 20px rgba(0,0,0,.06);
}
.compare-bar-wrap--doctors{ bottom: 0; z-index: 99; }
body:has(#compare-bar-wrap:not([hidden])) .compare-bar-wrap--doctors{ bottom: 56px; }
.compare-bar{
  max-width: var(--container);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.compare-bar__link{
  font-weight: 700;
  font-size: 15px;
  color: var(--blue);
  text-decoration: none;
}
.compare-bar__link:hover{ text-decoration: underline; }
.compare-bar__close{
  padding: 6px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: #fff;
  font-size: 18px;
  line-height: 1;
  color: var(--muted);
  cursor: pointer;
}
.compare-bar__close:hover{ background: rgba(0,0,0,.04); color: var(--text); }

.compare-page{ padding: 24px 0 48px; }
.compare-page__head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 24px;
  margin-bottom: 16px;
}
.compare-page__head-left .breadcrumb{ margin-bottom: 6px; font-size: 13px; }
.compare-page__head-left .section__title{ margin: 0; }
.compare-content__toolbar--top{ flex-shrink: 0; margin-bottom: 0; align-self: center; }
.compare-empty{
  max-width: 480px;
  margin: 0 auto;
  padding: 28px 24px;
  text-align: center;
  background: rgba(31, 111, 235, .08);
  border: 1px solid rgba(31, 111, 235, .12);
  border-radius: var(--radius);
  box-shadow: 0 4px 20px rgba(31, 111, 235, .06);
}
.compare-empty__text{ font-size: 16px; font-weight: 700; margin: 0 0 8px; color: var(--text); }
.compare-empty__hint{ font-size: 14px; color: var(--muted); margin: 0 0 20px; line-height: 1.5; }
.compare-empty .help{ margin: 0 0 16px; }
.compare-empty .btn{ margin-top: 4px; }
.compare-toolbar__hint{ color: var(--muted); font-size: 13px; margin-right: 12px; align-self: center; }
.compare-content__toolbar{
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.compare-clear-btn{
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 600;
  border-radius: var(--radius-sm);
}
.compare-clear-btn.btn--outline{
  border: 2px solid var(--border);
  color: var(--text);
  background: transparent;
}
.compare-clear-btn.btn--outline:not(:disabled):hover{
  border-color: var(--blue);
  color: var(--blue);
  background: rgba(31,111,235,.08);
  box-shadow: 0 12px 32px rgba(31,111,235,.2), 0 0 0 1px rgba(31,111,235,.15);
}
.compare-services{
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--border);
}
.compare-services__title{
  margin: 0 0 16px;
  font-size: 18px;
  font-weight: 700;
  color: var(--text);
}
.compare-services__grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 20px;
}
.compare-services__col{
  padding: 16px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: rgba(255,255,255,.6);
}
.compare-services__head{ margin-bottom: 12px; }
.compare-services__name-link{
  font-weight: 700;
  color: var(--blue);
  text-decoration: none;
}
.compare-services__name-link:hover{ text-decoration: underline; }
.compare-services__name{ font-weight: 700; color: var(--text); }
.compare-services__list{
  margin: 0;
  padding-left: 18px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--muted);
}
.compare-services__list li{ margin-bottom: 4px; }
.compare-services__empty{ list-style: none; padding-left: 0; color: var(--muted); }
.clinics-compare__wrap{
  overflow-x: auto;
  overflow-y: auto;
  max-height: calc(100vh - 220px);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: #fff;
  box-shadow: 0 4px 20px rgba(15,27,45,.08);
}
.clinics-compare{
  width: max-content;
  min-width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  table-layout: fixed;
}
.clinics-compare th,
.clinics-compare td{
  padding: 10px 12px;
  text-align: left;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
  overflow-wrap: break-word;
  word-break: break-word;
}
.clinics-compare thead th{
  position: sticky;
  top: 0;
  z-index: 2;
  font-weight: 700;
  background: #e5eaf0;
  color: var(--text);
  border-bottom: 2px solid rgba(31,111,235,.25);
  box-shadow: 0 2px 8px rgba(15,27,45,.12);
}
.clinics-compare__param{
  width: 150px;
  min-width: 150px;
  font-weight: 650;
  color: var(--muted);
  position: sticky;
  left: 0;
  z-index: 1;
  background: #fff;
  box-shadow: 2px 0 6px rgba(0,0,0,.06);
}
.clinics-compare thead th.clinics-compare__param{
  z-index: 3;
  background: #e5eaf0;
  box-shadow: 2px 2px 8px rgba(15,27,45,.12);
}
/* Шапка всегда непрозрачная: не даём выделению колонки при наведении менять фон thead */
table[data-hover-col] .clinics-compare thead th{ background: #e5eaf0 !important; }
table[data-hover-col] .clinics-compare thead th.clinics-compare__param{ background: #e5eaf0 !important; }
table[data-hover-col] .clinics-compare thead .clinics-compare__th-clinic--ad{ background: #e5eaf0 !important; }
.clinics-compare tbody tr:nth-child(even) th.clinics-compare__param{ background: #f5f6f8; }
.clinics-compare__section-sep th.clinics-compare__param,
.clinics-compare__section-sub th.clinics-compare__param{ background: #eef1f5; }
.clinics-compare__service-row th.clinics-compare__param{ background: #f8f9fb; }
.clinics-compare__th-clinic{
  width: 200px;
  min-width: 200px;
  border-left: 1px solid rgba(31,111,235,.15);
}
.clinics-compare__th-clinic:first-of-type{ border-left: none; }
.clinics-compare tbody td{ border-left: 1px solid rgba(0,0,0,.06); }
.clinics-compare tbody td:first-of-type{ border-left: none; }
.clinics-compare__th-clinic .clinics-compare__name{ display: block; margin-right: 36px; }
.clinics-compare__th-clinic .clinics-compare__name-link{
  display: block;
  margin-right: 36px;
  font-weight: 700;
  color: var(--blue);
  text-decoration: none;
}
.clinics-compare__th-clinic .clinics-compare__name-link:hover{ text-decoration: underline; color: var(--blue-2); }
.clinics-compare__name-link{ font-weight: 700; color: var(--blue); text-decoration: none; }
.clinics-compare__name-link:hover{ text-decoration: underline; }
.clinics-compare tbody tr:nth-child(even) th,
.clinics-compare tbody tr:nth-child(even) td{ background: rgba(0,0,0,.02); }
.clinics-compare tbody tr:nth-child(even) td.clinics-compare__cell--ad{ background: rgba(0,0,0,.02); }
.clinics-compare thead th.clinics-compare__param{ border-right: 2px solid var(--border); }
.clinics-compare tbody th.clinics-compare__param{ border-right: 2px solid var(--border); }
.clinics-compare__cell--price{ font-weight: 600; color: var(--text); }
.clinics-compare__param--service{ padding-left: 24px !important; }
.clinics-compare__service-row th{ color: var(--text); font-weight: 600; }
.clinics-compare__ext-link{ color: var(--blue); text-decoration: none; }
.clinics-compare__ext-link:hover{ text-decoration: underline; }
.clinics-compare__remove{
  position: absolute;
  top: 8px;
  right: 8px;
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  border-radius: 6px;
  background: rgba(185,28,28,.1);
  color: rgba(185,28,28,.65);
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.clinics-compare__remove:hover{ background: rgba(185,28,28,.18); color: rgba(185,28,28,.85); }
.clinics-compare__remove::before{ content: "×"; font-weight: 700; }
.clinics-compare thead tr{ display: table-row; height: 1px; }
.clinics-compare thead th{ vertical-align: top; padding-top: 12px; padding-bottom: 12px; }
.clinics-compare thead .clinics-compare__param{ min-height: 80px; }
.clinics-compare thead .clinics-compare__th-clinic{ height: 140px; box-sizing: border-box; }
.clinics-compare__th-clinic{ position: relative; }
.clinics-compare__th-inner{ display: flex; flex-direction: column; gap: 6px; min-height: 80px; height: 100%; box-sizing: border-box; }
.clinics-compare thead .clinics-compare__th-clinic .clinics-compare__th-inner{ min-height: 0; }
.clinics-compare__head-actions{ margin-top: auto; }
.clinics-compare__th-clinic .clinics-compare__name-link,
.clinics-compare__th-clinic .clinics-compare__name{ display: block; line-height: 1.3; }
/* Рекламная колонка: без цветового выделения, только жирные значения */
.clinics-compare__th-clinic--ad{
  border-left: 1px solid rgba(31,111,235,.15);
}
.clinics-compare thead .clinics-compare__th-clinic--ad{
  background: #e5eaf0;
}
.clinics-compare__badge{ display: inline-block; font-size: 10px; font-weight: 600; padding: 2px 6px; border-radius: 4px; }
.clinics-compare__badge--ad{ background: #fff; color: #3b82f6; font-size: 11px; padding: 4px 8px; border-radius: 6px; border: 1px solid rgba(31,111,235,.3); font-weight: 600; }
.clinics-compare__badge--recommend{ background: rgba(15,118,110,.12); color: var(--success, #0f766e); }
.compare-badge-inline{ display: inline-block; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 4px; }
.compare-badge-inline--recommend{ background: rgba(15,118,110,.12); color: var(--success, #0f766e); }
.clinics-compare__cell--ad{ border-left: 1px solid rgba(31,111,235,.15); font-weight: 700; }
.clinics-compare__head-actions{ display: flex; gap: 6px; margin-top: auto; }
.clinics-compare__head-btn{ font-size: 12px; padding: 6px 10px; white-space: nowrap; }
.clinics-compare__head-btn--record{ width: 100%; justify-content: center; }
.clinics-compare__head-btn--ad.clinics-compare__head-btn--record{ background: linear-gradient(135deg, var(--blue) 0%, #1d5fd6 100%); color: #fff; font-weight: 700; box-shadow: 0 2px 8px rgba(31,111,235,.4); border: 1px solid rgba(31,111,235,.5); }
.clinics-compare__head-btn--ad.clinics-compare__head-btn--record:hover{ background: linear-gradient(135deg, #1d5fd6 0%, #164bb8 100%); box-shadow: 0 4px 12px rgba(31,111,235,.5); }
.clinics-compare__section-sep th,
.clinics-compare__section-sub th{ background: rgba(0,0,0,.04); font-weight: 700; color: var(--text); padding-top: 14px; padding-bottom: 14px; border-top: 2px solid var(--border); }
.clinics-compare__section-sep td,
.clinics-compare__section-sub td{ border-top: 2px solid var(--border); background: rgba(0,0,0,.02); }
.clinics-compare__section-sub th{ border-top: 1px solid var(--border); padding-top: 10px; padding-bottom: 6px; font-size: 13px; }
.clinics-compare__section-sub td{ border-top: 1px solid var(--border); }
.clinics-compare__service-row--extra th{ font-weight: 500; }
.clinics-compare tbody td{
  max-width: 200px;
  word-break: break-word;
  line-height: 1.4;
}
.clinics-compare__actions-row td{ vertical-align: middle; }
.clinics-compare__cell--actions{ padding: 12px 16px; }
.clinics-compare__actions{ display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.clinics-compare__btn{ white-space: nowrap; min-width: 140px; justify-content: center; box-sizing: border-box; }
/* Панель действий под таблицей — всегда видна при скролле */
.compare-actions-bar{
  position: sticky;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 10;
  background: linear-gradient(0deg, #fff 0%, #fff 85%, rgba(255,255,255,.97) 100%);
  box-shadow: 0 -4px 20px rgba(15,27,45,.08);
  padding: 14px 0;
  margin-top: 0;
  border-top: 1px solid var(--border);
}
.compare-actions-bar__scroll{
  overflow-x: auto;
  overflow-y: hidden;
}
.compare-actions-bar__inner{
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: nowrap;
  min-width: min-content;
}
.compare-actions-bar__label{ font-weight: 600; color: var(--text); min-width: 120px; flex-shrink: 0; }
.compare-actions-bar__cells{
  display: flex;
  gap: 16px;
  flex-wrap: nowrap;
  align-items: stretch;
  flex-shrink: 0;
}
.compare-actions-bar__cell{
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 0 0 auto;
  min-width: 200px;
}
.compare-actions-bar__cell .btn{
  width: 100%;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}
.compare-actions-bar__cell--ad{ border-radius: 8px; padding: 8px; }
.compare-ico{ display: inline-block; width: 18px; height: 18px; border-radius: 50%; flex-shrink: 0; vertical-align: middle; }
.compare-ico--yes{ background: rgba(31,111,235,.14); position: relative; }
.compare-ico--yes::after{ content: ""; position: absolute; left: 5px; top: 2px; width: 5px; height: 10px; border: solid rgba(31,111,235,.45); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.compare-ico--no{ background: rgba(254,202,202,.35); position: relative; }
.compare-ico--no::after{ content: ""; position: absolute; left: 4px; top: 8px; width: 10px; height: 2px; background: rgba(185,28,28,.35); transform: rotate(-45deg); }
.compare-ico--no::before{ content: ""; position: absolute; left: 4px; top: 8px; width: 10px; height: 2px; background: rgba(185,28,28,.35); transform: rotate(45deg); }
.compare-rating{ display: inline-flex; align-items: center; gap: 6px; }
.compare-rating__star{ width: 16px; height: 16px; flex-shrink: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f59e0b'%3E%3Cpath d='M12 2l3 6 7 .9-5 4.6 1.4 6.6L12 17.8 5.6 20.1 7 13.5 2 8.9 9 8l3-6Z'/%3E%3C/svg%3E") center/contain no-repeat; }
.clinics-compare__service-row th.clinics-compare__param--service{ padding-left: 24px; }
.clinics-compare__service-row th{ background: rgba(0,0,0,.02); }
.clinics-compare tbody tr:last-child th,
.clinics-compare tbody tr:last-child td{ border-bottom: none; }
.clinics-compare tbody tr:hover th,
.clinics-compare tbody tr:hover td{ background: rgba(31,111,235,.12) !important; }
.clinics-compare tbody tr:hover th.clinics-compare__param,
.clinics-compare tbody tr:hover th.clinics-compare__param--service,
.clinics-compare tbody tr:hover .clinics-compare__section-sep th,
.clinics-compare tbody tr:hover .clinics-compare__section-sub th{ background: rgba(31,111,235,.12) !important; }
.clinics-compare tbody tr:hover td.clinics-compare__cell--ad{ background: rgba(31,111,235,.12) !important; }
.doctors-compare__link{ font-weight: 700; color: var(--blue); text-decoration: none; }
.doctors-compare__link:hover{ text-decoration: underline; }
.doctors-compare__avatar-wrap{
  width: 80px;
  height: 80px;
  margin: 0 auto 10px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--bg-muted, #eef1f5);
  flex-shrink: 0;
  box-shadow: 0 1px 4px rgba(15,27,45,.08);
}
.doctors-compare__avatar-link{
  display: block;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
}
.doctors-compare__avatar-link:hover .doctors-compare__avatar{ opacity: .9; }
.doctors-compare__avatar{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}
.doctors-compare__edu-item{
  margin-bottom: .75em;
}
.doctors-compare__edu-item:last-child{ margin-bottom: 0; }
.doctors-compare .clinics-compare__th-clinic .clinics-compare__th-inner{ align-items: center; text-align: center; }
.doctors-compare .clinics-compare__booking{ margin-top: 8px; }
.doctors-compare .clinics-compare__param--doctor-label{ font-weight: 700; }
.doctors-compare__row--doctor th{ position: sticky; top: 0; z-index: 2; background: #f5f6f8; box-shadow: 0 1px 0 rgba(0,0,0,.06); }
.doctors-compare__row--doctor td{ background: #f5f6f8; box-shadow: 0 1px 0 rgba(0,0,0,.06); }
.doctors-compare .clinics-compare thead .clinics-compare__th-clinic{ min-height: 0; height: auto; padding-top: 14px; padding-bottom: 14px; }

/* Вариант 2: карточки вместо таблицы */
.compare-content--cards .compare-cards{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
}
.compare-card{
  padding: 20px;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: #fff;
  box-shadow: 0 2px 12px rgba(15,27,45,.05);
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.compare-card__head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
.compare-card__name-link{
  font-weight: 700;
  font-size: 17px;
  color: var(--blue);
  text-decoration: none;
  flex: 1 1 auto;
  min-width: 0;
}
.compare-card__name-link:hover{ text-decoration: underline; }
.compare-card__remove{
  flex-shrink: 0;
  padding: 4px 8px;
  border: none;
  border-radius: 4px;
  background: rgba(0,0,0,.06);
  color: var(--muted);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}
.compare-card__remove:hover{ background: rgba(185,28,28,.12); color: #b91c1c; }
.compare-card__params{ font-size: 13px; }
.compare-card__row{
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
}
.compare-card__label{ color: var(--muted); flex-shrink: 0; }
.compare-card__value{ text-align: right; word-break: break-word; }
.compare-card__services strong{ display: block; margin-bottom: 8px; font-size: 13px; color: var(--muted); }
.compare-card__list{
  margin: 0;
  padding-left: 18px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text);
}
.compare-card__list li{ margin-bottom: 4px; }
.compare-card__empty{ list-style: none; padding-left: 0; color: var(--muted); }

/* Вариант 3: минималистичная таблица */
.compare-page--v3 .compare-content__toolbar{ margin-bottom: 20px; }
.compare-page--v3 .clinics-compare__wrap{
  border: none;
  border-radius: 0;
  overflow-x: auto;
}
.compare-page--v3 .clinics-compare thead th{ background: #fff; border-bottom: 2px solid var(--border); font-size: 15px; }
.compare-page--v3 .clinics-compare th,
.compare-page--v3 .clinics-compare td{ padding: 14px 18px; }
.compare-page--v3 .clinics-compare__param{ color: var(--text); font-weight: 600; }
.compare-page--v3 .compare-services{ border-top: 2px solid var(--border); margin-top: 32px; padding-top: 28px; }

/* Вариант 4: тёмный акцент, компактная таблица */
.compare-page--v4 .compare-content__toolbar{ margin-bottom: 18px; }
.compare-page--v4 .clinics-compare__wrap{
  border: 1px solid rgba(31,111,235,.2);
  border-radius: var(--radius);
  background: rgba(31,111,235,.04);
}
.compare-page--v4 .clinics-compare thead th{ background: #e8eef7; color: var(--text); }
.compare-page--v4 .clinics-compare thead th.clinics-compare__param{ background: #e8eef7; }
.compare-page--v4 .clinics-compare thead .clinics-compare__th-clinic--ad{ background: #e8eef7; }
table[data-hover-col] .compare-page--v4 .clinics-compare thead th{ background: #e8eef7 !important; }
table[data-hover-col] .compare-page--v4 .clinics-compare thead th.clinics-compare__param{ background: #e8eef7 !important; }
table[data-hover-col] .compare-page--v4 .clinics-compare thead .clinics-compare__th-clinic--ad{ background: #e8eef7 !important; }
.compare-page--v4 .clinics-compare tbody tr:nth-child(even) th,
.compare-page--v4 .clinics-compare tbody tr:nth-child(even) td{ background: rgba(255,255,255,.5); }
.compare-page--v4 .compare-services__col{ background: rgba(255,255,255,.9); border-color: rgba(31,111,235,.15); }

.pagination{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 20px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
}
.pagination__info{ font-size: 13px; color: var(--muted); font-weight: 650; }
.pagination__links{ display: flex; gap: 8px; align-items: center; }
.pagination__link{
  padding: 6px 12px;
  border-radius: 999px;
  font-weight: 700;
  color: var(--blue);
  text-decoration: none;
  border: 1px solid var(--border);
}
.pagination__link:hover{ background: rgba(31,111,235,.08); border-color: rgba(31,111,235,.3); }
.pagination__current{
  padding: 6px 12px;
  border-radius: 999px;
  font-weight: 700;
  background: var(--blue);
  color: #fff;
}

.load-more{
  padding-top: 24px;
  padding-bottom: 8px;
  text-align: center;
  border-top: 1px solid var(--border);
}
.load-more--clinics{ margin-top: 8px; }

/* Featured / paid clinics — явное платное выделение */
.clinic--featured{
  border-width: 2px;
  border-color: rgba(31,111,235,.7);
  border-left-width: 5px;
  border-left-color: var(--blue);
  box-shadow: 0 0 0 1px rgba(31,111,235,.25), 0 4px 20px rgba(31,111,235,.12), var(--shadow);
  position: relative;
  overflow: visible;
  background: linear-gradient(135deg, rgba(31,111,235,.04) 0%, rgba(255,255,255,.98) 12%);
}
.clinic--featured::before{
  content: "Реклама";
  position: absolute;
  top: 0;
  right: 0;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #fff;
  background: var(--blue);
  padding: 5px 12px;
  border-radius: 0 var(--radius) 0 10px;
  line-height: 1.2;
  box-shadow: 0 2px 8px rgba(31,111,235,.35);
}
.badge-paid{
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #0a3d8a;
  background: linear-gradient(135deg, rgba(31,111,235,.14), rgba(31,111,235,.08));
  border-radius: 999px;
  padding: 6px 12px;
  border: 1px solid rgba(31,111,235,.45);
  display: inline-flex;
  align-items: center;
  gap: 5px;
  box-shadow: 0 1px 3px rgba(31,111,235,.15);
}
.badge-paid::before{
  content: "";
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%231f6feb'%3E%3Cpath d='M12 2l2.4 4.85L19 7.7l-3.5 3.4.8 4.7L12 14.25 5.2 15.8l.8-4.7L2 7.7l4.6-.85L12 2z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.badge-recommend{
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
  color: #065f46;
  background: linear-gradient(135deg, rgba(16,185,129,.18), rgba(5,150,105,.12));
  border-radius: 999px;
  padding: 4px 9px;
  border: 1px solid rgba(5,150,105,.45);
  box-shadow: 0 1px 2px rgba(5,150,105,.12);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.badge-recommend::before{
  content: "";
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23eab308'%3E%3Cpath d='M12 17.3 5.8 20.9l1.6-7L2 9.3l7.2-.6L12 2l2.8 6.7 7.2.6-5.4 4.6 1.6 7L12 17.3Z'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* Ad slots */
.ad{
  position:relative;
  overflow:hidden;
}
.ad__label{
  position:absolute;
  top: 12px;
  left: 16px;
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  background: rgba(255,255,255,.9);
  padding:3px 8px;
  border-radius: 999px;
  border:1px solid var(--border);
}
.ad__content{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.ad--wide{
  background: radial-gradient(circle at 0 0, rgba(31,111,235,.12), transparent 60%), var(--surface);
}
.ad--main-banner{
  display: block;
  text-decoration: none;
  color: inherit;
  padding-top: 33px;
  padding-bottom: 33px;
}
.ad--main-banner:hover{ color: inherit; }
.ad--main-banner .ad__content{ padding-left: 0; padding-right: 0; }
.ad--main-banner .ad__main-banner-inner{ max-width: 720px; }
.ad--main-banner .ad__main-banner-image-wrap{ display: block; }
.ad--main-banner .ad__main-banner-image{ max-width: 100%; height: auto; border-radius: 8px; vertical-align: top; }
.ad--side{
  background: radial-gradient(circle at 100% 0, rgba(14,165,164,.14), transparent 60%), var(--surface);
}
.ad--horizontal{
  padding: 16px 20px;
  margin: 12px 0;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: linear-gradient(90deg, rgba(31,111,235,.08) 0%, rgba(14,165,164,.06) 100%);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.ad--horizontal .ad__content{
  flex: 1;
  min-width: 200px;
  flex-direction: row;
  align-items: center;
  gap: 16px;
}
.ad--horizontal .ad__label{ position: static; margin-right: 0; }

.ad--list-banner{ overflow: hidden; }
.ad--list-banner .ad__content--banner{ padding: 0; display: block; }
.ad--list-banner .ad__list-banner-link{ display: block; line-height: 0; }
.ad--list-banner .ad__list-banner-img{ display: block; width: 100%; max-width: 300px; height: auto; aspect-ratio: 300/250; object-fit: cover; }

/* Detail layout */
.detail{
  padding: 24px 0 44px;
}
.detail__grid{
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 16px;
  align-items: start;
}
.detail__breadcrumb{
  grid-column: 1 / -1;
}
.detail__grid > section{
  min-width: 0;
}
.detail__sidebar{
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  align-self: start;
  margin-top: 0;
  padding-top: 0;
}
.clinic-hero__rating-card--sidebar{
  min-width: 0;
  max-width: none;
  width: 100%;
  flex: 0 0 auto;
  box-sizing: border-box;
  padding: 0;
  border-radius: 0;
  border: none;
  box-shadow: none;
  background: transparent;
}
.clinic-hero__rating-card--sidebar .clinic-hero__rating-main{ gap: 2px; }
.clinic-hero__rating-card--sidebar .clinic-hero__rating-label{ font-size: 10px; letter-spacing: 0.08em; }
.clinic-hero__rating-card--sidebar .clinic-hero__rating-value{ font-size: 22px; gap: 6px; }
.clinic-hero__rating-card--sidebar .clinic-hero__rating-value svg{ width: 24px; height: 24px; }
.clinic-hero__rating-card--sidebar .clinic-hero__rating-value strong{ font-size: 24px; }
.clinic-hero__rating-card--sidebar .clinic-hero__rating-hint{ font-size: 12px; }
.clinic-hero__rating-card--sidebar .clinic-hero__rating-categories{ margin-top: 8px; font-size: 12px; }
.clinic-hero__rating-card--sidebar .clinic-hero__rating-cat{ padding: 3px 0; }
.clinic-hero__rating-card--sidebar .clinic-hero__rating-divider{ margin: 8px 0; }
.clinic-hero__rating-card--sidebar .clinic-hero__rating-extra{ font-size: 12px; gap: 6px 8px; }
.clinic-hero__rating-card--sidebar .clinic-hero__rating-extra-stars svg{ width: 14px; height: 14px; }
.clinic-hero__rating-card--sidebar .clinic-hero__rating-badge{ font-size: 10px; padding: 3px 6px; margin-top: 4px; }
.price-band--sidebar{
  margin-top: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  gap: 10px;
  border-radius: 12px;
}
.price-band--sidebar .price-band__main{ flex: 1 1 auto; min-width: 0; }
.price-band--sidebar .price-band__label{ margin-bottom: 4px; font-size: 11px; }
.price-band--sidebar .price-band__range{ font-size: 20px; }
.price-band--sidebar .price-band__note{ margin-top: 4px; font-size: 12px; }
.price-band--sidebar .price-band__actions{ margin-top: 8px; gap: 8px 10px; }
.price-band--sidebar .price-band__votes-label{ font-size: 12px; }
.price-band--sidebar .price-band__vote-btn{ padding: 4px 8px; font-size: 12px; }
.price-band--sidebar .price-band__meta{ gap: 4px; }
.price-band--sidebar .price-band__meta-row{ gap: 6px; justify-content: flex-start; }
.price-band--sidebar .price-band__updated-badge{ padding: 4px 8px; font-size: 11px; }
.price-band--sidebar .price-band__updated-date{ font-size: 11px; padding: 3px 8px; min-width: 76px; }
.price-band--sidebar .price-band__actuality{ font-size: 10px; }
.financing-band--sidebar{
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(31,111,235,.06);
  border: 1px solid rgba(31,111,235,.15);
  width: 100%;
  box-sizing: border-box;
}
.financing-band--sidebar .price-band__label{
  font-size: 12px;
  color: #0f4d9e;
}
.header-block{
  padding: 18px;
}
.header-block h1{
  margin: 0 0 8px;
  font-size: 26px;
  letter-spacing: -0.3px;
  white-space: nowrap;
}
@media (max-width: 520px){
  .header-block h1{ white-space: normal; }
}
.address{
  color: var(--muted);
  font-size: 14px;
  line-height: 1.45;
}
.address a{ color: var(--blue); font-weight: 650; }
.link-map{ display: inline-block; margin-top: 4px; }

/* Бейдж «Реклама» */
.badge--ad{
  background: var(--bg-muted, #f1f5f9);
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 6px;
  border: 1px solid var(--border);
}

/* Блок контактов клиники: адрес/режим слева, телефон + CTA справа — ниже и правее, чтобы название было в одну строку */
.clinic-detail__contact{
  display: flex;
  flex-wrap: wrap;
  gap: 20px 32px;
  margin-top: 20px;
  margin-left: 24px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.5;
}
.clinic-detail__contact-left{
  flex: 1 1 260px;
}
.clinic-detail__contact-right{
  flex: 0 1 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.clinic-detail__contact-row{
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}
.clinic-detail__contact-row + .clinic-detail__contact-row{ margin-top: 6px; }
.clinic-detail__address-row{
  align-items: baseline;
  gap: 6px 10px;
}
.clinic-detail__address-row .clinic-detail__contact-label{ flex: 0 0 auto; }
.clinic-detail__address-text{
  flex: 0 1 auto;
  min-width: 0;
}
.clinic-detail__address-row .link-map{
  flex-shrink: 0;
  margin-top: 0;
  white-space: nowrap;
}
.clinic-detail__contact-label{
  flex: 0 0 auto;
  color: var(--muted);
  font-weight: 600;
}
.clinic-detail__contact-link{ color: var(--blue); font-weight: 650; }
.clinic-detail__messengers{
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.clinic-detail__messenger-link{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--blue);
  background: rgba(31,111,235,.08);
  border: 1px solid rgba(31,111,235,.2);
  text-decoration: none;
  transition: background .15s ease;
}
.clinic-detail__messenger-link:hover{ background: rgba(31,111,235,.14); }
.clinic-detail__messenger-link--wa:hover{ background: rgba(37,211,102,.15); color: #25d366; }
.clinic-detail__messenger-link--tg:hover{ background: rgba(0,136,204,.15); color: #0088cc; }
.clinic-detail__contact-right .clinic-detail__contact-label{ min-width: 0; }
.clinic-detail__phone-block{ align-items: center; }
.clinic-detail__phone-block a{ color: var(--blue); font-weight: 650; }
.clinic-detail__phone-disclaimer{
  margin: 0;
  font-size: 12px;
  color: var(--muted);
  max-width: 280px;
}
.clinic-detail__cta{
  margin-top: 4px;
  white-space: nowrap;
}

.visually-hidden{ position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.header-block > #clinic-description{ margin-top: 16px; }
.clinic-gallery{ margin-top: 16px; }

/* Карусель фотографий */
.gallery-carousel{
  position: relative;
  margin-bottom: 4px;
}
.gallery-carousel__viewport{
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: var(--bg-muted, #f8fafc);
}
.gallery-carousel__track{
  display: flex;
  transition: transform 0.35s ease-out;
  will-change: transform;
}
.gallery-carousel__track .gallery__item{
  flex: 0 0 100%;
  width: 100%;
  min-width: 0;
  padding: 0;
  margin: 0;
}
.gallery-carousel__track .gallery__item[hidden]{ display: none !important; }
.gallery-carousel__btn{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 50%;
  background: rgba(255,255,255,.95);
  box-shadow: 0 2px 12px rgba(0,0,0,.12);
  color: var(--text);
  cursor: pointer;
  transition: background .2s ease, box-shadow .2s ease, opacity .2s ease;
  opacity: 0.9;
}
.gallery-carousel__btn:hover{ background: #fff; box-shadow: 0 4px 16px rgba(0,0,0,.16); opacity: 1; }
.gallery-carousel__btn:disabled{ opacity: 0.4; cursor: default; pointer-events: none; }
.gallery-carousel__btn--prev{ left: 12px; }
.gallery-carousel__btn--next{ right: 12px; }
.gallery-carousel__btn--prev::before,
.gallery-carousel__btn--next::before{
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 12px;
  height: 12px;
  border: 2px solid currentColor;
  border-top: 0;
  border-right: 0;
}
.gallery-carousel__btn--prev::before{ left: 14px; right: auto; transform: rotate(-45deg); }
.gallery-carousel__btn--next::before{ right: 14px; left: auto; transform: rotate(135deg); }
.gallery-carousel__dots{
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 12px;
  padding: 0 8px;
}
.gallery-carousel__dot{
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: none;
  background: var(--border);
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
  padding: 0;
}
.gallery-carousel__dot:hover{ background: var(--muted); }
.gallery-carousel__dot.is-active{ background: var(--blue); transform: scale(1.2); }

.gallery__item{ margin: 0; border-radius: 12px; overflow: hidden; border: 1px solid var(--border); }
.gallery__item img{ width: 100%; height: auto; display: block; transition: opacity 0.2s ease; }
.gallery__caption{
  margin: 8px 0 0;
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: 0.02em;
  line-height: 1.35;
  text-align: center;
}
.gallery-carousel__track .gallery__item{ border-radius: 0; border: none; }
.gallery-carousel__track .gallery__item:first-child{ border-radius: 14px 0 0 14px; }
.gallery-carousel__track .gallery__item:last-child{ border-radius: 0 14px 14px 0; }

/* Блок «Клиники рядом» — карусель 2 клиник, не растягивает страницу */
.nearby-clinics{ min-width: 0; }
.nearby-clinics__title{ margin: 0 0 12px; font-size: 18px; font-weight: 700; color: var(--text); }
.nearby-clinics__carousel{
  position: relative;
  display: flex;
  align-items: stretch;
  gap: 0;
  min-width: 0;
}
.nearby-clinics__viewport{
  flex: 1;
  min-width: 0;
  overflow: hidden;
  border-radius: 12px;
}
.nearby-clinics__track{
  display: flex;
  gap: 12px;
  transition: transform 0.3s ease-out;
  will-change: transform;
  padding: 2px 0;
  min-width: 0;
}
.nearby-clinics__track .nearby-clinics__card{
  flex: 0 0 calc(50% - 6px);
  min-width: 0;
  box-sizing: border-box;
}
@media (max-width: 559px){
  .nearby-clinics__track .nearby-clinics__card{
    flex: 0 0 calc(100% - 8px);
  }
}
.nearby-clinics__btn{
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border: none;
  border-radius: 50%;
  background: var(--bg-muted, #f1f5f9);
  color: var(--text);
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
  margin: auto 0;
}
.nearby-clinics__btn:hover{ background: rgba(31,111,235,.12); color: var(--blue); }
.nearby-clinics__btn:disabled{ opacity: 0.4; cursor: default; pointer-events: none; }
.nearby-clinics__btn--prev::before,
.nearby-clinics__btn--next::before{
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 10px;
  height: 10px;
  border: 2px solid currentColor;
  border-top: 0;
  border-right: 0;
}
.nearby-clinics__btn{ position: relative; }
.nearby-clinics__btn--prev::before{ left: 13px; right: auto; transform: rotate(-45deg); }
.nearby-clinics__btn--next::before{ right: 13px; left: auto; transform: rotate(135deg); }
.nearby-clinics__dots{
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 12px;
}
.nearby-clinics__dot{
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: none;
  background: var(--border);
  cursor: pointer;
  padding: 0;
  transition: background .2s ease, transform .2s ease;
}
.nearby-clinics__dot:hover{ background: var(--muted); }
.nearby-clinics__dot.is-active{ background: var(--blue); transform: scale(1.2); }

@media (min-width: 720px){
  .gallery-carousel__btn{ width: 48px; height: 48px; }
  .gallery-carousel__btn--prev{ left: 16px; }
  .gallery-carousel__btn--next{ right: 16px; }
  .gallery-carousel__btn--prev::before{ left: 16px; }
  .gallery-carousel__btn--next::before{ right: 16px; }
}
.price-band{
  margin-top: 16px;
  padding: 18px 20px;
  border-radius: 16px;
  border: 1px solid rgba(31,111,235,.12);
  background: linear-gradient(135deg, rgba(31,111,235,.06) 0%, rgba(255,255,255,.95) 100%);
  box-shadow: 0 1px 3px rgba(31,111,235,.06);
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.price-band__main{ flex: 1 1 280px; }
.price-band__label{
  color: #0f4d9e;
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  margin: 0 0 6px;
}
.price-band__range{
  font-size: 24px;
  font-weight: 900;
  letter-spacing: -0.02em;
  margin: 0;
  color: var(--text);
}
.price-band__note{
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
}
.price-band__actions{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin-top: 14px;
}
.price-band__votes-label{
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
}
.price-band__votes{
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.price-band__vote-btn{
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 10px;
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  cursor: pointer;
  transition: color .2s, background .2s, border-color .2s, box-shadow .2s;
}
.price-band__vote-btn:hover{
  color: var(--text);
  border-color: var(--muted);
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.price-band__vote-btn[data-vote="yes"]:hover,
.price-band__vote-btn[data-vote="yes"][aria-pressed="true"]{
  color: #059669;
  border-color: rgba(5,150,105,.35);
  background: rgba(5,150,105,.08);
}
.price-band__vote-btn[data-vote="no"]:hover,
.price-band__vote-btn[data-vote="no"][aria-pressed="true"]{
  color: #b91c1c;
  border-color: rgba(185,28,28,.35);
  background: rgba(185,28,28,.06);
}
.price-band__vote-count{ min-width: 1.25em; text-align: left; }
.price-band__vote-bar{
  display: inline-flex;
  width: 80px;
  height: 6px;
  border-radius: 3px;
  overflow: hidden;
  background: var(--border);
}
.price-band__vote-bar-yes{
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #059669, #10b981);
  transition: width .25s ease;
}
.price-band__vote-bar-no{
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #dc2626, #b91c1c);
  transition: width .25s ease;
}
.price-band__meta{
  flex: 0 1 auto;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
}
.price-band__meta-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.price-band__updated-date{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 88px;
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 700;
  color: var(--text);
  border: 1px solid rgba(185,28,28,.35);
  border-radius: 6px;
  background: rgba(185,28,28,.06);
  flex-shrink: 0;
}
.price-band__updated-badge{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  font-size: 12px;
  font-weight: 700;
  border-radius: 8px;
  letter-spacing: 0.01em;
}
.price-band__updated-badge[hidden]{ display: none !important; }
.price-band__updated-badge--recent{
  background: rgba(5,150,105,.12);
  color: #047857;
  border: 1px solid rgba(5,150,105,.25);
}
.price-band__updated-badge--old{
  background: rgba(185,28,28,.1);
  color: #b91c1c;
  border: 1px solid rgba(185,28,28,.25);
}
.price-band__actuality{
  margin: 0;
  font-size: 11px;
  color: var(--muted);
  font-weight: 500;
}
.section-block{
  padding: 20px 24px;
}
.section-block h2{
  margin: 0 0 16px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
}
.doctor-about-wrap.section-block h2,
#doctor-about-wrap.section-block h2{
  margin-bottom: 20px;
}
.mini-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.mini{
  padding: 14px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.72);
}
.mini h3{
  margin:0 0 6px;
  font-size: 14px;
}
.mini p{
  margin:0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}
.service-item__link{ display: inline-block; margin-top: 8px; font-size: 12px; font-weight: 700; color: var(--blue); }
.service-item__link:hover{ text-decoration: underline; }
.doctors-grid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
.doctor-card--hidden{ display: none; }
.doctor-card{
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 14px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.72);
}
.doctor-card__photo{ flex-shrink: 0; border-radius: var(--radius-sm); overflow: hidden; }
.doctor-card__photo img{ width: 80px; height: 80px; object-fit: cover; object-position: center center; display: block; }
.doctor-card__body{ flex: 1; min-width: 0; }
.doctor-card__right{
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  text-align: right;
}
.doctor-card__rating{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
}
.doctor-card__rating svg{ width: 18px; height: 18px; color: #eab308; flex-shrink: 0; }
.doctor-card__exp{ font-size: 13px; color: var(--muted); font-weight: 600; }
.doctor-card__name{ margin: 0 0 2px; font-size: 15px; }
.doctor-card__name a{ color: var(--text); font-weight: 800; }
.doctor-card__name a:hover{ color: var(--blue); }
.doctor-card__spec{ margin: 0; font-size: 13px; color: var(--muted); font-weight: 650; }
.doctors-show-more{ margin-top: 4px; }
@media (max-width: 640px){
  .doctors-grid{ grid-template-columns: 1fr; }
}
.why-grid{ display: grid; gap: 14px; }
.why-item{
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 14px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.72);
}
.why-item__icon{ flex-shrink: 0; width: 40px; height: 40px; border-radius: 12px; background: rgba(31,111,235,.12); color: var(--blue); display: grid; place-items: center; }
.why-item__icon svg{ width: 22px; height: 22px; }
.why-item h3{ margin: 0 0 4px; font-size: 14px; }
.why-item p{ margin: 0; font-size: 13px; color: var(--muted); line-height: 1.45; }
.logos{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.logo{
  padding: 12px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.72);
  display:flex;
  flex-direction: column;
  align-items:center;
  justify-content:center;
  gap: 4px;
  min-height: 60px;
  font-weight: 900;
  letter-spacing: .2px;
  color: #0b3f87;
}
.logo--link{
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  transition: border-color .2s, background .2s;
}
.logo--link:hover{
  border-color: rgba(31,111,235,.4);
  background: rgba(31,111,235,.08);
}
.logo__name{ font-size: 13px; }
.logo__desc{ font-size: 11px; font-weight: 650; color: var(--muted); }

/* Системы имплантатов на странице клиники — от дешёвых к дорогим, ровная сетка */
.clinic-systems-wrap{
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.clinic-systems-group{
  background: rgba(248,250,253,.6);
  border-radius: 12px;
  padding: 14px 16px;
  border: 1px solid rgba(0,0,0,.06);
}
.clinic-systems-group__title{
  display: block;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--blue);
  margin-bottom: 10px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(31,111,235,.15);
}
.clinic-systems-group__grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 10px;
}
.clinic-system-card{
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,.08);
  background: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 64px;
  font-weight: 700;
  letter-spacing: .02em;
  color: var(--text);
  cursor: default;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
.clinic-system-card--hidden{ display: none; }
.clinic-system-card__name{ font-size: 14px; text-align: center; line-height: 1.25; }
.clinic-system-card__desc{ font-size: 11px; font-weight: 600; color: var(--muted); text-align: center; line-height: 1.3; }
.clinic-system-card__price{ font-size: 12px; font-weight: 700; color: var(--primary); text-align: center; line-height: 1.3; margin-top: 4px; }
.clinic-systems-show-more{ margin-top: 12px; }

.compare-check--header{ font-size: 13px; }

.clinic-hero{
  display: flex;
  gap: 24px;
  align-items: flex-start;
  flex-wrap: wrap;
}
.clinic-hero__title-row{
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
  width: 100%;
}
.clinic-hero__title-row .clinic-hero__logo--title-row{
  flex-shrink: 0;
}
.clinic-hero__title-row .clinic-hero__title{
  margin: 0;
  flex: 1;
  min-width: 0;
}
.clinic-hero__logo{
  width: 72px;
  height: 32px;
  border-radius: 8px;
  background: linear-gradient(145deg, #f8fafc 0%, #f1f5f9 100%);
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 2px 8px rgba(0,0,0,.04), inset 0 1px 0 rgba(255,255,255,.8);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex-shrink: 0;
  position: relative;
  padding: 4px 6px;
}
.clinic-hero__logo-placeholder{
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  color: var(--muted);
  padding: 4px;
}
.clinic-hero__logo-placeholder svg{
  opacity: .5;
  width: 14px;
  height: 14px;
}
.clinic-hero__logo-placeholder-text{
  font-size: 8px;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.clinic-hero__logo-img{
  max-height: 100%;
  width: auto;
  object-fit: contain;
  position: relative;
  z-index: 1;
}
.clinic-hero__logo-img[src=""],
.clinic-hero__logo-img:not([src]){
  opacity: 0;
  pointer-events: none;
  position: absolute;
}
.clinic-hero__logo:has(.clinic-hero__logo-img[src]:not([src=""])) .clinic-hero__logo-placeholder{
  display: none;
}
.clinic-hero__logo .clinic-hero__logo-img[src]:not([src=""]){
  opacity: 1;
  position: relative;
}
.clinic-hero__info-head{
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.clinic-hero__logo--in-block{
  width: 140px;
  height: 72px;
  border-radius: 12px;
  padding: 8px 12px;
}
.clinic-hero__logo--in-block .clinic-hero__logo-placeholder svg{
  width: 28px;
  height: 28px;
}
.clinic-hero__logo--in-block .clinic-hero__logo-placeholder-text{
  font-size: 11px;
}
.clinic-hero__logo--in-block .clinic-hero__logo-img{
  max-height: 56px;
  width: auto;
}
.clinic-hero__logo--cta{
  align-self: flex-start;
  margin-bottom: 4px;
}
.clinic-hero__text{
  flex: 1;
  min-width: 0;
}
.clinic-hero__main{
  flex: 1;
  min-width: 0;
}
.clinic-hero__badges{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-bottom: 10px;
}
.clinic-hero__title{
  margin: 0 0 16px;
  font-size: 24px;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--text);
}
.clinic-hero__contact-wrap{
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--bg);
}
.clinic-hero__contact-block{
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.clinic-hero__contact-block--info{
  flex: 1 1 280px;
  min-width: 0;
  padding: 18px 20px;
  justify-content: space-between;
  background: rgba(248,250,252,.75);
}
.clinic-hero__contact-item--phone{
  margin-top: 6px;
  padding-top: 12px;
  border-top: 1px solid rgba(0,0,0,.06);
}
.clinic-hero__contact-item--phone2{
  margin-top: 2px;
}
.clinic-hero__contact-block--cta{
  flex: 0 0 auto;
  min-width: 260px;
  align-items: stretch;
  justify-content: flex-start;
  padding: 18px 20px;
  background: #fff;
}
.clinic-hero__contact-block--cta .clinic-hero__rating-card{
  margin-bottom: 0;
}
@media (max-width: 640px){
  .clinic-hero__contact-wrap{ flex-direction: column; }
  .clinic-hero__contact-block--cta{ border-left: none; border-top: 1px solid var(--border); }
}
.clinic-hero__contact-sep{
  display: none;
}
.clinic-hero__contact-item{
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  line-height: 1.35;
  color: var(--text);
}
.clinic-hero__contact-item:first-child .clinic-hero__address-link{
  font-weight: 600;
}
.clinic-hero__contact-icon{
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--muted);
}
.clinic-hero__contact-icon svg{
  width: 16px;
  height: 16px;
}
.clinic-hero__contact-text{
  flex: 1;
  min-width: 0;
  color: var(--muted);
  font-weight: 500;
}
.clinic-hero__contact-link{
  color: var(--blue);
  font-weight: 650;
  text-decoration: none;
}
.clinic-hero__contact-link:hover{
  text-decoration: underline;
}
.clinic-hero__website-link{
  font-size: 13px;
  font-weight: 600;
  color: var(--blue);
  text-decoration: none;
}
.clinic-hero__website-link:hover{
  text-decoration: underline;
}
.clinic-hero__link{
  color: var(--blue);
  font-weight: 650;
  text-decoration: none;
}
.clinic-hero__link:hover{ text-decoration: underline; }
.clinic-hero__address-link{
  color: var(--text);
  text-decoration: none;
  font-size: 14px;
  line-height: 1.4;
}
.clinic-hero__address-link:hover{
  color: var(--blue);
  text-decoration: underline;
}
.clinic-hero__phone-link{
  color: var(--blue);
  font-weight: 700;
  font-size: 15px;
  text-decoration: none;
}
.clinic-hero__phone-link:hover{
  text-decoration: underline;
}
.clinic-hero__contact-phone-note{
  font-size: 12px;
  color: var(--muted);
  font-weight: 500;
  margin-left: 4px;
}
.clinic-hero__messengers{
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.clinic-hero__messenger-btn{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  transition: background .2s ease, color .2s ease, transform .15s ease;
  border: 1px solid transparent;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.clinic-hero__messenger-btn:hover{
  transform: translateY(-1px);
}
.clinic-hero__messenger-icon{
  flex-shrink: 0;
  width: 18px;
  height: 18px;
}
.clinic-hero__messenger-btn--wa{
  color: #fff;
  background: linear-gradient(180deg, #25d366 0%, #20bd5a 100%);
  border-color: rgba(0,0,0,.08);
}
.clinic-hero__messenger-btn--wa:hover{
  background: linear-gradient(180deg, #2ee06b 0%, #25d366 100%);
}
.clinic-hero__messenger-btn--tg{
  color: #fff;
  background: linear-gradient(180deg, #0088cc 0%, #0077b5 100%);
  border-color: rgba(0,0,0,.08);
}
.clinic-hero__messenger-btn--tg:hover{
  background: linear-gradient(180deg, #0099e0 0%, #0088cc 100%);
}
.clinic-hero__benefit{
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding: 10px 12px 10px 12px;
  background: #fff;
  border-radius: 10px;
  border: 1px solid rgba(31,111,235,.12);
  box-sizing: border-box;
}
.clinic-hero__benefit-bar{
  position: absolute;
  left: 0;
  top: 8px;
  bottom: 8px;
  width: 4px;
  background: var(--blue);
  border-radius: 0 2px 2px 0;
}
.clinic-hero__benefit-icon{
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--blue);
  color: #fff;
  border-radius: 50%;
}
.clinic-hero__benefit-icon svg{
  width: 18px;
  height: 18px;
}
.clinic-hero__benefit-text{
  margin: 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--text);
  font-weight: 500;
}
.clinic-hero__benefit-text strong{
  font-weight: 700;
}
.clinic-hero__cta{
  margin-top: 14px;
  padding: 10px 18px 10px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  font-size: 14px;
  font-weight: 700;
  border-radius: 10px;
}
.clinic-hero__disclaimer{
  margin: 8px 0 0;
  font-size: 11px;
  color: var(--muted);
  max-width: 240px;
}

/* Карточка рейтинга справа */
.clinic-hero__rating-card{
  flex-shrink: 0;
  min-width: 200px;
  max-width: 240px;
  padding: 16px 18px;
  border-radius: 14px;
  background: linear-gradient(165deg, rgba(31,111,235,.07) 0%, rgba(255,255,255,.98) 100%);
  border: 1px solid rgba(31,111,235,.14);
  box-shadow: 0 2px 12px rgba(31,111,235,.08);
}
.clinic-hero__rating-main{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}
.clinic-hero__rating-label{
  font-size: 10px;
  font-weight: 800;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.clinic-hero__rating-value{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 22px;
  font-weight: 800;
  color: var(--text);
}
.clinic-hero__rating-value svg{
  width: 26px;
  height: 26px;
  color: #eab308;
}
.clinic-hero__rating-value strong{
  font-size: 26px;
  font-weight: 900;
  letter-spacing: -0.02em;
}
.clinic-hero__rating-hint{
  font-size: 12px;
  color: var(--muted);
  font-weight: 600;
}
.clinic-hero__rating-categories{
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  font-size: 12px;
}
.clinic-hero__rating-cat{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 4px 0;
  border-bottom: 1px solid rgba(0,0,0,.04);
}
.clinic-hero__rating-cat:last-child{ border-bottom: none; }
.clinic-hero__rating-cat-name{
  color: var(--muted);
  font-weight: 600;
}
.clinic-hero__rating-cat-value{
  font-weight: 800;
  color: var(--text);
  min-width: 2em;
  text-align: right;
}
.clinic-hero__rating-divider{
  height: 1px;
  width: 100%;
  background: linear-gradient(90deg, transparent, var(--border) 15%, var(--border) 85%, transparent);
  margin: 14px 0;
}
.clinic-hero__rating-extra{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 10px;
  font-size: 13px;
  color: var(--muted);
}
.clinic-hero__rating-extra-stars{
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.clinic-hero__rating-extra-stars svg{
  width: 18px;
  height: 18px;
  color: #eab308;
}
.clinic-hero__rating-extra-stars strong{
  font-weight: 800;
  color: var(--text);
}
.clinic-hero__rating-extra-count{
  font-weight: 600;
}
.clinic-hero__rating-badge{
  font-size: 11px;
  font-weight: 700;
  padding: 4px 9px;
  border-radius: 8px;
  background: rgba(0,0,0,.05);
  color: var(--muted);
  border: 1px solid var(--border);
  width: 100%;
  text-align: center;
}

/* Единый блок рейтингов справа: наш рейтинг + собранный (legacy, для совместимости) */
.clinic-detail__ratings-block{
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 180px;
  max-width: 220px;
  padding: 12px 14px;
  border-radius: 12px;
  background: linear-gradient(160deg, rgba(31,111,235,.06) 0%, rgba(255,255,255,.95) 100%);
  border: 1px solid rgba(31,111,235,.12);
  box-shadow: 0 2px 8px rgba(31,111,235,.06);
}
.clinic-detail__rating-our{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}
.clinic-detail__rating-our-label{
  font-size: 11px;
  font-weight: 800;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.clinic-detail__rating-our-value{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 22px;
  font-weight: 800;
  color: var(--text);
}
.clinic-detail__rating-our-value svg{
  width: 24px;
  height: 24px;
  color: #f59e0b;
}
.clinic-detail__rating-our-value strong{
  font-size: 24px;
  font-weight: 900;
  letter-spacing: -0.02em;
}
.clinic-detail__rating-our-hint{
  font-size: 12px;
  color: var(--muted);
  font-weight: 600;
}
.clinic-detail__rating-divider{
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--border) 10%, var(--border) 90%, transparent);
  margin: 12px 0;
}
.clinic-detail__rating-collected{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 10px;
  font-size: 13px;
  color: var(--muted);
}
.clinic-detail__rating-collected-stars{
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.clinic-detail__rating-collected-stars svg{
  width: 18px;
  height: 18px;
  color: #f59e0b;
}
.clinic-detail__rating-collected-stars strong{
  font-weight: 800;
  color: var(--text);
}
.clinic-detail__rating-collected-count{
  font-weight: 600;
}
.clinic-detail__rating-collected-pill{
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 6px;
  background: rgba(0,0,0,.06);
  color: var(--muted);
  border: 1px solid var(--border);
}
@media (max-width: 720px){
  .clinic-hero__contact-sep{
    width: 100%;
    min-height: 1px;
    margin: 4px 0;
  }
  .clinic-hero__rating-card{
    min-width: 100%;
    max-width: none;
  }
  .clinic-detail__ratings-block{
    min-width: 100%;
    max-width: none;
  }
}
.clinic-description{
  margin-top: 8px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}

.doctor-page__top{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.doctor-page__breadcrumb{
  font-size: 13px;
  color: var(--muted);
}
.doctor-page__breadcrumb a{ color: var(--blue); font-weight: 600; text-decoration: none; }
.doctor-page__breadcrumb a:hover{ text-decoration: underline; }
.doctor-page__actions{
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  margin-left: auto;
}

.card.doctor-hero{
  padding: 20px 24px 20px 16px;
  box-shadow: 0 2px 16px rgba(15,23,42,.06);
}
.doctor-hero__inner{
  display: flex;
  gap: 24px;
  align-items: center;
}
.doctor-hero__photo-wrap{
  width: 140px;
  height: 140px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  padding: 0;
  margin: 0;
  background: #e2e8f0;
  flex-shrink: 0;
  box-shadow: 0 6px 20px rgba(31,111,235,.12);
  border: 1px solid rgba(0,0,0,.06);
}
.doctor-hero__photo-img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  vertical-align: middle;
}
.doctor-hero__text{ flex: 1; min-width: 0; }
.doctor-hero__title{ margin: 0 0 4px; font-size: 22px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.25; color: var(--text); }
.doctor-hero__meta{ margin: 0; }
.doctor-hero__age-exp{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin: 12px 0 0;
  padding-top: 10px;
  border-top: 1px dashed rgba(100,116,139,.25);
  font-size: 12px;
  color: var(--muted);
  font-weight: 500;
  letter-spacing: 0.02em;
}
.doctor-hero__age-exp-item{
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 6px;
  background: rgba(100,116,139,.08);
  color: var(--text);
  font-weight: 600;
}
.doctor-hero__actions{
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  margin-left: auto;
}
.doctor-hero__action{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: #fff;
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease, color .2s ease;
}
.doctor-hero__action:hover{ border-color: var(--blue); background: rgba(31,111,235,.06); color: var(--blue); }
.doctor-hero__action-icon{ width: 18px; height: 18px; flex-shrink: 0; }
.doctor-hero__action-icon--heart{ fill: transparent; }
.doctor-hero__action--favorite-active .doctor-hero__action-icon--heart{ fill: #dc2626; stroke: #dc2626; }
.doctor-hero__action--favorite-active{ border-color: rgba(220,38,38,.3); background: rgba(220,38,38,.06); color: #b91c1c; }
.doctor-hero__action--favorite-active:hover{ border-color: #dc2626; background: rgba(220,38,38,.1); color: #dc2626; }
.doctor-hero__action-checkbox{ position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); }
.doctor-hero__action--compare:has(.doctor-hero__action-checkbox:checked){ border-color: var(--blue); background: rgba(31,111,235,.08); color: var(--blue); }
.doctor-hero__meta{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
}
.doctor-hero__spec{ margin: 0; }
.doctor-hero__meta .doctor-hero__spec--highlight,
.doctor-hero__meta .doctor-hero__rating-badge{
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 10px;
  font-size: 13px;
  box-sizing: border-box;
}
.doctor-hero__spec--highlight{
  margin: 0;
  border-radius: 10px;
  border: 1px dashed rgba(100,116,139,.4);
  background: rgba(248,250,252,.95);
  color: var(--text);
  font-weight: 600;
  letter-spacing: 0.02em;
}
.doctor-hero__rating-badge{
  gap: 8px;
  border: 1px solid rgba(234,179,8,.35);
  background: linear-gradient(180deg, rgba(254,249,195,.5) 0%, rgba(254,243,199,.4) 100%);
  box-shadow: 0 1px 3px rgba(234,179,8,.1);
}
.doctor-hero__rating-badge .stars{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #eab308;
}
.doctor-hero__rating-badge .stars svg{ width: 16px; height: 16px; }
.doctor-hero__rating-badge .stars strong{ font-size: 15px; color: var(--text); }
.doctor-hero__reviews-count{
  font-size: 12px;
  color: var(--muted);
  font-weight: 600;
}
.doctor-hero__contacts{
  flex-shrink: 0;
  margin-left: auto;
  padding: 14px 18px;
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(248,250,253,.98) 100%);
  border: 1px solid rgba(31,111,235,.14);
  min-width: 0;
  text-align: right;
  box-shadow: 0 2px 12px rgba(31,111,235,.06);
}
.doctor-hero__contacts .doctor-contacts{ align-items: flex-end; }
.doctor-hero__contacts-title{
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--blue);
}
.doctor-hero__contacts .doctor-contacts__intro{
  margin: 0 0 12px;
  font-size: 12px;
  line-height: 1.4;
}
.doctor-hero__contacts .doctor-contacts{
  flex-direction: column;
  gap: 10px;
}
.doctor-hero__contacts .doctor-contact__item{ font-size: 13px; }
@media (max-width: 768px){
  .doctor-page__top{ flex-direction: column; align-items: flex-start; }
  .doctor-page__actions{ margin-left: 0; }
  .doctor-hero__inner{ flex-wrap: wrap; gap: 20px; }
  .doctor-hero__actions{ width: 100%; margin-left: 0; justify-content: flex-end; }
  .doctor-hero__meta{ flex-direction: column; align-items: flex-start; }
}

.doctor-info-accordion__title{
  margin: 0 0 16px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--text);
}
.doctor-info-accordion__list{
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.doctor-info-accordion__item{
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--bg-muted, #f8fafc);
  overflow: hidden;
}
.doctor-info-accordion__summary{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.doctor-info-accordion__summary::-webkit-details-marker{ display: none; }
.doctor-info-accordion__summary:hover{ background: rgba(0,0,0,.02); }
.doctor-info-accordion__chevron{
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat center;
  background-size: 20px;
  transition: transform .2s ease;
}
.doctor-info-accordion__item[open] .doctor-info-accordion__chevron{ transform: rotate(180deg); }
.doctor-info-accordion__body{
  padding: 0 16px 14px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--text);
}
.doctor-info-accordion__body p{ margin: 0 0 8px; }
.doctor-info-accordion__body p:last-child{ margin-bottom: 0; }
.doctor-info-accordion__body .doctor-info-accordion__ul{
  margin: 8px 0 0;
  padding-left: 20px;
}
.doctor-info-accordion__body .doctor-info-accordion__ul li{ margin-bottom: 4px; }
.doctor-info-accordion__link{ color: var(--blue); text-decoration: none; }
.doctor-info-accordion__link:hover{ text-decoration: underline; }

.review-item{
  padding: 14px 0;
  border-bottom: 1px solid var(--border);
}
.review-item:last-child{ border-bottom: none; }
.review-item__meta{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}
.review-item__meta-left{
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.review-item__date{
  flex-shrink: 0;
  margin-left: auto;
}
.review-item__text{ margin: 0 0 10px; font-size: 14px; line-height: 1.5; }
.review-item__photos{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
.review-item__photo{
  display: block;
  width: 80px;
  height: 80px;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--border);
}
.review-item__photo img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.review-item__photo:hover{ opacity: 0.9; }

/* Единые блоки «О враче» */
.doctor-about__blocks{ display: flex; flex-direction: column; gap: 0; }
.doctor-about__block{
  padding: 18px 0;
  border-bottom: 1px solid var(--border);
}
.doctor-about__block:last-child{ border-bottom: none; padding-bottom: 0; }
.doctor-about__block:first-child{ padding-top: 0; }
.doctor-about__block-label{
  display: block;
  margin-bottom: 10px;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--blue);
  line-height: 1.3;
}
.doctor-about__block-body{ font-size: 14px; line-height: 1.6; color: var(--text); }
.doctor-about__block-body.doctor-about__desc{ margin: 0; }
.doctor-about__services-list{
  margin: 0;
  padding-left: 18px;
  list-style: none;
}
.doctor-about__services-list li{
  position: relative;
  margin-bottom: 8px;
  padding-left: 10px;
  color: var(--text);
}
.doctor-about__services-list li::before{
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--blue);
  opacity: 0.7;
}
.doctor-about__services-list li:last-child{ margin-bottom: 0; }
.doctor-about__spec-group{ margin-bottom: 14px; }
.doctor-about__spec-group:last-child{ margin-bottom: 0; }
.doctor-about__row{ margin: 0 0 10px; font-size: 14px; color: var(--text); }
.doctor-about__row:last-of-type{ margin-bottom: 0; }
.doctor-about__list{ margin: 0 0 8px; padding-left: 20px; color: var(--text); font-size: 14px; line-height: 1.55; }
.doctor-about__list li{ margin-bottom: 4px; }
.doctor-about__list li:last-child{ margin-bottom: 0; }
.doctor-about__role{ margin: 0 0 6px; font-size: 14px; font-weight: 600; color: var(--text); }
.doctor-about__edu-item{ margin: 0 0 12px; font-size: 14px; line-height: 1.5; color: var(--text); }
.doctor-about__edu-item:last-child{ margin-bottom: 0; }

.doctor-diplomas-docs__hint{ margin: 0 0 14px; font-size: 13px; color: var(--muted); }
.doctor-diplomas-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 16px;
}
.doctor-diploma-card{
  display: flex;
  flex-direction: column;
  align-items: stretch;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--bg-muted, #f1f5f9);
  color: inherit;
  text-decoration: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.doctor-diploma-card:hover{
  border-color: var(--blue);
  box-shadow: 0 4px 12px rgba(31,111,235,.12);
  color: inherit;
}
.doctor-diploma-card__placeholder,
.doctor-diploma-card__img{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 3/4;
  min-height: 140px;
  background: rgba(255,255,255,.7);
  color: var(--muted);
}
.doctor-diploma-card__img{
  object-fit: contain;
  padding: 8px;
}
.doctor-diploma-card__caption{
  padding: 10px 12px;
  font-size: 13px;
  font-weight: 600;
  text-align: center;
  color: var(--text);
  background: #fff;
  border-top: 1px solid var(--border);
  line-height: 1.35;
}

/* Doctor: блок «Работает в клиниках» и контакты как в карточке клиники */
.doctor-block__title{ margin: 0 0 12px; font-size: 18px; font-weight: 700; color: var(--text); }
.doctor-clinics-block{
  background: linear-gradient(180deg, rgba(248,250,253,.6) 0%, #fff 100%);
  border: 1px solid rgba(31,111,235,.1);
  box-shadow: 0 1px 12px rgba(31,111,235,.05);
}
.doctor-clinics-block .doctor-block__title{
  margin-bottom: 12px;
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--blue);
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(31,111,235,.15);
}
.doctor-clinics-slider{
  display: flex;
  align-items: stretch;
  gap: 0;
  position: relative;
}
.doctor-clinics-slider__btn{
  flex-shrink: 0;
  width: 40px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
  border-radius: 10px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color .2s, background .2s;
}
.doctor-clinics-slider__btn:hover:not(:disabled){ border-color: var(--blue); background: rgba(31,111,235,.06); }
.doctor-clinics-slider__btn--prev{ margin-right: 12px; }
.doctor-clinics-slider__btn--next{ margin-left: 12px; }
.doctor-clinics-slider__track-wrap{
  flex: 1;
  min-width: 0;
  overflow: hidden;
}
.doctor-clinics-list{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px 24px;
  transition: transform .3s ease;
  align-items: stretch;
}
.doctor-clinics-list .doctor-clinic-card{
  display: flex;
  flex-direction: column;
}
.doctor-clinics-list .doctor-clinic-card .doctor-clinic-card__inner{ flex: 1; }
.doctor-clinics-list .doctor-clinic-card:nth-child(odd){
  border-right: 1px solid var(--border);
  padding-right: 24px;
  margin-right: -1px;
}
.doctor-clinics-list--slider{
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  transition: transform .3s ease;
}
.doctor-clinics-list--slider .doctor-clinic-card{
  margin-right: 0;
  padding-right: 20px;
  border-right: none;
}
.doctor-clinics-list--slider .doctor-clinic-card:nth-child(2n){ border-left: 1px solid var(--border); padding-left: 24px; }
.doctor-clinic-card{
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: #fff;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.doctor-clinic-card__inner{
  display: flex;
  flex-direction: column;
  gap: 0;
  flex: 1;
  min-height: 0;
}
.doctor-clinic-card__info{
  min-width: 0;
  flex: 1 1 auto;
  padding-bottom: 18px;
}
.doctor-clinic-card__head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
  min-width: 0;
}
.doctor-clinic-card__name{
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.35;
  word-wrap: break-word;
  flex: 1;
  min-width: 0;
  overflow: visible;
  white-space: normal;
}
.doctor-clinic-card__name a{
  color: var(--text);
  text-decoration: none;
}
.doctor-clinic-card__name a:hover{
  color: var(--blue);
  text-decoration: underline;
}
.doctor-clinic-card__rating{
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex-shrink: 0;
  padding: 4px 8px;
  border-radius: 8px;
  background: rgba(234,179,8,.1);
  font-size: 12px;
}
.doctor-clinic-card__rating .stars{
  display: inline-flex;
  align-items: center;
  gap: 3px;
  color: #eab308;
}
.doctor-clinic-card__rating .stars strong{ color: var(--text); font-size: 13px; }
.doctor-clinic-card__rating .help,
.doctor-clinic-card__rating .doctor-clinic-card__rating-label{ color: var(--muted); font-size: 11px; white-space: nowrap; }
.doctor-clinic-card__price{
  margin: 0 0 10px;
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
}
.doctor-clinic-card__address{
  margin: 0 0 10px;
  font-size: 13px;
  color: var(--muted);
  line-height: 1.45;
  word-wrap: break-word;
}
.doctor-clinic-card__metro{
  margin: 0 0 12px;
  padding-left: 18px;
  list-style: none;
  font-size: 13px;
  color: var(--muted);
  line-height: 1.5;
}
.doctor-clinic-card__metro li{
  position: relative;
  margin-bottom: 4px;
}
.doctor-clinic-card__metro li::before{
  content: "";
  position: absolute;
  left: -14px;
  top: 0.5em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #22c55e;
}
.doctor-clinic-card__metro--line{
  margin: 0 0 12px;
  font-size: 13px;
  color: var(--muted);
  line-height: 1.5;
}
.doctor-clinic-card__metro-item{
  display: inline;
  position: relative;
  padding-left: 14px;
  margin-right: 2px;
}
.doctor-clinic-card__metro-item::before{
  content: "";
  position: absolute;
  left: 0;
  top: 0.45em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--muted);
}
.doctor-clinic-card__metro-item--ring::before{ background: #ed8537; }
.doctor-clinic-card__metro-item--green::before{ background: #4cb84c; }
.doctor-clinic-card__metro-item--blue::before{ background: #0078bf; }
.doctor-clinic-card__metro-item--red::before{ background: #e53935; }
.doctor-clinic-card__metro-item--lyublino::before{ background: #00bcd4; }
.doctor-clinic-card__metro-sep{
  margin: 0 0.35em;
  color: var(--muted);
  font-weight: 300;
}
.doctor-clinic-card__phone-wrap{
  margin-top: 8px;
  font-size: 14px;
}
.doctor-clinic-card__phone-wrap .clinic-card__phone{
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.doctor-clinic-card__phone-wrap .clinic__contact-btn--phone{
  padding: 0;
  background: none;
  border: none;
  color: var(--blue);
  font-weight: 600;
  cursor: pointer;
  font-size: 14px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.doctor-clinic-card__cta{
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}
.doctor-clinic-card__msg{
  margin: 0 0 4px;
  font-size: 13px;
  color: var(--muted);
  line-height: 1.5;
  word-wrap: break-word;
}
.doctor-clinic-card__cta .btn{
  width: 100%;
  justify-content: center;
}
.doctor-clinic-card__cta .btn--sm{
  padding: 8px 14px;
  font-size: 13px;
}
@media (max-width: 768px){
  .doctor-clinics-list{
    grid-template-columns: 1fr;
  }
  .doctor-clinics-list .doctor-clinic-card:nth-child(odd){
    border-right: none;
    padding-right: 20px;
    margin-right: 0;
  }
  .doctor-clinic-card__cta{ min-width: 0; }
  .doctor-clinics-slider__btn--prev,
  .doctor-clinics-slider__btn--next{ margin-left: 0; margin-right: 0; }
}
.doctor-clinics-list__link{
  display: inline-flex;
  align-items: center;
  padding: 10px 18px;
  border-radius: 12px;
  border: 1px solid rgba(31,111,235,.25);
  background: rgba(255,255,255,.9);
  color: var(--blue);
  font-weight: 700;
  font-size: 14px;
  text-decoration: none;
  transition: border-color .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
}
.doctor-clinics-list__link:hover{
  border-color: var(--blue);
  background: rgba(31,111,235,.08);
  box-shadow: 0 2px 8px rgba(31,111,235,.12);
  text-decoration: none;
}

.doctor-contacts__intro{ margin: 0 0 12px; font-size: 13px; color: var(--muted); }
.doctor-contacts--like-clinic{
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  gap: 10px;
}
.doctor-contact__item{
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  line-height: 1.4;
  color: var(--text);
}
.doctor-contact__icon{
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--muted);
}
.doctor-contact__icon svg{
  width: 18px;
  height: 18px;
}
.doctor-contact__link{
  color: var(--blue);
  font-weight: 700;
  text-decoration: none;
}
.doctor-contact__link:hover{ text-decoration: underline; }
.doctor-contact__link--phone{ font-size: 15px; }
button.doctor-contact__link{
  border: none;
  background: none;
  cursor: pointer;
  font: inherit;
  padding: 0;
}
.doctor-contact__link.is-revealed{ cursor: pointer; }

/* Modal city picker — выше карты Leaflet (карта использует z-index до ~700) */
.modal{
  position:fixed;
  inset:0;
  background: rgba(15,27,45,.38);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:1100;
}
.modal.is-open{
  display:flex;
}
.modal__dialog{
  width:min(480px, calc(100% - 32px));
  background: rgba(255,255,255,.98);
  border-radius: 20px;
  box-shadow: 0 18px 40px rgba(15,27,45,.35);
  padding:18px 20px 18px;
}
.modal__dialog--sm{ width: min(380px, calc(100% - 32px)); }
.modal__dialog--md{ width: min(480px, calc(100% - 32px)); }
.modal--contact .modal__dialog{ position: relative; }
.modal--image .modal__dialog--image{
  position: relative;
  max-width: min(96vw, 1280px);
  padding: 0;
  overflow: hidden;
  border-radius: 12px;
}
.review-image-modal__img{
  display: block;
  max-width: 100%;
  max-height: 90vh;
  width: auto;
  height: auto;
  object-fit: contain;
  vertical-align: middle;
}
/* Запрет перетаскивания и выделения картинок по всему сайту */
img{
  -webkit-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
  -khtml-user-drag: none;
  -moz-user-drag: none;
  -ms-user-drag: none;
}
img[data-image-lightbox-src],
img[data-review-image-src]{ pointer-events: auto; }
/* Курсор «указатель» у фото/документов, открывающихся в лайтбоксе */
.gallery__item img,
.clinic-gallery img,
.doctor-hero__photo-wrap img,
.clinic-license img,
.user-review__media-link img,
.admin-review-photo img,
.doctor-diploma-card img,
.clinic-hero__logo-img,
.service-card__blog-img-wrap img{
  cursor: pointer;
}
.modal__close-btn{
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  width: 40px;
  height: 40px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(0,0,0,.5);
  color: #fff;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s ease;
}
.modal__close-btn:hover{
  background: rgba(0,0,0,.75);
}
.booking-clinic-name{ font-weight: 800; font-size: 16px; margin: 0 0 4px; color: var(--text); }
.booking-form{ display: flex; flex-direction: column; gap: 10px; }
.booking-form .field{ margin: 0; }
.booking-form .label{ font-size: 13px; font-weight: 600; margin-bottom: 4px; display: block; }
.required{ color: var(--red, #b91c1c); }
.booking-form textarea.input{ resize: vertical; min-height: 56px; }
.modal__header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:10px;
}
.modal__title{
  margin:0;
  font-size:18px;
}
.modal__body{
  display:grid;
  gap:10px;
}

/* Модалка «Записаться в клинику» (сравнение) — в стиле тёмного блока подбора на главной */
.modal--booking-dark .modal__dialog{
  position: relative;
  overflow: hidden;
  width: min(560px, calc(100% - 32px));
  background: linear-gradient(135deg, #1e3a5f 0%, #2d4a6f 100%);
  border: none;
  box-shadow: 0 18px 48px rgba(0,0,0,.35);
  padding: 22px 24px 24px;
}
.modal--booking-dark .modal__form-row{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 2px;
}
.modal--booking-dark .modal__form-row .form__row{ margin: 0; min-width: 0; }
.modal--booking-dark .modal__form-row .input{ min-width: 0; width: 100%; box-sizing: border-box; }
.modal--booking-dark .modal__title{
  color: rgba(255,255,255,.95);
  font-size: 20px;
  font-weight: 700;
}
.modal--booking-dark .modal__header .btn--ghost.modal__close--light{
  color: rgba(255,255,255,.9);
  background: transparent;
}
.modal--booking-dark .modal__header .btn--ghost.modal__close--light:hover{
  color: #fff;
  background: rgba(255,255,255,.15);
}
.modal--booking-dark .compare-booking-clinic-name{
  color: rgba(255,255,255,.9);
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 6px;
}
.modal--booking-dark .modal__body .label{
  color: rgba(255,255,255,.9);
}
.modal--booking-dark .modal__body .label .required{ color: rgba(255,200,200,.9); }
.modal--booking-dark .modal__body .input{
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.3);
  color: #fff;
}
.modal--booking-dark .modal__body .input::placeholder{ color: rgba(255,255,255,.5); }
.modal--booking-dark .modal__body .btn--primary{
  background: #fff;
  color: #1e3a5f;
  border: none;
  font-weight: 600;
}
.modal--booking-dark .modal__body .btn--primary:hover{ background: #e2e8f0; color: #1e3a5f; }

/* Декоративные бьющиеся сердца в модалке записи */
.modal--booking-dark .modal__deco--hearts{
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
.modal--booking-dark .modal__header,
.modal--booking-dark .modal__body{ position: relative; z-index: 1; }
@keyframes modal-heartbeat-1 {
  0%, 55%, 100%{ transform: rotate(-10deg) scale(1); filter: drop-shadow(0 0 6px rgba(225,70,70,.25)) brightness(1); opacity: .88; }
  15%{ transform: rotate(-10deg) scale(1.1); filter: drop-shadow(0 0 10px rgba(225,70,70,.4)) brightness(1.35); opacity: 1; }
  28%{ transform: rotate(-10deg) scale(1); filter: drop-shadow(0 0 6px rgba(225,70,70,.25)) brightness(1); opacity: .88; }
  40%{ transform: rotate(-10deg) scale(1.06); filter: drop-shadow(0 0 8px rgba(225,70,70,.35)) brightness(1.2); opacity: .96; }
}
@keyframes modal-heartbeat-2 {
  0%, 55%, 100%{ transform: rotate(8deg) scale(1); filter: drop-shadow(0 0 6px rgba(225,70,70,.25)) brightness(1); opacity: .88; }
  15%{ transform: rotate(8deg) scale(1.1); filter: drop-shadow(0 0 10px rgba(225,70,70,.4)) brightness(1.35); opacity: 1; }
  28%{ transform: rotate(8deg) scale(1); filter: drop-shadow(0 0 6px rgba(225,70,70,.25)) brightness(1); opacity: .88; }
  40%{ transform: rotate(8deg) scale(1.06); filter: drop-shadow(0 0 8px rgba(225,70,70,.35)) brightness(1.2); opacity: .96; }
}
.modal--booking-dark .modal__heart{
  position: absolute;
  color: rgba(225, 70, 70, 0.78);
  filter: drop-shadow(0 0 6px rgba(225, 70, 70, 0.25));
  animation-duration: 1.5s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}
/* Маленькое сердце сверху слева */
.modal--booking-dark .modal__heart--1{
  width: 26px;
  height: 26px;
  left: 4%;
  top: 2%;
  animation-name: modal-heartbeat-1;
}
/* Справа у правого края, чуть больше кнопки «Отправить заявку» */
.modal--booking-dark .modal__heart--2{
  width: 52px;
  height: 52px;
  right: 3%;
  bottom: 8%;
  top: auto;
  animation-name: modal-heartbeat-2;
  animation-delay: 0.2s;
}
@media (max-width: 480px){
  .modal--booking-dark .modal__form-row{ grid-template-columns: 1fr; }
}

/* Модалка выбора города: поиск + многоколоночный список */
.modal--city .modal__dialog--city {
  width: min(720px, calc(100% - 32px));
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  padding: 20px 24px 24px;
}
.modal__header--city {
  margin-bottom: 12px;
}
.modal__title--city {
  font-size: 22px;
  font-weight: 700;
}
.modal__close-btn--city {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 36px;
  height: 36px;
  font-size: 28px;
  line-height: 1;
}
.modal__body--city {
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow: hidden;
}
.city-modal__search-wrap {
  position: relative;
}
.city-modal__search {
  width: 100%;
  padding: 12px 44px 12px 14px;
  border-radius: 12px;
  font-size: 15px;
  background: rgba(241, 245, 249, 0.9);
  border: 1px solid var(--border, #e2e8f0);
}
.city-modal__search:focus {
  outline: none;
  border-color: rgba(31, 111, 235, 0.5);
  background: #fff;
}
.city-modal__search-icon {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23475569'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z'/%3E%3C/svg%3E") center/contain no-repeat;
  pointer-events: none;
}
.city-modal__note {
  margin: 0;
  font-size: 13px;
  color: var(--muted, #64748b);
}
.city-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px 16px;
  overflow-y: auto;
  max-height: 320px;
  padding-right: 4px;
}
.city-list button {
  text-align: left;
  padding: 8px 10px;
  border: none;
  border-radius: 8px;
  background: transparent;
  cursor: pointer;
  font-size: 14px;
  color: var(--text, #0f1b2d);
  transition: background .15s ease;
}
.city-list button:hover {
  background: rgba(241, 245, 249, 0.9);
}
.city-list button.is-hidden {
  display: none;
}
.city-modal__footer {
  margin: 0;
  padding-top: 8px;
  border-top: 1px solid var(--border, #e2e8f0);
}
.city-modal__map-link {
  font-size: 14px;
}

/* Маленькое окно при первом заходе: привязано к городу в шапке, экран не блокирует */
.modal--city-confirm {
  background: transparent;
  pointer-events: none;
  align-items: flex-start;
  justify-content: flex-start;
}
.modal--city-confirm .modal__dialog {
  pointer-events: auto;
  position: fixed;
  margin: 0;
  width: min(320px, calc(100vw - 24px));
  padding: 16px 20px;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(15, 27, 45, 0.15);
  background: #fff;
}
.modal--city-confirm .modal__title {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 8px;
}
.city-confirm__text {
  margin: 0 0 14px;
  font-size: 14px;
  color: var(--text);
  line-height: 1.4;
}
.city-confirm__actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: center;
  width: 100%;
}
.city-confirm__actions .btn {
  flex: 1 1 120px;
  max-width: 200px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  box-sizing: border-box;
}

/* Согласие на куки: справа внизу, экран не блокирует */
.modal--cookie {
  background: transparent;
  pointer-events: none;
  align-items: flex-end;
  justify-content: flex-end;
}
.modal--cookie .modal__dialog--cookie {
  pointer-events: auto;
  margin: 0 20px 20px 0;
  max-width: min(380px, calc(100vw - 40px));
  background: #1e293b;
  color: #f1f5f9;
  padding: 20px 24px;
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
}
.modal__title--cookie {
  color: #fff;
  font-size: 20px;
  margin: 0 0 12px;
}
.cookie-consent__text {
  margin: 0 0 20px;
  font-size: 14px;
  color: #94a3b8;
  line-height: 1.5;
}
.cookie-consent__link {
  color: #60a5fa;
  text-decoration: underline;
}
.cookie-consent__link:hover {
  color: #93c5fd;
}
.cookie-consent__actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.cookie-consent__btn {
  padding: 10px 20px;
  font-size: 15px;
}
.cookie-consent__btn--decline {
  background: #fff;
  color: #1e293b;
  border: 1px solid #cbd5e1;
}
.cookie-consent__btn--decline:hover {
  background: #f1f5f9;
}
.cookie-consent__settings {
  margin-left: auto;
  padding: 8px;
  border: none;
  background: transparent;
  color: #94a3b8;
  cursor: pointer;
  border-radius: 8px;
}
.cookie-consent__settings:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
}

/* Legacy: старый класс для совместимости */
.city-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.city-grid button {
  border-radius: 999px;
  border: 1px solid var(--border);
  padding: 8px 10px;
  background: rgba(246, 249, 255, .9);
  cursor: pointer;
  font-size: 13px;
  font-weight: 650;
}
.city-grid button:hover {
  border-color: rgba(31, 111, 235, .4);
  background: rgba(255, 255, 255, 1);
}

/* Cost constructor: main CTA bar */
.cost-constructor__main-cta{
  margin-top: 24px;
  padding: 20px 24px;
  background: rgba(255,255,255,.7);
  border: 1px solid rgba(11,78,166,.2);
  border-radius: 16px;
  text-align: center;
}
.cost-constructor__main-cta-text{
  margin: 0 0 12px;
  font-size: 15px;
  color: var(--muted);
}
.cost-constructor__main-cta-btn{
  display: inline-block;
  min-width: 280px;
  font-size: 16px;
  font-weight: 600;
  padding: 14px 24px;
  box-shadow: 0 4px 14px rgba(11,78,166,.25);
}
.cost-constructor__main-cta-btn:hover{
  box-shadow: 0 6px 20px rgba(11,78,166,.35);
}

/* Constructor lead modal form */
.constructor-lead-dialog{
  width: min(420px, calc(100% - 32px));
}
.constructor-lead-summary{
  margin: 0 0 16px;
  font-size: 14px;
  color: var(--muted);
}
.constructor-lead-form{
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.constructor-lead-option{
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.constructor-lead-check{
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
}
.constructor-lead-check input{
  margin: 0;
  accent-color: #0b4ea6;
}
.constructor-lead-field{
  margin-left: 26px;
}
.constructor-lead-field .input{
  width: 100%;
}
.constructor-lead-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 8px;
}
.constructor-lead-skip{
  font-size: 13px;
}

/* Личный кабинет клиники — вкладки */
.acc-tabs{
  display: flex;
  flex-wrap: wrap;
  gap: 4px 0;
  margin-bottom: 0;
  border-bottom: 2px solid var(--border);
}
.acc-tabs__btn{
  padding: 10px 16px;
  font-size: 14px;
  font-weight: 600;
  color: var(--muted);
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  cursor: pointer;
  transition: color .2s, border-color .2s;
}
.acc-tabs__btn:hover{ color: var(--text); }
.acc-tabs__btn.active{
  color: var(--blue);
  border-bottom-color: var(--blue);
}
.acc-panels{ margin-top: 0; }
.acc-panel{
  display: none;
  padding: 18px;
}
.acc-panel.active{ display: block; }
.acc-panel[hidden]{ display: none !important; }
.acc-status{ margin-left: 10px; }
.acc-service-row{
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border);
}
.acc-service-row__head{
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.acc-service-provided-wrap{ margin: 0; }
.acc-service-name{ font-weight: 600; min-width: 0; }
.acc-service-fields{
  display: flex;
  align-items: center;
  gap: 10px 16px;
  flex-wrap: wrap;
  margin-left: 24px;
  padding: 8px 0;
}
.acc-service-fields[hidden]{ display: none !important; }

/* Покупка лидов: карточки пакетов и бейджи скидок */
.acc-paid-leads-options{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}
.acc-paid-option{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 16px 12px;
  border: 2px solid var(--border);
  border-radius: 12px;
  cursor: pointer;
  transition: border-color .2s, background-color .2s, box-shadow .2s;
  position: relative;
}
.acc-paid-option:hover{
  border-color: var(--blue, #2563eb);
  background: rgba(37, 99, 235, .04);
}
.acc-paid-option:has(input:checked){
  border-color: var(--blue, #2563eb);
  background: rgba(37, 99, 235, .08);
  box-shadow: 0 0 0 1px var(--blue, #2563eb);
}
.acc-paid-option input{ margin: 0; accent-color: var(--blue, #2563eb); }
.acc-paid-option__count{
  font-weight: 700;
  font-size: 15px;
  color: var(--text);
}
.acc-paid-leads-pack-price{
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
}
.acc-paid-leads-pack-per{
  font-size: 12px;
  color: var(--muted);
}
.acc-paid-leads-pack-badge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 22px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 700;
  color: var(--success, #16a34a);
  background: rgba(22, 163, 74, .12);
  border-radius: 999px;
  border: 1px solid rgba(22, 163, 74, .35);
}
.acc-paid-leads-pack-badge:empty{ display: none; }

/* Форма обращений в техподдержку */
.acc-support-form{ display: flex; flex-direction: column; gap: 20px; }
.acc-support-form__top{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px 24px;
}
@media (max-width: 560px){ .acc-support-form__top{ grid-template-columns: 1fr; } }
.acc-support-form__top .field{ margin-bottom: 0; }
.acc-support-form__top .input{ width: 100%; max-width: 100%; }
.acc-support-form__file-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 6px;
}
.acc-support-form__file-row input[type="file"]{
  position: absolute;
  width: 0.1px;
  height: 0.1px;
  opacity: 0;
  overflow: hidden;
}
.acc-support-form__file-row .help{ flex: 1; min-width: 0; }
.acc-support-form__message{ width: 100%; }
.acc-support-form__message .input{
  width: 100%;
  max-width: 100%;
  resize: vertical;
  min-height: 120px;
}
.acc-support-form__actions{ display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }

.acc-reviews-list{ display: flex; flex-direction: column; gap: 16px; }
.acc-review-item{
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--bg-muted, #f8fafc);
}
.acc-review-item__head{ margin-bottom: 6px; }
.acc-review-item__meta{ font-size: 13px; color: var(--muted); margin-bottom: 0; }
.acc-review-item__status{ font-size: 11px; font-weight: 700; }
.acc-review-status--unanswered{ background: rgba(245,158,11,.15); color: var(--warning, #b45309); border-color: var(--warning, #f59e0b); }
.acc-review-status--answered{ background: rgba(15,118,110,.12); color: var(--success); border-color: var(--success); }
.acc-reviews-ratings-summary .acc-reviews-summary-item{ display: inline-flex; align-items: center; gap: 8px; }
.acc-reviews-ratings-summary .stars{ display: inline-flex; align-items: center; gap: 2px; }
.acc-reviews-ratings-summary .stars svg{ width: 14px; height: 14px; color: #f59e0b; }
.acc-reviews-ratings-summary .stars strong{ font-size: 14px; color: var(--text); margin-left: 2px; }
.acc-review-item__rating{ font-size: 13px; color: var(--muted); margin: 6px 0; }
.acc-review-item__rating .acc-review-item__stars{ display: inline-flex; align-items: center; gap: 2px; }
.acc-review-item__rating .acc-review-item__stars svg{ width: 14px; height: 14px; color: #f59e0b; }
.acc-review-item__rating .acc-review-item__stars strong{ font-size: 14px; color: var(--text); margin-left: 4px; }
.acc-review-item__rating .acc-review-item__rating-ext{ font-size: 12px; opacity: .9; }
.acc-review-item__doctor{ font-size: 12px; color: var(--blue); margin-bottom: 8px; }
.acc-review-item__photos{ display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.acc-review-item__photo{ width: 72px; height: 72px; object-fit: cover; border-radius: 8px; border: 1px solid var(--border); }
.acc-review-item__text{ margin: 0 0 12px; font-size: 14px; line-height: 1.5; }
.acc-review-item__reply-label{ font-size: 12px; font-weight: 700; color: var(--muted); margin-bottom: 6px; display: block; }
.acc-review-item .input{ min-height: 80px; font-family: inherit; }

.acc-stat-days-badge{
  display: inline-block;
  padding: 6px 14px;
  font-size: 14px;
  font-weight: 600;
  color: var(--primary, #2563eb);
  background: rgba(37, 99, 235, .1);
  border: 1px solid rgba(37, 99, 235, .25);
  border-radius: 999px;
}

.acc-documents-list{ display: flex; flex-direction: column; gap: 12px; }
.acc-document-item{ padding: 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-muted, #f8fafc); }
.acc-document-item__row .acc-document-title{ min-width: 0; }
.clinic-documents-list__link{ font-weight: 500; color: var(--blue); }
.clinic-documents-list__link:hover{ text-decoration: underline; }

.acc-placeholder{
  padding: 20px;
  background: var(--bg-muted, #f8fafc);
  border-radius: 12px;
  border: 1px dashed var(--border);
}
.acc-placeholder ul{ color: var(--muted); }

/* Кабинет клиники: фотографии — компактная сетка */
.acc-photos-field{ margin-top: 16px; }
.acc-photos-hint{ margin-bottom: 10px; font-size: 13px; }
.acc-photo-groups{
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px 20px;
}
@media (min-width: 720px){
  .acc-photo-groups{ grid-template-columns: 1fr 1fr; }
}
.acc-photo-group{
  padding: 10px 12px;
  background: var(--bg-muted, #f8fafc);
  border-radius: 10px;
  border: 1px solid var(--border);
  min-width: 0;
}
.acc-photo-group__row{
  display: flex;
  align-items: center;
  gap: 8px 12px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.acc-photo-group__label{
  margin: 0;
  flex: 0 0 auto;
  min-width: 52px;
  font-size: 13px;
}
.acc-photo-group__row .acc-photo-group-name{
  flex: 1 1 140px;
  min-width: 0;
  max-width: 220px;
}
.acc-photo-group-thumbs{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.acc-photo-thumb-wrap{
  position: relative;
  display: inline-block;
  flex-shrink: 0;
}
.acc-photo-thumb-wrap img{
  width: 56px;
  height: 42px;
  object-fit: cover;
  border-radius: 6px;
  border: 1px solid var(--border);
  display: block;
}
.acc-photo-thumb-remove{
  position: absolute;
  top: 2px;
  right: 2px;
  padding: 2px 6px;
  font-size: 11px;
  min-width: 0;
  line-height: 1.2;
}

/* Список отзывов (карточка клиники и страница врача) */
.user-reviews-list .user-review{
  padding: 14px 0;
  border-bottom: 1px solid var(--border);
}
.user-reviews-list .user-review:last-child{ border-bottom: none; }
.user-reviews-list .user-review__meta{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-bottom: 8px;
}
.user-reviews-list .user-review__text{
  margin: 0 0 8px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--text);
}
.user-reviews-list .user-review__text:last-child{ margin-bottom: 0; }

/* Оценка в отзыве (звёзды из 5) */
.user-review__rating{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  color: var(--muted);
  font-weight: 600;
}
.user-review__rating-stars{
  display: inline-flex;
  align-items: center;
  gap: 1px;
  color: #eab308;
}
.user-review__rating-stars .user-review__star{
  display: block;
}
.user-review__rating[data-rating="4"] .user-review__star:nth-child(n+5),
.user-review__rating[data-rating="3"] .user-review__star:nth-child(n+4),
.user-review__rating[data-rating="2"] .user-review__star:nth-child(n+3),
.user-review__rating[data-rating="1"] .user-review__star:nth-child(n+2){
  opacity: 0.3;
  color: var(--border);
}
.user-review__rating-value{
  display: none;
}
.user-review__meta-right{
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

/* Фото в отзыве пациента — компактная галерея миниатюр */
.user-review__media{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
.user-review__media-link{
  display: block;
  flex-shrink: 0;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--border);
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
  transition: box-shadow .2s ease, transform .15s ease;
}
.user-review__media-link:hover{
  box-shadow: 0 4px 12px rgba(0,0,0,.12);
  transform: translateY(-2px);
}
.user-review__media-link img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  vertical-align: middle;
}
.user-review__media-link{
  width: 100px;
  height: 72px;
}
@media (min-width: 400px){
  .user-review__media-link{ width: 112px; height: 80px; }
}

/* Ответ клиники на отзыв (на карточке клиники) */
.user-review__clinic-reply{
  margin-top: 12px;
  padding: 12px 14px;
  background: rgba(31,111,235,.06);
  border-left: 3px solid var(--blue);
  border-radius: 0 8px 8px 0;
  font-size: 13px;
  line-height: 1.5;
}
.user-review__clinic-reply-label{
  font-size: 11px;
  font-weight: 700;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-bottom: 4px;
}

/* Блок кнопок отзывов: одинаковый размер */
.reviews-actions{
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 12px;
  margin-top: 12px;
}
.reviews-actions .btn,
.reviews-actions .review-form-trigger{
  flex: 1 1 0;
  min-width: 140px;
  justify-content: center;
  box-sizing: border-box;
}
/* Кнопка «Оставить отзыв» (звёзды) */
.review-form-trigger{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm, 8px);
  background: #fff;
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  transition: background .15s, border-color .15s;
}
.review-form-trigger:hover{ background: rgba(31,111,235,.06); border-color: var(--blue); }
.review-form-trigger__stars{ display: inline-flex; gap: 1px; color: #eab308; }
.review-form-trigger__stars svg{ display: block; }
.review-form-trigger__label{ white-space: nowrap; }

/* Форма отзыва компактная */
.review-form-wrap{
  padding: 8px 0 0;
  border-top: 1px solid var(--border);
  margin-top: 8px;
}
.review-form__title{ margin: 0 0 6px; font-size: 14px; }
.review-form--compact .review-form__grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 12px;
  margin-bottom: 4px;
  align-items: start;
}
@media (max-width: 640px){
  .review-form--compact .review-form__grid{ grid-template-columns: 1fr; }
}
.review-form--compact .review-form__col{
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}
.review-form--compact .review-form__col--left .review-form__criteria--compact{ margin-bottom: 2px; }
.review-form--compact .review-form__col--right{ gap: 4px; }
.review-form--compact .review-form__row{
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  margin-bottom: 4px;
}
.review-form--compact .review-form__row .field{ flex: 1 1 140px; min-width: 0; }
.review-form--compact .review-form__row .label{ margin-bottom: 2px; }
.review-form--compact .review-form__field-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
  margin-bottom: 4px;
}
.review-form--compact .review-form__field-row .label{ margin: 0; margin-right: 2px; font-size: 12px; }
.review-form--compact .review-form__doctor-block{
  margin-bottom: 0;
  padding: 6px 8px;
  background: rgba(31,111,235,.06);
  border-left: 3px solid var(--blue);
  border-radius: 0 6px 6px 0;
  flex-shrink: 0;
}
.review-form--compact .review-form__doctor-title{
  margin: 0 0 2px;
  font-size: 12px;
  font-weight: 700;
  color: var(--blue);
}
.review-form--compact .review-form__doctor-row{ flex-wrap: wrap; gap: 4px 6px; }
.review-form--compact .review-form__criteria--compact{ gap: 0; margin-bottom: 2px; }
.review-form--compact .review-form__criteria--compact .review-form__criterion{ gap: 2px 6px; padding: 1px 0; }
.review-form--compact .review-form__criteria--compact .review-form__criterion-label{ font-size: 11px; min-width: 0; max-width: 140px; line-height: 1.3; }
.review-form--compact .review-form__text-wrap{
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.review-form--compact .review-form__text-wrap .label{ margin-bottom: 1px; font-size: 12px; }
.review-form--compact .review-form__text-wrap textarea{ min-height: 60px; resize: vertical; padding: 6px 8px; font-size: 13px; line-height: 1.4; }
.review-form--compact .review-form__files-wrap{ margin-top: 0; }
.review-form--compact .review-form__files-wrap .label{ font-size: 12px; margin-bottom: 2px; }
.review-form--compact .review-form__file-box{
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
  padding: 4px 6px;
  border: 1px dashed var(--border);
  border-radius: 6px;
  background: rgba(0,0,0,.02);
}
.review-form--compact .review-form__file-input{
  font-size: 11px;
  padding: 0;
  border: none;
  background: none;
  width: auto;
  max-width: 100%;
}
.review-form--compact .review-form__file-hint{
  font-size: 10px;
  color: var(--muted);
}
.review-form--compact .review-form__submit-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
}
.review-form--compact .review-form__submit-row button[type="submit"]{
  margin-left: auto;
}
.input--sm{ font-size: 13px; padding: 8px 10px; max-width: 100%; }
.review-form--compact .input--sm{ padding: 6px 8px; }
.review-form--compact .star-rating--sm .star-rating__star{ padding: 0; }
.review-form--compact .star-rating--sm .star-rating__star svg{ width: 16px; height: 16px; }
.review-form--compact .review-form__rating-hint{ font-size: 11px; margin-top: 0; line-height: 1.2; }
.review-form--compact .star-rating--criterion .star-rating__star svg{ width: 16px; height: 16px; }
.review-form--compact .star-rating--doctor .star-rating__star svg{ width: 16px; height: 16px; }

/* Форма отзыва — стиль как на скрине (карточка) */
.review-form--card .review-form__title{
  margin: 0 0 16px;
  font-size: 18px;
  font-weight: 800;
  color: var(--text);
}
.review-form--card .review-form__top-row{
  display: flex;
  flex-wrap: wrap;
  gap: 20px 24px;
  margin-bottom: 20px;
  align-items: flex-end;
}
.review-form--card .review-form__top-row .field{
  margin: 0;
}
.review-form--card .review-form__top-row .field:first-child,
.review-form--card .review-form__top-row .field:nth-child(2){
  flex: 1 1 180px;
  min-width: 0;
}
.review-form--card .review-form__clinic-rating-wrap{
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.review-form--card .review-form__clinic-rating-wrap .label{
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
}
.review-form--card .review-form__rating-hint{
  margin: 0;
  font-size: 12px;
  color: var(--muted);
}
.review-form--card .review-form__text-section{
  margin-bottom: 20px;
}
.review-form--card .review-form__text-section .label{
  display: block;
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
}
.review-form--card .review-form__textarea{
  width: 100%;
  min-height: 4.5em;
  padding: 12px 14px;
  font-size: 14px;
  line-height: 1.5;
  border: 1px solid var(--border);
  border-radius: 10px;
  resize: vertical;
}
.review-form--card .review-form__mid-grid{
  display: grid;
  grid-template-columns: 1fr minmax(260px, 380px);
  gap: 20px 24px;
  margin-bottom: 20px;
  align-items: start;
}
@media (max-width: 640px){
  .review-form--card .review-form__mid-grid{ grid-template-columns: 1fr; }
}
.review-form--card .review-form__criteria{
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.review-form--card .review-form__criterion{
  display: flex;
  align-items: center;
  gap: 12px 16px;
  flex-wrap: nowrap;
  width: 100%;
}
.review-form--card .review-form__criterion-label{
  flex: 1;
  font-size: 13px;
  color: var(--text);
  min-width: 0;
}
.review-form--card .review-form__criterion .star-rating{
  flex-shrink: 0;
  margin-left: auto;
}
.review-form--card .review-form__doctor-block{
  padding: 14px 16px;
  background: rgba(31,111,235,.08);
  border-radius: 12px;
  border: 1px solid rgba(31,111,235,.15);
}
.review-form--card .review-form__doctor-title{
  margin: 0 0 10px;
  font-size: 14px;
  font-weight: 700;
  color: var(--blue);
}
.review-form--card .review-form__doctor-row{
  display: flex;
  align-items: center;
  gap: 10px 12px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.review-form--card .review-form__doctor-row:last-child{ margin-bottom: 0; }
.review-form--card .review-form__doctor-block .label{
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  flex-shrink: 0;
}
.review-form--card .review-form__doctor-block .input{
  flex: 1 1 160px;
  min-width: 0;
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 13px;
}
.review-form--card .review-form__bottom-row{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px 20px;
}
.review-form--card .review-form__files-wrap .label{
  display: block;
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
}
.review-form--card .review-form__file-inline{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
}
.review-form--card .review-form__file-input{
  position: absolute;
  width: 0.1px;
  height: 0.1px;
  opacity: 0;
  overflow: hidden;
  z-index: -1;
}
.review-form--card .review-form__file-btn{
  display: inline-block;
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  cursor: pointer;
  transition: border-color .2s, background .2s;
}
.review-form--card .review-form__file-btn:hover{
  border-color: var(--muted);
  background: var(--bg-muted, #f8fafc);
}
.review-form--card .review-form__file-status{
  font-size: 13px;
  color: var(--muted);
}
.review-form--card .review-form__file-hint{
  font-size: 12px;
  color: var(--muted);
}
.review-form--card .review-form__submit-row{
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
}
.review-form--card .review-form__submit-row .btn--primary{
  padding: 10px 20px;
  font-size: 15px;
  font-weight: 600;
  border-radius: 10px;
}
.review-form--card .review-form__submit-row .btn--ghost{
  padding: 10px 18px;
  font-size: 14px;
  border: 1px solid var(--border);
  border-radius: 10px;
}
.review-form--card .input{
  padding: 10px 12px;
  font-size: 14px;
  border: 1px solid var(--border);
  border-radius: 8px;
}
.review-form--card .star-rating__star{
  padding: 2px;
  color: var(--border);
}
.review-form--card .star-rating__star svg{
  width: 20px;
  height: 20px;
}
.review-form--card .star-rating[data-value="1"] .star-rating__star:nth-child(1),
.review-form--card .star-rating[data-value="2"] .star-rating__star:nth-child(1),
.review-form--card .star-rating[data-value="2"] .star-rating__star:nth-child(2),
.review-form--card .star-rating[data-value="3"] .star-rating__star:nth-child(1),
.review-form--card .star-rating[data-value="3"] .star-rating__star:nth-child(2),
.review-form--card .star-rating[data-value="3"] .star-rating__star:nth-child(3),
.review-form--card .star-rating[data-value="4"] .star-rating__star:nth-child(1),
.review-form--card .star-rating[data-value="4"] .star-rating__star:nth-child(2),
.review-form--card .star-rating[data-value="4"] .star-rating__star:nth-child(3),
.review-form--card .star-rating[data-value="4"] .star-rating__star:nth-child(4),
.review-form--card .star-rating[data-value="5"] .star-rating__star{ color: #eab308; }

/* Шапка блока отзывов: заголовок слева, рейтинг справа */
.doctor-reviews-header{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}
.doctor-rating-summary{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: var(--bg-muted, #f8fafc);
  border-radius: 10px;
  flex-shrink: 0;
}
.doctor-rating-summary .stars{
  font-size: 20px;
  color: #eab308;
}
.doctor-rating-summary .stars strong{ font-size: 18px; color: var(--text); }
.doctor-rating-summary #doctor-summary-label{
  font-size: 13px;
  color: var(--muted);
  font-weight: 600;
}

/* Форма отзыва о враче: ряд 1 Имя | Email | Оценка, ряд 2 Текст на всю ширину (2 строки), ряд 3 Фото+Согласие+Кнопки в одну строку */
.review-form-wrap .review-form--doctor{
  width: 100%;
  max-width: none;
}
.review-form--doctor .review-form__title{
  margin: 0 0 16px;
  font-size: 18px;
}
.review-form--doctor .review-form--doctor__grid{
  display: grid;
  grid-template-columns: minmax(180px, auto) 1fr 1fr;
  gap: 16px 24px;
  align-items: stretch;
}
.review-form--doctor__full{
  grid-column: 1 / -1;
}
.review-form--doctor .review-form__text-section .review-form__textarea{
  min-height: 3.2em;
  resize: vertical;
  width: 100%;
  box-sizing: border-box;
}
.review-form--doctor .review-form__doctor-block{
  margin: 0;
  padding: 12px 14px;
  background: rgba(31,111,235,.06);
  border-radius: 10px;
  border: 1px solid rgba(31,111,235,.12);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.review-form--doctor .review-form__doctor-title{
  margin: 0 0 10px;
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
}
.review-form--doctor .star-rating--doctor .star-rating__star{ color: var(--border); }
.review-form--doctor .star-rating--doctor .star-rating__star.is-active,
.review-form--doctor .star-rating--doctor[data-value="1"] .star-rating__star:nth-child(1),
.review-form--doctor .star-rating--doctor[data-value="2"] .star-rating__star:nth-child(1),
.review-form--doctor .star-rating--doctor[data-value="2"] .star-rating__star:nth-child(2),
.review-form--doctor .star-rating--doctor[data-value="3"] .star-rating__star:nth-child(1),
.review-form--doctor .star-rating--doctor[data-value="3"] .star-rating__star:nth-child(2),
.review-form--doctor .star-rating--doctor[data-value="3"] .star-rating__star:nth-child(3),
.review-form--doctor .star-rating--doctor[data-value="4"] .star-rating__star:nth-child(1),
.review-form--doctor .star-rating--doctor[data-value="4"] .star-rating__star:nth-child(2),
.review-form--doctor .star-rating--doctor[data-value="4"] .star-rating__star:nth-child(3),
.review-form--doctor .star-rating--doctor[data-value="4"] .star-rating__star:nth-child(4),
.review-form--doctor .star-rating--doctor[data-value="5"] .star-rating__star:nth-child(1),
.review-form--doctor .star-rating--doctor[data-value="5"] .star-rating__star:nth-child(2),
.review-form--doctor .star-rating--doctor[data-value="5"] .star-rating__star:nth-child(3),
.review-form--doctor .star-rating--doctor[data-value="5"] .star-rating__star:nth-child(4),
.review-form--doctor .star-rating--doctor[data-value="5"] .star-rating__star:nth-child(5){ color: #eab308; }
.review-form--doctor .review-form__text-section .label{ margin-bottom: 6px; }
.review-form--doctor .review-form__photos-section{ margin: 0; }
.review-form--doctor .review-form__photos-wrap{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
}
.review-form--doctor .review-form__photos-input{
  position: absolute;
  width: 0.1px;
  height: 0.1px;
  opacity: 0;
  overflow: hidden;
  z-index: -1;
}
.review-form--doctor .review-form__photos-btn{ cursor: pointer; }
.review-form--doctor .review-form__photos-hint{
  font-size: 12px;
  color: var(--muted);
}
.review-form--doctor .review-form__photos-preview{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}
.review-form--doctor .review-form__photo-preview-img{
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid var(--border);
}
.review-form--doctor__bottom-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px 24px;
}
.review-form--doctor__bottom-row .review-form__photos-section{
  flex: 0 0 auto;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 10px;
}
.review-form--doctor__bottom-row .review-form__photos-section .label,
.review-form--doctor__bottom-row .review-form__photos-section .review-form__photos-label{
  margin: 0;
  flex-shrink: 0;
  white-space: nowrap;
  line-height: 1.2;
}
.review-form--doctor__bottom-row .review-form__photos-wrap{
  display: inline-flex;
  align-items: center;
  gap: 8px 10px;
}
.review-form--doctor__bottom-row .review-form__photos-section .review-form__photos-preview{
  flex-basis: 100%;
  margin-top: 6px;
  margin-left: 0;
}
.review-form--doctor__bottom-row .form__consent{ flex: 1 1 200px; min-width: 0; margin: 0; }
.review-form--doctor__bottom-row .form__consent .check{ margin: 0; }
.review-form--doctor__bottom-row .review-form__submit-row{
  margin: 0;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 10px;
}
.review-form--doctor .field .label{ margin-bottom: 4px; }
.review-form--doctor .form__consent a{
  text-decoration: underline;
  color: var(--blue);
}
.review-form--doctor .form__consent a:hover{ text-decoration: underline; }
@media (max-width: 600px){
  .review-form--doctor .review-form--doctor__grid{
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .doctor-reviews-header{ flex-direction: column; }
  .review-form--doctor__bottom-row{ flex-direction: column; align-items: stretch; }
  .review-form--doctor__bottom-row .review-form__submit-row{ justify-content: flex-end; }
}

/* Форма отзыва и звёзды */
.review-form__title{ font-weight: 800; color: var(--text); }
.review-form__doctor-check{ cursor: pointer; }
.review-form__doctor-block .label{ font-size: 12px; }
.review-form__criteria{ display: flex; flex-direction: column; gap: 10px; }
.review-form__criterion{
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 10px 14px;
  width: 100%;
}
.review-form__criterion-label{
  flex: 1;
  font-size: 13px;
  color: var(--text);
  min-width: 0;
}
.review-form__criterion .star-rating{
  flex-shrink: 0;
  margin-left: auto;
}
.star-rating{
  display: inline-flex;
  gap: 2px;
  align-items: center;
}
.star-rating__star{
  margin: 0;
  padding: 2px;
  border: none;
  background: none;
  cursor: pointer;
  color: var(--muted);
  transition: color .15s, transform .1s;
}
.star-rating__star:hover,
.star-rating__star:focus{ color: #f59e0b; outline: none; }
.star-rating__star:focus-visible{ border-radius: 4px; outline: 2px solid var(--blue); outline-offset: 2px; }
.star-rating[data-value] .star-rating__star{ color: var(--muted); }
.star-rating[data-value="1"] .star-rating__star:nth-child(1),
.star-rating[data-value="2"] .star-rating__star:nth-child(1),
.star-rating[data-value="2"] .star-rating__star:nth-child(2),
.star-rating[data-value="3"] .star-rating__star:nth-child(1),
.star-rating[data-value="3"] .star-rating__star:nth-child(2),
.star-rating[data-value="3"] .star-rating__star:nth-child(3),
.star-rating[data-value="4"] .star-rating__star:nth-child(1),
.star-rating[data-value="4"] .star-rating__star:nth-child(2),
.star-rating[data-value="4"] .star-rating__star:nth-child(3),
.star-rating[data-value="4"] .star-rating__star:nth-child(4),
.star-rating[data-value="5"] .star-rating__star:nth-child(1),
.star-rating[data-value="5"] .star-rating__star:nth-child(2),
.star-rating[data-value="5"] .star-rating__star:nth-child(3),
.star-rating[data-value="5"] .star-rating__star:nth-child(4),
.star-rating[data-value="5"] .star-rating__star:nth-child(5){ color: #f59e0b; }
.star-rating--clinic .star-rating__star svg{ width: 24px; height: 24px; display: block; }
.star-rating--criterion .star-rating__star svg{ width: 20px; height: 20px; display: block; }

.breadcrumb{ color: var(--muted); }
.breadcrumb a{ color: var(--blue); font-weight: 600; text-decoration: none; }
.breadcrumb a:hover{ text-decoration: underline; }
/* Отступы для хлебных крошек на внутренних страницах */
.detail .container{ padding-top: 16px; padding-left: 16px; padding-right: 16px; }
.detail .container > .breadcrumb{ margin-top: 0; margin-bottom: 16px; }

.sidebar{
  position: sticky;
  top: 76px;
  padding: 16px;
}
.sidebar h3{
  margin:0 0 6px;
  font-size: 16px;
}
.sidebar p{
  margin:0 0 12px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}
.divider{
  height:1px;
  background: var(--border);
  margin: 12px 0;
}

/* Responsive */
@media (max-width: 980px){
  .hero__grid{ grid-template-columns: 1fr; }
  .grid-3, .grid-4, .grid-cards{ grid-template-columns: 1fr; }
  .lead{ grid-template-columns: 1fr; }
  .card.lead.card--pad{ padding: 14px 20px 14px !important; }
  .lead__form-wrap{ padding-left: 0; }
  .lead__form-row{ grid-template-columns: 1fr; }
  .lead-magnet__card{ grid-template-columns: 1fr; }
  .topbar__inner{ flex-wrap:wrap; }
}

@media (max-width: 720px){
  .hero{ padding-top: 24px; }
  .hero h1{ font-size: 30px; }
  .brand{ min-width: auto; }
  .btn{ padding: 12px 14px; }
  .card--pad{ padding: 18px; }
}

/* Узкие телефоны: шапка в несколько рядов, без обрезки и горизонтального вылета */
@media (max-width: 390px){
  .topbar{
    height: auto;
    min-height: var(--header-height);
    overflow: visible;
    align-items: flex-start;
    padding-bottom: 8px;
  }
  .topbar__inner{
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 10px;
    min-height: 0;
    padding: 6px 0 4px;
  }
  .topbar .container{
    width: min(var(--container), calc(100% - 16px));
  }
  .topbar__inner > div[style*="display:flex"]{
    width: 100%;
    flex-direction: column;
    align-items: stretch !important;
    gap: 8px !important;
  }
  .topbar__inner .btn{
    width: 100%;
    justify-content: center;
  }
  body > main{
    padding-top: 118px;
  }
  body.page-index > main{
    padding-top: 0;
  }
  body.page-index .hero-spacer{
    min-height: 96px;
  }
  .container{
    padding-inline: max(12px, env(safe-area-inset-left));
    padding-right: max(12px, env(safe-area-inset-right));
  }
  .modal--city-confirm .modal__dialog{
    left: 50%;
    right: auto;
    transform: translateX(-50%);
  }
}

