/*
 * base.css
 * Minimal reset, box-sizing, body defaults, image responsiveness, link basics.
 * No layout, no color scheme, no typography scale — foundation only.
 * The few opinions here (font stack, measure-friendly line-height,
 * near-black text) are neutral defaults every design reads well on;
 * Elementor settings override all of them.
 */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	line-height: 1.6;
	color: #1f2429;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	line-height: 1.25;
	overflow-wrap: break-word;
}

p {
	overflow-wrap: break-word;
}

img,
picture,
video,
canvas,
svg {
	display: block;
	max-width: 100%;
	height: auto;
}

ul[class],
ol[class] {
	padding: 0;
}

a {
	text-decoration: none;
	color: inherit;
}

a:hover,
a:focus {
	text-decoration: underline;
	text-underline-offset: 2px;
}

button,
input,
textarea,
select {
	font: inherit;
}

table {
	border-collapse: collapse;
	width: 100%;
}

@media (prefers-reduced-motion: reduce) {

	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Back-to-top button (Customizer: Nexio Theme Options -> Extras).
   Doubled class + explicit geometry: Elementor's kit styles every bare
   <button> (padding, radius) with higher specificity, and the theme's
   own svg reset (max-width:100%; height:auto) collapses inline icons —
   both would otherwise turn this circle into an empty pill. */
button.nexio-back-to-top.nexio-back-to-top {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 990;
	width: 42px;
	height: 42px;
	min-width: 0;
	min-height: 0;
	padding: 0;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 50%;
	background: var(--nexio-accent, #4a3aff);
	color: #fff;
	line-height: 0;
	font-size: 0;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
	box-shadow: 0 6px 18px -6px rgba(0, 0, 0, 0.35);
}

button.nexio-back-to-top.nexio-back-to-top svg {
	width: 18px;
	height: 18px;
	max-width: none;
	flex: 0 0 auto;
	display: block;
}

button.nexio-back-to-top.nexio-back-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: none;
}

button.nexio-back-to-top.nexio-back-to-top:hover {
	filter: brightness(1.1);
	background: var(--nexio-accent, #4a3aff);
}

@media (prefers-reduced-motion: reduce) {
	button.nexio-back-to-top.nexio-back-to-top {
		transition: none;
	}
}
