@font-face {
	font-family: 'Montserrat';
	src: url('/app/themes/willerby/assets/fonts/Montserrat-Regular.woff2') format('woff2');
	font-display: swap;
	font-weight: 400;
	font-style: normal;
}
@font-face {
	font-family: 'Montserrat';
	src: url('/app/themes/willerby/assets/fonts/Montserrat-Medium.woff2') format('woff2');
	font-display: swap;
	font-weight: 500;
	font-style: normal;
}
@font-face {
	font-family: 'Montserrat';
	src: url('/app/themes/willerby/assets/fonts/Montserrat-Bold.woff2') format('woff2');
	font-display: swap;
	font-weight: 700;
	font-style: normal;
}

body {
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

a {
	text-decoration: none;
	transition: color 0.3s;

	&:hover,
	&:focus {
		&:not([class*="card"]) {
			color: var(--color-secondary);
		}
	}

	&.text-color-secondary {
		&:hover,
		&:focus {
			&:not([class*="card"]) {
				color: var(--color-primary);
			}
		}
	}
}

p {
	a {
		color: var(--color-secondary);

		&:hover,
		&:focus {
			text-decoration: underline;
			text-underline-offset: 2px;
		}
	}
}

.u-spacing-top-xs {
	margin-top: var(--spacing-xs);
}
.u-spacing-bottom-xs {
	margin-bottom: var(--spacing-xs);
}
.u-spacing-top-sm {
	margin-top: var(--spacing-sm);
}
.u-spacing-bottom-sm {
	margin-bottom: var(--spacing-sm);
}
.u-spacing-top-md {
	margin-top: var(--spacing-md);
}
.u-spacing-bottom-md {
	margin-bottom: var(--spacing-md);
}
.u-spacing-top-lg {
	margin-top: var(--spacing-lg);
}
.u-spacing-bottom-lg {
	margin-bottom: var(--spacing-lg);
}

.u-mb-0 {
	margin-bottom: 0;
}

/* Scroll disabling */
.u-disable-scroll {
	width: 100%;
	overflow-y: scroll;

	position: fixed;
}

/* Container */
.container {
	--container-width: var(--width);
	width: 100%;
	max-width: var(--container-width);
	margin-inline: auto;
	padding-inline: var(--gutter);

	&.container--default {
		max-width: var(--width);
	}

	&.container--constrained {
		max-width: calc(var(--width) + (var(--gutter) * 2));
		padding-right: var(--gutter);
		padding-left: var(--gutter);
	}

	&.container--tiny {
		max-width: var(--width-tiny);
	}

	&.container--narrow {
		max-width: var(--width-narrow);
	}

	&.container--medium {
		max-width: var(--width-medium);
	}

	&.container--wide {
		max-width: var(--width-wide);
	}
}

/* Background colours */
.u-background-blue {
	background-color: var(--color-blue);
}
.u-background-grey {
	background-color: var(--color-grey-light);
}
.u-background-white {
	background-color: var(--color-white);
}
.u-background-yellow {
	background-color: var(--color-yellow);
}

/* Additional font sizes */
.text-large {
	font-size: 18px;

	@media (width > 768px) {
		font-size: 24px;
	}
}
.text-small {
	font-size: 14px;
}
.text-small-caps {
	font-size: 14px;
	text-transform: uppercase;
	font-weight: bold;
}
.text-extra-small {
	font-size: 12px;
}
.text-micro {
	font-size: 10px;
}

/* Text modifiers */
.text-bold {
	font-weight: bold;
}
.text-align-left {
	text-align: left;
}
.text-align-center {
	text-align: center;
}
.text-align-right {
	text-align: right;
}

/* Text colours */
.text-color-primary {
	color: var(--color-primary);
}
.text-color-secondary {
	color: var(--color-secondary);
}
.text-color-blue {
	color: var(--color-blue);
}
.text-color-grey {
	color: var(--color-grey);
}
.text-color-white {
	color: var(--color-white);
}

/* Display styles */
.u-hide {
	display: none !important;
}

/* Cookiebot consent */
#CybotCookiebotDialog {
	right: var(--spacing-sm) !important;
	left: auto !important;
	top: auto !important;
	bottom: var(--spacing-sm) !important;
	max-width: 500px !important;
	transform: none !important;
}
