/* ========================
	 STYLES
========================== */
/* ======== Colors ======== */
:root {
	--primary: #2e6d9c;
	--primary-rgb: 46, 109, 156;
	--secondary: #f87060;
	--secondary-rgb: 248, 112, 96;
	--tertiary: #5cb85c;
	--tertiary-rgb: 92, 184, 92;
	--quaternary: #eef4fa;
	--quaternary-rgb: 238, 244, 250;
	--quinary: #4a89b8;
	--quinary-rgb: 74, 137, 184;
	--default: #383b42;
	--default-rgb: 56, 59, 66;
	--background: #fcfcfc;
	--background-rgb: 252, 252, 252;
	--white: #fff;
	--white-rgb: 255, 255, 255;
	--light-gray: #f5f5f5;
	--light-gray-rgb: 245, 245, 245;
	--dark-gray: #bbb;
	--dark-gray-rgb: 187, 187, 187;
	--gray: #666;
	--gray-rgb: 102, 102, 102;
	--dark: #27262a;
	--dark-rgb: 39, 38, 42;
	--black: #000;
	--black-rgb: 0, 0, 0;
	--success: #5cb85c;
	--success-rgb: 92, 184, 92;
	--info: #5bc0de;
	--info-rgb: 91, 192, 222;
	--warning: #f0ad4e;
	--warning-rgb: 240, 173, 78;
	--danger: #d9534f;
	--danger-rgb: 217, 83, 79;
	--logo-blue: #14288c;
	--logo-green: #38b238;
	--logo-red: #b23838;
	--logo-dark-blue: #2626b2;
}

::-moz-selection {
	color: #fff;
	background: var(--primary);
}

::selection {
	color: #fff;
	background: var(--primary);
}


/* ======== Container ======== */
.container,
.container-fluid {
	width: 100%;
	margin-right: auto;
	margin-left: auto;
	padding-right: 1.5rem;
	padding-left: 1.5rem;
	box-sizing: border-box;
}

@media (min-width: 576px) {
	.container {
		max-width: 54rem;
	}
}

@media (min-width: 768px) {
	.container {
		max-width: 72rem;
	}
}

@media (min-width: 992px) {
	.container {
		max-width: 96rem;
	}
}

@media (min-width: 1200px) {
	.container {
		max-width: 114rem;
	}
}

@media (min-width: 1400px) {
	.container {
		max-width: 132rem;
	}
}

.container-fluid {
	width: 100%;
}

/* ======== Rows ======== */
.row {
	display: flex;
	flex-wrap: wrap;
	margin-right: -1.5rem;
	margin-left: -1.5rem;
}

.container::after,
.container-fluid::after,
.row::after {
	content: "";
	display: table;
	clear: both;
}

/* ======== Utility Classes ======== */

/* ======== Typography Utilities ======== */
/* Headings Classes (to apply heading styles to non-heading elements) */
.h1 {
	font-size: 3.6rem;
	font-weight: 700;
	line-height: 1.2;
	margin-bottom: 1.5rem;
}
.h2 {
	font-size: 3rem;
	font-weight: 600;
	line-height: 1.3;
	margin-bottom: 1.5rem;
}
.h3 {
	font-size: 2.4rem;
	font-weight: 600;
	line-height: 1.4;
	margin-bottom: 1.5rem;
}
.h4 {
	font-size: 2rem;
	font-weight: 500;
	line-height: 1.5;
	margin-bottom: 1.5rem;
}
.h5 {
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.5;
	margin-bottom: 1.5rem;
}
.h6 {
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.6;
	margin-bottom: 1.5rem;
}

/* Text Sizes */
.text-xs { font-size: 1.2rem; }
.text-sm { font-size: 1.4rem; }
.text-base { font-size: 1.6rem; }
.text-lg { font-size: 1.8rem; }
.text-xl { font-size: 2rem; }
.text-2xl { font-size: 2.4rem; }
.text-3xl { font-size: 3rem; }
.text-4xl { font-size: 3.6rem; }

/* Font Weights */
.font-light { font-weight: 300; }
.font-normal { font-weight: 400; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }
.font-extrabold { font-weight: 800; }

/* Text Alignment */
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-justify { text-align: justify; }

/* Text Transforms */
.uppercase { text-transform: uppercase; }
.lowercase { text-transform: lowercase; }
.capitalize { text-transform: capitalize; }

/* Line Heights */
.leading-tight { line-height: 1.2; }
.leading-normal { line-height: 1.5; }
.leading-loose { line-height: 1.8; }

/* Letter Spacing */
.tracking-tight { letter-spacing: -0.05em; }
.tracking-normal { letter-spacing: 0; }
.tracking-wide { letter-spacing: 0.05em; }
.tracking-wider { letter-spacing: 0.1em; }

/* ======== Color Utilities ======== */
/* Background Colors */
.bg-primary { background-color: var(--primary)!important; }
.bg-secondary { background-color: var(--secondary)!important; }
.bg-tertiary { background-color: var(--tertiary)!important; }
.bg-quaternary { background-color: var(--quaternary)!important; }
.bg-quinary { background-color: var(--quinary)!important; }
.bg-white { background-color: var(--white)!important; }
.bg-light-gray { background-color: var(--light-gray)!important; }
.bg-dark-gray { background-color: var(--dark-gray)!important; }
.bg-gray { background-color: var(--gray)!important; }
.bg-dark { background-color: var(--dark)!important; }
.bg-black { background-color: var(--black)!important; }
.bg-default { background-color: var(--default)!important; }
.bg-background { background-color: var(--background)!important; }

/* Text Colors */
.text-primary { color: var(--primary)!important; }
.text-secondary { color: var(--secondary)!important; }
.text-tertiary { color: var(--tertiary)!important; }
.text-quaternary { color: var(--quaternary)!important; }
.text-quinary { color: var(--quinary)!important; }
.text-white { color: var(--white)!important; }
.text-light-gray { color: var(--light-gray)!important; }
.text-dark-gray { color: var(--dark-gray)!important; }
.text-gray { color: var(--gray)!important; }
.text-dark { color: var(--dark)!important; }
.text-black { color: var(--black)!important; }
.text-default { color: var(--default)!important; }

/* Opacity Variants */
.opacity-10 { opacity: .1; }
.opacity-25 { opacity: .25; }
.opacity-50 { opacity: .5; }
.opacity-75 { opacity: .75; }
.opacity-90 { opacity: .9; }

/* ======== Spacing Utilities ======== */
/* Margin */
.m-0 {
	margin: 0;
}

.m-1 {
	margin: 0.5rem;
}

.m-2 {
	margin: 1rem;
}

.m-3 {
	margin: 1.5rem;
}

.m-4 {
	margin: 2rem;
}

.m-5 {
	margin: 2.5rem;
}

.m-6 {
	margin: 3rem;
}

.m-8 {
	margin: 4rem;
}

.m-10 {
	margin: 5rem;
}

/* Margin Top */
.mt-0 {

	margin-top: 0;
}

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

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

.mt-3 {
	margin-top: 1.5rem;
}

.mt-4 {
	margin-top: 2rem;
}

.mt-5 {
	margin-top: 2.5rem;
}

.mt-6 {
	margin-top: 3rem;
}

.mt-8 {
	margin-top: 4rem;
}

.mt-10 {
	margin-top: 5rem;
}

/* Margin Right */
.mr-0 {
	margin-right: 0;
}

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

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

.mr-3 {
	margin-right: 1.5rem;
}

.mr-4 {
	margin-right: 2rem;
}

.mr-5 {
	margin-right: 2.5rem;
}

.mr-6 {
	margin-right: 3rem;
}

.mr-8 {
	margin-right: 4rem;
}

.mr-10 {
	margin-right: 5rem;
}

/* Margin Bottom */
.mb-0 {
	margin-bottom: 0;
}

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

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

.mb-3 {
	margin-bottom: 1.5rem;
}

.mb-4 {
	margin-bottom: 2rem;
}

.mb-5 {
	margin-bottom: 2.5rem;
}

.mb-6 {
	margin-bottom: 3rem;
}

.mb-8 {
	margin-bottom: 4rem;
}

.mb-10 {
	margin-bottom: 5rem;
}

/* Margin Left */
.ml-0 {
	margin-left: 0;
}

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

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

.ml-3 {
	margin-left: 1.5rem;
}

.ml-4 {
	margin-left: 2rem;
}

.ml-5 {
	margin-left: 2.5rem;
}

.ml-6 {
	margin-left: 3rem;
}

.ml-8 {
	margin-left: 4rem;
}

.ml-10 {
	margin-left: 5rem;
}

/* Margin X (left & right) */
.mx-0 {
	margin-left: 0;
	margin-right: 0;
}

.mx-1 {
	margin-left: 0.5rem;
	margin-right: 0.5rem;
}

.mx-2 {
	margin-left: 1rem;
	margin-right: 1rem;
}

.mx-3 {
	margin-left: 1.5rem;
	margin-right: 1.5rem;
}

.mx-4 {
	margin-left: 2rem;
	margin-right: 2rem;
}

.mx-5 {
	margin-left: 2.5rem;
	margin-right: 2.5rem;
}

.mx-6 {
	margin-left: 3rem;
	margin-right: 3rem;
}

.mx-8 {
	margin-left: 4rem;
	margin-right: 4rem;
}

.mx-10 {
	margin-left: 5rem;
	margin-right: 5rem;
}

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

/* Margin Y (top & bottom) */
.my-0 {
	margin-top: 0;
	margin-bottom: 0;
}

.my-1 {
	margin-top: 0.5rem;
	margin-bottom: 0.5rem;
}

.my-2 {
	margin-top: 1rem;
	margin-bottom: 1rem;
}

.my-3 {
	margin-top: 1.5rem;
	margin-bottom: 1.5rem;
}

.my-4 {
	margin-top: 2rem;
	margin-bottom: 2rem;
}

.my-5 {
	margin-top: 2.5rem;
	margin-bottom: 2.5rem;
}

.my-6 {
	margin-top: 3rem;
	margin-bottom: 3rem;
}

.my-8 {
	margin-top: 4rem;
	margin-bottom: 4rem;
}

.my-10 {
	margin-top: 5rem;
	margin-bottom: 5rem;
}

/* Padding */
.p-0 {
	padding: 0;
}

.p-1 {
	padding: 0.5rem;
}

.p-2 {
	padding: 1rem;
}

.p-3 {
	padding: 1.5rem;
}

.p-4 {
	padding: 2rem;
}

.p-5 {
	padding: 2.5rem;
}

.p-6 {
	padding: 3rem;
}

.p-8 {
	padding: 4rem;
}

.p-10 {
	padding: 5rem;
}

/* Padding Top */
.pt-0 {
	padding-top: 0;
}

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

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

.pt-3 {
	padding-top: 1.5rem;
}

.pt-4 {
	padding-top: 2rem;
}

.pt-5 {
	padding-top: 2.5rem;
}

.pt-6 {
	padding-top: 3rem;
}

.pt-8 {
	padding-top: 4rem;
}

.pt-10 {
	padding-top: 5rem;
}

/* Padding Right */
.pr-0 {
	padding-right: 0;
}

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

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

.pr-3 {
	padding-right: 1.5rem;
}

.pr-4 {
	padding-right: 2rem;
}

.pr-5 {
	padding-right: 2.5rem;
}

.pr-6 {
	padding-right: 3rem;
}

.pr-8 {
	padding-right: 4rem;
}

.pr-10 {
	padding-right: 5rem;
}

/* Padding Bottom */
.pb-0 {
	padding-bottom: 0;
}

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

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

.pb-3 {
	padding-bottom: 1.5rem;
}

.pb-4 {
	padding-bottom: 2rem;
}

.pb-5 {
	padding-bottom: 2.5rem;
}

.pb-6 {
	padding-bottom: 3rem;
}

.pb-8 {
	padding-bottom: 4rem;
}

.pb-10 {
	padding-bottom: 5rem;
}

/* Padding Left */
.pl-0 {
	padding-left: 0;
}

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

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

.pl-3 {
	padding-left: 1.5rem;
}

.pl-4 {
	padding-left: 2rem;
}

.pl-5 {
	padding-left: 2.5rem;
}

.pl-6 {
	padding-left: 3rem;
}

.pl-8 {
	padding-left: 4rem;
}

.pl-10 {
	padding-left: 5rem;
}

/* Padding X (left & right) */
.px-0 {
	padding-left: 0;
	padding-right: 0;
}

.px-1 {
	padding-left: 0.5rem;
	padding-right: 0.5rem;
}

.px-2 {
	padding-left: 1rem;
	padding-right: 1rem;
}

.px-3 {
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

.px-4 {
	padding-left: 2rem;
	padding-right: 2rem;
}

.px-5 {
	padding-left: 2.5rem;
	padding-right: 2.5rem;
}

.px-6 {
	padding-left: 3rem;
	padding-right: 3rem;
}

.px-8 {
	padding-left: 4rem;
	padding-right: 4rem;
}

.px-10 {
	padding-left: 5rem;
	padding-right: 5rem;
}

/* Padding Y (top & bottom) */
.py-0 {
	padding-top: 0;
	padding-bottom: 0;
}

.py-1 {
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
}

.py-2 {
	padding-top: 1rem;
	padding-bottom: 1rem;
}

.py-3 {
	padding-top: 1.5rem;
	padding-bottom: 1.5rem;
}

.py-4 {
	padding-top: 2rem;
	padding-bottom: 2rem;
}

.py-5 {
	padding-top: 2.5rem;
	padding-bottom: 2.5rem;
}

.py-6 {
	padding-top: 3rem;
	padding-bottom: 3rem;
}

.py-8 {
	padding-top: 4rem;
	padding-bottom: 4rem;
}

.py-10 {
	padding-top: 5rem;
	padding-bottom: 5rem;
}

/* ======== Display Utilities ======== */
.d-none {
	display: none;
}

.d-inline {
	display: inline;
}

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

.d-block {
	display: block;
}

.d-flex {
	display: flex;
}

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

.d-grid {
	display: grid;
}

/* Flex Utilities */
.flex-row {
	flex-direction: row;
}

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

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

.flex-nowrap {
	flex-wrap: nowrap;
}

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

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

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

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

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

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

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

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

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

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

/* ======== Position Utilities ======== */
.position-static {
	position: static;
}

.position-relative {
	position: relative;
}

.position-absolute {
	position: absolute;
}

.position-fixed {
	position: fixed;
}

.position-sticky {
	position: sticky;
}

/* ======== Responsive Utilities ======== */
@media (max-width: 576px) {
	.d-sm-none {
		display: none;
	}
	
	.d-sm-block {
		display: block;
	}
	
	.d-sm-flex {
		display: flex;
	}
	
	.text-sm-center {
		text-align: center;
	}
}

@media (max-width: 768px) {
	.d-md-none {
		display: none;
	}
	
	.d-md-block {
		display: block;
	}
	
	.d-md-flex {
		display: flex;
	}
	
	.text-md-center {
		text-align: center;
	}
}

@media (max-width: 992px) {
	.d-lg-none {
		display: none;
	}
	
	.d-lg-block {
		display: block;
	}
	
	.d-lg-flex {
		display: flex;
	}
	
	.text-lg-center {
		text-align: center;
	}
}

@media (max-width: 1200px) {
	.d-xl-none {
		display: none;
	}
	
	.d-xl-block {
		display: block;
	}
	
	.d-xl-flex {
		display: flex;
	}
	
	.text-xl-center {
		text-align: center;
	}
}

/* Position */
.fixed { position: fixed; }
.top-0 { top: 0; }
.left-0 { left: 0; }
.right-0 { right: 0; }
.bottom-0 { bottom: 0; }

/* Sizes */
.w-100 { width: 100%; }
.w-100vw { width: 100vw; }
.h-100 { height: 100%; }
.h-100vh { height: 100vh; }
.h-36px { height: 36px; }
.h-32px { height: 32px; }
.h-01rem { height: 0.1rem; }
.w-3rem { width: 3rem; }
.h-2rem { height: 2rem; }
.w-4rem { width: 4rem; }
.h-4rem { height: 4rem; }
.w-2rem { width: 2rem; }
.w-14px { width: 1.4rem; }
.h-14px { height: 1.4rem; }

/* Flexbox */
.gap-2rem { gap: 2rem; }
.gap-16 { gap: 1.6rem; }

/* Borders */
.border-bottom { border-bottom: 1px solid rgba(var(--white-rgb), .2); }
.border-none { border: none; }
.border { border: 1px solid rgba(var(--white-rgb), .2); }
.rounded-50 { border-radius: 50%; }

/* Transparency */
.bg-transparent { background: transparent; }

/* Texts */
.text-decoration-none { text-decoration: none; }
.font-size-16 { font-size: 1.6rem; }
.font-size-14 { font-size: 1.4rem; }

/* Other Utilities */
.cursor-pointer { cursor: pointer; }
.transition { transition: all .3s ease; }
.transition-opacity { transition: opacity .3s ease; }
.opacity-0 { opacity: 0; }
.opacity-1 { opacity: 1; }
.transform-y-20px { transform: translateY(20px); }
.z-1000 { z-index: 1000; }
.z-1001 { z-index: 1001; }
.z-1002 { z-index: 1002; }
.overflow-y-auto { overflow-y: auto; }
.overflow-hidden { overflow: hidden; }