@font-face {
	font-family: 'BebasNeueBold';
	src: url('/static/fonts/bebas_neue/bebas_neue_b.woff2?c60dd09bc573') format('woff2'),
	url('/static/fonts/bebas_neue/bebas_neue_b.woff?c60dd09bc573') format('woff');
}

:root {
	--primary-accent-colour: #4EC8F4;
	--primary-accent-colour-darken: #0D9CFF;

	--secondary-accent-colour: #FFD570;
	--secondary-accent-colour-darken: #bd8500;

	--background-colour: white;

	--background-colour-medium: #F1F2F2;
	--background-colour-medium-darken: #BCC1C1;

	--background-colour-dark: #6D6E71;
	--background-colour-dark-slightly-lighter: #898a8d;
	--border-colour: #D1D3D4;
	--header-gradient-start: white;
	--header-gradient-end: #F6F6F6;

	--image-overlay-background-colour: rgba(0,0,0,0.7);

	--error-colour: rgb(217,92,92);
	--error-colour-background: rgb(217,92,92);

	--warning-colour: #efb107;
	--warning-colour-background: rgb(252,248,215);

	--success-colour: rgb(91,189,114);
	--success-colour-background: rgb(91,189,114);

	--info-colour: blue;
	--info-colour-background: var(--background-colour-medium);

	--button-colour-accent: var(--primary-accent-colour);
	--button-colour-accent-darken: var(--primary-accent-colour-darken);

	--button-colour: var(--background-colour-medium);
	--button-colour-darken: var(--background-colour-medium-darken);

	--font-colour: #414042;
	--font-colour-disabled: #a7a6a8;
	--font-colour-light: white;
	--font-colour-accent: var(--secondary-accent-colour-darken);
	--font-colour-accent-darken: var(--font-colour);
	--font-size-base: 12px;
	--font-line-height-base: 14px;

	--drop-shadow: grey;

	--gutter-spacing: 10px;
	--field-padding: calc(var(--font-size-base) * 0.5);
	--border-radius: calc(var(--gutter-spacing) * 0.5);

	--medium-threshold: 700px;
	--large-threshold: 1200px;

	--primary-font: Arial, sans-serif;
	--secondary-font: BebasNeueBold, Arial, sans-serif;

	--header-height: 50px;

}

/*
	BASE RESET
*/

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
	display: block;
}

body, input, textarea, select, button {
	line-height: var(--font-line-height-base);
	font-family: var(--primary-font);
    font-size: var(--font-size-base);
    color: var(--font-colour);
    background-color: var(--background-colour);
}

ol, ul {
	list-style: none;
}

strong {
	font-weight: bold;
}

sup {
	font-size: 80%;
	vertical-align: super;
}

sub {
	font-size: 80%;
	vertical-align: sub;
}

html, body {
	height: 100%;
	width: 100%;
}

a {
    color: var(--font-colour-accent);
    text-decoration: none;
}

a:hover {
	color: var(--font-colour-accent-darken);
}

hr {
	height: 1px;
	color: var(--border-colour);
	background-color: var(--border-colour);
	width: 100%;
	border: 0;
}

.align-centre {
	align-self: center;
}

.clearfix::after {
    content: "";
    clear: both;
    display: table;
}

.template,
.html-template, 
.hidden {
	display: none !important;
}

*:focus {
    outline: none;
}

.error {
	color: var(--error-colour);
}

.success {
	color: var(--success-colour);
}

.warning {
	color: var(--warning-colour);
}

/*
	TOP LEVEL ELEMENTS (SITE AND CONTENT)
*/

#site {
  display: grid;
  grid-template-rows: min-content 5rem auto;
  grid-template-columns: auto;
  grid-template-areas:
    "header"
    "subnav"
    "content";
  height: 100vh;
}

@media (min-width: 700px) {
	#site {
		grid-template-columns: 11rem auto;
		grid-template-rows: auto 1fr;
		grid-template-areas:
			"header header"
			"subnav content";
	}
}

#content-container {
  grid-area: content;
  position: relative;
  display: grid;
  grid-template-columns: auto;
  grid-template-rows: min-content min-content auto min-content;
  grid-template-areas:
  	"content-banner"
  	"content-header"
    "main-content"
    "footer";
  overflow: auto;
}

#content-banner {
	grid-area: content-banner;
	width: 100%;
}

#content-header {
	grid-area: content-header;
	display: grid;
	grid-template-columns: 1fr;
	grid-auto-rows: min-content;
	grid-gap: var(--gutter-spacing);
	padding-left: calc(var(--gutter-spacing) * 2);
	padding-right: calc(var(--gutter-spacing) * 2);
}

#content-header > :first-child {
	margin-top: calc(var(--gutter-spacing) * 2) !important;
}

#content {
    grid-area: main-content;
	padding: calc(var(--gutter-spacing) * 2);
	display: grid;
	grid-template-columns: calc(100% - var(--gutter-spacing) * 2);
	grid-auto-rows: minmax(auto, min-content);
	grid-gap: calc(var(--gutter-spacing) * 2);
	opacity: 0;
	grid-auto-flow: dense;
}

@media (min-width: 1200px) {
	#content {
		grid-template-columns: 1fr 1fr;
		grid-auto-rows: calc(var(--section-head-height) / 2 - var(--gutter-spacing) * 2);
	}

	#content.large-left-column {
		grid-template-columns: 66% 34%;
	}

}

/*
	HEADER
*/

#header {
	--header-logo-padding: 5px;
	--header-highlight-border-width: 4px;

	grid-area: header;
	display: grid;
	font-family: var(--secondary-font);
	font-size: 1.6em;
	color: var(--font-colour-light);
	background-color: var(--background-colour-dark);
	grid-template-columns: auto auto;

	grid-template-areas:
	"nav-title nav-toggle"
	"nav-menu nav-menu";
}

#header #nav-title {
	grid-area: nav-title;
	justify-self: start;
	display: grid;
	place-content: center;
}

#header #nav-title img {
	display: block;
	height: calc(var(--header-height) - var(--header-logo-padding) * 2);
	padding: var(--header-logo-padding);
	padding-left: 20px;
	padding-right: 20px;
}

#header #nav-toggle {
	grid-area: nav-toggle;
	justify-self: end;
	padding-right: 0.5em;
	padding-left: 0.5em;
	display: grid;
	place-content: center;
	height: 100%;
	cursor: pointer;
}

#header #account-menu {
	grid-area: nav-toggle;
	justify-self: end;
	padding-right: 0.5em;
	padding-left: 0.5em;
	height: 100%;
	cursor: pointer;
	display: none;
}

#header #account-menu li {
	padding-right: 0px;
}

#header #nav-menu,
#header .nav-menu {
	display: grid;
	grid-area: nav-menu;
	list-style: none;
	margin: 0px;
	padding: 0px;
}

#header #nav-menu.hide-nav-menu,
#header .nav-menu.hide-nav-menu {
	display: none;
}

#header #nav-menu li,
#header .nav-menu li {
	text-align: center;
}

#header #nav-menu li a,
#header .nav-menu li a {
	display: grid;
	place-content: center;
	height: calc(100% - var(--header-highlight-border-width) * 2);
	color: var(--font-colour-light);
	border-bottom: var(--header-highlight-border-width) solid transparent;
	border-top: var(--header-highlight-border-width) solid transparent;
}

#header #nav-menu li a:hover,
#header #nav-menu li a.active,
#header .nav-menu li a:hover,
#header .nav-menu li a.active {
	border-bottom: var(--header-highlight-border-width) solid var(--primary-accent-colour);
}


@media (min-width: 700px) {
	#header {
		grid-template-columns: min-content auto auto;
		grid-template-areas:
		  "nav-title nav-menu nav-toggle";
		justify-items: left;
	}

	#header #nav-menu,
	#header .nav-menu {
		display: grid;
		grid-auto-flow: column;
	}

	#header #nav-menu.hide-nav-menu,
	#header .nav-menu.hide-nav-menu {
		display: grid;
	}

	#header #nav-menu li,
	#header .nav-menu li {
		padding-right: 1em;
	}

	#header #nav-toggle {
		display: none;
	}

	#header #account-menu {
		display: grid;
	}

	#header .hide-on-expand {
		display: none;
	}
}

/*
	SUBNAV
*/

#subnav {
	display: grid;
	overflow: auto;
	background-color: var(--background-colour-medium);;
	grid-area: subnav;
	font-size: 1.2em;
}

#subnav a.active {
	background-color: var(--primary-accent-colour);
	color: var(--font-colour-light);
}

#subnav a.active a {
	color: var(--font-colour-light);
}

#subnav-sidebar {
	display: none;
}

#subnav-compact {
	display: grid;
	align-items: center;
	justify-content: center;
}

#subnav-select {
	color: var(--font-colour);
}

@media (min-width: 700px) {
	#subnav-compact {
	 	display:none;
	}

    #subnav-sidebar {
		display: grid;
		align-content: start;
		list-style: none;
		margin: 0px;
		padding: 0px;
	}

	#subnav-sidebar a {
        display: grid;
		padding: 0.4em;
        justify-content: left;
		color: var(--font-colour);
    }

	#subnav-sidebar a:hover,
	#subnav-sidebar a.active {
		color: var(--font-colour-light);
		background-color: var(--primary-accent-colour);
	}
}

/*
	FOOTER
*/

#footer {
	grid-area: footer;
	border-top: 1px solid var(--border-colour);
	padding: var(--gutter-spacing);
	font-size: 80%;
	display: grid;
	grid-template-columns: min-content auto min-content;
	text-align: center;
}

#footer img {
	height: 50px;
}

/*
	Section Layout
*/

.section {
	border: 1px solid var(--border-colour);
	border-radius: var(--border-radius);
}

.section.no-border {
	border: 0px;
}

.section.left-column {
	grid-column-start: 1;
}

.section-head {
	padding: var(--gutter-spacing);
	border-bottom: 1px solid var(--border-colour);
	background-image: linear-gradient(var(--header-gradient-start), var(--header-gradient-end));
	border-top-left-radius: var(--border-radius);
	border-top-right-radius: var(--border-radius);
	line-height: calc(1em + 3px); /* +3 is for rounding */
	font-size: 1.2em;
}

.section-head.with-toggle {
	display: grid;
	grid-template-columns: max-content 1fr;
	align-items: center;
}

.section-head.with-toggle *:last-child {
	justify-self: right;
}

.section-head.with-toggle .input-button-group input + label {
	float: none;
	padding: calc(var(--field-padding) / 2);
}

:root {
	--section-head-height: calc(var(--gutter-spacing) * 2 + 2px + 1.2em)
}

.no-padding .section-head, .no-padding .section-content {
	padding: 0px;
}

.section-content {
	padding: var(--gutter-spacing);
	display: grid;
	overflow: auto;
	grid-auto-rows: minmax(auto, min-content);
	grid-row-gap: calc(var(--gutter-spacing) * 2);
	grid-column-gap: calc(var(--gutter-spacing) * 3);

}

@media (min-width: 700px) {
	.section-content.columnize {
		grid-template-columns: repeat(6, 1fr);
	}

	

	.col-1 { grid-column: span 1}
	.col-2 { grid-column: span 2}
	.col-3 { grid-column: span 3}
	.col-4 { grid-column: span 4}
	.col-5 { grid-column: span 5}
	.col-6,
	.col-7,
	.col-8,
	.col-9,
	.col-10,
	.col-11,
	.col-12 {
		grid-column: span 6
	}

}

@media (min-width: 1200px) {
	.full-width {
		grid-column-end: span 2;
	}
	.full-width .section-content.columnize {
		grid-template-columns: repeat(12, 1fr);
	}

	.section.section.right-column {
		grid-column-start: 2;
	}

	.full-width .col-7 { grid-column: span 7}
	.full-width .col-8 { grid-column: span 8}
	.full-width .col-9 { grid-column: span 9}
	.full-width .col-10 { grid-column: span 10}
	.full-width .col-11 { grid-column: span 11}
	.full-width .col-12 { grid-column: span 12}

	.capped-width {
		width: 1200px;
		justify-self: center;
	}
}

.left {
	justify-self: start;
}

.right {
	justify-self: end;
}

.centre {
	justify-self: center;
}

.text-left {
	text-align: left !important;
}

.text-centre {
	text-align: center !important;
}

.text-right {
	text-align: right !important;
}

/* This is for collecting multiple items together, like form fields (label, field, errors).  Use it for grouping items when they need to be laid out relative to each other */
.container {
	display: grid;
	grid-auto-rows: minmax(auto, min-content);
	position: relative;
}

/*
	Accordian Section
*/

.section.accordian.accordian-closed .section-content {
	display: none;
}

.section.accordian .section-head {
	border-bottom-width: 0px;
	cursor: pointer;
}

.section.accordian .section-head:hover {
	background-image: linear-gradient(var(--header-gradient-start), var(--background-colour-medium-darken))

}

.section.accordian.accordian-closed .section-head {
	border-bottom-width: 0px;
}

.section.accordian .section-head * {
	display: inline;
}

.section.accordian .section-head::before {
	content: '\f0d8';
	font-family: 'Font Awesome 5 Pro';
	font-weight: 900;
}

.section.accordian.accordian-closed .section-head::before {
	content: '\f0d7';
}

/*
	Pagination
*/
.pagination .button {
	padding-left: var(--gutter-spacing);
	padding-right: var(--gutter-spacing);
}

/*
	Breadcrumbs
*/

#breadcrumbs {
	--breadcrumb-gap: 10px;
	--breadcrumb-height: 30px;
	--breadcrumb-font-size: 14px;

	margin: 0;
	padding: 0;
	font-size: var(--breadcrumb-font-size);
	line-height: var(--breadcrumb-font-size);
	list-style: none;
	overflow: hidden;
	width: 100%;
	padding-left: calc(var(--breadcrumb-gap) * 0.5);
}

#breadcrumbs li {
	float: left;
	margin: calc(var(--gutter-spacing) / 3) var(--breadcrumb-gap) calc(var(--gutter-spacing) / 3) var(--breadcrumb-gap);
}

#breadcrumbs li.inactive a {
	background: var(--background-colour-medium);
	color: var(--font-colour);
}

#breadcrumbs li.inactive a::before {
	border-color: var(--background-colour-medium) var(--background-colour-medium) var(--background-colour-medium) transparent;
}

#breadcrumbs li.inactive a::after {
	border-left-color: var(--background-colour-medium);
}

#breadcrumbs li.active a {
	background: var(--primary-accent-colour);
	color: var(--font-colour-light);
}

#breadcrumbs li.active a::before {
	border-color: var(--primary-accent-colour) var(--primary-accent-colour) var(--primary-accent-colour) transparent;
}

#breadcrumbs li.active a::after {
	border-left-color: var(--primary-accent-colour);
}

#breadcrumbs a {
	background: var(--background-colour-dark);
	padding: calc((var(--breadcrumb-height) - var(--breadcrumb-font-size)) / 2) calc((var(--breadcrumb-height) - var(--breadcrumb-font-size)) / 2);
	float: left;
	text-decoration: none;
	color: var(--font-colour-light);
	position: relative;
}

#breadcrumbs a:hover {
	background: var(--primary-accent-colour);
	color: var(--font-colour-light);
}

#breadcrumbs a:hover::before {
 	border-color: var(--primary-accent-colour) var(--primary-accent-colour) var(--primary-accent-colour) transparent;
}
#breadcrumbs a:hover::after {
	border-left-color: var(--primary-accent-colour);
}

#breadcrumbs a::before {
	content: "";
	position: absolute;
	top: 50%;
	margin-top: calc(-1 * var(--breadcrumb-height) / 2);
	border-width: calc(var(--breadcrumb-height) / 2) 0 calc(var(--breadcrumb-height) / 2) calc(var(--breadcrumb-gap) * 1.5);
	border-style: solid;
	border-color: var(--background-colour-dark) var(--background-colour-dark) var(--background-colour-dark) transparent;
	left: calc(-1 * var(--breadcrumb-gap) * 1.5);
}

#breadcrumbs a::after {
	content: "";
	position: absolute;
	top: 50%;
	margin-top: calc(-1 * var(--breadcrumb-height) / 2);
	border-top: calc(var(--breadcrumb-height) / 2) solid transparent;
	border-bottom: calc(var(--breadcrumb-height) / 2) solid transparent;
	border-left: calc(var(--breadcrumb-gap) * 1.5) solid var(--background-colour-dark);
	right: calc(-1 * var(--breadcrumb-gap) * 1.5);
}

.light-breadcrumbs {
	text-align: center;
	font-size: 1.2em;
}

#content-header > :first-child.light-breadcrumbs {
	margin-top: var(--gutter-spacing) !important;
}

/*
	Miscellaneous Form
*/

.form-label {
	font-size: 1.2em;
	line-height: 1.2em;
	padding-bottom: 0.2em;
}

.form-caption, .caption {
	font-size: 0.8em;
	line-height: 1.4em;
	padding-top: .2em;
}

.form-caption.error {
	color: var(--error-colour);
}

.form-caption.warning {
	color: var(--warning-colour);
}

.form-caption:empty {
	display: none;
}

.form-overlay {
	position: absolute;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,0.1);
	display: grid;
	place-content: center;
	top: 0px;
	left: 0px;
	z-index: 99999;
}

.form-overlay .form-overlay-message {
	line-height: 1.4rem;
	font-size: 1.2rem;
	padding: 1.2rem;
	border: 2px solid var(--font-colour);
	background-color: var(--background-colour);
	border-radius: 5px;
}

/*
	Form Inputs
*/
form {
	position: relative; /* To allow for absolute positioned overlays */
}

textarea,
input,
button,
.button {
	border: 1px solid var(--border-colour);
	border-radius: var(--border-radius);
	padding: var(--field-padding);
	box-sizing: border-box;
	vertical-align: middle;
	user-select: none;
}

a.button {
	display: inline-block;
	text-align: center;
	color: var(--font-colour);
}

button.small, .button.small {
	padding: calc(var(--gutter-spacing) / 3);
	font-size: 0.6rem;
	line-height: 0.8rem;
}

button.large, .button.large, input[type=submit].large {
	padding: calc(var(--gutter-spacing));
	font-size: 1rem;
	line-height: 1rem;
}

textarea,
input[type=text],
input[type=number] {
	width: 100%;
}

.input-group input[type=text] {
	width: auto;
}

input[type=text]:disabled, input[type=number]:disabled, textarea:disabled, .select select:disabled,  select + .select2-container--default.select2-container--disabled .select2-selection--single {
	cursor: not-allowed;
	background: var(--background-colour-medium);
}

.switch>input:disabled {
	color: red;
}

.disabled {
	opacity: 0.75;
}

.button.disabled, button.disabled {
	cursor: not-allowed;
}

.colour-picker {
	--colour-picker-height: 25px;
	position: relative;
	display: inline-block;
	padding: 0px !important;
	width: var(--colour-picker-height);
	height: var(--colour-picker-height);
	background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);
	border-radius: var(--colour-picker-height);
	background-position: center;
	cursor: pointer;
	border: 1px solid var(--border-colour);
}

.colour-picker.clear {
	background-image: url(data:image/gif;base64,R0lGODlhKAAoAOcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///yH5BAEKAP8ALAAAAAAoACgAAAiWAAH8G0iwoMGDCBMOFChQocOHBhv+kwix4kGKEy1qJIhx4UaLHTl+fBiyYMmRJ02OvKgxJUSXLFfCRDgz4kqPLW+KrFiT5EudMRP2BCkUqMKOQz9STIoSp9GXTG8CiNo041OHS68WtalVJc2uTr9qhUmV60+gQ8syjUo1aVmrPJ/OfOv1KNiTdMWaBQs3LF+4eX8G5hkQADs=);
}

.colour-picker.small {
	--colour-picker-height: 20px;
}

.colour-picker .colour {
	position: absolute;
	width: 100%;
	height: 100%;
	border-radius: var(--colour-picker-height);;
}


/*
	Buttons
*/

input[type=button],
input[type=submit],
button,
.button {
	cursor: pointer;
	background-color: var(--button-colour);
	display: inline-block;
}

input[type=button]:hover,
input[type=submit]:hover,
button:hover,
.button:hover {
	background-color: var(--background-colour-medium-darken);
}

input[type=button].accent,
input[type=submit].accent,
button.accent,
.button.accent {
	color: var(--font-colour-light);
	background-color: var(--button-colour-accent);
}

input[type=button].accent:hover,
input[type=submit].accent:hover,
button.accent:hover,
.button.accent:hover {
	background-color: var(--button-colour-accent-darken);
}

input[type=button][disabled],
input[type=submit][disabled],
button[disabled] {
	cursor: not-allowed;
	filter: contrast(0.5) brightness(1.2);
}

/*
	Input Groups
*/

.input-group {
	white-space: nowrap;
}

.input-group input,
.input-group button,
.input-group .button {
	border-radius: 0px;
	border-right-width: 0px;
}

.input-group :last-child {
	border-right-width: 1px;
	border-top-right-radius: var(--border-radius);
	border-bottom-right-radius: var(--border-radius);
}

.input-group :first-child {
	border-top-left-radius: var(--border-radius);
	border-bottom-left-radius: var(--border-radius);
}

.input-group.full-width-with-icon input {
	width: calc(100% - 38px);
}

/*
	Headers
*/

h1, h2, h3, h4, h5, h6 {
	display: block;
	font-weight: bold;
}

h1 { font-size: 2.4em; line-height: 1.4em;}
h2 { font-size: 2.0em; line-height: 1.4em;}
h3 { font-size: 1.8em; line-height: 1.4em;}
h4 { font-size: 1.6em; line-height: 1.4em;}
h5 { font-size: 1.4em; line-height: 1.4em;}
h6 { font-size: 1.2em; line-height: 1.4em;}

/*
	Lists
*/

ul, ol {
	margin-left: 1em;
}

ul {
	list-style-type: disc;
}

ol {
	list-style-type: decimal;
}

/*
	Timeline
*/

.timeline-container {
	overflow: auto;
}

.timeline-container .timeline-title {
	font-weight: bold;
	font-size: 1rem;
}

.timeline-container .timeline-title-link {
	font-size: .7rem;
}

ul.timeline {
	display: grid;
	overflow: auto;
	grid-auto-flow: column;
	list-style: none;
	gap: calc(var(--gutter-spacing) * 1.5);
	text-align: center;
	font-size: 0.7rem;
	margin-left: 0px;
	grid-auto-columns: 145px; 
}

ul.timeline li {
	display: grid;
	grid-template-columns: min-content auto;
	grid-template-areas:
		"icon info"
		"time time";
	row-gap: 0.3rem;
}

ul.timeline li .timeline-icon {
	font-size: 1.5rem;
	grid-area: icon;
	padding: 0 3px;
	place-self: center;
}

ul.timeline li .timeline-info {
	grid-area: info;
	place-self: center;
}

ul.timeline li .timeline-time {
	grid-area: time;
	font-style: italic;
}

/*
	Callouts
*/

.callout {
	display: grid;
	place-content: center;
	width: max-content;
	background-color: var(--background-colour-dark);
	color: var(--font-colour-light);
}

.callout-content {
	padding: var(--gutter-spacing);
}

/*
	Responsive Tables
*/

.responsive-table {
	overflow-x: auto;
}

.responsive-table table {
	/* border-collapse: collapse; */
	border-spacing: 0;
	width: 100%;
	border-top: 1px solid var(--border-colour);
	border-bottom: 1px solid var(--border-colour);
}

.responsive-table th, .responsive-table td {
	text-align: left;
	padding: var(--gutter-spacing);
	vertical-align: middle;
}

.responsive-table th, .responsive-table tfoot td {
	font-weight: bold;
}

.responsive-table:not(.no-striping) tr:nth-child(even) {
	background-color: var(--background-colour-medium);
}

.responsive-table.highlight-rows tbody tr:hover {
	background-color: var(--primary-accent-colour);
}

.responsive-table thead tr, .responsive-table tfoot tr {
	background-color: var(--background-colour-medium);
}
.responsive-table thead th {
	border-bottom: 1px solid var(--border-colour);
}

.responsive-table tfoot tr:first-of-type td {
	border-top: 1px solid var(--border-colour);
}

.responsive-table.no-striping tr td {
	border-bottom: 1px solid var(--border-colour);
}

.responsive-table.no-striping tr:last-of-type td {
	border-bottom: 0px;
}

.responsive-table tr.warning {
	background-color: var(--background-colour-medium);
	color: var(--font-colour);
}



/*
	Progress Bar
*/
.progress-bar {
	background-color: var(--background-colour-medium);
	position: relative;
	border-radius: var(--border-radius);
}

.progress-bar .progress {
	background-color: var(--primary-accent-colour);
	box-sizing: border-box;
	border-radius: var(--border-radius);
}

.progress-bar.error .progress {
	background-color: var(--error-colour-background);
	color: var(--font-colour-light);
}

.progress-bar .progress .progress-label {
	padding: var(--gutter-spacing);
}

/*
	Checkbox Toggle
*/

/* The switch - the box around the slider */
.switch {
	--switch-height: 25px;
	--switch-padding: 2px;

	position: relative;
	display: inline-block;
	width: calc(var(--switch-height) * 2 - var(--switch-padding) * 2);
	height: var(--switch-height);
	padding: 0px !important;
}

.switch.x-small {
	--switch-height: 14px;
	--switch-padding: 1px;
}

.switch.small {
	--switch-height: 17px;
	--switch-padding: 2px;
}

/* Hide default HTML checkbox */
.switch input {
	opacity: 0;
	width: 0;
	height: 0;
}
.switch input:checked + .slider {
  background-color: var(--primary-accent-colour);
}

.switch input:focus + .slider {
  box-shadow: 0 0 1px var(--primary-accent-colour);
}

.switch input:checked + .slider:before {
  -webkit-transform: translateX(calc(var(--switch-height) - 2 * var(--switch-padding)));
  -ms-transform: translateX(calc(var(--switch-height) - 2 * var(--switch-padding)));
  transform: translateX(calc(var(--switch-height) - 2 * var(--switch-padding)));
  content: "✔";
  color: var(--primary-accent-colour);
}

/* The slider */
.switch .slider {
	position: absolute;
	cursor: pointer;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: var(--background-colour-dark);
	-webkit-transition: .4s;
	transition: .4s;
	border-radius: var(--switch-height);
}

.switch .slider:before {
	position: absolute;
	display: grid;
	place-items: center;
	color: var(--background-colour-dark);
	content: "✘";
	height: calc(var(--switch-height) - 2 * var(--switch-padding));
	width: calc(var(--switch-height) - 2 * var(--switch-padding));
	left: var(--switch-padding);
	bottom: var(--switch-padding);
	background-color: var(--background-colour);
	-webkit-transition: .4s;
	transition: .4s;
}

.switch .slider:before {
	border-radius: 50%;
}

/*
	Radio and Checkbox Button Group
*/

.input-button-group {
	clear: both;
	display: inline-block;
}

.input-button-group input {
	position: absolute;
	left: -9999em;
	top: -9999em;
}

.input-button-group input + label {
	font-size: 1rem;
	float: left;
	padding: var(--field-padding);
	cursor: pointer;
	border: 1px solid var(--border-colour);
	margin-right: -1px;
	background-color: var(--button-colour);
}

.input-button-group input + label:first-of-type {
	border-radius: var(--border-radius) 0 0 var(--border-radius);
}

.input-button-group input + label:last-of-type {
	border-radius: 0 var(--border-radius) var(--border-radius) 0;
}

.input-button-group input:checked + label {
	color: var(--font-colour-light);
	background-color: var(--button-colour-accent);
}

/*
	Single Radio / Checkbox Buttons
*/

.input-button-single {
	position: relative;
}

.input-button-single input {
	opacity: 0;
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	z-index: 2;
	cursor: pointer;
}

.input-button-single label {
	display: grid;
	grid-template-columns: 2em 1fr;
}

.input-button-single input + label::before {
	content: '\f0c8';
	font-family: 'Font Awesome 5 Pro';
	font-weight: 400;
	place-self: center;
}

.input-button-single input:checked + label::before {
	content: '\f14a';
	font-family: 'Font Awesome 5 Pro';
	font-weight: 400;
	color: var(--button-colour-accent);
	place-self: center;
}


.input-button-single label.large-checkbox {
	grid-template-columns: 3em 1fr;
}

.input-button-single label.large-checkbox::before {
	font-size: 1.5em;
}

.input-button-single label:empty {
	grid-template-columns: auto;
}

/*
	Horizontal Gallery Picker /w Checkbox
*/

.horizontal-gallery-picker {
	display: grid;
	overflow: auto;
	grid-auto-flow: column;
	grid-auto-columns: 200px;
}

.horizontal-gallery-picker .input-button-single label {
	display: grid;
	grid-template-columns: 2em 150px;
	grid-template-rows: 100px auto;
}

.horizontal-gallery-picker label div {
	grid-column-start: 2;
	text-align: center;
}

.horizontal-gallery-picker img {
	max-width: 100%;
	max-height: 100%;
	place-self: center;
}

/*
	Sliders
*/

input[type=range] {
	--range-slider-size: 15px;
	-webkit-appearance: none;
	width: 100%;
	height: 3px;
	border-radius: 5px;
	background: var(--border-colour);
	outline: none;
	opacity: 0.7;
	-webkit-transition: .2s;
	transition: opacity .2s;
	box-sizing: border-box;
	padding: 0px;
	border-width: 0px;
}

input[type=range]:hover {
	opacity: 1;
}

input[type=range]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: var(--range-slider-size);
	height: var(--range-slider-size);
	background: var(--background-colour-dark);
	cursor: pointer;
}

input[type=range]::-moz-range-thumb {
	width: var(--range-slider-size);
	height: var(--range-slider-size);
	background: var(--background-colour-dark);
	cursor: pointer;
}


/*
	Select Input
*/

/* Select styling */

.select {
	position: relative;
	border-radius: var(--border-radius);
	background-color: var(--background-colour);
}

.select:after {
	content: '';
	position: absolute;
	top: 0;
	width: 0;
	height: 0;
	right: 11px;
	bottom: 0;
	margin: auto;
	border-style: solid;
	border-width: 5px 5px 0 5px;
	border-color: var(--font-colour) transparent transparent transparent;
	pointer-events: none;
}

.select:before {
	width: 30px;
	position: absolute;
	top: 1px;
	right: 1px;
	bottom: 1px;
	background: var(--background-colour-medium);
	content: '';
	pointer-events: none;
	border-top-right-radius: var(--border-radius);
	border-bottom-right-radius: var(--border-radius);
}

.select select {

	border: none;
	box-shadow: none;
	border-radius: var(--border-radius);
	background: transparent;
	height: 100%;
	width: 100%;
	cursor: pointer;
	outline: none;
	padding-top: var(--field-padding);
	padding-bottom: var(--field-padding);
	padding-right: 35px;
	padding-left: var(--field-padding);
	border: 1px solid var(--border-colour);

	/* Disable default styling on ff */
	-moz-appearance: none;

	/* Disable default styling on webkit browsers */
    -webkit-appearance: none;
}

/* Disable ugly ass outline on firefox */
.select select:-moz-focusring {
	color: transparent;
	text-shadow: 0 0 0 #000;
}

/* Disable default arrow on IE 11+ */
.select select::-ms-expand {
	display: none;
}

/* The class of the parent when we want a submit button attached to the right side of the dropdown*/
.grouped-submit {
	display: grid;
	grid-template-columns: 1fr min-content;
}

.grouped-submit select {
	border-radius: var(--border-radius) 0 0 var(--border-radius);
}
.grouped-submit input[type="submit"], .grouped-submit button {
	border-radius: 0 var(--border-radius) var(--border-radius) 0;
	border-left-width: 0;
	white-space: nowrap;
}


/*
	List Group
*/

ul.list-group {
	margin-left: 0px;
	list-style: none;
}

ul.list-group li:first-of-type {
	border-top: 1px solid var(--border-colour);
}

ul.list-group li {
	padding: var(--gutter-spacing);
	border-bottom: 1px solid var(--border-colour);
	cursor: pointer;
}

ul.list-group li.highlight {
	background-color: var(--background-colour-medium);
}

ul.list-group li:hover {
	background-color: var(--primary-accent-colour);
}

ul.list-group li:hover > a {
	color: white;
}

ul.list-group li a {
	margin: calc(-1 * var(--gutter-spacing));
	padding: var(--gutter-spacing);
	display: inline-block;
	width: 100%;
	height: 100%;
}


/*
	Badge
*/

.badge {
	padding: .25em .4em;
	background-color: var(--background-colour-dark);
	border-radius: var(--border-radius);
	color: var(--font-colour-light);
}

.badge.highlight {
	background-color: var(--primary-accent-colour);
}

/*
	Autocomplete
*/

/* Autocomplete input field */
.select2.select2-container .select2-selection {
	/* height: calc(var(--font-line-height-base) + var(--field-padding) * 2); */
	box-sizing: content-box;
	border-color: var(--border-colour);
	border-radius: var(--border-radius);
}

/* Make sure this always shows on top, even when in a dialog window */
.select2-container.select2-container--default.select2-container--open {
	z-index: 9999999;
}

/* Autocomplete arrow within input */
.select2.select2-container--default .select2-selection--single .select2-selection__arrow {
	height: calc(var(--font-line-height-base) + var(--field-padding) * 2 + 2px);
	width: 30px;
	background-color: var(--background-colour-medium);
}

.select2.select2-container--default .select2-selection--single .select2-selection__arrow b {
	border-color: var(--font-colour) transparent transparent transparent;
}

/* Autocomplete up arrow within input */
.select2.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
	border-color: transparent transparent var(--font-colour) transparent;
}

.select2.select2-container--default .select2-selection--single .select2-selection__rendered {
	color: var(--font-colour);
	line-height: calc(var(--font-line-height-base) + var(--field-padding) * 2);
	padding-right: calc(30px + var(--gutter-spacing));
}

/*
	Multiple selection autocomplete field tweaks
*/

.select2 {
	--base-autocomplete-height: calc(var(--font-line-height-base) + var(--field-padding) * 2)
}

.select2.select2-container .select2-selection--multiple {
	min-height: unset;
}

/* Multi Autocomplete focus border colour */
.select2.select2-container--default.select2-container--focus .select2-selection--multiple {
	border-color: var(--border-colour);
}

/* When typing, need to make the input consistent with other inputs */
.select2.select2-container--default .select2-selection--multiple .select2-selection__rendered {
	line-height: calc(var(--font-line-height-base) + var(--field-padding) * 2);
	padding-left: var(--field-padding);
	padding-right: var(--field-padding);
}

/* After an item is selected, the selected badge needs to be adjusted to fit */
.select2.select2-container--default .select2-selection--multiple .select2-selection__choice {
	margin-top: calc(var(--gutter-spacing) * 0.5 - 1px);
	height: calc(var(--font-line-height-base) + var(--field-padding) / 2);
	line-height: calc(var(--font-line-height-base) + var(--field-padding) / 2);
	border-color: var(--border-colour);
	background-color: var(--button-colour);
	color: var(--font-colour);
}

/* Clear the selection 'x' needs to be positioned */
.select2.select2-container--default .select2-selection--multiple .select2-selection__clear {
	line-height: calc(var(--font-line-height-base) + var(--field-padding));
	margin-right: 0px;
	margin-top: calc(var(--gutter-spacing) * 0.5 - 1px);
}

body .select2-hidden-accessible {
	top: 0px;
	left: 0px;
}

/*The dropdown */
body .select2-container--default .select2-search--dropdown .select2-search__field, .select2-dropdown {
	border-color: var(--border-colour);
}

/* Selected item has a background colour in the dropdown, need to make this the same as the theme */
body .select2-container--default .select2-results__option[aria-selected=true] {
	background-color: var(--background-colour-medium);
}

/* Highlighted selection */
body .select2-container--default .select2-results__option--highlighted[aria-selected] {
	background-color: var(--primary-accent-colour);
	color: var(--font-colour-light);
}

/* Allow for large sized fields for where we may have a so many selections that it may spill onto multiple lines */

body .autocomplete-2-lines .select2-selection.select2-selection--multiple {
	height: calc(var(--font-line-height-base) * 2 + var(--field-padding) * 3.5)
}

body .autocomplete-3-lines .select2-selection.select2-selection--multiple {
	height: calc(var(--font-line-height-base) * 3 + var(--field-padding) * 4.75)
}

body .autocomplete-4-lines .select2-selection.select2-selection--multiple {
	height: calc(var(--font-line-height-base) * 4 + var(--field-padding) * 6)
}

body .autocomplete-5-lines .select2-selection.select2-selection--multiple {
	height: calc(var(--font-line-height-base) * 5 + var(--field-padding) * 7.5)
}

/*
	File Upload field
*/

.file-input {
	position: relative;
}

.file-input input {
	width: 0.1px;
	height: 0.1px;
	opacity: 0;
	overflow: hidden;
	position: absolute;
	z-index: -1;
	padding: 0px
}

.file-input label {
	display: block;

}

.grouped-submit .file-input label {
	border-radius: var(--border-radius) 0 0 var(--border-radius);
}
.grouped-submit input[type="submit"] {
	border-radius: 0 var(--border-radius) var(--border-radius) 0;
	border-left-width: 0;
}


/*
	Alerts Customization
*/
.alertify-notifier .ajs-message {
	text-shadow: none;
	border-color: var(--border-colour);
	border-radius: var(--border-radius);
	background-color: var(--info-colour-background);
	color: var(--font-colour);
}

.alertify-notifier .ajs-message.ajs-success,
.alertify-notifier .ajs-message.ajs-warning,
.alertify-notifier .ajs-message.ajs-error {
	text-shadow: none;
	border-color: var(--border-colour);
	border-radius: var(--border-radius);
}

.alertify-notifier .ajs-message.ajs-success {
	background-color: var(--success-colour-background);
	color: var(--font-colour-light)
}

.alertify-notifier .ajs-message.ajs-warning {
	background-color: var(--warning-colour-background);
}

.alertify-notifier .ajs-message.ajs-error {
	background-color: var(--error-colour-background);
	color: var(--font-colour-light)
}

/*
	Responsive video embed
*/

.responsive-video-embed {
	overflow: hidden;
	padding-bottom: 56.25%;
	position: relative;
	height: 0;
}

.responsive-video-embed iframe {
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	position: absolute;
}

/*
	Cards
*/
.card {
	width: 100%;
	border: 1px solid var(--border-colour);
	border-radius: var(--border-radius);
	text-align: center;
	height: fit-content;
	align-self: center;
	box-sizing: border-box;
}

.card-header, .card-footer {
	background-color: var(--background-colour-medium);
}

.card > * {
	padding: var(--gutter-spacing);
}

.card-image {
	padding-bottom: 56.25%;
	position: relative;
	display: block;
	height: 0;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
	overflow: hidden;
}

.card-image.contain-image {
	background-size: contain;
}

.card-image-inlay {
	position: absolute;
	height: 100%;
	width: 100%;
	display: grid;
	place-items: center;
}

.store-card {
	display: block;
	user-select: none;
}

.store-card .card-footer {
	background-color: var(--background-colour);
	padding: var(--gutter-spacing);
	display: grid;
	grid-row-gap: calc(var(--gutter-spacing) * 0.75);
}

.store-card {
	color: var(--font-color);
	cursor: pointer;
	outline: 1px solid var(--background-colour-dark);
}

a.store-card .pseudo-link {
	color: var(--primary-accent-colour);
}

a.store-card:hover .pseudo-link {
	color: var(--font-colour-accent-darken);
}

.store-card:hover .card-footer, .store-card-input:checked + label .card-footer {
	box-shadow: 0px 1px var(--background-colour-dark) inset;
}

.store-card:hover, .store-card-input:checked + label {
	outline: 1px solid var(--background-colour-dark);
	box-shadow: 0px 0px 3px 3px var(--drop-shadow);
}

.store-card .card-icon {
	display: grid;
	position: absolute;
	place-items: center;
	width: 100%;
	height: 100%;
	padding: var(--gutter-spacing);
	box-sizing: border-box;
}

.store-card .card-icon svg {
	height: 100%;
	width: 100%;
	fill: var(--font-colour);
}

.corner-caption {
	--text-width: 70px;
	--text-height: calc(1.3rem * 2);

	background-color: var(--primary-accent-colour);
	transform-origin: 50% 0%; 
	transform: translateX(calc(var(--text-width) / 2 + var(--text-height))) rotate(45deg);
	top: 0px;
	right: 0px;
	color: var(--font-colour-light);
	width: var(--text-width);
	height: var(--text-height);
	position: absolute;
	display: grid;
	align-content: center;
	text-align: center;
	font-family: var(--secondary-font);
	line-height: 1.2rem;
	font-size: 1.2rem;
	padding-top: calc(var(--text-width) * 0.5);
	padding-left: var(--text-height);
	padding-right: var(--text-height);
}

.corner-caption-small {
	--corner-size: 25px;
	line-height: 1.2em;
}

/* For generic containers that hold the corner caption*/
.corner-caption-container {
	position: relative;
	overflow: hidden;
}

.corner-caption-container label {
	height: 100%;
	width: 100%;
	display: block;

}

.corner-caption-container .store-card-input:checked + label {
	box-shadow: 0px 0px 1px 1px var(--drop-shadow) inset;
}

.corner-caption.secondary {
	background-color: var(--secondary-accent-colour);
}

.store-card-input {
	display: none;
}

.store-card-input + label .corner-caption.input-select-display {
	display: none;
}

.store-card-input:checked + label .corner-caption.input-select-display {
	display: grid;
}

/*
	Small Banner
*/

.small-banner {
	padding: calc(var(--gutter-spacing) * 2);
	column-gap: calc(var(--gutter-spacing) * 5);
	margin-top: calc(var(--gutter-spacing) * 2);
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	background-color: var(--background-colour-dark);
	color: var(--font-colour-light);
}

/*
	Carousel
*/
.carousel * {box-sizing:border-box}

/* Slideshow container */
.carousel {
	position: relative;
	margin: auto;
	width: 100%;
	height: 175px;
	overflow: hidden;
}

/* Hide the images by default */
.carousel .slide {
	display: none;
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

/* The dots/bullets/indicators */
.carousel .dot {
	cursor: pointer;
	height: 15px;
	width: 15px;
	margin: 0 2px;
	background-color: var(--background-colour-medium);
	border-radius: 50%;
	display: inline-block;
	transition: background-color 0.6s ease;
}

.carousel .active, .carousel .dot:hover {
	background-color: var(--background-colour-dark);
}

.carousel .dots {
	margin-left: auto;
	margin-right: auto;
	left: 0;
	right: 0;
    position: absolute;
    bottom: var(--gutter-spacing);
}

/* Fading animation */
.carousel .fade {
	-webkit-animation-name: fade;
	-webkit-animation-duration: 1.5s;
	animation-name: fade;
	animation-duration: 1.5s;
}

@-webkit-keyframes fade {
	from {opacity: .4}
	to {opacity: 1}
}

@keyframes fade {
	from {opacity: .4}
	to {opacity: 1}
}

.carousel a.banner-link {
	position: absolute;
	height: 100%;
	width: 100%;
}

#content-banner .carousel {
	margin-top: calc(2 * var(--gutter-spacing));
}

/* Image Gallery */
.image-gallery {
	position: relative;
	display: grid;
	grid-template-columns: 100px 1fr;
	grid-template-areas: "thumbnails images";
	height: 400px;
}

.image-gallery .thumbnails {
	display: grid;
	grid-auto-rows: min-content;
	grid-template-columns: 1fr;
	overflow: auto;
	gap: var(--gutter-spacing);
	padding-right: var(--gutter-spacing);
}

.image-gallery .thumbnails img {
	width: 100%;
	cursor: pointer;
	filter: brightness(.90);
	border: 1px solid transparent;
}

.image-gallery .thumbnails img:hover {
	filter: none;
}

.image-gallery .thumbnails img.active {
	filter: none;
	border: 1px solid var(--border-colour);
}

.image-gallery .images {
	grid-area: images;
	background-color: var(--background-colour-dark);
}

.image-gallery .images div {
	display: none;
	height: 100%;
	width: 100%;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

.image-gallery .images div.active {
	display: block;
}



/* Inline Responsive Calendar */
.inline-responsive-datepicker .flatpickr-calendar {
	--max-width: 350px; 
    --width: 99%;
    font-size: 12px;
    line-height: 18px;
	width: var(--width);
	max-width: var(--max-width);
	left: 1px;
	margin-top: 8px;
	top: -6px;
	margin-bottom: 2px;
}

.columnize .inline-responsive-datepicker {
    grid-row: span 5;
}

.inline-responsive-datepicker .flatpickr-days {
	width: var(--width);
	max-width: var(--max-width);
}

.inline-responsive-datepicker .dayContainer {
    width: var(--width);
    min-width: var(--width);
    max-width: var(--max-width);
}

.inline-responsive-datepicker .flatpickr-day {
    max-width: calc(var(--max-width) / 7);
    height: 35px;
    line-height: 35px;
}

.inline-responsive-datepicker .flatpickr-input {
	display: none;
}

.inline-responsive-datepicker .flatpickr-day.today {
	border-width: 0px;
}

/* Tooltips */


*[data-tooltip] {
	cursor: pointer;
	font-size: 1.2em;
}

.popper,
.tooltip {
	position: absolute;
	background: var(--background-colour);
	color: var(--font-colour);
	width: 150px;
	border-radius: 3px;
	box-shadow: 0 0 2px rgba(0,0,0,0.5);
	padding: 10px;
	text-align: center;
}

.popper .popper__arrow,
.tooltip .tooltip-arrow {
	width: 0;
	height: 0;
	border-style: solid;
	position: absolute;
	margin: 5px;
}

.tooltip .tooltip-arrow,
.popper .popper__arrow {
	border-color: var(--border-colour);
}

.popper[x-placement^="top"],
.tooltip[x-placement^="top"] {
	margin-bottom: 5px;
}

.popper[x-placement^="top"] .popper__arrow,
.tooltip[x-placement^="top"] .tooltip-arrow {
	border-width: 5px 5px 0 5px;
	border-left-color: transparent;
	border-right-color: transparent;
	border-bottom-color: transparent;
	bottom: -5px;
	left: calc(50% - 5px);
	margin-top: 0;
	margin-bottom: 0;
}

.popper[x-placement^="bottom"],
.tooltip[x-placement^="bottom"] {
	margin-top: 5px;
}

.tooltip[x-placement^="bottom"] .tooltip-arrow,
.popper[x-placement^="bottom"] .popper__arrow {
	border-width: 0 5px 5px 5px;
	border-left-color: transparent;
	border-right-color: transparent;
	border-top-color: transparent;
	top: -5px;
	left: calc(50% - 5px);
	margin-top: 0;
	margin-bottom: 0;
}

.tooltip[x-placement^="right"],
.popper[x-placement^="right"] {
	margin-left: 5px;
}

.popper[x-placement^="right"] .popper__arrow,
.tooltip[x-placement^="right"] .tooltip-arrow {
	border-width: 5px 5px 5px 0;
	border-left-color: transparent;
	border-top-color: transparent;
	border-bottom-color: transparent;
	left: -5px;
	top: calc(50% - 5px);
	margin-left: 0;
	margin-right: 0;
}

.popper[x-placement^="left"],
.tooltip[x-placement^="left"] {
	margin-right: 5px;
}

.popper[x-placement^="left"] .popper__arrow,
.tooltip[x-placement^="left"] .tooltip-arrow {
	border-width: 5px 0 5px 5px;
	border-top-color: transparent;
	border-right-color: transparent;
	border-bottom-color: transparent;
	right: -5px;
	top: calc(50% - 5px);
	margin-left: 0;
	margin-right: 0;
}

/* end tooltips */

/* Loader animation */
.saving span {
	animation-name: blink;
	animation-duration: 1.4s;
	animation-iteration-count: infinite;
	animation-fill-mode: both;
}

.saving span:nth-child(2) {
	animation-delay: .2s;
}

.saving span:nth-child(3) {
	animation-delay: .4s;
}

@keyframes blink {
	0% {
		opacity: .2;
	}
	20% {
		opacity: 1;
	}
	100% {
		opacity: .2;
	}
}

/*
	Collapsible Data

	NOTE: The column widths should be determined by the individual stylesheets, we'll have a default of 10 columns of the same size
*/

.collapsible-data-headings, .collapsible-data-item {
	display: grid;
	width: 100%;
	grid-template-columns: repeat(10, 1fr);
	grid-template-rows: min-content;
	grid-auto-flow: column;
	align-items: center;
	border-bottom: 1px solid var(--border-colour);
}

.collapsible-data-headings>div, .collapsible-data-item>div {
	padding: var(--gutter-spacing);
}

.collapsible-data-headings div {
	font-weight: bold;
	background-color: var(--background-colour-medium);
}

.collapsible-data-item>div>div:first-of-type {
	display: none;
}

