/**
 * ThemeVally Toolkit Universal Reset CSS
 * 
 * Provides a clean, predictable foundation without overriding theme opinions.
 * Designed for full compatibility with Elementor, WooCommerce, and modern WordPress themes.
 * 
 * This is an original implementation derived from modern normalize principles,
 * completely avoiding opinionated colors, typography, or spacing overrides.
 */

/* 1. Box Sizing and Root Settings */
html {
	line-height: 1.5;
	-webkit-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
}

*, ::before, ::after {
	box-sizing: border-box;
}

/* 2. Body Reset */
body {
	margin: 0;
	/* We do NOT set font-family, color, or background-color here. Let the theme decide! */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* 3. Grouping and Semantic Elements */
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}

pre {
	font-family: monospace, monospace;
	font-size: 1em;
	white-space: pre-wrap;
}

details {
	display: block;
}

summary {
	display: list-item;
}

template, [hidden] {
	display: none;
}

/* 4. Text-level Semantics */
a {
	background-color: transparent;
	text-decoration: inherit; /* Prevents overriding theme's link styling */
}

a:not([href]):not([tabindex]) {
	color: inherit;
	text-decoration: none;
	outline: 0;
}

abbr[title] {
	border-bottom: none;
	-webkit-text-decoration: underline dotted;
	text-decoration: underline dotted;
}

b, strong {
	font-weight: bolder;
}

code, kbd, samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

small {
	font-size: 80%;
}

sub, sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub { bottom: -0.25em; }
sup { top: -0.5em; }

/* 5. Embedded Content */
img {
	border-style: none;
	height: auto;
	max-width: 100%;
}

figure {
	margin: 0;
}

picture, video, canvas, svg, iframe {
	max-width: 100%;
}

svg:not([fill]) {
	fill: currentColor;
}

/* 6. Forms and Interactive Elements */
button, input, optgroup, select, textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

button, input {
	overflow: visible;
}

button, select {
	text-transform: none;
}

button, [type="button"], [type="reset"], [type="submit"] {
	-webkit-appearance: button;
}

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}

fieldset {
	padding: 0.35em 0.75em 0.625em;
}

legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal;
}

progress {
	vertical-align: baseline;
}

textarea {
	overflow: auto;
	resize: vertical;
}

[type="checkbox"], [type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

[type="search"] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}

[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

label {
	display: inline-block;
}

/* ==========================================================
   Lists
   ========================================================== */

/*
 * IMPORTANT:
 *
 * We intentionally DO NOT globally remove the default
 * padding, margin or list-style from <ul> and <ol>.
 *
 * Many WordPress themes, Gutenberg blocks, WooCommerce
 * product descriptions, blog content, comments and
 * third-party plugins rely on the browser's native
 * list spacing.
 *
 * Resetting them globally would introduce unexpected
 * layout regressions.
 *
 * Individual ThemeVally widgets should normalize their
 * own list styles locally instead of relying on a
 * global reset.
 */

/* 8. Tables */
table {
	border-collapse: collapse;
	border-spacing: 0;
}

caption {
	text-align: left;
}

/* 9. Print Media Styles */
@media print {
	*, ::after, ::before {
		background: transparent !important;
		box-shadow: none !important;
		color: #000 !important;
		text-shadow: none !important;
	}
	a, a:visited {
		text-decoration: underline;
	}
	a[href]::after {
		content: " (" attr(href) ")";
	}
	abbr[title]::after {
		content: " (" attr(title) ")";
	}
	a[href^="#"]::after, a[href^="javascript:"]::after {
		content: "";
	}
	pre {
		white-space: pre-wrap !important;
	}
	blockquote, pre {
		border: 1px solid #ccc;
		page-break-inside: avoid;
	}
	thead {
		display: table-header-group;
	}
	tr, img {
		page-break-inside: avoid;
	}
	h2, h3, p {
		orphans: 3;
		widows: 3;
	}
	h2, h3 {
		page-break-after: avoid;
	}
}
