/* Сгенерировано tools/prefix_css.py из docs/figma/354-3/css/style.css.
   Править ИСХОДНИК и перегенерировать, правки здесь потеряются. */

/* Littera Plain в родных метриках, без коррекции размера.
   В боевом custom.css то же семейство подключено с коррекцией 110% (компенсация низкой
   x-высоты вместо Open Sans). Макет нарисован в родных метриках, поэтому карточке нужно
   отдельное семейство без компенсации — иначе вся типографика уедет на 10%. */
@font-face {
	font-family: "Littera Plain Raw";
	src: url("../../../../css/fonts/littera/LitteraPlainBook.woff2") format("woff2"),
	     url("../../../../css/fonts/littera/LitteraPlainBook.woff") format("woff");
	font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
	font-family: "Littera Plain Raw";
	src: url("../../../../css/fonts/littera/LitteraPlainMedium.woff2") format("woff2"),
	     url("../../../../css/fonts/littera/LitteraPlainMedium.woff") format("woff");
	font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
	font-family: "Littera Plain Raw";
	src: url("../../../../css/fonts/littera/LitteraPlainBold.woff2") format("woff2"),
	     url("../../../../css/fonts/littera/LitteraPlainBold.woff") format("woff");
	font-weight: 700; font-style: normal; font-display: swap;
}

.dp {
	font-family: "Littera Plain Raw", Arial, sans-serif;
	font-size: 16px;
	line-height: 22px;
	color: var(--c-text);
	-webkit-font-smoothing: antialiased;
}
.dp *, .dp *::before, .dp *::after { box-sizing: border-box; }
/* h4–h6 тоже: тема задаёт им свои кегли и отступы. Вид заголовков из редактора
   возвращают правила .dp .rte h4… (0,2,1). */
.dp h1, .dp h2, .dp h3, .dp h4, .dp h5, .dp h6, .dp p, .dp ul, .dp ol, .dp dl, .dp dt, .dp dd, .dp figure, .dp blockquote {
	margin: 0; padding: 0; font: inherit;
}
.dp ul, .dp ol { list-style: none; }
/* Тема делает li таблицей и рисует маркер «—» через ::before */
.dp li { display: list-item; position: static; margin: 0; padding: 0; }
.dp li::before { content: none; }
/* Тема задаёт h1 { color: #333 } — внутри карточки цвет наследуем */
.dp h1, .dp h2, .dp h3, .dp h4, .dp h5, .dp h6 { color: inherit; }
/* Тема задаёт h1..h6 overflow: hidden; text-overflow: ellipsis — длинные заголовки
   секций на 320–360px резались многоточием, а кольцо фокуса у ссылки в h3 обрезалось. */
.dp h1, .dp h2, .dp h3, .dp h4, .dp h5, .dp h6 { overflow: visible; text-overflow: clip; }
/* Тема: header { color: #333; background: #fff; clear: both }, blockquote { color: #333 } —
   шапки карточек и цитата врача выпадали из палитры карточки. */
.dp header, .dp footer { color: inherit; background: none; clear: none; }
.dp blockquote { color: inherit; }
.dp a { color: inherit; text-decoration: none; }
/* Только для настоящего курсора: на сенсорных экранах :hover «залипает» после тапа */
@media (hover: hover) and (pointer: fine) {
	.dp a:hover { color: inherit; }
}
/* Тема вешает на КАЖДЫЙ blockquote метку-кавычку: `blockquote::before` — абсолютно
   позиционированный блок 44×30 с Quote_mask.svg и чёрной заливкой. Он наезжает
   на текст — и в цитате врача, и в цитатах внутри текста из редактора. */
.dp blockquote::before, .dp blockquote::after { content: none; display: none; }
.dp img { display: block; max-width: 100%; height: auto; }
.dp button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
/* Bootstrap даёт label margin-bottom: 5px — сдвигались чекбоксы и звёзды оценки.
   :not — чтобы не сбить margin: -1px у скрытых подписей. */
.dp label:not(.visually-hidden) { margin-bottom: 0; }

.dp {
	--c-text:      #181818;
	--c-text-2:    #4B5563;
	--c-muted:     #6B7280;
	--c-border:    #E5E7EB;
	--c-surface:   #F3F4F6;
	--c-hover:     #F4F4F4;
	--c-footer:    #F9F9FB;
	--c-white:     #FFFFFF;
	--c-error:     #C83F3F;   

	--pad:         160px;   
	--maxw:        1440px;
	--gap-sec:     32px;    
	--pad-sec:     40px;    

	--font: "Littera Plain", Arial, Helvetica, sans-serif;
	--header-h:    89px;   
}
html[data-contrast="design"] .dp {
	--c-muted: #9CA3AF;
	--c-error: #D24848;
}
.dp *, .dp *::before, .dp *::after { box-sizing: border-box; }
.dp {
	margin: 0;
	font-family: var(--font);
	font-size: 16px;
	line-height: 22px;
	color: var(--c-text);
	background: var(--c-white);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.dp h1, .dp h2, .dp h3, .dp p, .dp figure, .dp dl, .dp dd { margin: 0; }
.dp ul { margin: 0; padding: 0; list-style: none; }
.dp img { display: block; max-width: 100%; height: auto; }
.dp a { color: inherit; text-decoration: none; }
.dp button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
.dp hr { border: 0; margin: 0; }
.dp .sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.dp .ic { display: block; flex: none; }
.dp .is-hidden { display: none !important; }
@keyframes reveal { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.dp .is-revealed { animation: reveal .3s cubic-bezier(.2, .8, .3, 1) both; }
.dp [hidden]:not([hidden="until-found"]) { display: none !important; }
.dp .more-tail[hidden] { margin-bottom: 0; padding: 0; border: 0; }
.dp .srv.more-tail { display: block; border-top: 0; }
.dp .visually-hidden {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0; border: 0;
	clip-path: inset(50%);
	overflow: hidden; white-space: nowrap;
}
.dp :focus-visible { outline: 2px solid var(--c-text) !important; outline-offset: 2px !important; border-radius: 1px; }
@supports not selector(:focus-visible) {
.dp :focus { outline: 2px solid var(--c-text) !important; outline-offset: 2px !important; border-radius: 1px; }
}
.dp .lb__nav:focus-visible, .dp .lb__close:focus-visible, .dp .rmodal__close:focus-visible {
	outline-color: var(--c-white) !important; outline-offset: 3px !important;
}
@supports not selector(:focus-visible) {
.dp .lb__nav:focus, .dp .lb__close:focus, .dp .rmodal__close:focus {
	outline-color: var(--c-white) !important; outline-offset: 3px !important;
}
}
.dp .dsection__in, .dp .hero__in {
	max-width: var(--maxw);
	margin-inline: auto;
	padding-inline: var(--pad);
}
.dp .dsection { padding-block: var(--pad-sec); }
.dp .dsection__in { display: flex; flex-direction: column; gap: var(--gap-sec); }
.dp .dsection__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
.dp .dsection__title {
	font-size: 24px;
	line-height: 26px;
	font-weight: 500 !important;
	text-transform: uppercase;
	color: var(--c-muted);
}
.dp .dsection__head .dsection__title { min-width: 0; hyphens: auto; overflow-wrap: break-word; }
.dp .hr { height: 1px; background: var(--c-border); }
.dp .dbtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	min-height: 48px;
	padding: 16px 24px;
	font-size: 14px;
	line-height: 16px;
	font-weight: 500 !important;
	text-transform: uppercase;
	text-align: center;
	transition: background-color .15s, color .15s;
}
.dp .dbtn--primary { background: var(--c-text); color: var(--c-white); }
.dp .dbtn--outline { border: 1px solid var(--c-text); padding: 15px 64px; }
@media (hover: hover) and (pointer: fine) {
.dp .dbtn--primary:hover { background: rgba(24, 24, 24, .8); color: var(--c-white); }
.dp .dbtn--outline:hover { background: var(--c-hover); }
}
@media (forced-colors: active) {
.dp .dbtn--primary { border: 1px solid ButtonText; }
.dp .reviews__cta.dbtn--primary { white-space: nowrap; }
}
.dp .dlogo { width: 46px; height: 45px; }
.dp .hero { padding-block: 64px 32px; }
.dp .hero__in { display: flex; gap: 64px; align-items: flex-start; }
.dp .hero__portrait { flex: none; width: 352px; }
.dp .hero__portrait picture { display: block; }
.dp .hero__portrait img { width: 100%; height: 384px; object-fit: cover; }
.dp .hero__info { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.dp .hero__head { display: flex; flex-direction: column; gap: 24px; }
.dp .hero__name {
	max-width: 540px;
	font-size: 40px;
	line-height: 44px;
	font-weight: 700 !important;
	text-transform: uppercase;
}
.dp .hero__meta { display: flex; flex-direction: column; gap: 4px; }
.dp .hero__specs, .dp .hero__exp, .dp .hero__leads { font-size: 18px; line-height: 24px; }
.dp .hero__specs strong { font-weight: 500 !important; }
.dp .hero__post { font-size: 16px; line-height: 22px; color: var(--c-text-2); }
.dp .dprices { display: flex; flex-direction: column; gap: 4px; width: 100%; max-width: 292px; }
.dp .dprice { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.dp .dprice__label, .dp .dprice__val { margin: 0; font-size: 16px; line-height: 22px; color: var(--c-text-2); }
.dp .dprice__val { white-space: nowrap; }
.dp .dprice--main .dprice__label, .dp .dprice--main .dprice__val { font-size: 18px; line-height: 24px; font-weight: 500 !important; color: var(--c-text); }
.dp .dprice__old { margin-right: 4px; font-size: 14px; line-height: 16px; font-weight: 400 !important; color: var(--c-muted); }
.dp .dprice__val:has(.dprice__old) { display: inline-flex; flex-direction: column; align-items: flex-end; }
.dp .dprice__val:has(.dprice__old) .dprice__old { margin-right: 0; }
.dp .hero__bottom { display: flex; flex-direction: column; gap: 24px; }
.dp .hero__actions { display: flex; gap: 16px; align-items: flex-start; margin-top: 8px; }
.dp .hero__cta { flex: none; width: 292px; max-width: 100%; padding-inline: 16px; }
.dp .promo {
	
	display: flex; align-items: center; justify-content: center;
	flex: 0 1 auto; min-width: 0; min-height: 48px;
	padding: 12px 22px;
	border: 1px solid var(--c-border);
	font-size: 16px; line-height: 22px; text-align: center;
	transition: border-color .15s;
}
.dp .promo strong { font-weight: 500 !important; }
@media (hover: hover) and (pointer: fine) {
.dp a.promo:hover { border-color: var(--c-text); }
}
.dp .daddress { display: flex; align-items: center; gap: 8px; font-size: 14px; line-height: 16px; }
.dp .daddress__pin { color: var(--c-text); }
.dp .booking { padding-block: 32px 40px; }
.dp .dates { display: flex; gap: 12px; flex-wrap: wrap; }
.dp .dday {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
	min-width: 80px; min-height: 80px; padding: 8px 6px;
	border: 1px solid var(--c-border);
	transition: background-color .15s, border-color .15s;
}
.dp .dday__dow { font-size: 12px; line-height: 14px; font-weight: 500 !important; text-transform: uppercase; color: var(--c-text-2); }
.dp .dday__day { font-size: 20px; line-height: 22px; font-weight: 500 !important; color: var(--c-text); }
@media (hover: hover) and (pointer: fine) {
.dp .dday:hover:not(.is-disabled) { background: var(--c-border); }
}
.dp .dday.is-active { border: 2px solid var(--c-text); }
.dp .dday.is-active .dday__dow { color: var(--c-text); }
.dp .dday.is-disabled { cursor: default; }
.dp .dday.is-disabled .dday__dow, .dp .dday.is-disabled .dday__day { color: var(--c-border); }
.dp .slots { display: flex; flex-direction: column; gap: 16px; }
.dp .slots__caption { font-size: 16px; line-height: 22px; }
.dp .slots__grid { display: flex; flex-wrap: wrap; gap: 12px; }
.dp .dslot {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 80px; min-height: 40px; padding: 8px 12px;
	background: var(--c-white); color: var(--c-text);
	font-size: 16px; line-height: 22px; font-weight: 500 !important;
	text-decoration: none;
	border: 1px solid var(--c-border);
	transition: background-color .15s, border-color .15s, color .15s;
}
@media (hover: hover) and (pointer: fine) {
.dp .dslot:hover { background: var(--c-border); color: var(--c-text); }
}
.dp .dslot:active, .dp .dslot.is-active { background: var(--c-text); border-color: var(--c-text); color: var(--c-white); }
.dp .dday.is-skeleton { background: var(--c-surface); border-color: transparent; pointer-events: none; }
.dp .dslot.is-skeleton { background: var(--c-surface); border-color: transparent; pointer-events: none; }
.dp .slots.is-loading .slots__caption { visibility: hidden; }
.dp .dates:empty { min-height: 80px; }
.dp .booking.is-reloading .dates, .dp .booking.is-reloading .slots__grid { opacity: .4; pointer-events: none; transition: opacity .15s; }
.dp .slots__empty, .dp .slots__error, .dp .slots__fallback { font-size: 16px; line-height: 22px; color: var(--c-text-2); }
.dp .slots__empty a, .dp .slots__error a, .dp .slots__fallback a { text-decoration: underline; white-space: nowrap; }
.dp .bkspec { display: flex; flex-wrap: wrap; gap: 12px; }
.dp .bkspec__btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 48px; padding: 12px 20px;
	border: 1px solid var(--c-border);
	font-size: 16px; line-height: 22px; font-weight: 500 !important;
	transition: background-color .15s, border-color .15s;
}
@media (hover: hover) and (pointer: fine) {
.dp .bkspec__btn:hover { background: var(--c-border); }
}
.dp .bkspec__btn.is-active { border: 2px solid var(--c-text); padding: 11px 19px; }
.dp .acc { display: flex; flex-direction: column; gap: 0; }
.dp .acc__toggle { position: relative; display: flex; flex: none; align-items: center; justify-content: center; width: 26px; height: 26px; color: var(--c-text); }
.dp .acc__toggle::after { content: ""; position: absolute; inset: -9px; }
.dp .acc__toggle .ic { transition: transform .2s; }
.dp .acc:not(.is-open) .acc__toggle .ic { transform: rotate(180deg); }
.dp .acc__body {
	display: grid;
	grid-template-rows: 1fr;
	transition: grid-template-rows .32s cubic-bezier(.4, 0, .2, 1), opacity .24s;
}
.dp .acc__body > * { min-height: 0; }
.dp .acc__inner { min-width: 0; }
.dp .acc__inner::before { content: ""; display: block; height: var(--gap-sec); }
.dp .acc:not(.is-open) .acc__body {
	grid-template-rows: 0fr;
	overflow: hidden;
	opacity: 0;
	visibility: hidden;
	transition: grid-template-rows .28s cubic-bezier(.4, 0, .2, 1), opacity .18s, visibility 0s .28s;
}
.dp .faq__item { border-top: 1px solid var(--c-border); }
.dp .faq__item:last-child { border-bottom: 1px solid var(--c-border); }
.dp .faq__q {
	display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 24px;
	padding: 20px 0;
	font-size: 18px; line-height: 24px; font-weight: 500 !important;
	text-align: left;
}
.dp .faq__chev { flex: none; color: var(--c-text); transition: transform .2s; }
.dp .faq__item:not(.is-open) .faq__chev { transform: rotate(180deg); }
.dp .faq__item:not(.is-open) .acc__body {
	grid-template-rows: 0fr;
	opacity: 0;
	visibility: hidden;
	transition: grid-template-rows .28s cubic-bezier(.4, 0, .2, 1), opacity .18s, visibility 0s .28s;
}
.dp .faq__item.is-open .acc__body { padding-bottom: 20px; }
.dp .acc:not(.is-open) .acc__body[hidden="until-found"], .dp .faq__item:not(.is-open) .acc__body[hidden="until-found"] { visibility: visible; }
.dp .faq__more { align-self: center; }
.dp .licenses__more { align-self: center; }
.dp .dabout__text { font-size: 16px; line-height: 22px; }
.dp .acc--soft .acc__toggle { display: none; }
.dp .quote {
	margin: 24px 0 0;
	padding-left: 24px;
	border-left: 2px solid var(--c-text);
	font-size: 18px; line-height: 24px; font-weight: 500 !important;
}
.dp .rte {
	min-width: 0;
	
	overflow-wrap: break-word;
	font-size: 16px; line-height: 22px; color: var(--c-text);
}
.dp .rte p, .dp .rte li, .dp .rte dd, .dp .rte blockquote { max-width: 78ch; }
.dp .dabout__text p, .dp .dabout__text li, .dp .dabout__text dd, .dp .dabout__text blockquote { max-width: none; }
.dp .rte [style*="justify"], .dp .rte [align="justify"] { text-align: left !important; }
.dp .rte > *:first-child { margin-top: 0; }
.dp .rte > *:last-child { margin-bottom: 0; }
.dp .rte p { margin: 0 0 16px; }
.dp .rte h2, .dp .rte h3, .dp .rte h4, .dp .rte h5, .dp .rte h6, .dp .rte [data-lvl] { font-weight: 500 !important; color: var(--c-text); }
.dp .rte h2, .dp .rte [data-lvl="2"] { font-size: 22px; line-height: 28px; margin: 32px 0 12px; }
.dp .rte h3, .dp .rte [data-lvl="3"] { font-size: 20px; line-height: 26px; margin: 28px 0 10px; }
.dp .rte h4, .dp .rte [data-lvl="4"] { font-size: 18px; line-height: 24px; margin: 24px 0 8px; }
.dp .rte h5, .dp .rte h6, .dp .rte [data-lvl="5"], .dp .rte [data-lvl="6"] { font-size: 16px; line-height: 22px; margin: 24px 0 8px; }
.dp .rte ul, .dp .rte ol { margin: 0 0 16px; padding-left: 24px; }
.dp .rte ul { list-style: disc; }
.dp .rte ol { list-style: decimal; }
.dp .rte ul > li { list-style-type: disc; }
.dp .rte ol > li { list-style-type: decimal; }
.dp .rte ul ul > li { list-style-type: circle; }
.dp .rte ul ul ul > li { list-style-type: square; }
.dp .rte li { margin-bottom: 8px; }
.dp .rte li:last-child { margin-bottom: 0; }
.dp .rte li::marker { color: var(--c-text-2); }
.dp .rte li > ul, .dp .rte li > ol { margin: 8px 0 0; }
.dp .rte li > p { margin: 0; }
.dp .rte li > p + p { margin-top: 8px; }
.dp .rte strong, .dp .rte b { font-weight: 500 !important; }
.dp .rte em, .dp .rte i { font-style: italic; }
.dp .rte small { font-size: 14px; line-height: 16px; color: var(--c-text-2); }
.dp .rte sup, .dp .rte sub { font-size: 12px; }
.dp .rte a { text-decoration: underline; text-underline-offset: 2px; }
@media (hover: hover) and (pointer: fine) {
.dp .rte a:hover { color: var(--c-text-2); }
}
.dp .rte blockquote {
	margin: 24px 0;
	padding-left: 24px;
	border-left: 2px solid var(--c-text);
	font-size: 18px; line-height: 24px; font-weight: 500 !important;
}
.dp .rte blockquote p { margin: 0 0 8px; }
.dp .rte blockquote p:last-child { margin: 0; }
.dp .rte hr { height: 1px; margin: 24px 0; border: 0; background: var(--c-border); }
.dp .rte img { margin: 16px 0; }
.dp .rte figure { margin: 16px 0; }
.dp .rte figcaption { margin-top: 8px; font-size: 14px; line-height: 16px; color: var(--c-text-2); }
.dp .rte dl { margin: 0 0 16px; }
.dp .rte dt { font-weight: 500 !important; }
.dp .rte dd { margin: 0 0 8px; padding-left: 16px; }
.dp .rte table {
	display: block; overflow-x: auto;
	width: 100%; margin: 16px 0;
	border-collapse: collapse;
}
.dp .rte th, .dp .rte td {
	padding: 8px 12px;
	border: 1px solid var(--c-border);
	text-align: left; vertical-align: top;
}
.dp .rte th { font-weight: 500 !important; background: var(--c-surface); }
.dp .rte code {
	padding: 2px 6px;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 14px;
	color: inherit;
	white-space: normal;
	background: var(--c-surface);
	border-radius: 0;
}
.dp .rte pre {
	margin: 16px 0; padding: 16px;
	overflow-x: auto;
	word-break: normal;
	color: inherit;
	background: var(--c-surface);
	border: 0;
}
.dp .rte pre code { padding: 0; white-space: pre-wrap; background: none; }
.dp .timelines .dsection__in { gap: 0; }
.dp .timelines .acc {
	padding-block: var(--gap-sec);
	border-top: 1px solid var(--c-border);
}
.dp .timelines .acc:last-child { border-bottom: 1px solid var(--c-border); }
.dp .tl { max-width: 640px; }
.dp .tl__item { display: flex; gap: 32px; }
.dp .tl__mark {
	position: relative;
	flex: none;
	display: flex; align-items: flex-start; justify-content: center;
	width: 24px;
	color: var(--c-muted);
}
.dp .tl__item:not(:last-child) .tl__mark::after {
	content: "";
	position: absolute;
	top: 24px; bottom: 0; left: 50%;
	width: 1px;
	background: var(--c-border);
}
.dp .tl__item.is-tail .tl__mark::after { display: none; }
.dp .tl__content { display: flex; flex-direction: column; gap: 4px; padding-bottom: 18px; }
.dp .tl__title { font-size: 18px; line-height: 24px; font-weight: 500 !important; }
.dp .tl__sub { font-size: 16px; line-height: 22px; color: var(--c-text-2); }
.dp .tl__date { margin-top: 2px; font-size: 14px; line-height: 16px; color: var(--c-muted); }
.dp .tl__item:last-child .tl__content { padding-bottom: 0; }
.dp .dnavs { display: flex; gap: 16px; }
.dp .dnav {
	display: flex; align-items: center; justify-content: center;
	width: 42px; height: 42px;
	border: 2px solid var(--c-text);
	color: var(--c-text);
	transition: background-color .15s, color .15s;
}
.dp .dnav[disabled], .dp .dnav[aria-disabled="true"] { opacity: .3; cursor: default; }
@media (hover: hover) and (pointer: fine) {
.dp .dnav:hover { background: var(--c-text); color: var(--c-white); }
.dp .dnav[disabled]:hover, .dp .dnav[aria-disabled="true"]:hover { background: none; color: var(--c-text); }
}
.dp .dcarousel { overflow: hidden; }
.dp .dcarousel__track {
	display: flex;
	gap: 32px;
	overflow-x: auto;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-bottom: 2px;
}
.dp .dcarousel__track::-webkit-scrollbar { display: none; }
.dp .dcarousel__track:focus-visible { outline: 2px solid var(--c-text) !important; outline-offset: -2px !important; }
@supports not selector(:focus-visible) {
.dp .dcarousel__track:focus { outline: 2px solid var(--c-text) !important; outline-offset: -2px !important; }
}
@supports selector(:has(*)) {
.dp .dcarousel__track:focus-visible { outline: none !important; }
@supports not selector(:focus-visible) {
.dp .dcarousel__track:focus { outline: none !important; }
}
.dp .dcarousel:has(> .dcarousel__track:focus-visible) { outline: 2px solid var(--c-text) !important; outline-offset: 4px !important; }
}
.dp .ddoc__thumb:focus-visible, .dp .spec:focus-visible { outline-offset: -2px !important; }
@supports not selector(:focus-visible) {
.dp .ddoc__thumb:focus, .dp .spec:focus { outline-offset: -2px !important; }
}
.dp .dcarousel__dots { display: none; }
.dp .dcarousel__track > * { scroll-snap-align: start; }
.dp .spec { position: relative; }
.dp .dcarousel.is-static .dcarousel__track {
	flex-wrap: wrap;
	row-gap: 32px;
	overflow: visible;
	scroll-snap-type: none;
}
.dp .ddoc { flex: none; width: 160px; display: flex; flex-direction: column; gap: 16px; }
.dp .ddoc__thumb {
	display: flex; align-items: center; justify-content: center;
	width: 160px; height: 226px;
	background: var(--c-surface);
	color: var(--c-muted);
	transition: filter .15s;
}
@media (hover: hover) and (pointer: fine) {
.dp .ddoc__thumb:hover { filter: brightness(.96); }
}
.dp .ddoc__thumb:has(img) { padding: 8px; background: var(--c-white); box-shadow: inset 0 0 0 1px var(--c-border); }
.dp .ddoc__thumb--scan { padding: 8px; background: var(--c-white); box-shadow: inset 0 0 0 1px var(--c-border); }
.dp .ddoc__thumb img { width: 100%; height: 100%; object-fit: contain; }
.dp .ddoc__thumb.is-noimg { padding: 0; background: var(--c-surface); box-shadow: none; }
.dp .ddoc__cap {
	font-size: 16px; line-height: 22px;
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden;
	overflow-wrap: anywhere; hyphens: auto;
}
.dp .dpost {
	flex: none; width: 352px;
	display: flex; flex-direction: column; justify-content: space-between; gap: 24px;
	min-height: 256px;
	padding: 24px;
	border: 1px solid var(--c-border);
}
.dp .dpost__body { display: flex; flex-direction: column; gap: 12px; }
.dp .dpost__title { font-size: 18px; line-height: 22px; font-weight: 500 !important; }
@media (hover: hover) and (pointer: fine) {
.dp .dpost__title a:hover { text-decoration: underline; }
}
.dp .dpost__lead { font-size: 16px; line-height: 22px; color: var(--c-text-2); }
.dp .dpost__foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.dp .dpost__date { font-size: 12px; line-height: 14px; color: var(--c-muted); }
.dp .dpost__link { display: inline-block; padding-block: 5px; font-size: 14px; line-height: 15px; font-weight: 500 !important; white-space: nowrap; transition: opacity .15s; }
@media (hover: hover) and (pointer: fine) {
.dp .dpost__link:hover { text-decoration: none; opacity: .8; }
}
.dp .dpost__foot .dpost__link { margin-left: auto; }
.dp .posts__more { display: none; }
.dp .dpost--short { min-height: 0; }
.dp .offer { flex: none; width: 352px; display: flex; flex-direction: column; border: 1px solid var(--c-border); }
.dp .offer__img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.dp .spec__photo picture, .dp .offer__img picture { display: block; }
.dp .offer__body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 12px; padding: 24px; }
.dp .offer__title { font-size: 18px; line-height: 22px; font-weight: 500 !important; }
.dp .offer__period { font-size: 14px; line-height: 16px; color: var(--c-muted); }
.dp .offer__body .dpost__link { margin-top: auto; }
.dp .spec { flex: none; width: 198px; display: flex; flex-direction: column; gap: 8px; }
.dp .spec__photo { display: block; margin-bottom: 4px; }
.dp .spec__photo img { width: 198px; height: 198px; object-fit: cover; object-position: 50% 0; }
.dp .spec__rating { display: flex; align-items: center; gap: 8px; min-height: 22px; font-size: 16px; line-height: 22px; }
.dp .spec__rating .ic { color: var(--c-text); }
.dp .spec__rating b { font-weight: 400 !important; margin-left: -4px; }
.dp .spec__count { color: var(--c-muted); }
.dp .spec__name { font-size: 18px; line-height: 24px; font-weight: 500 !important; }
.dp .spec__job {
	font-size: 16px; line-height: 22px; color: var(--c-text-2);
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}
.dp .spec__exp { margin-top: -4px; font-size: 14px; line-height: 16px; color: var(--c-muted); }
@media (hover: hover) and (pointer: fine) {
.dp .spec:hover .spec__name { text-decoration: underline; }
}
.dp .dservices .dsection__in { align-items: stretch; }
.dp .srv { border-top: 1px solid var(--c-border); }
.dp .srv__item { border-bottom: 1px solid var(--c-border); }
.dp .srv__row {
	display: flex; align-items: center; justify-content: space-between; gap: 24px;
	padding-block: 16px;
	font-size: 16px; line-height: 22px;
}
.dp .srv__right { display: flex; align-items: center; gap: 16px; white-space: nowrap; }
.dp .srv__price { font-size: 18px; line-height: 24px; font-weight: 500 !important; }
.dp .srv__old { font-size: 14px; line-height: 16px; color: var(--c-muted); }
.dp .srv__btn { padding: 11px 24px; min-height: 40px; }
.dp .srv__head {
	padding: 24px 0 8px;
	font-size: 14px; line-height: 16px; font-weight: 500 !important;
	text-transform: uppercase; color: var(--c-muted);
}
.dp .srv__note { max-width: 100ch; margin-top: 16px; font-size: 12px; line-height: 14px; color: var(--c-muted); }
.dp .srv__arr { color: var(--c-text); transition: transform .15s; }
.dp .dservices__more { align-self: center; }
.dp .dis { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 32px; }
.dp .dis__link {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	padding: 16px 0;
	border-bottom: 1px solid var(--c-border);
	font-size: 16px; line-height: 22px;
}
@media (hover: hover) and (pointer: fine) {
.dp .dis__link:hover .srv__arr { transform: translateX(4px); }
}
.dp .dis + .dbtn { align-self: center; }
.dp .cta__box {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 32px;
	padding: 32px;
	background: var(--c-surface);
}
.dp .cta__text { display: flex; flex-direction: column; gap: 8px; }
.dp .cta__title { font-size: 20px; line-height: 24px; font-weight: 500 !important; }
.dp .cta__sub { color: var(--c-text-2); }
.dp .cta__actions { display: flex; gap: 16px; flex: none; }
.dp .reviews__in { display: grid; grid-template-columns: 352px 1fr; gap: 32px; align-items: start; }
.dp .reviews__aside {
	display: flex; flex-direction: column; gap: 16px;
	position: sticky;
	top: calc(var(--header-h) + 32px);
}
.dp .drating { display: flex; align-items: baseline; gap: 12px; }
.dp .drating__star { color: var(--c-text); align-self: center; }
.dp .drating__val { font-size: 48px; line-height: 53px; font-weight: 700 !important; margin-left: -4px; }
.dp .drating__count { font-size: 18px; line-height: 22px; color: var(--c-muted); }
.dp .reviews__cta { width: 250px; padding-inline: 64px; }
.dp .reviews__list { grid-column: 2; display: flex; flex-direction: column; }
.dp .reviews__list:not(:has(*)) { display: none; }
.dp .dreview { display: flex; flex-direction: column; gap: 12px; padding-block: 24px; border-bottom: 1px solid var(--c-border); }
.dp .dreview:first-child { padding-top: 0; }
.dp .dreview__who { display: flex; align-items: center; gap: 12px; }
.dp .avatar {
	display: flex; align-items: center; justify-content: center;
	flex: none; width: 40px; height: 40px; border-radius: 50%;
	background: var(--c-surface);
	font-size: 14px; line-height: 20px; font-weight: 700 !important;
}
.dp .dreview__ident { display: flex; flex-direction: column; gap: 2px; }
.dp .dreview__name { font-size: 18px; line-height: 24px; font-weight: 500 !important; overflow-wrap: anywhere; }
.dp .dreview__meta { display: flex; align-items: center; gap: 8px; }
.dp .stars { display: flex; gap: 2px; color: var(--c-text); }
.dp .dreview__score { font-size: 16px; line-height: 24px; margin-left: -4px; }
.dp .dreview__date { font-size: 14px; line-height: 16px; color: var(--c-muted); }
.dp .dreview__text { max-width: 78ch; font-size: 16px; line-height: 22px; overflow-wrap: anywhere; }
.dp .reviews__empty { max-width: 32ch; font-size: 16px; line-height: 22px; color: var(--c-text-2); }
.dp .reply { display: flex; gap: 12px; }
.dp .reply__corner { flex: none; color: var(--c-text); margin-top: 4px; }
.dp .reply__body { display: flex; flex-direction: column; }
.dp .reply__title { font-size: 18px; line-height: 24px; font-weight: 500 !important; }
.dp .reply__text { font-size: 16px; line-height: 22px; }
.dp .ph {
	display: flex; align-items: center; justify-content: center; gap: 8px;
	width: 243px; height: 180px;
	background: var(--c-surface);
	color: var(--c-muted);
	font-size: 16px; line-height: 18px;
	transition: filter .15s;
}
.dp .ph { overflow: hidden; }
.dp .ph img { width: 100%; height: 100%; object-fit: cover; }
@media (hover: hover) and (pointer: fine) {
.dp .ph:hover { filter: brightness(.96); }
}
.dp .audio {
	display: flex; align-items: center; gap: 12px;
	width: 352px; max-width: 100%;
	padding: 12px;
	background: var(--c-surface);
}
.dp .audio__play {
	display: flex; align-items: center; justify-content: center;
	flex: none; width: 32px; height: 32px; border-radius: 50%;
	background: var(--c-text); color: var(--c-white);
	padding-left: 2px;
}
.dp .audio__bar { flex: 1 1 auto; height: 2px; background: var(--c-muted); }
.dp .audio__progress { display: block; width: 20%; height: 100%; background: var(--c-text); }
.dp .audio__time { font-size: 16px; line-height: 24px; font-weight: 500 !important; }
.dp .clamp p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5; overflow: hidden; }
.dp .clamp.is-open p { display: block; overflow: visible; }
.dp .linkish {
	display: inline-flex; align-items: center; gap: 4px;
	padding-block: 4px;
	font-size: 14px; line-height: 16px; font-weight: 500 !important;
	color: var(--c-text-2);
	justify-self: start; align-self: flex-start;
	transition: opacity .15s;
}
@media (hover: hover) and (pointer: fine) {
.dp .linkish:hover { opacity: .8; }
}
.dp .linkish__chev { transform: rotate(180deg); transition: transform .2s; }
.dp .linkish.is-open .linkish__chev { transform: none; }
.dp .reviews__more { grid-column: 2; justify-self: start; }
@media (min-width: 960px) {
.dp .reviews__in--sort .reviews__aside { grid-row: 1 / span 2; }
}
.dp .rdist { display: flex; flex-direction: column; gap: 6px; width: 100%; }
.dp .rdist__row { display: flex; align-items: center; gap: 8px; font-size: 14px; line-height: 16px; }
.dp .rdist__label { display: inline-flex; align-items: center; gap: 2px; flex: none; width: 30px; color: var(--c-text-2); }
.dp .rdist__bar { flex: 1 1 auto; height: 6px; background: var(--c-surface); }
.dp .rdist__fill { display: block; height: 100%; background: var(--c-text); }
.dp .rdist__num { flex: none; width: 24px; text-align: right; color: var(--c-text-2); }
.dp .rsort { grid-column: 2; display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.dp .rsort__label { font-size: 14px; line-height: 16px; color: var(--c-text-2); }
.dp .rsort__select {
	-webkit-appearance: none; appearance: none;
	border-radius: 0;
	min-height: 32px;
	padding: 6px 32px 6px 8px;
	font: inherit; font-size: 14px; line-height: 16px;
	color: var(--c-text);
	background: var(--c-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23181818' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") no-repeat right 12px center / 10px 6px;
	border: 1px solid var(--c-border);
	cursor: pointer;
}
@media (hover: hover) and (pointer: fine) {
.dp .rsort__select:hover { border-color: var(--c-text); }
}
.dp .stickycta {
	position: fixed; left: 0; right: 0; bottom: var(--sticky-bottom, 0px);
	z-index: 100;
	display: none;
	padding: 12px 20px;
	background: var(--c-white);
	border-top: 1px solid var(--c-border);
	box-shadow: 0 -4px 16px rgba(24, 24, 24, .07);
}
.dp .stickycta__btn { width: 100%; }
.dp .is-noimg { background: var(--c-surface); }
.dp .hero__portrait.is-noimg { aspect-ratio: 352 / 384; }
.dp .spec__photo.is-noimg { display: block; aspect-ratio: 1 / 1; }
.dp .offer__img.is-noimg { display: block; aspect-ratio: 3 / 2; }
.dp .ph.is-noimg { display: block; width: 120px; height: 90px; }
.dp .dform { display: flex; flex-direction: column; gap: 16px; }
.dp .dform__fields { display: flex; flex-direction: column; gap: 16px; }
.dp .dform__row { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.dp .attach-group { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.dp .rate { flex-direction: column; align-items: flex-start; gap: 8px; }
.dp .dinput {
	display: block;   
	width: 100%;
	height: 48px;
	padding: 0 16px;
	border: 1px solid var(--c-border);
	background: var(--c-white);
	font-family: inherit; font-size: 16px; line-height: 22px;
	color: var(--c-text);
	transition: border-color .15s;
}
.dp .dinput::placeholder { color: var(--c-muted); }
.dp .dinput:focus { border-color: var(--c-text); outline: none; }
@media (hover: hover) and (pointer: fine) {
.dp .dinput:hover { border-color: var(--c-text); }
}
.dp .dinput:focus-visible { outline: none !important; }
@supports not selector(:focus-visible) {
.dp .dinput:focus { outline: none !important; }
}
.dp .dinput--area { height: 143px; padding: 16px 16px 0; resize: vertical; }
.dp .dinput:disabled { background: var(--c-border); border-color: transparent; color: var(--c-text); }
.dp .field--error .dinput { border-color: var(--c-error); color: var(--c-error); }
.dp .field__error { margin-top: 4px; font-size: 14px; line-height: 21px; color: var(--c-error); }
.dp .attach { display: flex; flex-direction: column; gap: 2px; margin-block: -4px; align-items: flex-start; }
.dp .attach__btn { display: inline-flex; align-items: center; gap: 8px; padding-block: 4px; font-size: 16px; line-height: 22px; transition: opacity .15s; }
@media (hover: hover) and (pointer: fine) {
.dp .attach__btn:hover { text-decoration: none; opacity: .8; }
}
.dp .attached { display: flex; flex-direction: column; gap: 16px; }
.dp .att {
	display: flex; align-items: center; gap: 12px;
	height: 48px; padding-right: 20px;
	border: 1px solid var(--c-border);
}
.dp .att__thumb {
	display: flex; align-items: center; justify-content: center;
	flex: none; width: 48px; height: 48px; align-self: stretch;
}
.dp .att__thumb--photo { background: var(--c-border); color: var(--c-muted); }
.dp .att__thumb--audio { border: 1px solid var(--c-text); color: var(--c-text); }
.dp .att__meta { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-width: 0; }
.dp .att__name { font-size: 14px; line-height: 15px; font-weight: 500 !important; }
.dp .att__sub { font-size: 12px; line-height: 13px; color: var(--c-muted); }
.dp .att__remove { display: flex; flex: none; color: var(--c-text); padding: 2px; }
@media (hover: hover) and (pointer: fine) {
.dp .att__remove:hover { opacity: .6; }
}
.dp .rate { display: flex; gap: 8px; }
.dp .rate__stars { display: flex; gap: 5px; }
.dp .rate__star { display: flex; position: relative; color: var(--c-text); cursor: pointer; transition: transform .15s; }
@media (hover: hover) and (pointer: fine) {
.dp .rate__star:hover { transform: scale(1.08); }
}
.dp .rate__star:has(:focus-visible) { outline: 2px solid var(--c-text) !important; outline-offset: 3px !important; }
@supports not selector(:has(*)) {
.dp .rate__star input:focus-visible ~ .ic { outline: 2px solid var(--c-text) !important; outline-offset: 2px !important; }
@supports not selector(:focus-visible) {
.dp .rate__star input:focus ~ .ic { outline: 2px solid var(--c-text) !important; outline-offset: 2px !important; }
}
}
.dp .rate__star .ic--on { display: none; }
.dp .rate__star.is-on .ic--off { display: none; }
.dp .rate__star.is-on .ic--on { display: block; }
.dp .rate__label { font-size: 16px; line-height: 22px; color: var(--c-text-2); }
.dp .checks { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.dp .dcheck { display: flex; align-items: flex-start; gap: 10px; cursor: pointer;
         font-size: 12px; line-height: 14px; color: var(--c-text-2); }
.dp .dcheck input { position: absolute; opacity: 0; width: 0; height: 0; }
.dp .dcheck__box {
	flex: none; width: 16px; height: 16px;
	border: 1px solid var(--c-text-2);
	background: var(--c-white);
	position: relative;
}
.dp .dcheck input:checked + .dcheck__box { background: var(--c-text); border-color: var(--c-text); }
.dp .dcheck input:checked + .dcheck__box::after {
	content: ""; position: absolute; left: 4px; top: 1px;
	width: 5px; height: 9px;
	border: solid var(--c-white); border-width: 0 1.5px 1.5px 0;
	transform: rotate(45deg);
}
.dp .dcheck input:focus-visible + .dcheck__box { outline: 2px solid var(--c-text) !important; outline-offset: 2px !important; }
@supports not selector(:focus-visible) {
.dp .dcheck input:focus + .dcheck__box { outline: 2px solid var(--c-text) !important; outline-offset: 2px !important; }
}
.dp .dcheck__text { margin-top: 1px; }
.dp .dcheck__text a { text-decoration: underline; text-underline-offset: 2px; }
.dp .dform__submit { width: 100%; margin-top: 0; }
.dp .dform__submit[aria-disabled="true"] { opacity: .6; cursor: progress; }
.dp .dform__captcha { min-height: 102px; }
.dp .dform__status {
	margin-top: 4px;
	font-size: 14px; line-height: 20px; font-weight: 500 !important;
	color: var(--c-text);
}
.dp .dform__status:empty {
	position: absolute; width: 1px; height: 1px; margin: 0;
	overflow: hidden; clip-path: inset(50%);
}
.dp .dform__status[hidden] { display: none; }
.dp .dform__fail { margin-top: 4px; font-size: 14px; line-height: 20px; font-weight: 500 !important; color: var(--c-error); }
.dp .dform__fail a { text-decoration: underline; white-space: nowrap; }
.dp .field__error[hidden] { display: none; }
.dp .dcheck__error { margin-top: -4px; }
.dp .rmodal {
	position: fixed; inset: 0; z-index: 3100;
	display: none;
	align-items: center; justify-content: center;
}
.dp .rmodal.is-open { display: flex; }
.dp .rmodal__overlay {
	position: absolute; inset: 0;
	background: rgba(24, 24, 24, .6);
	opacity: 0; transition: opacity .24s;
}
.dp .rmodal.is-shown .rmodal__overlay { opacity: 1; }
.dp .rmodal__box { position: relative; z-index: 1; }
.dp .rmodal__dialog {
	position: relative; z-index: 1;
	display: flex; flex-direction: column; gap: 32px;
	width: 640px; max-width: calc(100vw - 132px);
	max-height: calc(100vh - 48px);
	padding: 40px;
	background: var(--c-white);
	overflow-y: auto;
	opacity: 0; transform: translateY(12px) scale(.985);
	transition: opacity .26s cubic-bezier(.2, .8, .3, 1), transform .26s cubic-bezier(.2, .8, .3, 1);
}
.dp .rmodal.is-shown .rmodal__dialog { opacity: 1; transform: none; }
.dp .rmodal__dialog > * { flex-shrink: 0; }
.dp .rmodal__close {
	position: absolute; top: 0; left: calc(100% + 24px); z-index: 1;
	margin-top: 0;
	display: flex; align-items: center; justify-content: center;
	flex: none; width: 42px; height: 42px;
	border: 2px solid var(--c-white); color: var(--c-white);
	opacity: 0;
	transition: background-color .15s, color .15s, opacity .24s;
}
.dp .rmodal.is-shown .rmodal__close { opacity: 1; }
@media (hover: hover) and (pointer: fine) {
.dp .rmodal__close:hover { background: var(--c-white); color: var(--c-text); }
}
.dp .lb {
	position: fixed; inset: 0; z-index: 3101;   
	display: flex; align-items: center; justify-content: center;
	gap: var(--lb-gap, 32px);
}
.dp .lb[hidden] { display: none; }
.dp .lb:focus, .dp .rmodal__dialog:focus, .dp .rmodal__title:focus { outline: none; }
.dp .lb:focus-visible, .dp .rmodal__dialog:focus-visible, .dp .rmodal__title:focus-visible { outline: none !important; }
@supports not selector(:focus-visible) {
.dp .lb:focus, .dp .rmodal__dialog:focus, .dp .rmodal__title:focus { outline: none !important; }
}
.dp .lb__overlay {
	position: absolute; inset: 0;
	background: rgba(24, 24, 24, .6);
	opacity: 0; transition: opacity .24s;
}
.dp .lb.is-shown .lb__overlay { opacity: 1; }
.dp .lb__stage, .dp .lb__side, .dp .lb__nav, .dp .lb__bar {
	opacity: 0; transition: opacity .26s, transform .26s cubic-bezier(.2, .8, .3, 1);
}
.dp .lb__stage { transform: scale(.97); }
.dp .lb.is-shown .lb__stage, .dp .lb.is-shown .lb__side, .dp .lb.is-shown .lb__nav, .dp .lb.is-shown .lb__bar { opacity: 1; transform: none; }
.dp .lb__stage { position: relative; z-index: 1; }
.dp .lb__img {
	display: flex; align-items: center; justify-content: center;
	height: var(--lb-h, 678px);
	aspect-ratio: 480 / 678;
	max-height: calc(100vh - 64px);
	background: var(--c-surface);
	color: var(--c-muted);
}
.dp .lb__img { position: relative; }
.dp .lb__pic { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.dp .lb--haspic .lb__img { background: none; }
.dp .lb--landscape .lb__img {
	aspect-ratio: 678 / 480;
	max-width: calc(100vw - 2 * (var(--lb-btn, 42px) + var(--lb-gap, 32px)) - 64px);
}
.dp .lb__cap {
	position: absolute; left: 0; right: 0; top: 100%;
	margin: 8px 0 0;
	max-height: calc((100vh - min(var(--lb-h, 678px), 100vh - 64px)) / 2 - 16px);
	overflow-y: auto;
	color: var(--c-white);
	font-size: 14px; line-height: 16px;
	text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
}
.dp .lb__side {
	position: relative; z-index: 1;
	align-self: stretch;
	display: flex; flex-direction: column; justify-content: center;
	width: var(--lb-btn, 42px);
	margin-block: max(32px, calc((100vh - var(--lb-h, 678px)) / 2));
}
.dp .lb__close {
	position: absolute; top: 0; left: 0;
	width: var(--lb-btn, 42px); height: var(--lb-btn, 42px);
	display: flex; align-items: center; justify-content: center;
	border: 2px solid var(--c-white); color: var(--c-white);
	transition: background-color .15s, color .15s;
}
.dp .lb__nav {
	position: relative; z-index: 1;
	display: flex; align-items: center; justify-content: center;
	flex: none;
	width: var(--lb-btn, 42px); height: var(--lb-btn, 42px);
	border: 2px solid var(--c-white); color: var(--c-white);
	transition: background-color .15s, color .15s;
}
@media (hover: hover) and (pointer: fine) {
.dp .lb__close:hover, .dp .lb__nav:hover { background: var(--c-white); color: var(--c-text); }
}
.dp .lb__bar { display: none; }
.dp .lb__bar-count { flex: none; margin-left: auto; font-size: 14px; line-height: 22px; color: var(--c-muted); white-space: nowrap; }
.dp .lb__bar-count:empty { display: none; }
body.dp-locked { overflow: hidden; }
@media (max-width: 1279px) {
.dp { --pad: 64px; --pad-sec: 32px; --gap-sec: 24px; }
.dp .hero { padding-block: 48px 32px; }
.dp .hero__in { gap: 40px; }
.dp .hero__portrait { width: 300px; }
.dp .hero__portrait img { height: 328px; }
.dp .hero__name { font-size: 32px; line-height: 36px; }
.dp .dsection__title { font-size: 20px; line-height: 22px; }
.dp .rte h2, .dp .rte [data-lvl="2"] { font-size: 20px; line-height: 26px; }
.dp .dates, .dp .slots__grid { gap: 10px; }
.dp .dday { min-width: 79px; min-height: 72px; }
.dp .dday__day { font-size: 18px; line-height: 24px; }
.dp .dday__dow { font-weight: 700 !important; }
.dp .tl__item { gap: 24px; }
.dp .timelines .acc { padding-block: 32px; }
.dp .dcarousel__track { gap: 24px; }
.dp .ddocs .ddoc, .dp .ddocs .ddoc__thumb { width: 147px; }
.dp .ddocs .ddoc__thumb { height: 208px; }
.dp .spec, .dp .spec__photo img { width: 190px; }
.dp .spec__photo img { height: 190px; }
.dp .reviews__in { grid-template-columns: 300px 1fr; }
.dp .reviews__cta { width: 100%; padding-inline: 24px; }
.dp .linkish { font-size: 16px; line-height: 22px; }
.dp .lb { --lb-h: 550px; --lb-gap: 24px; }
.dp { --header-h: 77px; }
.dp .rmodal__dialog { width: 540px; padding: 32px; gap: 24px; }
}
@media (min-width: 960px) and (max-width: 1279px) {
.dp .hero__portrait img { height: auto; aspect-ratio: 280 / 344; }
.dp .hero__head { gap: 16px; }
.dp .dprices { gap: 6px; max-width: 320px; }
.dp .hero__actions { gap: 12px; }
.dp .hero__cta { width: 263px; min-height: 44px; padding-block: 14px; }
}
@media (min-width: 640px) and (max-width: 1279px) {
.dp .dform__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.dp .dform__fields > .field:last-child { grid-column: 1 / -1; }
.dp .dinput { height: 38px; padding: 8px 12px; }
.dp .dinput::placeholder { font-size: 14px; }
.dp .dinput--area { height: 123px; padding: 8px 12px; }
}
@media (max-width: 959px) {
.dp { --pad: 32px; --pad-sec: 24px; --gap-sec: 16px; }
.dp .hero { padding-block: 32px 24px; }
.dp .hero__in { gap: 24px; }
.dp .hero__portrait { width: 232px; }
.dp .hero__portrait img { height: 254px; }
.dp .hero__name { font-size: 32px; line-height: 36px; }
.dp .hero__specs, .dp .hero__exp, .dp .hero__leads { font-size: 16px; line-height: 22px; }
.dp .acc--soft .acc__toggle { display: flex; }
.dp .acc--soft .dsection__head { padding-bottom: 16px; border-bottom: 1px solid var(--c-border); }
.dp .tl__title { font-size: 16px; line-height: 22px; }
.dp .tl__sub { font-size: 14px; line-height: 16px; }
.dp .timelines .acc { padding-block: 16px; }
.dp .dday { min-width: 72px; min-height: 72px; }
.dp .dday__day { font-size: 16px; line-height: 22px; }
.dp .dslot { min-width: 88px; min-height: 44px; }
.dp .dcarousel__track { gap: 16px; }
.dp .ddocs.dcarousel__track { gap: 12px; }
.dp .ddocs .ddoc, .dp .ddocs .ddoc__thumb { width: 135px; }
.dp .ddocs .ddoc__thumb { height: 190px; }
.dp .ddoc__cap { font-size: 14px; line-height: 16px; }
.dp .spec, .dp .spec__photo img { width: 181px; }
.dp .spec__photo img { height: 181px; }
.dp .spec__name { font-size: 16px; line-height: 22px; }
.dp .posts .dpost { width: 280px; }
.dp .dpost__lead { font-size: 14px; line-height: 18px; }
.dp .offers .offer { width: 300px; }
.dp .dis { grid-template-columns: repeat(2, 1fr); }
.dp .dnav { width: 32px; height: 32px; border-width: 1.5px; }
.dp .dnavs { gap: 8px; }
.dp .reviews__in { grid-template-columns: 1fr; }
.dp .reviews__aside { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
.dp .reviews__aside .dsection__title { width: 100%; }
.dp .reviews__cta { width: auto; margin-left: auto; padding: 14px 48px; min-height: 44px; }
.dp .dreview, .dp .dreview:first-child { border: 1px solid var(--c-border); padding: 16px; }
.dp .dreview + .dreview { border-top: 1px solid var(--c-border); margin-top: 16px; }
.dp .reviews__list { grid-column: auto; gap: 0; }
.dp .reviews__more { grid-column: auto; align-self: center; justify-self: center; margin-top: 24px; }
.dp .rsort { grid-column: auto; }
.dp .lb { --lb-h: 462px; --lb-gap: 24px; --lb-btn: 32px; }
.dp .lb--landscape { --lb-h: min(462px, calc((100vw - 176px) * 480 / 678)); }
.dp { --header-h: 75px; }
.dp .rmodal__dialog { width: 478px; padding: 32px; gap: 24px; }
.dp .rmodal__close { left: calc(100% + 16px); }
.dp .attach__btn, .dp .rate__label { font-size: 14px; line-height: 16px; }
.dp .dform__submit { min-height: 44px; padding-block: 14px; }
.dp .reviews__aside { position: static; }
}
@media (min-width: 640px) and (max-width: 959px) {
.dp .hero__in { display: grid; grid-template-columns: 232px minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: 24px; row-gap: 16px; align-items: start; }
.dp .hero__in:not(:has(.hero__portrait)) { grid-template-columns: minmax(0, 1fr); }
.dp .hero__info { display: contents; }
.dp .hero__portrait { grid-row: 1 / span 2; }
.dp .hero__head, .dp .dprices { grid-column: -2 / -1; }
.dp .dprices { max-width: 400px; }
.dp .hero__actions, .dp .hero__bottom { grid-column: 1 / -1; margin-top: 8px; }
.dp .hero__actions { gap: 12px; }
.dp .hero__cta { width: 232px; min-height: 44px; padding-block: 14px; }
.dp .promo { flex: 1 1 auto; min-height: 44px; padding: 10px 12px; }
}
@media (max-width: 639px) {
.dp { --pad: 20px; --pad-sec: 20px; --gap-sec: 20px; }
.dp .rte h2, .dp .rte [data-lvl="2"] { font-size: 18px; line-height: 24px; margin-top: 24px; }
.dp .rte h3, .dp .rte h4, .dp .rte [data-lvl="3"], .dp .rte [data-lvl="4"] { font-size: 16px; line-height: 22px; margin-top: 24px; }
.dp .dsection__title { font-size: 16px; line-height: 18px; overflow-wrap: anywhere; hyphens: auto; }
.dp .rte blockquote { padding-left: 16px; font-size: 16px; line-height: 22px; }
.dp .rte ul, .dp .rte ol { padding-left: 20px; }
.dp .stickycta { display: block; }
.dp .hero { padding: 0 0 20px; }
.dp .hero__in { flex-direction: column; gap: 20px; padding-inline: 0; align-items: stretch; }
.dp .hero__info { display: contents; }
.dp .hero__portrait { width: 100%; }
.dp .hero__portrait img { width: 100%; height: 291px; object-fit: cover; object-position: 50% 0; }
.dp .hero__head, .dp .dprices, .dp .hero__actions, .dp .hero__bottom { padding-inline: var(--pad); }
.dp .dprices { max-width: none; }
.dp .hero__name { font-size: 24px; line-height: 26px; overflow-wrap: anywhere; hyphens: manual; }
.dp .hero__head, .dp .timelines, .dp .dabout { overflow-wrap: anywhere; }
.dp .hero__head, .dp .hero__meta { gap: 10px; }
.dp .hero__specs, .dp .hero__leads { font-size: 20px; line-height: 26px; }
.dp .hero__exp { font-size: 20px; line-height: 22px; }
.dp .hero__cta, .dp .stickycta__btn { min-height: 54px; font-size: 18px; line-height: 20px; }
.dp .daddress { font-size: 16px; line-height: 18px; }
.dp .daddress svg { width: 16px; height: 20px; }
.dp .dprices { gap: 8px; }
.dp .dprice { justify-content: flex-start; gap: 0; }
.dp .dprice--main .dprice__label, .dp .dprice--main .dprice__val { font-size: 20px; line-height: 22px; }
.dp .dprice__label::after { content: "\00a0—"; }
.dp .dprice__val:has(.dprice__old) { display: inline; }
.dp .dprice__val:has(.dprice__old) .dprice__old { margin-right: 4px; }
.dp .dprice { display: block; }
.dp .dprice__label, .dp .dprice__val { display: inline; }
.dp .hero__actions { flex-direction: column; align-items: stretch; gap: 16px; margin-top: 0; }
.dp .hero__cta { order: 2; width: 100%; }
.dp .promo { order: 1; width: 100%; min-height: 54px; padding: 7px 15px; }
.dp .dates { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--pad) * -1); padding-inline: var(--pad); }
.dp .dates::-webkit-scrollbar { display: none; }
.dp .dates { gap: 8px; scroll-snap-type: x mandatory; scroll-padding-inline: var(--pad); }
.dp .dday { flex: none; min-width: 64px; min-height: 64px; scroll-snap-align: start; }
.dp .dday__day { font-size: 16px; line-height: 18px; }
.dp .slots__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.dp .dslot { min-width: 0; width: auto; max-width: none; min-height: 44px; }
.dp .bkspec__btn { flex: 1 1 auto; }
.dp .booking { padding-block: 20px; }
.dp .tl__item { gap: 16px; }
.dp .timelines .acc { padding-block: 24px; }
.dp .timelines .acc__inner::before { height: 24px; }
.dp .dabout--solo { border-bottom: 1px solid var(--c-border); }
.dp .faq__q { font-size: 16px; line-height: 22px; }
.dp .dcarousel .dcarousel__track.posts, .dp .dcarousel.is-static .dcarousel__track.posts {
		flex-direction: column; flex-wrap: nowrap;
		overflow: visible; scroll-snap-type: none; gap: 20px;
	}
.dp .posts .dpost {
		width: auto; min-height: 0;
		padding: 0 0 20px; border: 0; border-bottom: 1px solid var(--c-border);
		gap: 16px;
	}
.dp .dpost__title { font-size: 16px; line-height: 22px; }
.dp .dpost__lead { font-size: 14px; line-height: 20px; }
.dp .dpost__date { font-size: 14px; line-height: 16px; }
.dp .posts__more { display: inline-flex; }
.dp .posts:not(.is-expanded) > .dpost:nth-child(n+4) { display: none; }
.dp .offers .offer { width: 280px; }
.dp .dis { grid-template-columns: 1fr; }
.dp .srv__row { flex-direction: column; align-items: flex-start; gap: 12px; }
.dp .srv__right { width: 100%; flex-wrap: wrap; justify-content: flex-start; row-gap: 12px; }
.dp .srv__btn { flex: 1 0 100%; width: 100%; }
.dp .cta__box { flex-direction: column; align-items: stretch; padding: 24px 20px; }
.dp .dbtn--outline, .dp .dbtn--outline { padding-inline: 32px; }
.dp .dbtn--outline:not(.srv__btn) {
		align-self: stretch; justify-self: stretch; width: 100%;
		min-height: 38px; padding: 10px 20px;
		font-size: 16px; line-height: 18px;
	}
.dp .cta__actions { flex-direction: column; }
.dp .dnavs { display: none; }
.dp .dcarousel__dots { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px; margin-top: 16px; }
.dp .dcarousel__dot { width: 7px; height: 7px; background: var(--c-border); }
.dp .dcarousel__dot.is-active { background: var(--c-text); }
.dp .dcarousel.is-static .dcarousel__dots { display: none; }
.dp .dcarousel__track { gap: 12px; }
.dp .specs.dcarousel__track { gap: 20px; }
.dp .ddocs .ddoc, .dp .ddocs .ddoc__thumb { width: 142px; }
.dp .ddocs .ddoc__thumb { height: 200px; }
.dp .ddoc__cap { -webkit-line-clamp: 3; }
.dp .spec, .dp .spec__photo img { width: 155px; }
.dp .spec__photo img { height: 155px; }
.dp .drating__count { font-size: 16px; line-height: 18px; }
.dp .avatar { width: 48px; height: 48px; }
.dp .dreview__name { font-size: 16px; line-height: 18px; }
.dp .reviews__in { grid-template-columns: minmax(0, 1fr); }
.dp .rsort { flex-wrap: wrap; }
.dp .rsort__select { max-width: 100%; min-width: 0; font-size: 16px; line-height: 20px; min-height: 44px; }
.dp .reviews__aside .reviews__cta { width: 100%; margin-left: 0; }
.dp .dreview, .dp .dreview:first-child { padding: 16px; }
.dp .ph { width: 100%; }
.dp .audio { width: 100%; }
.dp { --header-h: 65px; }
.dp .rmodal {
		position: static; display: block; z-index: auto;
		padding: var(--pad-sec) 0;
	}
.dp .rmodal__overlay, .dp .rmodal__close { display: none; }
.dp .rmodal__box { position: static; }
.dp .rmodal__dialog {
		width: auto; max-width: none; max-height: none;
		padding: 0 var(--pad); gap: 20px; overflow: visible;
		
		opacity: 1; transform: none; transition: none;
	}
.dp .reviews__cta { display: none; }
.dp .dform__row { display: contents; }
.dp .rate { flex-direction: row; align-items: center; }
.dp .attach-group { order: 1; }
.dp .rate { order: 2; }
.dp .checks { order: 3; margin-top: 0; }
.dp .dform__captcha { order: 4; }
.dp .dform__submit { order: 4; min-height: 52px; font-size: 18px; line-height: 20px; }
.dp .dform__status, .dp .dform__fail { order: 5; }
.dp .attach { gap: 10px; margin-block: 0; }
.dp .dinput { font-size: 16px; line-height: 22px; }
.dp .dinput::placeholder { font-size: 14px; }
.dp .dinput--area { height: 120px; padding: 16px; }
.dp .rate__label { font-size: 14px; line-height: 15px; }
.dp .attach__btn { font-size: 14px; line-height: 15px; }
.dp .dcheck { font-size: 12px; line-height: 13px; }
.dp .checks { gap: 12px; }
.dp .dform__submit { margin-top: 0; }
.dp .lb { display: flex; flex-direction: column; align-items: stretch; padding: 0; background: var(--c-white); }
.dp .lb__overlay { display: none; }
.dp .lb__side, .dp .lb__nav { display: none; }
.dp .lb__bar {
		display: flex; align-items: flex-start; gap: 15px;
		flex: none;
		position: relative; z-index: 1;
		padding: 20px var(--pad) 0;
	}
.dp .lb__bar-close {
		display: flex; flex: none; width: 16px; height: 16px; color: var(--c-text);
		
		box-sizing: content-box; padding: 14px; margin: -11px -14px -14px;
	}
.dp .lb__bar-title {
		font-size: 16px; line-height: 22px; color: var(--c-text);
		display: block; max-height: 66px; overflow-y: auto;
	}
.dp .lb__cap { display: none; }
.dp .lb__stage {
		display: flex; align-items: center; justify-content: center;
		flex: 1 1 auto; min-height: 0;
		padding: 20px var(--pad);
		touch-action: pan-y pinch-zoom;   
	}
.dp .lb__img { height: auto; width: 100%; max-height: 100%; }
.dp .lb--landscape .lb__img { aspect-ratio: 678 / 480; max-width: none; }
}
@media (max-width: 639px) and (max-height: 600px) {
.dp .stickycta { padding: 8px 16px; box-shadow: none; }
.dp .stickycta__btn { min-height: 44px; padding-block: 12px; font-size: 14px; line-height: 16px; }
}
@media (max-width: 639px) and (max-height: 480px) {
.dp .stickycta { display: none; }
}
@media (scripting: none) and (min-width: 640px), (min-width: 640px) and (max-height: 500px) and (pointer: coarse) {
.dp .rmodal { position: static; display: block; z-index: auto; padding: var(--pad-sec) 0; }
.dp .rmodal__overlay, .dp .rmodal__close, .dp .reviews__cta { display: none !important; }
.dp .rmodal__box { position: static; }
.dp .rmodal__dialog { width: auto; max-width: 640px; max-height: none; padding: 0; overflow: visible; opacity: 1; transform: none; transition: none; }
}
@media (min-width: 640px) {
.dp:not(.dp-js) .rmodal { position: static; display: block; z-index: auto; padding: var(--pad-sec) 0; }
.dp:not(.dp-js) .rmodal__overlay, .dp:not(.dp-js) .rmodal__close, .dp:not(.dp-js) .reviews__cta { display: none !important; }
.dp:not(.dp-js) .rmodal__box { position: static; }
.dp:not(.dp-js) .rmodal__dialog { width: auto; max-width: 640px; max-height: none; padding: 0; overflow: visible; opacity: 1; transform: none; transition: none; }
}
@media (prefers-reduced-motion: reduce) {
.dp *, .dp *::before, .dp *::after {
		animation-duration: 1ms !important;
		animation-delay: 0ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 1ms !important;
		transition-delay: 0ms !important;
		scroll-behavior: auto !important;
	}
.dp .dcarousel__track { scroll-behavior: auto; }
.dp .acc__body, .dp .acc__body * { transition: none !important; }
.dp .rate__star:hover { transform: none; }
}
@media (scripting: none), print {
.dp .tl__item.is-hidden, .dp .dreview.is-hidden { display: flex !important; }
.dp .srv__item.is-hidden, .dp .srv__head.is-hidden, .dp .dis__item.is-hidden { display: list-item !important; }
.dp .acc:not(.is-open) .acc__body, .dp .faq__item:not(.is-open) .acc__body {
		grid-template-rows: 1fr; overflow: visible; opacity: 1; visibility: visible;
	}
.dp .acc__body[hidden="until-found"] { content-visibility: visible; }
.dp .more-tail[hidden="until-found"] { content-visibility: visible; }
.dp .clamp p { display: block; -webkit-line-clamp: unset; overflow: visible; }
.dp .dcarousel__track { flex-wrap: wrap; row-gap: 32px; overflow: visible; scroll-snap-type: none; }
.dp .posts > .dpost { display: flex !important; }
.dp .dates, .dp .slots__caption, .dp .slots__grid, .dp .bkspec { display: none !important; }
.dp [data-more], .dp [data-posts-more], .dp [data-clamp-toggle], .dp .acc__toggle, .dp .faq__chev, .dp .dnavs, .dp .dcarousel__dots, .dp .rsort, .dp .attach, .dp .reviews__cta { display: none !important; }
}
.dp:not(.dp-js) .tl__item.is-hidden, .dp:not(.dp-js) .dreview.is-hidden { display: flex !important; }
.dp:not(.dp-js) .srv__item.is-hidden, .dp:not(.dp-js) .srv__head.is-hidden, .dp:not(.dp-js) .dis__item.is-hidden { display: list-item !important; }
.dp:not(.dp-js) .acc:not(.is-open) .acc__body, .dp:not(.dp-js) .faq__item:not(.is-open) .acc__body {
		grid-template-rows: 1fr; overflow: visible; opacity: 1; visibility: visible;
	}
.dp:not(.dp-js) .acc__body[hidden="until-found"] { content-visibility: visible; }
.dp:not(.dp-js) .more-tail[hidden="until-found"] { content-visibility: visible; }
.dp:not(.dp-js) .clamp p { display: block; -webkit-line-clamp: unset; overflow: visible; }
.dp:not(.dp-js) .dcarousel__track { flex-wrap: wrap; row-gap: 32px; overflow: visible; scroll-snap-type: none; }
.dp:not(.dp-js) .posts > .dpost { display: flex !important; }
.dp:not(.dp-js) .dates, .dp:not(.dp-js) .slots__caption, .dp:not(.dp-js) .slots__grid, .dp:not(.dp-js) .bkspec { display: none !important; }
.dp:not(.dp-js) [data-more], .dp:not(.dp-js) [data-posts-more], .dp:not(.dp-js) [data-clamp-toggle], .dp:not(.dp-js) .acc__toggle, .dp:not(.dp-js) .faq__chev, .dp:not(.dp-js) .dnavs, .dp:not(.dp-js) .dcarousel__dots, .dp:not(.dp-js) .rsort, .dp:not(.dp-js) .attach, .dp:not(.dp-js) .reviews__cta { display: none !important; }
@media print {
.dp .booking, .dp .hero__actions, .dp .stickycta, .dp .rmodal, .dp .lb, .dp .srv__btn, .dp .cta, .dp .faq__more, .dp .licenses__more, .dp .posts__more { display: none !important; }
.dp a[href]::after { content: none !important; }
.dp .ddoc, .dp .dreview, .dp .tl__item, .dp .srv__item, .dp .dpost, .dp .offer, .dp .spec, .dp .faq__item, .dp .dis__item, .dp .reply { break-inside: avoid; }
.dp .dsection__title { break-after: avoid; }
}

/* ── Стыковка с темой Aspro (см. prefix_css.py → DP_TWEAKS) ─────────────── */
.dp {
	/* Токен --font объявлен в :root прототипа и оттуда попадает в правило .dp, которое
	   идёт ПОЗЖЕ базового блока — поэтому семейство подменяем именно в токене. */
	--font: "Littera Plain Raw", Arial, sans-serif;
	--header-h: 74px;
}
.dp .dsection__in, .dp .hero__in { max-width: none; padding-inline: 0; margin-inline: auto; }

/* Верх страницы: снимаем тройное сложение отступов тема + макет (см. комментарий выше).
   Файл грузится только на карточке врача, других страниц эти правила не касаются. */
.body section.page-top { padding-top: 24px; min-height: 0; }
.body section.page-top .breadcrumb { margin-bottom: 0; }
[role="main"] > #content.container { padding-top: 0; }
.dp .hero { padding-top: 32px; }
@media (max-width: 959px) {
	.dp .hero { padding-top: 24px; }
}

/* Полоса дат на телефоне «вытекает» за края секции, чтобы прокручиваться от края
   до края. В прототипе боковой отступ секции — var(--pad) (20px), и вылет считается
   от него; в шаблоне отступ даёт колонка темы (16px), а padding-inline секции здесь
   обнулён — из-за этого полоса вылезала на 4px и страница ехала по горизонтали. */
@media (max-width: 639px) {
	.dp .dates { margin-inline: -16px; padding-inline: 16px; scroll-padding-inline: 16px; }
	/* По той же причине hero и форма отзыва: прототип даёт им padding-inline var(--pad),
	   а в шаблоне боковой отступ уже есть у колонки темы — ФИО, цены, кнопка записи и
	   поля формы начинались с 36px, а все остальные секции с 16px. */
	.dp .hero__info, .dp .hero__head, .dp .dprices, .dp .hero__actions, .dp .hero__bottom,
	.dp .rmodal__dialog { padding-inline: 0; }
	/* Портрет во всю ширину экрана, как во фрейме 390: колонка темы даёт по 16px с боков,
	   выводим его на них. width: auto во flex-колонке схлопывается — поэтому calc. */
	.dp .hero__portrait { margin-inline: -16px; width: calc(100% + 32px); max-width: none; }
	.dp .hero__portrait.is-noimg { aspect-ratio: auto; height: 291px; }
}

/* Прокрутка к якорям (#booking, #reviews, «Показать ещё»): сверху 74px липкая шапка
   темы (+16), снизу 59px баннер «Имеются противопоказания» (+16). На телефоне шапка
   64px, а снизу ещё липкая кнопка записи (73px). Точный нижний отступ dp.js ставит
   инлайном по фактическим высотам. Файл грузится только на карточке врача.
   scroll-margin на [id] НЕ добавлять: он сложился бы с scroll-padding. */
html { scroll-padding: 90px 0 75px; }
@media (max-width: 639px) {
	html { scroll-padding: 80px 0 146px; }
}

/* Виджет чата qarm (connect.qarm.org, подключён только на проде): fixed right/bottom
   20px с z-index 99999 — закрывал липкую кнопку записи и лежал поверх модалки и
   лайтбокса. Класс dp-sticky-on и переменную --dp-sticky-h ставит dp.js. */
html.dp-sticky-on .qarm-chat-wrapper { bottom: calc(var(--dp-sticky-h, 150px) + 12px) !important; }
html.dp-locked .qarm-chat-wrapper { visibility: hidden !important; }

/* Пока печатают отзыв, липкая кнопка записи и баннер темы не закрывают поле
   над экранной клавиатурой. */
@media (max-width: 639px), (max-height: 500px) and (pointer: coarse) {
	.dp:has(.dinput:focus) .stickycta { display: none !important; }
	body:has(.dp .dinput:focus) .banner_warning { display: none !important; }
}

/* Телефон-заглушка в записи виден только без работающего скрипта карточки */
.dp.dp-js .slots__fallback { display: none; }

/* Блокировка прокрутки под модалкой отзыва и лайтбоксом. У темы на html стоит
   overflow-x: hidden, поэтому overflow body не переходит на вьюпорт и прокручивается
   сам html — одного body.dp-locked мало. Класс на оба узла ставит dp.js. */
html.dp-locked { overflow: hidden; scrollbar-gutter: stable; }   /* без сдвига на ширину полосы */
