/* Клиника Вербенкина — премиум-страница врача (референс «Страница врача»).
 * Рендерится плагином kvdoc-medflex, шорткод [kvdoc_doctor].
 * Шрифты Onest/Golos и палитра — из темы (var). */

.vbd { font-family: 'Golos Text', system-ui, sans-serif; color: #192D51; }
.vbd-wrap { max-width: 1240px; margin: 0 auto; padding: 0 32px; }

/* ---------- HERO ---------- */
.vbd-hero { background: #F2F3FB; padding: 28px 0 48px; }
.vbd-crumbs { font-size: 13px; color: #6B7280; margin-bottom: 24px; }
.vbd-crumbs b { color: #192D51; font-weight: 500; }
.vbd-hero-grid { display: grid; grid-template-columns: 300px 1fr 360px; gap: 40px; align-items: start; }

.vbd-portrait { width: 100%; border-radius: 26px; overflow: hidden; background: #e8eaf3; }
.vbd-portrait img { width: 100%; height: 360px; object-fit: cover; object-position: center top; display: block; }
.vbd-mini { display: flex; gap: 8px; margin-top: 14px; }
.vbd-mini > div { flex: 1; background: #fff; border-radius: 14px; padding: 14px; text-align: center; }
.vbd-mini .n { font-family: 'Onest', sans-serif; font-weight: 800; font-size: 22px; }
.vbd-mini .l { font-size: 12px; color: #6B7280; }

.vbd-badges { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.vbd-badge { display: inline-flex; align-items: center; gap: 7px; background: #fff; border-radius: 999px; padding: 8px 15px; font-size: 13px; font-weight: 600; }
.vbd-badge .star { color: #FF8562; }
.vbd-badge .dot { width: 8px; height: 8px; border-radius: 50%; background: #2FA56A; }
.vbd-badge--age { background: #EEF1FF; color: #4F5FC4; }

.vbd-h1 { font-family: 'Onest', sans-serif; font-weight: 800; font-size: 44px; line-height: 1.08; margin: 0 0 10px; letter-spacing: -0.02em; }
.vbd-spec { font-size: 19px; color: #6275DD; font-weight: 500; line-height: 1.4; margin-bottom: 24px; }
.vbd-statbar { display: flex; background: #fff; border-radius: 18px; overflow: hidden; margin-bottom: 24px; }
.vbd-statbar > div { flex: 1; padding: 18px 14px; border-right: 1px solid #EEF0F7; text-align: center; }
.vbd-statbar > div:last-child { border-right: none; }
.vbd-statbar .n { font-family: 'Onest', sans-serif; font-weight: 800; font-size: 26px; white-space: nowrap; }
.vbd-statbar .l { font-size: 13px; color: #6B7280; white-space: nowrap; }
.vbd-bio { font-size: 16px; line-height: 1.65; color: #4A5260; margin: 0; }

/* booking card (тёмная) — стилизуется через .kvmf--card в medflex.css */

/* ---------- BODY ---------- */
.vbd-body { padding: 56px 0; }
.vbd-body-grid { display: grid; grid-template-columns: 1fr 360px; gap: 56px; align-items: start; }
.vbd-body-grid > div { min-width: 0; } /* не давать слайдеру отзывов растянуть колонку */
.vbd-revs { min-width: 0; }
.vbd-h2 { font-family: 'Onest', sans-serif; font-weight: 800; font-size: 30px; margin: 0 0 20px; letter-spacing: -0.02em; }

/* описание врача (из контента поста) */
.vbd-about { margin-bottom: 44px; }
.vbd-about > :first-child { margin-top: 0; }
.vbd-about h2, .vbd-about .wp-block-heading {
	font-family: 'Onest', sans-serif; font-weight: 800; font-size: 30px;
	margin: 36px 0 16px; letter-spacing: -0.02em; line-height: 1.15;
}
.vbd-about p { font-size: 16px; line-height: 1.65; color: #4A5260; margin: 0 0 14px; }
.vbd-about ul, .vbd-about .wp-block-list {
	list-style: none; padding: 0; margin: 0;
	display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
}
.vbd-about ul li, .vbd-about .wp-block-list li {
	background: #F2F3FB; border-radius: 12px; padding: 13px 18px; font-size: 15px; line-height: 1.4;
}
@media (max-width: 600px) { .vbd-about ul, .vbd-about .wp-block-list { grid-template-columns: 1fr; } }

/* «О враче» */
.vbd-about { font-size: 16px; line-height: 1.65; color: #3A4252; margin-bottom: 40px; }
.vbd-about p { margin: 0 0 12px; }
.vbd-about p:last-child { margin-bottom: 0; }
/* образование — компактный таймлайн (год + текст) */
.vbd-edu2 { list-style: none; margin: 0 0 40px; padding: 0; }
.vbd-edu2__item { display: flex; gap: 16px; padding: 13px 0; align-items: baseline; }
.vbd-edu2__item + .vbd-edu2__item { border-top: 1px solid #EEF0F7; }
.vbd-edu2__y { flex: none; width: 46px; font-family: 'Onest', sans-serif; font-weight: 800; font-size: 15px; color: #6275DD; }
.vbd-edu2__t { font-size: 15px; line-height: 1.5; color: #2A3344; }
/* образование — таймлайн (старый, ACF) */
.vbd-edu { display: flex; flex-direction: column; margin-bottom: 44px; }
.vbd-edu__item { display: flex; gap: 20px; padding-bottom: 22px; border-left: 2px solid #E4E7F1; padding-left: 24px; margin-left: 8px; position: relative; }
.vbd-edu__item:last-child { border-left-color: transparent; padding-bottom: 0; }
.vbd-edu__item::before { content: ''; position: absolute; left: -7px; top: 2px; width: 12px; height: 12px; border-radius: 50%; background: #6275DD; }
.vbd-edu__item:last-child::before { background: #FF8562; }
.vbd-edu__t { font-family: 'Onest', sans-serif; font-weight: 700; font-size: 17px; }
.vbd-edu__d { font-size: 15px; color: #6B7280; margin-top: 3px; }

/* услуги — сетка цен */
.vbd-svc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 44px; }
.vbd-svc { display: flex; align-items: center; justify-content: space-between; gap: 16px; background: #F2F3FB; border-radius: 14px; padding: 16px 20px; text-decoration: none; color: inherit; }
.vbd-svc:hover { background: #e9ebf7; }
.vbd-svc span:first-child { font-size: 15px; }
.vbd-svc .p { font-family: 'Onest', sans-serif; font-weight: 700; font-size: 15px; color: #6275DD; white-space: nowrap; }
/* «Что лечит» — аккордеон по категориям МедФлекса */
.vbd-svc-acc { margin-bottom: 44px; }
.vbd-svc-group { background: #fff; border-radius: 14px; margin-bottom: 10px; }
.vbd-svc-sum { display: flex; align-items: center; gap: 12px; padding: 16px 20px; cursor: pointer; list-style: none; font-family: 'Onest', sans-serif; font-weight: 700; font-size: 17px; }
.vbd-svc-sum::-webkit-details-marker { display: none; }
.vbd-svc-sum .t { flex: 1; }
.vbd-svc-sum .c { background: #EEF1FF; color: #4F5FC4; border-radius: 999px; padding: 2px 11px; font-size: 13px; font-weight: 700; }
.vbd-svc-sum::after { content: '⌄'; font-size: 20px; line-height: 1; color: #6275DD; transition: transform .2s; }
.vbd-svc-group[open] .vbd-svc-sum::after { transform: rotate(180deg); }
.vbd-svc-acc .vbd-svc-grid { margin: 0 16px 16px; }

/* отзывы */
.vbd-rev-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; gap: 16px; }
.vbd-rev-head .vbd-h2 { margin: 0; }
.vbd-rev-all { font-size: 14px; color: #6275DD; text-decoration: none; font-weight: 600; white-space: nowrap; }
.vbd-revs { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; margin-bottom: 32px; scrollbar-width: none; -webkit-overflow-scrolling: touch; scroll-behavior: smooth; }
.vbd-revs::-webkit-scrollbar { display: none; }
.vbd-rev-nav { display: flex; align-items: center; gap: 14px; }
.kvsl--static .vbd-rev-nav .kvsl-nav { display: none; }
.vbd-rev { background: #fff; border: 1px solid #EEF0F7; border-radius: 18px; padding: 24px; }
/* === Секция «Отзывы пациентов» (full-width, после записи) === */
.vbd-rev-sec { background: #EEF0F8; padding: 56px 0; }
.vbd-rev-sec .vbd-h2 { margin: 0 0 28px; }
.vbd-rev-grid2 { display: grid; grid-template-columns: 300px 1fr; gap: 28px; align-items: start; }
.vbd-rev-sum { background: #fff; border-radius: 20px; padding: 28px 24px; text-align: center; }
.vbd-rev-sum__big { font-family: 'Onest', sans-serif; font-weight: 800; font-size: 56px; line-height: 1; color: #192D51; }
.vbd-rev-sum__stars { color: #FF8562; font-size: 19px; letter-spacing: 2px; margin-top: 8px; }
.vbd-rev-sum__count { color: #6B7280; font-size: 14px; margin-top: 6px; }
.vbd-rev-bars { display: flex; flex-direction: column; gap: 8px; margin: 22px 0; }
.vbd-rev-bar { display: flex; align-items: center; gap: 10px; }
.vbd-rev-bar .s { width: 10px; font-size: 13px; color: #6B7280; flex: none; }
.vbd-rev-bar .t { flex: 1; height: 8px; border-radius: 999px; background: #EEF0F7; overflow: hidden; }
.vbd-rev-bar .t span { display: block; height: 100%; border-radius: 999px; background: #FF8562; }
.vbd-rev-srcs { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.vbd-rev-src { flex: 1; min-width: 110px; padding: 12px 10px; border-radius: 12px; background: #F2F3FB; color: #192D51; text-decoration: none; font-weight: 600; font-size: 13px; }
.vbd-rev-src:hover { background: #e9ebf7; }
.vbd-rev-cards { display: flex; flex-direction: column; gap: 14px; }
.vbd-rev-more { display: block; text-align: center; background: #fff; border-radius: 18px; padding: 20px; color: #6275DD; font-family: 'Onest', sans-serif; font-weight: 700; font-size: 15px; text-decoration: none; }
.vbd-rev-more:hover { background: #f7f8fd; }
.vbd-rev__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.vbd-rev__who { display: flex; align-items: center; gap: 12px; }
.vbd-rev__ava { width: 42px; height: 42px; border-radius: 50%; background: #F2F3FB; display: flex; align-items: center; justify-content: center; font-family: 'Onest', sans-serif; font-weight: 700; color: #6275DD; }
.vbd-rev__name { font-family: 'Onest', sans-serif; font-weight: 700; font-size: 15px; }
.vbd-rev__meta { font-size: 12px; color: #9AA1AD; }
.vbd-rev__stars { color: #FF8562; font-size: 15px; }
.vbd-rev__text { font-size: 15px; line-height: 1.6; color: #4A5260; margin: 0; }

/* сайдбар */
.vbd-aside { position: sticky; top: 88px; display: flex; flex-direction: column; gap: 16px; }
.vbd-card { border: 1px solid #EEF0F7; border-radius: 20px; padding: 24px; }
.vbd-card__t { font-family: 'Onest', sans-serif; font-weight: 700; font-size: 17px; margin-bottom: 16px; }
/* Сворачиваемые блоки в aside (аккредитация, график+где принимает) */
.vbd-fold { border: 1px solid #EEF0F7; border-radius: 20px; }
.vbd-fold__sum { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 24px; cursor: pointer; list-style: none; font-family: 'Onest', sans-serif; font-weight: 700; font-size: 17px; }
.vbd-fold__sum::-webkit-details-marker { display: none; }
.vbd-fold__sum::after { content: '⌄'; font-size: 20px; line-height: 1; color: #6275DD; transition: transform .2s; }
.vbd-fold[open] .vbd-fold__sum::after { transform: rotate(180deg); }
.vbd-fold__body { padding: 0 24px 24px; }
.vbd-fold.vbd-accred { background: #EEF3FB; border-color: #DBE6F5; }
.vbd-fold.vbd-accred .vbd-fold__sum { color: #1F3B6E; }
/* Плашка аккредитации */
.vbd-accred { background: #EEF3FB; border-color: #DBE6F5; }
.vbd-accred .vbd-card__t { color: #1F3B6E; margin-bottom: 12px; }
.vbd-accred__list { display: flex; flex-direction: column; gap: 12px; margin: 0; }
.vbd-accred__list + .vbd-accred__list { margin-top: 12px; padding-top: 12px; border-top: 1px solid #DBE6F5; }
.vbd-accred__row { display: flex; flex-direction: column; gap: 2px; }
.vbd-accred__row dt { margin: 0; font-size: 12px; letter-spacing: .02em; color: #6B7C99; }
.vbd-accred__row dd { margin: 0; font-weight: 600; font-size: 14px; color: #1F3B6E; }
.vbd-sched { display: flex; flex-direction: column; gap: 10px; }
.vbd-sched__row { display: flex; justify-content: space-between; font-size: 14px; }
.vbd-sched__row .d { color: #6B7280; }
.vbd-sched__row .h { font-weight: 600; }
.vbd-sched__row .off { color: #9AA1AD; }
.vbd-loc__addr { font-size: 14px; color: #6B7280; line-height: 1.6; margin-bottom: 14px; }
.vbd-map { position: relative; border-radius: 14px; overflow: hidden; }
.vbd-loc__map { width: 100%; height: 140px; border: 0; display: block; }
.vbd-map__full {
	position: absolute; top: 10px; right: 10px; z-index: 2;
	width: 34px; height: 34px; border: 0; border-radius: 9px; cursor: pointer;
	background: rgba(255,255,255,.92); color: #192D51;
	display: flex; align-items: center; justify-content: center;
	box-shadow: 0 2px 8px rgba(0,0,0,.18);
}
.vbd-map__full:hover { background: #fff; }
/* в фуллскрине карта занимает весь экран */
.vbd-map:fullscreen { border-radius: 0; }
.vbd-map:fullscreen .vbd-loc__map { height: 100%; }
.vbd-map:-webkit-full-screen { border-radius: 0; }
.vbd-map:-webkit-full-screen .vbd-loc__map { height: 100%; }
.vbd-cta { background: #FBEFE9; border-radius: 20px; padding: 24px; }
.vbd-cta__t { font-family: 'Onest', sans-serif; font-weight: 700; font-size: 16px; margin-bottom: 6px; }
.vbd-cta__p { font-size: 13px; color: #6B5A52; line-height: 1.5; margin: 0 0 14px; }
.vbd-cta__phone { font-family: 'Onest', sans-serif; font-weight: 800; font-size: 20px; text-decoration: none; color: #192D51; }
.vbd-disclaimer { text-align: center; font-size: 12px; color: #9AA1AD; margin-top: 40px; }

/* нижний CTA — форма слева + «Где принимает» с картой справа */
.vbd-book { background: #F2F3FB; padding: 56px 0; }
.vbd-book__head { margin-bottom: 22px; }
.vbd-book__head h2 { margin-bottom: 10px; }
.vbd-book__p { color: #4A5260; font-size: 16px; line-height: 1.6; margin: 0; }
.vbd-book__p a { color: #6275DD; font-weight: 700; text-decoration: none; white-space: nowrap; }
.vbd-book__grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: stretch; }
.vbd-book__side { background: #fff; border-radius: 22px; padding: 24px; box-shadow: 0 14px 40px rgba(25,45,81,.10); display: flex; flex-direction: column; }
.vbd-book__side-t { font-family: 'Onest', sans-serif; font-weight: 700; font-size: 17px; color: #192D51; margin-bottom: 8px; }
.vbd-book__side-addr { font-size: 14px; color: #6B7280; line-height: 1.6; margin-bottom: 14px; }
.vbd-book__map { flex: 1 1 auto; min-height: 180px; }
.vbd-book__map .vbd-loc__map { height: 100%; min-height: 180px; }
.vbd-book__side-phone { font-family: 'Onest', sans-serif; font-weight: 800; font-size: 20px; color: #192D51; text-decoration: none; margin-top: 16px; }

/* ---------- адаптив ---------- */
@media (max-width: 980px) {
	.vbd-wrap { padding: 0 18px; }
	.vbd-hero-grid { grid-template-columns: 1fr; gap: 22px; }
	.vbd-body-grid { grid-template-columns: 1fr; gap: 32px; }
	.vbd-rev-grid2 { grid-template-columns: 1fr; gap: 16px; }
	.vbd-rev-sec { padding: 40px 0; }
	.vbd-svc-grid { grid-template-columns: 1fr; }
	.vbd-book__grid { grid-template-columns: 1fr; }
	.vbd-aside { position: static; }
	.vbd-h1 { font-size: 32px; }
	/* портрет + описание врача — по центру на мобиле */
	.vbd-hero-grid > div:first-child,
	.vbd-hero-grid > div:nth-child(2) { text-align: center; }
	.vbd-portrait { max-width: 360px; margin: 0 auto; }
	.vbd-mini { max-width: 360px; margin: 14px auto 0; }
	.vbd-badges { justify-content: center; }
	.vbd-statbar { flex-wrap: wrap; max-width: 480px; margin-left: auto; margin-right: auto; }
	.vbd-statbar > div { flex: 1 0 50%; border-right: none; border-bottom: 1px solid #EEF0F7; }
	.vbd-bio { max-width: 560px; margin-left: auto; margin-right: auto; }
}


/* ─── ВИДЕО-ВИЗИТКА: портрет-триггер + лайтбокс ─── */
.vbd-portrait--video{position:relative;cursor:pointer;overflow:hidden}
.vbd-portrait--video img{transition:transform .6s cubic-bezier(.2,.8,.2,1),filter .4s ease}
.vbd-portrait--video::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,23,48,.04) 0%,transparent 34%,rgba(13,23,48,.5) 100%);opacity:.85;transition:opacity .35s ease;pointer-events:none}
.vbd-portrait--video:hover img,.vbd-portrait--video:focus-visible img{transform:scale(1.045);filter:saturate(1.05)}
.vbd-portrait--video:focus-visible{outline:3px solid #6275DD;outline-offset:3px}
.vbd-portrait__play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:66px;height:66px;border-radius:50%;display:grid;place-items:center;z-index:2;background:rgba(255,255,255,.18);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.6);transition:background .3s ease,transform .3s ease}
.vbd-portrait__play::before{content:"";position:absolute;inset:-12px;border-radius:50%;border:2px solid #FF8562;opacity:.5;animation:vbdvvPulse 2.4s ease-out infinite}
.vbd-portrait__play i{width:0;height:0;margin-left:4px;border-style:solid;border-width:11px 0 11px 18px;border-color:transparent transparent transparent #fff;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}
.vbd-portrait--video:hover .vbd-portrait__play{background:#FF8562;transform:translate(-50%,-50%) scale(1.06);box-shadow:0 10px 26px -6px rgba(224,106,71,.6)}
.vbd-portrait__vlabel{position:absolute;left:12px;bottom:12px;z-index:2;display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:999px;background:rgba(13,23,48,.5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-family:var(--wp--preset--font-family--heading,inherit);font-size:12px;font-weight:600;letter-spacing:.01em;box-shadow:0 4px 14px -4px rgba(13,23,48,.4)}
.vbd-portrait__vlabel .dot{width:7px;height:7px;border-radius:50%;background:#FF8562;animation:vbdvvDot 1.8s infinite}

/* лайтбокс */
.vbd-vlb{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px}
.vbd-vlb[hidden]{display:none}
.vbd-vlb__backdrop{position:absolute;inset:0;background:rgba(9,15,33,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:vbdFade .3s ease}
.vbd-vlb__dialog{position:relative;z-index:1;width:min(380px,92vw);max-height:90vh;animation:vbdPop .42s cubic-bezier(.2,.85,.25,1) both}
.vbd-vlb__player{position:relative;aspect-ratio:9/16;max-height:80vh;margin:0 auto;border-radius:22px;overflow:hidden;background:#0d1730;box-shadow:0 40px 90px -20px rgba(0,0,0,.7)}
.vbd-vlb__media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;border:0}
.vbd-vlb__close{position:absolute;top:-46px;right:0;width:38px;height:38px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;background:rgba(255,255,255,.14);color:#fff;transition:background .25s ease}
.vbd-vlb__close:hover{background:rgba(255,255,255,.28)}
.vbd-vlb__cap{margin-top:16px;text-align:center;color:#fff}
.vbd-vlb__cap b{display:block;font-family:var(--wp--preset--font-family--heading,inherit);font-weight:700;font-size:1.05rem}
.vbd-vlb__cap span{display:block;font-size:.86rem;color:rgba(255,255,255,.7);margin-top:3px}
body.vbd-vlb-open{overflow:hidden}
@keyframes vbdvvPulse{0%{transform:scale(1);opacity:.5}70%{transform:scale(1.35);opacity:0}100%{opacity:0}}
@keyframes vbdvvDot{0%,100%{box-shadow:0 0 0 0 rgba(255,133,98,.6)}50%{box-shadow:0 0 0 6px rgba(255,133,98,0)}}
@keyframes vbdFade{from{opacity:0}to{opacity:1}}
@keyframes vbdPop{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}
@media(max-width:600px){.vbd-vlb__dialog{width:88vw}.vbd-vlb__close{top:-44px}}
