/*
 * Colors
 *
 * blue:		#023455
 * blue light:	#63b2d6
 * red:			#f74c68
 * orange:		#ff9200
 *
 */

@keyframes flash {
    0%   { opacity: 1; }
    50%  { opacity: 0.1; }
    100% { opacity: 1; }
}
 
html,
body {
	margin: 0;
	padding: 0;
	display: flex;
	min-height: 100vh;
	flex-direction: column;
}

html {
	scroll-padding-top: 110px;
	scroll-behavior: smooth;
}
  
body {
	font-family: "nexa", sans-serif;
	font-weight: 500;
	font-size: 1rem !important;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	color: #000 !important;
}

@media (min-width: 992px) {
	body {
		font-size: 1.125rem !important;
	}
}


/* Header */
h1 {
	font-weight: 900 !important;
	color: #023455;
	margin-bottom: 1rem !important;
	display: flex;
}

h1 .bg-blue {
	font-size: 1.25rem !important;
	line-height: 1.5rem !important;
	align-self: center !important;
	margin-left: 1rem !important;
}

h2 .bg-blue {
	font-size: 1.25rem !important;
	line-height: 1.5rem !important;
	align-self: center !important;
	vertical-align: 0rem;
}

h2 {
	font-weight: 800 !important;
	color: #023455;
	margin-bottom: 1rem !important;
}

h3 {
	font-weight: 800 !important;
	color: #023455;
	margin-bottom: 1rem !important;
}

h4 {
	font-weight: 800 !important;
	color: #023455;
	margin-bottom: .5rem !important;
}

h5 {
	text-transform: uppercase;
	font-weight: 300 !important;
}

@media (min-width: 768px) {
	h1 {
	}
	h1 .bg-blue {
		font-size: 1.5rem !important;
		line-height: 1.75rem !important;
	}
	h1 .bg-blue {
		font-size: 1.5rem !important;
		line-height: 1.75rem !important;
	}
	h2 .bg-blue {
		font-size: 1.5rem !important;
		line-height: 1.75rem !important;
	}
}
 
@media (min-width: 992px) {
	h1 {
		font-size: 3rem !important;
		line-height: 3rem !important;
	}
	h1 .bg-blue {
		font-size: 1.75rem !important;
		line-height: 2rem !important;
	}
	h2 .bg-blue {
		font-size: 1.5rem !important;
		line-height: 1.75rem !important;
		vertical-align: .125rem;
	}
}

@media (min-width: 1200px) {
	h1 {
		font-size: 4rem !important;
		line-height: 4rem !important;
	}
	h1 .bg-blue {
		font-size: 2.5rem !important;
		line-height: 2.75rem !important;
		vertical-align: .5rem;
		margin-left: .25rem !important;
	}
	h2 {
		font-size: 2.5rem !important;
		line-height: 2.5rem !important;
	}
	h2 .bg-blue {
		font-size: 1.75rem !important;
		line-height: 2rem !important;
		vertical-align: .25rem;
		margin-left: .25rem !important;
	}
}

header > h1,
header > h2,
header > h3 {
	font-style: italic;
}

h1 + h2 {
	font-weight: 300 !important;
	font-style: normal !important;
	margin-top: -0.5rem !important;
}

h2 + h3 {
	font-weight: 300 !important;
	margin-top: -0.5rem !important;
}

/* Links */
a {
	color: #f74c68 !important;
	text-decoration: none!important;
	outline: 0;
	transition: all 0.2s ease-in-out;
}
 
a:hover, 
a:active {
	color: #f74c68 !important;
	text-decoration: none!important;
}

.ccm-modal-inner a,
.ccm-modal-inner a:hover,
.ccm-modal-inner a:active {
	color: #023455 !important;
}

a.more::before {
	font-family: "bootstrap-icons";
	content: "\F285";
	-webkit-text-stroke: 1px;
	margin-right: .25rem;
	vertical-align: middle;
}

span.icon-check {
	display: inline-block;
	padding-left: 2rem;
	position: relative;
}

span.icon-check::before {
	font-family: "bootstrap-icons";
	font-size: 1.5rem !important;
	-webkit-text-stroke: 2px;
	content: "\F633";
	color: #4ac500;
	position: absolute;
	left: 0;
	top: -0.375rem;
}

span.icon-plus {
	display: inline-block;
	padding-left: 2rem;
	position: relative;
}

span.icon-plus::before {
	font-family: "bootstrap-icons";
	font-size: 1.25rem !important;
	content: "\F4F9";
	color: #4ac500;
	position: absolute;
	left: 0;
	top: -0.125rem;
}


/* Lists */
ul.check {
	list-style-type: none;
	padding-left: 0;
}

ul.check li {
	padding: .25rem 0 .5rem 2rem;
	position: relative;
}

ul.check li::before {
	font-family: "bootstrap-icons";
	font-size: 1.5rem !important;
	-webkit-text-stroke: 2px;
	content: "\F633";
	color: #4ac500;
	position: absolute;
	left: 0;
	top: 0;
}


/* Common Tags */
strong {
	font-weight: 800 !important;
}

.bg-blue {
	background: #63b2d6;
	color: #fff !important;
	padding: .25rem .5rem;
	font-weight: 300 !important;
	text-transform: uppercase;
	transform: skew(-12deg);
	display: inline-block;
}

.text-upper {
	text-transform: uppercase !important;
}

.text-blue-light {
	color: #63b2d6 !important;
}

.text-red {
	color: #f74c68 !important;
}

.text-white {
	color: #fff !important;
}

i.bi-2x {
	font-weight: 600;
	font-size: 2rem !important;
}

i.bi-15x {
	font-weight: 600;
	font-size: 1.5rem !important;
}

i.bi-flash {
	animation: flash 1s ease-in-out 2;
}

/* Buttons */
.btn {
	background: #f74c68;
	color: #fff !important;
	border: none;
	border-radius: .375rem !important;
	font-size: 1rem !important;
	padding: .5rem 1.5rem;
}

@media (min-width: 992px) {
	.btn {
		font-size: 1.125rem !important;
	}
}

.btn:hover {
	background: #f74c68;
	color: #fff !important;
}

.btn::before {
	font-family: "bootstrap-icons";
	content: "\F285";
	-webkit-text-stroke: 1px;
	margin-right: .25rem;
	vertical-align: middle;
}

.btn-sticky-rotated {
	display: none;
}

@media (min-width: 768px) {
	.btn-sticky-rotated {
		display: block;
		position: fixed;
		right: -40px;
		top: 30%;
		transform: translateY(-50%) rotate(-90deg);
		transform-origin: center;
		border-end-end-radius: 0 !important;
		border-end-start-radius: 0 !important;
		font-size: 1.25rem !important;
		font-style: italic !important;
		font-weight: 600 !important;
	}
	
	.btn-sticky-rotated::before {
		content: "";
		margin-right: 0;
	}
}

/* Navi */
header nav.navbar {
	background-color: #023455 !important;
	padding: 1rem 0 !important;
}

header nav.navbar .navbar-brand img {
	width: 120px;
	height: auto;
}

header nav.navbar a.nav-link {
	color: #fff !important;
	text-transform: uppercase;
}

header nav.navbar a.nav-link:hover, 
header nav.navbar a.nav-link:active {
	color: #f74c68 !important;
}

header nav.navbar .dropdown-toggle::after {
	font-family: "bootstrap-icons";
	font-size: 1rem !important;
	content: "\F282";
	-webkit-text-stroke: 0.75px;
	margin-left: .375rem;
	vertical-align: middle;
	border: none !important;
}

/* @media (min-width: 992px) {
	header nav.navbar .dropdown:hover > .dropdown-menu {
		display: block;
	}
} */

header nav.navbar .dropdown-menu {
	background: #023455 !important;
}

header nav.navbar .dropdown-menu a.dropdown-item {
	color: #fff !important;
}

header nav.navbar .dropdown-menu a.dropdown-item.active {
	background-color: transparent !important;
}

header nav.navbar .dropdown-menu a.dropdown-item:hover,
header nav.navbar .dropdown-menu a.dropdown-item:active {
	color: #f74c68 !important;
	background-color: transparent !important;
}

@media (min-width: 768px) {
	header nav.navbar .navbar-brand img {
		width: 150px;
	}
	header nav.navbar .navbar-nav {
		--bs-nav-link-padding-y: 0rem !important;
	}
}

@media (min-width: 992px) {
	header nav.navbar .navbar-brand img {
		width: 180px;
	}
	header nav.navbar a.nav-link {
		padding-left: 1.5rem !important;
	}
	header nav.navbar .dropdown-menu  {
		margin-left: .5rem !important;
	}
}

header nav.navbar .navbar-toggler,
header nav.navbar .navbar-toggler:focus,
header nav.navbar .navbar-toggler:active {
	border: none !important;
	outline: none !important;
	box-shadow: none !important;
}

header nav.navbar .navbar-toggler i.bi {
	font-size: 2rem !important;
	color: #fff !important;
}


/* Main */
main {
	min-height: 800px;
	padding-top: 80px;
}


/* Hero */
.hero {
	position: relative;
	min-height: 100vh;
	margin-top: -80px;
	display: flex;
	align-items: center;
	justify-content: center;
	/* background: url('/fileadmin/Images/Teaser/teaser_tower.jpg') center top / cover no-repeat; */
	background-position: center top;
	background-size: cover;
	background-repeat: no-repeat;
	overflow: hidden;
}

.hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgba(5, 10, 20, 0.75) 0%,
		rgba(5, 10, 20, 0.55) 30%,
		rgba(5, 10, 20, 0.45) 50%,
		rgba(5, 10, 20, 0.65) 80%,
		rgba(5, 10, 20, 0.95) 100%
	);
}

.hero h1 {
	display: block;
}

.hero figure img {
	filter: drop-shadow(0 0 10px rgba(0, 0, 0, .5));
	transition: transform .5s ease;
}


.hero figure:hover img {
	transform: scale(1.1);
}


/* Container */
.container-blue-gradient {
	background: linear-gradient(0deg, rgba(2, 52, 85, 1) 0%,  rgba(2, 52, 85, 1) 30%, rgba(0, 0, 0, 0) 100%);
	color: #fff !important;
}

.container-blue {
	background-color: #023455;
	color: #fff !important;
}

.container-blue h1,
.container-blue h2,
.container-blue h3,
.container-blue h4 {
	color: #fff !important;
}

.container-grey {
	background-color: rgba(246, 246, 246, 1);
	padding: 3rem 0;
}

.container-grey-half {
	background: linear-gradient(0deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 15%, rgba(246, 246, 246, 1) 15%, rgba(246, 246, 246, 1) 100%);
}


/* Boxes */
.frame-layout-11 {
	box-shadow: 0px 0px 3px 1px rgba(0,0,0,0.2);
	border-radius: 1rem;
	background: #fff;
	padding: 1.5rem 1.5rem 1rem 1.5rem;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.frame-layout-11 a.ce-box,
.frame-layout-11 a.ce-box:hover {
	color: #000 !important;
}

.frame-layout-11 h2,
.frame-layout-11 h3,
.frame-layout-11 h4 {
	margin-bottom: .5rem !important;
}

.frame-layout-11 header h3 {
	display: inline-block;
	background: #63b2d6;
	color: #fff !important;
	font-style: normal;
	padding: .5rem 2rem .5rem 2.5rem;
	margin-left: -2.5rem;
	margin-bottom: 1.5rem !important;
	position: relative;
}

.frame-layout-11 header h3::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1rem;
	border-style: solid;
	border-width: 0 1rem 1rem 0;
	border-color: transparent #023455 transparent transparent;
	transform: rotate(0deg);	
}

.frame-layout-11:has(.ce-box) {
	transition: all .3s ease-in-out !important;
}

.frame-layout-11:has(.ce-box:hover) {
	transform: scale(1.05);
	box-shadow: 0px 0px 9px 3px rgba(0,0,0,0.2);
}

.frame-layout-12 {
	box-shadow: 0px 0px 3px 1px rgba(0,0,0,0.2);
	border-radius: 1rem;
	background: #023455;
	color: #fff !important;
	padding: 1.5rem 1.5rem 1rem 1.5rem;
}

.frame-layout-12 a.ce-box,
.frame-layout-12 a.ce-box:hover {
	color: #fff !important;
}

.frame-layout-12 h2,
.frame-layout-12 h3,
.frame-layout-12 h4 {
	color: #fff !important;
	/* margin-bottom: .5rem !important; */
}

.frame-layout-12:has(.ce-box) {
	transition: all .3s ease-in-out !important;
}

.frame-layout-12:has(.ce-box:hover) {
	transform: scale(1.05);
	box-shadow: 0px 0px 9px 3px rgba(0,0,0,0.2);
}

@media (min-width: 768px) {
	.row > [class*='col-'] > .frame-layout-11,
	.row > [class*='col-'] > .frame-layout-12 {
		height: 100% !important;
	}
}


/* Banner */
.ce-banner {
	background-position: center bottom;
	background-repeat: no-repeat;
	background-size: cover;
	height: 250px;
	position: relative;
}

.ce-banner-plain {
	background-color: #023455;
	height: 100px;
}

@media (min-width: 768px) {
	.ce-banner {
		height: 320px;
	}
	.ce-banner-plain {
		height: 150px;
	}
}

@media (min-width: 992px) {
	.ce-banner {
		height: 400px;
	}
	.ce-banner-plain {
		height: 200px;
	}
}

@media (min-width: 1200px) {
	.ce-banner {
		height: 500px;
	}
	.ce-banner-plain {
		height: 250px;
	}
}

@media (min-width: 2000px) {
	.ce-banner-plain {
		height: 300px;
	}
}

@media (min-width: 2400px) {
	.ce-banner-plain {
		height: 350px;
	}
}

@media (min-width: 2800px) {
	.ce-banner-plain {
		height: 400px;
	}
}

.ce-banner-bottom {
	position: absolute;
	bottom: -1px;
}


/* Case */
.ce-case h5 {
	font-size: 1rem !important;
	margin-top: .5rem;
}


/* Tables */
figure.table {
	box-shadow: 0px 0px 3px 1px rgba(0,0,0,0.2);
	border-radius: 1rem;
}

table.table thead,
table.table tbody {
	border-bottom-width: 0;
}


table.table thead th {
	background: #023455;
	color: #63b2d6;
	font-size: 1.5rem !important;
	padding: 1rem .5rem;
	border-bottom-width: 0;
}

table.table thead th:first-child {
	border-top-left-radius: 1rem;
}

table.table thead th:last-child {
	border-top-right-radius: 1rem;
}

table.table tbody td {
	padding: 1rem .5rem;
	border-bottom-width: 0;
}

table.table tbody tr:nth-child(even) td {
	background: #f6f6f6;
}


/* Images */
.img-count {
	position: relative;
	padding-top: 2rem;
	padding-right: 1rem;
}

.img-count + .img-count-text {
	position: absolute;
	top: 0;
	right: 0;
	background-color: #ff9200;
	color: #fff;
	font-size: 5rem !important;
	font-weight: bold;
	font-style: italic;
	line-height: 6.5rem !important;
	text-align: center;
	width: 6.5rem;
	height: 6.5rem;
	display: block;
	padding-left: .5rem;
}

.ce-border img {
	box-shadow: 0px 0px 3px 1px rgba(0,0,0,0.2);
	border: none;
	border-radius: 1rem;
}


/* Space */
/* .frame-space-before-extra-small { padding-top: 1em; margin-top: 0; }
.frame-space-before-small { padding-top: 2em; margin-top: 0; }
.frame-space-before-medium {padding-top: 3em; margin-top: 0;}
.frame-space-before-large { padding-top: 4em; margin-top: 0; }
.frame-space-before-extra-large { padding-top: 5em; margin-top: 0; }
.frame-space-after-extra-small { padding-bottom: 1em; margin-bottom: 1em; }
.frame-space-after-small { padding-bottom: 2em; margin-bottom: 0; }
.frame-space-after-medium { padding-bottom: 3em; margin-bottom: 0; }
.frame-space-after-large { padding-bottom: 4em; margin-bottom: 0; }
.frame-space-after-extra-large { padding-bottom: 5em; margin-bottom: 0; } */
.frame-space-before-negative-large { margin-top: -5em; }
.frame-space-before-negative-medium { margin-top: -3em; }

.ce-above .ce-gallery { margin-bottom: 1.5rem !important; }


/* Modal */
.modal-backdrop {
	--bs-backdrop-zindex: 1050;
	--bs-backdrop-bg: rgba(0, 0, 0, .7);
	--bs-backdrop-opacity: 1;
	backdrop-filter: blur(7px);
}


/* Footer */
footer {
	background-image: url(../Images/footer_bg.png);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center top;
	padding-top: 300px;
	padding-bottom: 100px;
}

footer a,
footer a:hover, 
footer a:active {
	font-size: 1rem !important;
	color: #fff !important;
}

footer a.nav-link {
	padding: 0 !important;
}

footer a.nav-link::before {
	font-family: "bootstrap-icons";
	font-size: .875rem !important;
	content: "\F285";
	-webkit-text-stroke: 1px;
	margin-right: .25rem;
	vertical-align: middle;
}

footer img {
	width: 200px;
}


/* Animations */
.frame-default {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.7s ease, transform 0.7s ease;
}

.frame-default.visible {
	opacity: 1;
	transform: translateY(0);
}


/* Swiper */
.swiper {
	--swiper-pagination-color: #023455;
	padding-bottom: 50px;
}

.swiper-slide {
	height: auto !important;
}

.swiper-slide > div {
	height: 100%;
}
