/* font sizes */

.f6 				{ font-size: 6px; }
.f7 				{ font-size: 7px; }
.tiny 			{ font-size: 8px; }
.small 			{ font-size: 10px; }
.f11 			{ font-size: 11px; }
.f11i 			{ font-size: 11px !important; }
.f12, .medium 	{ font-size: 12px; }
.f12i, .mediumi { font-size: 12px !important; }
.mediumbig		{ font-size: 13px; }
.big 			{ font-size: 14px; }
.title-medium 	{ font-size: 16px; }
.f16-i 			{ font-size: 16px !important; }
.title-mediumbig 	{ font-size: 18px; }
.title-big 		{ font-size: 20px; }
.f20i 		{ font-size: 20px !important; }
.title-bigger 	{ font-size: 25px; }
.very-big, .f30	{ font-size: 30px; line-height: 35px; }
.f31 			{ font-size: 31px; }
.f35 			{ font-size: 35px; }
.f40 			{ font-size: 40px; }

.f-80p			{ font-size:	80%; }
.f-85p			{ font-size:	85%; }
.f-90p			{ font-size:	90%; }
.f-95p			{ font-size:	95%; }

.f-ct-sm		{ font-size:	90%; } /* smaller column title */

/* other common modifiers */

.uppercase {
	text-transform:	uppercase;
}
.noupper {
	text-transform:	none;
}
.noupper-i {
	text-transform:	none !important;
}

.underline {
	border-bottom: 1.5px solid rgba(0, 0, 0, 0.08);
}

/* Colors and backgrounds */

.dark-grayed {
	background-color: #DDD;
}
.grayed {
	background-color: #F5F5F5;
}
body.grayed, .section.grayed {
	background-color: #FAFAFA;
}
body .grayed .grayed { /* gray inside gray*/
	background-color: #F0F0F0;
}
.white-bg {
	background-color: white;
}


.bg-orange, .d-bg-orange, .before-bg-orange::before 	{ background-color: var(--c-orange) !important; }
.bg-blue, 	.before-bg-blue::before 	{ background-color: var(--c-blue) !important; }
.bg-dblue, 	.before-bg-dblue::before 	{ background-color: var(--c-dblue) !important; }
.bg-green, 	.before-bg-green::before 	{ background-color: var(--c-green) !important; }
.c-orange { color: var(--c-orange); }
.c-blue { color: var(--c-blue); }
.c-dblue { color: var(--c-dblue); }
.c-green { color: var(--c-green); }

.table-headers-green th 	{ background-color: var(--c-palegreen) !important; }

.table-vertspacing table {
    border-spacing: 0 7px;
}
.table-vertspacing table,
.table-vertspacing table tr,
.table-vertspacing table td {
	border: 0 !important;
}

.bg-cover {
	background: 		center center no-repeat;
	background-size:	cover;
}

.text-white, a.text-white, .text-white a, .text-white span {
	color: white;
}
.text-black, a.text-black, .text-black a, .text-black span {
	color: black;
}
.text-grayed, a.text-grayed, .text-grayed a, .text-grayed span {
	color: #777;
}
.text-bgrayed, a.text-bgrayed, .text-bgrayed a, .text-bgrayed span {
	color: #507ca0;
}
.text-light-grayed, a.text-light-grayed, .text-light-grayed a {
	color: #AAA;
}
.text-red, a.text-red, span.text-red, .text-red a {
	color: #D00;
}
.text-magenta, a.text-magenta, span.text-magenta, .text-magenta a {
	color: purple;
}
.text-orange, a.text-orange, span.text-orange, .text-orange a {
	color: #e06d0b;
}
.text-blue, a.text-blue, .text-blue a {
	color: #67A1CA;
}
.text-green, a.text-green, .text-green a {
	color: #02a74a;
}
.focused-text-blue:focus, .focused-text-blue input:focus {
	/*color: #67A1CA;*/
	color: #346088;
}

.vcenter-table {
	display: table;
	width: 100%;
}
.vcenter-table > * {
	display: table-cell;
	vertical-align: middle;
}

/* does not work without setting height on .vcebter container? */
.vcenter::before, .vcenter::after {
	content: "";
	display: inline-block;
	vertical-align: middle;
	width: 1px;
	height: 100%;
	font-size: 0;
}
.vcenter > * {
	display: inline-block !important;
	vertical-align: middle;
}

.vcenter {
	position: relative;
	overflow: hidden;
}
.vcenter::before, .vcenter::after {
	content: "";
	display: inline-block;
	vertical-align: middle;
	width: 1px;
	height: 100%;
	font-size: 0;
}
.vcenter > *,
.vcenter-me {
	display: inline-block !important;
	vertical-align: middle;
}

.text-left,
td.cell-text-left {
	text-align:		left;
}

.text-center {
	text-align:		center;
}

.text-justify {
	text-align:		justify;
}

.text-right,
td.cell-text-right {
	text-align:		right;
}
td.cell-text-right.more-pad-right {
	padding-right:	0.8em !important;
}

.text-clip {
    overflow: 		hidden;
    white-space: 	nowrap;
	text-overflow:	ellipsis;
}

.text-smaller {
	font-size:		80%;
}


.noselect {
  -webkit-touch-callout: none; /* iOS Safari */
    -webkit-user-select: none; /* Safari */
     -khtml-user-select: none; /* Konqueror HTML */
       -moz-user-select: none; /* Firefox */
        -ms-user-select: none; /* Internet Explorer/Edge */
            user-select: none; /* Non-prefixed version, currently
                                  supported by Chrome and Opera */
}


.force-hidden {
	display:		none !important;
} 

.force-invisible, .invisible {
	visibility:		hidden !important;
} 

body.mode-admin .d-only-client,
body.mode-client .d-only-admin {
	display: none !important;
}

.z-index-1 {
	z-index: 1;
}

.relative {
	position: relative;
}
.child-relative {
	position:		relative;
}
.child-relative > * {
	display:		inline-block;
}
.child-relative > :not(.btn):not(.m-only-print):not(.force-hidden) {
	display:		inline-block !important;
}
.child-inter-margin-8 > * {
	margin-left:	8px;
	margin-right:	8px;
}

.no-break, .nowrap {
	white-space:	nowrap;
}
@media screen {
	.no-break-screen {
		white-space:	nowrap;
	}
}
.force-break {
	white-space:	normal !important;
}

.even-spaced {
	text-align: justify;
}
.even-spaced > * {
	position: relative;
	display: inline-block;
}
.even-spaced::after {
	content: "";
	display: inline-block;
	width: 100%;
	height: 0;
	visibility: hidden;
}

.transp-hover:hover {
	opacity:		0.9;
	
}

.grayed-hover:hover {
	background-color: #F0F0F0;
}

.shadow-hover:hover {
	box-shadow: -1px -1px 2px 0 rgba(255, 255, 255, 0.16) inset;
}

.text-shadow-white {
	text-shadow: 0 0 2px rgba(255, 255, 255, 0.5);
}

.nobold, .text-normal {
	font-weight:	normal;
}

.bold {
	font-weight:	bold;
}

.italic {
	font-style:		italic;
}

.vericaltext {
    width:1px;
    word-wrap: break-word;
    white-space:pre-wrap;
}

@media (min-width: 992px) {
	.col-lg-1_5 { /* /5 width */
		max-width: 20%;
		flex: 0 0 20%;
	}
}

.h100 {
	height:			100%;
}
.w100 {
	box-sizing:		border-box;
	width:			100%;
}
.w11em {
	box-sizing:		border-box;
	width:			11em;
}

.w250px {
	box-sizing:		border-box;
	width:			250px;
	max-width:		100%;
}
.w320px {
	box-sizing:		border-box;
	width:			320px;
	max-width:		100%;
}

.w720px_center {
	box-sizing:		border-box;
	width:			720px;
	max-width:		100%;
	margin-left:	auto;
	margin-right:	auto;
}

.w640px_center {
	box-sizing:		border-box;
	width:			640px;
	max-width:		100%;
	margin-left:	auto;
	margin-right:	auto;
}

.w560px_center {
	box-sizing:		border-box;
	width:			560px;
	max-width:		100%;
	margin-left:	auto;
	margin-right:	auto;
}
.minw320 {
	box-sizing:		border-box;
	min-width:		320px;
}
.minw480 {
	box-sizing:		border-box;
	min-width:		480px;
}
.minw560 {
	box-sizing:		border-box;
	min-width:		560px;
}
.minh2em {
	box-sizing:		border-box;
	min-height:		2em;
}
.minh3em {
	box-sizing:		border-box;
	min-height:		3em;
}
.minh4em {
	box-sizing:		border-box;
	min-height:		4em;
}
.minh64 {
	box-sizing:		border-box;
	min-height:		64px;
}
.minh128 {
	box-sizing:		border-box;
	min-height:		128px;
}
.minh100 {
	min-height:		100%;
}
.minh100i {
	min-height:		100% !important;
}
.minh240 {
	min-height:		240px !important;
}
.mh0 {
	max-height:		0 !important;
	height:			0 !important;
	overflow:		hidden !important;
}
.mw280px {
	box-sizing:		border-box;
	max-width:		280px;
}
.mw320px {
	box-sizing:		border-box;
	max-width:		320px;
}
.mw460px {
	box-sizing:		border-box;
	max-width:		460px;
}
.mw640px {
	box-sizing:		border-box;
	max-width:		640px;
}
.mh256px {
	max-height: 256px;
}

@media (min-width: 1590px)
{
	.d-xxl-4 { max-width: 33.33333%; flex: 0 0 33.33333%; }
	.d-xxl-45 { max-width: 36%; flex: 0 0 36%; }
	.d-xxl-5 { max-width: 41.66666%; flex: 0 0 41.66666%; }
	.d-xxl-6 { max-width: 50%; flex: 0 0 50%; }
	.d-xxl-7 { max-width: 58.33333%; flex: 0 0 58.33333%; }
	.d-xxl-75 { max-width: 64%; flex: 0 0 64%; }
	.d-xxl-8 { max-width: 66.66667%; flex: 0 0 66.66667%; }
}
@media (min-width: 1890px)
{
	.d-xxxl-4 { max-width: 33.33333%; flex: 0 0 33.33333%; }
	.d-xxxl-6 { max-width: 50%; flex: 0 0 50%; }
	.d-xxxl-8 { max-width: 66.66667%; flex: 0 0 66.66667%; }
}

.border-box {
	box-sizing: border-box;
}

.abs {
	position:		absolute;
}
.rel {
	position:		relative;
}

.abs-fill {
	position:		absolute;
	display:		block;
	left: 0; top: 0; right: 0; bottom: 0;
}

.float-clear {
	clear: 			both;
}
.float-left {
	float: 			left;
}
.float-right {
	float: 			right;
}
.vtop {
	vertical-align: top;
}
.vmiddle {
	vertical-align: middle;
}
.vbottom {
	vertical-align: bottom;
}
.block, .d-block {
	display:		block;
}
.block-center {
	display:		block;
	margin-left:	auto;
	margin-right:	auto;
}
.block-center-h {
	display:		block;
	margin-left:	auto;
	margin-right:	auto;
	overflow:		hidden;
}
.iblock {
	display:		inline-block;
}
.iblock-i {
	display:		inline-block !important;
}
.overflow-hidden {
	overflow:		hidden;
}

.novalid { /* invalid input in the field */
	background-color: #B42 !important;
}
.novalid input, input.novalid  {
	color:			  white !important;
}

.click {
	cursor:			pointer;
}

.nopointer {
	cursor:			default;
}

.half-transp {
	opacity:		0.5 !important;
}

.transp-75{
	opacity:		0.75 !important;
}
.transp{
	opacity:		0;
}
.transp-i{
	opacity:		0 !important;
}
.opaque-i{
	opacity:		1 !important;
}

.blink-in {
	opacity: 0.25 !important;
	-webkit-transition: opacity 0.25s ease;
	transition: opacity 0.25s ease;
}
.blink-out {
	opacity: 1 !important;
	-webkit-transition: opacity 0.25s ease;
	transition: opacity 0.25s ease;
}

*:has(> .hover-parent-show):not(:hover) .hover-parent-show {
	display: none !important;
}

.hover-transp, .hover-transp75, .hover-transp50, .hover-opaque, .hover-grayed {
	-webkit-transition: all 0.5s ease;
	transition: 		all 0.5s ease;
}
.hover-transp:hover {
	opacity:		0.85;
}
.hover-transp75:hover {
	opacity:		0.75;
}
.hover-transp50:hover {
	opacity:		0.5;
}
.hover-opaque:hover {
	opacity:		1 !important;
}
.hover-grayed:hover {
	background-color: #DDD;
}
.selected .selected-grayed, 
.selected.selected-grayed, 
.line.selected .line-sub.selected-grayed,
.option-selected .selected-grayed {
	background-color: #DDD;
}

.pad-4 {
	padding:		4px;
}
.pad-8 {
	padding:		8px;
}
.pad1 {
	padding-left:	16px;
}
.pad2 {
	padding-left:	32px;
}
.pad3 {
	padding-left:	48px;
}
.pad4 {
	padding-left:	64px;
}

.pad-v-0 {
	padding-top:	0;
	padding-bottom:	0;
}
.pad-v-0-i {
	padding-top:	0 !important;
	padding-bottom:	0 !important;
}
.pad-v-4 {
	padding-top:	4px;
	padding-bottom:	4px;
}
.pad-v-8 {
	padding-top:	8px;
	padding-bottom:	8px;
}
.pad-v-16 {
	padding-top:	16px;
	padding-bottom:	16px;
}
.pad-v-32 {
	padding-top:	32px;
	padding-bottom:	32px;
}
.pad-v-025em-i {
	padding-top:	0.25em !important;
	padding-bottom:	0.25em !important;
}

.pad-top-2 {
	padding-top:	2px;
}
.pad-top-4 {
	padding-top:	4px;
}
.pad-top-8 {
	padding-top:	8px;
}
.pad-top-12 {
	padding-top:	16px;
}
.pad-top-16 {
	padding-top:	16px;
}
.pad-top-24 {
	padding-top:	24px;
}
.pad-top-32 {
	padding-top:	32px;
}
.pad-top-44 {
	padding-top:	44px;
}
.pad-top-64 {
	padding-top:	64px;
}
.pad-bottom-2 {
	padding-bottom:	2px;
}
.pad-bottom-4 {
	padding-bottom:	4px;
}
.pad-bottom-8 {
	padding-bottom:	8px;
}
.pad-bottom-16 {
	padding-bottom:	16px;
}
.pad-bottom-20 {
	padding-bottom:	20px;
}
.pad-bottom-32 {
	padding-bottom:	32px;
}
.pad-bottom-64 {
	padding-bottom:	64px;
}

.pad-h-0-i {
	padding-left:	0 !important;
	padding-right:	0 !important;
}
.pad-left-0-i {
	padding-left:	0 !important;
}
.pad-left-8 {
	padding-left:	8px;
}
.pad-left-8-i {
	padding-left:	8px !important;
}
.pad-left-16 {
	padding-left:	16px;
}
.pad-left-16-i {
	padding-left:	16px !important;
}
.pad-left-32 {
	padding-left:	32px;
}
.pad-left-48 {
	padding-left:	48px;
}
.pad-left-64 {
	padding-left:	64px;
}
.pad-left-88-i {
	padding-left:	88px !important;
}
.pad-left-128-i {
	padding-left:	128px !important;
}

.pad-right-0 {
	padding-right:	0;
}
.pad-right-8 {
	padding-right:	8px;
}
.pad-right-16 {
	padding-right:	16px;
}
.pad-right-30 {
	padding-right:	30px;
}
.pad-right-32 {
	padding-right:	32px;
}

.pad-side-0 {
	padding-left:	0;
	padding-right:	0;
}
.pad-side-0-i {
	padding-left:	0 !important;
	padding-right:	0 !important;
}
.pad-side-4 {
	padding-left:	4px;
	padding-right:	4px;
}
.pad-side-8 {
	padding-left:	8px;
	padding-right:	8px;
}
.pad-side-12 {
	padding-left:	12px;
	padding-right:	12px;
}
.pad-side-16 {
	padding-left:	16px;
	padding-right:	16px;
}
.pad-side-16i {
	padding-left:	16px !important;
	padding-right:	16px !important;
}
.pad-side-20 {
	padding-left:	20px;
	padding-right:	20px;
}
.pad-side-25 {
	padding-left:	25px;
	padding-right:	25px;
}
.pad-side-32 {
	padding-left:	32px;
	padding-right:	32px;
}
.pad-side-32i {
	padding-left:	32px !important;
	padding-right:	32px !important;
}

.marg-h-auto {
	margin-left: auto;
	margin-right: auto;
}
.marg-h-0i {
	margin-left: 0 !important;
	margin-right: 0 !important;
}
.marg-v-0,
.marg-v-0i {
	margin-top:		0 !important;
	margin-bottom:	0 !important;
}
.marg-v-4 {
	margin-top:		4px;
	margin-bottom:	4px;
}
.marg-v-8 {
	margin-top:		8px;
	margin-bottom:	8px;
}
.marg-v-12 {
	margin-top:		12px;
	margin-bottom:	12px;
}
.marg-v-16 {
	margin-top:		16px;
	margin-bottom:	16px;
}
.marg-side-0 {
	margin-left:	0;
	margin-right:	0;
}
.marg-side-16 {
	margin-left:	16px;
	margin-right:	16px;
}
.marg-side--16px {
	margin-left:	-16px;
	margin-right:	-16px;
}
.marg-side--24px {
	margin-left:	-24px;
	margin-right:	-24px;
}
.marg-side--32px {
	margin-left:	-32px;
	margin-right:	-32px;
}
.marg-top-0 {
	margin-top:		0 !important;
}
.marg-top-4 {
	margin-top:		4px !important;
}
.marg-top-8 {
	margin-top:		8px !important;
}
.marg-top-16 {
	margin-top:		16px;
}
.marg-top-24 {
	margin-top:		24px;
}
.marg-top-32 {
	margin-top:		32px;
}
.marg-top-48 {
	margin-top:		48px;
}
.marg-top-64 {
	margin-top:		64px;
}
.marg-top-96 {
	margin-top:		96px;
}
.marg-top-128 {
	margin-top:		128px;
}
.marg-top--4 {
	margin-top:		-4px;
}
.marg-top--8 {
	margin-top:		-8px;
}
.marg-top--12 {
	margin-top:		-12px;
}
.marg-top--16 {
	margin-top:		-16px;
}
.marg-top--32 {
	margin-top:		-32px;
}
.marg-top--64 {
	margin-top:		-64px;
}

.marg-b-0 {
	margin-bottom:	0;
}
.marg-b-8 {
	margin-bottom:	8px;
}
.marg-b-12 {
	margin-bottom:	12px;
}
.marg-b-16 {
	margin-bottom:	16px;
}
.marg-b-24 {
	margin-bottom:	24px;
}
.marg-b-32 {
	margin-bottom:	32px;
}
.marg-b-64 {
	margin-bottom:	64px;
}
.marg-b--8 {
	margin-bottom: -8px;
}
.marg-b--16 {
	margin-bottom: -16px;
}
.marg-b--40 {
	margin-bottom: -40px;
}
.marg-l-0-i {
	margin-left:	0 !important;
}
.marg-l--16 {
	margin-left:	-16px;
}
.marg-l-8 {
	margin-left:	8px;
}
.marg-l-16 {
	margin-left:	16px;
}
.marg-l-32 {
	margin-left:	32px;
}
.marg-l-64 {
	margin-left:	64px;
}
.marg-r-4 {
	margin-right:	4px;
}
.marg-r-8 {
	margin-right:	8px;
}
.marg-r-16 {
	margin-right:	16px;
}
.marg-r-30 {
	margin-right:	30px;
}
.marg-r--1em {
	margin-right:	-1em;
}
.marg-r-3em {
	margin-right:	3em;
}
.marg-side-16 {
	margin-left:	16px;
	margin-right:	16px;
}
.marg-side-32 {
	margin-left:	32px;
	margin-right:	32px;
}
.marg-no-last:last-of-type {
	margin-bottom:  0 !important;
}


.round-corners-7 {
	border-radius:	7px;
}
.round-corners-10 {
	border-radius:	10px;
}
.round-corners-1em {
	border-radius:	1em;
}
.round-corners-2em {
	border-radius:	2em;
}

.letter-spacing-01em {
	letter-spacing: 0.1em;
}
.letter-spacing-015em {
	letter-spacing: 0.15em;
}
.line-height-1 {
	line-height:	1em;
}
.line-height-150 {
	line-height:	150%;
}
.line-height-125em {
	line-height:	1.25em;
}


.scale-05 {
	-webkit-transform:	scale(0.5);
		-ms-transform:	scale(0.5);
			transform:	scale(0.5);
}
.scale-075 {
	-webkit-transform:	scale(0.75);
		-ms-transform:	scale(0.75);
			transform:	scale(0.75);
}

.val-NC {
	opacity: 0.5;
}

i.decimal-transp {
	font-style: inherit;
	opacity: 0.5;
	display: inline !important;
	font-weight: normal;
}


.nolabel label {
	display: none !important;
}

/* media query size modifiers */

@media (max-width: 640px) {

	.child-mx15 	.f6 				{ font-size: 9px; }
	.child-mx15 	.f7 				{ font-size: 10px; }
	.child-mx15 	.tiny 			{ font-size: 12px; }
	.child-mx15 	.small 			{ font-size: 15px; }
	.child-mx15 	.f11 			{ font-size: 16px; }
	.child-mx15 	.medium 			{ font-size: 18px; }
	.child-mx15 	.mediumbig		{ font-size: 19px; }
	.child-mx15 	.big 			{ font-size: 20px; }
	.child-mx15 	.title-medium 	{ font-size: 24px; }
	.child-mx15 	.title-big 		{ font-size: 30px; }
	.child-mx15 	.title-bigger	{ font-size: 35px; }
	.child-mx15 	.very-big 		{ font-size: 40px; }
	.child-mx15 	.f35 			{ font-size: 50px; }
	.child-mx15 	.f40 			{ font-size: 60px; }
	
	.child-mx2 .f6 				{ font-size: 12px; }
	.child-mx2 .f7 				{ font-size: 14px; }
	.child-mx2 .tiny 			{ font-size: 16px; }
	.child-mx2 .small 			{ font-size: 20px; }
	.child-mx2 .f11 				{ font-size: 22px; }
	.child-mx2 .medium 			{ font-size: 24px; }
	.child-mx2 .mediumbig		{ font-size: 26px; }
	.child-mx2 .big 				{ font-size: 28px; }
	.child-mx2 .title-medium 	{ font-size: 32px; }
	.child-mx2 .title-big 		{ font-size: 40px; }
	.child-mx2 .title-bigger		{ font-size: 50px; }
	.child-mx2 .very-big 		{ font-size: 60px; }
	.child-mx2 .f35 				{ font-size: 70px; }
	.child-mx2 .f40 				{ font-size: 80px; }

	.mx125 { font-size: 125%; }
	.mx15 { font-size: 150%; }
	.mx2 { font-size: 200%; }

	.big.mx1 { font-size: 14px; }
	.big.mx125 { font-size: 17px; }
	.mediumbig.mx1 { font-size: 13px; }
	.mediumbig.mx125 { font-size: 16px; }
	
}


@media screen {
	.m-only-print { display: none !important; }
	.m-only-print-height { max-height: 0 !important; min-height: 0 !important; overflow: hidden !important; }
}
@media print {
	.m-only-screen { display: none !important; }
	.m-only-screen-height { max-height: 0 !important; min-height: 0 !important; overflow: hidden !important; }
	
}

.print-page-break {
	page-break-before: 	always;
}

.print-page-break-avoid {
	page-break-inside: avoid !important;
}

@media print {
	.col-print-half {
		max-width: 50% !important;
		flex: 0 0 50% !important;
	}
	.col-print-full {
		max-width: 100% !important;
		flex: 0 0 100% !important;
	}
}