/* Pico Overrides */
:root {
	--pico-typography-spacing-vertical: 10px;
	/* --pico-font-size: 99%; */
	--pico-font-size: 18px;
	--pico-form-element-spacing-vertical: 12px;
	--pico-form-element-spacing-horizontal: 12px;
	--pico-spacing: 12px;
}


/* Grid extensions */

.grid {
	row-gap: 0;
	column-gap: 0;
}

.grid-1 {
	grid-template-columns: repeat(1, 1fr);
}

.grid-2 {
	grid-template-columns: repeat(2, 1fr);
}

.grid-3 {
	grid-template-columns: repeat(3, 1fr);
}

.grid-4 {
	grid-template-columns: repeat(4, 1fr);
}

.grid-5 {
	grid-template-columns: repeat(5, 1fr);
}

.grid-6 {
	grid-template-columns: repeat(6, 1fr);
}

.grid-7 {
	grid-template-columns: repeat(7, 1fr);
}

.grid-8 {
	grid-template-columns: repeat(8, 1fr);
}

.grid-9 {
	grid-template-columns: repeat(9, 1fr);
}

.grid-10 {
	grid-template-columns: repeat(10, 1fr);
}

.grid-11 {
	grid-template-columns: repeat(11, 1fr);
}

.grid-12 {
	grid-template-columns: repeat(12, 1fr);
}

.grid-span-2 {
	grid-column: span 2;
}

.grid-span-3 {
	grid-column: span 3;
}

.grid-span-4 {
	grid-column: span 4;
}

.grid-span-5 {
	grid-column: span 5;
}

.grid-span-6 {
	grid-column: span 6;
}

.grid-span-7 {
	grid-column: span 7;
}

.grid-span-8 {
	grid-column: span 8;
}

.grid-span-9 {
	grid-column: span 9;
}

.grid-span-10 {
	grid-column: span 10;
}

.grid-span-11 {
	grid-column: span 11;
}

/* Height and width */

.full-height {
	height: 100%;
}

.full-width {
	width: 100%;
}

.full-viewport-width {
	width: 100vw;
}

.full-viewport-height {
	height: 100vh;
}

/* Forms */

.form-wrapper {
	width: 400px;
	margin-left: auto;
	margin-right: auto;
}

input:not([type=checkbox], [type=radio]),
select,
textarea {
	margin-bottom: 9px;
}

label {
	font-size: 0.90em;
	margin-bottom: 2px;
}

/* Hide Google ReCaptcha Badge */

.grecaptcha-badge {
	visibility: hidden !important;
}


.recaptcha-note {
	font-size: 13px;
	margin-bottom: 1rem;
	opacity: 0.75;
}

.recaptcha-note a:link,
.recaptcha-note a:visited,
.recaptcha-note a:hover,
.recaptcha-note a:active {
	color: inherit;
}

/* Centering */

.center-both {
	align-items: center;
	justify-content: center;
}

.center-x {
	justify-content: center;
}

.center-y {
	align-items: center;
}

.text-center {
	text-align: center;
}

.text-right {
	text-align: right;
}

.text-left {
	text-align: left;
}

.background-cover {
	background-size: cover;
}

.background-contain {
	background-size: contain;
}

/* input[type='submit'] {
	margin-bottom: 0.75rem;
} */

.overheading {
	font-size: 0.75rem;
	text-transform: uppercase;
	font-weight: 300;
	letter-spacing: 0.25rem;
	margin-bottom: 0.5rem;
}

p.lead {
	font-size: 1.1rem;
	margin-top: 1rem;
	margin-bottom: 1rem;
}

p.or {
	text-align: center;

}

.large {
	font-size: 3rem;
}

/* Positioning utilities */

.position-relative {
	position: relative;
}

.position-absolute {
	position: absolute;
}

.position-static {
	position: static;
}

.position-sticky {
	position: sticky;
}

.position-fixed {
	position: fixed;
}

/* Overflow */

.overflow-hidden {
	overflow: hidden;
}

.overflow-scroll {
	overflow: scroll;
}

.overflow-x-hidden {
	overflow-x: hidden;
}

.overflow-y-hidden {
	overflow-y: hidden;
}

.overflow-x-scroll {
	overflow-x: scroll;
}

.overflow-y-scroll {
	overflow-y: scroll;
}

/* Cursor */

/* Standard Cursors */
.cursor-default {
	cursor: default;
}

.cursor-pointer {
	cursor: pointer;
}

.cursor-wait {
	cursor: wait;
}

.cursor-text {
	cursor: text;
}

.cursor-help {
	cursor: help;
}

/* Resize Cursors */
.cursor-resize-all {
	cursor: all-scroll;
}

.cursor-resize-ns {
	cursor: ns-resize;
}

.cursor-resize-ew {
	cursor: ew-resize;
}

.cursor-resize-nwse {
	cursor: nwse-resize;
}

.cursor-resize-nesw {
	cursor: nesw-resize;
}

/* Not-Allowed and None Cursors */
.cursor-not-allowed {
	cursor: not-allowed;
}

.cursor-none {
	cursor: none;
}

/* Custom Cursors */
.cursor-zoom-in {
	cursor: zoom-in;
}

.cursor-zoom-out {
	cursor: zoom-out;
}

.cursor-grab {
	cursor: grab;
}

.cursor-grabbing {
	cursor: grabbing;
}

.cursor-crosshair {
	cursor: crosshair;
}

/* Display */

/* Basic Display Properties */
.display-block {
	display: block;
}

.display-inline {
	display: inline;
}

.display-inline-block {
	display: inline-block;
}

.display-flex {
	display: flex;
}

.display-inline-flex {
	display: inline-flex;
}

.display-grid {
	display: grid;
}

.display-inline-grid {
	display: inline-grid;
}

.display-none {
	display: none;
}

/* Table Display Properties */
.display-table {
	display: table;
}

.display-table-row {
	display: table-row;
}

.display-table-cell {
	display: table-cell;
}

.display-table-caption {
	display: table-caption;
}

/* List Item Display */
.display-list-item {
	display: list-item;
}

/* Additional Box Model Display Types */
.display-box {
	display: box;
}

.display-inline-box {
	display: inline-box;
}

/* Padding and margins */

.padding {
	padding: 1rem;
}

.padding-y {
	padding-top: 1rem;
	padding-bottom: 1rem;
}

.padding-x {
	padding-left: 1rem;
	padding-right: 1rem;
}

.no-padding {
	padding: 0;
}

.padding-bottom {
	padding-bottom: 1rem;
}

.padding-top {
	padding-top: 1rem;
}

.padding-left {
	padding-left: 1rem;
}

.padding-right {
	padding-right: 1rem;
}

.margin {
	margin: 1rem;
}

.no-margin {
	margin: 0;
}

.margin-bottom {
	margin-bottom: 1rem;
}

.margin-top {
	margin-top: 1rem;
}

.margin-left {
	margin-left: 1rem;
}

.margin-right {
	margin-right: 1rem;
}


.gap {
	gap: 1rem;
}

/* Flexbox
// ================================================== */
.flex {
	display: flex;
}

.inline-flex {
	display: inline-flex;
}

/* Flex direction */

.flex-direction-row,
.direction-row {
	flex-direction: row;
}

/* Default */
.flex-direction-row-reverse,
.direction-row-reverse {
	flex-direction: row-reverse;
}

.flex-direction-column,
.direction-column {
	flex-direction: column;
}

.flex-direction-column-reverse,
.direction-column-reverse {
	flex-direction: column-reverse;
}

/* Flex wrap */
.flex-wrap-nowrap,
.nowrap {
	flex-wrap: nowrap;
}

/* Default */
.flex-wrap-wrap,
.wrap {
	flex-wrap: wrap;
}

.flex-wrap-wrap-reverse,
.wrap-reverse {
	flex-wrap: wrap-reverse;
}

/* Justify content */
.justify-end {
	justify-content: flex-end;
}

.justify-start {
	justify-content: flex-start;
}

/* Default */
.justify-center {
	justify-content: center;
}

.justify-space-around {
	justify-content: space-around;
}

.justify-space-between {
	justify-content: space-between;
}

/* Align items */
.align-items-start {
	align-items: flex-start;
}

.align-items-center {
	align-items: center;
}

.align-items-end {
	align-items: flex-end;
}

.align-items-stretch {
	align-items: stretch;
}

/* Default */
.align-items-baseline {
	align-items: baseline;
}

/* Flex grow */
.flex-grow-0,
.grow-0 {
	flex-grow: 0;
}

/* Default */
.flex-grow-1,
.grow-1 {
	flex-grow: 1;
}

/* Flex shrink */
.flex-shrink-0,
.shrink-0 {
	flex-shrink: 0;
}

.flex-shrink-1,
.shrink-1 {
	flex-shrink: 1;
}

/* Default */

/* Flex basis */
.flex-basis-auto,
.basis-auto {
	flex-basis: auto;
}

/* Default */
.flex-basis-0,
.basis-0 {
	flex-basis: 0;
}

/* Align self */
.align-self-auto {
	align-self: auto;
}

/* Default */
.align-self-start {
	align-self: flex-start;
}

.align-self-center {
	align-self: center;
}

.align-self-end {
	align-self: flex-end;
}

.align-self-stretch {
	align-self: stretch;
}

.align-self-baseline {
	align-self: baseline;
}

/*  */

.third {
	width: 33.3333%;
}

.two-thirds {
	width: 66.6666%;
}

.quarter {
	width: 25%;
}

.half {
	width: 50%;
}

.three-quarters {
	width: 75%;
}

.narrow {
	width: 33%;
	margin-left: auto;
	margin-right: auto;
}

.margin-left-auto {
	margin-left: auto;
}

.margin-right-auto {
	margin-right: auto;
}

/* Faq */

.faq summary {
	font-weight: 600;
	font-size: 1.25rem;
}

/* Video */
.video-container {
	position: relative;
	padding-bottom: 56.25%;
	width: 100%;
	height: 0;
	overflow: hidden;
	display: block;
}

.video-container iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.video-container.vimeo iframe {
	width: calc(100% - 1px);
	/* Reduce width by 1px */
}

.material-icons {
	vertical-align: middle;
	margin-top: -4px;
	font-size: 24px;
	width: 1em;
}

.loading-indicator {
	display: none;
	position: absolute;
	background-color: red;
}

.htmx-request .loading-indicator {
	display: inline;
}

.htmx-request.loading-indicator {
	display: inline;
}

.button,
[role='button'] {
	margin-top: 0;
}

.overheading {
	font-size: 0.75rem;
	text-transform: uppercase;
	font-weight: 300;
	letter-spacing: 0.25rem;
	margin-bottom: 0.5rem;
}

h2.large {
	font-size: 3rem;
}

/* Site header */
.site-header {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	padding: 1rem;
	padding-top: 0;
	padding-bottom: 0;
}

.logo {
	align-items: center;
	display: flex;
}

@media (max-width: 576px) {
	.site-header {
		flex-direction: column;
		padding-top: 1rem;
		padding-bottom: 1rem;
	}

	.logo {
		width: 100%;
		justify-content: center;
	}
}

/* Animate */

[data='animate'] {
	visibility: hidden;
}

/* Password field */

.password-container {
	position: relative;
	display: flex;
}

.password-container input {
	width: 100%;
	padding-right: 40px;
}

.toggle-password {
	position: absolute;
	/* background-color: red; */
	top: var(--pico-form-element-spacing-vertical);
	right: var(--pico-form-element-spacing-horizontal);
	/* transform: translateY(-50%); */
	cursor: pointer;
	width: 25px;

}

.password-requirements {
	list-style: none;
	padding: 0;
	font-size: 13px !important;
	line-height: 1.4;

}

.password-requirements li {
	color: grey;
	display: inline-block;
	margin-right: 3px;
}

.password-requirements li i {
	display: none;
	font-size: 16px;
	margin-top: 1px;
}

.password-requirements li.valid {
	color: black;

}

.password-requirements li.valid i {
	display: inline-block;
	vertical-align: top;
	margin-right: 1px;
	line-height: 1;
}

.password-requirements li.valid::before {
	/* content: '✔'; */
}

/* Sign up */

.signin-option-buttons-wrapper {
	margin-bottom: .75rem;
}

.signin-option-button {
	display: block;
	width: 100%;
	margin-bottom: .25rem;
	background-color: white;
	border: 1px solid var(--pico-form-element-border-color);
	color: #373c44;
	font-size: 18px;

}

.signin-option-button div {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
	/* width: 250px; */
}

.signin-option-button img {
	height: 25px;
	display: inline-block;
	vertical-align: top;
	margin-right: 5px;

}

.signin-option-button:hover {
	border-color: blue;
}


/* Tabs */

.tab {
	display: inline-block;
	padding: 10px 20px;
	margin-right: 5px;
	background-color: #f1f1f1;
	cursor: pointer;
}

.tab.active {
	background-color: #ddd;
}

.tab-content {
	display: none;
	padding: 20px;
	border: 1px solid #ddd;
	margin-top: 10px;
}

.tab-content.active {
	display: block;
}



/* Wizard */
.progress-container {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(0%, 1fr));
	/* grid-template-columns: 1fr; */

	align-items: center;
	position: relative;
	margin: 20px;
}

.progress-step {
	text-align: center;
	position: relative;

}



.progress-step-circle {
	background-color: white;
	width: 30px;
	height: 30px;
	background-color: var(--pico-form-element-border-color);
	border-radius: 50%;
	display: inline-flex;
	margin-bottom: 10px;
	font-size: 14px;
	font-weight: bold;
	/* vertical-align: middle; */
	align-items: center;
	justify-content: center;
	overflow: hidden;
	position: relative;
	letter-spacing: 0;
}

.progress-step-circle a,
.progress-step-circle div {
	width: 100%;
	height: 100%;
	vertical-align: middle;
	text-align: center;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: white;
	text-decoration: none;
	/* margin-right: 1px; */
	margin-bottom: 1px;
}

.progress-step.pending {
	color: #888888;
}

.progress-step.pending .progress-step-circle {
	border-color: var(--pico-form-element-border-color);

}

.progress-step.active .progress-step-circle {}

.progress-step.completed .progress-step-circle,
.progress-step.active .progress-step-circle {
	background-color: var(--pico-primary-background);
	color: white;
}

.progress-step-label {
	margin-top: 10px;
}

/* .progress-step:not(:last-child)::after {
	content: '';
	position: absolute;
	top: 15px;
	right: -50%;
	width: 100%;
	height: 2px;
	background-color: #3498db;
	z-index: -1;
}

.progress-step.active:not(:last-child)::after {
	background-color: #888888 !;
} */

.progress-step:not(:first-child)::before {
	content: '';
	position: absolute;
	top: 15px;
	left: -50%;
	width: 100%;
	height: 2px;
	background-color: var(--pico-form-element-border-color);
	z-index: -1;
}

.progress-step.active:not(:first-child)::before {
	background-color: var(--pico-primary-background);
}



/* Breakpoints */
/*
Breakpoint			Class infix	Dimensions
Extra small			None		<576px
Small				sm			≥576px
Medium				md			≥768px
Large				lg			≥992px
Extra large			xl			≥1200px
Extra extra large	xxl			≥1400px
*/

/* Styles for <576px */
@media (max-width: 575.98px) {
	/* Your styles for extra small screens ONLY go here */


}

/* Styles for ≥576px to <768px */
@media (min-width: 576px) and (max-width: 767.98px) {
	/* Your styles for small devices ONLY go here */


}

/* Styles for ≥576px and up */
@media (min-width: 576px) {
	/* Your styles for small devices AND UP go here */


}

/* Styles for ≥768px to <992px */
@media (min-width: 768px) and (max-width: 991.98px) {
	/* Your styles for medium devices ONLY go here */
}

/* Styles for ≥768px and up */
@media (min-width: 768px) {
	/* Your styles for medium devices AND UP go here */


}

/* Styles for ≥992px to <1200px */
@media (min-width: 992px) and (max-width: 1199.98px) {
	/* Your styles for large devices ONLY go here */


}

/* Styles for ≥992px and up */
@media (min-width: 992px) {
	/* Your styles for large devices AND UP go here */
}

/* Styles for ≥1200px to <1400px */
@media (min-width: 1200px) and (max-width: 1399.98px) {
	/* Your styles for extra large devices ONLY go here */


}

/* Styles for ≥1200px and up */
@media (min-width: 1200px) {
	/* Your styles for extra large devices AND UP go here */


}

/* Styles for ≥1400px and up */
@media (min-width: 1400px) {
	/* Your styles for extra extra large devices AND UP go here */


}