/* -----------------------------------------------
	3.1 Spacing (margins, paddings, etc)
----------------------------------------------- */
/* ---
	3.1.1 Margins
----------------------------------------------- */
/* --- Margin Bottom 0 Reset --- */
.mb-0, .mb-0 p, .mb-0 h1, .mb-0 h2, .mb-0 h3, .mb-0 h4, .mb-0 h5, .mb-0 h6, .mb-0 .elementor-heading-title { margin-bottom: 0 !important; }
/* --- All-Around Margins --- */
.m-header{ margin: var(--header-height, clamp(8rem, 5.379rem + 3.400vw, 12rem)); }
.m-xxl 	{ margin: var(--space-xxl, clamp(10rem, -0.270rem + 13.500vw, 20rem)); }
.m-xl 	{ margin: var(--space-xl, clamp(8rem, -0.216rem + 10.800vw, 16rem)); }
.m-l 	{ margin: var(--space-l, clamp(6rem, -0.162rem + 8.100vw, 12rem)); }
.m-m 	{ margin: var(--space-m, clamp(4rem, -0.108rem + 5.400vw, 8rem)); }
.m-s 	{ margin: var(--space-s, clamp(2rem, -0.054rem + 2.700vw, 4rem)); }
.m-xs 	{ margin: var(--space-xs, clamp(1rem, -0.027rem + 1.400vw, 2rem)); }
.m-gap-default { margin: var(--gap-default, 20px); }
.m-gap-half { margin: var(--gap-half, 10px); }
/* --- Top --- */
.mt-header{ margin-top: var(--header-height, clamp(8rem, 5.379rem + 3.400vw, 12rem)); }
.mt-xxl { margin-top: var(--space-xxl, clamp(10rem, -0.270rem + 13.500vw, 20rem)); }
.mt-xl 	{ margin-top: var(--space-xl, clamp(8rem, -0.216rem + 10.800vw, 16rem)); }
.mt-l 	{ margin-top: var(--space-l, clamp(6rem, -0.162rem + 8.100vw, 12rem)); }
.mt-m 	{ margin-top: var(--space-m, clamp(4rem, -0.108rem + 5.400vw, 8rem)); }
.mt-s 	{ margin-top: var(--space-s, clamp(2rem, -0.054rem + 2.700vw, 4rem)); }
.mt-xs 	{ margin-top: var(--space-xs, clamp(1rem, -0.027rem + 1.400vw, 2rem)); }
.mt-gap-default { margin-top: var(--gap-default, 20px); }
.mt-gap-half { margin-top: var(--gap-half, 10px); }
/* --- Bottom --- */
.mb-header{ margin-bottom: var(--header-height, clamp(8rem, 5.379rem + 3.400vw, 12rem)); }
.mb-xxl { margin-bottom: var(--space-xxl, clamp(10rem, -0.270rem + 13.500vw, 20rem)); }
.mb-xl 	{ margin-bottom: var(--space-xl, clamp(8rem, -0.216rem + 10.800vw, 16rem)); }
.mb-l 	{ margin-bottom: var(--space-l, clamp(6rem, -0.162rem + 8.100vw, 12rem)); }
.mb-m 	{ margin-bottom: var(--space-m, clamp(4rem, -0.108rem + 5.400vw, 8rem)); }
.mb-s 	{ margin-bottom: var(--space-s, clamp(2rem, -0.054rem + 2.700vw, 4rem)); }
.mb-xs 	{ margin-bottom: var(--space-xs, clamp(1rem, -0.027rem + 1.400vw, 2rem)); }
.mb-gap-default { margin-bottom: var(--gap-default, 20px); }
.mb-gap-half { margin-bottom: var(--gap-half, 10px); }
/* --- Left --- */
.ml-header{ margin-left: var(--header-height, clamp(8rem, 5.379rem + 3.400vw, 12rem)); }
.ml-xxl { margin-left: var(--space-xxl, clamp(10rem, -0.270rem + 13.500vw, 20rem)); }
.ml-xl 	{ margin-left: var(--space-xl, clamp(8rem, -0.216rem + 10.800vw, 16rem)); }
.ml-l 	{ margin-left: var(--space-l, clamp(6rem, -0.162rem + 8.100vw, 12rem)); }
.ml-m 	{ margin-left: var(--space-m, clamp(4rem, -0.108rem + 5.400vw, 8rem)); }
.ml-s 	{ margin-left: var(--space-s, clamp(2rem, -0.054rem + 2.700vw, 4rem)); }
.ml-xs 	{ margin-left: var(--space-xs, clamp(1rem, -0.027rem + 1.400vw, 2rem)); }
.ml-gap-default { margin-left: var(--gap-default, 20px); }
.ml-gap-half { margin-left: var(--gap-half, 10px); }
/* --- Right --- */
.mr-header{ margin-right: var(--header-height, clamp(8rem, 5.379rem + 3.400vw, 12rem)); }
.mr-xxl { margin-right: var(--space-xxl, clamp(10rem, -0.270rem + 13.500vw, 20rem)); }
.mr-xl 	{ margin-right: var(--space-xl, clamp(8rem, -0.216rem + 10.800vw, 16rem)); }
.mr-l 	{ margin-right: var(--space-l, clamp(6rem, -0.162rem + 8.100vw, 12rem)); }
.mr-m 	{ margin-right: var(--space-m, clamp(4rem, -0.108rem + 5.400vw, 8rem)); }
.mr-s 	{ margin-right: var(--space-s, clamp(2rem, -0.054rem + 2.700vw, 4rem)); }
.mr-xs 	{ margin-right: var(--space-xs, clamp(1rem, -0.027rem + 1.400vw, 2rem)); }
.mr-gap-default { margin-right: var(--gap-default, 20px); }
.mr-gap-half { margin-right: var(--gap-half, 10px); }

/* ---
	3.1.2 Paddings
----------------------------------------------- */
/* --- All-around padding --- */
.p-header{ padding: var(--header-height, clamp(8rem, 5.379rem + 3.400vw, 12rem)); }
.p-xxl 	{ padding: var(--space-xxl, clamp(10rem, -0.270rem + 13.500vw, 20rem)); }
.p-xl 	{ padding: var(--space-xl, clamp(8rem, -0.216rem + 10.800vw, 16rem)); }
.p-l 	{ padding: var(--space-l, clamp(6rem, -0.162rem + 8.100vw, 12rem)); }
.p-m 	{ padding: var(--space-m, clamp(4rem, -0.108rem + 5.400vw, 8rem)); }
.p-s 	{ padding: var(--space-s, clamp(2rem, -0.054rem + 2.700vw, 4rem)); }
.p-xs 	{ padding: var(--space-xs, clamp(1rem, -0.027rem + 1.400vw, 2rem)); }
.p-gap-default { padding: var(--gap-default, 20px); }
.p-gap-half { padding: var(--gap-half, 10px); }
/* --- Top --- */
.pt-header{ padding-top: var(--header-height, clamp(8rem, 5.379rem + 3.400vw, 12rem)); }
.pt-xxl { padding-top: var(--space-xxl, clamp(10rem, -0.270rem + 13.500vw, 20rem)); }
.pt-xl 	{ padding-top: var(--space-xl, clamp(8rem, -0.216rem + 10.800vw, 16rem)); }
.pt-l 	{ padding-top: var(--space-l, clamp(6rem, -0.162rem + 8.100vw, 12rem)); }
.pt-m 	{ padding-top: var(--space-m, clamp(4rem, -0.108rem + 5.400vw, 8rem)); }
.pt-s 	{ padding-top: var(--space-s, clamp(2rem, -0.054rem + 2.700vw, 4rem)); }
.pt-xs 	{ padding-top: var(--space-xs, clamp(1rem, -0.027rem + 1.400vw, 2rem)); }
.pt-gap-default { padding-top: var(--gap-default, 20px); }
.pt-gap-half { padding-top: var(--gap-half, 10px); }
/* --- Bottom --- */
.pb-header{ padding-bottom: var(--header-height, clamp(8rem, 5.379rem + 3.400vw, 12rem)); }
.pb-xxl { padding-bottom: var(--space-xxl, clamp(10rem, -0.270rem + 13.500vw, 20rem)); }
.pb-xl 	{ padding-bottom: var(--space-xl, clamp(8rem, -0.216rem + 10.800vw, 16rem)); }
.pb-l 	{ padding-bottom: var(--space-l, clamp(6rem, -0.162rem + 8.100vw, 12rem)); }
.pb-m 	{ padding-bottom: var(--space-m, clamp(4rem, -0.108rem + 5.400vw, 8rem)); }
.pb-s 	{ padding-bottom: var(--space-s, clamp(2rem, -0.054rem + 2.700vw, 4rem)); }
.pb-xs 	{ padding-bottom: var(--space-xs, clamp(1rem, -0.027rem + 1.400vw, 2rem)); }
.pb-gap-default { padding-bottom: var(--gap-default, 20px); }
.pb-gap-half { padding-bottom: var(--gap-half, 10px); }
/* --- Left --- */
.pl-header{ padding-left: var(--header-height, clamp(8rem, 5.379rem + 3.400vw, 12rem)); }
.pl-xxl { padding-left: var(--space-xxl, clamp(10rem, -0.270rem + 13.500vw, 20rem)); }
.pl-xl 	{ padding-left: var(--space-xl, clamp(8rem, -0.216rem + 10.800vw, 16rem)); }
.pl-l 	{ padding-left: var(--space-l, clamp(6rem, -0.162rem + 8.100vw, 12rem)); }
.pl-m 	{ padding-left: var(--space-m, clamp(4rem, -0.108rem + 5.400vw, 8rem)); }
.pl-s 	{ padding-left: var(--space-s, clamp(2rem, -0.054rem + 2.700vw, 4rem)); }
.pl-xs 	{ padding-left: var(--space-xs, clamp(1rem, -0.027rem + 1.400vw, 2rem)); }
.pl-gap-default { padding-left: var(--gap-default, 20px); }
.pl-gap-half { padding-left: var(--gap-half, 10px); }
/* --- Right --- */
.pr-header{ padding-right: var(--header-height, clamp(8rem, 5.379rem + 3.400vw, 12rem)); }
.pr-xxl { padding-right: var(--space-xxl, clamp(10rem, -0.270rem + 13.500vw, 20rem)); }
.pr-xl 	{ padding-right: var(--space-xl, clamp(8rem, -0.216rem + 10.800vw, 16rem)); }
.pr-l 	{ padding-right: var(--space-l, clamp(6rem, -0.162rem + 8.100vw, 12rem)); }
.pr-m 	{ padding-right: var(--space-m, clamp(4rem, -0.108rem + 5.400vw, 8rem)); }
.pr-s 	{ padding-right: var(--space-s, clamp(2rem, -0.054rem + 2.700vw, 4rem)); }
.pr-xs 	{ padding-right: var(--space-xs, clamp(1rem, -0.027rem + 1.400vw, 2rem)); }
.pr-gap-default { padding-right: var(--gap-default, 20px); }
.pr-gap-half { padding-right: var(--gap-half, 10px); }

/* -----------------------------------------------
	3.2 Typography
----------------------------------------------- */
.uppercase 	{ text-transform: uppercase; }
.lowercase 	{ text-transform: lowercase; }
.italic 	{ font-style: italic; }
.bold 		{ font-weight: bold; }

.ff-default { font-family: var(--ff-default, 'Helvetica, Arial, sans-serif'); }
.ff-alt 	{ font-family: var(--ff-alt, 'Helvetica, Arial, sans-serif'); }

.fs-xl { font-size: var(--fs-xl,2.6rem); }
.fs-l  { font-size: var(--fs-l, 2.2rem); }
.fs-m  { font-size: var(--fs-m, 1.8rem); }
.fs-s  { font-size: var(--fs-s, 1.6rem); }
.fs-xs { font-size: var(--fs-xs,1.4rem); }

.ls-l { letter-spacing: var(--ls-l, 0.20rem); }
.ls-m { letter-spacing: var(--ls-m, 0.10rem); }
.ls-s { letter-spacing: var(--ls-s, 0.05rem); }

.lh-l { line-height: var(--lh-l, 1.6); }
.lh-m { line-height: var(--lh-m, 1.4); }
.lh-s { line-height: var(--lh-s, 1.2); }

.fw-100 { font-weight: 100; }
.fw-200 { font-weight: 200; }
.fw-300 { font-weight: 300; }
.fw-400 { font-weight: 400; }
.fw-500 { font-weight: 500; }
.fw-600 { font-weight: 600; }
.fw-700 { font-weight: 700; }
.fw-800 { font-weight: 800; }
.fw-900 { font-weight: 900; }

.nl2br { white-space: pre-line; }

/* -----------------------------------------------
	3.3 Text colors
----------------------------------------------- */
.c-primary, .c-primary *			{ color:var(--c-primary, #2F6AFD) !important; }
.c-secondary, .c-secondary *		{ color:var(--c-secondary, #F8496F) !important; }
.c-white, .c-white *				{ color:var(--c-white, #FFFFFF) !important; }
.c-error, .c-error *				{ color:var(--c-error, #C84630) !important; }
.c-warning, .c-warning *			{ color:var(--c-warning, #FCC130) !important; }
.c-success, .c-success *			{ color:var(--c-success, #48C572) !important; }
.c-text, .c-text *					{ color:var(--c-text, #000000) !important; }
.c-headlines, .c-headlines *		{ color:var(--c-headlines, #000000) !important; }
.c-light-gray, .c-light-gray *		{ color:var(--c-light-gray, #858C9F) !important; }
.c-lightest-gray, .c-lightest-gray *{ color:var(--c-lightest-gray, #F5F5F5) !important; }

/* -----------------------------------------------
	3.4 Background colors
----------------------------------------------- */
/* --- Base --- */
.bg { background: var(--c-bg, #FFFFFF);}
.bg-muted { background: var(--c-bg-m90, color-mix(in srgb, #FFFFFF 90%, #232323)); }
.bg-overlay { background: var(--c-bg-a75, rgb(from #FFFFFF r g b / 75%)); }
.bg-invert { background: var(--c-bg-invert, #232323); }
.bg-invert-muted { background: var(--c-bg-invert-m75, color-mix(in srgb, #232323 75%, #FFFFFF)); }
.bg-primary { background-color:var(--c-primary, #2F6AFD); }

/* --- Alpha utilities --- */
.bg-a90 { background: var(--c-bg-a90, rgb(from #FFFFFF r g b / 90%)); }
.bg-a75 { background: var(--c-bg-a75, rgb(from #FFFFFF r g b / 75%)); }
.bg-a50 { background: var(--c-bg-a50, rgb(from #FFFFFF r g b / 50%)); }
.bg-a25 { background: var(--c-bg-a25, rgb(from #FFFFFF r g b / 25%)); }
.bg-a10 { background: var(--c-bg-a10, rgb(from #FFFFFF r g b / 10%)); }

.bg-invert-a90 { background: var(--c-bg-invert-a90, rgb(from #232323 r g b / 90%)); }
.bg-invert-a75 { background: var(--c-bg-invert-a75, rgb(from #232323 r g b / 75%)); }
.bg-invert-a50 { background: var(--c-bg-invert-a50, rgb(from #232323 r g b / 50%)); }
.bg-invert-a25 { background: var(--c-bg-invert-a25, rgb(from #232323 r g b / 25%)); }
.bg-invert-a10 { background: var(--c-bg-invert-a10, rgb(from #232323 r g b / 10%)); }

/* --- Mix utilities --- */
.bg-m90 { background: var(--c-bg-m90, color-mix(in srgb, #FFFFFF 90%, #232323)); }
.bg-m75 { background: var(--c-bg-m75, color-mix(in srgb, #FFFFFF 75%, #232323)); }
.bg-m50 { background: var(--c-bg-m50, color-mix(in srgb, #FFFFFF 50%, #232323)); }
.bg-m25 { background: var(--c-bg-m25, color-mix(in srgb, #FFFFFF 25%, #232323)); }
.bg-m10 { background: var(--c-bg-m10, color-mix(in srgb, #FFFFFF 10%, #232323)); }

.bg-invert-m90 { background: var(--c-bg-invert-m90, color-mix(in srgb, #232323 90%, #FFFFFF)); }
.bg-invert-m75 { background: var(--c-bg-invert-m75, color-mix(in srgb, #232323 75%, #FFFFFF)); }
.bg-invert-m50 { background: var(--c-bg-invert-m50, color-mix(in srgb, #232323 50%, #FFFFFF)); }
.bg-invert-m25 { background: var(--c-bg-invert-m25, color-mix(in srgb, #232323 25%, #FFFFFF)); }
.bg-invert-m10 { background: var(--c-bg-invert-m10, color-mix(in srgb, #232323 10%, #FFFFFF)); }

/* --- Fixed / Flat utilities --- */
.bg-f90 { background: var(--c-bg-f90, color-mix(in srgb, #FFFFFF 90%, black)); }
.bg-f75 { background: var(--c-bg-f75, color-mix(in srgb, #FFFFFF 75%, black)); }
.bg-f50 { background: var(--c-bg-f50, color-mix(in srgb, #FFFFFF 50%, black)); }
.bg-f25 { background: var(--c-bg-f25, color-mix(in srgb, #FFFFFF 25%, black)); }
.bg-f10 { background: var(--c-bg-f10, color-mix(in srgb, #FFFFFF 10%, black)); }

.bg-invert-f90 { background: var(--c-bg-invert-f90, color-mix(in srgb, #232323 90%, white)); }
.bg-invert-f75 { background: var(--c-bg-invert-f75, color-mix(in srgb, #232323 75%, white)); }
.bg-invert-f50 { background: var(--c-bg-invert-f50, color-mix(in srgb, #232323 50%, white)); }
.bg-invert-f25 { background: var(--c-bg-invert-f25, color-mix(in srgb, #232323 25%, white)); }
.bg-invert-f10 { background: var(--c-bg-invert-f10, color-mix(in srgb, #232323 10%, white)); }

/* -----------------------------------------------
	3.5 Floating
----------------------------------------------- */
.fl { float: left; 	}
.fr { float: right; }
.fn { float: none; 	}

/* -----------------------------------------------
	3.6 Widths
----------------------------------------------- */
/* --- Percentage --- */
.w-5,.w-10,.w-15,.w-20,.w-25,.w-30,.w-35,.w-40,.w-45,.w-50,.w-55,.w-60,.w-65,.w-70,.w-75,.w-80,.w-85,.w-90,.w-95,.w-100 { width: 100%;}
.w-xs-5 		{ width: 05%; }
.w-xs-10 		{ width: 10%; }
.w-xs-15 		{ width: 15%; }
.w-xs-20 		{ width: 20%; }
.w-xs-25 		{ width: 25%; }
.w-xs-30 		{ width: 30%; }
.w-xs-35 		{ width: 35%; }
.w-xs-40 		{ width: 40%; }
.w-xs-45 		{ width: 45%; }
.w-xs-50 		{ width: 50%; }
.w-xs-55 		{ width: 55%; }
.w-xs-60 		{ width: 60%; }
.w-xs-65 		{ width: 65%; }
.w-xs-70 		{ width: 70%; }
.w-xs-75 		{ width: 75%; }
.w-xs-80 		{ width: 80%; }
.w-xs-85 		{ width: 85%; }
.w-xs-90 		{ width: 90%; }
.w-xs-95 		{ width: 95%; }
.w-xs-100 		{ width: 100%;}
@media (min-width: 640px) {
	.w-s-5 		{ width: 05%; }
	.w-s-10 	{ width: 10%; }
	.w-s-15 	{ width: 15%; }
	.w-s-20 	{ width: 20%; }
	.w-s-25 	{ width: 25%; }
	.w-s-30 	{ width: 30%; }
	.w-s-35 	{ width: 35%; }
	.w-s-40 	{ width: 40%; }
	.w-s-45 	{ width: 45%; }
	.w-s-50 	{ width: 50%; }
	.w-s-55 	{ width: 55%; }
	.w-s-60 	{ width: 60%; }
	.w-s-65 	{ width: 65%; }
	.w-s-70 	{ width: 70%; }
	.w-s-75 	{ width: 75%; }
	.w-s-80 	{ width: 80%; }
	.w-s-85 	{ width: 85%; }
	.w-s-90 	{ width: 90%; }
	.w-s-95 	{ width: 95%; }
	.w-s-100 	{ width: 100%;}
}
@media (min-width: 768px) {
	.w-m-5,
	.w-5 		{ width: 05%; }
	.w-m-10,
	.w-10 		{ width: 10%; }
	.w-m-15,
	.w-15 		{ width: 15%; }
	.w-m-20,
	.w-20 		{ width: 20%; }
	.w-m-25,
	.w-25 		{ width: 25%; }
	.w-m-30,
	.w-30 		{ width: 30%; }
	.w-m-35,
	.w-35 		{ width: 35%; }
	.w-m-40,
	.w-40 		{ width: 40%; }
	.w-m-45,
	.w-45 		{ width: 45%; }
	.w-m-50,
	.w-50 		{ width: 50%; }
	.w-m-55,
	.w-55 		{ width: 55%; }
	.w-m-60,
	.w-60 		{ width: 60%; }
	.w-m-65,
	.w-65 		{ width: 65%; }
	.w-m-70,
	.w-70 		{ width: 70%; }
	.w-m-75,
	.w-75 		{ width: 75%; }
	.w-m-80,
	.w-80 		{ width: 80%; }
	.w-m-85,
	.w-85 		{ width: 85%; }
	.w-m-90,
	.w-90 		{ width: 90%; }
	.w-m-95,
	.w-95 		{ width: 95%; }
	.w-m-100,
	.w-100 		{ width: 100%;}
}
@media (min-width: 1024px) {
	.w-l-5 		{ width: 05%; }
	.w-l-10 	{ width: 10%; }
	.w-l-15 	{ width: 15%; }
	.w-l-20 	{ width: 20%; }
	.w-l-25 	{ width: 25%; }
	.w-l-30 	{ width: 30%; }
	.w-l-35 	{ width: 35%; }
	.w-l-40 	{ width: 40%; }
	.w-l-45 	{ width: 45%; }
	.w-l-50 	{ width: 50%; }
	.w-l-55 	{ width: 55%; }
	.w-l-60 	{ width: 60%; }
	.w-l-65 	{ width: 65%; }
	.w-l-70 	{ width: 70%; }
	.w-l-75 	{ width: 75%; }
	.w-l-80 	{ width: 80%; }
	.w-l-85 	{ width: 85%; }
	.w-l-90 	{ width: 90%; }
	.w-l-95 	{ width: 95%; }
	.w-l-100 	{ width: 100%;}
}
@media (min-width: 1280px) {
	.w-xl-5 	{ width: 05%; }
	.w-xl-10 	{ width: 10%; }
	.w-xl-15 	{ width: 15%; }
	.w-xl-20 	{ width: 20%; }
	.w-xl-25 	{ width: 25%; }
	.w-xl-30 	{ width: 30%; }
	.w-xl-35 	{ width: 35%; }
	.w-xl-40 	{ width: 40%; }
	.w-xl-45 	{ width: 45%; }
	.w-xl-50 	{ width: 50%; }
	.w-xl-55 	{ width: 55%; }
	.w-xl-60 	{ width: 60%; }
	.w-xl-65 	{ width: 65%; }
	.w-xl-70 	{ width: 70%; }
	.w-xl-75 	{ width: 75%; }
	.w-xl-80 	{ width: 80%; }
	.w-xl-85 	{ width: 85%; }
	.w-xl-90 	{ width: 90%; }
	.w-xl-95 	{ width: 95%; }
	.w-xl-100 	{ width: 100%;}
}
.min-w-25 	{ min-width: 25%; }
.min-w-50 	{ min-width: 50%; }
.min-w-75 	{ min-width: 75%; }
.min-w-100 	{ min-width: 100%;}
/* --- viewport width --- */
.vw-25 		{ width: 25vw; }
.vw-50 		{ width: 50vw; }
.vw-75 		{ width: 75vw; }
.vw-100 	{ width: 100vw;}
.min-vw-25 	{ min-width: 25vw; }
.min-vw-50 	{ min-width: 50vw; }
.min-vw-75 	{ min-width: 75vw; }
.min-vw-100 { min-width: 100vw;}
/* --- smallest viewport width --- */
.svw-25 	{ width: 25svw; }
.svw-50 	{ width: 50svw; }
.svw-75 	{ width: 75svw; }
.svw-100 	{ width: 100svw;}
.min-svw-25 { min-width: 25svw; }
.min-svw-50 { min-width: 50svw; }
.min-svw-75 { min-width: 75svw; }
.min-svw-100{ min-width: 100svw;}
/* --- dynamic viewport width --- */
.dvw-25 	{ width: 25dvw; }
.dvw-50 	{ width: 50dvw; }
.dvw-75 	{ width: 75dvw; }
.dvw-100 	{ width: 100dvw;}
.min-dvw-25 { min-width: 25dvw; }
.min-dvw-50 { min-width: 50dvw; }
.min-dvw-75 { min-width: 75dvw; }
.min-dvw-100{ min-width: 100dvw;}

/* -----------------------------------------------
	3.7 Heights
----------------------------------------------- */
/* --- Percentage --- */
.h-25 		{ height: 25%; }
.h-50 		{ height: 50%; }
.h-75 		{ height: 75%; }
.h-100 		{ height: 100%;}
.min-h-25 	{ min-height: 25%; }
.min-h-50 	{ min-height: 50%; }
.min-h-75 	{ min-height: 75%; }
.min-h-100 	{ min-height: 100%;}
/* --- viewport height --- */
.vh-25 		{ height: 25vh; }
.vh-50 		{ height: 50vh; }
.vh-75 		{ height: 75vh; }
.vh-100 	{ height: 100vh;}
.min-vh-25 	{ min-height: 25vh; }
.min-vh-50 	{ min-height: 50vh; }
.min-vh-75 	{ min-height: 75vh; }
.min-vh-100 { min-height: 100vh;}
/* --- smallest viewport height --- */
.svh-25 	{ height: 25svh; }
.svh-50 	{ height: 50svh; }
.svh-75 	{ height: 75svh; }
.svh-100 	{ height: 100svh;}
.min-svh-25 { min-height: 25svh; }
.min-svh-50 { min-height: 50svh; }
.min-svh-75 { min-height: 75svh; }
.min-svh-100{ min-height: 100svh;}
/* --- dynamic viewport height --- */
.dvh-25 	{ height: 25dvh; }
.dvh-50 	{ height: 50dvh; }
.dvh-75 	{ height: 75dvh; }
.dvh-100 	{ height: 100dvh;}
.min-dvh-25 { min-height: 25dvh; }
.min-dvh-50 { min-height: 50dvh; }
.min-dvh-75 { min-height: 75dvh; }
.min-dvh-100{ min-height: 100dvh;}

/* -----------------------------------------------
	3.8 Display Types
----------------------------------------------- */
.block 		 { display: block; }
.inline-block{ display: inline-block; }
.grid 		 { display: grid; }
.inline-grid { display: inline-grid; }
.flex 		 { display: flex; }
.inline-flex { display: inline-flex; }
.table		 { display: table; }
.inline-table{ display: inline-table; }
.none,
.js-disabled #theme-toggle,
.hidden 	 { display: none !important; }

/* -----------------------------------------------
	3.9 Animations
----------------------------------------------- */
/* --- from bottom --- */
.a-from-top,
.a-from-bottom,
.a-from-left,
/* .elementor-widget-heading, .elementor-widget-text-editor, .animate, */
.a-from-right {
	opacity: 0;
	transform: translateY(var(--a-distance, 40px)) translateX(0);
	transition: all var(--a-timing-default, 0.2s) var(--a-easing-default, ease);
}
/* .elementor-widget-button .elementor-button, */
.button {
	opacity: 0;
	transform: translateY(var(--a-distance, 40px));
}
/* --- from top --- */
.a-from-top { transform: translateY(calc(var(--a-distance, 40px) * -1)) translateX(0); }
/* --- from right --- */
.a-from-right { transform: translateY(0) translateX(var(--a-distance, 40px)); }
/* --- from left --- */
.a-from-left { transform: translateY(0) translateX(calc(var(--a-distance, 40px) * -1)); }
/* --- fade in --- */
.a-fade-in,.fadeIn {
	/* opacity: 0; */
	transition: all var(--a-timing-default, 0.2s) var(--a-easing-default, ease);
}
/* --- Delay --- */
.a-delay-0ms  	{ transition-delay: 0ms;  	}
.a-delay-100ms  { transition-delay: 100ms;  }
.a-delay-200ms  { transition-delay: 200ms;  }
.a-delay-300ms  { transition-delay: 300ms;  }
.a-delay-400ms  { transition-delay: 400ms;  }
.a-delay-500ms  { transition-delay: 500ms;  }
.a-delay-600ms  { transition-delay: 600ms;  }
.a-delay-700ms  { transition-delay: 700ms;  }
.a-delay-800ms  { transition-delay: 800ms;  }
.a-delay-900ms  { transition-delay: 900ms;  }
.a-delay-1000ms { transition-delay: 1000ms; }
.a-delay-1100ms { transition-delay: 1100ms; }
.a-delay-1200ms { transition-delay: 1200ms; }
.a-delay-1300ms { transition-delay: 1300ms; }
.a-delay-1400ms { transition-delay: 1400ms; }
.a-delay-1500ms { transition-delay: 1500ms; }
.a-delay-1600ms { transition-delay: 1600ms; }
.a-delay-1700ms { transition-delay: 1700ms; }
.a-delay-1800ms { transition-delay: 1800ms; }
.a-delay-1900ms { transition-delay: 1900ms; }
.a-delay-2000ms { transition-delay: 2000ms; }
.a-delay-2100ms { transition-delay: 2100ms; }
.a-delay-2200ms { transition-delay: 2200ms; }
.a-delay-2300ms { transition-delay: 2300ms; }
.a-delay-2400ms { transition-delay: 2400ms; }
.a-delay-2500ms { transition-delay: 2500ms; }
.a-delay-2600ms { transition-delay: 2600ms; }
.a-delay-2700ms { transition-delay: 2700ms; }
.a-delay-2800ms { transition-delay: 2800ms; }
.a-delay-2900ms { transition-delay: 2900ms; }
.a-delay-3000ms { transition-delay: 3000ms; }
.a-delay-3100ms { transition-delay: 3100ms; }
.a-delay-3200ms { transition-delay: 3200ms; }
.a-delay-3300ms { transition-delay: 3300ms; }
.a-delay-3400ms { transition-delay: 3400ms; }
.a-delay-3500ms { transition-delay: 3500ms; }
.a-delay-3600ms { transition-delay: 3600ms; }
.a-delay-3700ms { transition-delay: 3700ms; }
.a-delay-3800ms { transition-delay: 3800ms; }
.a-delay-3900ms { transition-delay: 3900ms; }
.a-delay-4000ms { transition-delay: 4000ms; }
@media (min-width:1024px) {	
	.a-delay-l-0ms	  { transition-delay: 0ms;    }
	.a-delay-l-100ms  { transition-delay: 100ms;  }
	.a-delay-l-200ms  { transition-delay: 200ms;  }
	.a-delay-l-300ms  { transition-delay: 300ms;  }
	.a-delay-l-400ms  { transition-delay: 400ms;  }
	.a-delay-l-500ms  { transition-delay: 500ms;  }
	.a-delay-l-600ms  { transition-delay: 600ms;  }
	.a-delay-l-700ms  { transition-delay: 700ms;  }
	.a-delay-l-800ms  { transition-delay: 800ms;  }
	.a-delay-l-900ms  { transition-delay: 900ms;  }
	.a-delay-l-1000ms { transition-delay: 1000ms; }
	.a-delay-l-1100ms { transition-delay: 1100ms; }
	.a-delay-l-1200ms { transition-delay: 1200ms; }
	.a-delay-l-1300ms { transition-delay: 1300ms; }
	.a-delay-l-1400ms { transition-delay: 1400ms; }
	.a-delay-l-1500ms { transition-delay: 1500ms; }
	.a-delay-l-1600ms { transition-delay: 1600ms; }
	.a-delay-l-1700ms { transition-delay: 1700ms; }
	.a-delay-l-1800ms { transition-delay: 1800ms; }
	.a-delay-l-1900ms { transition-delay: 1900ms; }
	.a-delay-l-2000ms { transition-delay: 2000ms; }
	.a-delay-l-2100ms { transition-delay: 2100ms; }
	.a-delay-l-2200ms { transition-delay: 2200ms; }
	.a-delay-l-2300ms { transition-delay: 2300ms; }
	.a-delay-l-2400ms { transition-delay: 2400ms; }
	.a-delay-l-2500ms { transition-delay: 2500ms; }
	.a-delay-l-2600ms { transition-delay: 2600ms; }
	.a-delay-l-2700ms { transition-delay: 2700ms; }
	.a-delay-l-2800ms { transition-delay: 2800ms; }
	.a-delay-l-2900ms { transition-delay: 2900ms; }
	.a-delay-l-3000ms { transition-delay: 3000ms; }
	.a-delay-l-3100ms { transition-delay: 3100ms; }
	.a-delay-l-3200ms { transition-delay: 3200ms; }
	.a-delay-l-3300ms { transition-delay: 3300ms; }
	.a-delay-l-3400ms { transition-delay: 3400ms; }
	.a-delay-l-3500ms { transition-delay: 3500ms; }
	.a-delay-l-3600ms { transition-delay: 3600ms; }
	.a-delay-l-3700ms { transition-delay: 3700ms; }
	.a-delay-l-3800ms { transition-delay: 3800ms; }
	.a-delay-l-3900ms { transition-delay: 3900ms; }
	.a-delay-l-4000ms { transition-delay: 4000ms; }
}
@media (min-width:768px) {
	.a-delay-m-0ms	  { transition-delay: 0ms;    }
	.a-delay-m-100ms  { transition-delay: 100ms;  }
	.a-delay-m-200ms  { transition-delay: 200ms;  }
	.a-delay-m-300ms  { transition-delay: 300ms;  }
	.a-delay-m-400ms  { transition-delay: 400ms;  }
	.a-delay-m-500ms  { transition-delay: 500ms;  }
	.a-delay-m-600ms  { transition-delay: 600ms;  }
	.a-delay-m-700ms  { transition-delay: 700ms;  }
	.a-delay-m-800ms  { transition-delay: 800ms;  }
	.a-delay-m-900ms  { transition-delay: 900ms;  }
	.a-delay-m-1000ms { transition-delay: 1000ms; }
	.a-delay-m-1100ms { transition-delay: 1100ms; }
	.a-delay-m-1200ms { transition-delay: 1200ms; }
	.a-delay-m-1300ms { transition-delay: 1300ms; }
	.a-delay-m-1400ms { transition-delay: 1400ms; }
	.a-delay-m-1500ms { transition-delay: 1500ms; }
	.a-delay-m-1600ms { transition-delay: 1600ms; }
	.a-delay-m-1700ms { transition-delay: 1700ms; }
	.a-delay-m-1800ms { transition-delay: 1800ms; }
	.a-delay-m-1900ms { transition-delay: 1900ms; }
	.a-delay-m-2000ms { transition-delay: 2000ms; }
	.a-delay-m-2100ms { transition-delay: 2100ms; }
	.a-delay-m-2200ms { transition-delay: 2200ms; }
	.a-delay-m-2300ms { transition-delay: 2300ms; }
	.a-delay-m-2400ms { transition-delay: 2400ms; }
	.a-delay-m-2500ms { transition-delay: 2500ms; }
	.a-delay-m-2600ms { transition-delay: 2600ms; }
	.a-delay-m-2700ms { transition-delay: 2700ms; }
	.a-delay-m-2800ms { transition-delay: 2800ms; }
	.a-delay-m-2900ms { transition-delay: 2900ms; }
	.a-delay-m-3000ms { transition-delay: 3000ms; }
	.a-delay-m-3100ms { transition-delay: 3100ms; }
	.a-delay-m-3200ms { transition-delay: 3200ms; }
	.a-delay-m-3300ms { transition-delay: 3300ms; }
	.a-delay-m-3400ms { transition-delay: 3400ms; }
	.a-delay-m-3500ms { transition-delay: 3500ms; }
	.a-delay-m-3600ms { transition-delay: 3600ms; }
	.a-delay-m-3700ms { transition-delay: 3700ms; }
	.a-delay-m-3800ms { transition-delay: 3800ms; }
	.a-delay-m-3900ms { transition-delay: 3900ms; }
	.a-delay-m-4000ms { transition-delay: 4000ms; }
}
@media (max-width:767px) {
	.a-delay-s-0ms	  { transition-delay: 0ms;    }
	.a-delay-s-100ms  { transition-delay: 100ms;  }
	.a-delay-s-200ms  { transition-delay: 200ms;  }
	.a-delay-s-300ms  { transition-delay: 300ms;  }
	.a-delay-s-400ms  { transition-delay: 400ms;  }
	.a-delay-s-500ms  { transition-delay: 500ms;  }
	.a-delay-s-600ms  { transition-delay: 600ms;  }
	.a-delay-s-700ms  { transition-delay: 700ms;  }
	.a-delay-s-800ms  { transition-delay: 800ms;  }
	.a-delay-s-900ms  { transition-delay: 900ms;  }
	.a-delay-s-1000ms { transition-delay: 1000ms; }
	.a-delay-s-1100ms { transition-delay: 1100ms; }
	.a-delay-s-1200ms { transition-delay: 1200ms; }
	.a-delay-s-1300ms { transition-delay: 1300ms; }
	.a-delay-s-1400ms { transition-delay: 1400ms; }
	.a-delay-s-1500ms { transition-delay: 1500ms; }
	.a-delay-s-1600ms { transition-delay: 1600ms; }
	.a-delay-s-1700ms { transition-delay: 1700ms; }
	.a-delay-s-1800ms { transition-delay: 1800ms; }
	.a-delay-s-1900ms { transition-delay: 1900ms; }
	.a-delay-s-2000ms { transition-delay: 2000ms; }
	.a-delay-s-2100ms { transition-delay: 2100ms; }
	.a-delay-s-2200ms { transition-delay: 2200ms; }
	.a-delay-s-2300ms { transition-delay: 2300ms; }
	.a-delay-s-2400ms { transition-delay: 2400ms; }
	.a-delay-s-2500ms { transition-delay: 2500ms; }
	.a-delay-s-2600ms { transition-delay: 2600ms; }
	.a-delay-s-2700ms { transition-delay: 2700ms; }
	.a-delay-s-2800ms { transition-delay: 2800ms; }
	.a-delay-s-2900ms { transition-delay: 2900ms; }
	.a-delay-s-3000ms { transition-delay: 3000ms; }
	.a-delay-s-3100ms { transition-delay: 3100ms; }
	.a-delay-s-3200ms { transition-delay: 3200ms; }
	.a-delay-s-3300ms { transition-delay: 3300ms; }
	.a-delay-s-3400ms { transition-delay: 3400ms; }
	.a-delay-s-3500ms { transition-delay: 3500ms; }
	.a-delay-s-3600ms { transition-delay: 3600ms; }
	.a-delay-s-3700ms { transition-delay: 3700ms; }
	.a-delay-s-3800ms { transition-delay: 3800ms; }
	.a-delay-s-3900ms { transition-delay: 3900ms; }
	.a-delay-s-4000ms { transition-delay: 4000ms; }
}
/* --- animation complete --- */
/* --- when html has debug class --- */
.animations-disabled .elementor-widget-heading,.animations-disabled .elementor-widget-text-editor,.animations-disabled .elementor-widget-button .elementor-button,.animations-disabled .button,.animations-disabled .animate,.animations-disabled .a-from-top,.animations-disabled .a-from-bottom,.animations-disabled .a-from-left,.animations-disabled .a-from-right,
/* --- when elementor editor is active --- */
.elementor-editor-active .elementor-widget-heading,.elementor-editor-active .elementor-widget-text-editor,.elementor-editor-active .elementor-widget-button .elementor-button,.elementor-editor-active .button,.elementor-editor-active .animate,.elementor-editor-active .a-from-top,.elementor-editor-active .a-from-bottom,.elementor-editor-active .a-from-left,.elementor-editor-active .a-from-right,
/* --- when element gets inView class --- */
.elementor-widget-heading.inView,.elementor-widget-text-editor.inView,.elementor-widget-button .elementor-button.inView,.button.inView,.a-from-top.inView,.a-from-bottom.inView,.a-from-left.inView,.a-from-right.inView,.animate.inView {
	opacity: 1;
	transform: translateY(0) translateX(0);
}
/* --- fade-in effect --- */
.elementor-editor-active .a-fade-in,.elementor-editor-active .fadeIn,.animations-disabled .fadeIn,
.a-fade-in.inView,.fadeIn.inView {
	opacity: 1;
}

/* -----------------------------------------------
	3.10 Positions
----------------------------------------------- */
.absolute 	{ position: absolute; }
.relative 	{ position: relative; }
.sticky 	{ position: sticky; }
.fixed 		{ position: fixed; }

/* -----------------------------------------------
	3.11 Grid / Flex Alignments
----------------------------------------------- */
.v-start 			{align-items: flex-start;}
.v-center 			{align-items: center;}
.v-end 				{align-items: flex-end;}
.h-start 			{justify-content: flex-start;}
.h-center 			{justify-content: center;}
.h-end 				{justify-content: flex-end;}
.h-space-between 	{justify-content: space-between;}
.h-space-evenly 	{justify-content: space-evenly;}
.h-space-around 	{justify-content: space-around;}

/* -----------------------------------------------
	3.12 Container Sizes
----------------------------------------------- */
.container.fullwidth,
.wp-block-group.fullwidth > .wp-block-group__inner-container {
	max-width: 100%;
	padding-left: 0;
	padding-right: 0;
}

.container.xl,
.wp-block-group.xl > .wp-block-group__inner-container {
	max-width: 100%;
	padding-left: var(--space-s, clamp(2rem, -0.054rem + 2.700vw, 4rem));
	padding-right: var(--space-s, clamp(2rem, -0.054rem + 2.700vw, 4rem));
}

.container.s,
.wp-block-group.s > .wp-block-group__inner-container {
	max-width: var(--container-width-s, 1280px);
}

.container.xs,
.wp-block-group.xs > .wp-block-group__inner-container {
	max-width: var(--container-width-xs, 1023px);
}

.container.xxs,
.wp-block-group.xxs > .wp-block-group__inner-container {
	max-width: var(--container-width-xxs, 767px);
}

.container.container-inner {
	padding-left: 0;
	padding-right: 0;
}

.container.flex > .container-inner {
	margin: 0;
}

/* -----------------------------------------------
	3.13 Visibility
----------------------------------------------- */
/* --- All states at once --- */
.initially-hidden {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}
.initially-hidden.active, .initially-hidden.visible {
	opacity: 1;
	visibility: visible;
	pointer-events: all;
}
/* --- Opacity --- */
.opacity-0 { opacity: 0; }
.opacity-0.active, .opacity-0.visible,.opacity-0.opacity-1 { opacity: 1; }
/* --- Visibility --- */
.visibility-hidden { visibility: hidden; }
.visibility-hidden.active, .visibility-hidden.visible,.visibility-hidden.visibility-visible { visibility: visible; }
/* --- Pointer Events --- */
.pointer-events-none { pointer-events: none; }
.pointer-events-none.active, .pointer-events-none.visible, .pointer-events-none.pointer-events-all { pointer-events: all; }