/* Reset and base */

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }

html {
	font-family: var(--font-body);
	font-size: var(--body-md-size);
	line-height: var(--body-md-line);
	color: var(--on-surface);
	background: var(--background);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	scroll-behavior: smooth;
	transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
}

body {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

a { color: inherit; text-decoration: none; }
a:hover { text-decoration: none; }

img, svg, video {
	max-width: 100%;
	height: auto;
	display: block;
}

input, button, textarea, select {
	font: inherit;
	color: inherit;
}

button {
	background: transparent;
	border: 0;
	cursor: pointer;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-display);
	color: var(--on-surface);
	margin: 0;
	line-height: var(--headline-lg-line);
	letter-spacing: var(--headline-lg-tracking);
}

p { margin: 0; }

.material-symbols-outlined {
	font-family: var(--font-icon);
	font-weight: normal;
	font-style: normal;
	font-size: 24px;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	display: inline-block;
	white-space: nowrap;
	word-wrap: normal;
	direction: ltr;
	font-feature-settings: "liga";
	-webkit-font-smoothing: antialiased;
	font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* Type scale utilities */
.type-display-lg {
	font-family: var(--font-display);
	font-size: var(--display-lg-size);
	font-weight: 700;
	line-height: var(--display-lg-line);
	letter-spacing: var(--display-lg-tracking);
}
.type-headline-lg {
	font-family: var(--font-display);
	font-size: var(--headline-lg-size);
	font-weight: 700;
	line-height: var(--headline-lg-line);
	letter-spacing: var(--headline-lg-tracking);
}
.type-headline-md {
	font-family: var(--font-display);
	font-size: var(--headline-md-size);
	font-weight: 600;
	line-height: var(--headline-md-line);
}
.type-body-lg { font-size: var(--body-lg-size); line-height: var(--body-lg-line); }
.type-body-md { font-size: var(--body-md-size); line-height: var(--body-md-line); }
.type-label-md {
	font-size: var(--label-md-size);
	line-height: var(--label-md-line);
	letter-spacing: var(--label-md-tracking);
	font-weight: 600;
	text-transform: uppercase;
}
.type-caption { font-size: var(--caption-size); line-height: var(--caption-line); }

@media (max-width: 767px) {
	.type-display-lg { font-size: 36px; }
	.type-headline-lg { font-size: var(--headline-lg-size-mobile); }
}

/* Container */
.container {
	width: 100%;
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--margin-mobile);
}
@media (min-width: 768px) {
	.container { padding-inline: var(--margin-desktop); }
}

/* Skip link */
.skip-link {
	position: absolute;
	left: -10000px;
	top: 8px;
	background: var(--primary);
	color: var(--on-primary);
	padding: 8px 12px;
	border-radius: var(--r-md);
	z-index: 1000;
}
.skip-link:focus { left: 8px; outline: 2px solid var(--accent-aqua); }

/* Focus */
:focus-visible {
	outline: 2px solid var(--secondary);
	outline-offset: 2px;
	border-radius: var(--r-md);
}

/* Selection */
::selection { background: var(--accent-aqua-soft); color: var(--on-surface); }

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

/* Screen-reader only */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	-webkit-clip-path: inset(50%);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}
