/* Fonts reference
   --------------- */
/*	
	font-family: "Outfit", sans-serif;
*/

:root {
	font-size: 16px;
	/* dark to light monochrome */
	--colAlpha: rgba(0,0,0,0.08);
	--colBlack: #161616;
	--colDark: #4a4a4a;
	--colMid: #999;
	--colLight: #ddd;
	--colPale: #eee;
	--colVPale: #f5f5f5;
	--colWhite: #fff;
	/* TC Blue shades */
	--colMain: #33668c;
	--colMainAlpha: rgba(51,103,140,0.15);
	--colMainDark: #182f40;
	--colMainLight: #cce3f7;
	--colMainMid: #8bb7d8;
	--colMainPale: #e8f2fb;
	/* TC Orange shades */
	--colSub1: #f37025;
	--colSub1Dark: #7d3a13;
	--colSub2: #0a8a13;
	--colSub2Dark: #043D08;
	/* Borders */
	--colBorder: #b5d1e7;
	--borderRad: 1.5rem;
	--borderRadLg: clamp(2.25rem, 2.52vw, 3rem);
	--borderRound: 0.625rem;
	/* Font sizes - Line height on smaller font-sizes uses page defaults as the differences are negligible */
	--h1fs: clamp(1.75rem, 4vw + -0.45rem, 3.75rem);
	--h1lh: clamp(2.275rem, 3.7vw + 0.24rem, 4.125rem);
	--h2fs: clamp(1.625rem, 2vw + 0.525rem, 2.625rem);
	--h2lh: clamp(2.031rem, 1.975vw + 0.945rem, 3.019rem);
	--h3fs: clamp(1.5rem, 0.5vw + 1.225rem, 1.75rem);
	--h3lh: clamp(2rem, 0.551vw + 1.696rem, 2.275rem);
	--h4fs: clamp(1.313rem, 0.375vw + 1.2rem, 1.5rem);
	--h5fs: clamp(1.125rem, 0.25vw + 1.05rem, 1.25rem);
	--h6fs: clamp(1rem, 0.25vw + 0.925rem, 1.125rem);
}

/* Reset
   ----- */

*, *::before, *::after {
  box-sizing: border-box;
}
* {
  margin: 0;
}
body {
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}
input, button, textarea, select {
  font: inherit;
}
p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}
ul.reset, ol.reset {
	list-style: none;
	margin: 0;
	padding: 0;
}
#root, #__next {
  isolation: isolate;
}


/* Basics
   ------ */

body {
	font-family: "Outfit", sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: var(--colBlack);
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
	overflow-y: scroll;
	background: var(--colMainLight);
}

body.noScroll {
	overflow: hidden;
}


/* Main Type
   --------- */
	
h1, h2, h3, h4, h5, h6 {
	position: relative;
	color: var(--colMainDark);
	font-weight: 500;
	text-wrap: pretty;
}
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
	font-weight: inherit;
	text-decoration: none;
}
h1 {
	/* 60 - 28 */
	font-size: var(--h1fs);
	font-weight: 700;
	line-height: var(--h1lh);
	color: var(--colMain);
	margin-bottom: 1.5rem;
}
h2 {
	/* 42 - 26 */
	font-size: var(--h2fs);
	font-weight: 700;
	line-height: var(--h2lh);
	margin-bottom: 2rem;
}
h3 {
	/* 28 - 25 */
	font-size: var(--h3fs);
	line-height: var(--h3lh);
	font-weight: 600;
	color: var(--colMain);
	margin-bottom: 1.5rem;
}
h4 {
	/* 24 - 21 */
	font-size: var(--h4fs);
	margin-bottom: 0.5rem;
}
h5 {
	/* 20 - 18 */
	font-size: var(--h5fs);
	margin-bottom: 0.5rem;
}
h6 {
	font-size: var(--h6fs);
	margin-bottom: 0.5rem;
}

p {
	font-size: var(--h5fs);
	margin-bottom: 1.5em;
}

p.banner {
	text-align: center;
	font-size: var(--h4fs);
	font-weight: 600;
	background: var(--colWhite);
	border: 3px solid var(--colMain);
	border-radius: var(--borderRadLg);
	padding: 0.6255rem 1.5rem 0.75rem;
	text-wrap: balance;
}

p.question::before {
	content: "";
	width: 24px;
	height: 24px;
	display: inline-block;
	background: url('../images/icons/question.svg') center no-repeat;
	background-size: 24px;
	margin-right: 10px;
	vertical-align: middle;
}

p.icon.left a::before,
p.icon a::after {
	content:'';
	display: inline-block;
	vertical-align: middle;
	width: 7px;
	height: 12px;
	margin-top: 9px;
	margin-left: 10px;
	margin-bottom: 10px;
	transition: all 0.2s ease-out;
}

	p.icon a {
		text-decoration: none !important;
		font-weight: 500;
	}
	
	p.icon.left a::after {
		display: none;
	}
	.feature a .txt .box p.icon::after,
	p.icon a::after,
	p.icon.left a::before {
		background: url('../images/icons/arrow-right.svg') no-repeat right center;
		background-size: 7px 12px;
	}
	p.icon.left a::before {
		margin-right: 15px;
		margin-left: 0;
		transform: rotate(180deg)
	}
	p.icon a:hover::after {
		filter: brightness(0);
		margin-left: 15px;
	}
	p.icon.left a:hover::before {
		margin-right: 20px;
	}
	
p.lead,
p.subheading {
	font-size: clamp(1.375rem, 0.25vw + 1.238rem, 1.5rem);
}
	p.subheading {
		font-weight: 600;
		color: var(--colMain);
		margin-bottom: 0.5rem;
	}
	p.error,
	p.success {
		background: var(--colSub2);
		color: #fff;
		padding: 0.625rem 1rem 0.75rem;
		box-sizing: border-box;
		margin-right: 0;
		border-radius: var(--borderRound);
		line-height: 1.375;
	}
		p.error::before,
		p.success::before {
			content: "";
			display: block;
			float: left;
			background: url('../images/icons/tick.svg') 50% 50% no-repeat;
			background-size: 18px 18px;
			width: 24px;
			height: 24px;
			margin-right: 10px;
			transform: translateY(2px)
		}

	p.error {
		background: #c00;
	}

	p.error::before {
		background: url('../images/icons/cross.svg') 0 50% no-repeat;
		background-size: 24px 24px;
	}

p.help {
	position: relative;
}
p.help span.icon.help {
	position: absolute;
	cursor: pointer;
	width: 1.5rem;
	height: 1.5rem;
	background: url(../images/icons/question-circle.svg) 0 0 no-repeat;
	background-size: cover;
	margin-left: 0.5rem
}

em {
	font-style: italic;
}
strong {
	font-weight: 700
}
small {
	font-size: 75%;
	line-height: 0.75;
}

/*	Blockquotes  */

/*blockquote {
	text-indent: -1.25rem;
	quotes: "“" "”" "“" "”";
}*/
blockquote, blockquote p {
	font-size: var(--h4fs);
	font-style: italic;
	font-weight: 300;
	margin-bottom: 0;
	color: var(--colBlack);
}
/*@supports ( hanging-punctuation: first) {
  blockquote {
    text-indent: 0;
    hanging-punctuation: first;
  }
}
blockquote::before {
	font-size: 1.75rem;
	font-weight: 700;
    content: open-quote;
}*/
blockquote,blockquote p {
	margin: 0 0 1.5rem;
}
blockquote footer {
	font-size: 0.875rem !important;
	font-weight: 600;
	font-style: normal;
	text-transform: uppercase;
	line-height: 1.5;
	color: var(--colDark);
	margin-bottom: 1rem;
}

hr {
	display: block;
	border: solid var(--colBorder);
	border-width: 0 0 1px;
	clear: both;
	padding-top: 3rem;
	margin: 0 1rem 4rem;
	width: 100%;
	height: 0;
}
	hr.darker {
		border-color: var(--colMainMid);
	}
	hr.dashed {
    	border-style: dashed;
	}
	hr.narrow {
    	padding-top: 1rem;
		margin: 0 1rem 2rem;
	}
	.column hr.narrow , .columns hr.narrow,
	.column hr, .columns hr {
		margin-left: 0;
		margin-right: 0;
	}




/* #Links
================================================== */

a {
	color: var(--colMain);
	text-decoration: none;
	outline: 0;
	transition: color 0.2s ease-out, background 0.2s ease-out;
	cursor: pointer;
}
a:hover {
	color: var(--colSub1);
	text-decoration: none;
}
p a, li a {
	color: var(--colMain);
	line-height: inherit;
	text-decoration: underline;
}

/* #Lists
================================================== */

ul, ol {
	margin-bottom: 2rem;
	margin-left: 0;
}
ul {
	list-style: disc outside;
}
ol {
	list-style: decimal inside;
	margin-left: 0 !important;
}

li {
	font-size: var(--h5fs);
	font-weight: 400;
	line-height: clamp(1.6rem, 0.4vw + 1.48rem, 1.8rem);
	margin-bottom: 3px;
}

/* pagination */

ul.pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: 2rem 0;
	padding: 0;
	list-style: none;
	text-align: center;
}

	ul.pagination li {
		display: inline;
		margin-right: 0.75rem;
		list-style: none;
		border-radius: 2px;
		font-weight: 600;
	}
	ul.pagination li:last-child {
		margin-right: 0;
	}

ul.pagination li.disabled {
	display: inline-block;
	padding: 0 1rem;
}

ul.pagination li a.selected {
	background: var(--colMainDark);
	color: var(--colWhite);
}

	ul.pagination li a,
	ul.pagination li span.off {
		display: block;
		background: var(--colMainLight);
		color: var(--colMainDark);
		font-size: 1.125rem;
		line-height: 1;
		min-width: 2.875rem;
		padding: 0.875rem 0;
		margin-bottom: 1.5rem;
		border-radius: 0.25rem;
		text-decoration: none;
		text-align: center;
	}
	ul.pagination li a.next,
	ul.pagination li a.previous,
	ul.pagination li span.next,
	ul.pagination li span.previous {
		background-image: url("../images/icons/arrow-right.svg");
		background-position: center;
		background-size: 16px 16px;
		background-repeat: no-repeat;
	}
	ul.pagination li a.previous,
	ul.pagination li span.previous{
		background-image: url("../images/icons/arrow-left.svg");
	}

ul.pagination li span.off {
	filter: saturate(0)
}

ul.pagination li a:hover {
	background-color: var(--colMain);
	color: var(--colWhite);
}
	ul.pagination li a.next:hover {
		background-image: url("../images/icons/arrow-right-wh.svg");
	}
	ul.pagination li a.previous:hover {
		background-image: url("../images/icons/arrow-left-wh.svg");
	}


/* linklist */

ul.linklist, ul.linklist li {
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
}

ul.linklist li {
	position: relative;
	padding-left: 2.5rem;
	margin-bottom: 0.675rem;
}
ul.linklist li a {
	text-decoration: none
}
	ul.linklist li::before {
		display: block;
		content: '';
		position: absolute;
		left: 0;
		top: 2px;
		width: 1.5rem;
		height: 1.5rem;
		margin-right: 0.675rem;
		background-size: 1.5rem 1.5rem !important;
	}
	ul.linklist li.email::before {
		background: url('../images/icons/email.svg') no-repeat 0 1px;
	}
	ul.linklist li.location::before {
		background: url('../images/icons/location.svg') no-repeat 0 0;
	}
	ul.linklist li.tel::before {
		background: url('../images/icons/telephone.svg') no-repeat 0 0;
	}
	ul.linklist li.tick::before {
		background: url('../images/icons/tick-circle.svg') no-repeat 0 0;
	}

/* tab navigation */

.tabHolder {
	margin-top: 1.5rem;
}
.tabInfo {
	margin-bottom: 40px;
}
ul.tabNavigation {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	list-style: none;
	margin: 0;
	padding: 0;
	border-bottom: 2px solid var(--colBorder)
}

ul.tabNavigation li {
	transform: translateY(calc(0.5rem + 2px));
	margin: 0 0.5rem 0.5rem 0;
	padding: 0;
	list-style: none;
}
ul.tabNavigation li:last-child {
	margin-right: 0;
}

ul.tabNavigation li a {
	display: block;
	padding: 0.625rem 1rem;
	background-color: var(--colMain);
	color: var(--colWhite);
	text-decoration: none;
	text-transform: uppercase;
	border-radius: 0.375rem 0.375rem 0 0;
	font-size: 0.875rem;
}

ul.tabNavigation li a:hover {
	background-color: var(--colMainDark);
}

ul.tabNavigation li a.selected {
	border-bottom: 2px solid var(--colWhite);
	background-color: var(--colWhite);
	color: var(--colMain);
}

ul.tabNavigation li a:focus {
  outline: 0;
}

.docGroup div {
	padding: 22px 25px 1px;
	background: var(--colWhite);
}

/* sitemap */

ul.sitemap, ul.sitemap ul {
	margin: 0px 0px 0px 30px;
	list-style: none;
	padding: 0;
}
ul.sitemap li {
	position: relative;
	list-style: none;
	margin: 0;
	padding: 0;
	line-height: 30px;
}
	ul.sitemap li:before {
		position: absolute;
		left: -25px;
		top: 0px;
		content: '';
		display: block;
		border-left: 1px solid var(--colLight);
		height: 15px;
		border-bottom: 1px solid var(--colLight);
		width: 20px;
	}
	ul.sitemap li:after {
		position: absolute;
		left: -25px;
		bottom: -7px;
		content: '';
		display: block;
		border-left: 1px solid var(--colLight);
		height: 100%;
	}
ul.sitemap li.root {
	margin: 0px 0px 0px -30px;
}
	ul.sitemap li.root:before {
		display: none;
	}
	ul.sitemap li.root:after {
		display: none;
	}
	ul.sitemap li:last-child:after {
		display: none;
	}
	
/* blog tags */
	
ul.tags {
	display: flex;
	flex-wrap: wrap;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}
ul.tags li {
	margin: 0;
	padding: 0;
}
ul.tags li a {
	display: block;
	font-size: 1rem;
	margin: 0 0.75rem 0.75rem 0;
	padding: 0.4375rem 1rem 0.5rem;
	background: var(--colSub2);
	text-align: center;
	color: var(--colWhite);
	text-decoration: none;
	border-radius: var(--borderRad);
}
	ul.tags li a:hover {
		background: var(--colMainDark);
	}

/* definition list */

dl {
	margin-top: 2rem;
	margin-bottom: 2rem;
}
dl.ticked * {
	padding-left: 3.125rem;
}
dl.ticked dt {
	position: relative;
	font-size: var(--h4fs);
	font-weight: 600;
	color: var(--colSub2);
}
	dl.ticked dt::before {
		display: block;
		content: '';
		position: absolute;
		left: 0;
		top: 1px;
		width: 2.25rem;
		height: 2.25rem;
		background: url(../images/icons/tick-circle.svg) 0 0 no-repeat;
		background-size: cover;
	}
dl.ticked dd {
	font-size: var(--h5fs);
	font-weight: 500;
	margin-bottom: 1.5rem;
}


/* accordion
-------------------------- */

.accordion {
	margin-top: 2rem;
	margin-bottom: 2rem;
}

	.accordion * {
		text-align: left;
		word-wrap: break-word;
	}

	.accordion h2,
	.accordion h3 {
		font-size: 1.25rem;
		margin-bottom: 0
	}

		.accordion h2 button,
		.accordion h3 button {
			font-size: 1.25rem;
			font-weight: 600;
			line-height: normal;
			position: relative;
			background: transparent;
			width: 100%;
			color: var(--colMain);
			border: none;
			padding: 1rem 2rem;
			box-sizing: border-box;
			cursor: pointer;
			border-top: 1px solid var(--colBorder);
			margin-bottom: 0;
			transition: color 0.3s ease-out;
		}

			.accordion h2 button:hover,
			.accordion h3 button:hover {
				color: var(--colMainDark);
			}

			.accordion h2 button:before,
			.accordion h3 button:before {
				content: '';
				display: inline-block;
				position: absolute;
				left: 0;
				top: 24px;
				width: 24px;
				height: 11px;
				background: url("../images/icons/arrow-down.svg") center no-repeat;
				background-size: 24px 11px;
				transition: transform 0.5s ease-out;
			}

			.accordion h2 button:hover:before,
			.accordion h3 button:hover:before {
				transform: rotate(-90deg)
			}

			.accordion h2 button[aria-expanded="true"]:before,
			.accordion h3 button[aria-expanded="true"]:before {
				transform: rotate(-180deg)
			}

			.accordion h2 button[aria-expanded="true"]:hover,
			.accordion h3 button[aria-expanded="true"]:hover {
				background: var(--colMainPale)
			}

	.accordion .accordion-panel {
		padding-left: 2rem;
		padding-bottom: 0.625rem;
		padding-top: 0.875rem;
	}

	.accordion label {
		padding-top: 0;
		margin-bottom: 0.25rem;
	}

	.accordion .twoCol {
		margin-bottom: 1.25rem;
	}


/* #Images
================================================== */

figure {
	margin-bottom: 2rem;
}
	figcaption {
		padding: 1.5rem;
		background: var(--colPale);
	}
		figcaption p {
			margin-bottom: 0;
		}

img.scale {
	max-width: 100%;
	height: auto;
	display:block;
}
img.insetL,
img.insetR {
	max-width: calc(50% - 2rem);
}
img.insetL {
	float: left;
	margin: 0 2rem 1.5rem 0;
}

img.insetR {
	float: right;
	margin: 0 0 1.5rem 2rem;
}

img.insetL.small, img.insetR.small {
	max-width: calc(25% - 2rem)
}

img.centerImg {
	margin: 0 auto 1.5rem;
}

/* #Buttons
================================================== */

.button, input[type="submit"], input[type="button"], .ms-options-wrap button {
	font-family: "Outfit", sans-serif;
	font-size: var(--h4fs);
	font-weight: 700;
	line-height: 1;
	background: var(--colMain);
	color: var(--colWhite);
	display: inline-block;
	text-decoration: none;
	cursor: pointer;
	margin: 0;
	margin-bottom: 1.5rem;
	padding: 0.675rem 2vw 0.75rem;
	border: 2px solid var(--colMain);
	border-radius: var(--borderRound);
	transition: all 0.2s ease-out;
	-webkit-appearance: none;
	box-sizing: border-box;
}
.button.outline, input[type="submit"].outline, input[type="button"].outline {
	background: transparent;
	border: 2px solid var(--colMain);
	color: var(--colMain);
}
.row-fluid input[type=submit], 
.button.sub1, input[type="submit"].sub1, input[type="button"].sub1 {
	background: var(--colSub1);
	border: 2px solid var(--colSub1);
	color: var(--colWhite);
}
.button.sub2, input[type="submit"].sub2, input[type="button"].sub2 {
	background: var(--colSub2);
	border: 2px solid var(--colSub2);
	color: var(--colWhite);
}
.button.full-width, input[type="submit"].full-width, input[type="button"].full-width {
	width: 100%;
	padding-left: 0 !important;
	padding-right: 0 !important;
	text-align: center;
}
input[type="button"].disabled {
	background: var(--colMid);
    cursor: default;
}
.button:active, input[type="submit"]:active, input[type="button"]:active,
.button:hover, input[type="submit"]:hover, input[type="button"]:hover {
	color: var(--colWhite) !important;
	background-color: var(--colMainDark);
	border: 2px solid var(--colMainDark);
}


/* #Forms
================================================== */

form {
	margin-bottom: 1.5rem;
}
.options form {
    margin-bottom: 0;
}

fieldset {
	margin: 0;
	padding: 0;
	border: none;
}

input[type="date"],
input[type="email"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="text"],
textarea, select {
	font-family: "Outfit", sans-serif;
	font-size: var(--h6fs);
	border: 1px solid var(--colBorder);
	border-radius: var(--borderRound);
	padding: 0.6875rem 0.875rem;
	outline: none;
	color: var(--colDark);
	margin: 0;
	max-width: 100%;
	display: block;
	margin-bottom: 1.5rem;
	background: var(--colWhite);
	-webkit-appearance: none;
	box-sizing: border-box;
}
input[type="range"] {
	margin-bottom: 1.5rem;
}

input[type="date"]:focus,
input[type="email"]:focus,
input[type="number"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="text"]:focus,
textarea:focus {
	border: 1px solid var(--colMid);
	color: var(--colDark);
}
textarea {
	min-height: 200px;
	padding: 0.6875rem 0.875rem;
}
select {
	background: var(--colWhite) url('../images/icons/arrow-down.svg') calc(100% - 0.875rem) 50% no-repeat;
	background-size: 12px 8px;
}
input[type="checkbox"],input[type="radio"] {
    display: inline;
    vertical-align: middle;
    margin: 0;
    margin-right: 0.675rem;
}
label {
	display: block;
	color: var(--colMain);
	font-size: var(--h6fs);
	font-weight: 600;
	margin-bottom: 0.5rem;
}
.full-width { 
	display: block !important;
	width: 100% !important;
}
.p-label {
	text-wrap: pretty;
	margin-bottom: 0.5rem;
}
.radioList,
.checkList {
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
    overflow: auto;
	display: flex;
}
.checkList li,
.radioList li {
    color: var(--colDark);
    display: flex;
    position: relative;
    width: 100%;
    margin-bottom: 0;
}
.checkList li input[type=checkbox],
.radioList li input[type=radio] {
    position: absolute;
    top: 50%;
	opacity: 0
}
.checkList li label,
.radioList li label {
    display: block;
    position: relative;
    z-index: 2;
    padding: 1.2rem 1rem 1.2rem 3rem;
    margin: 0;
    line-height: 1.4rem;
    cursor: pointer;
    transition: color 0.4s cubic-bezier(0.190,1.000,0.220,1.000);
}
.checkList li:hover label,
.radioList li:hover label {
    color: var(--colDark);
}

.checkList li .check,
.radioList li .check {
    display: block;
    position: absolute;
    border: 5px solid var(--colMain);
    height: 2rem;
    width: 2rem;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
	margin-bottom: 0;
    z-index: 1;
    transition: border-color 0.25s linear;
}
.radioList li .check {
    border-radius: 100%;
}
.checkList li:hover .check,
.radioList li:hover .check {
    border: 5px solid var(--colDark);
}
.checkList li .check::before,
.radioList li .check::before {
    display: block;
    position: absolute;
    content: '';
    border-radius: 100%;
    height: 1rem;
    width: 1rem;
	top: calc(0.5rem - 5px);
	left: calc(0.5rem - 5px);
    margin: auto;
    transition: background 0.25s linear;
}
.checkList li .check::before {
    border-radius: 0;
	clip-path: polygon(0 0.2rem, 0.4rem 0.6rem, 1rem 0, 1rem 0.4rem, 0.4rem 1rem, 0 0.6rem )
}

.checkList input[type=checkbox]:checked ~ .check,
.checkList input[type=checkbox]:focus ~ .check,
.radioList input[type=radio]:checked ~ .check,
.radioList input[type=radio]:focus ~ .check {
    border: 5px solid var(--colSub2);
}

.checkList input[type=checkbox]:checked ~ .check::before,
.radioList input[type=radio]:checked ~ .check::before {
    background: var(--colSub2);
}

.checkList input[type=checkbox]:checked ~ label,
.radioList input[type=radio]:checked ~ label,
.checkList input[type=checkbox]:checked ~ label a,
.radioList input[type=radio]:checked ~ label a {
    color: var(--colSub2);
}

/* range theme and appearance */
input[type="range"] {
	font-size: 1.5rem;
	width: 12.5em;
}
input[type="range"] {
	color: var(--colSub1);
	--thumb-height: 1.125em;
	--track-height: 0.125em;
	--track-color: var(--colAlpha);
	--brightness-hover: 180%;
	--brightness-down: 80%;
	--clip-edges: 0.125em;
}

/* range commons */
input[type="range"] {
	position: relative;
	background: var(--colWhite);
	overflow: hidden;
}

	input[type="range"]:active {
		cursor: grabbing;
	}

	input[type="range"]:disabled {
		filter: grayscale(1);
		opacity: 0.3;
		cursor: not-allowed;
	}

	/* WebKit specific styles */
	input[type="range"],
	input[type="range"]::-webkit-slider-runnable-track,
	input[type="range"]::-webkit-slider-thumb {
		-webkit-appearance: none;
		transition: all ease 100ms;
		height: var(--thumb-height);
	}

		input[type="range"]::-webkit-slider-runnable-track,
		input[type="range"]::-webkit-slider-thumb {
			position: relative;
		}

		input[type="range"]::-webkit-slider-thumb {
			--thumb-radius: calc((var(--thumb-height) * 0.5) - 1px);
			--clip-top: calc((var(--thumb-height) - var(--track-height)) * 0.5 - 0.5px);
			--clip-bottom: calc(var(--thumb-height) - var(--clip-top));
			--clip-further: calc(100% + 1px);
			--box-fill: calc(-100vmax - var(--thumb-width, var(--thumb-height))) 0 0 100vmax currentColor;
			width: var(--thumb-width, var(--thumb-height));
			background: linear-gradient(currentColor 0 0) scroll no-repeat left center / 50% calc(var(--track-height) + 1px);
			background-color: currentColor;
			box-shadow: var(--box-fill);
			border-radius: var(--thumb-width, var(--thumb-height));
			filter: brightness(100%);
			clip-path: polygon( 100% -1px, var(--clip-edges) -1px, 0 var(--clip-top), -100vmax var(--clip-top), -100vmax var(--clip-bottom), 0 var(--clip-bottom), var(--clip-edges) 100%, var(--clip-further) var(--clip-further) );
		}

		input[type="range"]:hover::-webkit-slider-thumb {
			filter: brightness(var(--brightness-hover));
			cursor: grab;
		}

		input[type="range"]:active::-webkit-slider-thumb {
			filter: brightness(var(--brightness-down));
			cursor: grabbing;
		}

		input[type="range"]::-webkit-slider-runnable-track {
			background: linear-gradient(var(--track-color) 0 0) scroll no-repeat center / 100% calc(var(--track-height) + 1px);
		}

		input[type="range"]:disabled::-webkit-slider-thumb {
			cursor: not-allowed;
		}

		/* Firefox specific styles */
		input[type="range"],
		input[type="range"]::-moz-range-track,
		input[type="range"]::-moz-range-thumb {
			appearance: none;
			transition: all ease 100ms;
			height: var(--thumb-height);
		}

			input[type="range"]::-moz-range-track,
			input[type="range"]::-moz-range-thumb,
			input[type="range"]::-moz-range-progress {
				background: #fff0;
			}

			input[type="range"]::-moz-range-thumb {
				background: currentColor;
				border: 0;
				width: var(--thumb-width, var(--thumb-height));
				border-radius: var(--thumb-width, var(--thumb-height));
				cursor: grab;
			}

			input[type="range"]:active::-moz-range-thumb {
				cursor: grabbing;
			}

			input[type="range"]::-moz-range-track {
				width: 100%;
				background: var(--track-color);
			}

			input[type="range"]::-moz-range-progress {
				appearance: none;
				background: currentColor;
				transition-delay: 30ms;
			}

			input[type="range"]::-moz-range-track,
			input[type="range"]::-moz-range-progress {
				height: calc(var(--track-height) + 1px);
				border-radius: var(--track-height);
			}

			input[type="range"]::-moz-range-thumb,
			input[type="range"]::-moz-range-progress {
				filter: brightness(100%);
			}

			input[type="range"]:hover::-moz-range-thumb,
			input[type="range"]:hover::-moz-range-progress {
				filter: brightness(var(--brightness-hover));
			}

			input[type="range"]:active::-moz-range-thumb,
			input[type="range"]:active::-moz-range-progress {
				filter: brightness(var(--brightness-down));
			}

			input[type="range"]:disabled::-moz-range-thumb {
				cursor: not-allowed;
			}

/* umbraco forms */

.umbraco-forms-hidden {
	display: none;
}
.row-fluid {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
}
	.row-fluid div {
		width: 100%;
	}
		.row-fluid div.col-md-6 {
			width: calc(50% - 1rem);
		}
	.row-fluid input[type=text],
	.row-fluid input[type=tel],
	.row-fluid input[type=email],
	.row-fluid select,
	.row-fluid textarea {
		width: 100%;
	}
.dataconsent {
	margin-top: 1rem;
	margin-bottom: 1.5rem
}
	.dataconsent .umbraco-forms-field-wrapper {
		display: flex;
		align-items: flex-start;
		column-gap: 0.5rem
	}
.field-validation-error {
	display: block;
	width: 100%;
	color: #900;
	margin-top: -0.25rem;
	margin-bottom: 1rem;
}
.umbraco-forms-submitmessage {
	display: block;
	padding: 0.5rem 1rem 0.75rem;
	background: var(--colMain);
	color: var(--colPale);
	border-radius: 0.5rem;
	font-size: 1.125rem
}

/* tax calculator */

form .elements {
	display: flex;
	column-gap: 0.75rem;
}

.tax-calculator .elements select#startDateDay,
.tax-calculator .elements select#endDateDay,
.tax-calculator .elements select#startDateMonth,
.tax-calculator .elements select#endDateMonth,
.tax-calculator .elements select#startDateYear,
.tax-calculator .elements select#endDateYear {
	width: calc(33.3333% - 0.5rem);
}

.tax-calculator .help .help-popup {
	display: none;
}

	.tax-calculator .help .help-popup.show {
		text-align: left;
		display: block;
		position: absolute;
		background: #fff;
		padding: 20px;
		width: 300px;
		right: 0;
		box-shadow: 0 3px 10px rgba(0,0,0,0.2);
		z-index: 101;
		font-weight: normal;
		font-size: 0.9375rem;
	}

/* #Tables
================================================== */

table strong {
	font-weight: 600;
}

/* comparison table */

table.comparison {
	border-radius: var(--borderRad);
	overflow: hidden;
	width: 100%;
	margin: 2rem auto 2.5rem;
}
table.comparison * {
	box-sizing: border-box;
}
table.comparison td,
table.comparison th {
	font-size: clamp(1rem, 0.5vw + 0.725rem, 1.25rem);
	line-height: clamp(1.5rem, 0.346vw + 1.41rem, 1.688rem);
	background: var(--colMainPale);
	border-bottom: 1px solid var(--colBorder);
	border-right: 1px solid var(--colBorder);
	padding: 0.625rem 2rem;
}
table.comparison td {
	background: var(--colWhite);
	font-weight: 500;
}
table.comparison th {
	text-align: center;
	color: var(--colMain);
	font-size: clamp(1.25rem, 0.5vw + 0.975rem, 1.5rem);
	line-height: clamp(1.75rem, 0.55vw + 1.447rem, 2.025rem);
	padding: 0.875rem 2rem;
}
	table.comparison td:last-child,
	table.comparison th:last-child{
		border-right: none;
	}
	table.comparison td:not(:first-child) {
		text-align: center;
		width: 20%;
	}
	table.comparison tr:last-child td {
		border-bottom: none;
		padding-bottom: 2rem;
		color: var(--colMain)
	}
table.comparison th img {
	width: auto;
	height: 4rem;
	margin: 0 auto;
}
table.comparison td img {
	width: 1.5625rem;
	margin: 0 auto;
}


/* info grid */

table.infogrid {
	margin: 2rem auto 2.5rem;
	border-radius: var(--borderRad);
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(0,0,0,0.2)
}
table.infogrid input, table.infogrid .button {
	margin-bottom: 0;
}
.infogrid th, .infogrid td {
	font-size: clamp(1rem, 0.5vw + 0.725rem, 1.25rem);
	line-height: clamp(1.5rem, 0.346vw + 1.41rem, 1.688rem);
	padding: 0.875rem 1.375rem;
	position: relative;
}
.infogrid th {
	font-size: clamp(1.25rem, 0.5vw + 0.975rem, 1.5rem);
	line-height: clamp(1.75rem, 0.55vw + 1.447rem, 2.025rem);
	background: var(--colMain);
	color: var(--colWhite);
	border-right: 1px solid var(--colMainMid);
	text-align: left;
}
	.infogrid th.right {
		text-align: right;
	}
	.infogrid th.center {
		text-align: center;
	}
	.infogrid th.header {
		background: var(--colMainDark);
	}
.infogrid td {
	font-size: 1.25rem;
	line-height: 1.4;
	background: var(--colWhite);
	border-right: 1px solid var(--colPale);
	border-bottom: 1px solid var(--colPale);
}
    .infogrid td p {
        margin-bottom: 0;
    }
	.infogrid td strong {
		color: var(--colMain)
	}

.infogrid th:last-child, .infogrid td:last-child {
	border-right: none;
}
.infogrid img {
	width: 40px;
	float: left;
}



/* #Misc
================================================== */

.bgBlack {
	background: var(--colBlack);
}

.mb-0 {
	margin-bottom: 0 !important;
}
.mb-05 {
    margin-bottom: 0.5rem !important;
}
.mb-1 {
	margin-bottom: 1rem !important;
}
.mb-15 {
	margin-bottom: 1.5rem !important;
}
.mb-2 {
	margin-bottom: 2rem !important;
}
.mb-25 {
	margin-bottom: 2.5rem !important;
}
.mb-3 {
	margin-bottom: 3rem !important;
}

.mt-0 {
	margin-top: 0 !important;
}
.mt-05 {
	margin-top: 0.5rem !important;
}
.mt-1 {
	margin-top: 1rem !important;
}
.mt-15 {
	margin-top: 1.5rem !important;
}
.mt-2 {
	margin-top: 2rem !important;
}
.mt-25 {
	margin-top: 2.5rem !important;
}
.mt-3 {
	margin-top: 3rem !important;
}
.ml-1 {
	margin-left: 1rem !important;
}
.ml-2 {
	margin-left: 2rem !important;
}
.mr-1 {
	margin-right: 1rem !important;
}
.mr-2 {
	margin-right: 2rem !important;
}

.m-0 {
	margin: 0 !important;
}

.flo-l {
	float: left !important;
}
.flo-r {
	float: right !important;
}

.center {
	text-align: center !important;
}
.left {
	text-align: left !important;
}
.right {
    text-align: right !important;
}
.strike {
	text-decoration: line-through;
}

.align-start {
	align-items: flex-start !important;
}

.mob-only, .mob-only-p, .mob-only-all, .tab-only, .hidden {
	display: none !important;
}

.loader {
	display: none;
	position: fixed;
	left: 0px;
	top: 0px;
	width: 100%;
	height: 100%;
	z-index: 9999;
	background: rgba(255,255,255, 0.5) url('/images/preload.gif') 50% 50% no-repeat;
}

.divider {
	margin: 0 10px;
	color: var(--colMid);
}

::selection {
	background: #ddd; /* Safari */
	color: var(--colBlack);
}
::-moz-selection {
	background: #ddd; /* Firefox */
	color: var(--colBlack);
}
.twoCol {
	column-count: 2;
	column-gap: 2rem;
	margin-bottom: 1.25rem;
}
.colMain {
	color: var(--colMain) !important;
}
.colSub1 {
	color: var(--colSub1) !important;
}
.colSub2 {
	color: var(--colSub2) !important;
}
.icon-before{
	padding-left: 1.5rem;
	position: relative;
}
.icon-before img {
	width: 1rem;
	height: 1rem;
	position: absolute;
	left: 0;
	top: calc(50% - 0.5rem);
}
.date {
	font-size: 0.9375em !important;
	color: var(--colDark);
	text-transform: uppercase;
}
.disclaimer {
	font-size: 0.9375em !important;
	color: var(--colMain);
}

/*  Basic cookie banner  */

#cookie-law {
    max-width: 100%;
    background: var(--colMainDark); 
    margin: 0 auto;
	padding: 20px 0;
	position: relative;
	z-index: 100;
}
 
#cookie-law p { 
    padding: 0 40px 0 0; 
    font-size: 15px; 
    color: var(--colWhite); 
    margin: 0;
}

#cookie-law a { 
	color: var(--colWhite);
	text-decoration: underline; 
}

	#cookie-law a.close-cookie-banner {
		position: absolute;
		right: 0;
		top: calc(50% - 16px);
		transition: transform 0.2s ease-out;
		width: 32px;
		height: 32px;
	}
	#cookie-law a.close-cookie-banner:hover {
		transform: rotate(90deg)
	}

