
:root {
	--font: 'Reddit Sans', sans-serif;
	--color-primary: #152F70; --color-secondary: #2157DD;

	--back: #FFF; --bg-1:#161C1F;
	--title: #303030;
	--text:  #0f0f0f;

	--shadow: 0 20px 34px -15px rgba(49,89,119,.5);
	--shadow-b: 0 20px 34px -15px rgba(0, 0, 0, 0.12);

	--facebook: #3b5999; --twitter: #55acee; --linkedin: #0077B5; --whatsapp: #25D366; --instagram: #e4405f; --messenger: #0084ff; --youtube: #cd201f;

	--white: #fff;
	--black:  #000;
	--deg-1:linear-gradient(135deg,  rgba(33,87,221,1) 0%,rgba(21,47,112,1) 100%);

	--gray-light: #f8f8fa;
	--light: #E4E7EB;
	--dark: #090909;
	--border:  #e9e9e9;

	--wdg:1300px;
	--dur:.3s;
	--cub: cubic-bezier(0.175,.885,.32,1);
	--trs: all var(--dur) var(--cub);
}


*{margin: 0; border:0; padding: 0;outline: none; -webkit-font-smoothing: antialiased; box-sizing:border-box; max-width: 100%; height:auto; z-index: 1;}

/*[draggable] {
	-moz-user-select: none;
	-khtml-user-select: none;
	-webkit-user-select: none;
	user-select: none;
	/* Required to make elements draggable in old WebKit
	-khtml-user-drag: element;
	-webkit-user-drag: element;
}*/

html, body {
	margin:0;
	width:100%;
	max-width: 100%;
	font-family: var(--font);
	font-weight: 400;
	font-size:17px;
	line-height: 1.6em;

	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;

	font-style: normal;
	font-variant: normal;
	text-rendering: auto;

	color: var(--text);
	background: var(--back);
	scroll-behavior: smooth;
}

.hd .resp, .btn-menu-responsive {
	display:none;
}

p {margin-bottom: 20px;}
a {color: var(--text); text-decoration: none; transition:color .5s ease;}

ul { padding: 0 50px; list-style: none;}

.fa-ul		{list-style-type: none;padding-left: 0;}
.fa-ul li	{display: flex; margin: 5px 0}
.fa-ul li span:first-child {width: 30px}
.fa-ul li span:last-child {width: calc(100% - 30px);}

.center 	{text-align:center;}
.left		{text-align: left}
.right		{text-align: right}
.top		{vertical-align: top;}

.container	{ z-index: 3; width: var(--wdg); margin:auto;}
section 	{position:relative;}

.spc		{padding: var(--space-1) 0;}
.spc2		{padding: var(--space-2) 0;}

.flex {display: flex;}
.flex.row {flex-direction: row;}
.flex.column {flex-direction: column;}
.flex.wr {flex-wrap: wrap;}
.flex.nw {flex-wrap: nowrap;}

.flex.center-x {justify-content: center;}
.flex.center-y {align-items: center;}

.flex.column.center-x {align-items: center;}
.flex.column.center-y {justify-content: center;}

.flex.center {justify-content: center; align-items: center;}

.flex.left {justify-content: flex-start;}
.flex.right {justify-content: flex-end;}

.flex.column.left {align-items: flex-start;}
.flex.column.right {align-items: flex-end;}

.flex.top {align-items: flex-start;}
.flex.middle {align-items: center;}
.flex.bottom {align-items: flex-end;}

.flex.column.top {justify-content: flex-start;}
.flex.column.middle {justify-content: center;}
.flex.column.bottom {justify-content: flex-end;}

.flex.sb {justify-content: space-between;}
.flex.st {align-items: stretch;}

.flex.rev {
	flex-direction: row-reverse;
}

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

.pdg {padding:100px 20px;}

a.button, .button	{
	display: inline-block;
	font-size: 16px;
	font-weight: 300;
	text-align: center;
	padding: 15px 30px;
	border-radius: 30px;
	color: var(--white);
	background: var(--deg-1);
	transition: var(--trs);
}

a.button i, .button i {
	margin:0 15px
}

a.button.stl-1, .button.stl-1 {
	background:transparent;
	border:2px solid #FFF;
	color: white;
	padding:10px 30px;
}

.link {
	display: inline-flex;
	align-items: center;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.4em;
	letter-spacing: -0.5px;
	color:#007ed8;
	gap:15px;
	
}

.link .label {
	position:relative;
	transition: var(--trs);
	border-bottom:1px dashed #848A90;
}

.link:hover {
	color: var(--color-secondary);
}

.link.white .label {
	color: white;
	border-bottom:1px dashed white;
}

.link.white .ico {color:white}

.title {
	font-size:30px;
	font-weight: 400;
	line-height: 1.2em;
	letter-spacing: -0..4px;
}

.col-3 {position:relative; width:33.33%;}














/* Navegación */
a.whatsapp-button-chat {
	position: fixed;
	bottom: 20px;
	right: 20px;
	z-index: 1000;
	width: 60px;
	height: 60px;
	background-color: var(--whatsapp);
	border-radius: 50%;
	font-size: 25px;
	color:var(--white);
	box-shadow: var(--shadow);
}

nav {
	position: absolute;
	z-index: 10;
	top:0px; width:100%;
	padding:70px 100px 30px 100px;
	transition: background .3s, transform .3s;
}

nav.menu-fixed {
	position: fixed;
	width: 100%;
	top: 0; left: 0;

	padding: 20px 100px;
	border-bottom: 1px solid var(--light);
	box-shadow: 0 10px 20px -10px rgba(49, 89, 119, .3);
	background-color: var(--white);
}

nav.menu-hide {
	transform: translateY(-150%);
}

.logo {
	width:200px;
	fill: white;
	transition: var(--trs);
}

.logo svg * {
	transition: var(--trs);
}

nav.menu-fixed .logo {
	fill: var(--color-primary);
	width:160px;
	transform: translateY(8px);
}

.menu-container {
	width:calc(100% - 450px)
}
.main-menu {
	font-size: 15px;
	font-weight: 400;
	padding:0;
}
.menu-item > a {
	position:relative;
	display: block;
	padding:10px 15px;
	color: rgba(255,255,255,.6);
	border-radius:5px;
	transition: var(--trs);
	font-weight: 600;
}

.menu-item.current > a {
	color: var(--white);
}

.menu-item:hover > a {
	color: white;
}

.menu-item:hover > a:before {
	width:100%;
}

nav.menu-fixed .menu-item > a {
	color: var(--color-primary);
}

.menu-item > a:before {
	content: '';
	position:absolute;
	bottom:0; left:0;
	width:0; height: 3px;
	background: var(--white);
	transition: var(--trs);
}

nav.menu-fixed .menu-item > a:before {
	background: var(--color-primary);
}

.menu-item.has-child > a:after {
	font-family: "Font Awesome 7 Free";
	font-size: 10px;
	font-weight: 900;
	content: "\f0d7";
	display: inline-block;
	margin-left: 0.5em;
}

.menu-item.has-child:hover .sub-menu {
	z-index: 99;
	opacity: 1;
	visibility: visible;
	display: flex;
	transform: translate(-40%, 0);
}

.sub-menu {
	position: absolute;
	top: 120px; width:fit-content;
	display: flex;
	text-align: left;;
	background: var(--white);
	box-shadow: var(--shadow);
	border:1px solid #e3e5e6;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s, top .3s, visibility 0s;
	border-radius: 0 20px 20px 20px;
	padding:10px;
	overflow: hidden;
}

nav.menu-fixed .sub-menu {
	top:70px
}

.sm-lat {
	position:relative;
	gap:10px;
	width:280px;
	border-radius:0 0 0 17px;
	padding: 50px;

	font-size: 13px;
	font-weight: 400;
	line-height: 1.4em;
	color: var(--white);
}

.sm-lat.stl-1 {
	background: linear-gradient(135deg,  rgba(21, 47, 112, 1) 0%,rgba(11, 23, 54, 1) 100%);;
}

.sm-lat.stl-2 {
	background: linear-gradient(135deg,  rgba(45,143,140,1) 0%,rgba(16,78,76,1) 100%);
}

.sm-lat h2 {
	font-size: 18px;
	font-weight: 400;
	line-height: 1.2em;
	text-align: left;
}

.sm-lat .ico {
	position: absolute;
	bottom: -50px; left:-20px;
	font-size: 250px;
	color: white;
	opacity: 0.05;
}

#menu-services {
	right: 100px;
	transform: translate(0,0);
}

.sm-main {
	padding:40px 40px 40px 50px;
	gap:30px
}

#menu-services .sm-main {
	width:580px;
}

a.icon-box {
	position: relative;
	display: flex;
	padding:10px;
	width: 230px;
	border-radius: 10px;
	transition: var(--trs);
}

a.icon-box * {transition: var(--trs);}
a.icon-box:hover {background: #f8f8fa;}
a.icon-box:hover .title {color: var(--color-text)}
a.icon-box:hover .title:after {width: 100%;}
a.icon-box:hover .ico {color: var(--color-secondary);}

.icon-box .ico {
	display: inline-block;
	font-size: 18px;
	color:#a4a7aa;
}

.icon-box .content {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	margin:0 0 0 20px;
	width:calc(100% - 30px);
}

.icon-box .title {
	position:relative;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.2em;
	color: #252439;
	/*color:#545658*/
}

.icon-box .excerp {
	font-size: 12px;
	font-weight: 400;
	line-height: 1.1em;
	margin-top:5px;
	color: #666;
}

.whatsapp-button {
	background: var(--deg-1);
	padding: 8px 30px;
	border-radius: 30px;
	font-size: 14px;
	color: var(--white);
	box-shadow: var(--shadow);
}
















/* Header */
.top-head {
	position: relative;
	min-height: 95vh;
	padding: 20px;
	background: var(--white);
	color: var(--white);
	gap: 20px;
}

.top-head.int {
	min-height: 550px;
}

.top-head .video-back, .top-head .img-back img {
	position: absolute;
	z-index: -1;
	width: calc(100% - 20px);
	height: calc(100% - 20px);
	top: 10px;
	left: 10px;
	object-fit: cover;
	object-position:center;
	border-radius:20px;
	overflow: hidden;
}

.top-head .overlay {
	position: absolute;
	width: calc(100% - 20px);
	height: calc(100% - 20px);
	top: 10px;
	left: 10px;
	background: rgba(0,0,0,.5);
	border-radius:20px;
}

.hero {
	flex:1;
}

.hero .hd {width:60%;}
.hero .ds {width:40%; text-align:left;padding-bottom: 150px;}

.top-head.int .hd {
	width:100%;
	padding:0 80px 80px 200px;
}

.hd  h1 {
	margin-bottom:30px;
}

.hd  h1 span {
	display: block;
}

.hd h1 .line-1 {
	font-size: 48px;
	font-weight: 400;
}

.hd  h1 .line-2 {
	font-size: 78px;
	font-weight: 600;
	letter-spacing: -1px;
	line-height: 1.4em;
}

.hd  h1 .line-3 {
	font-size: 45px;
	font-weight: 300;
}

.top-head.int .hd h1 .line-1{
	font-size: 30px;
	font-weight: 100;
}

.top-head.int .hd h1 .line-2{
	font-size: 40px;
	font-weight: 300;
	line-height: 1.6em;
}

.top-head.int .hd h1 .line-3{
	font-size: 50px;
	font-weight: 600;
}

.hd .bto {gap:20px}

.ds p {
	display: block;
	width: 60%;
	font-size: 20px;
	font-weight: 400;
	line-height: 1.4em;
}

/* TARJETAS HEADER */

.hd-cards {
	gap:20px;
	margin-top:-100px;
}

.hd-cards .card {
	display: flex;
	flex-direction: column;
	gap:20px;
	width: 100%;
	padding: 30px;
	background: white;
	border-radius: 10px;
	box-shadow: var(--shadow);
	transition: var(--trs);
}

.hd-cards .card:hover {
	transform: translateY(-20px);
	box-shadow:  0 40px 34px -15px rgba(49,89,119,.5);
}

.hd-cards h2 {
	font-size: 21px;
	font-weight: 500;
	line-height: 1.2em;
	letter-spacing: -0.05em;
	color: var(--title);
}

.hd-cards p {
	font-size: 13px;
	font-weight: 400;
	line-height: 1.4em;
	margin:0;
}

.hd-cards .card.stl-2 {
	background: var(--deg-1);
}

.hd-cards .card.stl-2 h2, .hd-cards .card.stl-2 p { color:white}






/* Menú responsivo */

.btn-menu-responsive {
	font-size: 16px;
	color: white;
	white-space: nowrap;
	padding:15px;
	cursor: pointer;
}
.btn-menu-responsive .ot {
	font-size: 14px;
	margin-left:15px;
}

.mobile-menu {
	position:fixed; z-index: 999;
	top:10px; left: -100%;
	width: 450px;
	height:calc(100% - 20px);

	background: linear-gradient(to bottom,  rgba(21,47,112,1) 0%,rgba(45,191,156,1) 100%);
	box-shadow: 20px 0 34px -15px rgba(0,0,0,.5);
	border-radius: 20px;
	padding:50px;
	opacity:0;

	transition: var(--trs);
}

.mobile-menu .close {
	position: absolute;
	top:30px; right:30px;
	width:50px; height:50px;
	background-color: rgba(0,0,0,.25);
	border-radius:50%;

	text-align: center;
	font-size: 30px;
	line-height: 55px;
	color: white;
	transform:rotate(180deg)
}

.logo-mobile-menu {
	padding:50px 0;
}

.logo-mobile-menu img {
	width:180px; height:auto;
}

.mobile-menu ul { padding:0;}
.mobile-menu li a {
	display: flex;
	padding:10px 0px;
	color: white;
}

.mobile-menu li a i, .mobile-menu li a .ot {
	display: block;
	width:30px;
	text-align: center;
	margin-right: 30px;
	transform: translateY(3px);
}

.mobile-menu .social {
	gap: 10px;
}

.mobile-menu .social a {
	display: block;
	width:40px; height:40px;
	border-radius:50%;

	font-size: 16px;
	line-height: 40px;
	color:white;
	text-align: center;
}





/**********     RESPONSIVE     **********/

@media only screen and (max-width:1320px) {
	:root {	--wdg:  95%;}
}

@media only screen and (max-width:1242px) {
	.hd h1 .line-1 {font-size: 40px;}
	.hd  h1 .line-2 {font-size: 70px;}
	.hd  h1 .line-3 {font-size: 37px;}
}

@media only screen and (max-width:1150px) {
	.menu-item > a {padding:10px 5px;}
	.hd-cards .card.stl-2 {display:none;}
	.hd-cards {width: 90%;}
}

@media only screen and (max-width:1115px) {
	.hd h1 .line-1 {font-size: 40px;}
	.hd  h1 .line-2 {font-size: 60px;}
	.hd  h1 .line-3 {font-size: 35px;}
}

@media only screen and (max-width:1048px){
	nav {padding:70px 50px 30px 50px;}
	#home {display: none;}
	.top-head.int .hd {padding:0 80px 80px 80px;}
}

@media only screen and (max-width:984px) {
	.hd-cards {flex-wrap: wrap; justify-content: space-between;}
	.hd-cards .card {width:calc(50% - 10px) }
}


@media only screen and (max-width:956px) {
	.hero .ds {display: none;}
	.hero .hd {width:100%;}
	.hero .hd .resp {display: initial; width:500px;max-width: 100%;}
}

@media only screen and (max-width:902px) {
	.menu-container {display: none;}
	.btn-menu-responsive {display: initial;}
	.mobile-menu {display: flex;}

	.top-head.int .hd h1 {letter-spacing:-0.03em;}
	.top-head.int .hd h1 .line-1 {font-size: 24px; line-height: 1em;}
	.top-head.int .hd h1 .line-2 {font-size: 30px; line-height: 1em;}
	.top-head.int .hd h1 .line-3 {font-size: 45px; line-height: 1em;}

	.hd  h1 .line-3 {font-size: 15px;}
}

@media only screen and (max-width:768px) {
	.top-head.int .hd {padding:0 40px 40px 40px;}
}

@media only screen and (max-width:610px) {
	.whatsapp-button {display: none;}
}

@media only screen and (max-width:590px) {
	.hd h1 .line-1 {font-size: 30px;}
	.hd  h1 .line-2 {font-size: 50px;}
	.hd  h1 .line-3 {font-size: 25px;}
}

@media only screen and (max-width:530px) {
	.hd-cards {width: 80%;}
	.hd-cards .card {width:100%}
}

@media only screen and (max-width:494px) {
	.hd h1 .line-1 {font-size: 20px;}
	.hd h1 .line-2 {font-size: 35px;}
	.hd h1 .line-3 {font-size: 20px;}
}

@media only screen and (max-width:470px) {
	.mobile-menu {	width: calc(100% - 20px);}

	.top-head.int .hd {padding:0 20px 30px 20px;}

	.top-head.int .hd h1 {text-align: center;}

	.top-head.int .hd h1 .line-1 {font-size: 18px;}
	.top-head.int .hd h1 .line-2 {font-size: 25px;}
	.top-head.int .hd h1 .line-3 {font-size: 35px;}
}

@media only screen and (max-width:400px) {
	.main-nav-container.flex.row, .bto.flex.row {flex-direction: column;}
}

@media only screen and (max-width:352px) {
	.hd h1 .line-1 {font-size: 18px;}
	.hd  h1 .line-2 {font-size: 30px;}
	.hd  h1 .line-3 {font-size: 16px;}
}

