@layer reset {

	*,
	*::before,
	*::after {
		-moz-box-sizing: border-box;
		-webkit-box-sizing: border-box;
		box-sizing: border-box;
		margin: 0;
		padding: 0;
	}

	html {
		/* color-scheme: light dark; */
		-webkit-font-smoothing: antialiased;
		-webkit-text-size-adjust: none;
		font-family: 'Montserrat', sans-serif;
		font-size: 16px;
		font-weight: 400;
		hanging-punctuation: first allow-end last;
		text-size-adjust: none;
		word-break: break-word;
	}

	html.translated-rtl {
		direction: rtl;
	}

	h1,
	h2,
	h3,
	h4,
	h5,
	h6 {
		text-wrap: balance;
	}

	p,
	li,
	dd {
		text-wrap: wrap;
	}

	ul,
	ol,
	dl {
		list-style-position: inside;

		ul,
		ol,
		dl {
			padding-inline-start: 1lh;
		}
	}


	img,
	video,
	iframe {
		display: block;
		max-inline-size: 100%;
		block-size: auto;
		border-style: none;
	}

	figure {
		inline-size: fit-content;
		margin-inline: auto;
	}

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

	label {
		display: block;
	}

	svg {
		fill: currentColor;
	}

	[aria-disabled="true" i],
	[disabled] {
		cursor: not-allowed;
	}

	[hidden] {
		display: none !important;
	}

	[disabled],
	label:has(input[disabled]) {
		opacity: 0.5;

		[disabled] {
			opacity: 1;
		}
	}

	:target {
		scroll-margin: 3rlh;
	}

	@media (prefers-reduced-motion: no-preference) {
		@view-transition {
			navigation: auto;
		}

		html {
			interpolate-size: allow-keywords;

			&:focus-within {
				scroll-behavior: smooth;
			}
		}
	}
}

@layer font {
	@font-face {
		font-family: 'Montserrat';
		src: url('fonts/Montserrat-VariableFont_wght.ttf') format('truetype');
		font-weight: 100 900;
		font-style: normal;
	}

	@font-face {
		font-family: 'Montserrat';
		src: url('fonts/Montserrat-Italic-VariableFont_wght.ttf') format('truetype');
		font-weight: 100 900;
		font-style: italic;
	}
}

@layer colors {
	:root {
		--background: #f5f7fa;
		--border: #e5e7eb;
		--card: #ffffff;

		--blue-light-highlight: #b3d1eb;
		--blue-light-background: #cce0f0;
		--blue-light: #99c2e6;
		--blue-primary: #0069ab;
		--blue-hover: #005a91;
		--blue-active: #004974;

		--text: #111827;
		--label: #54585e;
	}
}

@layer global {
	a {
		text-decoration: none;
		color: var(--label);
		font: inherit;
	}

	a.primary {
		padding: 12px 24px;
		background-color: var(--blue-primary);
		border: 1px solid var(--blue-primary);
		border-radius: 8px;
		color: white;
	}

	a.primary:hover {
		background-color: var(--blue-hover);
	}

	a.secondary {
		padding: 8px 16px;
		border: 1px solid var(--blue-primary);
		border-radius: 8px;
		color: var(--blue-primary);
	}

	a.secondary:hover {
		background-color: var(--blue-light-background);
		border: 1px solid var(--blue-hover);
	}

	body {
		background-color: var(--background);
	}

	button,
	input[type="submit"] {
		padding: 12px 24px;
		background-color: var(--blue-primary);
		border: 1px solid var(--blue-primary);
		color: white;
		cursor: pointer;
		border-radius: 8px;
	}

	button:hover,
	input[type="submit"]:hover {
		background-color: var(--blue-hover);
		border: 1px solid var(--blue-hover);
	}

	button:disabled,
	input[type="submit"]:disabled {
		background-color: var(--border);
		border: 1px solid var(--border);
		color: var(--label);
		cursor: not-allowed;
		opacity: 0.6;
	}

	button.secondary {
		background-color: var(--card);
		color: var(--blue-primary);
	}

	button.secondary:hover {
		background-color: var(--blue-light-background);
		border: 1px solid var(--blue-primary);
		color: white;
	}

	button.secondary:disabled {
		background-color: var(--border);
		border: 1px solid var(--border);
		color: var(--label);
		cursor: not-allowed;
		opacity: 0.6;
	}

	div.card {
		padding: 16px;
		background-color: var(--card);
		border: 1px solid var(--border);
		border-radius: 8px;
		box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 12px;
	}

	div.icon {
		max-width: 1rem;
		max-height: 1rem;
	}

	form {
		display: flex;
		flex-direction: column;
		gap: 4px;

		div {
			display: flex;
			flex-direction: column;

			label {
				margin-top: 16px;
				margin-bottom: 2px;
				font-size: 13px;
				font-weight: 600;
			}

			input,
			select {
				flex: 1;
			}
		}

		div+label {
			margin-top: 16px;
		}

		label {
			display: flex;
			gap: 8px;
			align-items: center;
		}
	}

	input[type="submit"] {
		margin-top: 32px;
		width: 100%;
		align-self: flex-end;
	}

	h1 {
		font-size: 2rem;
		font-weight: normal;
	}

	h2 {
		font-size: 1.4rem;
		font-weight: normal;
	}

	input:not([type="checkbox"]):not([type="submit"]),
	select {
		background-color: white;
		color: #242424;
		padding: .15rem .5rem;
		min-height: 40px;
		border-radius: 4px;
		outline: none;
		border: none;
		line-height: 1.15;
		border: 1px solid #ccc;
	}

	input:not([type="checkbox"]):not([type="submit"]):focus,
	select:focus {
		border-bottom: 2px solid #5b5fc7;
		border-radius: 4px 4px 2px 2px;
	}

	input:not([type="checkbox"]):not([type="submit"]):hover,
	select:hover {
		outline: 1px solid lightgrey;
	}

	main {
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.pointer {
		cursor: pointer;
	}

	progress {
		width: 100%;
		box-sizing: border-box;
	}

	section {
		width: 100dvw;
		display: flex;
		flex-direction: column;
		gap: 16px;
	}

	section:first-child {
		padding-top: 112px;
	}

	@media (min-width: 800px) {
		section {
			width: 90dvw;
			max-width: 90rem;
			display: flex;
			flex-direction: column;
			gap: 16px;
		}
	}
}
