/**
 * WTE Business Card — CSS Reset
 *
 * Based on modern-normalize with theme-specific adjustments.
 *
 * @package WTE_Business_Card
 * @since   1.0.0
 */

/* ── Box Sizing ────────────────────────────────────── */
*,
*::before,
*::after {
	box-sizing: border-box;
}

/* ── Document ──────────────────────────────────────── */
html {
	-webkit-text-size-adjust: 100%;
	-moz-tab-size: 4;
	tab-size: 4;
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

/* ── Body ──────────────────────────────────────────── */
body {
	margin: 0;
	padding: 0;
	font-family: var(--wte-font-body);
	font-size: var(--wte-font-size-base);
	font-weight: var(--wte-font-weight-normal);
	line-height: var(--wte-line-height);
	color: var(--wte-charcoal);
	background-color: var(--wte-color-body-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* ── Headings ──────────────────────────────────────── */
h1, h2, h3, h4, h5, h6 {
	margin-top: 0;
	margin-bottom: var(--wte-space-md);
	font-family: var(--wte-font-heading);
	font-weight: var(--wte-font-weight-bold);
	color: var(--wte-black);
	line-height: 1.3;
}

/* ── Paragraphs & Text ─────────────────────────────── */
p {
	margin-top: 0;
	margin-bottom: var(--wte-space-md);
}

/* ── Links ─────────────────────────────────────────── */
a {
	color: var(--wte-color-link);
	text-decoration: none;
	transition: color var(--wte-transition-fast);
}

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

a:focus-visible {
	outline: 2px solid var(--wte-color-accent);
	outline-offset: 2px;
	border-radius: var(--wte-radius-sm);
}

/* ── Images ────────────────────────────────────────── */
img,
picture,
video,
canvas,
svg {
	display: block;
	max-width: 100%;
	height: auto;
}

img {
	border-style: none;
}

/* ── Lists ─────────────────────────────────────────── */
ul, ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* ── Tables ────────────────────────────────────────── */
table {
	border-collapse: collapse;
	border-spacing: 0;
}

/* ── Forms ─────────────────────────────────────────── */
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
	cursor: pointer;
}

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

textarea {
	overflow: auto;
	resize: vertical;
}

/* ── Misc ──────────────────────────────────────────── */
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
	border: 0;
	border-top: 1px solid var(--wte-gray-200);
	margin: var(--wte-space-2xl) 0;
}

address {
	font-style: normal;
}

abbr[title] {
	text-decoration: underline dotted;
}

b, strong {
	font-weight: var(--wte-font-weight-bold);
}

code, kbd, samp, pre {
	font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
	font-size: 0.875em;
}

small {
	font-size: 0.875em;
}

sub, sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub { bottom: -0.25em; }
sup { top: -0.5em; }

/* ── Selection ─────────────────────────────────────── */
::selection {
	background-color: var(--wte-color-accent);
	color: var(--wte-white);
}

/* ── Reduced Motion ────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
