/**
 * Reusable semantic typography. Component-specific exceptions belong with
 * their component; page-specific presentation does not belong here.
 */

html {
	text-size-adjust: 100%;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	color: var(--boopi-color-heading);
	font-family: var(--boopi-font-family-heading);
	font-weight: var(--boopi-font-weight-bold);
	letter-spacing: var(--boopi-letter-spacing-tight);
	line-height: var(--boopi-line-height-tight);
	margin-block: var(--boopi-space-7) var(--boopi-space-4);
	text-wrap: balance;
}

h1 { font-size: var(--boopi-font-size-3xl); }
h2 { font-size: var(--boopi-font-size-2xl); }
h3 { font-size: var(--boopi-font-size-xl); }
h4 { font-size: var(--boopi-font-size-lg); }

h5,
h6 {
	font-size: var(--boopi-font-size-md);
	font-weight: var(--boopi-font-weight-semibold);
	letter-spacing: var(--boopi-letter-spacing-normal);
}

p,
ul,
ol,
dl,
blockquote,
pre,
figure {
	margin-block: 0 var(--boopi-space-5);
}

p,
li,
dd,
blockquote {
	max-inline-size: var(--boopi-text-measure);
}

ul,
ol {
	padding-inline-start: var(--boopi-space-6);
}

li + li {
	margin-block-start: var(--boopi-space-2);
}

dt,
strong,
b {
	font-weight: var(--boopi-font-weight-semibold);
}

dd {
	margin-inline-start: var(--boopi-space-6);
}

a {
	color: var(--boopi-color-link);
	text-decoration-line: underline;
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.16em;
}

a:hover {
	color: var(--boopi-color-link-hover);
}

blockquote {
	border-inline-start: var(--boopi-border-width-strong) solid var(--boopi-color-border-strong);
	color: var(--boopi-color-text-muted);
	font-size: var(--boopi-font-size-lg);
	padding-inline-start: var(--boopi-space-5);
}

blockquote cite,
figcaption,
caption,
small,
.boopi-meta,
.entry-meta,
.product_meta {
	color: var(--boopi-color-text-muted);
	font-size: var(--boopi-font-size-sm);
	line-height: var(--boopi-line-height-body);
}

figcaption,
caption {
	margin-block-start: var(--boopi-space-2);
}

label,
legend {
	font-weight: var(--boopi-font-weight-semibold);
	line-height: var(--boopi-line-height-control);
}

code,
kbd,
samp,
pre {
	font-family: var(--boopi-font-family-mono);
	font-size: var(--boopi-font-size-sm);
}

pre {
	background: var(--boopi-color-surface-subtle);
	border-radius: var(--boopi-radius-md);
	max-inline-size: 100%;
	overflow-x: auto;
	padding: var(--boopi-space-4);
	white-space: pre-wrap;
}

.price,
.amount,
.woocommerce-Price-amount {
	font-variant-numeric: tabular-nums;
	font-weight: var(--boopi-font-weight-semibold);
}

.woocommerce-terms-and-conditions,
.boopi-legal-text {
	color: var(--boopi-color-text-muted);
	font-size: var(--boopi-font-size-sm);
	max-inline-size: var(--boopi-text-measure);
}

::selection {
	background: var(--boopi-color-selection);
	color: var(--boopi-color-selection-text);
}

@media (forced-colors: active) {
	a {
		text-decoration-thickness: auto;
	}
}
