/*
 * Section: Pricing teaser.
 *
 * Loaded only on pages carrying the `pricing_teaser` layout.
 *
 * The range is the argument. It is set at display scale, fenced by heavy
 * rules, and given the left half of the section — the comp gives it that much
 * room on purpose, because a number stated this plainly is the differentiator.
 *
 * Nothing else in here competes: no card, no shadow, no button, no tier
 * table. The section is short by design and padding it out with visual weight
 * would make the confidence look like decoration.
 *
 * Role tokens only, so it survives on any band — this runs on the pillar,
 * every trade page and the homepage.
 */


.pricing-teaser__inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sq-space-5);
	align-items: start;
}

.pricing-teaser__lead {
	display: flex;
	flex-direction: column;
	gap: var(--sq-space-4);
}

.pricing-teaser__heading {
	margin: 0;
	font-size: var(--sq-text-h2);
	line-height: 0.98;
}


/* =============================================================== RANGE ==
 *
 * Fenced top and bottom by a 4px rule. That is what makes it read as a stated
 * fact rather than a headline — the same device the design system uses for
 * the hero's trust bullets.
 */

.pricing-teaser__range {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding-block: var(--sq-space-5);
	border-top: 4px solid var(--sq-border);
	border-bottom: 4px solid var(--sq-border);
}

.pricing-teaser__figures {
	display: flex;
	flex-wrap: wrap;
	gap: 0.875rem; /* 14 */
	align-items: baseline;
	margin: 0;
	max-width: none;
}

/*
 * 56 → 104. Display type, tightened. No currency assumption anywhere: whatever
 * the field holds is what renders, symbol or not.
 */
.pricing-teaser__price {
	font-family: var(--sq-font-display);
	font-size: clamp(3.5rem, 2rem + 7.5vw, 6.5rem);
	font-weight: var(--sq-weight-bold);
	letter-spacing: -0.02em;
	line-height: 0.85;
}

/*
 * The "to" is smaller and accented, so the eye reads two figures with a link
 * between them rather than one long string. Accent rather than a named colour
 * so it holds on a dark band.
 */
.pricing-teaser__separator {
	color: var(--sq-accent);
	font-family: var(--sq-font-display);
	font-size: clamp(1.75rem, 1rem + 3.75vw, 3.25rem); /* 28 → 52 */
	font-weight: var(--sq-weight-semibold);
	line-height: 0.9;
}

.pricing-teaser__period {
	margin: 0;
	font-size: 1.25rem; /* 20 */
	font-weight: var(--sq-weight-bold);
	letter-spacing: var(--sq-tracking-label-sm);
	line-height: 1.3;
	text-transform: uppercase;
}


/* ============================================================= FACTORS ==
 *
 * Same shape as the narrative section's points: a definition list, bold label
 * then explanation, marked as a set by a rule rather than boxed. Kept local
 * for now — if a third section needs it, promote it to chrome.css.
 */

.pricing-teaser__factors {
	margin: 0;
	padding-left: var(--sq-space-4);
	border-left: var(--sq-border-width) solid var(--sq-rule);
}

.pricing-teaser__factor + .pricing-teaser__factor {
	margin-top: var(--sq-space-3);
}

.pricing-teaser__factor-label {
	margin: 0;
	font-weight: var(--sq-weight-bold);
	line-height: 1.4;
}

.pricing-teaser__factor-description {
	margin: 0;
	color: var(--sq-fg-muted);
	line-height: 1.6;
}


/* ============================================================== DETAIL == */

.pricing-teaser__detail {
	display: flex;
	flex-direction: column;
	gap: var(--sq-space-5);
	max-width: 68ch;
}

.pricing-teaser__intro > *,
.pricing-teaser__closing > * {
	margin: 0;
	font-size: var(--sq-text-lead);
	line-height: var(--sq-leading-normal);
	text-wrap: pretty;
}

.pricing-teaser__intro > * + *,
.pricing-teaser__closing > * + * {
	margin-top: var(--sq-space-4);
}

/*
 * The promise. A heavy edge in the trust colour — --sq-link is the blue role
 * token on a light band and paper on a dark one, so the marker survives the
 * band change that a literal blue would not.
 */
.pricing-teaser__closing {
	padding-left: 1.125rem; /* 18 */
	border-left: 6px solid var(--sq-link);
}

.pricing-teaser__closing > * {
	font-weight: var(--sq-weight-semibold);
}

.pricing-teaser__detail .btn--text {
	align-self: flex-start;
	font-size: 1.1875rem; /* 19 */
	font-weight: var(--sq-weight-bold);
}

.pricing-teaser__detail .btn--text::after {
	content: '\00a0\2192'; /* nbsp + arrow */
}


/* ============================================================= DESKTOP == */

@media (min-width: 61.25em) {

	/* Half the section for the range, exactly as drawn. */
	.pricing-teaser__inner {
		grid-template-columns: 1fr 1fr;
		gap: 3.5rem; /* 56 */
	}

	.pricing-teaser__lead {
		gap: var(--sq-space-5);
	}

	.pricing-teaser__heading {
		letter-spacing: var(--sq-tracking-display);
	}

	/* Optical alignment: the detail column starts level with the heading. */
	.pricing-teaser__detail {
		padding-top: 0.5rem;
	}
}
