/*
 * Blitz 2 — misc.css
 * Owns (CONTRACT §3): search page (incl. AI block + skeleton shimmer),
 * 404, generic page/single typography (.bz-prose), comments.
 * Colors/radii/shadows come ONLY from the --bz-* tokens defined in base.css.
 */

/* ============================================================
   1. Search / generic hero (teal band, per catalog hero spec)
   ============================================================ */

.bz-shero {
	background: var(--bz-teal);
	color: #fff;
	padding: 44px 0 48px;
}

.bz-shero--slim {
	padding: 38px 0 42px;
}

.bz-shero__crumbs {
	font-size: 13px;
	font-weight: 600;
	color: var(--bz-on-teal-crumb);
	margin: 0 0 14px;
}

.bz-shero__crumbs a {
	color: inherit;
	text-decoration: none;
}

.bz-shero__crumbs a:hover {
	color: #fff;
}

.bz-shero__crumbsep {
	margin: 0 6px;
}

.bz-shero__title {
	font-size: 42px;
	font-weight: 800;
	letter-spacing: -0.8px;
	line-height: 1.1;
	margin: 0;
	overflow-wrap: anywhere;
}

.bz-shero__title span {
	color: var(--bz-orange-200);
}

.bz-shero__count {
	font-size: 16px;
	color: var(--bz-on-teal-body);
	margin: 10px 0 0;
	max-width: 560px;
}

.bz-shero__count p {
	margin: 0;
}

/* ------------------------------------------------------------
   Shared search form (hero variant on teal, flat variant on white)
   ------------------------------------------------------------ */

.bz-sform {
	display: flex;
	align-items: center;
	gap: 8px;
	background: #fff;
	border-radius: var(--bz-r-lg, 14px);
	padding: 7px;
	max-width: 640px;
}

.bz-sform--hero {
	margin-top: 22px;
	box-shadow: var(--bz-sh-search, 0 18px 40px rgba(8, 20, 45, 0.28));
}

.bz-sform--flat {
	border: 1px solid var(--bz-border-input);
	max-width: 460px;
	margin: 0 auto 20px;
}

.bz-sform__field {
	display: flex;
	align-items: center;
	gap: 8px;
	flex: 1;
	min-width: 0;
	padding-left: 12px;
	color: var(--bz-gray-400);
	cursor: text;
}

.bz-sform__field .bz-icon {
	flex: 0 0 auto;
}

.bz-sform__input {
	flex: 1;
	min-width: 0;
	border: 0;
	outline: none;
	background: transparent;
	font: inherit;
	font-size: 15px;
	color: var(--bz-ink);
	padding: 10px 4px;
}

.bz-sform__input::placeholder {
	color: var(--bz-gray-400);
}

/* ============================================================
   2. Search results
   ============================================================ */

.bz-ssection {
	padding: 0 0 40px;
}

.bz-sresults {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	align-items: stretch;
	padding: 26px 0 10px;
}

/* Plain (non service/specialist) result card. */
.bz-sresult {
	display: flex;
	flex-direction: column;
	gap: 8px;
	background: #fff;
	border: 1px solid var(--bz-border);
	border-radius: var(--bz-r-xl, 16px);
	padding: 18px;
	color: var(--bz-ink);
	text-decoration: none;
	transition: transform 0.12s, box-shadow 0.12s;
}

.bz-sresult:hover {
	transform: translateY(-2px);
	box-shadow: var(--bz-sh-card-hover, 0 12px 30px rgba(16, 32, 60, 0.12));
}

.bz-sresult__type {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: var(--bz-gray-400);
}

.bz-sresult__title {
	font-size: 16px;
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: -0.2px;
	margin: 0;
	color: var(--bz-ink);
}

.bz-sresult__text {
	font-size: 13px;
	line-height: 1.5;
	color: var(--bz-gray-500);
	margin: 0;
}

.bz-sresult__more {
	margin-top: auto;
	padding-top: 10px;
	font-size: 13px;
	font-weight: 700;
	color: var(--bz-teal);
}

/* Empty state (mirrors the catalog empty state). */
.bz-sempty {
	text-align: center;
	padding: 60px 20px 50px;
}

.bz-sempty__title {
	font-size: 18px;
	font-weight: 800;
	margin: 0 0 6px;
}

.bz-sempty__text {
	font-size: 14px;
	color: var(--bz-gray-500);
	margin: 0 0 18px;
}

.bz-sempty__actions {
	display: flex;
	gap: 10px;
	justify-content: center;
	flex-wrap: wrap;
}

/* Pagination (WP the_posts_pagination / the_comments_pagination). */
.bz-main .navigation.pagination,
.bz-main .navigation.comments-pagination {
	display: flex;
	justify-content: center;
	padding: 22px 0 10px;
}

.bz-main .navigation .nav-links {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	align-items: center;
}

.bz-main .navigation .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 12px;
	border: 1px solid var(--bz-border-input);
	border-radius: var(--bz-r-btn, 10px);
	background: #fff;
	color: var(--bz-slate);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	transition: border-color 0.12s, color 0.12s;
}

.bz-main .navigation a.page-numbers:hover {
	border-color: var(--bz-teal);
	color: var(--bz-teal);
}

.bz-main .navigation .page-numbers.current {
	background: var(--bz-teal);
	border-color: var(--bz-teal);
	color: #fff;
}

.bz-main .navigation .page-numbers.dots {
	border: 0;
	background: transparent;
}

/* ============================================================
   3. AI suggestion block («Возможно, вам подойдёт»)
   ============================================================ */

.bz-aisearch {
	padding: 34px 0 10px;
}

.bz-aisearch__head {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin: 0 0 6px;
}

.bz-aisearch__title {
	font-size: 24px;
	font-weight: 800;
	letter-spacing: -0.4px;
	margin: 0;
}

.bz-aisearch__badge {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.2px;
	color: var(--bz-teal);
	background: var(--bz-teal-100);
	border-radius: var(--bz-r-sm, 7px);
	padding: 4px 8px;
}

.bz-aisearch__sub {
	font-size: 14px;
	color: var(--bz-gray-500);
	margin: 0 0 18px;
}

.bz-aisearch__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	align-items: stretch;
}

.bz-aisearch__grid[hidden] {
	display: none;
}

/* Skeleton cards with shimmer while the endpoint answers. */
.bz-aisk {
	display: flex;
	flex-direction: column;
	gap: 10px;
	background: #fff;
	border: 1px solid var(--bz-border);
	border-radius: var(--bz-r-xl, 16px);
	padding: 18px;
	min-height: 128px;
}

.bz-aisk__line {
	height: 12px;
	border-radius: var(--bz-r-sm, 7px);
	background: linear-gradient(90deg, var(--bz-bg-2) 25%, var(--bz-bg-3) 37%, var(--bz-bg-2) 63%);
	background-size: 400% 100%;
	animation: bzshimmer 1.3s ease infinite;
}

.bz-aisk__line--lg {
	height: 18px;
	width: 80%;
}

.bz-aisk__line--sm {
	width: 55%;
	margin-top: auto;
}

.bz-aisk__line--xs {
	width: 35%;
}

@keyframes bzshimmer {
	0% {
		background-position: 100% 0;
	}

	100% {
		background-position: 0 0;
	}
}

/* JS-rendered AI result card (renderer in blitz.js emits these classes). */
.bz-airesult {
	display: flex;
	flex-direction: column;
	gap: 6px;
	background: #fff;
	border: 1px solid var(--bz-border);
	border-radius: var(--bz-r-xl, 16px);
	padding: 18px;
	color: var(--bz-ink);
	text-decoration: none;
	transition: transform 0.12s, box-shadow 0.12s;
	animation: bzfade 0.18s ease both;
}

.bz-airesult:hover {
	transform: translateY(-2px);
	box-shadow: var(--bz-sh-card-hover, 0 12px 30px rgba(16, 32, 60, 0.12));
}

.bz-airesult__cat {
	font-size: 12px;
	font-weight: 600;
	color: var(--bz-gray-400);
}

.bz-airesult__title {
	font-size: 16px;
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: -0.2px;
	margin: 0;
	color: var(--bz-ink);
}

.bz-airesult__kind {
	font-size: 13px;
	color: var(--bz-gray-500);
}

.bz-airesult__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: auto;
	padding-top: 12px;
	border-top: 1px solid var(--bz-bg);
}

.bz-airesult__price {
	font-size: 15px;
	font-weight: 800;
	color: var(--bz-teal);
}

/* ============================================================
   4. 404
   ============================================================ */

.bz-notfound {
	padding: 56px 0 40px;
}

.bz-notfound__card {
	background: #fff;
	border: 1px solid var(--bz-border);
	border-radius: var(--bz-r-2xl, 18px);
	box-shadow: var(--bz-sh-sidebar, 0 6px 24px rgba(16, 32, 60, 0.06));
	padding: 60px 24px 54px;
	text-align: center;
	max-width: 760px;
	margin: 0 auto;
}

.bz-notfound__code {
	font-size: clamp(96px, 18vw, 150px);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -6px;
	color: var(--bz-teal);
}

.bz-notfound__title {
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -0.5px;
	margin: 10px 0 8px;
}

.bz-notfound__text {
	font-size: 15px;
	line-height: 1.5;
	color: var(--bz-gray-500);
	margin: 0 auto 24px;
	max-width: 460px;
}

.bz-notfound__actions {
	display: flex;
	gap: 10px;
	justify-content: center;
	flex-wrap: wrap;
}

/* ============================================================
   5. Generic article shell (page.php / single.php) + prose
   ============================================================ */

.bz-article-zone {
	padding: 36px 0 40px;
}

.bz-article {
	background: #fff;
	border: 1px solid var(--bz-border);
	border-radius: var(--bz-r-2xl, 18px);
	padding: 34px 38px;
	max-width: 860px;
	margin: 0 auto;
}

.bz-article__meta {
	font-size: 13px;
	font-weight: 600;
	color: var(--bz-gray-400);
	margin: 0 0 10px;
}

.bz-article__title {
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -0.6px;
	line-height: 1.15;
	margin: 0 0 18px;
}

.bz-article__thumb {
	border-radius: var(--bz-r-md, 12px);
	overflow: hidden;
	margin: 0 0 20px;
}

.bz-article__thumb img {
	display: block;
	width: 100%;
	height: auto;
}

.bz-article__pages {
	margin-top: 18px;
	font-size: 14px;
	font-weight: 700;
	color: var(--bz-gray-500);
}

.bz-article__pages a {
	color: var(--bz-teal);
	text-decoration: none;
	margin: 0 3px;
}

/* Prose — long-form content typography. */
.bz-prose {
	font-size: 16px;
	line-height: 1.6;
	color: var(--bz-slate);
}

.bz-prose > *:first-child {
	margin-top: 0;
}

.bz-prose > *:last-child {
	margin-bottom: 0;
}

.bz-prose p {
	margin: 0 0 1em;
}

.bz-prose h2 {
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -0.3px;
	line-height: 1.25;
	color: var(--bz-ink);
	margin: 1.6em 0 0.6em;
}

.bz-prose h3 {
	font-size: 18px;
	font-weight: 800;
	letter-spacing: -0.2px;
	line-height: 1.3;
	color: var(--bz-ink);
	margin: 1.5em 0 0.5em;
}

.bz-prose h4,
.bz-prose h5,
.bz-prose h6 {
	font-size: 16px;
	font-weight: 700;
	color: var(--bz-ink);
	margin: 1.4em 0 0.5em;
}

.bz-prose a {
	color: var(--bz-teal);
	font-weight: 600;
}

.bz-prose ul,
.bz-prose ol {
	margin: 0 0 1em;
	padding-left: 1.3em;
}

.bz-prose li {
	margin: 0 0 0.4em;
}

.bz-prose img {
	max-width: 100%;
	height: auto;
	border-radius: var(--bz-r-md, 12px);
}

.bz-prose blockquote {
	margin: 0 0 1em;
	padding: 14px 18px;
	border-left: 3px solid var(--bz-teal);
	background: var(--bz-bg-3);
	border-radius: 0 var(--bz-r-md, 12px) var(--bz-r-md, 12px) 0;
	color: var(--bz-ink-2);
}

.bz-prose blockquote p:last-child {
	margin-bottom: 0;
}

.bz-prose hr {
	border: 0;
	border-top: 1px solid var(--bz-border);
	margin: 1.6em 0;
}

.bz-prose table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	margin: 0 0 1em;
}

.bz-prose th,
.bz-prose td {
	border: 1px solid var(--bz-border);
	padding: 9px 12px;
	text-align: left;
}

.bz-prose th {
	background: var(--bz-bg-3);
	font-weight: 700;
	color: var(--bz-ink);
}

.bz-prose code {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.9em;
	background: var(--bz-bg-2);
	border-radius: var(--bz-r-xs, 5px);
	padding: 2px 6px;
}

.bz-prose pre {
	background: var(--bz-bg-3);
	border: 1px solid var(--bz-border);
	border-radius: var(--bz-r-md, 12px);
	padding: 14px 16px;
	overflow-x: auto;
	margin: 0 0 1em;
}

.bz-prose pre code {
	background: none;
	padding: 0;
}

/* ============================================================
   6. Comments
   ============================================================ */

.bz-commentszone {
	margin-top: 22px;
}

.bz-commentszone__title {
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -0.3px;
	margin: 0 0 12px;
}

.bz-commentszone__closed {
	font-size: 14px;
	color: var(--bz-gray-500);
	margin: 0 0 14px;
}

.bz-comments {
	list-style: none;
	margin: 0 0 10px;
	padding: 0;
}

.bz-comments .children {
	list-style: none;
	margin: 0;
	padding-left: 26px;
}

.bz-comments .comment-body {
	padding: 16px 0;
	border-top: 1px solid var(--bz-bg);
}

.bz-comments > li:first-child > .comment-body {
	border-top: 0;
	padding-top: 4px;
}

.bz-comments .avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
}

.bz-comments .comment-author {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
}

.bz-comments .comment-author .fn {
	font-weight: 700;
	font-style: normal;
	color: var(--bz-ink);
}

.bz-comments .comment-author .fn a {
	color: inherit;
	text-decoration: none;
}

.bz-comments .says {
	display: none;
}

.bz-comments .comment-metadata {
	font-size: 12px;
	color: var(--bz-gray-400);
	margin: 4px 0 0 50px;
}

.bz-comments .comment-metadata a {
	color: var(--bz-gray-400);
	font-weight: 600;
	text-decoration: none;
}

.bz-comments .comment-content {
	margin: 10px 0 0 50px;
	font-size: 15px;
	line-height: 1.55;
	color: var(--bz-slate);
}

.bz-comments .comment-content p {
	margin: 0 0 0.6em;
}

.bz-comments .comment-content p:last-child {
	margin-bottom: 0;
}

.bz-comments .reply {
	margin: 8px 0 0 50px;
}

.bz-comments .comment-reply-link {
	font-size: 13px;
	font-weight: 700;
	color: var(--bz-teal);
	text-decoration: none;
}

.bz-comments .comment-awaiting-moderation {
	display: block;
	font-size: 12px;
	color: var(--bz-warn-ink);
	background: var(--bz-warn-bg);
	border: 1px solid var(--bz-warn-bd);
	border-radius: var(--bz-r-sm, 7px);
	padding: 6px 10px;
	margin: 8px 0 0 50px;
}

/* Comment form. */
.comment-respond {
	margin-top: 18px;
}

.comment-respond .comment-reply-title {
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -0.3px;
	margin: 0 0 12px;
}

.comment-respond .comment-reply-title small {
	font-size: 13px;
	font-weight: 600;
	margin-left: 8px;
}

.comment-respond .comment-reply-title small a {
	color: var(--bz-gray-500);
	text-decoration: none;
}

.comment-respond .comment-notes,
.comment-respond .logged-in-as {
	font-size: 13px;
	color: var(--bz-gray-500);
	margin: 0 0 14px;
}

.comment-respond .comment-form p {
	margin: 0 0 14px;
}

.comment-respond label {
	display: block;
	font-size: 13px;
	font-weight: 700;
	color: var(--bz-slate);
	margin: 0 0 6px;
}

.comment-respond input[type="text"],
.comment-respond input[type="email"],
.comment-respond input[type="url"],
.comment-respond textarea {
	width: 100%;
	border: 1px solid var(--bz-border-input);
	border-radius: var(--bz-r-btn, 10px);
	padding: 12px 14px;
	font: inherit;
	font-size: 15px;
	color: var(--bz-ink);
	background: #fff;
}

.comment-respond input[type="text"]:focus,
.comment-respond input[type="email"]:focus,
.comment-respond input[type="url"]:focus,
.comment-respond textarea:focus {
	border-color: var(--bz-teal);
	outline: none;
	box-shadow: 0 0 0 3px var(--bz-teal-100);
}

.comment-respond textarea {
	min-height: 110px;
	resize: vertical;
}

.comment-respond .comment-form-cookies-consent {
	display: flex;
	align-items: flex-start;
	gap: 8px;
}

.comment-respond .comment-form-cookies-consent input {
	margin-top: 3px;
}

.comment-respond .comment-form-cookies-consent label {
	display: inline;
	margin: 0;
	font-size: 13px;
	font-weight: 500;
	color: var(--bz-gray-500);
}

.comment-respond .form-submit {
	margin: 4px 0 0;
}

/* ============================================================
   7. Responsive — 1024 (tablet) / 720 (mobile), per CONTRACT §3
   ============================================================ */

@media (max-width: 1024px) {
	.bz-sresults,
	.bz-aisearch__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.bz-shero__title {
		font-size: 34px;
	}
}

@media (max-width: 720px) {
	.bz-shero {
		padding: 28px 0 30px;
	}

	.bz-shero--slim {
		padding: 26px 0 28px;
	}

	.bz-shero__title {
		font-size: 30px;
	}

	.bz-shero__count {
		font-size: 14px;
	}

	.bz-sform {
		flex-direction: column;
		align-items: stretch;
		padding: 8px;
	}

	.bz-sform__field {
		padding: 4px 8px;
	}

	.bz-sform .bz-btn {
		width: 100%;
	}

	.bz-sresults,
	.bz-aisearch__grid {
		grid-template-columns: 1fr;
	}

	.bz-aisearch__title {
		font-size: 20px;
	}

	.bz-notfound {
		padding: 34px 0 20px;
	}

	.bz-notfound__card {
		padding: 40px 16px 36px;
	}

	.bz-notfound__code {
		letter-spacing: -4px;
	}

	.bz-notfound__title {
		font-size: 22px;
	}

	.bz-article-zone {
		padding: 22px 0 28px;
	}

	.bz-article {
		padding: 22px 16px;
	}

	.bz-article__title {
		font-size: 22px;
	}

	.bz-comments .children {
		padding-left: 12px;
	}

	.bz-comments .comment-metadata,
	.bz-comments .comment-content,
	.bz-comments .reply,
	.bz-comments .comment-awaiting-moderation {
		margin-left: 0;
	}
}

/* Archive filter tabs (e.g. /specialists/ Nalog.nl vs Партнеры) */
.bz-archive-tabs {
	margin-top: 20px;
	margin-bottom: 22px;
}

/* ============================================================
   APPLY — партнёрская заявка (page-apply.php).
   Всё строго в неймспейсе .bz-apply; цвета/радиусы/тени — только
   из --bz-* токенов base.css (плюс нейтральные rgba и красный
   ошибок #d63638).
   ============================================================ */

.bz-apply {
	display: flex;
	flex-direction: column;
	gap: 18px;
	max-width: 860px;
	margin: 28px auto 64px;
}

/* ------------------------------------------------------------
   Карточки-шаги
   ------------------------------------------------------------ */

.bz-apply__card {
	background: #fff;
	border: 1px solid var(--bz-border);
	border-radius: var(--bz-r-xl);
	padding: 24px;
}

.bz-apply__cardhead {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 18px;
}

.bz-apply__step {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--bz-teal-100);
	color: var(--bz-teal);
	font-size: 15px;
	font-weight: 800;
}

.bz-apply__cardtitle {
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -.3px;
	color: var(--bz-ink);
}

.bz-apply__subtitle {
	font-size: 16px;
	font-weight: 800;
	color: var(--bz-ink);
	margin-bottom: 4px;
}

.bz-apply__subblock {
	margin-top: 20px;
	border-top: 1px dashed var(--bz-border-dash);
	padding-top: 20px;
}

/* ------------------------------------------------------------
   Поля, сетка, подсказки
   ------------------------------------------------------------ */

.bz-apply__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px 18px;
}

.bz-apply__field {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.bz-apply__field--wide {
	grid-column: 1 / -1;
}

.bz-apply__field--address {
	margin-top: 16px;
}

.bz-apply__hint {
	margin-top: 6px;
	font-size: 12.5px;
	line-height: 1.45;
	color: var(--bz-gray-500);
}

.bz-apply__req {
	color: var(--bz-orange);
	font-weight: 800;
}

.bz-apply__count {
	margin-top: 6px;
	font-size: 12px;
	font-weight: 600;
	color: var(--bz-gray-400);
	text-align: right;
}

/* Подсветка ошибок (JS вешает класс на обёртку поля) */
.bz-apply__field--error input,
.bz-apply__field--error .bz-input,
.bz-apply__field--error .bz-textarea,
.bz-apply__field--error .bz-selectwrap {
	border-color: #d63638;
}

.bz-apply__field--error > .bz-label {
	color: #d63638;
}

/* ------------------------------------------------------------
   Radio-плитки (кто вы / что предлагаете)
   ------------------------------------------------------------ */

.bz-apply__choices {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
}

.bz-apply__choices--3 {
	grid-template-columns: repeat(3, 1fr);
}

.bz-apply__choice {
	position: relative;
	display: block;
	cursor: pointer;
}

.bz-apply__choice input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.bz-apply__choice-body {
	display: block;
	height: 100%;
	border: 1px solid var(--bz-border-input);
	border-radius: var(--bz-r-md);
	background: #fff;
	padding: 14px 16px;
	transition: border-color .12s ease, background-color .12s ease, box-shadow .12s ease;
}

.bz-apply__choice:hover .bz-apply__choice-body {
	border-color: var(--bz-teal-200);
}

.bz-apply__choice input:checked + .bz-apply__choice-body {
	border-color: var(--bz-teal);
	background: var(--bz-teal-50);
	box-shadow: 0 0 0 1px var(--bz-teal);
}

.bz-apply__choice input:focus-visible + .bz-apply__choice-body {
	outline: 2px solid var(--bz-orange);
	outline-offset: 2px;
}

.bz-apply__choice-title {
	display: block;
	font-size: 14px;
	font-weight: 800;
	color: var(--bz-ink);
}

.bz-apply__choice-sub {
	display: block;
	margin-top: 3px;
	font-size: 12.5px;
	line-height: 1.4;
	color: var(--bz-gray-500);
}

/* ------------------------------------------------------------
   Чипы (языки, категории, форматы работы)
   ------------------------------------------------------------ */

.bz-apply__chips {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.bz-apply__chip {
	position: relative;
	display: inline-flex;
	cursor: pointer;
}

.bz-apply__chip input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.bz-apply__chip span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border: 1px solid var(--bz-border-input);
	border-radius: var(--bz-r-pill);
	background: #fff;
	color: var(--bz-slate);
	padding: 9px 16px;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	transition: background-color .12s ease, color .12s ease, border-color .12s ease;
}

.bz-apply__chip:hover span {
	border-color: var(--bz-teal-200);
}

.bz-apply__chip input:checked + span {
	background: var(--bz-teal-100);
	border-color: var(--bz-teal);
	color: var(--bz-teal);
}

.bz-apply__chip input:focus-visible + span {
	outline: 2px solid var(--bz-orange);
	outline-offset: 2px;
}

/* Свободное поле «Другой язык» — пилюля с пунктиром в ряду чипов */
.bz-apply__chip-other {
	width: 170px;
	border: 1px dashed var(--bz-border-dash);
	border-radius: var(--bz-r-pill);
	background: #fff;
	color: var(--bz-ink);
	padding: 9px 16px;
	font-family: var(--bz-font);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
}

.bz-apply__chip-other::placeholder {
	color: var(--bz-gray-400);
}

.bz-apply__chip-other:focus {
	border-color: var(--bz-teal);
	border-style: solid;
	box-shadow: 0 0 0 3px rgba(14, 97, 93, .12);
	outline: none;
}

/* «Другое» в направлениях → поле уточнения под чипами */
.bz-apply__catother {
	margin-top: 10px;
}

.bz-apply__catother .bz-apply__chip-other {
	width: 100%;
	max-width: 340px;
}

/* ------------------------------------------------------------
   Динамические строки консультаций / услуг
   ------------------------------------------------------------ */

.bz-apply__rows {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 12px;
}

.bz-apply__rows:empty {
	margin-top: 0;
}

.bz-apply__row {
	position: relative;
	display: grid;
	gap: 10px 12px;
	align-items: end;
	background: var(--bz-bg-3);
	border: 1px solid var(--bz-border-2);
	border-radius: var(--bz-r-md);
	padding: 14px;
}

.bz-apply__row--consult {
	grid-template-columns: minmax(0, 1fr) 128px 96px auto 34px;
}

.bz-apply__row--service {
	grid-template-columns: minmax(0, 1fr) 148px 96px 110px 34px;
}

.bz-apply__rowfield {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.bz-apply__rowfield .bz-label {
	font-size: 12px;
	margin-bottom: 6px;
	white-space: nowrap;
}

.bz-apply__row .bz-input {
	padding: 10px 12px;
	font-size: 14px;
}

.bz-apply__row .bz-selectwrap {
	width: 100%;
	padding: 0 10px;
}

.bz-apply__row .bz-selectwrap select {
	width: 100%;
	max-width: none;
	padding: 10px 0;
}

.bz-apply__rowfree {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 11px 0;
	font-size: 13px;
	font-weight: 700;
	color: var(--bz-slate);
	white-space: nowrap;
	cursor: pointer;
}

.bz-apply__rowfree input {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: var(--bz-teal);
}

.bz-apply__rowdel {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 40px;
	border-radius: var(--bz-r-sm);
	color: var(--bz-gray-400);
	transition: color .12s ease, background-color .12s ease;
}

.bz-apply__rowdel:hover {
	color: #d63638;
	background: rgba(214, 54, 56, .08);
}

.bz-apply__addrow {
	margin-top: 12px;
}

/* ------------------------------------------------------------
   Доступность по дням (Пн..Вс)
   ------------------------------------------------------------ */

.bz-apply__avail {
	margin-top: 22px;
}

.bz-apply__days {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 12px;
}

.bz-apply__day {
	display: flex;
	align-items: center;
	gap: 14px;
	border: 1px solid var(--bz-border-2);
	border-radius: var(--bz-r-md);
	background: #fff;
	padding: 10px 14px;
}

.bz-apply__daycheck {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	min-width: 66px;
	font-size: 14px;
	font-weight: 700;
	color: var(--bz-slate);
	cursor: pointer;
}

.bz-apply__daycheck input {
	width: 17px;
	height: 17px;
	margin: 0;
	accent-color: var(--bz-teal);
}

.bz-apply__daytimes {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-left: auto;
}

.bz-apply__daytimes .bz-input {
	width: 112px;
	padding: 8px 10px;
	font-size: 14px;
}

.bz-apply__daytimes .bz-input:disabled {
	background: var(--bz-bg-2);
	color: var(--bz-gray-400);
}

.bz-apply__daysep {
	color: var(--bz-gray-350);
}

/* ------------------------------------------------------------
   Загрузка фото: drop-зона + превью
   ------------------------------------------------------------ */

.bz-apply__drop {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	border: 2px dashed var(--bz-border-dash);
	border-radius: var(--bz-r-lg);
	background: var(--bz-bg-3);
	padding: 28px 18px;
	cursor: pointer;
	transition: border-color .12s ease, background-color .12s ease;
}

.bz-apply__drop:hover,
.bz-apply__drop.is-dragover {
	border-color: var(--bz-teal-200);
	background: var(--bz-teal-50);
}

/* Фото выбрано — зона получает «принятое» состояние */
.bz-apply__drop.has-file {
	border-style: solid;
	border-color: var(--bz-teal);
	background: var(--bz-teal-50);
}

.bz-apply__drop:focus-within {
	outline: 2px solid var(--bz-orange);
	outline-offset: 2px;
}

.bz-apply__drop-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	pointer-events: none;
}

.bz-apply__drop-inner .bz-icon {
	color: var(--bz-gray-350);
	margin-bottom: 2px;
}

.bz-apply__drop-title {
	font-size: 14px;
	font-weight: 700;
	color: var(--bz-slate);
}

.bz-apply__drop-sub {
	font-size: 12.5px;
	line-height: 1.4;
	color: var(--bz-gray-500);
	max-width: 420px;
}

/* Нативный file-инпут спрятан (клик по label открывает диалог) */
.bz-apply__file {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.bz-apply__preview {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 12px;
}

.bz-apply__preview:empty {
	display: none;
	margin: 0;
}

.bz-apply__thumb {
	position: relative;
	width: 96px;
	height: 96px;
	border: 1px solid var(--bz-border);
	border-radius: var(--bz-r-md);
	overflow: hidden;
	background: var(--bz-bg-2);
}

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

.bz-apply__thumb-del {
	position: absolute;
	top: 4px;
	right: 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: rgba(0, 0, 0, .55);
	color: #fff;
	font-size: 13px;
	line-height: 1;
	transition: background-color .12s ease;
}

.bz-apply__thumb-del:hover {
	background: rgba(0, 0, 0, .78);
}

.bz-apply__preview-name {
	align-self: center;
	font-size: 13px;
	font-weight: 600;
	color: var(--bz-gray-500);
	word-break: break-all;
}

/* Инлайн-ошибка файлов (лимиты размера/количества) */
.bz-apply__filerr {
	margin-top: 8px;
	font-size: 13px;
	font-weight: 600;
	color: #d63638;
}

/* ------------------------------------------------------------
   Согласие, honeypot, ошибка формы, submit
   ------------------------------------------------------------ */

.bz-apply__consent {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 14px;
	line-height: 1.45;
	color: var(--bz-slate);
	cursor: pointer;
}

.bz-apply__consent input {
	flex: none;
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	accent-color: var(--bz-teal);
}

.bz-apply__hp {
	position: absolute;
	left: -9999px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.bz-apply__error {
	margin-top: 16px;
	border: 1px solid rgba(214, 54, 56, .35);
	border-radius: var(--bz-r-md);
	background: rgba(214, 54, 56, .07);
	color: #d63638;
	padding: 13px 16px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.45;
}

.bz-apply__actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px 18px;
	margin-top: 18px;
}

.bz-apply__submit {
	padding: 15px 30px;
	font-size: 16px;
	border-radius: var(--bz-r-md);
}

.bz-apply__submit:disabled {
	opacity: .6;
	cursor: default;
}

.bz-apply__note {
	font-size: 13px;
	color: var(--bz-gray-500);
}

/* ------------------------------------------------------------
   Success-блок
   ------------------------------------------------------------ */

.bz-apply__success {
	max-width: 560px;
	margin: 40px auto 84px;
	background: #fff;
	border: 1px solid var(--bz-border);
	border-radius: var(--bz-r-panel);
	padding: 48px 32px;
	text-align: center;
	animation: bzpop .18s ease;
}

.bz-apply__success-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--bz-green-100);
	color: var(--bz-green);
	margin-bottom: 18px;
}

.bz-apply__success-title {
	font-size: 24px;
	font-weight: 800;
	letter-spacing: -.4px;
	color: var(--bz-ink);
	margin-bottom: 10px;
}

.bz-apply__success-text {
	font-size: 15px;
	line-height: 1.55;
	color: var(--bz-gray-600);
	margin-bottom: 22px;
}

/* ------------------------------------------------------------
   Мобильная адаптация (≤720)
   ------------------------------------------------------------ */

@media (max-width: 720px) {

	.bz-apply {
		gap: 14px;
		margin: 18px auto 48px;
	}

	.bz-apply__card {
		padding: 18px 16px;
	}

	.bz-apply__cardtitle {
		font-size: 18px;
	}

	.bz-apply__grid,
	.bz-apply__choices,
	.bz-apply__choices--3 {
		grid-template-columns: 1fr;
	}

	.bz-apply__row--consult,
	.bz-apply__row--service {
		grid-template-columns: 1fr 1fr;
		padding: 12px;
	}

	.bz-apply__rowfield--grow {
		grid-column: 1 / -1;
		padding-right: 36px;
	}

	.bz-apply__rowdel {
		position: absolute;
		top: 8px;
		right: 8px;
		width: 30px;
		height: 30px;
	}

	.bz-apply__rowfree {
		padding: 4px 0 2px;
	}

	.bz-apply__day {
		flex-wrap: wrap;
		gap: 10px;
	}

	.bz-apply__daytimes {
		margin-left: 0;
		width: 100%;
	}

	.bz-apply__daytimes .bz-input {
		flex: 1;
		width: auto;
		min-width: 0;
	}

	.bz-apply__chip-other {
		width: 100%;
	}

	.bz-apply__drop {
		padding: 22px 14px;
	}

	.bz-apply__thumb {
		width: 84px;
		height: 84px;
	}

	.bz-apply__actions {
		flex-direction: column;
		align-items: stretch;
		text-align: center;
	}

	.bz-apply__submit {
		width: 100%;
	}

	.bz-apply__success {
		margin: 24px auto 56px;
		padding: 36px 20px;
	}
}

/* Совсем узкие экраны — строки услуг в один столбец */
@media (max-width: 400px) {

	.bz-apply__row--consult,
	.bz-apply__row--service {
		grid-template-columns: 1fr;
	}

	.bz-apply__rowfield--grow {
		padding-right: 0;
	}
}

/* ------------------------------------------------------------
   Форма заказа (booking method "order_form") — inc/booking.php
   ------------------------------------------------------------ */

.bz-order {
	max-width: 560px;
}

.bz-order__note {
	margin: 0 0 16px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--bz-gray-500);
}

.bz-order__form {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.bz-order__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.bz-order__error {
	padding: 11px 14px;
	border: 1px solid #f0b7b8;
	border-radius: var(--bz-r-md);
	background: #fdecec;
	color: #a3211f;
	font-size: 13.5px;
	line-height: 1.45;
}

.bz-order__submit {
	margin-top: 4px;
	width: 100%;
}

.bz-order__fine {
	margin: 0;
	font-size: 12px;
	line-height: 1.45;
	color: var(--bz-gray-400);
}

.bz-order__success {
	text-align: center;
	padding: 8px 4px 4px;
}

.bz-order__ok {
	width: 52px;
	height: 52px;
	margin: 0 auto 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--bz-teal, #296D6C);
	color: #fff;
	font-size: 26px;
	font-weight: 800;
	line-height: 1;
}

.bz-order__ok-h {
	margin: 0 0 8px;
	font-size: 20px;
	font-weight: 800;
	color: var(--bz-ink, #17322f);
}

.bz-order__status {
	margin: 0 auto;
	max-width: 420px;
	font-size: 14.5px;
	line-height: 1.5;
	color: var(--bz-gray-500);
}

.bz-order__pay {
	margin-top: 18px;
}

.bz-order__paybtn {
	width: 100%;
	max-width: 340px;
}

.bz-order__deadline {
	margin: 12px auto 0;
	max-width: 420px;
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--bz-gray-400);
}

@media (max-width: 560px) {

	.bz-order__row {
		grid-template-columns: 1fr;
	}
}
