body {
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 1.20rem;
}

:root {
    --custom-primary: #224e82;
    --custom-secondary: #dbdfe9;
    --custom-light: #ffffff;
    --custom-dark: #1a1a1a;
	--custom-dark-primary: #6f7880;
}

body {
	overflow-y: scroll;
	font-family: "Inter", sans-serif;
  	font-optical-sizing: auto;
  	font-weight: 400;
  	font-style: normal;
	color: var(--custom-dark);
}

.navbar-brand {
	width: 2.60rem;
	height: 2.60rem;
}

/* header navbar */
header .nav-link {
	position: relative;
  	font-family: "Inter Tight", sans-serif;
  	font-optical-sizing: auto;
  	font-style: normal;
	text-decoration: none;
}

header .nav-link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background-color: var(--custom-light);
  transition: width 0.6s ease;
}

header .nav-link:hover::after {
  width: 100%;
}

header .navbar-brand:hover,
header .nav-link:hover:hover {
	color: var(--custom-light);
}

/* header contact */
.header-contact svg {
	height: 1.00rem;
	fill: var(--custom-primary);
}

.header-contact a {
    color: var(--custom-dark-primary);
    text-decoration: none;
}

.header-contact a:hover {
    color: var(--custom-dark-primary);
    text-decoration: underline;
}

.icon-wrapper {
    width: 1.00rem;
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.icon-wrapper svg {
    width: 100%;
    height: auto;
    max-height: 20px;
}

/* hero */
.hero-background,
.hero-height {
	height: 700px;
}

/* social-icons */
.social-icons a {
	display: inline-block;
	height: 1.60rem;
}

.social-icons a svg {
	vertical-align: top;
	height: inherit;
}

.social-icons a + a {
    margin-left: 0.20rem;
}

/* footer */
footer a {
    color: var(--custom-dark-primary);
    text-decoration: none;
}

footer a:hover {
	color: var(--custom-dark);
}

/* heading numbering */
.heading-numbering {
	counter-reset: h2-counter;
}

.heading-numbering h2 {
  counter-reset: h3-counter;
  counter-increment: h2-counter;
}

.heading-numbering h2::before {
  content: counter(h2-counter) " ";
}

.heading-numbering h3 {
  counter-reset: h4-counter;
  counter-increment: h3-counter;
}

.heading-numbering h3::before {
  content: counter(h2-counter) "." counter(h3-counter) " ";
}

.heading-numbering h4 {
  counter-increment: h4-counter;
}

.heading-numbering h4::before {
  content: counter(h2-counter) "." counter(h3-counter) "." counter(h4-counter) " ";
}

/* TOC */
ul.toc {
  counter-reset: section;
  list-style: none;
  padding-left: 0;
}

ul.toc ul {
  counter-reset: subsection;
  list-style: none;
  padding-left: 2em;
}

ul.toc ul ul {
  counter-reset: subsubsection;
}

ul.toc > li::before {
  counter-increment: section;
  content: counter(section) " ";
}

ul.toc > li > ul > li::before {
  counter-increment: subsection;
  content: counter(section) "." counter(subsection) " ";
}

ul.toc > li > ul > li > ul > li::before {
  counter-increment: subsubsection;
  content: counter(section) "." counter(subsection) "." counter(subsubsection) " ";
}

/* logo slider */
.logo-slider {
	animation: logo-slider-slide-in 30s linear infinite;
    white-space: nowrap;
}

.logo-slider > div {
    display: inline-block;
    margin: 0px 0;
}

.logo-slider > div + div {
	margin-left: 3.00rem;
}

.logo-slider > div > div {
	display: inline-flex;
    flex-direction: column;
    align-items: center;
	animation: logo-slider-fade-in 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955) forwards;
}

.logo-slider > div > div > div {
	margin-top: 0.40rem;
	font-size: 0.875rem;
	color: var(--custom-secondary);
}

.logo-slider > div > div + div {
	margin-left: 3.00rem;
}

.logo-slider > div > div > svg {
	height: 3.00rem;
	fill: var(--custom-secondary);
}

@keyframes logo-slider-slide-in {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-100%, 0, 0);
  }
}

@keyframes logo-slider-fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/* text formatting */
.hero + section,
section + section {
	margin-top: 5.00rem;
}

h1 {
	font-family: "Inter Tight", sans-serif;
  	font-optical-sizing: auto;
  	font-weight: 600;
  	font-style: normal;
	font-size: 4.00rem;
	color: var(--custom-light);
}

h1.index-page-title {
	font-size: 6.00rem;
	letter-spacing: -0.30rem;
}

h2,
h3,
h4,
h5,
h6 {
	font-family: "Inter Tight", sans-serif;
  	font-optical-sizing: auto;
  	font-weight: 600;
  	font-style: normal;
	color: var(--custom-primary);
}

p,
li,
section a {
	font-size: 1.20rem;
}

p,
h1,
h2,
h3,
h4,
h5,
h6,
main li,
.custom-hyphens {
	hyphens: auto;
}

p + h2,
div + h2,
ol + h2,
ul + h2,
p + h3,
div + h3,
ol + h3,
ul + h3,
p + h4,
div + h4,
ol + h4,
ul + h4,
p + h5,
div + h5,
ol + h5,
ul + h5,
p + h6,
div + h6,
ol + h6,
ul + h6 {
	margin-top: 3.00rem;
}

main li + li {
	margin-top: 0.20rem;
}

section > div + div {
	margin-top: 1.00rem;
}

.form-check-input:checked {
    background-color: var(--custom-primary);
    border-color: var(--custom-primary);
}

.columns-2 {
	column-count: 1;
	column-gap: 0;
}

@media (min-width: 768px) {

	.columns-2 {
		column-count: 2;
		column-gap: 2.00rem;
	}

}


/* links */
main a {
	color: var(--custom-primary);
	text-decoration: none;
}

main a:hover {
	text-decoration: underline;
}

/* alert */
.alert svg {
	height: 1.80rem;
}

.alert-danger svg {
	fill: var(--bs-danger-text-emphasis);
}

.alert-danger h5,
.alert-danger a {
	color: var(--bs-danger-text-emphasis);
}

.alert-danger a {
	font-weight: 500;
}

.alert-success svg {
	fill: var(--bs-success-text-emphasis);
}

.alert-success h5,
.alert-success a {
	color: var(--bs-success-text-emphasis);
}

.alert-success a {
	font-weight: 500;
}




/* custom classes */
.custom-text-primary {
	color: var(--custom-primary) !important;
}

.custom-bg-primary {
	background-color: var(--custom-primary) !important;
}

.custom-bg-secondary {
	background-color: var(--custom-secondary) !important;
}

.custom-text-dark-primary {
	color: var(--custom-dark-primary) !important;
}

.custom-bg-dark-primary {
	background-color: var(--custom-dark-primary) !important;
}

.custom-border-dark-primary {
	border-color: var(--custom-dark-primary) !important;
}

.custom-text-light {
	color: var(--custom-light) !important;
}

.custom-bg-light {
	background-color: var(--custom-light) !important;
}

.custom-border-light {
	border-color: var(--custom-light) !important;
}

.custom-text-dark {
	color: var(--custom-dark) !important;
}

.custom-font-secondary {
	font-family: "Inter Tight", sans-serif !important;
  	font-optical-sizing: auto !important;
  	font-style: normal !important;
}

.custom-fw-thin {
	font-weight: 100 !important;
}

.custom-fw-extralight {
	font-weight: 200 !important;
}

.custom-fw-light {
	font-weight: 300 !important;
}

.custom-fw-regular {
	font-weight: 400 !important;
}

.custom-fw-medium {
	font-weight: 500 !important;
}

.custom-fw-semibold {
	font-weight: 600 !important;
}

.custom-fw-bold {
	font-weight: 700 !important;
}

.custom-fw-extrabold {
	font-weight: 800 !important;
}

.custom-fw-black {
	font-weight: 900 !important;
}

.custom-text-justify {
	text-align: justify;
}

.custom-fs-small {
	font-size: 0.875rem;
}
