/*
 * Ventureheap Builder - content widgets.
 */

/* Heading ----------------------------------------------------------------- */
.vhb-heading { margin: 0; color: var(--vhb-secondary); }
.vhb-heading a { color: inherit; text-decoration: none; }
.vhb-heading a:hover { color: var(--vhb-primary); }
.vhb-heading mark { background: transparent; color: var(--vhb-primary); }

/* Rich text --------------------------------------------------------------- */
.vhb-rich-text > *:last-child { margin-bottom: 0; }
.vhb-rich-text ul, .vhb-rich-text ol { padding-left: 1.35rem; }

.vhb-rich-text.has-drop-cap > p:first-of-type::first-letter {
	float: left;
	margin: .08em .12em 0 0;
	font-size: 3.4em;
	font-weight: 700;
	line-height: .82;
	color: var(--vhb-primary);
}

/* Info box ---------------------------------------------------------------- */
.vhb-info-box {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	background: var(--vhb-bg);
}

.vhb-info-box--inline { flex-direction: row; align-items: flex-start; }
.vhb-info-box--inline .vhb-info-box__media { flex: 0 0 auto; }

.vhb-info-box__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 28px;
	color: var(--vhb-primary);
	line-height: 1;
}

.vhb-info-box__icon svg { width: 1em; height: 1em; fill: currentColor; }

.vhb-info-box__title { margin: 0 0 .5rem; color: var(--vhb-secondary); }
.vhb-info-box__text { color: var(--vhb-muted); }
.vhb-info-box__text p:last-child { margin-bottom: 0; }
.vhb-info-box__image img { border-radius: var(--vhb-radius); }
.vhb-info-box__button { margin-top: .75rem; }

/* Icon Box variant: circular tile. */
.vhb-info-box--icon-tile .vhb-info-box__icon {
	width: 3.2em;
	height: 3.2em;
	border-radius: 50%;
	background: color-mix(in srgb, var(--vhb-primary) 12%, transparent);
}

/* Feature Box variant: bordered card that lifts on hover. */
.vhb-info-box--feature {
	padding: 28px;
	border: 1px solid var(--vhb-border);
	border-radius: var(--vhb-radius);
	transition: transform var(--vhb-transition), box-shadow var(--vhb-transition), border-color var(--vhb-transition);
}

.vhb-info-box--feature:hover {
	transform: translateY(-3px);
	box-shadow: var(--vhb-shadow);
	border-color: transparent;
}

/* Counter ----------------------------------------------------------------- */
.vhb-counter__number {
	margin: 0 0 .25rem;
	font-size: clamp(2.2rem, 1.6rem + 2.6vw, 3.4rem);
	font-weight: 800;
	line-height: 1.05;
	color: var(--vhb-secondary);
	display: flex;
	align-items: baseline;
	gap: .08em;
	justify-content: inherit;
}

.vhb-align-center .vhb-counter__number, .vhb-counter__number { justify-content: inherit; }
.vhb-counter__label { margin: 0; color: var(--vhb-muted); font-weight: 500; }
.vhb-counter__prefix, .vhb-counter__suffix { color: var(--vhb-primary); }

/* Progress bar ------------------------------------------------------------ */
.vhb-progress-list { display: grid; gap: 20px; }
.vhb-progress__head { display: flex; justify-content: space-between; gap: 12px; margin-bottom: .45rem; }
.vhb-progress__label { font-weight: 600; color: var(--vhb-secondary); }
.vhb-progress__value { color: var(--vhb-muted); font-variant-numeric: tabular-nums; }

.vhb-progress__track {
	position: relative;
	height: 10px;
	background: var(--vhb-border);
	border-radius: 999px;
	overflow: hidden;
}

.vhb-progress__fill {
	display: block;
	height: 100%;
	width: 0;
	background: var(--vhb-primary);
	border-radius: inherit;
	transition: width 1.1s cubic-bezier(.22, .61, .36, 1);
}

/* CTA box ----------------------------------------------------------------- */
.vhb-cta {
	display: flex;
	flex-direction: column;
	gap: 24px;
	padding: 40px;
	border-radius: var(--vhb-radius);
	background: var(--vhb-alt);
}

.vhb-cta--stacked { text-align: center; align-items: center; }
.vhb-cta__eyebrow {
	margin: 0 0 .5rem;
	font-size: .85rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--vhb-primary);
}
.vhb-cta__title { margin: 0 0 .6rem; color: var(--vhb-secondary); }
.vhb-cta__text { color: var(--vhb-muted); }
.vhb-cta__text p:last-child { margin-bottom: 0; }
.vhb-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.vhb-cta--stacked .vhb-cta__actions { justify-content: center; }

@media (min-width: 782px) {
	.vhb-cta--split { flex-direction: row; align-items: center; justify-content: space-between; }
	.vhb-cta--split .vhb-cta__actions { flex: 0 0 auto; }
}

/* Site logo ---------------------------------------------------------------- */
.vhb-logo-widget { display: block; }

.vhb-logo-widget__brand { margin: 0; line-height: 1; }

.vhb-logo-widget__link {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	color: inherit;
}

.vhb-logo-widget__picture { display: block; }

.vhb-logo-widget__image {
	display: block;
	width: 160px;
	height: auto;
	max-width: 100%;
	object-fit: contain;
}

.vhb-logo-widget__text {
	display: inline-block;
	font-size: 1.35rem;
	font-weight: 800;
	line-height: 1.2;
	color: var(--vhb-secondary);
	letter-spacing: -.01em;
}

.vhb-logo-widget__tagline {
	margin: .3rem 0 0;
	font-size: .82rem;
	color: var(--vhb-muted);
}

.vhb-align-center .vhb-logo-widget__link,
.vhb-logo-widget.vhb-align-center { justify-content: center; }

@media (max-width: 782px) {
	.vhb-logo-widget__text { font-size: 1.15rem; }
}
