/* Base — resets, typography, layout primitives. Tokens only. */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--tsh-font-body);
	font-size: var(--tsh-fs-16);
	line-height: var(--tsh-leading);
	color: var(--tsh-text);
	background: var(--tsh-white);
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}

img, svg, video, iframe { max-width: 100%; display: block; }
img { height: auto; }

h1, h2, h3, h4 {
	font-family: var(--tsh-font-head);
	font-weight: 400;
	line-height: var(--tsh-leading-tight);
	margin: 0 0 var(--tsh-space-4);
	text-wrap: balance;
}
h1 { font-size: var(--tsh-fs-hero); letter-spacing: 0.02em; }
h2 { font-size: var(--tsh-fs-band); }
h3 { font-size: var(--tsh-fs-h3); line-height: 1.15; }
p { margin: 0 0 var(--tsh-space-4); text-wrap: pretty; }

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

:focus-visible { outline: 2px solid var(--tsh-yellow); outline-offset: 3px; }

address { font-style: normal; }

/* Full-bleed sections with a consistent gutter; inner widths are set per block. */
.tsh-container {
	width: 100%;
	max-width: var(--tsh-width-wide);
	margin-inline: auto;
	padding-inline: var(--tsh-gutter);
}

.tsh-section { padding-block: var(--tsh-section-y); }
.tsh-section--tight { padding-block: var(--tsh-section-y); }

/* The small yellow-ruled label above headings ("CURRENT PROMOTION"). */
.tsh-eyebrow {
	display: flex;
	align-items: center;
	gap: var(--tsh-space-3);
	margin: 0 0 var(--tsh-space-4);
	font-size: var(--tsh-fs-xs);
	font-weight: 600;
	letter-spacing: var(--tsh-track-label);
	text-transform: uppercase;
	color: var(--tsh-text);
}
.tsh-eyebrow::before {
	content: "";
	width: 28px;
	height: var(--tsh-rule);
	background: var(--tsh-yellow);
	flex: none;
}
.tsh-eyebrow--light { color: var(--tsh-yellow); }
.tsh-eyebrow--light::before { background: var(--tsh-yellow); }
.tsh-eyebrow--plain::before { display: none; }

.tsh-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100;
	background: var(--tsh-yellow);
	color: var(--tsh-black);
	padding: var(--tsh-space-2) var(--tsh-space-4);
}
.tsh-skip:focus { left: var(--tsh-space-4); }

.tsh-muted { color: var(--tsh-text-3); }

.tsh-prose { max-width: 72ch; font-size: var(--tsh-fs-16); line-height: 1.7; color: var(--tsh-text-2); }
.tsh-prose > * + * { margin-top: var(--tsh-space-4); }
.tsh-prose h2 { font-size: var(--tsh-fs-pillar); color: var(--tsh-text); margin-top: var(--tsh-space-7); }
.tsh-prose h3 { color: var(--tsh-text); margin-top: var(--tsh-space-6); }
.tsh-prose ul { padding-left: 1.2em; }
.tsh-prose a { color: var(--tsh-black); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
