*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	min-height: 100vh;
	background:
		radial-gradient(circle at top right, color-mix(in srgb, var(--gt-accent) 18%, transparent), transparent 36%),
		linear-gradient(180deg, color-mix(in srgb, var(--gt-panel-elevated) 55%, transparent), transparent 32%),
		repeating-linear-gradient(
			135deg,
			color-mix(in srgb, var(--gt-panel) 92%, transparent) 0,
			color-mix(in srgb, var(--gt-panel) 92%, transparent) 8px,
			transparent 8px,
			transparent 16px
		),
		var(--gt-bg);
	color: var(--gt-text-primary);
	font-family: var(--wp--preset--font-family--exo);
	text-rendering: optimizeLegibility;
}

body.caf-accent-green {
	--gt-accent: #6fbf73;
	--gt-accent-muted: #3f7f4c;
}

body.caf-accent-blue {
	--gt-accent: #5da3e6;
	--gt-accent-muted: #2f5f9d;
}

body.caf-accent-red {
	--gt-accent: #d96b5f;
	--gt-accent-muted: #8e4139;
}

.wp-site-blocks {
	min-height: 100vh;
}

a {
	color: inherit;
	text-decoration: none;
	transition:
		color 140ms ease,
		background-color 140ms ease,
		border-color 140ms ease,
		transform 140ms ease,
		box-shadow 140ms ease;
}

a:hover,
a:focus-visible {
	color: var(--gt-accent);
}

p,
li,
dd,
dt,
td,
th,
input,
button {
	font-family: var(--wp--preset--font-family--exo);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
	font-family: var(--wp--preset--font-family--exo);
	font-weight: 700;
	letter-spacing: 0.01em;
}

input,
button {
	font: inherit;
}

button {
	font-family: var(--wp--preset--font-family--exo);
}

::selection {
	background: color-mix(in srgb, var(--gt-accent) 30%, transparent);
	color: var(--gt-text-primary);
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.caf-back-to-top {
	position: fixed;
	right: 1.5rem;
	bottom: 1.5rem;
	z-index: 40;
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	padding: 0.8rem 1rem;
	border: 1px solid color-mix(in srgb, var(--gt-divider) 35%, var(--gt-accent) 65%);
	border-radius: 999px;
	background: color-mix(in srgb, var(--gt-panel-elevated) 94%, transparent);
	color: var(--gt-text-primary);
	box-shadow: 0 18px 36px color-mix(in srgb, black 40%, transparent);
	cursor: pointer;
	opacity: 0;
	transform: translateY(0.75rem);
	pointer-events: none;
	transition:
		opacity 140ms ease,
		transform 140ms ease,
		background-color 140ms ease,
		border-color 140ms ease;
}

.caf-back-to-top.is-visible {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

.caf-back-to-top:hover,
.caf-back-to-top:focus-visible {
	background: color-mix(in srgb, var(--gt-accent) 14%, transparent);
	color: var(--gt-accent);
}

.caf-back-to-top__label {
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
}

@media (max-width: 640px) {
	.caf-back-to-top {
		right: 1rem;
		bottom: 1rem;
		padding: 0.7rem 0.85rem;
	}

	.caf-back-to-top__label {
		display: none;
	}
}
