/* Fonts */
@font-face{
	font-family: 'Lato';
	src: url('fonts/Lato-Light.ttf') format('truetype');
	font-weight: 300;
	font-style: sans-serif;
}

@font-face{
	font-family: 'Lato';
	src: url('fonts/Lato-Regular.ttf') format('truetype');
	font-weight: 400;
	font-style: sans-serif;
}

@font-face{
	font-family: 'Lato';
	src: url('fonts/Lato-Bold.ttf') format('truetype');
	font-weight: 700;
	font-style: sans-serif;
}

@font-face{
	font-family: 'Outfit';
	src: url('fonts/Outfit-Light.ttf') format('truetype');
	font-weight: 300;
	font-style: sans-serif;
}

@font-face{
	font-family: 'Outfit';
	src: url('fonts/Outfit-Regular.ttf') format('truetype');
	font-weight: 400;
	font-style: sans-serif;
}

@font-face{
	font-family: 'Outfit';
	src: url('fonts/Outfit-Bold.ttf') format('truetype');
	font-weight: 700;
	font-style: sans-serif;
}

/* Main Colors variables */
:root {
	--primary-color: #10cabb;
	--secondary-color: #2d2d2d;
	--third-color: #10cabb;
	--fourth-color: #10cabb;
	--text-color: #2d2d2d;
}
/* Init CSS base */

a:link, a:visited, a:hover, a:focus, a:active
{
	color:none;
	text-decoration: none;
	display:inline-block;
}

table
{
	border: none;
	border-top: none !important;
	border-left: none !important;
	border-collapse: collapse;
}

tr, td
{
	padding: 0px;
}

.site 
{
	margin: 0 auto;
}

body 
{
  overflow-x:hidden;
 	margin:0px;
 	overscroll-behavior-x: none;
}

html {
  overflow-x: hidden;
  height: 100%;
  width: 100%;
  -webkit-overflow-scrolling: touch;
}

body {
  margin: 0;
  padding: 0;
  width: 100%;
  position: relative;
  overflow-x: hidden;
}

p, a, h1, h2, h3, div
{
	font-size: 16px;
	font-family: 'Lato', sans-serif;
	font-weight: 400;
	color:var(--text-color);
}


h1, h2, h3, li
{
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
}

img	
{
	display: block;
}

/* GENERAL STYLES */
.limited-container
{
	padding: 0 30px;
 	width: calc(100% - 60px);
 	margin: auto;
	max-width: 1200px;
	position: relative;
}

.nolimited-container
{
 	width: 100%;
}

header nav
{
	margin-left: auto;
}

main nav
{
	margin-left: auto;
}

ul.menu
{
	list-style-type: none;
  display: inline-flex;
  padding: 0px;
}

ul.menu li
{
	font-weight: 400;
}

.menu
{
	cursor: pointer;
}

.menu p
{
	margin: 0px;
	color: var(--primary-color);
	cursor: pointer;
}

.image-container
{
	width: 100%;
	position: relative;
	overflow: hidden;
}

.image-container-imageback
{
	filter: contrast(100%);
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 65px;
  transform: translate(-50%, -50%);
  z-index: 1;
  object-fit: cover;
}

.image-container-imageback-footer
{
	filter: contrast(100%);
  position: absolute;
  width: 100%;
  height: 100%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
  object-fit: cover;
}

.image-container-imageback-general
{
	filter: contrast(100%);
  position: absolute;
  width: 100%;
  height: 100%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
  object-fit: cover;
}

.main-cover-container
{
	width: calc(100%);
	height: 600px;
	border-radius: 24px;
	position: relative;
	overflow: hidden;
	background-color: var(--primary-color);
}

.main-title
{
	font-size: 45px;
	color: var(--text-color);
	font-weight: 400;
	margin-top: 100px;
  max-width: 90%;
}

.main-cover-container-inner
{
	background: white;
	width: calc(50% - 80px);
	padding: 40px 40px 40px 40px;
	height: 530px;
	position: absolute;
	top: 0px;
	left: 0px;
}

.burguer-button
{
	background-color: var(--secondary-color);
	border-radius: 10px;
	width: 40px;
	height: 40px;
}

.cover-button
{
	background-color: var(--secondary-color);
	color: white;
	font-family: 'Outfit', sans-serif;
	font-weight: 400;
	font-size: 18px;
	text-align: center;
	border-radius: 10px;
	padding: 15px 40px;
	max-width: 150px;
	margin-top: 30px;
	cursor: pointer;
	position: absolute;
	z-index: 3;
	bottom: 100px;
	left: 38px;
	transition: ease .3s;
	scale: 1;
}

.general-button
{
	background-color: var(--secondary-color);
	color: white;
	font-family: 'Outfit', sans-serif;
	font-weight: 400;
	font-size: 18px;
	text-align: center;
	border-radius: 10px;
	padding: 15px 40px;
	max-width: 100%;
	margin: auto;
	margin-top: 30px;
	cursor: pointer;
	transition: ease .3s;
}

.cover-button:hover, .general-button:hover
{
	background-color: var(--primary-color);
	transition: ease .3s;
	scale: 1.1;
}

.main-cover-container-back
{
	width: 100%;
	margin-top: -32px;
	padding: 60px 0px;
}

.main-logo
{
	width: 150px;
	margin-top: 10px;
}

.cristal-block
{
	position: absolute;
	right: 0px;
	top: 0px;
	border-radius: 10px;
  padding: 10px;
  width: 30px;
  height: 700px;
 	background-position: 0% 0%;
  backdrop-filter: blur(14px) ;
  -webkit-backdrop-filter: blur(14px);
  color:#eef2ff;
  text-shadow: 0px 0px 6px rgba(0, 0, 0, 1);
}

.subtitle
{
	font-size: 32px;
	font-weight: 400;
	margin-top: 0px;
}

.innersubtitle
{
	font-size: 24px;
	font-weight: 700;
	margin-bottom: 0px;
}

.text
{
	font-size: 18px;
}

.minititle
{
	font-size: 16px;
	font-weight: 400;
	margin-bottom: 40px;
}

.subtitle span
{
	font-weight: 700;
}

.tag
{
	border: 4px solid var(--secondary-color);
	padding: 10px 30px 10px 30px;
	border-radius: 10px;
	max-height: 24px;
}


.tag p
{
	font-family: 'Lato', sans-serif;
	font-weight: 700;
	color: var(--secondary-color);
	font-size: 18px;
	margin: 0px;
}

.container-projects
{
	border-radius: 24px;
	position: relative;
	overflow: hidden;
	background-color: var(--primary-color);
	padding-bottom: 40px;
}

.subtitle.special
{
	max-width: 750px;
}

.white
{
	color: white;
}

.card_portafolio
{
	height: 350px;
	background-color: #ffdbcc;
	border-radius: 20px;
	min-width: 300px;
	position: relative;
	overflow: hidden;
}

.card-color
{
	margin-top: 20px;
	border: 4px solid var(--secondary-color);
	border-radius: 20px;
	padding: 20px 20px 20px 20px;
	display: grid;
  grid-template-rows: auto;
  max-width: 380px;
}

.carousel-button-block 
{
  width: 100%;
  display: flex;
  justify-content: flex-end;
  max-height: 38px;
}

.carousel-promotional-controls-left 
{
  position: unset;
  height: -webkit-fill-available;
}

.carousel-promotional-controls-right 
{
  position: unset;
  margin-right: 2em;
  height: -webkit-fill-available;
}

.carousel-promotional-controls-left button, .carousel-promotional-controls-right button 
{
  background-color: var(--secondary-color);
  border: none;
  font-family: "Montserrat", sans-serif;
  color: white;
  padding: 0px;
  cursor: pointer;
  font-size: 18px;
  width: 35px;
  height: 35px;
  border-radius: 43px;
  margin-left: 10px;
  border: 4px solid var(--secondary-color);
  transition: ease .3s;
  scale: 1;
}

.hideme 
{
  background-color: var(--secondary-color);
  cursor: default !important;
  opacity: 0.5;
}

.carousel-promotional-arrow-icon_container 
{
  width: 14px;
  margin-top: 4px;
}

.carousel-promotional-arrow-icon_container.right
{
	margin-right: 3px;
}

.carousel-promotional-arrow-icon_container.left
{
	margin-left: 3px;
}

.carousel-promotional-arrow-icon 
{
  fill: white;
}

.carousel-promotional-controls-left button:hover, .carousel-promotional-controls-right button:hover
{
  background-color: var(--primary-color);
  transition: ease .3s;
  scale: 1.2;
}

.carousel-promotional-controls-left button:hover .carousel-promotional-arrow-icon , .carousel-promotional-controls-right button:hover .carousel-promotional-arrow-icon
{
	fill: var(--secondary-color);
}

.carousel-promotional 
{
  display: flex;
  transition: transform 0.5s ease-in-out;
}

ul.plan li
{
	font-family: 'Lato', sans-serif;
}

ul.plan li
{
	font-family: 'Lato', sans-serif;
}

ul.plan li::marker 
{
  color: var(--text-color);
}

.precio
{
	font-size: 30px;
	color: var(--text-color);
	text-align: center;
	margin-top: 0px;
	margin-bottom: 0px;
}

.precio span
{
	font-size: 18px;
}

.contact-container
{
	width: calc(100% - 60px);
	background-color: var(--primary-color);
	border-radius: 24px;
	padding: 30px 30px 40px 30px;
}

.blur
{
	filter: contrast(110%);
	opacity: 0.9;
}

.contact-button
{
	background-color: var(--secondary-color);
	border: 4px solid var(--secondary-color);
	color: white;
	font-family: 'Outfit', sans-serif;
	font-weight: 400;
	font-size: 18px;
	text-align: center;
	border-radius: 10px;
	padding: 15px 40px;
	width: calc(100% - 88px);
	margin: auto;
	margin-top: 10px;
	cursor: pointer;
	transition: ease .3s;
}

.contact-button:hover
{
	background-color: var(--primary-color);
	transition: ease .3s;
	color: var(--secondary-color);
}

.hiden
{
	opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.hiden.show
{
	opacity: 1;
  transform: translateY(0);
}

.hidenn
{
	opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.hidenn.show
{
	opacity: 1;
  transform: translateY(0);
}

.hidennn
{
	opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.hidennn.show
{
	opacity: 1;
  transform: translateY(0);
}

.social-container
{
	background-color: var(--secondary-color);
	width: 40px;
	height: 40px;
	border-radius: 50px;
	margin-left: 10px;
	cursor: pointer;
	scale: 1;
	transition: ease .3s;
}

.social-container:hover
{
	scale: 1.2;
	transition: ease .3s;
}

.social-icon
{
	width: 20px;
	height: 20px;
	margin-left: 10px;
	margin-top: 9px;
}

.social-main-container
{
	position: absolute;
	right: 63px;
  top: -18px;
	z-index: 20;
}

.carousel-promotional-item
{
	width: 100%;
	position: relative;
}

/* FLEX BASE -------------------------------- */
.containerflexwrap 
{
	display: flex;
 	flex-wrap: wrap;
}

.containerflex
{
	display: flex;
}

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

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

.verticalcenter
{
	align-items: center;
  justify-content: center;
	display: block;
}

.flex-to-right
{
	margin-left: auto;
	order: 2;
	text-align: right;
}

.float-to-right
{
	float: right;
}

.block01,.block01a {flex: 8.333%;}
.block02 {flex: 16.666%;}
.block03 {flex: 25%;}
.block04 {flex: 33.333%;}
.block05 {flex: 41.666%;}
.block06 {flex: 50%;}
.block07 {flex: 58.333%;}
.block08 {flex: 66.666%;}
.block09, .block09a {flex: 75%;}
.block10 {flex: 83.333%;}
.block11 {flex: 91.666%;}
.block12 {flex: 100%;}
.blockauto {flex: 1 1 auto;}


@media (max-width: 767px)
{
  .block01, .block02, .block03, .block04, .block05, .block06, .block07, .block08, .block09, .block10, .block11, .block12, .blockauto
  {
  	flex: 100%;
  }
}

/* MEDIA FOR SPECIAL CASES */
@media only screen and (min-width: 0px)
{
	.visibledesk{display: none;}
	.visibledevice{display: initial}  	
	.card_portafolio
	{
		min-width: 250px;
	}

	.main-title
	{
		font-size: 35px;
		margin-top: 50px;
		filter: drop-shadow(0px 2px 0px var(--primary-color));
	}

	.main-cover-container-inner
	{
		background: none;
		width: calc(100% - 80px);
	}

	.image-container-imageback
	{
		z-index: 0;
		left: -50%;
		width: 680px;
	}

	.main-cover-container
	{
		overflow: visible;
	}

	.special_push
	{
		margin-top: 30px;
	}

	.header_push
	{
		margin-top: 50px;
	}

	.controled_space
	{
		margin-top: 60px;
	}

	.margintop120p
	{
		margin-top: 80px;
	}

	.tag
	{
		padding: 10px 20px 10px 20px;
	}

	.tag p
	{
		font-size: 16px;
	}

	.gap-module
	{
		gap: 5px;
	}

	.limited-container
	{
		padding: 0 20px;
	 	width: calc(100% - 40px);
	}

	.social-main-container
	{
		position: absolute;
		right: 13px;
    top: -16px;
		z-index: 20;
	}
}

@media only screen and (min-width: 440px)
{
	.image-container-imageback
	{
		z-index: 0;
		left: 0;
		width: 112%;
	}
}

@media only screen and (min-width: 768px)
{
	.visibledesk{display: initial;}
  .visibledevice{display: none}
  .card_portafolio
  {
		min-width: 290px;
  }
  .main-title
	{
		font-size: 40px;
		margin-top: 60px;
		filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0));
	}

	.main-cover-container-inner
	{
		background: white;
		width: calc(50% - 80px);
	}

	.image-container-imageback
	{
		z-index: 1;
		left: 65px;
		width: 100%;
	}

	.main-cover-container
	{
		overflow: hidden;
	}

	.special_push
	{
		margin-top: 0px;
	}

	.header_push
	{
		margin-top: 60px;
	}

	.controled_space
	{
		margin-top: 120px;
	}

	.margintop120p
	{
		margin-top: 120px;
	}

	.tag
	{
		padding: 10px 30px 10px 30px;
	}

	.tag p
	{
		font-size: 18px;
	}

	.gap-module
	{
		gap: 10px;
	}

	.limited-container
	{
		padding: 0 30px;
	 	width: calc(100% - 60px);
	}

	.social-main-container
	{
		position: absolute;
		right: 63px;
	  top: -18px;
		z-index: 20;
	}
}

@media only screen and (min-width: 1071px)
{
	.main-title
	{
		font-size: 45px;
		margin-top: 100px;
	}
}

.gap10
{
	gap: 0 10px;
}
.gap20
{
	gap: 0 20px;
}
.gap30
{
	gap: 0 30px;
}
.gap40
{
	gap: 0 40px;
}
.gap50
{
	gap: 0 50px;
}
.gap60
{
	gap: 0 60px;
}
.gap70
{
	gap: 0 70px;
}
.gap80
{
	gap: 0 80px;
}
.margintop0
{
	margin-top: 0px;
}
.margintop5
{
	margin-top: 5px;
}
.margintop10
{
	margin-top: 10px;
}
.margintop20
{
	margin-top: 20px;
}
.margintop30
{
	margin-top: 30px;
}
.margintop40
{
	margin-top: 40px;
}
.margintop50
{
	margin-top: 50px;
}
.margintop60
{
	margin-top: 60px;
}
.margintop70
{
	margin-top: 70px;
}
.margintop80
{
	margin-top: 80px;
}
.margintop90
{
	margin-top: 90px;
}
.margintop100
{
	margin-top: 100px;
}
.margintop110
{
	margin-top: 110px;
}
.margintop120
{
	margin-top: 120px;
}
.margintop130
{
	margin-top: 130px;
}
.margintop140
{
	margin-top: 140px;
}
.marginbottom0
{
	margin-bottom: 0px;
}
.marginbottom5
{
	margin-bottom: 5px;
}
.marginbottom10
{
	margin-bottom: 10px;
}
.marginbottom20
{
	margin-bottom: 20px;
}
.marginbottom30
{
	margin-bottom: 30px;
}
.marginbottom40
{
	margin-bottom: 40px;
}
.marginbottom50
{
	margin-bottom: 50px;
}
.marginbottom60
{
	margin-bottom: 60px;
}
.marginbottom70
{
	margin-bottom: 70px;
}
.marginbottom80
{
	margin-bottom: 80px;
}
.marginbottom90
{
	margin-bottom: 90px;
}
.marginbottom100
{
	margin-bottom: 100px;
}
.marginbottom110
{
	margin-bottom: 110px;
}
.marginbottom120
{
	margin-bottom: 120px;
}
.marginbottom130
{
	margin-bottom: 130px;
}
.marginbottom140
{
	margin-bottom: 140px;
}
.height100
{
	height: 100px;
}
.height200
{
	height: 200px;
}
.height250
{
	height: 250px;
}
.height300
{
	height: 300px;
}
.height350
{
	height: 350px;
}
.height400
{
	height: 400px;
}
.height500
{
	height: 500px;
}
.alwayscenter
{
	text-align: center;
	margin: auto;
}
.alwaysright
{
	text-align: right;
}
.paddingtopbottom30
{
	padding: 30px 0px;
}
.opacity5
{
	opacity: 0.5;
}
.opacity6
{
	opacity: 0.6;
}
.opacity8
{
	opacity: 0.8;
}
.vertical-fill
{
	justify-content: space-evenly;
}


:root{
  --float-distance: 12px;    
  --float-duration: 7s;     
  --shadow-elev: 18px;   
}


.float-wrapper{
  perspective: 90px;
}

.float-img{
  transform-origin: 50% 50%;
  will-change: transform, filter;
  animation: floatY var(--float-duration) ease-in-out infinite;
  transition: transform 240ms ease, filter 240ms ease;
  filter: drop-shadow(0 24px 36px rgba(0,0,0,0.6));
}


@keyframes floatY{
  0% {
    transform: translateY(0) rotateX(0deg) rotateY(0deg);
    filter:  drop-shadow(0 24px 36px rgba(0,0,0,0.6));
  }
  50% {
    transform: translateY(calc(var(--float-distance) * -1)) rotateX(0.5deg) rotateY(0.5deg);
    filter:  drop-shadow(0 var(--shadow-elev) 36px rgba(0,0,0,0.4));
  }
  100% {
    transform: translateY(0) rotateX(0deg) rotateY(0deg);
    filter:  drop-shadow(0 24px 36px rgba(0,0,0,0.6));
  }
}

.float-wrapper.tilt .float-img{
  transform-style: preserve-3d;
}


@media (prefers-reduced-motion: reduce){
  .float-img {
    animation: none !important;
    transition: none !important;
  }
}