/* QuoteRecon design system: base. Loaded only by surfaces built on the system. */
*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-padding-top: calc(var(--q-header-h) + var(--q-4));
}

body {
	margin: 0;
	min-height: 100vh;
	background: var(--q-bg);
	color: var(--q-text);
	font-family: var(--q-font);
	font-size: var(--q-fs-md);
	line-height: var(--q-lh);
	font-feature-settings: "cv11", "ss01";
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body.qr-public { background: var(--q-bg-public); font-size: var(--q-fs-base); }

:where(h1, h2, h3, h4, h5, h6) {
	margin: 0;
	color: var(--q-text);
	font-weight: 650;
	line-height: var(--q-lh-tight);
	letter-spacing: var(--q-tracking-tight);
	text-wrap: balance;
}

:where(p, ul, ol, dl, dd, figure, blockquote) { margin: 0; }
:where(ul, ol)[role="list"], :where(ul, ol).qr-plain { padding: 0; list-style: none; }
:where(p) { text-wrap: pretty; }

img, svg, video { display: block; max-width: 100%; }
img { height: auto; }

:where(button, input, select, textarea) { font: inherit; color: inherit; letter-spacing: inherit; }
:where(button) { cursor: pointer; }
:where(button:disabled) { cursor: not-allowed; }

:where(a) { color: var(--q-accent-text); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
:where(a:hover) { color: var(--q-accent-hover); }

:where(table) { border-collapse: collapse; }
:where(code, kbd, samp) { font-family: var(--q-font-mono); font-size: 0.92em; }

.qr-num, :where(td, dd, output, .qr-tabular) { font-variant-numeric: tabular-nums; }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--q-focus);
	outline-offset: 2px;
	border-radius: var(--q-r-sm);
}

::selection { background: var(--q-accent-soft); color: var(--q-text); }

[hidden] { display: none !important; }

.screen-reader-text, .qr-sr-only {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.qr-skip-link, a.screen-reader-text[href="#primary"] {
	position: fixed !important;
	top: var(--q-2); left: var(--q-2);
	z-index: 1000;
	width: auto; height: auto; clip: auto; margin: 0;
	padding: var(--q-2) var(--q-3);
	border-radius: var(--q-r);
	background: var(--q-accent);
	color: var(--q-on-accent);
	font-weight: 600;
	transform: translateY(-200%);
	transition: transform var(--q-dur-1) var(--q-ease);
}
.qr-skip-link:focus, a.screen-reader-text[href="#primary"]:focus { transform: none; color: var(--q-on-accent); }

.qr-next-icon, .qr-icon { flex: none; width: 1em; height: 1em; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 1ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 1ms !important;
		scroll-behavior: auto !important;
	}
}
