@charset "utf-8";
/* CSS Document */

/* Body - Default Font and Layout */
body {
	font-family: 'Roboto', sans-serif;
	font-size: 18px;
	font-weight: 400;
	color: #fff;

	background-color: #071624;
}

/* Body - Smooth Scroll */
html {
	scroll-behavior: smooth;
}

/* Custom Font */
@font-face {
    font-family: 'NewRedo';
    src: url('/fonts/newredo.ttf');
    font-display: swap;
}

/* Roboto (variable, weights 100-900) - self-hosted from /fonts/ */
@font-face {
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/fonts/roboto-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/fonts/roboto-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Roboto Condensed (variable, weights 100-900) - self-hosted from /fonts/ */
@font-face {
    font-family: 'Roboto Condensed';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/fonts/roboto-condensed-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Roboto Condensed';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/fonts/roboto-condensed-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Body - Links */
a {
	color: #fff;
	text-decoration: none;

	transition: 0.3s;
}
	a:hover {
		color: #f1f1f1;
		text-decoration: none;

		transition: 0.3s;
	}

/* Body - Lines */
hr {
	border-top: 3px solid #1ea4e4;

    width: 80%;
}

/* Body - Paragraphs */
p:last-child {
	margin-bottom: 0;
}
.truncate {
	overflow: hidden;
	text-overflow: ellipsis;

	display: -webkit-box;
  	-webkit-line-clamp: 4;
  	-webkit-box-orient: vertical;
}
.truncate_sm {
	overflow: hidden;
	text-overflow: ellipsis;

	display: -webkit-box;
  	-webkit-line-clamp: 2;
  	-webkit-box-orient: vertical;
}
blockquote {
	margin: 0;
}
.pquote {
	border-left: 2px solid #1ea4e4;

	font-size: 32px;
	font-weight: 600;
	text-align: right;
	line-height: 42px;

	display: block;
	float: right;

	width: 400px;

	padding: 0 0 0 10px;
}

/* Body - Headers */
h1, h2, h3, h4, h5 , h6 {
	font-family: 'Roboto Condensed', sans-serif;
	font-weight: 700;
}
	h1 {
		font-size: 72px;
	}
	h2 {
		font-size: 68px;
	}
	h3 {
		font-size: 56px;
	}
	h4 {
		font-size: 42px;
	}
	h5 {
		font-size: 38px;
	}
	h6 {
		font-size: 24px;
	}

/* Body - Default Buttons */
button {
	box-shadow: none !important;

	outline: none !important;
}
	*:focus {
		box-shadow: none !important;

		outline: none !important;
	}
	*:active {
		box-shadow: none !important;

		outline: none !important;
	}

/* Body - Borders */
.border-dotted {
	border: 2px dotted #d5d5d5;
}
.border-blue-left {
	border-left: 2px dotted #324d66;
}
.border-blue-right {
	border-right: 2px dotted #324d66;
}
.border-blue-top {
	border-top: 2px dotted #324d66;
}
.border-blue-bottom {
	border-bottom: 2px dotted #324d66;
}

/* Body - Lists */
.ul-01 {
	list-style: none;

	padding: 0;
	margin: 0;
}
	.ul-01 li {
		padding: 5px 0;
		margin: 0;
	}

.ul-02 {
	list-style: none;

	padding: 0;
	margin: 0;
}
	.ul-02 li {
		background: none;
		border-bottom: 1px dotted #ccc;

		padding: 8px 0px 8px 0px;
		margin: 0 8px 0 0;
	}
		.ul-02 li:last-child {
			border-bottom: none;
		}

.ul-03 {
	list-style: none;

	padding: 0;
	margin: 0;
}
	.ul-03 li {
		padding: 0 20px 0 0;
		margin: 0;

		display: inline-block;
	}
	.ul-03 li:last-child {
		padding: 0;
	}

/* Body - Default Navigation - Sticky */
.sticky-element {
    position: sticky;
    top: 0;

    width: 100%;

    z-index: 300;
}

/* Images */
.image-circle {
	position: absolute;
    top: 0;
    left: 0;
    right: 0;
	z-index: 20;

    margin: 0 auto;

	width: 100px;
    height: auto;
}
	.image-circle__number {
		padding-top: 24px;

		position: relative;
		z-index: 30;
	}
	.image-circle__line-left {
		border-top: 3px solid #F4F5F8;

		position: relative;
	    top: 50px;
	    right: -100px;
		z-index: 10;

	    width: 28%;

	    float: right;
	}
	.image-circle__line-right {
		border-top: 3px solid #F4F5F8;

		position: relative;
	    top: 50px;
	    left: -100px;
		z-index: 10;

	    width: 28%;

	    float: left;
	}
	.image-circle__line-straight {
		border-right: 8px solid #1ea4e4;

		position: relative;
	    top: 0;
	    left: 5px;
	    z-index: 10;

		width: 50%;
		height: 100%;
	}
		.image-circle__line-straight.left {
			left: 3px;
		}
		.image-circle__line-straight.right {
			left: 5px;
		}

	.image-circle__content {
		font-size: 18px;

		padding: 0px 50px;
	}

/* Service components — equal-width grid */
.service-component__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	margin-top: 3rem;
}

@media (min-width: 576px) {
	.service-component__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 992px) {
	.service-component__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		grid-auto-rows: 1fr;
	}
}

/* Service components — card */
.service-component__card {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	min-height: 0;
	padding: 14px 18px;
}

.service-component__header {
	gap: 8px;
}

.service-component__icon {
	display: block;
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	object-fit: contain;
	object-position: center;
}

.service-component__description {
	flex: 1;
	margin-top: 10px;
	font-size: 16px;
	line-height: 1.45;
}

.service-component__description p {
	margin-bottom: 0;
}

.service-component__description p + p {
	margin-top: 0.5em;
}

/* Service lifecycle — step card icon */
.lifecycle-step__icon {
	display: block;
	width: 50px;
	height: 50px;
	object-fit: contain;
	object-position: center;
	background: #f4f5f8;
}

/* Service lifecycle — timeline marker (round circle, no stretch) */
.lifecycle-step__marker .image-circle {
	width: 100px;
	height: 100px;
	object-fit: contain;
}

/* Bootstrap - Overrides */
@media (min-width: 1640px){
	.container {
		max-width: 1580px;
	}
}

.dropdown-toggle::after {
	margin-left: 6px;

	vertical-align: 3px;
}

.review {
    padding: 20px;
}
    .carousel-inner {
        padding: 20px 40px;
    }
    .review::before {
        content: open-quote;

        font-family: sans-serif;
        font-size: 175px;
        color: #071624;

        position: absolute;
        left: 20px;

        margin-top: -125px;

    }

    .review_signature {
        font-weight: 700;
    	font-size: 26px;
    }
    .carousel-control-next, .carousel-control-prev {
    	width: 20px;
    }
    .carousel-control-prev-icon {
        background-image: none;
    }

    .carousel-control-next-icon {
        background-image: none;
    }

	.grey-scale-image {
		filter: brightness(0) invert(1);
	}
	.aspect-ratio-image {
		object-fit: fit;
		max-height: 40px;
		min-width: 40px;
		min-height: 40px;
	}
	.partner-image {
		object-fit: fit;
		max-height: 75px;
		min-width: 75px;
		min-height: 75px;
	}

	.social-media-icon {
		filter: brightness(0) invert(1);
	}