/*
 * Sub-Zero — shared stylesheet for the brand parent page and the three Series
 * pages. Loaded once; nothing here is duplicated into page content.
 *
 * Scope: `.atp-brand--subzero` (set by the Brand Landing / Sub-Zero Series
 * templates through the page's "Brand style scope" field) plus the standalone
 * .sz-* components. Other brand landings and every service page are untouched,
 * and none of the ATP Service (.srvc-*) rules are reused here.
 */

/* ------------------------------------------------------- global scrolling -- */
html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

/* Sticky-header offset for every in-page anchor target on Sub-Zero pages. */
.atp-brand--subzero [id] {
	scroll-margin-top: calc(var(--header-h, 90px) + 12px);
}

/* --------------------------------------------------------------- tokens --- */
.atp-brand--subzero {
	--sz-navy: #102a49;
	--sz-navy-dark: #0a1d33;
	--sz-gold: #d6a928;
	--sz-yellow: #f4c542;
	--sz-ink: var(--bh-ink, #14213d);
	--sz-body: #526171;
	--sz-soft: #f6f3ed;
	--sz-line: rgba(16, 42, 73, .12);
	--sz-shadow: 0 8px 24px rgba(15, 39, 68, .06);
	--sz-max: 1200px;
	--sz-narrow: 1000px;
}

/* ----------------------------------------------------------- typography --- */
.atp-brand--subzero {
	font-size: 17px;
	line-height: 1.6;
}

.atp-brand--subzero .bh-h2,
.atp-brand--subzero .sz-heading {
	font-size: clamp(28px, 3vw, 40px);
	line-height: 1.15;
}

.atp-brand--subzero h3,
.atp-brand--subzero .sz-card h3,
.atp-brand--subzero .sz-step h3 {
	font-size: clamp(20px, 2vw, 24px);
	line-height: 1.3;
}

@media (max-width: 767px) {
	.atp-brand--subzero {
		font-size: 16px;
	}
}

/*
 * One body-copy scale for the Sub-Zero blocks (ТЗ 2.7). The block templates ship
 * Tailwind size utilities (text-sm / text-lg), so the section list goes through
 * :where() — zero specificity, decided by source order — while :not(:is(...))
 * keeps genuine captions (eyebrows, step labels, form labels, price strike) at
 * their designed size. Nothing here needs !important, and no other brand or
 * service page is in scope.
 */
.atp-brand--subzero
	:where(.bh-why, .bh-process, .bh-services, .bh-offer2, .bh-schedule, #schedule, .sz-section, .sz-strip-cta)
	:where(p, li):not(:is(.text-xs, .bh-badge, .sz-eyebrow, .bh-label, .atp-form-consent, .bh-offer2__strike, .bh-offer2__card-sub, .bh-offer2__price)) {
	font-size: 17px;
	line-height: 1.6;
}

@media (max-width: 767px) {
	.atp-brand--subzero
		:where(.bh-why, .bh-process, .bh-services, .bh-offer2, .bh-schedule, #schedule, .sz-section, .sz-strip-cta)
		:where(p, li):not(:is(.text-xs, .bh-badge, .sz-eyebrow, .bh-label, .atp-form-consent, .bh-offer2__strike, .bh-offer2__card-sub, .bh-offer2__price)) {
		font-size: 16px;
	}
}


/* ---------------------------------------------------------- containers ---- */
.atp-brand--subzero .container-content,
.sz-inner {
	width: 100%;
	max-width: var(--sz-max, 1200px);
	margin-inline: auto;
	padding-inline: clamp(16px, 4vw, 32px);
}

.sz-inner--narrow {
	max-width: var(--sz-narrow, 1000px);
}

/* ---------------------------------------------------------------- hero ---- */
.atp-brand--subzero #mainhero {
	padding-top: 32px;
	padding-bottom: 32px;
}

.atp-brand--subzero #mainhero > .container-content {
	gap: 2rem;
}

/*
 * Grid and flex items default to min-width:auto, so a long word or a wide
 * icon+text pair can push the track past a 320px viewport. Letting them shrink
 * is what keeps every Sub-Zero page free of horizontal scroll.
 */
.atp-brand--subzero .grid > *,
.atp-brand--subzero .flex > * {
	min-width: 0;
}

.atp-brand--subzero #mainhero h1 {
	overflow-wrap: anywhere;
}

.atp-brand--subzero #mainhero h1 {
	font-size: clamp(30px, 4vw, 44px);
	line-height: 1.1;
}

.atp-brand--subzero #mainhero p {
	font-size: 1rem;
	line-height: 1.55;
}

@media (min-width: 1024px) {
	.atp-brand--subzero #mainhero {
		display: flex;
		align-items: center;
		height: auto;
		/* Fits the viewport under the real header, but grows when content needs it. */
		min-height: min(calc(100svh - var(--header-h, 90px)), 820px);
		padding-top: 40px;
		padding-bottom: 40px;
	}

	.atp-brand--subzero #mainhero > .container-content {
		width: 100%;
	}
}

@media (max-width: 1023px) {
	.atp-brand--subzero #mainhero {
		min-height: auto;
	}
}

/* ------------------------------------------------- yellow CTA (shared) ---- */
.sz-strip-cta {
	box-sizing: border-box;
	width: 100%;
	border-radius: 0;
	background: var(--sz-yellow, #f4c542);
	color: #111;
}

.sz-strip-cta__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	width: 100%;
	max-width: 1200px;
	min-height: 76px;
	margin-inline: auto;
	padding: 20px clamp(16px, 4vw, 32px);
}

.sz-strip-cta__inner p {
	margin: 0;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.45;
}

.sz-strip-cta__inner a {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: .7rem 1.15rem;
	border-radius: 8px;
	background: #16293f;
	color: #fff;
	font-weight: 800;
	text-decoration: none;
}

.sz-strip-cta__inner a:hover {
	background: #0a1d33;
	color: #fff;
}

.sz-strip-cta__inner a:focus-visible {
	outline: 3px solid #102a49;
	outline-offset: 3px;
}

@media (max-width: 639px) {
	.sz-strip-cta__inner {
		flex-direction: column;
		align-items: stretch;
		padding-block: 20px;
	}

	.sz-strip-cta__inner a {
		width: 100%;
	}
}

/* ------------------------------------------------------- series sections -- */
.sz-section {
	width: 100%;
	padding-block: 40px;
}

.sz-section--white { background: #fff; }
.sz-section--soft { background: var(--sz-soft, #f6f3ed); }

.sz-section--navy {
	background: #0d2744;
	color: #fff;
}

@media (max-width: 767px) {
	.sz-section {
		padding-block: 28px;
	}
}

.sz-eyebrow {
	margin: 0 0 .65rem;
	color: var(--sz-gold, #d6a928);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.sz-heading {
	margin: 0 0 1rem;
	color: var(--sz-navy, #102a49);
	font-family: inherit;
	font-weight: 800;
}

.sz-section--navy .sz-heading {
	color: #fff;
}

.sz-lead {
	max-width: 1000px;
	margin: 0 0 1.5rem;
	color: #4f5e6d;
	font-size: 1.05rem;
	line-height: 1.7;
}

.sz-section--navy .sz-lead {
	color: rgba(255, 255, 255, .78);
}

/* --------------------------------------------------------------- grids ---- */
.sz-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}

@media (min-width: 700px) {
	.sz-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sz-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 640px) {
	.sz-grid--auto { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
}

/* --------------------------------------------------------------- cards ---- */
.sz-card {
	padding: 18px;
	border: 1px solid var(--sz-line, rgba(16, 42, 73, .12));
	border-radius: 14px;
	background: #fff;
	box-shadow: var(--sz-shadow, 0 8px 24px rgba(15, 39, 68, .06));
}

.sz-card h3 {
	margin: 0 0 .65rem;
	color: var(--sz-navy, #102a49);
	font-weight: 800;
}

.sz-card p,
.sz-card li {
	color: var(--sz-body, #526171);
	line-height: 1.6;
}

.sz-card p:last-child {
	margin-bottom: 0;
}

.sz-card ul {
	margin: 0;
	padding-left: 1.15rem;
	list-style: disc outside;
}

.sz-card li + li {
	margin-top: .45rem;
}

/* Cards keep dark, fully opaque text even on the navy Problems section. */
.sz-section--navy .sz-card {
	padding: 18px;
	border-color: rgba(255, 255, 255, .12);
	box-shadow: none;
}

.sz-section--navy .sz-card p,
.sz-section--navy .sz-card li {
	color: var(--bh-ink, #14213d);
	opacity: 1;
}

.sz-section--navy .sz-card li::marker {
	color: var(--sz-gold, #d6a928);
	font-size: .9em;
}

.sz-note {
	margin-top: 1.5rem;
	padding: 1.2rem 1.35rem;
	border-left: 4px solid var(--sz-gold, #d6a928);
	border-radius: 0 12px 12px 0;
	background: #fff;
	color: var(--sz-body, #526171);
	line-height: 1.65;
}

.sz-section--navy .sz-note {
	background: rgba(255, 255, 255, .06);
	color: rgba(255, 255, 255, .82);
}

/* ------------------------------------------------------ service overview -- */
.sz-overview-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}

@media (min-width: 700px) {
	.sz-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.sz-overview-item {
	padding: 1.25rem 1.4rem;
	border: 1px solid var(--sz-line, rgba(16, 42, 73, .12));
	border-radius: 14px;
	background: #fff;
	box-shadow: var(--sz-shadow, 0 8px 24px rgba(15, 39, 68, .06));
}

.sz-overview-item h3 {
	margin: 0 0 .6rem;
	color: var(--sz-navy, #102a49);
	font-size: 1.05rem;
	font-weight: 800;
}

.sz-overview-item ul { margin: 0; padding-left: 1.1rem; }
.sz-overview-item li { color: var(--sz-body, #526171); line-height: 1.55; }
.sz-overview-item li + li { margin-top: .35rem; }
.sz-overview-item p { margin: 0; color: var(--sz-body, #526171); line-height: 1.6; }

/* ---------------------------------------------------------- phone chip ---- */
.sz-phone-chip {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	min-height: 44px;
	margin-top: 1.5rem;
	padding: .65rem 1.25rem;
	border-radius: 999px;
	background: var(--sz-navy, #102a49);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}

.sz-phone-chip:hover {
	background: var(--sz-navy-dark, #0a1d33);
	color: #fff;
}

/* --------------------------------------------------------- models table --- */
.sz-table-wrap {
	margin-top: 1.5rem;
	overflow-x: auto;
	border: 1px solid #d9e0e7;
	border-radius: 14px;
	background: #fff;
	box-shadow: var(--sz-shadow, 0 8px 24px rgba(15, 39, 68, .06));
	-webkit-overflow-scrolling: touch;
}

.sz-table {
	width: 100%;
	min-width: 760px;
	margin: 0;
	border-collapse: collapse;
}

.sz-table th {
	padding: 1rem 1.1rem;
	border: 0;
	background: var(--sz-navy, #102a49);
	color: #fff;
	font-size: .92rem;
	text-align: left;
}

.sz-table td {
	padding: .95rem 1.1rem;
	border: 0;
	border-bottom: 1px solid #e5e9ee;
	color: var(--sz-body, #526171);
	vertical-align: top;
}

.sz-table tbody tr:last-child td { border-bottom: 0; }

.sz-table td:first-child {
	color: var(--sz-navy, #102a49);
	font-weight: 700;
}

/* Model codes are never truncated. */
.sz-table td,
.sz-table th {
	overflow: visible;
	text-overflow: clip;
	white-space: normal;
}

.sz-table th:nth-child(1),
.sz-table td:nth-child(1) { width: 29%; }

.sz-table th:nth-child(2),
.sz-table td:nth-child(2) { width: 20%; }

.sz-table th:nth-child(3),
.sz-table td:nth-child(3) { width: 51%; }

/* ------------------------------------------------------------- process ---- */
.sz-process {
	display: grid;
	gap: 14px;
	margin-top: 1.5rem;
}

.sz-step {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	gap: 1rem;
	align-items: start;
	padding: 18px;
	border: 1px solid var(--sz-line, rgba(16, 42, 73, .12));
	border-radius: 14px;
	background: #fff;
}

.sz-step__num {
	display: flex;
	width: 42px;
	height: 42px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: #edc247;
	color: var(--sz-navy, #102a49);
	font-size: .82rem;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.sz-step h3 {
	margin: 0 0 .4rem;
	color: var(--sz-navy, #102a49);
	font-weight: 800;
}

.sz-step p {
	margin: 0;
	color: var(--sz-body, #526171);
	line-height: 1.62;
}

/* ------------------------------------------------ series identification --- */
.sz-series-card {
	display: flex;
	flex-direction: column;
}

.sz-series-card p {
	margin: 0 0 1.25rem;
}

.sz-series-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	min-height: 44px;
	margin-top: auto;
	padding: .75rem 1rem;
	border: 1px solid var(--sz-navy, #102a49);
	border-radius: 8px;
	background: var(--sz-navy, #102a49);
	color: #fff;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
}

.sz-series-button:hover {
	background: var(--sz-navy-dark, #0a1d33);
	color: #fff;
}

.sz-series-button:focus-visible {
	outline: 3px solid var(--sz-gold, #d6a928);
	outline-offset: 3px;
}

/* ----------------------------------------------- series cards (parent) ---- */
.sz-series-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	margin-top: 2rem;
}

@media (min-width: 768px) {
	.sz-series-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.sz-series-tile {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 1.5rem;
	border: 1px solid var(--sz-line, rgba(16, 42, 73, .12));
	border-radius: 14px;
	background: #fff;
	box-shadow: var(--sz-shadow, 0 8px 24px rgba(15, 39, 68, .06));
	transition: box-shadow .2s ease, transform .2s ease;
}

.sz-series-tile:hover {
	box-shadow: 0 14px 32px rgba(15, 39, 68, .12);
	transform: translateY(-2px);
}

.sz-series-tile h3 {
	margin: 0 0 .6rem;
	color: var(--sz-navy, #102a49);
	font-weight: 800;
}

.sz-series-tile h3 a {
	color: inherit;
	text-decoration: none;
}

/* Whole tile clickable, while the real <a> keeps the heading anchor text. */
.sz-series-tile h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.sz-series-tile h3 a:focus-visible {
	outline: 3px solid var(--sz-gold, #d6a928);
	outline-offset: 4px;
}

.sz-series-tile p {
	margin: 0;
	color: var(--sz-body, #526171);
	line-height: 1.6;
}

/* ------------------------------------------------------------ why/proof --- */
.sz-proof {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	align-items: center;
	padding: 1.6rem;
	border: 1px solid var(--sz-line, rgba(16, 42, 73, .12));
	border-radius: 16px;
	background: #fff;
	box-shadow: var(--sz-shadow, 0 8px 24px rgba(15, 39, 68, .06));
}

@media (min-width: 760px) {
	.sz-proof { grid-template-columns: 180px minmax(0, 1fr); }
}

.sz-proof__stat {
	display: flex;
	min-height: 150px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	border-radius: 14px;
	background: var(--sz-navy, #102a49);
	color: #fff;
	text-align: center;
}

.sz-proof__stat strong { font-size: 2.35rem; line-height: 1; }
.sz-proof__stat span { margin-top: .5rem; font-size: .82rem; opacity: .8; }

.sz-proof p {
	margin: 0;
	color: var(--sz-body, #526171);
	line-height: 1.72;
}

/* -------------------------------------------------------- trust badges ---- */
.sz-badges-section {
	width: 100%;
	max-width: 1000px;
	margin: 2rem auto 0;
	padding: 1.5rem;
	border: 1px solid var(--sz-line, rgba(16, 42, 73, .12));
	border-radius: 16px;
	background: #fff;
	box-shadow: var(--sz-shadow, 0 8px 24px rgba(15, 39, 68, .06));
}

.sz-badge-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

@media (min-width: 640px) {
	.sz-badge-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.sz-badge-item {
	display: flex;
	min-height: 112px;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.sz-badge-item a {
	display: block;
	line-height: 0;
}

.sz-badge-item a:focus-visible {
	outline: 3px solid var(--sz-gold, #d6a928);
	outline-offset: 4px;
}

.sz-badge-item img {
	width: 100%;
	max-width: 112px;
	height: auto;
	margin-inline: auto;
	border: 0;
	object-fit: contain;
	aspect-ratio: 1 / 1;
}

/* -------------------------------------------- parent-page adjustments ----- */
/* Common Problems cards: dark, fully opaque body text (was translucent). */
.atp-brand--subzero .bh-symptoms-card p,
.atp-brand--subzero section[style*="--bh-navy"] .bg-white p,
.atp-brand--subzero section[style*="--bh-navy"] .bg-white li {
	color: var(--bh-ink, #14213d);
	opacity: 1;
}

/* Transparent pricing list: visible markers and one consistent rhythm. */
.atp-brand--subzero .bh-offer2__features {
	margin: 1.25rem 0 0;
	padding: 0;
	list-style: none;
}

.atp-brand--subzero .bh-offer2__features li {
	position: relative;
	min-height: auto;
	margin: 0;
	padding-left: 1.9rem;
}

.atp-brand--subzero .bh-offer2__features li + li {
	margin-top: .7rem;
}

.atp-brand--subzero .bh-offer2__features li::before {
	content: "";
	position: absolute;
	top: .45em;
	left: 0;
	width: 1.05rem;
	height: 1.05rem;
	background-color: var(--bh-gold, #e2b94b);
	-webkit-mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M173.9 439.4 7.5 273c-10-10-10-26.2 0-36.2l36.2-36.2c10-10 26.2-10 36.2 0L192 312.7 432.1 72.6c10-10 26.2-10 36.2 0l36.2 36.2c10 10 10 26.2 0 36.2L210.1 439.4c-10 10-26.2 10-36.2 0z'/%3E%3C/svg%3E");
	mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M173.9 439.4 7.5 273c-10-10-10-26.2 0-36.2l36.2-36.2c10-10 26.2-10 36.2 0L192 312.7 432.1 72.6c10-10 26.2-10 36.2 0l36.2 36.2c10 10 10 26.2 0 36.2L210.1 439.4c-10 10-26.2 10-36.2 0z'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------ forms (shared) ---- */
.atp-brand--subzero .bh-form textarea {
	resize: vertical;
}

.atp-brand--subzero .atp-form-consent {
	margin: .75rem 0 0;
	font-size: .78rem;
	line-height: 1.45;
	text-align: center;
}

.atp-brand--subzero .bh-form:not(.bh-form--dark) .atp-form-consent {
	color: #6b7280;
}

.atp-brand--subzero .bh-form--dark .atp-form-consent {
	color: rgba(255, 255, 255, .65);
}

.atp-brand--subzero .atp-form-consent a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* -------------------------------------------------------- series canvas --- */
/* No negative margins, no 100vw tricks: the template owns the full-width canvas. */
.subzero-series-page {
	margin-top: 0;
	margin-bottom: 0;
	overflow-x: clip;
}

.subzero-series-page > .wp-block-group__inner-container {
	display: contents;
}

/* ------------------------------------------------------ process (parent) -- */
/*
 * The step label used to sit above the heading as a right-aligned caption, so it
 * read as if it were colliding with it. It now owns a column of its own to the
 * left of the H3, with the description aligned under the heading. Plain grid —
 * no negative margins, no absolute positioning, no fixed heights, and a long
 * heading simply wraps inside its track.
 */
.atp-brand--subzero .bh-process__item {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-content: start;
	column-gap: 14px;
	row-gap: .85rem;
}

/* The head wrapper only groups the two elements for non-Sub-Zero contexts. */
.atp-brand--subzero .bh-process__head {
	display: contents;
}

.atp-brand--subzero .bh-process__num {
	grid-column: 1;
	align-self: baseline;
	margin: 0;
	color: var(--sz-gold, #d6a928);
	letter-spacing: .1em;
	white-space: nowrap;
}

.atp-brand--subzero .bh-process__title {
	grid-column: 2;
	margin: 0;
	overflow-wrap: anywhere;
}

.atp-brand--subzero .bh-process__text {
	grid-column: 2;
	margin: 0;
}

@media (max-width: 479px) {
	/* Very narrow: the label stacks above the heading instead of squeezing it. */
	.atp-brand--subzero .bh-process__item {
		grid-template-columns: minmax(0, 1fr);
		row-gap: .35rem;
	}

	.atp-brand--subzero .bh-process__num,
	.atp-brand--subzero .bh-process__title,
	.atp-brand--subzero .bh-process__text {
		grid-column: 1;
	}

	.atp-brand--subzero .bh-process__text {
		margin-top: .5rem;
	}
}

/* -------------------------------------------------------- vertical rhythm -- */
/*
 * One spacing scale across the parent and the three Series pages so the four
 * pages read as a single design system. Scoped to .atp-brand--subzero only.
 */
/*
 * Sections keep their own padding so a colour change always reads as a real
 * break. Only two neighbours sharing the same background collapse, otherwise the
 * seam between them would carry 80px of dead space.
 */
.atp-brand--subzero .sz-section--white + .sz-section--white,
.atp-brand--subzero .sz-section--soft + .sz-section--soft,
.atp-brand--subzero .sz-section--navy + .sz-section--navy {
	padding-top: 0;
}

/* Headings never touch the copy that follows them. */
.atp-brand--subzero .sz-heading + .sz-lead,
.atp-brand--subzero .sz-eyebrow + .sz-heading {
	margin-top: 0;
}

.atp-brand--subzero .sz-section .sz-grid,
.atp-brand--subzero .sz-section .sz-process,
.atp-brand--subzero .sz-section .sz-overview-grid,
.atp-brand--subzero .sz-section .sz-table-wrap {
	margin-top: 1.5rem;
}

/*
 * The yellow strip is a full-bleed divider: its own band stays exactly as tall as
 * its content, and the section that follows it keeps a normal top padding.
 */
.atp-brand--subzero .sz-strip-cta + .sz-section {
	padding-top: 40px;
}

@media (max-width: 767px) {
	.atp-brand--subzero .sz-strip-cta + .sz-section {
		padding-top: 28px;
	}
}

/* Trust badges sit under the "why" block, not glued to the next section. */
.atp-brand--subzero .sz-badges-section {
	margin-block: 2rem 3rem;
}

@media (max-width: 767px) {
	.atp-brand--subzero .sz-badges-section {
		margin-block: 1.5rem 2rem;
	}
}

/* Series identification: equal-height cards with the button pinned to the base. */
.atp-brand--subzero .sz-series-card {
	height: 100%;
}

.atp-brand--subzero .sz-grid--2 {
	align-items: stretch;
}

/* ------------------------------------------------- numbered steps (bh-why) -- */
/*
 * The number used to sit in a flex row where it could shrink below its own glyph
 * width and run into the heading. It now owns a fixed grid track, so its right
 * edge is decided by the track — never by the digits — and the heading plus its
 * copy live entirely in the second column. No absolute positioning, no negative
 * margins.
 */
.atp-brand--subzero .bh-process__step {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr);
	column-gap: 16px;
	align-items: start;
}

.atp-brand--subzero .bh-process__number {
	grid-column: 1;
	font-size: 2.25rem;
	line-height: 1;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.atp-brand--subzero .bh-process__content {
	grid-column: 2;
	min-width: 0;
}

@media (max-width: 479px) {
	.atp-brand--subzero .bh-process__step {
		grid-template-columns: 44px minmax(0, 1fr);
		column-gap: 10px;
	}

	.atp-brand--subzero .bh-process__number {
		font-size: 1.85rem;
	}
}
