/*
 * Оформление страниц специалистов, филиалов и блоков на услугах.
 * Цвета и шрифты — из глобальных настроек сайта.
 */

.dz-page {
	--dz-blue: #004CA1;
	--dz-blue-dark: #003A7A;
	--dz-blue-soft: #E8F0FA;
	--dz-dark: #2F3640;
	--dz-text: #6B7280;
	--dz-line: #E4E9F0;
	--dz-bg: #F5F8FC;
	--dz-red: #E03A3A;
	--dz-red-dark: #C42B2B;

	font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	color: var(--dz-dark);
	width: 100%;
	padding: 8px 0 56px;
	box-sizing: border-box;
}

.dz-page *,
.dz-page *::before,
.dz-page *::after { box-sizing: border-box; }

.dz-container {
	width: 100%;
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 20px;
}

.dz-page img { max-width: 100%; height: auto; }
.dz-page { overflow-wrap: break-word; }

/* ------------------------------------------------------------ заголовки */

/*
 * Тема отдаёт заголовкам декоративный шрифт — в длинных названиях он плохо читается.
 * Внутри наших блоков возвращаем тот же шрифт, что у текста. !important нужен:
 * шрифт назначается плагином шрифтов с высоким приоритетом.
 */
.dz-page h1,
.dz-page h2,
.dz-page h3,
.dz-page .dz-hero__name,
.dz-page .dz-branch__title,
.dz-page .dz-section__title {
	font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
	letter-spacing: 0;
	text-transform: none;
}

.dz-section { margin: 44px 0 0; }

.dz-section__title {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 22px;
	line-height: 1.3;
	color: var(--dz-dark);
	margin: 0 0 20px;
	font-weight: 700;
}

/* иконка без подложки: квадраты с заливкой утяжеляли каждый заголовок */
.dz-section__icon {
	flex: 0 0 22px;
	width: 22px;
	height: 22px;
	color: var(--dz-blue);
}

/* Размер задаём только своим иконкам. Чужим — лишь потолок, чтобы не растягивались. */
.dz-page .dz-icon {
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
}

.dz-page .dz-section__icon { width: 22px; height: 22px; flex: 0 0 22px; }
.dz-page svg { max-width: 100%; }

.dz-page p { line-height: 1.7; margin: 0 0 14px; font-size: 16px; }
.dz-muted { color: var(--dz-text); font-size: 15px; }

.dz-link { display: inline-block; margin-top: 14px; color: var(--dz-blue); font-weight: 500; }

/* --------------------------------------------------------- шапка профиля */

.dz-hero {
	background: var(--dz-bg);
	border-radius: 18px;
	padding: 28px;
	display: grid;
	grid-template-columns: 190px 1fr;
	gap: 28px;
	align-items: start;
	margin-top: 20px;
}

.dz-hero__photo {
	width: 190px;
	height: 225px;
	border-radius: 14px;
	overflow: hidden;
	background: #fff;
}

.dz-hero__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* когда фотографии нет — не пустое место, а плашка с инициалами */
.dz-hero__nophoto {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	background: linear-gradient(140deg, #4E8BD4 0%, #004CA1 100%);
	color: #fff;
}

.dz-hero__initials { font-size: 52px; font-weight: 700; letter-spacing: 1px; line-height: 1; }
.dz-hero__nophoto-label { font-size: 12px; opacity: .8; letter-spacing: .04em; text-transform: uppercase; }

.dz-hero__name {
	font-size: 34px;
	line-height: 1.15;
	color: var(--dz-blue);
	margin: 0 0 10px;
	font-weight: 700;
}

.dz-hero__role { font-size: 19px; color: var(--dz-dark); margin: 0 0 14px; line-height: 1.4; }

.dz-badge {
	display: inline-block;
	background: #fff;
	color: var(--dz-blue);
	border: 1px solid rgba(0, 76, 161, .18);
	border-radius: 20px;
	padding: 6px 14px;
	font-size: 14px;
	margin-bottom: 18px;
}

/* адреса приёма: одной строкой, без лишней высоты */
.dz-hero__places {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid rgba(0, 76, 161, .12);
	font-size: 15px;
	line-height: 1.5;
}

.dz-hero__places > .dz-icon { color: var(--dz-blue); margin-top: 2px; }

.dz-hero__place {
	color: var(--dz-blue);
	font-weight: 500;
	text-decoration: none;
}

.dz-hero__place:hover { text-decoration: underline; }

/* второй и следующие адреса отделяются точкой */
.dz-hero__place + .dz-hero__place::before {
	content: "·";
	color: var(--dz-text);
	margin: 0 8px;
	font-weight: 400;
}

.dz-hero__cabinet { color: var(--dz-text); }
.dz-hero__cabinet::before { content: "·"; margin: 0 8px; }

/* ---------------------------------------------------------- факты цифрами */

/*
 * Факты одной строкой, без коробок. Четыре плашки с тенями занимали
 * половину первого экрана ради четырёх коротких значений — на телефоне
 * это выливалось в лишнюю прокрутку.
 */
.dz-facts {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 18px;
}

.dz-facts__item { display: flex; align-items: baseline; gap: 6px; }

/* разделитель точкой между фактами */
.dz-facts__item + .dz-facts__item::before {
	content: "·";
	color: var(--dz-line);
	margin-right: 12px;
}

.dz-facts__value {
	font-size: 18px;
	font-weight: 700;
	color: var(--dz-blue);
	line-height: 1.3;
	white-space: nowrap;
}

.dz-facts__label { font-size: 14px; color: var(--dz-text); line-height: 1.3; }

/* -------------------------------------------------- две колонки профиля */

.dz-page--specialist,
.dz-page--branch,
.dz-hub { background: #fff; }

.dz-hub { padding-top: 36px; }

/*
 * Блоки на страницах услуг встают между секциями Elementor, поэтому
 * оформляются как отдельные полосы во всю ширину, а не колонкой в сайдбаре.
 */
.dz-service-block {
	background: #FAFBFD;
	padding: 48px 0 90px;
	/* отрицательный нижний отступ подтягивает следующую секцию Elementor вплотную */
	margin: 48px 0 -48px;
}

/* блок со стоимостью и адресами — на голубой подложке, как просил заказчик */
.dz-service-block--price {
	background-image: linear-gradient(135deg, #E8F4FD 0%, #F0F7FC 100%);
}

.dz-service-block .dz-section { margin: 0; }

.dz-section__lead {
	font-size: 17px;
	color: var(--dz-text);
	margin: -8px 0 24px;
	max-width: 760px;
	line-height: 1.65;
}

.dz-subtitle {
	font-size: 18px;
	font-weight: 600;
	color: var(--dz-dark);
	margin: 32px 0 16px;
}

.dz-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 28px;
	align-items: start;
	margin-top: 28px;
}

/*
 * Разделы отделяются линией, а не рамкой с фоном: страница из шести коробок
 * читается тяжелее, чем спокойный текст с воздухом между блоками.
 */
.dz-main .dz-section {
	background: transparent;
	border: 0;
	border-top: 1px solid var(--dz-line);
	border-radius: 0;
	padding: 28px 0 0;
	margin: 28px 0 0;
}

.dz-main > .dz-section:first-child { border-top: 0; padding-top: 0; margin-top: 0; }

.dz-main .dz-review-form {
	background: #fff;
	border: 1px solid var(--dz-line);
	border-radius: 16px;
	padding: 24px 26px;
	margin: 32px 0 0;
}

.dz-lead { font-size: 17px; color: var(--dz-dark); }

/* правая колонка едет вместе с прокруткой, отступ — под закреплённую шапку */
.dz-aside {
	position: sticky;
	top: 90px;
	display: grid;
	gap: 16px;
}

.dz-panel {
	background: #fff;
	border: 1px solid var(--dz-line);
	border-radius: 16px;
	padding: 20px;
}

/* блок записи стоит отдельно — он с заливкой, склеивать его с белыми панелями незачем */
.dz-panel.dz-booking { margin-bottom: 20px; }

/*
 * Панели просто идут друг за другом. Раньше они склеивались отрицательным
 * отступом и линией-псевдоэлементом — лишняя механика ради вида одного блока.
 */
.dz-aside .dz-panel + .dz-panel {
	border-top: 1px solid var(--dz-line);
	border-radius: 20px;
}

.dz-aside .dz-panel + .dz-panel::before { display: none; }

.dz-panel__title {
	display: flex;
	align-items: center;
	gap: 9px;
	font-size: 16px;
	font-weight: 700;
	color: var(--dz-dark);
	margin: 0 0 16px;
}

.dz-panel__title .dz-icon { color: var(--dz-blue); width: 18px; height: 18px; }

/* блок записи */
.dz-booking {
	background: linear-gradient(150deg, var(--dz-blue) 0%, #0062CC 100%);
	border: 0;
	text-align: center;
	color: #fff;
}

.dz-booking__price { font-size: 28px; font-weight: 700; line-height: 1.1; }
.dz-booking__meta { font-size: 14px; opacity: .85; margin-top: 6px; }

.dz-booking__button {
	display: block;
	margin-top: 14px;
	background: #fff;
	color: var(--dz-blue);
	border-radius: 24px;
	padding: 12px 16px;
	font-size: 17px;
	font-weight: 700;
	text-decoration: none;
	transition: transform .15s;
}

.dz-booking__button:hover { transform: translateY(-2px); }
.dz-booking__note { font-size: 13px; opacity: .85; margin: 12px 0 0; line-height: 1.5; }

/* филиал в правой колонке */
.dz-place {
	display: block;
	text-decoration: none;
	padding: 14px 0;
	border-bottom: 1px solid var(--dz-line);
}

.dz-place:last-child { border-bottom: 0; padding-bottom: 0; }
.dz-place:first-of-type { padding-top: 0; }
.dz-place__name { display: block; font-weight: 600; color: var(--dz-blue); font-size: 15px; }
.dz-place__addr,
.dz-place__hours { display: block; font-size: 13px; color: var(--dz-text); margin-top: 4px; line-height: 1.45; }

/* ---------------------------------------------------------------- теги */

.dz-tags { display: flex; flex-wrap: wrap; gap: 7px; }

.dz-tag {
	display: inline-block;
	background: #F2F6FB;
	color: #3B4A5C;
	border-radius: 7px;
	padding: 6px 11px;
	font-size: 14px;
	line-height: 1.35;
}

/* --------------------------------------------------------------- списки */

/* направления в две колонки: одним столбцом это простыня на 20 строк */
.dz-list {
	margin: 0;
	padding: 0;
	list-style: none;
	columns: 2;
	column-gap: 32px;
}

/* ------------------------------------------------------- выделенный блок */

.dz-note {
	background: var(--dz-bg);
	border-left: 4px solid var(--dz-blue);
	border-radius: 0 12px 12px 0;
	padding: 18px 22px;
}

/* -------------------------------------------------------------- карточки */

.dz-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 16px;
}

.dz-card {
	display: block;
	border: 1px solid var(--dz-line);
	border-radius: 12px;
	padding: 16px;
	text-decoration: none;
	color: inherit;
	background: #fff;
	transition: border-color .2s;
}

.dz-card:hover { border-color: var(--dz-blue); }

/* карточка человека: фото сверху и крупно, подписи по центру — так ряд смотрится ровным */
.dz-card--person {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 12px;
	padding: 20px 14px;
}

.dz-card__name { display: block; font-weight: 600; color: var(--dz-blue); line-height: 1.35; font-size: 16px; }.dz-card__addr,
.dz-card__hours,
.dz-card__exp {
	display: block;
	font-size: 14px;
	color: var(--dz-text);
	margin-top: 6px;
	line-height: 1.45;
}

/* длинные перечисления должностей режем, иначе карточки разной высоты */
.dz-card--person .dz-card__role {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* специалисты — по трое в ряд, карточки одинаковой высоты */
.dz-cards--people {
	grid-template-columns: repeat(3, 1fr);
	align-items: stretch;
	gap: 20px;
}

.dz-card--place .dz-card__name { padding-left: 26px; position: relative; }

.dz-card--place .dz-card__name::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1px;
	width: 18px;
	height: 18px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C8.1 2 5 5.1 5 9c0 5.2 7 13 7 13s7-7.8 7-13c0-3.9-3.1-7-7-7zm0 9.5A2.5 2.5 0 1112 6.5a2.5 2.5 0 010 5z' fill='%23004CA1'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------------------------------------------------------------- плашки */

.dz-chips { display: flex; flex-wrap: wrap; gap: 10px; }

.dz-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 11px 18px;
	border-radius: 24px;
	background: var(--dz-blue-soft);
	color: var(--dz-blue);
	text-decoration: none;
	font-size: 15px;
	font-weight: 500;
	transition: background .2s, color .2s;
}

.dz-chip::after {
	content: "→";
	font-size: 15px;
	opacity: .5;
	transition: transform .2s;
}

.dz-chip:hover { background: var(--dz-blue); color: #fff; }
.dz-chip:hover::after { transform: translateX(3px); opacity: 1; }

/* --------------------------------------------------------------- филиал */

.dz-branch__head {
	background: linear-gradient(135deg, #F5F8FC 0%, #E8F0FA 100%);
	border-radius: 20px;
	padding: 28px 32px;
	margin-top: 20px;
}

.dz-props { margin: 0; }
.dz-props dt { font-size: 12px; color: var(--dz-text); text-transform: uppercase; letter-spacing: .05em; margin-top: 18px; font-weight: 500; }
.dz-props dt:first-child { margin-top: 0; }
.dz-props dd { margin: 6px 0 0; font-size: 17px; }
.dz-props a { color: var(--dz-blue); text-decoration: none; font-weight: 500; }
.dz-props__note { display: block; font-size: 14px; color: var(--dz-text); font-weight: 400; }

.dz-branch__links { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 10px; }

/* карта видна сразу; сам iframe грузится лениво, при прокрутке до него */
.dz-map {
	position: relative;
	background: var(--dz-blue-soft);
	border-radius: 16px;
	min-height: 300px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	text-align: center;
	padding: 24px;
}

.dz-map { padding: 0; overflow: hidden; }
.dz-map iframe { width: 100%; height: 340px; border: 0; display: block; }

.dz-map__button {
	background: var(--dz-blue);
	color: #fff;
	border: 0;
	border-radius: 26px;
	padding: 13px 26px;
	font-size: 15px;
	font-weight: 500;
	cursor: pointer;
	font-family: inherit;
}

.dz-map__button:hover { background: var(--dz-blue-dark); }
.dz-map__hint { font-size: 14px; color: var(--dz-text); }

/* --------------------------------------------------------------- отзывы */

.dz-reviews__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 18px;
}

.dz-review {
	border: 1px solid var(--dz-line);
	border-radius: 16px;
	padding: 24px;
	background: #fff;
	position: relative;
}

.dz-review__rating { color: #F5A623; letter-spacing: 3px; margin-bottom: 10px; font-size: 15px; }
.dz-review__text { font-size: 15px; line-height: 1.65; color: var(--dz-dark); }
.dz-review__text p:last-child { margin-bottom: 0; }

.dz-review__meta {
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid var(--dz-line);
	font-size: 13px;
	color: var(--dz-text);
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
}

.dz-review__author { font-weight: 600; color: var(--dz-dark); }
.dz-review__source a { color: var(--dz-text); }

/* остальные отзывы — под кнопкой, чтобы лента не вытесняла всё остальное */
.dz-reviews__more { margin: 18px 0 20px; }

.dz-reviews__toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	list-style: none;
	padding: 11px 24px;
	border: 1px solid var(--dz-line);
	border-radius: 24px;
	font-size: 15px;
	font-weight: 500;
	color: var(--dz-blue);
	transition: border-color .2s, background .2s;
}

.dz-reviews__toggle::-webkit-details-marker { display: none; }
.dz-reviews__toggle::after { content: "▾"; font-size: 12px; opacity: .6; }
.dz-reviews__toggle:hover { border-color: var(--dz-blue); background: var(--dz-blue-soft); }

/* когда все отзывы показаны, кнопке больше нечего предлагать — убираем её */
.dz-reviews__more[open] .dz-reviews__toggle { display: none; }

/* ------------------------------------------------------------------ CTA */

.dz-cta {
	margin: 48px 0 0;
	padding: 32px 36px;
	background: linear-gradient(135deg, var(--dz-blue) 0%, #0062CC 100%);
	border-radius: 18px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
}

.dz-cta__text { color: #fff; font-size: 22px; font-weight: 600; line-height: 1.3; }

.dz-cta__button {
	background: #fff;
	color: var(--dz-blue);
	padding: 14px 30px;
	border-radius: 26px;
	text-decoration: none;
	font-weight: 700;
	font-size: 18px;
	white-space: nowrap;
	transition: transform .2s;
}

.dz-cta__button:hover { transform: scale(1.03); }

/* ---------------------------------------------------- блоки на услугах */

.dz-service-blocks { margin-top: 24px; }

.dz-faq__item {
	border: 1px solid var(--dz-line);
	border-radius: 12px;
	margin-bottom: 10px;
	background: #fff;
}

.dz-faq__q {
	width: 100%;
	text-align: left;
	background: none;
	border: 0;
	padding: 18px 48px 18px 20px;
	font-size: 17px;
	font-weight: 500;
	color: var(--dz-dark);
	cursor: pointer;
	position: relative;
	font-family: inherit;
	line-height: 1.4;
	list-style: none;
}

.dz-faq__q::-webkit-details-marker { display: none; }

.dz-faq__q::after {
	content: "+";
	position: absolute;
	right: 18px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 24px;
	color: var(--dz-blue);
	line-height: 1;
}

.dz-faq__item[open] { border-color: rgba(0, 76, 161, .3); }
.dz-faq__item[open] .dz-faq__q::after { content: "−"; }
.dz-faq__a { padding: 0 20px 18px; font-size: 16px; line-height: 1.7; color: var(--dz-text); }
.dz-faq__a p:last-child { margin-bottom: 0; }

/* ------------------------------------------------------------- хабы */

.dz-hub__title {
	font-size: 34px;
	font-weight: 700;
	color: var(--dz-blue);
	margin: 0 0 8px;
	line-height: 1.2;
}

.dz-hub__addr { display: block; font-size: 14px; font-weight: 400; color: var(--dz-text); margin-top: 6px; }
.dz-hub .dz-section__title a { color: inherit; text-decoration: none; }
.dz-hub .dz-section__title a:hover { color: var(--dz-blue); }

/* --------------------------------------------------------- форма отзыва */

.dz-review-form {
	background: var(--dz-bg);
	border-radius: 18px;
	padding: 30px 34px 34px;
}

.dz-review-form .dz-section__title { margin-top: 0; }

/* форма занимает всю ширину блока: узкая колонка смотрелась обрубком */
.dz-form { width: 100%; max-width: none; }

.dz-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
}

.dz-form__field { display: block; margin-bottom: 18px; }

.dz-form__label {
	display: block;
	font-size: 14px;
	font-weight: 500;
	color: var(--dz-dark);
	margin-bottom: 8px;
}

.dz-form input[type="text"],
.dz-form select,
.dz-form textarea {
	width: 100%;
	border: 1.5px solid var(--dz-line);
	border-radius: 12px;
	padding: 14px 16px;
	font-size: 16px;
	font-family: inherit;
	color: var(--dz-dark);
	background: #fff;
	transition: border-color .15s, box-shadow .15s;
	-webkit-appearance: none;
	appearance: none;
}

.dz-form textarea { min-height: 150px; resize: vertical; line-height: 1.6; }

.dz-form input[type="text"]::placeholder,
.dz-form textarea::placeholder { color: #A8B0BC; }

.dz-form input[type="text"]:hover,
.dz-form select:hover,
.dz-form textarea:hover { border-color: #C3D2E6; }

.dz-form input[type="text"]:focus,
.dz-form select:focus,
.dz-form textarea:focus {
	outline: none;
	border-color: var(--dz-blue);
	box-shadow: 0 0 0 4px rgba(0, 76, 161, .12);
}

/* своя стрелка у выпадающего списка вместо системной */
.dz-form select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23004CA1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 20px;
	padding-right: 44px;
	cursor: pointer;
}

.dz-form__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.dz-form__actions {
	display: flex;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
	margin-top: 4px;
}

.dz-form__submit {
	background: var(--dz-blue);
	color: #fff;
	border: 0;
	border-radius: 28px;
	padding: 15px 38px;
	font-size: 16px;
	font-weight: 600;
	font-family: inherit;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(0, 76, 161, .25);
	transition: background .15s, transform .15s, box-shadow .15s;
}

button.dz-form__submit { border: 0; }

.dz-form__submit:hover {
	background: var(--dz-blue-dark);
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(0, 76, 161, .3);
}

.dz-form__submit:active { transform: translateY(0); }

.dz-form__note { font-size: 13px; color: var(--dz-text); margin: 0; flex: 1 1 220px; line-height: 1.5; }

.dz-notice { padding: 15px 20px; border-radius: 12px; font-size: 15px; margin-bottom: 18px; }
.dz-notice--ok { background: #E8F5EA; color: #1a7f37; }
.dz-notice--error { background: #FDECEC; color: #a00; }

/* ------------------------------------------------------------- планшеты */

@media (max-width: 900px) {
	.dz-hero { grid-template-columns: 180px 1fr; gap: 24px; padding: 24px; }
	.dz-hero__photo { width: 180px; height: 215px; }
	.dz-hero__name { font-size: 28px; }
	.dz-cards--people { grid-template-columns: 1fr 1fr; }
	.dz-layout { grid-template-columns: 1fr; gap: 20px; }
	.dz-aside { position: static; grid-template-columns: 1fr 1fr; }
}

/* ------------------------------------------------------------- телефоны */

@media (max-width: 640px) {
	.dz-page { padding: 4px 0 32px; }
	.dz-container { padding: 0 16px; }

	/*
	 * На телефоне цена и телефон уезжали в самый низ — до них надо было
	 * пролистать всю страницу. Поднимаем блок записи сразу под шапку.
	 */
	.dz-layout { display: flex; flex-direction: column; gap: 0; margin-top: 20px; }

	aside.dz-aside {
		order: -1;
		width: 100%;
		margin-bottom: 24px;
	}

	/* факты в строку переносятся сами, коробок больше нет */
	.dz-facts { gap: 4px 14px; }
	.dz-facts__value { font-size: 17px; }
	.dz-facts__label { font-size: 13px; }
	.dz-facts__item + .dz-facts__item::before { margin-right: 8px; }

	.dz-hero {
		grid-template-columns: 1fr;
		gap: 18px;
		padding: 20px 16px;
		text-align: center;
		border-radius: 14px;
	}

	.dz-hero__photo { width: 140px; height: 165px; margin: 0 auto; }
	.dz-hero__photo--branch { width: 100%; max-width: 280px; height: 180px; }
	.dz-hero__name { font-size: 24px; }
	.dz-hero__role { font-size: 16px; }
	.dz-hero__places { text-align: left; margin-top: 14px; padding-top: 14px; }
	.dz-facts { justify-content: center; }

	.dz-section { margin-top: 34px; }
	.dz-section__title { font-size: 20px; padding-left: 13px; }

	.dz-cards, .dz-reviews__list { grid-template-columns: 1fr; }
	.dz-cards--people { grid-template-columns: 1fr 1fr; gap: 12px; }
	.dz-aside { grid-template-columns: 1fr; }
	.dz-main .dz-section { padding-top: 24px; margin-top: 24px; }
	.dz-main .dz-review-form { padding: 20px 16px; }
	.dz-booking__price { font-size: 26px; }
	.dz-section__title { font-size: 19px; gap: 9px; }
	.dz-card__name { font-size: 15px; }
	.dz-review-form { padding: 24px 18px; }
	.dz-form__row { grid-template-columns: 1fr; gap: 0; }
	.dz-form__submit { width: 100%; }
	.dz-form__actions { gap: 14px; }

	.dz-cta { flex-direction: column; align-items: stretch; text-align: center; padding: 26px 20px; }
	.dz-cta__text { font-size: 19px; }
	.dz-cta__button { text-align: center; }
}

/* ============================================================== филиал */

/* шапка филиала: с фотографией здания — в две колонки, без неё — во всю ширину */
.dz-hero--wide { grid-template-columns: 1fr; }

.dz-hero__photo--branch { width: 260px; height: 200px; }

.dz-hero--wide .dz-hero__name { font-size: 32px; }
.dz-hero--wide .dz-hero__role { font-size: 18px; color: var(--dz-text); }

/* карта, пока не заданы координаты */
.dz-map--empty { flex-direction: column; gap: 10px; }
.dz-map--empty .dz-icon { width: 30px; height: 30px; color: var(--dz-blue); }
.dz-map--empty .dz-map__hint { font-size: 16px; color: var(--dz-dark); font-weight: 500; }

.dz-route {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 18px 0 0;
	font-size: 15px;
	color: var(--dz-text);
}

.dz-route .dz-icon { color: var(--dz-blue); margin-top: 3px; }

.dz-booking__label {
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: .06em;
	opacity: .85;
	margin-bottom: 10px;
}

.dz-booking .dz-booking__button + .dz-booking__button { margin-top: 10px; }

.dz-outlink {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	border: 1px solid var(--dz-line);
	border-radius: 20px;
	color: var(--dz-blue);
	text-decoration: none;
	font-size: 14px;
	transition: border-color .2s, background .2s;
}

.dz-outlink:hover { border-color: var(--dz-blue); background: var(--dz-blue-soft); }
.dz-outlink::after { content: "↗"; opacity: .6; }

/* ========================================================= разделы-хабы */

/* сводка над списком специалистов */
.dz-summary {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 16px;
	background: linear-gradient(135deg, #F5F8FC 0%, #E8F0FA 100%);
	border-radius: 18px;
	padding: 24px;
	margin-bottom: 32px;
}

.dz-summary__item { text-align: center; }

.dz-summary__value {
	display: block;
	font-size: 32px;
	font-weight: 700;
	color: var(--dz-blue);
	line-height: 1.1;
}

.dz-summary__label { display: block; font-size: 13px; color: var(--dz-text); margin-top: 6px; }

.dz-hub__group {
	background: #fff;
	border: 1px solid var(--dz-line);
	border-radius: 18px;
	padding: 26px 30px;
	margin: 0 0 20px;
}

.dz-hub__group .dz-section__title { margin-bottom: 22px; }

/* счётчик специалистов справа в заголовке филиала */
.dz-hub__count {
	margin-left: auto;
	background: var(--dz-blue-soft);
	color: var(--dz-blue);
	border-radius: 18px;
	padding: 5px 14px;
	font-size: 15px;
	font-weight: 700;
	flex: 0 0 auto;
}

/* карточки филиалов на странице контактов */
.dz-branches {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 20px;
}

.dz-branch-card {
	background: #fff;
	border: 1px solid var(--dz-line);
	border-radius: 18px;
	padding: 0 0 24px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: border-color .2s;
}

/* фотография здания — то же изображение, что стояло в старых блоках */
.dz-branch-card__photo {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--dz-bg);
}

.dz-branch-card__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .3s;
}

.dz-branch-card__photo:hover img { transform: scale(1.03); }

.dz-branch-card > *:not(.dz-branch-card__photo) { margin-left: 24px; margin-right: 24px; }

.dz-branch-card:hover { border-color: var(--dz-blue); box-shadow: 0 10px 28px rgba(0, 76, 161, .1); }

.dz-branch-card__name { font-size: 20px; font-weight: 700; margin: 20px 0 14px; line-height: 1.25; }
.dz-branch-card__name a { color: var(--dz-blue); text-decoration: none; }
.dz-branch-card__name a:hover { text-decoration: underline; }

.dz-branch-card__row {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0 0 10px;
	font-size: 15px;
	color: var(--dz-text);
	line-height: 1.5;
}

.dz-branch-card__row .dz-icon { color: var(--dz-blue); width: 18px; height: 18px; margin-top: 2px; }
.dz-branch-card__row a { color: var(--dz-blue); text-decoration: none; font-weight: 500; }

/* лица специалистов внахлёст — сразу видно, что филиал живой */
.dz-branch-card__people {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 16px 0 20px;
	padding-top: 16px;
	border-top: 1px solid var(--dz-line);
}

.dz-mini {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--dz-blue-soft);
	border: 2px solid #fff;
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
}

.dz-mini:not(:first-child) { margin-left: -18px; }
.dz-mini img { width: 100%; height: 100%; object-fit: cover; display: block; }

.dz-mini__initials {
	font-size: 13px;
	font-weight: 700;
	color: #fff;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(140deg, #4E8BD4 0%, #004CA1 100%);
}

.dz-branch-card__count { font-size: 14px; color: var(--dz-text); margin-left: 6px; }

.dz-branch-card__more {
	margin-top: auto;
	color: var(--dz-blue);
	font-weight: 500;
	text-decoration: none;
	font-size: 15px;
}

.dz-branch-card__more::after { content: " →"; }
.dz-branch-card__more:hover { text-decoration: underline; }

/* ------------------------------------------------------------- телефоны */

@media (max-width: 900px) {
	.dz-hero--wide .dz-hero__name { font-size: 26px; }
	.dz-hero__photo--branch { width: 200px; height: 155px; }
	.dz-summary { padding: 20px; }
}

@media (max-width: 640px) {
	.dz-hub__group { padding: 20px 16px; border-radius: 14px; }
	.dz-hub__count { margin-left: 0; }
	.dz-section__title { flex-wrap: wrap; }
	.dz-summary { grid-template-columns: 1fr 1fr; gap: 12px; padding: 18px; }
	.dz-summary__value { font-size: 26px; }
	.dz-branches { grid-template-columns: 1fr; }
	.dz-branch-card { padding: 20px 18px; }
	.dz-hub { padding-top: 24px; }
	.dz-service-block { padding: 32px 0 60px; margin: 32px 0 -32px; }
	.dz-subtitle { font-size: 17px; margin: 26px 0 14px; }
}

/* ============================================ карточка специалиста */

/*
 * Такая же, как на главной странице сайта: фотография, под ней имя,
 * должность, стаж, адрес приёма и ссылка «Подробнее».
 */
.dz-cards--people {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
	align-items: stretch;
}

.dz-person {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--dz-line);
	border-radius: 16px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: border-color .2s, box-shadow .2s;
}

.dz-person:hover {
	border-color: var(--dz-blue);
	box-shadow: 0 10px 26px rgba(0, 76, 161, .12);
}

.dz-person__photo {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--dz-blue-soft);
}

.dz-person__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .35s;
}

.dz-person:hover .dz-person__photo img { transform: scale(1.04); }

.dz-person__initials {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(140deg, #4E8BD4 0%, #004CA1 100%);
	color: #fff;
	font-size: 40px;
	font-weight: 700;
	letter-spacing: 1px;
}

.dz-person__body {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 18px 20px 20px;
	flex: 1;
}

.dz-person__name {
	font-size: 17px;
	font-weight: 700;
	color: var(--dz-blue);
	line-height: 1.3;
}

.dz-person__role {
	font-size: 15px;
	color: var(--dz-dark);
	line-height: 1.4;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.dz-person__exp { font-size: 14px; color: var(--dz-text); }

.dz-person__place {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	font-size: 13px;
	color: var(--dz-text);
	line-height: 1.4;
}

.dz-person__place .dz-icon { width: 15px; height: 15px; color: var(--dz-blue); margin-top: 1px; }

/* «Подробнее» прижата к низу — карточки в ряду выглядят одинаково */
.dz-person__more {
	margin-top: auto;
	padding-top: 14px;
	font-size: 15px;
	font-weight: 600;
	color: var(--dz-red);
}

.dz-person__more::after { content: " →"; }

@media (max-width: 900px) {
	.dz-cards--people { grid-template-columns: 1fr 1fr; gap: 16px; }
}

@media (max-width: 640px) {
	.dz-cards--people { grid-template-columns: 1fr 1fr; gap: 12px; }
	.dz-person__body { padding: 14px 14px 16px; gap: 5px; }
	.dz-person__name { font-size: 15px; }
	.dz-person__role { font-size: 13.5px; }
	.dz-person__exp, .dz-person__place { font-size: 12.5px; }
	.dz-person__more { font-size: 14px; padding-top: 10px; }
}

/* ================================= правки по замечаниям заказчика */

/* Шапка профиля: фото крупнее, акцент на специальности и стаже */
.dz-page--specialist .dz-hero { grid-template-columns: 260px 1fr; gap: 32px; }
.dz-page--specialist .dz-hero__photo { width: 260px; height: 310px; }

.dz-page--specialist .dz-hero__name { font-size: 36px; margin-bottom: 12px; }

.dz-page--specialist .dz-hero__role {
	font-size: 22px;
	font-weight: 600;
	color: var(--dz-dark);
	margin: 0 0 12px;
}

.dz-hero__exp { font-size: 17px; color: var(--dz-text); margin: 0 0 14px; }
.dz-hero__exp strong { color: var(--dz-dark); font-weight: 700; }

.dz-hero__age {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
	color: var(--dz-text);
	margin: 0;
}

.dz-hero__age .dz-icon { color: var(--dz-blue); }

/* Блок записи: кнопка вместо телефона, телефон отдельной строкой */
.dz-booking__button {
	background: var(--dz-red);
	color: #fff;
	font-size: 17px;
	letter-spacing: .01em;
	box-shadow: 0 6px 18px rgba(224, 58, 58, .35);
}

.dz-booking__button:hover { background: var(--dz-red-dark); color: #fff; }

.dz-booking__phone {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 12px;
	color: #fff;
	font-size: 17px;
	font-weight: 600;
	text-decoration: none;
}

.dz-booking__phone .dz-icon { width: 17px; height: 17px; }
.dz-booking__phone:hover { text-decoration: underline; color: #fff; }

.dz-edu { list-style: none; margin: 0; padding: 0; }

/*
 * У пунктов образования была та же иконка, что у заголовка блока, —
 * это читалось как повтор. Вместо неё вертикальная черта слева.
 */
.dz-edu__item {
	position: relative;
	padding: 4px 0 4px 18px;
	margin-bottom: 14px;
	font-size: 15.5px;
	line-height: 1.55;
	color: var(--dz-dark);
}

.dz-edu__item:last-child { margin-bottom: 0; }

.dz-edu__item::before {
	content: "";
	position: absolute;
	left: 0;
	top: 4px;
	bottom: 4px;
	width: 3px;
	border-radius: 2px;
	background: var(--dz-blue-soft);
}

/* Дата актуализации данных */
.dz-updated {
	margin: 28px 0 0;
	padding-top: 18px;
	border-top: 1px solid var(--dz-line);
	font-size: 13px;
	color: var(--dz-text);
}

@media (max-width: 900px) {
	.dz-page--specialist .dz-hero { grid-template-columns: 200px 1fr; gap: 24px; }
	.dz-page--specialist .dz-hero__photo { width: 200px; height: 240px; }
	.dz-page--specialist .dz-hero__name { font-size: 28px; }
	.dz-page--specialist .dz-hero__role { font-size: 19px; }
}

@media (max-width: 640px) {
	.dz-page--specialist .dz-hero { grid-template-columns: 1fr; }
	.dz-page--specialist .dz-hero__photo { width: 170px; height: 205px; margin: 0 auto; }
	.dz-page--specialist .dz-hero__name { font-size: 24px; }
	.dz-page--specialist .dz-hero__role { font-size: 17px; }
	.dz-hero__age { justify-content: center; }
	}

/* ===================================== страница филиала: правки */

/*
 * Шапка филиала: фотография слева во всю высоту блока, справа название,
 * адрес и три строки с фактами. Прежний вариант — лента фактов через точки —
 * рассыпался при переносе: разделители оставались висеть в начале строк.
 */
.dz-page--branch .dz-hero {
	grid-template-columns: 300px minmax(0, 1fr);
	gap: 28px;
	padding: 24px;
	align-items: stretch;
}

.dz-page--branch .dz-hero--wide { grid-template-columns: 1fr; }

.dz-hero__photo--branch { width: 300px; height: 100%; min-height: 230px; }

.dz-page--branch .dz-hero__name { font-size: 28px; line-height: 1.2; margin-bottom: 8px; }
.dz-page--branch .dz-hero__role { font-size: 16px; color: var(--dz-text); margin: 0 0 18px; }

/* факты строками с иконками */
.dz-meta {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 20px;
}

.dz-meta__item {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 15px;
	line-height: 1.4;
	color: var(--dz-text);
}

.dz-meta__item .dz-icon { color: var(--dz-blue); width: 18px; height: 18px; }
.dz-meta__item strong { color: var(--dz-dark); font-weight: 700; }
.dz-meta__item a { color: var(--dz-blue); font-weight: 600; text-decoration: none; }
.dz-meta__item a:hover { text-decoration: underline; }
.dz-meta__sep { margin: 0 6px; color: var(--dz-line); }

/* «этаж 2», «офис 208» — уточнение из карточки организации, не часть адреса */
.dz-hero__addrnote { color: var(--dz-text); }
.dz-hero__addrnote::before { content: "·"; margin: 0 6px; }

/* на филиале колонка уже — карточки специалистов идут по две в ряд */
.dz-page--branch .dz-cards--people { grid-template-columns: 1fr 1fr; }

/* Направления работы — блоками, а не мелкими плашками */
.dz-services {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 14px;
}

.dz-service {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 18px 20px;
	border: 1px solid var(--dz-line);
	border-radius: 14px;
	background: #fff;
	text-decoration: none;
	transition: border-color .2s, background .2s;
}

.dz-service:hover { border-color: var(--dz-blue); background: var(--dz-bg); }

.dz-service__name {
	font-size: 17px;
	font-weight: 600;
	color: var(--dz-blue);
	line-height: 1.3;
}

.dz-service__name::after { content: " →"; opacity: .45; }
.dz-service__meta { font-size: 14px; color: var(--dz-text); }
.dz-service__dot { margin: 0 4px; }

/* Карта и контакты рядом, одним блоком */
.dz-place-info {
	display: grid;
	grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
	gap: 28px;
	align-items: start;
}

.dz-place-info .dz-map { min-height: 300px; }
.dz-place-info .dz-map iframe { height: 320px; }

@media (max-width: 900px) {
	.dz-page--branch .dz-hero { grid-template-columns: 220px 1fr; gap: 22px; }
	.dz-hero__photo--branch { width: 220px; height: 165px; }
	.dz-place-info { grid-template-columns: 1fr; gap: 20px; }
}

@media (max-width: 640px) {
	.dz-page--branch .dz-hero { grid-template-columns: 1fr; }
	.dz-hero__photo--branch { width: 100%; max-width: 300px; height: 190px; margin: 0 auto; }
	.dz-services { grid-template-columns: 1fr; }
	.dz-place-info .dz-map iframe { height: 260px; }
}

/* Авторский текст, сохранённый из прежних секций страницы услуги */
.dz-prose {
	max-width: unset;
	margin: 0 0 24px;
	font-size: 16px;
	line-height: 1.75;
	color: var(--dz-dark);
}

.dz-prose p { margin: 0 0 12px; }
.dz-prose p:last-child { margin-bottom: 0; }
.dz-prose ul, .dz-prose ol { margin: 0 0 12px; padding-left: 22px; }
.dz-prose li { margin-bottom: 6px; line-height: 1.65; }

/* ==================================================== блоки на услугах
 *
 * Повторяют прежние секции страницы: заголовок и вводный текст по центру,
 * карточки в три колонки, ссылка на общий раздел под ними. Размеры, цвета
 * и тени взяты из оформления, которое было на сайте до наших блоков.
 */

.dz-section--center { text-align: center; }

/*
 * Заголовок блока набирается тем же шрифтом, что и остальные заголовки
 * страницы: наш блок стоит между секциями Elementor, и выбиваться из ряда
 * ему нельзя. Шрифт темы подключён плагином шрифтов с !important,
 * поэтому здесь мы своё правило про Roboto просто отменяем.
 */
.dz-service-block .dz-block-title,
.dz-service-block h2.dz-block-title {
	font-family: "vogue", "Roboto", -apple-system, BlinkMacSystemFont, sans-serif !important;
}

.dz-block-title {
	font-size: 34px;
	font-weight: 600;
	line-height: 1.25;
	color: var(--dz-blue);
	margin: 0 0 18px;
}

.dz-section--center .dz-prose {
	max-width: 70%;
	margin: 0 auto 28px;
	font-size: 18px;
	line-height: 1.6;
	text-align: center;
}

.dz-section--center .dz-subtitle {
	font-size: 18px;
	font-weight: 400;
	color: #1A3C5E;
	margin: 34px 0 18px;
}

/* текст внутри блока выравниваем по центру, а карточки и вопросы — как обычно */
.dz-section--center .dz-cards,
.dz-section--center .dz-places,
.dz-section--center .dz-faq__item { text-align: left; }

.dz-block-action { margin-top: 28px; }

/* карточки филиалов не должны слипаться с подзаголовком над ними */
.dz-section--center .dz-subtitle + .dz-places { margin-top: 22px; }

.dz-button {
	display: inline-block;
	background: var(--dz-blue);
	color: #fff;
	border-radius: 15px;
	padding: 13px 30px;
	font-size: 16px;
	font-weight: 500;
	text-decoration: none;
	transition: background .2s, color .2s, box-shadow .2s;
}

.dz-button:hover {
	background: #fff;
	color: var(--dz-blue);
	box-shadow: inset 0 0 0 2px var(--dz-blue);
}

/* карточки филиалов: метка, адрес, часть города — как в прежней секции */
.dz-places {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 20px;
}

.dz-place-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 100px;
	padding: 18px 16px;
	background: #fff;
	border-radius: 15px;
	box-shadow: 1px 0 13px -1px rgba(0, 76, 161, .35);
	text-align: center;
	text-decoration: none;
	transition: box-shadow .2s, transform .2s;
}

.dz-place-card:hover { box-shadow: 1px 0 15px 3px rgba(0, 76, 161, .35); transform: translateY(-2px); }

.dz-place-card__icon { color: #F53871; line-height: 0; margin-bottom: 4px; }
.dz-place-card__icon .dz-icon { width: 30px; height: 30px; }

.dz-place-card__name {
	font-size: 17.8px;
	letter-spacing: .4px;
	color: var(--dz-blue);
	line-height: 1.25;
	font-weight: 600;
}

.dz-place-card__district { font-size: 15.5px; color: #000; }

/* ================================== карточка специалиста: фотография */

/*
 * Сама карточка оформлена выше — светлая рамка, скругление, ссылка
 * «Подробнее» внизу. Здесь только кадрирование: фотография квадратная
 * и обрезается по верхней трети, иначе у портретов в полный рост
 * срезало головы.
 */
.dz-person__photo { aspect-ratio: 1 / 1; }
.dz-person__photo img { object-position: 50% 22%; }
.dz-person__body { text-align: left; }

/* ================================ направления работы карточками */

/* Как на главной: снимок слева, название справа */
.dz-dirs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 16px;
}

.dz-dir {
	display: flex;
	align-items: center;
	gap: 15px;
	background: #fff;
	border: 5px solid rgba(0, 76, 161, .05);
	border-radius: 15px;
	box-shadow: 1px 0 13px -1px rgba(0, 76, 161, .35);
	overflow: hidden;
	text-decoration: none;
	transition: box-shadow .2s;
}

.dz-dir:hover { box-shadow: 1px 0 15px 2px rgba(0, 76, 161, .35); }

.dz-dir__photo {
	flex: 0 0 68px;
	width: 68px;
	height: 100px;
	overflow: hidden;
	background: var(--dz-blue-soft);
}

.dz-dir__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

.dz-dir__nophoto {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(140deg, #4E8BD4 0%, #004CA1 100%);
	color: #fff;
}

/* подпись направления — шрифтом сайта, как на главной */
.dz-dir__name {
	font-family: "vogue", "Roboto", -apple-system, sans-serif !important;
	font-size: 19px;
	text-transform: uppercase;
	letter-spacing: .7px;
	color: var(--dz-blue);
	line-height: 1.25;
	padding-right: 12px;
}

/* ======================== шапка и запись рядом, с самого верха */

.dz-layout--top { margin-top: 0; }
.dz-layout--top .dz-hero { margin-top: 20px; }

/* панель записи держится у верхней кромки экрана при прокрутке */
.dz-layout--top .dz-aside { margin-top: 20px; }

/* первая секция после шапки не нуждается в разделительной линии */
.dz-main > .dz-hero + .dz-section { border-top: 0; }

/*
 * Краткое описание — строкой во всю ширину шапки, под фотографией и текстом.
 * Набрано мельче остального: это справка для поиска, а не главное на странице.
 */
.dz-hero__summary {
	grid-column: 1 / -1;
	margin: -10px 0 0;
	padding: 0;
	background: transparent;
	font-size: 14px;
	line-height: 1.6;
	color: var(--dz-dark);
	opacity: .7;
}

/* списки ссылок: статьи и профили специалиста */
.dz-links { list-style: none; margin: 0; padding: 0; }

.dz-links__item {
	position: relative;
	padding-left: 18px;
	margin-bottom: 12px;
	line-height: 1.55;
}

.dz-links__item:last-child { margin-bottom: 0; }

.dz-links__item::before {
	content: "";
	position: absolute;
	left: 0;
	top: 9px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--dz-blue);
	opacity: .5;
}

.dz-links__item a { color: var(--dz-blue); text-decoration: none; font-size: 16px; }
.dz-links__item a:hover { text-decoration: underline; }

/* ============================ простой список направлений */

/*
 * Плашки на два десятка позиций складывались в пёструю мозаику.
 * Обычный список в две колонки читается спокойнее.
 */
.dz-plain {
	list-style: none;
	margin: 0;
	padding: 0;
	columns: 2;
	column-gap: 36px;
}

.dz-plain__item {
	position: relative;
	padding: 0 0 0 18px;
	margin-bottom: 10px;
	font-size: 16px;
	line-height: 1.5;
	color: var(--dz-dark);
	break-inside: avoid;
}

.dz-plain__item::before {
	content: "";
	position: absolute;
	left: 0;
	top: 9px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--dz-blue);
	opacity: .5;
}

/* ==================================== образование: свёрнутый блок */

.dz-fold { width: 100%; }

.dz-fold__head {
	display: flex;
	align-items: center;
	gap: 14px;
	cursor: pointer;
	list-style: none;
	padding-right: 30px;
	position: relative;
}

.dz-fold__head::-webkit-details-marker { display: none; }

/* синий, как остальные заголовки разделов */
.dz-fold__title { margin: 0; flex: 1 1 auto; color: var(--dz-blue); }

.dz-fold__count {
	font-size: 14px;
	color: var(--dz-text);
	white-space: nowrap;
}

.dz-fold__hide { display: none; }
.dz-fold[open] .dz-fold__show { display: none; }
.dz-fold[open] .dz-fold__hide { display: inline; }

.dz-fold__head::after {
	content: "";
	position: absolute;
	right: 4px;
	top: 50%;
	width: 10px;
	height: 10px;
	margin-top: -7px;
	border-right: 2px solid var(--dz-blue);
	border-bottom: 2px solid var(--dz-blue);
	transform: rotate(45deg);
	transition: transform .2s;
}

.dz-fold[open] .dz-fold__head::after { transform: rotate(-135deg); margin-top: -3px; }
.dz-fold__body { padding-top: 20px; }

/* ==================================================== дипломы */

.dz-diploma-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 16px;
	margin-top: 22px;
}

.dz-diploma {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	border-radius: 12px;
	overflow: hidden;
	background: var(--dz-bg);
	border: 1px solid var(--dz-line);
	cursor: zoom-in;
}

.dz-diploma img { width: 100%; height: 100%; object-fit: cover; display: block; }

.dz-diploma__zoom {
	position: absolute;
	right: 8px;
	bottom: 8px;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: rgba(0, 76, 161, .85);
	color: #fff;
	font-size: 18px;
	line-height: 28px;
	text-align: center;
}

.dz-diploma--sample { border-style: dashed; }

.dz-diploma-note {
	grid-column: 1 / -1;
	font-size: 14px;
	color: var(--dz-text);
	margin: 0;
	line-height: 1.55;
}

/* просмотр во весь экран */
.dz-zoom {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: none;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 40px 20px 60px;
	background: rgba(16, 24, 36, .92);
}

.dz-zoom.is-open { display: flex; }

.dz-zoom__image {
	max-width: min(92vw, 1100px);
	max-height: 82vh;
	border-radius: 8px;
	background: #fff;
	display: block;
}

.dz-zoom__close,
.dz-zoom__nav {
	background: rgba(255, 255, 255, .12);
	color: #fff;
	border: 0;
	border-radius: 50%;
	width: 44px;
	height: 44px;
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
	flex: 0 0 auto;
	transition: background .15s;
}

.dz-zoom__close:hover,
.dz-zoom__nav:hover { background: rgba(255, 255, 255, .25); }

.dz-zoom__close { position: absolute; top: 20px; right: 20px; }

.dz-zoom__caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 20px;
	text-align: center;
	color: #fff;
	font-size: 15px;
	margin: 0;
	opacity: .8;
}

.dz-zoom--single .dz-zoom__nav { display: none; }

/* ------------------------------------------------- планшеты и телефоны */

@media (max-width: 900px) {
	.dz-block-title { font-size: 27px; }
	.dz-section--center .dz-prose { max-width: 100%; font-size: 17px; }

	/*
	 * Одна колонка: шапка, сразу под ней запись, дальше остальное.
	 * display:contents поднимает содержимое левой колонки на уровень сетки,
	 * иначе блок записи уезжал бы в самый низ страницы.
	 */
	.dz-layout--top { display: flex; flex-direction: column; }
	.dz-layout--top .dz-main { display: contents; }
	.dz-layout--top .dz-hero { order: -2; margin-bottom: 16px; }
	.dz-layout--top .dz-aside { order: -1; margin: 0 0 6px; }
}

@media (max-width: 640px) {
	.dz-block-title { font-size: 23px; }
	.dz-section--center .dz-prose { font-size: 16px; text-align: left; }
	.dz-places { grid-template-columns: 1fr; gap: 14px; }
	.dz-dirs { grid-template-columns: 1fr; }
	.dz-plain { columns: 1; }
	.dz-diploma-grid { grid-template-columns: 1fr 1fr; }
	.dz-fold__count { display: none; }
	.dz-zoom { padding: 20px 10px 50px; }
	.dz-zoom__nav { width: 38px; height: 38px; font-size: 22px; }
}
