
:root {

	/* Translate BS SCSS variables to CSS */
	--bs-border-radius: 0.375rem;    /* (bs default, remove at 5.2) */
	--bs-border-radius-sm: 0.25rem;  /* (bs default, remove at 5.2) */
	--bs-border-radius-md: 0.375rem; /* (bs default, remove at 5.2) */
	--bs-border-radius-lg: 0.5rem;   /* (bs default, remove at 5.2) */
	--bs-border-radius-xl: 1rem;     /* (bs default, remove at 5.2) */
	--bs-border-radius-2xl: 2rem;    /* (bs default, remove at 5.2) */
	--bs-border-radius-pill: 50rem;  /* (bs default, remove at 5.2) */
	--bs-border-radius-limit: 1.2rem;

	--bs-spacer-1: 0.25rem; /* (bs default, remove at 5.2) ? */
	--bs-spacer-2: 0.5rem;  /* (bs default, remove at 5.2) ? */
	--bs-spacer-3: 1rem;    /* (bs default, remove at 5.2) ? */
	--bs-spacer-4: 1.5rem;  /* (bs default, remove at 5.2) ? */
	--bs-spacer-5: 3rem;    /* (bs default, remove at 5.2) ? */

	--bs-large-font-size: 1.125rem; /* (bs default, remove at 5.2) ? */
	--bs-small-font-size: .875rem;  /* (bs default, remove at 5.2) ? */
	--bs-sub-sup-font-size: .75rem; /* (bs default, remove at 5.2) ? */

	--bs-border-color: #dee2e6; /* (bs default, remove at 5.2) */

}

html {
	height: 100%;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	scroll-behavior: smooth;
	scroll-padding-top: calc( var( --bs-spacer-5 ) * 2 );
}
body,
#main-content {
	min-height: 100%;
}
b, strong {
	font-weight: 700; /* Because Bootstrap uses "bolder" */
}

/**
 * Increase the space between a container and their parent
 */

.container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
	padding-right: var( --bs-spacer-3 );
	padding-left: var( --bs-spacer-3 );
}
@media ( min-width: 1200px ) {
	.container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
		padding-right: var( --bs-spacer-5 );
		padding-left: var( --bs-spacer-5 );
	}
}
.website-wrapper .container, .website-wrapper .container-fluid, .website-wrapper .container-lg, .website-wrapper .container-md,
.website-wrapper .container-sm, .website-wrapper .container-xl, .website-wrapper .container-xxl {
	padding-right: calc( var( --bs-spacer-3 ) * 6.25 );
	padding-left: calc( var( --bs-spacer-3 ) * 6.25 );
}

/**
 * Conditional containers
 */
@media ( max-width: 1699.98px ) {
	.container--xl {
		padding-right: 0 !important;
		padding-left: 0 !important;
	}
}

/**
 * Stretch the last content section (contentblock) to the bottom of the page if the page is shorter than 100vh
 */

.page-content section:last-child {
	flex: 1;
}

/**
 * Reusable collapse checkbox control
 */

.level-collapse-checkbox,
.level-collapse-checkbox:checked ~ .level-collapse-target,
.level-collapse-checkbox:not( :checked ) ~ .level-collapse-target-inverse {
	display: none;
}

/**
 * Theme-agnostic utility classes
 */

@media ( min-width: 576px ) {
	.w-sm-auto{
		width: auto !important;
	}
}
@media ( min-width: 992px ) {
	.w-lg-auto {
		width: auto !important;
	}
	.h-lg-100 {
		height: 100% !important;
	}
}
.max-width-thumbnail {
	max-width: 120px;
}
.max-width-md {
	max-width: 768px;
}
.max-width-lg {
	max-width: 992px;
}

.m-n1px {
	margin: -1px;
}
.mt-n5 {
	margin-top: calc( var( --bs-spacer-5 ) * -1 ) !important;
}
.mt-n2 {
	margin-top: calc( var( --bs-spacer-2 ) * -1 ) !important;
}
.mb-n2 {
	margin-bottom: calc( var( --bs-spacer-2 ) * -1 ) !important;
}
.mb-n3 {
	margin-bottom: calc( var( --bs-spacer-3 ) * -1 ) !important;
}
.mb-n5 {
	margin-bottom: calc( var( --bs-spacer-5 ) * -1 ) !important;
}
.me-n2 {
	margin-right: calc( var( --bs-spacer-2 ) * -1 );
}
.mb-0-last-child > *:last-child {
	margin-bottom: 0 !important;
}
@media ( min-width: 1200px ) { /* To match with container-xxl breakpoint */
	.px-1200-0 {
		padding-right: 0 !important;
		padding-left: 0 !important;
	}
}

.z-index-1 {
	z-index: 1 !important;
}
.z-index-2 {
	z-index: 2 !important;
}
.z-index-3 {
	z-index: 3 !important;
}
.z-index-4 {
	z-index: 4 !important;
}

.object-fit,
.object-fit-cover {
	object-fit: cover;
	object-position: center;
}
.object-fit-contain { /* //todo Native since bootstrap 5.3: https://getbootstrap.com/docs/5.3/utilities/object-fit/ */
	object-fit: contain;
}
.object-position-top {
	object-position: top;
}

.w-0 {
	width: 0;
}

.min-w-0 {
	min-width: 0;
}

@media ( min-width: 992px ) {
	.min-h-lg-md {
		min-height: 768px;
	}
}

.text-white a:not( .btn ),
.text-white a:not( .btn ):hover,
.text-white a:not( .btn ):focus,
.text-white a:not( .btn ):active {
	color: inherit;
}

.text-white li:before {
	background: var( --bs-white ) !important;
}

.text-cta {
	color: var( --bs-cta ) !important;
}
.text-link {
	color: var( --bs-link-color ) !important;
}
.text-truncate-2,
.text-truncate-3,
.text-truncate-4 {
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	max-height: calc( ( 1em * var( --bs-body-line-height ) ) * 2 ); /* Hack to support ios/safari */
}
.text-truncate-3 {
	-webkit-line-clamp: 3;
	max-height: calc( ( 1em * var( --bs-body-line-height ) ) * 3 ); /* Hack to support ios/safari */
}
.text-truncate-4 {
	-webkit-line-clamp: 4;
	max-height: calc( ( 1em * var( --bs-body-line-height ) ) * 4 ); /* Hack to support ios/safari */
}

.z-index-fixed {
	z-index: 1030;
}
.z-index-toasts {
	z-index: 1056; /* Above modal underlays (1055) */
}

.clear-both {
	clear: both;
}

/* Prevent stacking container paddings on containers that might be children of earlier containers */
.container-xxl .container--prevent-dupe {
	padding-right: 0 !important;
	padding-left: 0 !important;
}

@media ( min-width: 992px ) {
	.position-lg-static {
		position: static !important;
	}
}

@media ( min-width: 992px ) {
	.overflow-lg-visible {
		overflow: visible !important;
	}
}

.bg-cta {
	background: rgba( var( --bs-cta-rgb ), var( --bs-bg-opacity ) ) !important;
}
.bg-light-darker {
	background-color: var( --bs-light-darker ) !important;
}
.bgc-unset {
	background-color: unset !important;
}
@media ( min-width: 992px ) {
	.bg-lg-light {
		background: var( --bs-light ) !important;
	}
}

.cursor-default {
	cursor: default;
}
.cursor-pointer {
	cursor: pointer;
}

@media ( max-width: 991.99px ) {
	body.modal-open-md {
		overflow: hidden;
		padding-right: 0;
	}
}

.ajax--block-me-while-loading {
	transition: opacity 0.15s;
}
.ajax--loading .ajax--block-me-while-loading {
	opacity: 0.5;
	pointer-events: none;
}

.thumbnail {
	width: 150px;
	height: 150px;
	object-fit: cover;
}

.bg-cover {
	background-size: cover;
	background-position: center;
}

.ratio-video {
	/* padding: 56.25% 0 0 0; */             /* 4:3 */
	padding: calc( ( 100% / 3 ) * 2 ) 0 0 0; /* 3:2 */
}
.ratio-3x2 {
	--bs-aspect-ratio: calc( ( 100% / 3 ) * 2 );
}

.hide-when-empty:empty {
	display: none !important;
}

.media-wrapper {
	max-width: 778px;
	margin-right: auto;
	margin-left: auto;
	width: 100%;
}

.badge {
	cursor: default;
	text-transform: uppercase; /* //todo Based on whitelabel */
}
.badge a {
	color: inherit;
	text-decoration: none;
}

.rounded-pill {
	border-radius: var( --bs-border-radius-pill );
}
.rounded-top-0 { /* //todo Native since BS 5.3 */
	border-top-right-radius: 0 !important;
	border-top-left-radius: 0 !important;
}
.rounded-bottom-0 { /* //todo Native since BS 5.3 */
	border-bottom-right-radius: 0 !important;
	border-bottom-left-radius: 0 !important;
}
.rounded-end-0 { /* //todo Native since BS 5.3 */
	border-top-right-radius: 0 !important;
	border-bottom-right-radius: 0 !important;
}
.rounded-end-0 { /* //todo Native since BS 5.3 */
	border-top-right-radius: 0 !important;
	border-bottom-right-radius: 0 !important;
}
.rounded-top-end-0 {
	border-top-right-radius: 0 !important;
}
.rounded-bottom-start-0 {
	border-bottom-left-radius: 0 !important;
}

/**
 * Responsive header sizes
 */
@media ( min-width: 992px ) {
	.h-lg-2 {
		font-size: var( --bs-h2-font-size ) !important;
	}
	.h-lg-3 {
		font-size: var( --bs-h3-font-size ) !important;
	}
}

@media ( min-width: 992px ) {
	.bg-lg-white {
		background: var( --bs-white );
	}
}

/*
* Disabled classes
 */
.form-control:disabled,
.form-control[ readonly ] {
	background-color: var( --bs-light );
}
.disabled {
	pointer-events: none;
	opacity: 0.5;
}

@media ( min-width: 992px ) {
	.grid-lg {
		display: grid;
		grid-template-rows: repeat( var(--bs-rows, 1), 1fr );
		grid-template-columns: repeat( var(--bs-columns, 12), 1fr );
		gap: var(--bs-gap, 1rem);
	}
}

.dropdown-toggle svg {
	margin-left: var( --bs-spacer-2 );
}
.dropdown-toggle svg:first-child:last-child { /* Exclude when it's a button with only an icon */
	margin-left: 0;
}

/**
 * Alerts
 */
.alert {
	display: flex;
	align-items: center;
}
.alert-icon {
	border-radius: var( --theme-rounded-buttons );
	text-align: center;
	margin-right: var( --bs-spacer-3 );
	padding: var( --bs-spacer-2 );
}
.alert-danger .alert-icon {
	background: rgba( var( --bs-danger-rgb ), 0.2 );
	color: var( --bs-danger );
}
