:root {
	--z24-navy: #07182a;
	--z24-navy-2: #0b2036;
	--z24-orange: #ff7900;
	--z24-orange-dark: #e76800;
	--z24-text: #132238;
	--z24-muted: #5e6b7e;
	--z24-line: #e6ebf2;
	--z24-soft: #f5f7fa;
	--z24-white: #ffffff;
	--z24-container: 1400px;
	--z24-radius: 8px;
	--z24-shadow: 0 14px 34px rgba(7, 24, 42, .08);
	--z24-section: clamp(48px, 7vw, 86px);
	--z24-h1: clamp(48px, 3.65vw, 56px);
	--z24-h2: clamp(26px, 3vw, 36px);
	--z24-h3: 18px;
}

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

html { scroll-behavior: smooth; }

body {
	margin: 0;
	color: var(--z24-text);
	font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.55;
	background: var(--z24-white);
}

img, svg { max-width: 100%; height: auto; }

a { color: inherit; text-decoration: none; }

p { margin: 0 0 16px; }

h1, h2, h3 {
	margin: 0;
	color: var(--z24-text);
	line-height: 1.12;
	letter-spacing: 0;
}

h1 { font-size: var(--z24-h1); }
h2 { font-size: var(--z24-h2); }
h3 { font-size: var(--z24-h3); }

.z24-container {
	width: min(100% - 40px, var(--z24-container));
	margin-inline: auto;
}

.z24-narrow { max-width: 900px; }

.z24-skip {
	position: absolute;
	left: 16px;
	top: -80px;
	z-index: 1000;
	padding: 10px 14px;
	background: var(--z24-white);
	border-radius: 4px;
}

.z24-skip:focus { top: 12px; }

.z24-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--z24-navy);
	color: var(--z24-white);
	box-shadow: 0 1px 0 rgba(255,255,255,.06);
}

.z24-header__inner {
	display: grid;
	grid-template-columns: auto 1fr auto auto;
	gap: 24px;
	align-items: center;
	min-height: 74px;
}

.z24-logo {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}

.z24-logo__mark {
	display: grid;
	place-items: center;
	width: 36px;
	height: 42px;
	border: 2px solid rgba(255,255,255,.78);
	border-radius: 7px 7px 10px 10px;
	color: var(--z24-orange);
	font-weight: 900;
}

.z24-logo__text { display: grid; gap: 1px; }
.z24-logo strong { font-size: 21px; letter-spacing: 0; color: var(--z24-white); }
.z24-logo small { color: rgba(255,255,255,.72); font-size: 11px; text-transform: uppercase; }

.z24-nav__list {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px 14px;
	min-width: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.z24-nav a {
	color: rgba(255,255,255,.9);
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
}

.z24-nav a:hover,
.z24-nav a:focus { color: var(--z24-white); }

.z24-header__contacts {
	display: grid;
	justify-items: end;
	gap: 1px;
	white-space: nowrap;
}

.z24-phone {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 800;
	color: var(--z24-white);
}

.z24-phone svg,
.z24-icon svg,
.z24-checklist svg,
.z24-mobile-actions svg,
.z24-mini-benefits svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	flex: 0 0 auto;
}

.z24-header__label {
	font-size: 12px;
	color: rgba(255,255,255,.72);
}

.z24-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 22px;
	border: 1px solid transparent;
	border-radius: var(--z24-radius);
	font-size: 15px;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
	transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.z24-btn:hover { transform: translateY(-1px); }

.z24-btn--primary {
	background: var(--z24-orange);
	color: var(--z24-white);
}

.z24-btn--primary:hover { background: var(--z24-orange-dark); color: var(--z24-white); }

.z24-btn--ghost {
	border-color: rgba(255,255,255,.42);
	color: var(--z24-white);
	background: rgba(255,255,255,.04);
}

.z24-btn--light {
	border-color: var(--z24-line);
	color: var(--z24-text);
	background: var(--z24-white);
	box-shadow: 0 8px 22px rgba(7,24,42,.06);
}

.z24-btn--outline,
.z24-btn--outline-orange {
	background: transparent;
	color: var(--z24-white);
	border-color: rgba(255,255,255,.38);
}

.z24-btn--outline-orange {
	color: var(--z24-orange);
	border-color: rgba(255,121,0,.42);
}

.z24-btn--wide { width: 100%; }

.z24-mobile-phone,
.z24-menu-toggle,
.z24-mobile-panel { display: none; }

.z24-hero {
	position: relative;
	overflow: hidden;
	background:
		linear-gradient(90deg, rgba(7,24,42,.96) 0%, rgba(7,24,42,.9) 35%, rgba(7,24,42,.46) 56%, rgba(7,24,42,.34) 68%, rgba(7,24,42,.76) 100%),
		var(--z24-hero-image, none) var(--z24-hero-position, center center) / var(--z24-hero-size, cover) no-repeat,
		linear-gradient(90deg, #07182a 0%, #091827 48%, #10243a 100%);
	color: var(--z24-white);
}

.z24-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 34% 18%, rgba(247,119,15,.16), transparent 28%),
		linear-gradient(180deg, rgba(7,24,42,.08), rgba(7,24,42,.54));
	pointer-events: none;
}

.z24-hero > .z24-container {
	position: relative;
	z-index: 1;
}

.z24-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(360px, 400px);
	gap: 36px;
	align-items: center;
	min-height: 548px;
	padding-block: 52px;
}

.z24-hero h1,
.z24-hero h2,
.z24-hero h3 { color: var(--z24-white); }

.z24-hero__content {
	position: relative;
	z-index: 1;
	min-width: 0;
}

.z24-hero__content h1 {
	max-width: none;
	font-size: var(--z24-h1);
	line-height: 1.07;
	font-weight: 900;
}

.z24-hero__content h1 span {
	display: block;
	white-space: nowrap;
}

.z24-eyebrow {
	display: inline-flex;
	margin-bottom: 14px;
	color: rgba(255,255,255,.76);
	font-weight: 700;
}

.z24-checklist {
	display: grid;
	gap: 12px;
	margin: 22px 0;
	padding: 0;
	list-style: none;
}

.z24-checklist li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}

.z24-checklist--hero { color: rgba(255,255,255,.92); }
.z24-checklist--hero svg { color: var(--z24-white); }

.z24-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	margin-top: 22px;
}

.z24-hero__phone {
	display: none;
	margin-top: 16px;
	font-size: 22px;
	font-weight: 900;
	color: var(--z24-white);
}

.z24-hero__visual { display: none; }

.z24-hero__form {
	min-width: 0;
	justify-self: end;
	width: min(100%, 400px);
}

.z24-form {
	padding: 24px;
	border: 1px solid rgba(255,255,255,.18);
	border-radius: var(--z24-radius);
	background: rgba(9, 22, 36, .86);
	box-shadow: 0 18px 38px rgba(0,0,0,.24);
	color: var(--z24-white);
}

.z24-sidebar .z24-form,
.z24-page .z24-form {
	background: var(--z24-navy);
}

.z24-form h2 {
	font-size: 24px;
	margin-bottom: 8px;
	color: var(--z24-white);
}

.z24-form p {
	font-size: 14px;
	color: rgba(255,255,255,.76);
}

.z24-form label {
	display: grid;
	gap: 5px;
	margin-top: 10px;
}

.z24-form label span {
	font-size: 13px;
	color: rgba(255,255,255,.72);
}

.z24-form input,
.z24-form textarea,
.z24-catalog-toolbar input {
	width: 100%;
	min-height: 48px;
	border: 1px solid rgba(255,255,255,.12);
	border-radius: 6px;
	padding: 11px 13px;
	background: rgba(255,255,255,.94);
	color: var(--z24-text);
	font: inherit;
}

.z24-form textarea {
	min-height: 74px;
	resize: vertical;
}
.z24-form button { margin-top: 14px; }
.z24-form small { display: block; margin-top: 10px; color: rgba(255,255,255,.72); text-align: center; }
.z24-hp { position: absolute; left: -10000px; width: 1px; height: 1px; opacity: 0; }

.z24-form__message {
	margin: 12px 0;
	padding: 10px 12px;
	border-radius: 6px;
	font-weight: 700;
}

.z24-form__message--success { background: #dff7e8; color: #155b2d; }
.z24-form__message--error { background: #ffe7e0; color: #8a250d; }
.z24-field-error { outline: 2px solid #ffb199; }

.z24-trust {
	border-bottom: 1px solid var(--z24-line);
	background: var(--z24-white);
}

.z24-trust__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
	padding-block: 22px;
}

.z24-trust__item {
	display: flex;
	gap: 12px;
	align-items: center;
	min-width: 0;
}

.z24-icon {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	color: var(--z24-navy);
	background: #eef3f8;
	flex: 0 0 auto;
}

.z24-trust strong,
.z24-trust small { display: block; }
.z24-trust strong { font-size: 14px; }
.z24-trust small { color: var(--z24-muted); font-size: 12px; }

.z24-section { padding-block: var(--z24-section); }
.z24-section--soft { background: var(--z24-soft); }
.z24-section__head { margin-bottom: 28px; text-align: center; }

.z24-service-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.z24-service-card,
.z24-price-card,
.z24-review-card,
.z24-catalog-card,
.z24-side-card {
	min-width: 0;
	border: 1px solid var(--z24-line);
	border-radius: var(--z24-radius);
	background: var(--z24-white);
	box-shadow: var(--z24-shadow);
}

.z24-service-card { overflow: hidden; }

.z24-service-card a {
	display: grid;
	gap: 10px;
	height: 100%;
	padding: 12px;
	grid-template-rows: auto auto 1fr auto;
}

.z24-service-card img {
	width: 100%;
	aspect-ratio: 1.55;
	object-fit: cover;
	border-radius: 7px;
	background: #eef2f6;
}

.z24-service-card h3 { font-size: 15px; overflow-wrap: anywhere; }
.z24-service-card p { color: var(--z24-muted); font-size: 13px; margin: 0; }
.z24-service-card strong { margin-top: auto; color: var(--z24-navy); }

.z24-service-grid--home .z24-service-card a {
	gap: 9px;
	padding: 12px;
}

.z24-service-grid--home .z24-service-card p { display: none; }

.z24-service-grid--home .z24-service-card img {
	aspect-ratio: 1.46;
	transform: none;
	transform-origin: center;
}

.z24-service-grid--home .z24-service-card h3 {
	min-height: 38px;
	font-size: 14px;
	line-height: 1.25;
}

.z24-service-grid--home .z24-service-card strong {
	font-size: 15px;
	line-height: 1.2;
}

.z24-center { display: flex; justify-content: center; margin-top: 24px; }

.z24-adv-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 22px;
}

.z24-adv {
	text-align: center;
	display: grid;
	justify-items: center;
	gap: 10px;
}

.z24-adv p { margin: 0; color: var(--z24-muted); font-size: 14px; }

.z24-price-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(196px, 238px));
	justify-content: center;
	gap: 14px;
}

.z24-price-card {
	display: grid;
	grid-template-rows: auto auto 1fr auto;
	gap: 12px;
	padding: 22px 20px;
	align-content: start;
	min-height: 254px;
}

.z24-price-card h3 { font-size: 16px; }

.z24-price-card strong {
	color: var(--z24-navy);
	font-size: 22px;
}

.z24-price-card ul {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	color: var(--z24-muted);
	font-size: 13px;
}

.z24-price-card li {
	display: flex;
	gap: 8px;
}

.z24-price-card svg {
	width: 16px;
	color: var(--z24-orange);
}

.z24-note {
	margin: 18px auto 0;
	color: var(--z24-muted);
	text-align: center;
	max-width: 860px;
}

.z24-how {
	background: var(--z24-white);
	color: var(--z24-white);
	padding-block: 28px;
}

.z24-how__inner {
	overflow: hidden;
	padding: 36px 42px;
	border-radius: 12px;
	background: radial-gradient(circle at 50% 0%, rgba(32, 89, 137, .42), transparent 36%), var(--z24-navy);
}

.z24-how h2 {
	color: var(--z24-white) !important;
	text-align: center;
	margin-bottom: 30px;
}

.z24-steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}

.z24-step {
	position: relative;
	display: grid;
	justify-items: center;
	text-align: center;
	gap: 12px;
	min-width: 0;
}

.z24-step:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 34px;
	left: calc(50% + 44px);
	width: calc(100% - 88px);
	border-top: 1px dashed rgba(255,255,255,.52);
	box-shadow: 0 0 0 1px rgba(255,121,0,.08);
}

.z24-step span {
	display: grid;
	place-items: center;
	width: 70px;
	height: 70px;
	border-radius: 50%;
	background: var(--z24-white);
	color: var(--z24-navy);
	font-weight: 900;
	box-shadow: 0 12px 26px rgba(0,0,0,.18);
}

.z24-step svg {
	width: 30px;
	height: 30px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.z24-how .z24-step h3 {
	color: var(--z24-white) !important;
	font-size: 16px;
	font-weight: 900;
}
.z24-how .z24-step p {
	color: rgba(255,255,255,.88) !important;
	margin: 0;
}

.z24-geo {
	display: grid;
	grid-template-columns: .7fr 1fr;
	gap: 34px;
	align-items: center;
}

.z24-map {
	display: block;
	overflow: hidden;
	border: 1px solid var(--z24-line);
	border-radius: var(--z24-radius);
	box-shadow: var(--z24-shadow);
}

.z24-map img { display: block; width: 100%; }

.z24-map--yandex {
	position: relative;
	height: 360px;
	background: #dbeaf2;
}

.z24-map__fallback {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(.9) contrast(.97);
	opacity: 0;
	transition: opacity .18s ease;
}

.z24-map--yandex iframe {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	filter: saturate(.88) contrast(.96);
}

.z24-map--yandex.is-fallback iframe {
	opacity: 0;
	visibility: hidden;
}

.z24-map--yandex.is-fallback .z24-map__fallback {
	opacity: 1;
}

.z24-map__overlay {
	position: absolute;
	z-index: 2;
	border-radius: 50%;
	pointer-events: none;
	mix-blend-mode: multiply;
}

.z24-map__overlay--region {
	inset: 4% 6% 2% 8%;
	background: rgba(72, 164, 230, .16);
	border: 1px solid rgba(33, 125, 202, .22);
}

.z24-map__overlay--spb {
	top: 27%;
	left: 38%;
	width: 30%;
	aspect-ratio: 1;
	background: rgba(72, 164, 230, .28);
	border: 1px solid rgba(33, 125, 202, .32);
}

.z24-map__link {
	position: absolute;
	z-index: 3;
	left: 16px;
	bottom: 16px;
	padding: 9px 12px;
	border-radius: 6px;
	background: var(--z24-white);
	color: var(--z24-navy);
	font-size: 13px;
	font-weight: 800;
	box-shadow: 0 8px 20px rgba(7,24,42,.12);
}

.z24-link-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 18px 0;
}

.z24-link-row a {
	padding: 8px 12px;
	border: 1px solid var(--z24-line);
	border-radius: 6px;
	color: var(--z24-navy);
	font-weight: 700;
	background: var(--z24-white);
}

.z24-review-row {
	display: grid;
	grid-template-columns: repeat(4, minmax(250px, 1fr));
	gap: 16px;
}

.z24-review-card {
	padding: 20px;
}

.z24-review-card__head {
	display: flex;
	gap: 12px;
	align-items: center;
	margin-bottom: 14px;
}

.z24-review-card__head > span {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: #edf2f7;
	color: var(--z24-navy);
	font-weight: 900;
}

.z24-review-card__head > img {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	object-fit: cover;
	background: #edf2f7;
	flex: 0 0 auto;
}

.z24-review-card small,
.z24-review-card time {
	display: block;
	color: var(--z24-muted);
	font-size: 13px;
}

.z24-faq {
	border: 1px solid var(--z24-line);
	border-radius: var(--z24-radius);
	overflow: hidden;
	background: var(--z24-white);
}

.z24-faq__item + .z24-faq__item { border-top: 1px solid var(--z24-line); }
.z24-faq h3 { font-size: 16px; }

.z24-faq button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	min-height: 54px;
	padding: 14px 18px;
	border: 0;
	background: transparent;
	color: var(--z24-text);
	font: inherit;
	font-weight: 800;
	text-align: left;
	cursor: pointer;
}

.z24-faq button h3 {
	min-width: 0;
	overflow-wrap: anywhere;
}

.z24-faq button b { flex: 0 0 auto; }

.z24-faq button:hover,
.z24-faq button:focus,
.z24-faq button:focus-visible {
	background: #f8fafc !important;
	color: var(--z24-navy) !important;
	outline: 2px solid rgba(255,121,0,.32) !important;
	outline-offset: -2px;
}

.z24-faq__panel {
	display: none;
	padding: 0 18px 18px;
	color: var(--z24-muted);
}

.z24-faq__item.is-open .z24-faq__panel { display: block; }
.z24-faq__item.is-open button {
	background: var(--z24-navy) !important;
	color: var(--z24-white) !important;
	outline-color: rgba(255,121,0,.34) !important;
}
.z24-faq__item.is-open button span {
	color: var(--z24-white) !important;
}
.z24-faq__item.is-open b {
	color: var(--z24-orange) !important;
	transform: rotate(45deg);
}

.z24-final-cta {
	padding: 34px 0;
	background: var(--z24-white);
}

.z24-final-cta__inner {
	position: relative;
	overflow: hidden;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 28px;
	align-items: center;
	min-height: 230px;
	padding: 34px;
	border-radius: var(--z24-radius);
	background: var(--z24-navy);
	color: var(--z24-white);
}

.z24-final-cta__inner::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, var(--z24-navy) 0%, rgba(7,24,42,.95) 49%, rgba(7,24,42,.48) 68%, rgba(7,24,42,.1) 100%),
		url('../images/cta-locksmith-door-stage3.png') right center / 56% auto no-repeat;
	filter: contrast(1.1) brightness(1.05);
}

.z24-final-cta__inner > * {
	position: relative;
	z-index: 1;
}

.z24-final-cta h2 { color: var(--z24-white); }
.z24-final-cta p { color: rgba(255,255,255,.78); margin-top: 8px; }
.z24-final-cta__actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: end; }

.z24-mini-benefits {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	margin-top: 16px;
	color: rgba(255,255,255,.82);
}

.z24-mini-benefits span { display: inline-flex; gap: 8px; align-items: center; }

.z24-footer {
	padding: 44px 0 0;
	background: var(--z24-navy);
	color: rgba(255,255,255,.78);
}

.z24-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr repeat(4, 1fr);
	gap: 28px;
}

.z24-footer h2 {
	color: var(--z24-white);
	font-size: 16px;
	margin-bottom: 12px;
}

.z24-footer ul {
	display: grid;
	gap: 7px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 14px;
}

.z24-footer a:hover { color: var(--z24-white); }
.z24-footer__phone { display: block; color: var(--z24-white); font-weight: 900; margin-bottom: 8px; }
.z24-footer__btn { margin-top: 10px; }

.z24-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	align-items: center;
	justify-content: space-between;
	margin-top: 32px;
	padding: 18px 0;
	border-top: 1px solid rgba(255,255,255,.1);
	font-size: 13px;
}

.z24-page { padding-block: 34px var(--z24-section); }
.z24-page__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 46px;
	align-items: start;
}

.z24-page__layout--wide { grid-template-columns: minmax(0, 1fr); }

.z24-page__content h1 { margin: 18px 0 18px; }
.z24-lead { max-width: 780px; color: var(--z24-muted); font-size: 19px; }
.z24-content { color: var(--z24-muted); font-size: 18px; }

.z24-breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	color: var(--z24-muted);
	font-size: 14px;
}

.z24-breadcrumbs a { color: var(--z24-navy); font-weight: 700; }

.z24-sidebar {
	display: grid;
	gap: 18px;
}

.z24-sidebar__sticky {
	position: sticky;
	top: 96px;
	display: grid;
	gap: 18px;
	align-self: start;
}

.z24-catalog-toolbar {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 18px;
	align-items: center;
	margin: 26px 0;
}

.z24-catalog-toolbar input {
	border-color: var(--z24-line);
	background: var(--z24-white);
}

.z24-service-grid--catalog,
.z24-catalog-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}

.z24-catalog-card {
	display: grid;
	gap: 0;
	overflow: hidden;
	min-height: 100%;
}

.z24-catalog-card__body {
	display: grid;
	gap: 7px;
	padding: 14px;
}

.z24-catalog-card img {
	width: 100%;
	aspect-ratio: 1.72;
	object-fit: cover;
	border-radius: 0;
	background: #eef2f6;
}

.z24-catalog-card--service img {
	aspect-ratio: 1.34;
	object-fit: cover;
	padding: 0;
	background: linear-gradient(90deg, #eef2f6, #ffffff);
}

.z24-catalog-card strong {
	color: var(--z24-navy);
	font-size: 17px;
	line-height: 1.25;
}

.z24-catalog-card small {
	color: var(--z24-muted);
	font-size: 13px;
	font-weight: 700;
}

.z24-catalog-card span { color: var(--z24-muted); font-size: 14px; }
.z24-catalog-card em { color: #1466b8; font-style: normal; font-weight: 800; }

.z24-card-cover {
	position: relative;
	overflow: hidden;
	display: grid;
	align-content: end;
	min-height: 172px;
	padding: 18px;
	color: var(--z24-white);
	background:
		linear-gradient(135deg, color-mix(in srgb, var(--z24-card-accent) 88%, #07182a), #07182a);
}

.z24-card-cover__pattern {
	position: absolute;
	inset: 0;
	opacity: .4;
	background:
		linear-gradient(90deg, rgba(255,255,255,.16) 1px, transparent 1px) 0 0 / 46px 46px,
		linear-gradient(0deg, rgba(255,255,255,.1) 1px, transparent 1px) 0 0 / 46px 46px,
		radial-gradient(circle at 78% 18%, rgba(255,255,255,.28), transparent 24%),
		linear-gradient(145deg, transparent 52%, rgba(255,255,255,.13) 52%, rgba(255,255,255,.13) 56%, transparent 56%);
}

.z24-card-cover__badge {
	position: relative;
	z-index: 1;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	margin-bottom: 28px;
	border-radius: 50%;
	background: var(--z24-white);
	color: var(--z24-card-accent);
	font-weight: 900;
	box-shadow: 0 12px 28px rgba(0,0,0,.18);
}

.z24-card-cover__title {
	position: relative;
	z-index: 1;
	max-width: 92%;
	color: var(--z24-white) !important;
	font-size: 18px !important;
	font-weight: 900;
	line-height: 1.18;
}

.z24-catalog-card--metro .z24-card-cover::after {
	content: "";
	position: absolute;
	left: 22px;
	right: 22px;
	top: 54%;
	height: 7px;
	border-radius: 999px;
	background: var(--z24-white);
	box-shadow: 0 0 0 5px color-mix(in srgb, var(--z24-card-accent) 35%, transparent);
	opacity: .86;
}

.z24-catalog-card--lock .z24-card-cover::after,
.z24-catalog-card--door .z24-card-cover::after,
.z24-catalog-card--problem .z24-card-cover::after {
	content: "";
	position: absolute;
	right: 20px;
	top: 24px;
	width: 74px;
	height: 74px;
	border: 10px solid rgba(255,255,255,.72);
	border-bottom-width: 22px;
	border-radius: 34px 34px 8px 8px;
	opacity: .42;
}

.z24-side-card {
	padding: 20px;
}

.z24-side-card h2 {
	font-size: 20px;
	margin-bottom: 14px;
}

.z24-side-card img {
	width: 100%;
	aspect-ratio: 2.18;
	object-fit: cover;
	border-radius: 6px;
	margin-bottom: 14px;
}

.z24-service-grid--compact {
	grid-template-columns: repeat(3, 1fr);
	margin: 22px 0;
}

.z24-image-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin: 26px 0;
}

.z24-image-row img {
	width: 100%;
	border: 1px solid var(--z24-line);
	border-radius: var(--z24-radius);
	background: var(--z24-soft);
}

.z24-price-table {
	display: grid;
	margin: 18px 0 28px;
	border: 1px solid var(--z24-line);
	border-radius: var(--z24-radius);
	overflow: hidden;
}

.z24-price-table div {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	padding: 13px 16px;
	background: var(--z24-white);
}

.z24-price-table div + div { border-top: 1px solid var(--z24-line); }

.z24-note {
	margin-top: 16px;
	color: var(--z24-muted);
	text-align: center;
}

.z24-info-block {
	margin: 24px 0;
	padding: 22px;
	border: 1px solid var(--z24-line);
	border-radius: var(--z24-radius);
	background: var(--z24-white);
	box-shadow: var(--z24-shadow);
}

.z24-info-block--muted { background: var(--z24-soft); }
.z24-info-block h2 { margin-bottom: 10px; font-size: 24px; }
.z24-info-block p { color: var(--z24-muted); }

.z24-info-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin: 24px 0 32px;
}

.z24-info-steps div {
	display: grid;
	gap: 8px;
	padding: 18px;
	border: 1px solid var(--z24-line);
	border-radius: var(--z24-radius);
	background: var(--z24-white);
	box-shadow: var(--z24-shadow);
}

.z24-info-steps strong { color: var(--z24-navy); }
.z24-info-steps span { color: var(--z24-muted); font-size: 14px; }
.z24-info-steps--visual { margin-top: 26px; }

.z24-commercial-page {
	display: grid;
	gap: 34px;
	color: var(--z24-navy);
}

.z24-commercial-lead {
	max-width: 880px;
	margin: 0;
	color: var(--z24-muted);
	font-size: 19px;
	line-height: 1.65;
}

.z24-commercial-intro {
	display: grid;
	gap: 12px;
}

.z24-commercial-intro p,
.z24-commercial-section > p,
.z24-commercial-card p,
.z24-contact-card p,
.z24-contact-guidance p {
	margin: 0;
	color: var(--z24-muted);
}

.z24-commercial-section {
	display: grid;
	gap: 18px;
}

.z24-commercial-section h2,
.z24-price-group h2 { font-size: 25px; }

.z24-commercial-section--accent,
.z24-contact-guidance {
	padding: 26px;
	border-radius: var(--z24-radius);
	background: var(--z24-navy);
	color: var(--z24-white);
}

.z24-commercial-section--accent h2,
.z24-commercial-section--accent p,
.z24-contact-guidance h2,
.z24-contact-guidance p { color: var(--z24-white); }

.z24-price-sections {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.z24-price-group,
.z24-commercial-card,
.z24-contact-card {
	padding: 22px;
	border: 1px solid var(--z24-line);
	border-radius: var(--z24-radius);
	background: var(--z24-white);
	box-shadow: var(--z24-shadow);
}

.z24-price-group {
	display: grid;
	gap: 16px;
	align-content: start;
}

.z24-price-list {
	display: grid;
	border-top: 1px solid var(--z24-line);
}

.z24-price-list > div {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 18px;
	align-items: center;
	padding: 13px 0;
	border-bottom: 1px solid var(--z24-line);
}

.z24-price-list strong {
	color: var(--z24-navy);
	text-align: right;
	white-space: nowrap;
}

.z24-price-list--standalone {
	padding-inline: 18px;
	border: 1px solid var(--z24-line);
	border-radius: var(--z24-radius);
	background: var(--z24-white);
}

.z24-commercial-note {
	padding: 20px 22px;
	border-left: 4px solid var(--z24-orange);
	background: var(--z24-soft);
}

.z24-commercial-note p { margin: 7px 0 0; color: var(--z24-muted); }

.z24-commercial-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.z24-commercial-card-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.z24-commercial-card {
	display: grid;
	gap: 10px;
	align-content: start;
}

.z24-commercial-card h3 { font-size: 18px; }
.z24-commercial-card a,
.z24-text-link { color: #1466b8; font-weight: 800; }

.z24-area-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}

.z24-area-grid > div {
	padding-top: 16px;
	border-top: 3px solid var(--z24-orange);
}

.z24-area-grid h3 { margin-bottom: 14px; font-size: 19px; }

.z24-check-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px 14px;
	margin: 0 0 16px;
	padding: 0;
	list-style: none;
}

.z24-check-list li { display: flex; gap: 8px; align-items: center; color: var(--z24-muted); }
.z24-check-list svg { flex: 0 0 auto; width: 16px; color: var(--z24-orange); }

.z24-work-steps {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
}

.z24-work-steps > div {
	display: grid;
	gap: 8px;
	align-content: start;
	padding: 18px;
	border-top: 3px solid var(--z24-orange);
	background: var(--z24-soft);
}

.z24-work-steps span {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--z24-navy);
	color: var(--z24-white);
	font-weight: 900;
}

.z24-work-steps p { margin: 0; color: var(--z24-muted); font-size: 14px; }

.z24-contact-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.z24-contact-card {
	display: grid;
	gap: 12px;
	align-content: start;
}

.z24-contact-card h2 { font-size: 22px; }

.z24-contact-card__icon {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--z24-soft);
	color: var(--z24-navy);
}

.z24-contact-card__icon svg {
	width: 24px;
	height: 24px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.z24-contact-card__icon--max { background: var(--z24-orange); color: var(--z24-white); }

.z24-contact-card__link {
	color: var(--z24-navy);
	font-size: 18px;
	font-weight: 900;
	overflow-wrap: anywhere;
}

.z24-contact-guidance {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 28px;
	align-items: center;
}

.z24-contact-guidance > div { display: grid; gap: 10px; }

.z24-form button:disabled {
	cursor: wait;
	opacity: .72;
	transform: none;
}

.z24-mobile-actions { display: none; }

.z24-header a[href^="tel:"],
.z24-header a[href^="tel:"]:hover,
.z24-header a[href^="tel:"]:focus,
.z24-header a[href^="tel:"]:focus-visible,
.z24-header a[href^="tel:"]:active,
.z24-header a[href^="tel:"]:visited,
.z24-final-cta a[href^="tel:"],
.z24-final-cta a[href^="tel:"]:hover,
.z24-final-cta a[href^="tel:"]:focus,
.z24-final-cta a[href^="tel:"]:focus-visible,
.z24-final-cta a[href^="tel:"]:active,
.z24-final-cta a[href^="tel:"]:visited,
.z24-footer a[href^="tel:"],
.z24-footer a[href^="tel:"]:hover,
.z24-footer a[href^="tel:"]:focus,
.z24-footer a[href^="tel:"]:focus-visible,
.z24-footer a[href^="tel:"]:active,
.z24-footer a[href^="tel:"]:visited,
.z24-phone-link,
.z24-phone-link:hover,
.z24-phone-link:focus,
.z24-phone-link:focus-visible,
.z24-phone-link:active,
.z24-phone-link:visited {
	color: var(--z24-white) !important;
	opacity: 1 !important;
	filter: none !important;
}

.z24-mobile-actions a[href^="tel:"],
.z24-mobile-actions a[href^="tel:"]:hover,
.z24-mobile-actions a[href^="tel:"]:focus,
.z24-mobile-actions a[href^="tel:"]:focus-visible,
.z24-mobile-actions a[href^="tel:"]:active,
.z24-mobile-actions a[href^="tel:"]:visited {
	color: var(--z24-white) !important;
	opacity: 1 !important;
	filter: none !important;
}

.z24-hero--service .z24-hero__grid {
	grid-template-columns: minmax(0, 1fr) minmax(360px, 400px);
}

.z24-hero--service .z24-hero__lead {
	max-width: 760px;
	color: rgba(255,255,255,.82);
	font-size: 19px;
}

.z24-service-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 18px;
	color: rgba(255,255,255,.78);
	font-size: 14px;
}

.z24-service-meta span,
.z24-factor-grid span {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	min-width: 0;
}

.z24-service-meta svg,
.z24-factor-grid svg {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
	color: var(--z24-orange);
}

.z24-service-landing .z24-section {
	padding-block: clamp(46px, 6vw, 74px);
}

.z24-service-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 46px;
	align-items: start;
}

.z24-service-article {
	display: grid;
	gap: 28px;
	min-width: 0;
}

.z24-service-article p {
	color: var(--z24-muted);
	font-size: 17px;
}

.z24-service-toc {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--z24-line);
}

.z24-service-toc a,
.z24-link-row a {
	display: inline-flex;
	align-items: center;
	min-height: 38px;
	padding: 8px 12px;
	border: 1px solid var(--z24-line);
	border-radius: 7px;
	background: var(--z24-white);
	color: var(--z24-navy);
	font-weight: 800;
	font-size: 14px;
}

.z24-service-toc a:hover,
.z24-service-toc a:focus,
.z24-link-row a:hover,
.z24-link-row a:focus {
	border-color: rgba(255,121,0,.42);
	color: var(--z24-orange);
}

.z24-service-block {
	display: grid;
	gap: 18px;
	padding: 26px;
	border: 1px solid var(--z24-line);
	border-radius: var(--z24-radius);
	background: var(--z24-white);
	box-shadow: var(--z24-shadow);
}

.z24-service-block h2 {
	font-size: 28px;
}

.z24-service-block h3 {
	font-size: 17px;
}

.z24-service-block--soft {
	background: var(--z24-soft);
}

.z24-service-block--policy {
	border-color: rgba(255,121,0,.28);
	background: #fffaf4;
}

.z24-service-list,
.z24-doc-grid,
.z24-factor-grid,
.z24-tip-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.z24-service-list div,
.z24-doc-grid div,
.z24-tip-grid div,
.z24-process-grid div {
	min-width: 0;
	padding: 18px;
	border: 1px solid var(--z24-line);
	border-radius: var(--z24-radius);
	background: var(--z24-white);
}

.z24-service-list p,
.z24-doc-grid p,
.z24-process-grid p,
.z24-tip-grid p {
	margin: 8px 0 0;
	font-size: 15px;
}

.z24-rich-list {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.z24-rich-list--columns {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.z24-rich-list li {
	position: relative;
	min-width: 0;
	padding-left: 26px;
	color: var(--z24-muted);
}

.z24-rich-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .55em;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--z24-orange);
	box-shadow: 0 0 0 5px rgba(255,121,0,.12);
}

.z24-process-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.z24-process-grid span {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	margin-bottom: 12px;
	border-radius: 50%;
	background: var(--z24-navy);
	color: var(--z24-white);
	font-weight: 900;
}

.z24-factor-grid span {
	padding: 12px 14px;
	border: 1px solid var(--z24-line);
	border-radius: 7px;
	background: var(--z24-white);
	color: var(--z24-text);
	font-weight: 700;
}

.z24-tip-grid div {
	display: flex;
	gap: 12px;
	align-items: flex-start;
}

.z24-tip-grid svg {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	color: var(--z24-orange);
}

.z24-expert {
	padding: 26px;
	border-radius: var(--z24-radius);
	background: radial-gradient(circle at 14% 0%, rgba(255,121,0,.16), transparent 32%), var(--z24-navy);
	color: rgba(255,255,255,.78);
}

.z24-expert strong,
.z24-expert blockquote {
	color: var(--z24-white);
}

.z24-expert blockquote {
	margin: 14px 0;
	font-size: 22px;
	line-height: 1.4;
}

.z24-link-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.z24-service-aside {
	min-width: 0;
}

.z24-service-aside .z24-form,
.z24-service-aside .z24-side-card {
	background: var(--z24-navy);
	color: var(--z24-white);
}

.z24-service-aside .z24-side-card h2,
.z24-service-aside .z24-side-card a {
	color: var(--z24-white);
}

.z24-service-aside .z24-side-card p {
	color: rgba(255,255,255,.76);
}

.z24-final-cta__inner {
	min-height: 230px;
	padding: 42px 34px;
}

.z24-final-cta__inner::before {
	background:
		linear-gradient(90deg, var(--z24-navy) 0%, rgba(7,24,42,.95) 43%, rgba(7,24,42,.52) 66%, rgba(7,24,42,.16) 100%),
		url('../images/cta-locksmith-door-stage3.png') right center / 56% auto no-repeat;
	filter: contrast(1.08) saturate(1.04) brightness(.98);
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	border: 0;
}

@media (max-width: 1320px) {
	.z24-hero__grid {
		grid-template-columns: minmax(0, 1fr) minmax(350px, 390px);
	}
}

@media (max-width: 1180px) {
	.z24-header__inner { grid-template-columns: auto 1fr auto; }
	.z24-header__contacts, .z24-header__cta { display: none; }
	.z24-nav__list { justify-content: end; gap: 14px; }
	.z24-service-grid { grid-template-columns: repeat(3, 1fr); }
	.z24-catalog-grid { grid-template-columns: repeat(2, 1fr); }
	.z24-price-grid { grid-template-columns: repeat(3, 1fr); }
	.z24-review-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 901px) and (max-width: 1080px) {
	.z24-header__inner {
		grid-template-columns: auto 44px 44px;
		gap: 10px;
	}
	.z24-nav { display: none; }
	.z24-menu-toggle,
	.z24-mobile-phone {
		display: grid;
		place-items: center;
		width: 44px;
		height: 44px;
		border-radius: 7px;
		color: var(--z24-white);
	}
	.z24-mobile-phone { background: var(--z24-orange); }
	.z24-menu-toggle {
		border: 1px solid rgba(255,255,255,.22);
		background: transparent;
	}
	.z24-mobile-phone svg,
	.z24-menu-toggle svg {
		width: 22px;
		height: 22px;
		fill: none;
		stroke: currentColor;
		stroke-width: 2;
		stroke-linecap: round;
		stroke-linejoin: round;
	}
	.z24-mobile-panel {
		display: none;
		border-top: 1px solid rgba(255,255,255,.08);
		padding: 14px 0 18px;
	}
	.z24-mobile-panel.is-open { display: block; }
	.z24-mobile-panel .z24-nav__list {
		display: grid;
		justify-items: start;
		gap: 0;
		margin-bottom: 14px;
	}
	.z24-mobile-panel li { width: 100%; border-bottom: 1px solid rgba(255,255,255,.08); }
	.z24-mobile-panel a:not(.z24-btn) { display: block; padding: 12px 0; }
	.z24-hero__grid {
		grid-template-columns: 1fr;
		gap: 24px;
		min-height: 0;
	}
	.z24-hero__form {
		width: min(100%, 460px);
		justify-self: start;
	}
}

@media (max-width: 900px) {
	body { padding-bottom: 72px; }
	.z24-hero {
		--z24-hero-position: center center !important;
		--z24-hero-size: cover !important;
	}
	.z24-container { width: min(100% - 28px, var(--z24-container)); }
	.z24-header__inner {
		grid-template-columns: auto 44px 44px;
		gap: 10px;
		min-height: 64px;
	}
	.z24-nav { display: none; }
	.z24-menu-toggle {
		display: grid;
		place-items: center;
		width: 44px;
		height: 44px;
		border: 1px solid rgba(255,255,255,.22);
		border-radius: 7px;
		background: transparent;
		color: var(--z24-white);
	}
	.z24-mobile-phone {
		display: grid;
		place-items: center;
		width: 44px;
		height: 44px;
		border-radius: 7px;
		background: var(--z24-orange);
		color: var(--z24-white);
	}
	.z24-mobile-phone svg {
		width: 22px;
		height: 22px;
		fill: none;
		stroke: currentColor;
		stroke-width: 2;
		stroke-linecap: round;
		stroke-linejoin: round;
	}
	.z24-menu-toggle svg { width: 24px; height: 24px; }
	.z24-mobile-panel {
		display: none;
		border-top: 1px solid rgba(255,255,255,.08);
		padding: 14px 0 18px;
	}
	.z24-mobile-panel.is-open { display: block; }
	.z24-mobile-panel .z24-nav__list {
		display: grid;
		justify-items: start;
		gap: 0;
		margin-bottom: 14px;
	}
	.z24-mobile-panel li { width: 100%; border-bottom: 1px solid rgba(255,255,255,.08); }
	.z24-mobile-panel a:not(.z24-btn) { display: block; padding: 12px 0; }
	.z24-hero__grid {
		grid-template-columns: 1fr;
		gap: 22px;
		min-height: 0;
		padding-block: 30px;
	}
	.z24-hero__content h1 { max-width: none; }
	.z24-hero__content h1 span {
		display: inline;
		white-space: normal;
	}
	.z24-hero__content h1 span + span::before { content: " "; }
	.z24-hero__form { order: 3; }
	.z24-hero__phone { display: inline-flex; }
	.z24-checklist--hero li:nth-child(n+4) { display: none; }
	.z24-trust__grid { grid-template-columns: 1fr 1fr; }
	.z24-service-grid,
	.z24-price-grid,
	.z24-adv-grid,
	.z24-steps,
	.z24-geo,
	.z24-page__layout,
	.z24-footer__grid,
	.z24-service-grid--catalog,
	.z24-catalog-grid,
	.z24-service-grid--compact,
	.z24-info-steps,
	.z24-image-row,
	.z24-final-cta__inner,
	.z24-price-sections,
	.z24-commercial-card-grid,
	.z24-area-grid,
	.z24-work-steps,
	.z24-contact-grid,
	.z24-contact-guidance {
		grid-template-columns: 1fr;
	}
	.z24-review-row {
		display: flex;
		overflow-x: auto;
		padding-bottom: 8px;
		scroll-snap-type: x proximity;
	}
	.z24-review-card {
		min-width: 270px;
		scroll-snap-align: start;
	}
	.z24-sidebar .z24-form,
	.z24-page .z24-form { position: static; }
	.z24-sidebar__sticky { position: static; }
	.z24-final-cta__actions { justify-content: start; }
	.z24-contact-guidance .z24-btn { justify-self: start; }
	.z24-how__inner { padding: 28px 20px; }
	.z24-step:not(:last-child)::after { display: none; }
	.z24-map--yandex { height: 320px; }
	.z24-final-cta__inner {
		background: var(--z24-navy);
	}
	.z24-final-cta__inner::before {
		background:
			linear-gradient(90deg, rgba(7,24,42,.96), rgba(7,24,42,.84)),
			url('../images/cta-locksmith-door-stage3.png') right center / cover no-repeat;
	}
	.z24-mobile-actions {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 60;
		display: grid;
		grid-template-columns: 1fr 1fr;
		background: var(--z24-navy);
		box-shadow: 0 -10px 28px rgba(7,24,42,.16);
	}
	.z24-mobile-actions a {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		min-height: 62px;
		color: var(--z24-white);
		font-weight: 900;
	}
	.z24-mobile-actions a + a { background: var(--z24-orange); }
}

@media (max-width: 480px) {
	:root { --z24-h1: 31px; --z24-h2: 24px; }
	.z24-logo__mark { width: 32px; height: 38px; }
	.z24-logo strong { font-size: 18px; }
	.z24-logo small { font-size: 9px; }
	.z24-actions { display: grid; }
	.z24-btn { width: 100%; padding-inline: 16px; }
	.z24-form { padding: 18px; }
	.z24-hero .z24-form { padding: 16px; }
	.z24-hero .z24-form h2 { font-size: 22px; margin-bottom: 5px; }
	.z24-hero .z24-form p { margin-bottom: 8px; }
	.z24-hero .z24-form label { margin-top: 5px; gap: 2px; }
	.z24-hero .z24-form input,
	.z24-hero .z24-form textarea {
		min-height: 38px;
		padding-block: 7px;
	}
	.z24-hero .z24-form textarea { min-height: 52px; }
	.z24-hero .z24-form button { min-height: 44px; margin-top: 8px; }
	.z24-hero .z24-form small { margin-top: 7px; }
	.z24-trust__grid { grid-template-columns: 1fr; }
	.z24-service-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
	.z24-catalog-grid { grid-template-columns: 1fr; }
	.z24-service-card p { display: none; }
	.z24-price-grid { grid-template-columns: 1fr; }
	.z24-catalog-toolbar { grid-template-columns: 1fr; }
	.z24-commercial-page { gap: 28px; }
	.z24-price-group,
	.z24-commercial-card,
	.z24-contact-card { padding: 18px; }
	.z24-price-list > div { grid-template-columns: 1fr; gap: 5px; }
	.z24-price-list strong { text-align: left; white-space: normal; }
	.z24-check-list { grid-template-columns: 1fr; }
	.z24-commercial-actions .z24-btn,
	.z24-contact-guidance .z24-btn { width: 100%; }
	.z24-footer__bottom { display: grid; }
}

@media (max-width: 360px) {
	:root { --z24-h1: 28px; }
	.z24-hero__phone { display: none; }
	.z24-hero__grid { gap: 18px; padding-block: 24px; }
}

@media (max-width: 340px) {
	.z24-container { width: min(100% - 20px, var(--z24-container)); }
	.z24-logo__text small { display: none; }
	.z24-service-grid { grid-template-columns: 1fr; }
	.z24-mobile-actions a { font-size: 14px; }
}

@media (max-width: 1180px) {
	.z24-hero--service .z24-hero__grid,
	.z24-service-layout {
		grid-template-columns: 1fr;
	}
	.z24-service-aside {
		max-width: 520px;
		width: 100%;
	}
}

@media (max-width: 900px) {
	.z24-service-list,
	.z24-doc-grid,
	.z24-factor-grid,
	.z24-tip-grid,
	.z24-process-grid,
	.z24-rich-list--columns {
		grid-template-columns: 1fr;
	}
	.z24-service-block {
		padding: 22px;
	}
	.z24-service-block h2 {
		font-size: 25px;
	}
	.z24-final-cta__inner {
		min-height: 0;
		padding: 30px 22px;
	}
	.z24-final-cta__inner::before {
		background:
			linear-gradient(90deg, rgba(7,24,42,.97), rgba(7,24,42,.86)),
			url('../images/cta-locksmith-door-stage3.png') right center / cover no-repeat;
	}
}

@media (max-width: 480px) {
	.z24-service-toc a,
	.z24-link-row a {
		width: 100%;
		justify-content: center;
	}
	.z24-service-block {
		padding: 18px;
	}
	.z24-expert blockquote {
		font-size: 19px;
	}
}

.z24-pseo-shell {
	background: #fff;
	color: var(--z24-text);
}

.z24-pseo-hero {
	position: relative;
	overflow: hidden;
	background:
		linear-gradient(90deg, rgba(3,18,32,.98) 0%, rgba(3,18,32,.9) 42%, rgba(3,18,32,.54) 68%, rgba(3,18,32,.94) 100%),
		var(--z24-pseo-hero-image) var(--z24-pseo-hero-position, center center) / var(--z24-pseo-hero-size, cover) no-repeat;
	color: #fff;
}

.z24-pseo-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: 44px;
	align-items: center;
	min-height: 560px;
	padding-block: 50px;
}

.z24-pseo-hero__content {
	max-width: 800px;
}

.z24-pseo-hero h1 {
	max-width: 820px;
	margin: 0 0 20px;
	color: #fff;
	font-size: clamp(40px, 4vw, 64px);
	line-height: 1.08;
}

.z24-pseo-hero__lead {
	max-width: 680px;
	margin: 0 0 22px;
	color: rgba(255,255,255,.86);
	font-size: 18px;
	line-height: 1.65;
}

.z24-pseo-breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin-bottom: 24px;
	color: rgba(255,255,255,.72);
}

.z24-pseo-breadcrumbs a {
	color: #fff;
	text-decoration: none;
}

.z24-pseo-breadcrumbs span {
	color: rgba(255,255,255,.72);
}

.z24-pseo-hero__facts {
	max-width: 720px;
}

.z24-pseo-hero__form .z24-form {
	box-shadow: 0 26px 70px rgba(0,0,0,.3);
}

.z24-pseo-layout {
	display: grid;
	grid-template-columns: minmax(0, 820px) 340px;
	gap: 46px;
	align-items: start;
}

.z24-pseo-main {
	min-width: 0;
}

.z24-pseo-aside {
	min-width: 0;
}

.z24-pseo-block {
	margin-bottom: 28px;
}

.z24-pseo-intro {
	padding: 28px;
	border: 1px solid var(--z24-line);
	border-radius: 8px;
	background: #fff;
	box-shadow: var(--z24-shadow);
}

.z24-pseo-intro p,
.z24-pseo-section p,
.z24-pseo-section li {
	color: var(--z24-muted);
	font-size: 16px;
	line-height: 1.72;
}

.z24-pseo-intro p:last-child,
.z24-pseo-section p:last-child {
	margin-bottom: 0;
}

.z24-pseo-section {
	padding: 30px;
	border: 1px solid var(--z24-line);
	border-radius: 8px;
	background: #fff;
	box-shadow: var(--z24-shadow);
}

.z24-pseo-section h2,
.z24-pseo-hub-section h2 {
	margin: 0 0 16px;
	font-size: 30px;
	line-height: 1.18;
}

.z24-pseo-section h3,
.z24-pseo-hub-section h3 {
	margin: 0 0 10px;
	font-size: 18px;
	line-height: 1.28;
}

.z24-pseo-section__lead {
	margin-top: -4px;
}

.z24-pseo-cards__grid,
.z24-pseo-steps__grid,
.z24-pseo-access-policy__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin-top: 16px;
}

.z24-pseo-cards article,
.z24-pseo-steps article,
.z24-pseo-access-policy article {
	padding: 18px;
	border: 1px solid var(--z24-line);
	border-radius: 8px;
	background: var(--z24-soft);
}

.z24-pseo-steps article span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	margin-bottom: 12px;
	border-radius: 50%;
	background: var(--z24-orange);
	color: #fff;
	font-weight: 800;
}

.z24-pseo-list {
	margin: 18px 0;
}

.z24-pseo-list ul,
.z24-pseo-list ol,
.z24-pseo-access-policy ul,
.z24-pseo-price ul {
	margin: 10px 0 0;
	padding-left: 20px;
}

.z24-pseo-table {
	margin: 18px 0;
	overflow-x: auto;
	border: 1px solid var(--z24-line);
	border-radius: 8px;
}

.z24-pseo-table table {
	width: 100%;
	min-width: 640px;
	border-collapse: collapse;
	background: #fff;
}

.z24-pseo-table caption {
	padding: 14px 16px;
	text-align: left;
	font-weight: 800;
}

.z24-pseo-table th,
.z24-pseo-table td {
	padding: 14px 16px;
	border-top: 1px solid var(--z24-line);
	text-align: left;
	vertical-align: top;
}

.z24-pseo-table th {
	background: var(--z24-soft);
	color: var(--z24-navy);
}

.z24-pseo-chip-group {
	margin-top: 18px;
}

.z24-pseo-chips,
.z24-pseo-link-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 10px;
}

.z24-pseo-chips span,
.z24-pseo-link-grid a {
	display: flex;
	min-height: 48px;
	align-items: center;
	padding: 12px 14px;
	border: 1px solid var(--z24-line);
	border-radius: 8px;
	background: #fff;
	color: var(--z24-navy);
	font-weight: 800;
	text-decoration: none;
}

.z24-pseo-link-grid a {
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 3px;
}

.z24-pseo-link-grid small {
	color: var(--z24-muted);
	font-weight: 600;
}

.z24-pseo-callout,
.z24-pseo-emergency {
	margin: 18px 0;
	padding: 20px;
	border-radius: 8px;
	background: #071d33;
	color: #fff;
}

.z24-pseo-callout p,
.z24-pseo-callout li,
.z24-pseo-emergency p,
.z24-pseo-emergency li {
	color: rgba(255,255,255,.86);
}

.z24-pseo-callout--warning {
	background: #fff3e9;
	color: var(--z24-navy);
	border: 1px solid #ffd8b8;
}

.z24-pseo-callout--warning p,
.z24-pseo-callout--warning li {
	color: var(--z24-text);
}

.z24-pseo-emergency li {
	display: grid;
	grid-template-columns: 54px 1fr;
	gap: 10px;
}

.z24-pseo-price {
	display: grid;
	grid-template-columns: minmax(0, .82fr) minmax(0, 1fr);
	gap: 22px;
	margin: 18px 0;
	padding: 26px;
	border-radius: 8px;
	background:
		linear-gradient(90deg, rgba(3,18,32,.98), rgba(3,18,32,.9), rgba(3,18,32,.72)),
		var(--z24-pseo-hero-image) var(--z24-pseo-hero-position, center center) / var(--z24-pseo-hero-size, cover) no-repeat;
	color: #fff;
}

.z24-pseo-price strong {
	display: block;
	margin-bottom: 10px;
	color: #fff;
	font-size: 34px;
	line-height: 1.1;
}

.z24-pseo-price p,
.z24-pseo-price li {
	color: rgba(255,255,255,.86);
}

.z24-pseo-price__lists {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.z24-pseo-faq {
	border: 1px solid var(--z24-line);
	border-radius: 8px;
	overflow: hidden;
}

.z24-pseo-faq details + details {
	border-top: 1px solid var(--z24-line);
}

.z24-pseo-faq summary {
	cursor: pointer;
	padding: 16px 18px;
	color: var(--z24-navy);
	font-weight: 800;
	list-style: none;
}

.z24-pseo-faq summary::-webkit-details-marker {
	display: none;
}

.z24-pseo-faq summary::after {
	float: right;
	content: "+";
}

.z24-pseo-faq details[open] summary::after {
	content: "-";
}

.z24-pseo-faq p {
	margin: 0;
	padding: 0 18px 18px;
}

.z24-pseo-inline-cta {
	margin-top: 18px;
}

.z24-pseo-hub-section {
	margin-top: 28px;
	padding: 26px;
	border: 1px solid var(--z24-line);
	border-radius: 8px;
	background: #fff;
	box-shadow: var(--z24-shadow);
}

.z24-pseo-route-group + .z24-pseo-route-group {
	margin-top: 24px;
	padding-top: 24px;
	border-top: 1px solid var(--z24-line);
}

.z24-service-card__badge {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	margin-top: 8px;
	padding: 5px 8px;
	border-radius: 999px;
	background: #fff3e9;
	color: var(--z24-orange);
	font-size: 11px;
	font-weight: 800;
}

.z24-pseo-service-grid .z24-service-card a {
	min-height: 100%;
}

@media (max-width: 1180px) {
	.z24-pseo-hero__grid,
	.z24-pseo-layout {
		grid-template-columns: 1fr;
	}

	.z24-pseo-hero__grid {
		min-height: 0;
	}

	.z24-pseo-hero__form,
	.z24-pseo-aside {
		max-width: 540px;
		width: 100%;
	}
}

@media (max-width: 768px) {
	.z24-pseo-hero {
		background:
			linear-gradient(180deg, rgba(3,18,32,.98), rgba(3,18,32,.88)),
			var(--z24-pseo-hero-image) center center / cover no-repeat;
	}

	.z24-pseo-hero__grid {
		padding-block: 32px;
	}

	.z24-pseo-hero h1 {
		font-size: 38px;
	}

	.z24-pseo-section,
	.z24-pseo-intro,
	.z24-pseo-hub-section {
		padding: 22px;
	}

	.z24-pseo-cards__grid,
	.z24-pseo-steps__grid,
	.z24-pseo-access-policy__grid,
	.z24-pseo-price,
	.z24-pseo-price__lists {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 430px) {
	.z24-pseo-hero h1 {
		font-size: 32px;
	}

	.z24-pseo-hero__lead,
	.z24-pseo-intro p,
	.z24-pseo-section p,
	.z24-pseo-section li {
		font-size: 15px;
	}

	.z24-pseo-section h2,
	.z24-pseo-hub-section h2 {
		font-size: 25px;
	}

	.z24-pseo-chips,
	.z24-pseo-link-grid {
		grid-template-columns: 1fr;
	}

	.z24-pseo-section,
	.z24-pseo-intro,
	.z24-pseo-hub-section {
		padding: 18px;
	}
}
