// FUENTES ========================================================================================
@font-face {
    font-family: 'Sebino Thin';
    src: url('fuentes/sebino-thin.eot');
    src: url('fuentes/sebino-thin.eot?#iefix') format('embedded-opentype'),
         url('fuentes/sebino-thin.woff2') format('woff2'),
         url('fuentes/sebino-thin.ttf') format('truetype'),
         url('fuentes/sebino-thin.svg#sebino-thinuploaded_file') format('svg');
    font-weight: normal;
    font-style: normal;

}
@font-face {
    font-family: 'Sebino Extralight';
    src: url('fuentes/sebino-extralight.eot');
    src: url('fuentes/sebino-extralight.eot?#iefix') format('embedded-opentype'),
         url('fuentes/sebino-extralight.woff2') format('woff2'),
         url('fuentes/sebino-extralight.ttf') format('truetype'),
         url('fuentes/sebino-extralight.svg#sebino-extralightuploadedfile') format('svg');
    font-weight: normal;
    font-style: normal;

}
@font-face {
    font-family: 'Sebino Light';
    src: url('fuentes/sebino-light.eot');
    src: url('fuentes/sebino-light.eot?#iefix') format('embedded-opentype'),
         url('fuentes/sebino-light.woff2') format('woff2'),
         url('fuentes/sebino-light.ttf') format('truetype'),
         url('fuentes/sebino-light.svg#sebino-lightuploaded_file') format('svg');
    font-weight: normal;
    font-style: normal;

}
@font-face {
    font-family: 'Sebino Regular';
    src: url('fuentes/sebino-regular.eot');
    src: url('fuentes/sebino-regular.eot?#iefix') format('embedded-opentype'),
         url('fuentes/sebino-regular.woff2') format('woff2'),
         url('fuentes/sebino-regular.ttf') format('truetype'),
         url('fuentes/sebino-regular.svg#sebino-regularuploaded_file') format('svg');
    font-weight: normal;
    font-style: normal;

}
@font-face {
    font-family: 'Sebino Medium';
    src: url('fuentes/sebino-medium.eot');
    src: url('fuentes/sebino-medium.eot?#iefix') format('embedded-opentype'),
         url('fuentes/sebino-medium.woff2') format('woff2'),
         url('fuentes/sebino-medium.ttf') format('truetype'),
         url('fuentes/sebino-medium.svg#sebino-mediumuploaded_file') format('svg');
    font-weight: normal;
    font-style: normal;

}
@font-face {
    font-family: 'Sebino Bold';
    src: url('fuentes/sebino-bold.eot');
    src: url('fuentes/sebino-bold.eot?#iefix') format('embedded-opentype'),
         url('fuentes/sebino-bold.woff2') format('woff2'),
         url('fuentes/sebino-bold.ttf') format('truetype'),
         url('fuentes/sebino-bold.svg#sebino-bolduploaded_file') format('svg');
    font-weight: normal;
    font-style: normal;

}
@font-face {
    font-family: 'Sebino Extrabold';
    src: url('fuentes/sebino-extrabold.eot');
    src: url('fuentes/sebino-extrabold.eot?#iefix') format('embedded-opentype'),
         url('fuentes/sebino-extrabold.woff2') format('woff2'),
         url('fuentes/sebino-extrabold.ttf') format('truetype'),
         url('fuentes/sebino-extrabold.svg#sebino-extrabolduploaded_file') format('svg');
    font-weight: normal;
    font-style: normal;

}
@font-face {
    font-family: 'Sebino Heavy';
    src: url('fuentes/sebino-heavy.eot');
    src: url('fuentes/sebino-heavy.eot?#iefix') format('embedded-opentype'),
         url('fuentes/sebino-heavy.woff2') format('woff2'),
         url('fuentes/sebino-heavy.ttf') format('truetype'),
         url('fuentes/sebino-heavy.svg#sebino-heavyuploaded_file') format('svg');
    font-weight: normal;
    font-style: normal;

}
@font-face {
    font-family: 'Sebino Black';
    src: url('fuentes/sebino-black.eot');
    src: url('fuentes/sebino-black.eot?#iefix') format('embedded-opentype'),
         url('fuentes/sebino-black.woff2') format('woff2'),
         url('fuentes/sebino-black.ttf') format('truetype'),
         url('fuentes/sebino-black.svg#sebino-blackuploaded_file') format('svg');
    font-weight: normal;
    font-style: normal;

}

// SCROLLBARS =====================================================================================
::-webkit-scrollbar-track {
    //background-color: #2f2f2f;
}
::-webkit-scrollbar-thumb {
    background-color: @azul;
	border-radius: 4px;
}
::-webkit-scrollbar {
    width: 8px;
    height: 4px;
    background-color: #f1f1f1;
	border-radius: 4px;
}
::-moz-scrollbar-track {
    //background-color: #2f2f2f;
}
::-moz-scrollbar-thumb {
    background-color: @azul;
	border-radius: 4px;
}
::-moz-scrollbar {
    width: 8px;
    height: 4px;
    background-color: #f1f1f1;
	border-radius: 4px;
}

// SELECCIÓN DE TEXTO =============================================================================
::-moz-selection {
    color: @b;
    background: @azul;
}
::selection {
    color: @b;
    background: @azul;
}

// RECURSOS ======================================================================================
/*
calc(~" ");

content: attr(data-*);
//con el atributo "data-*" añadido en una etiqueta html puedo incluir un texto en el ":before" ó ":after" como valor del "content"

[class^="col-"]

transform: translate(-50%, -50%);

background-image: url(../gestor/recursos/uploads/imagenes/.svg);
background-size: cover;
background-position: center center;
background-repeat: no-repeat;

background: linear-gradient(to bottom, #34b8c0 0%, #6f51c7 100%);

display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: center;

@keyframes blink {
  0% {
    opacity: .2;
  }
  20% {
    opacity: 1;
  }
  100% {
    opacity: .2;
  }
}
*/

// VARIABLES ======================================================================================
@i: !important;
@n: #070707;
@b: #ffffff;
@f5: #f5f5f5;
@azul: #002CE4;
@azul-light: #80ADF1;
@amarillo: #fce713;
@g: #4d4d4d;
@g-md: #7c7c7c;
@g-lt: #f6f6f6;
@g0: #010101;
@g1: #111111;
@g2: #222222;
@g3: #333333;
@g4: #444444;
@g5: #555555;
@g6: #666666;
@g7: #777777;
@g8: #888888;
@g9: #999999;
@n10: rgba(0, 0, 0, 0.1);
@n20: rgba(0, 0, 0, 0.2);
@n30: rgba(0, 0, 0, 0.3);
@n40: rgba(0, 0, 0, 0.4);
@n50: rgba(0, 0, 0, 0.5);
@n60: rgba(0, 0, 0, 0.6);
@n70: rgba(0, 0, 0, 0.7);
@n80: rgba(0, 0, 0, 0.8);
@n90: rgba(0, 0, 0, 0.9);
@b10: rgba(255, 255, 255, 0.1);
@b20: rgba(255, 255, 255, 0.2);
@b30: rgba(255, 255, 255, 0.3);
@b40: rgba(255, 255, 255, 0.4);
@b50: rgba(255, 255, 255, 0.5);
@b60: rgba(255, 255, 255, 0.6);
@b70: rgba(255, 255, 255, 0.7);
@b80: rgba(255, 255, 255, 0.8);
@b90: rgba(255, 255, 255, 0.9);
@gradient: linear-gradient(90deg, #673AB7 0%, #00ffc6 100%);
@ef15: all 0.15s ease;
@ef25: all 0.25s ease;
@ef4: all 0.4s ease;
@ef6: all 0.6s ease;
@fa: 'Font Awesome 6 Pro';
@fab: 'Font Awesome 6 Brands';
@thin: 'Sebino Thin', Helvetica, Arial, sans-serif;
@extralight: 'Sebino Extralight', Helvetica, Arial, sans-serif;
@light: 'Sebino Light', Helvetica, Arial, sans-serif;
@regular: 'Sebino Regular', Helvetica, Arial, sans-serif;
@medium: 'Sebino Medium', Helvetica, Arial, sans-serif;
@bold: 'Sebino Bold', Helvetica, Arial, sans-serif;
@extrabold: 'Sebino Extrabold', Helvetica, Arial, sans-serif;
@heavy: 'Sebino Heavy', Helvetica, Arial, sans-serif;
@black: 'Sebino Black', Helvetica, Arial, sans-serif;

:root {
	--fa-primary-color: @azul;
	--fa-secondary-color: @g;
}

// MENSAJE COOKIES ================================================================================
#eucookielaw {
	display: none;
	color: @b @i;
    text-align: center @i;
    position: fixed @i;
    right: 0 @i;
    left: 0 @i;
    width: 100% @i;
    bottom: 0 @i;
    background: #212529 @i;
    z-index: 9999999 @i;
    padding: 25px @i;
    top: initial @i;
    max-width: initial @i;
    min-width: initial @i;
    box-shadow: none @i;

	p {
		max-width: 980px @i;
	    margin-left: auto @i;
	    margin-right: auto @i;

	    a {
	    	color: @b @i;
	    	text-decoration: underline @i;
	    }
	}

	ul {
		display: flex;
		justify-content: center;
		align-items: center;
		margin: 0 auto;

		> li {
			padding: 0 10px;
			margin: 5px 0;

			&:before {
				display: none;
			}
		}
	}
}

// TABLES =========================================================================================
table {
	width: 100%;
	border-spacing: 0 @i;
	border: solid 1px @g3;

	thead {
		tr {
			th {
				font-weight: 400;
				line-height: 1;
				text-align: center;
				text-transform: uppercase;
				vertical-align: middle;
				padding: 24px;	
				margin: 0;
				white-space: nowrap;
				border-left: solid 1px @g3;

				&:first-of-type {
					border: none;
				}
			}
		}
	}
	
	tbody {
		tr {
			border-top: solid 1px @g3;

			td {
				vertical-align: top;
				padding: 16px;
				border-left: solid 1px @g3;

				span {
					display: block;
					text-align: center;
				}

				p {
					min-width: 200px;
				}

				img {
					max-height: 50px;
					max-width: 100px;
				}

				&:first-of-type {
					border: none;
				}
			}
		}
	}
}

.wrapper-table {
    overflow: auto;
}

// FORMULARIOS ====================================================================================
form, .form {
	font-size: 2.4rem;
	color: @n;

	input[type="text"],
	input[type="email"],
	input[type="number"],
	input[type="password"],
	input[type="file"],
	textarea {
		width: 100%;
		height: 80px;
		border-radius: 20px;
		padding: 24px;
		background-color: transparent;
		-ms-word-break: normal;
		word-break: normal;
		transition: @ef25;

		&:focus {
			color: @n;
			border-color: @azul;
		}
	}

	input[type="text"],
	input[type="email"],
	input[type="number"],
	input[type="password"],
	input[type="file"],
	textarea,
	select,
	.file-upload-wrapper label.custom-file-upload {
		border: solid 1px #dbdbdb;
	}

	textarea {
		height: initial;
		min-height: 160px;
	}

	select {
		color: @n;
		display: block;
		width: 100%;
		height: 80px;
		border-radius: 20px;
		padding: 24px 80px 24px 24px;
		background-color: transparent;
		background-image: none;
		position: relative;
		z-index: 1;
		cursor: pointer;
		-webkit-appearance: none;
		appearance: none;
		-ms-word-break: normal;
		word-break: normal;

		option {
			color: @n;
			background-color: @b;
		}

		&:focus {
			color: @n;
			border-color: @azul;
		}
	}

	select::-ms-expand {
		display: none;
	}

	label:not(.condiciones) {
		display: flex;
		align-items: center;
		height: 60px;
	}

	label.comentarios {
		padding: 0 10px;
	}

	input:-internal-autofill-selected {
		background-color: transparent @i;
	}

	p {
		
	}

	input[type=number]::-webkit-inner-spin-button,
	input[type=number]::-webkit-outer-spin-button {
		-webkit-appearance: none;
		margin: 0;
	}

	input[type=number] {
		-moz-appearance: textfield;
	}

	input[type="checkbox"] {
		appearance: none;
		-webkit-appearance: none;
		width: 20px;
		height: 20px;
		//border: 1px solid @n;
		border-radius: 4px;
		cursor: pointer;
		position: relative;
		background-color: @b;
		box-shadow: inset 0 0 0 0.7px #dbdbdb;
		transition: @ef25;

		/* Estilo cuando está marcado */
		&:checked {
			background-color: @azul;
			box-shadow: inset 0 0 0 0.7px @azul;

			/* Crear el checkmark (✓) */
			&::after {
				content: "\f00c";
				font-family: @fa;
				position: absolute;
				color: white;
				font-size: 1.4rem;
				font-weight: 700;
				top: 50%;
				left: 50%;
				transform: translate(-50%, -50%);
			}
		}

		/* Efecto hover */
		&:hover {
			border-color: @azul;
		}
	}

	.btn {
		margin-top: 20px;
	}

	ul.radios {
		width: calc(~'100% + 10px');
		margin-left: -5px;
		margin-right: -5px;
		display: flex;
		justify-content: space-between;

		li {
			position: relative;
			width: 144px;
			height: 38px;
			margin: 0 5px;

			input[type="radio"], label {
				width: 144px;
				height: 38px;
				position: absolute;
				top: 0;
				right: 0;
				bottom: 0;
				left: 0;
			}

			input[type="radio"] {
				z-index: 0;
				display: none;

				&:checked + label {
					background: @n;
				}
			}

			label {
				font-size: 1.6rem;
				display: flex;
				align-items: center;
				justify-content: center;
				z-index: 1;
				background: @g1;
				transition: @ef25;
			}
		}
	}

	.condiciones {
		font-size: 1.8rem;
		position: relative;
		padding-left: 40px;

		input {
			position: absolute;
			left: 0;
		}

		a {
		 	padding-bottom: 0;
		 	position: relative;

		 	&:hover {
		 		color: @azul;
		 		text-decoration: none;

		 		&:after {
		 			transform: scaleX(1);
		 			transform-origin: bottom left;
		 		}
		 	}

		 	&:after {
			 	content: '';
			    position: absolute;
			    width: 100%;
			    transform: scaleX(0);
			    height: 1px;
			    bottom: 0;
			    left: 0;
			    background-color: @azul;
			    transform-origin: bottom right;
			    transition: transform 0.25s ease-out;
			}
		}
	}

	.my-checkbox {
		transform: scale(1.3);
		margin-left: 3px;
		margin-right: 8px;
	}

	.obligatorios {
		
	}

	.select-wrapper {
		position: relative;

		&:after {
			content: '\f107';
			font-family: 'Font Awesome 6 Pro';
			font-weight: 100;
			font-size: 3rem;
			color: @n;
			display: flex;
			justify-content: center;
			align-items: center;
			width: 80px;
			height: 80px;
			position: absolute;
			z-index: -1;
			right: 0;
			top: 50%;
			transform: translateY(-50%);
		}
	}

	.selectdiv {
		position: relative;
		float: left;
		width: 100%;

		&:after {
		    content: '\f107';
		    font-family: @fa;
		    font-weight: 900;		    
		    display: flex;
		    align-items: center;
		    height: 100%;
		    position: absolute;
		    top: 0;
		    right: 20px;
		    pointer-events: none;
		}

		label {
			display: block;
			height: initial;
		}

		select {
			-webkit-appearance: none;
			-moz-appearance: none;
			appearance: none;
			display: block;
			width: 100%;
			height: 60px;
			border-radius: 30px;
			float: right;
			padding: 0 25px;			
			//background-color: transparent;
			background-color: @b;
			background-image: none;
			border: none;
			//border-bottom: solid 1px @g3;
			-ms-word-break: normal;
			word-break: normal;

			&:focus {
				background-color: @b;
				border-color: @g9;
			}

			option {
				color: @n;
				background-color: @b;

				&:first-child {
					//display: none;
				}

				&:hover {
					color: @n;
					background-color: @g9;
				}

				span {
					display: inline-block;
					padding: 0 20px;
				}
			}

			&.filtered {
				option {
					&:first-child {
						display: none;
					}
				}
			}
		}
	}

	.quantity {
		position: relative;

		input {
			width: 95px;
			height: 62px;
			line-height: 1.65;
			float: left;
			display: block;
			padding: 0;
			margin: 0;
			padding-right: 40px;
			border: none;
			box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
			font-size: 2.9rem;
			text-align: center;

			&:focus {
				outline: 0;
			}
		}
	}

	.quantity-nav {
		float: left;
		position: relative;
		height: 62px;
	}

	.quantity-button {
		position: relative;
		cursor: pointer;
		border: none;
		border-left: 1px solid rgba(0, 0, 0, 0.08);
		width: 40px;
		text-align: center;
		color: #333;
		font-size: 13px;
		font-family: @fa @i;
		line-height: 1.5;
		padding: 0;
		background: @b;
		-webkit-transform: translateX(-100%);
		transform: translateX(-100%);
		-webkit-user-select: none;
		-moz-user-select: none;
		-ms-user-select: none;
		-o-user-select: none;
		user-select: none;

		&:active {
			background: #EAEAEA;
		}

		&.quantity-up {
			position: absolute;
			height: 50%;
			top: 0;
			border-bottom: 1px solid rgba(0, 0, 0, 0.08);
			font-family: @fa;
			line-height: 1.6;
		}

		&.quantity-down {
			position: absolute;
			bottom: 0;
			height: 50%;
			font-family: @fa;
		}
	}

	.file-upload-wrapper {
		height: 80px;
		position: relative;
		width: 100%;

		input[type="file"] {
            position: absolute;
			z-index: 1;
            opacity: 0;
			width: 100%;
			height: 100%;
			padding: 40px;
			cursor: pointer;
        }

		label.custom-file-upload {
			height: 100%;
			display: flex;
			align-items: center;
			gap: 12px;
			padding: 24px;
			//border: 1px solid @n;
			border-radius: 20px;
			cursor: pointer;
			transition: @ef25;
			background: transparent;
		}

		.upload-icon {
            flex-shrink: 0;
            width: 24px;
            height: 24px;
            color: @b;
        }

		img {
			width: 22px;
			position: relative;
			top: -3px;
			z-index: -1;
			//filter: invert(1);
		}

        .file-text {
            flex: 1;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
	}

	.filtros {
		display: flex;
		flex-wrap: wrap;
		margin-left: -12px;
		margin-right: -12px;

		> div {
			margin-left: 12px;
			margin-right: 12px;
			margin-bottom: 24px;
		}

		.select-wrapper {
			&:before {
				content: '';
				position: absolute;
				z-index: -2;
				top: 0;
				right: 0;
				bottom: 0;
				left: 0;
				background-color: @b50;
				border-radius: 8px;
				transition: @ef25;
			}

			&:after {
				font-size: 1.8rem;
				font-weight: 400;
				color: @n;
				width: 32px;
				height: 64px;
				justify-content: flex-start;
			}

			&:hover {
				&:before {
					background-color: @b;
				}
			}
		}

		select {
			font-size: 1.6rem;
			font-family: @medium;
			color: @n;
			height: 64px;
			padding: 0 40px 0 24px;
			border-radius: 8px;
			border: none;
		}
	}
}

.recaptcha {
	position: absolute;
	right: 0;
	bottom: 285px;
}

.grecaptcha-badge {
    bottom: 100px @i;
}

// PANEL FANCYBOX =================================================================================
.fancypanel {
	display: none;
	width: 100%;

	.container {
		iframe {
			//width: 100%;
		}
	}
}

.fancybox-container {
	.owl-carousel {
		.owl-nav {
			position: absolute;
			top: 50%;
			left: 0%;
			display: flex;
			justify-content: space-between;

			.owl-prev, .owl-next {
				width: 54px;
				height: 54px;
				background: @n50;
				border: none @i;

				span {
					width: 54px;
					height: 54px;	
					opacity: 1;

					&:before {
						font-size: 2.6rem;
						color: @b;
						line-height: 54px;
					}
				}
			}
		}

		&.ejemplo {
			.item {
				overflow: hidden;
			}
		}
	}
}

.formulario-fancybox {
	display: none;
	text-align: center;
	padding: 80px 65px 65px;
	position: relative;

	> div {
		width: 86vw;
		max-width: 700px;
		margin: 0 auto;
		background: @b;
		padding: 50px;
		border-radius: 25px;

		.h1, .h2, .h3, .h4, .h5, .h6 {
			text-align: left;
			line-height: 1.4;
			margin-bottom: 40px;
		}

		form, .form {
			input[type="email"] {
				background-color: #dedede;
				max-width: 415px;
			}

			.condiciones a {
				color: @n;

				&:after {
					background-color: @n;
				}
			}
		}
	}
}

// FORMULARIO MÁS INFO ============================================================================
#formulario-mas-info {
	form .input-field {
	    margin-top: 10px;
	    margin-bottom: 10px;
	}

	#selector-via-contacto {
		> li {
			> span {
				> a.selector-franja {
					small {
						text-decoration: underline;
					}

					&:after{
						content: "\f107";
						font-family: @fa;
						position: relative;
						top: 3px;
						left: 5px;

					}

					&:hover, &:focus, &:active {
						text-decoration: none;
						color: @azul;
					}

					&.active:after {
						content: "\f106";
					}
				}
			}
		}
	}

	#franja-horaria {
		display: none;

		ul {
			> li {
				width: 100px;
			}
		}
	}
}

// EMBED CONTAINER ================================================================================
.embed-container {
	display: flex;
    justify-content: center;
    align-items: center;
	position: relative;
	overflow: hidden;
	width: 100%;
	max-height: calc(~'100vh - 180px');
    min-height: 400px;
    aspect-ratio: 1;
	border-radius: 24px;

	video, iframe, object, embed, img {
		min-width: 100%;
		min-height: 100%;
		object-fit: cover;
	}
}

// FLEX  ==========================================================================================
.flex {
	display: flex;

	&.inline {
		display: inline-flex;
	}

	&.w-100 {
		width: 100%;
	}

	&.h-100 {
		height: 100%;
	}

	&.x-axis {
	    flex-flow: row wrap;
	    align-items: flex-start;
	    justify-content: flex-start;
	    margin-bottom: 0;

	    &.x-center {
	    	justify-content: center;
	    }

	    &.x-end {
			justify-content: flex-end;
		}

	    &.y-center {
	    	align-items: center;
	    }

	    &.y-end {
	    	align-items: flex-end;
	    }

		&.space-between {
			display: flex;
			justify-content: space-between;
		}		

		&.last-right {
			> li:last-of-type {
				margin-left: auto;
			}
		}

		&.nowrap {
			flex-wrap: nowrap;
		}

		&.spacing-4px {
			margin-left: -4px;
			margin-right: -4px;

			> li, > div {
				margin-left: 4px;
				margin-right: 4px;
			}
		}

		&.spacing-8px {
			margin-left: -8px;
			margin-right: -8px;

			> li, > div {
				margin-left: 8px;
				margin-right: 8px;
			}
		}

		&.spacing-12px {
			margin-left: -12px;
			margin-right: -12px;

			> li, > div {
				margin-left: 12px;
				margin-right: 12px;
			}
		}

		&.spacing-16px {
			margin-left: -16px;
			margin-right: -16px;

			> li, > div {
				margin-left: 16px;
				margin-right: 16px;
			}
		}

		&.spacing-20px {
			margin-left: -20px;
			margin-right: -20px;

			> li, > div {
				margin-left: 20px;
				margin-right: 20px;
			}
		}

		&.spacing-24px {
			margin-left: -24px;
			margin-right: -24px;

			> li, > div {
				margin-left: 24px;
				margin-right: 24px;
			}
		}

		&.spacing-32px {
			margin-left: -32px;
			margin-right: -32px;

			> li, > div {
				margin-left: 32px;
				margin-right: 32px;
			}
		}

		&.spacing-40px {
			margin-left: -40px;
			margin-right: -40px;

			> li, > div {
				margin-left: 40px;
				margin-right: 40px;
			}
		}

		&.spacing-mb-0px {
			> li, > div {
				margin-bottom: 0;
			}
		}

		&.spacing-mb-4px {
			> li, > div {
				margin-bottom: 4px;
			}
		}

		&.spacing-mb-8px {
			> li, > div {
				margin-bottom: 8px;
			}
		}

		&.spacing-mb-12px {
			> li, > div {
				margin-bottom: 12px;
			}
		}

		&.spacing-mb-16px {
			> li, > div {
				margin-bottom: 16px;
			}
		}

		&.spacing-mb-20px {
			> li, > div {
				margin-bottom: 20px;
			}
		}

		&.spacing-mb-24px {
			> li, > div {
				margin-bottom: 24px;
			}
		}

		&.spacing-mb-32px {
			> li, > div {
				margin-bottom: 32px;
			}
		}

		&.spacing-mb-40px {
			> li, > div {
				margin-bottom: 40px;
			}
		}
	}

	&.y-axis {
		flex-flow: column nowrap;

		&.xy-center {
			justify-content: center;
			align-items: center;
		}

		&.y-center {
			justify-content: center;
		}

		&.y-start {
			justify-content: flex-start;
		}

		&.y-end {
			justify-content: flex-end;
		}

		&.x-center {
			align-items: center;
		}

		&.x-start {
			align-items: flex-start;
		}

		&.x-end {
			align-items: flex-end;
		}

		&.spacing-0 {
			> li, > div {
				margin-bottom: 0;
			}
		}

		&.spacing-4px {
			> li, > div {
				margin-bottom: 4px;
			}
		}

		&.spacing-8px {
			> li, > div {
				margin-bottom: 8px;
			}
		}

		&.spacing-12px {
			> li, > div {
				margin-bottom: 12px;
			}
		}

		&.spacing-16px {
			> li, > div {
				margin-bottom: 16px;
			}
		}

		&.spacing-20px {
			> li, > div {
				margin-bottom: 20px;
			}
		}

		&.spacing-24px {
			> li, > div {
				margin-bottom: 24px;
			}
		}

		&.spacing-32px {
			> li, > div {
				margin-bottom: 32px;
			}
		}

		&.spacing-40px {
			> li, > div {
				margin-bottom: 40px;
			}
		}
	}

	&.mt-auto {
		margin-top: auto;
	}

	&.mb-auto {
		margin-bottom: auto;
	}

	&.ml-auto {
		margin-left: auto;
	}

	&.mr-auto {
		margin-right: auto;
	}

	> li {
		padding-left: 0;
		margin-bottom: 0;

		&:before {
			display: none;
		}
	}
}

// EXTRA ==========================================================================================
.overflow-hidden {
	overflow: hidden;
}

.overflow-visible {
	overflow: visible;
}

.desktop-hidden {
	display: none @i;
}

.hover-lupa {
	display: block;

	&:hover {
		cursor: url('img/zoom.svg') 28 28, move;	
	}
}

.img-radius {
	border-radius: 25px;
}

.gradient-animated {
	background: linear-gradient(-45deg, @azul, #23a6d5, #6f0dff);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-size: 400% 400%;
	animation: gradient 5s ease infinite;
	transition: @ef25;

	@keyframes gradient {
		0% {
			background-position: 0% 50%;
		}
		50% {
			background-position: 100% 50%;
		}
		100% {
			background-position: 0% 50%;
		}
	}
}

.gradient-border {
    border: 3px solid;
    border-image: linear-gradient(150deg, #79F4FF, #0000FF) 1;
}

.cols-2 {
	-moz-column-count: 2;
	-moz-column-gap: var(--bs-gutter-x);
	-webkit-column-count: 2;
	-webkit-column-gap: var(--bs-gutter-x);
	column-count: 2;
	column-gap: var(--bs-gutter-x);

	 > p {
	    -webkit-column-break-inside: avoid;
	    page-break-inside: avoid;
	    break-inside: avoid;
	}
}

// MASONRY  =======================================================================================
#masonry-grid {
	margin-left: -10px;
	margin-right: -10px;

	&:after {
		content: '';
		display: block;
		clear: both;
	}
	
	.grid-sizer, .grid-item {
		width: 25%;
	}

	.gutter-sizer {
		width: 0;
	}			

	.grid-item {
		padding: 10px;

		h2, .h2 {
			margin-bottom: 0;
		}

		&.w-100 {				
			width: 100%;
		}
	}

	&.mosaico {
		.grid-item {
			&.w-100 {
				padding-top: 40px;
			}
		}
	}
}

// ESTILOS EN FORMATO LESS ========================================================================
* {
	padding: 0;
	margin: 0;
	box-sizing: border-box;
	background-repeat: no-repeat;

	&:before,
	&:after {
		box-sizing: border-box;
	}

	&:hover,
	&:focus,
	&:active {
		outline: none;
		text-decoration: none;
	}
}

.clearfix,
.cierre {
	&:after {
		content: "";
		clear: both;
	}
}

html {
	font-size: 62.5%;
	/* El tamaño predeterminado de fuente del navegador es 16px [16px * 62.5% = 10px] Así se calcula más fácil el tamaño de fuente 1em = 10px */
	position: relative;
	min-height: 100vh;
	scroll-behavior: smooth;
}

body {
	font-family: @regular;
	font-size: 1.8rem;
	line-height: 1.2;
	letter-spacing: -0.3px;
	color: @n;
	font-weight: normal;
	font-style: normal;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	scroll-behavior: smooth;
	position: relative;
	overflow-x: hidden;
	padding-top: 40px;
	background-color: @g-lt;
	transition: @ef25;

	&.overflow {
		overflow: hidden;

		header #header-mobile #title-mobile {
			.logo {
				height: 42px;

				> span {
					height: 42px;

					&.lg {
						width: 92px;
					}
				}

				&.sm {
					width: 42px;
				}
			}

			#nav-icon {
				width: 42px;
				height: 42px;
				
				&.open {
					span {
						&:nth-child(1), &:nth-child(4) {
							top: 21px;
						}

						&:nth-child(2) {
							transform: translateX(-50%) rotate(45deg);
						}

						&:nth-child(3) {
							transform: translateX(-50%) rotate(-45deg);
						}
					}
				}

				span {
					width: 26px;
					transform: translateX(-50%) rotate(0deg);

					&:nth-child(1) {
						top: 13px;
					}

					&:nth-child(2), &:nth-child(3) {
						top: 20px;
						
					}

					&:nth-child(4) {
						top: 27px;
					}
				}
			}
		}
	}

	&.navegando {
		header {
			
		}
	}

	&.scroll-1 {
		.scroll {
			opacity: 0.5;
		}
	}

	&.scroll-2 {
		header #header-mobile #title-mobile #nav-icon {
			background-color: @b;
		}
	}
}

h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
	font-family: @regular;
	font-weight: normal;
	line-height: 1.1;
	color: @n;
	text-rendering: optimizeLegibility;
	display: block;
	width: 100%;
	margin: 0 0 16px;

	span {
		color: @azul;
		display: inline-block;
	}

	a {
		color: @azul;
		text-decoration: underline;
	}
}

h1, .h1 {
	font-family: @bold;
	font-size: 14.6rem;
	letter-spacing: -3px;
	margin: 0 0 80px;

	&.h2 {
		//font-family: @bold;
		font-family: @medium;
	}
}

h2, .h2 {
	font-size: 5.6rem;
	letter-spacing: -2.5px;
	margin: 0 0 32px;
}

h3, .h3 {
	font-size: 3.2rem;
	letter-spacing: -1px;
}

h4, .h4 {
	font-size: 2.8rem;
}

h5, .h5 {
	font-size: 2.2rem;
}

h6, .h6 {
	
}

ul {
	padding-left: 0;
	margin-bottom: 20px;
	clear: both;
	list-style: none;

	> li {
		padding-left: 0;

		&:before {
			display: none;
		}
	}

	/*
	&.soluciones {
		display: flex;
		flex-direction: row;
		justify-content: space-between;
		flex-wrap: wrap;

		li {
			width: calc(~'50% - 10px');
			min-height: 420px;
			display: flex;
			flex-direction: column;
			justify-content: flex-end;
			align-items: flex-start;
			max-width: 425px;
			margin-bottom: 20px;
			border-radius: 20px;
			box-shadow: 0px 0px 14px 0px #0000000D;
			background-color: @b;

			a {
				//font-size: 3.2rem;
				//letter-spacing: -0.5px;
				display: flex;
				align-items: flex-end;
				height: 100%;
				//padding: 96px 32px 32px 32px;
				margin: 0;
				padding: 110px 8% 8%;

				&:hover {
					color: @azul;
				}
			}

			&.ic {
				//background-position: 32px 32px;
				background-position: 9% 9%;
				background-size: 50px;
			}

			&.resolucion {
				background-image: url('img/ic-resolucion-gradient.svg');
			}

			&.calculo {
				background-image: url('img/ic-calculo-gradient.svg');
			}

			&.digitalizacion {
				background-image: url('img/ic-digitalizacion-gradient.svg');
			}

			&.optimizacion {
				background-image: url('img/ic-optimizacion-gradient.svg');
			}

			&.diseno {
				background-image: url('img/ic-diseno-gradient.svg');
			}

			&.inspeccion {
				background-image: url('img/ic-inspeccion-gradient.svg');
			}

			&.calibracion {
				background-image: url('img/ic-calibracion-gradient.svg');
			}

			&.vision {
				background-image: url('img/ic-vision-gradient.svg');
			}
		}
	}
	*/

	&.breadcrumb {
		font-size: 1.6rem;
		margin-bottom: 48px;

		> li {
			position: relative;

			> a {
				display: inline-block;
				padding-bottom: 0;
				position: relative;

				&:hover {
					color: @n;
					text-decoration: none;

					&:after {
						transform: scaleX(1);
						transform-origin: bottom left;
					}
				}

				&:after {
					content: '';
					position: absolute;
					width: 100%;
					transform: scaleX(0);
					height: 1px;
					bottom: 0;
					left: 0;
					background-color: @n;
					transform-origin: bottom right;
					transition: transform 0.25s ease-out;
				}
			}

			&:after {
				content: '/';
				margin: 8px;
			}

			&:last-child {
				font-family: @medium;
				cursor: default;

				&:after {
					display: none;
				}
			}
		}
	}

	&.list {
		list-style-type: none;
		padding-left: 25px;

		> li {
			margin-bottom: 5px;
			padding-left: 12px;
			position: relative;

			/*
				&:before {
					content: "·";
					font-family: @bold;
					color: @n;
					display: block;
					position: absolute;
					left: 0;
				}
			*/

			&:before {
				content: '';
				color: #070707;
				display: block;
				position: absolute;
				top: 8px;
				left: 0;				
				width: 4px;
				height: 4px;
				border-radius: 50%;
				background: @n;
			}

			&:last-of-type {
				margin-bottom: 0;
			}
		}
	}

	&.table {
		margin-bottom: 0;
		padding: 0 @i;
		border-radius: 20px;
		border: solid 1px @azul-light;

		> li {
			padding: 24px @i;
			margin: 0 @i;
			border-top: solid 1px @azul-light;

			&:before {
				display: none @i;
			}

			&:first-child {
				border: none;
			}
		}
	}

	&.dinamica {
		display: flex;
		justify-content: space-around;
		align-items: center;
		margin: 0;
		padding: 12px;
		border-radius: 20px;
		background-color: @azul;

		> li {
			padding: 12px;

			> a {
				display: flex;
				justify-content: center;
				align-items: center;
			}

			> h2, > .h2, > h3, > .h3, > h4, > .h4, > h5, > .h5, > p, > span {
				color: @b;
				margin-bottom: 0;
			}
		}
	}

	&.redes {
		display: flex;
		margin: 0 -10px;

		> li {
			margin: 0 10px;

			a, span {
				position: relative;
				display: flex;
				justify-content: center;
				align-items: center;
				width: 20px;
				height: 20px;

				&.linkedin, &.whatsapp, &.twitter, &.facebook, &.youtube, &.instagram {
					&:after {
						font-family: @fab;
						color: @azul;
						transition: @ef25;
					}

					&:hover:after {
						color: @n;
						//opacity: 0.7;
					}
				}

				&.linkedin {
					&:after {
						content: '\f0e1';
					}
				}

				&.whatsapp {
					&:after {
						content: '\f232';
					}
				}

				&.twitter {
					&:after {
						content: '\e61b';
					}
				}

				&.facebook {
					&:after {
						content: '\f39e';
					}
				}

				&.youtube {
					&:after {
						content: '\f167';
					}
				}

				&.instagram {
					&:after {
						content: '\f16d';
					}
				}

				&.scholar {
					background-image: url('img/ic-google-scholar.svg');
					background-position: center;
					background-size: 16px;
					transition: @ef25;

					&:hover {
						//opacity: 0.7;
					}
				}

				&.share, &.email {
					&:after {
						font-family: @fa;
						color: @azul;
						transition: @ef25;
					}

					&:hover:after {
						color: @n;
						//opacity: 0.7;
					}
				}

				&.share {
					&:after {
						content: '\f1e0';
						font-size: 2rem;
					}
				}

				&.email {
					&:after {
						content: '\f0e0';
					}
				}

				&:hover, &.active {
					&:before {
						display: none;
					}
				}
			}
		}
	}

	&.grid-filter {
		display: inline-flex;
		flex-flow: row wrap;
	    align-items: flex-start;
	    justify-content: flex-start;
		margin-left: -12px;
		margin-right: -12px;
		margin-bottom: 0;

		> li, > div {
			margin-left: 12px;
			margin-right: 12px;
			margin-bottom: 24px;

			&.btn {
				color: @n;
				background-color: @b50;
				min-width: initial;

				&:hover {
					background-color: @b;
				}

				&.active, &:hover:focus {
					color: @b;
					background-color: @azul;
				}

				&:active, &:focus {
					color: @n;
					text-decoration: none;
					background-color: @b;
				}
			}
		}
	}

	&.paginador {
		display: inline-flex;
		margin-top: 32px;
		margin-left: -8px;
		margin-right: -8px;

		> li {
			margin: 0 8px;

			> a, > span {
				display: inline-block;
			}

			> span {
				cursor: default;
			}

			> a {
				padding-bottom: 0;
				position: relative;

				&:hover {
					color: @n;
					text-decoration: none;

					&:after {
						transform: scaleX(1);
						transform-origin: bottom left;
					}
				}

				&:after {
					content: '';
					position: absolute;
					width: 100%;
					transform: scaleX(0);
					height: 1px;
					bottom: 0;
					left: 0;
					background-color: @n;
					transform-origin: bottom right;
					transition: transform 0.25s ease-out;
				}

				&.active {
					font-family: @bold;

					&:after {
						transform: scaleX(1);
					}
				}
			}
		}
	}

	&.separadores {
		display: flex;
		flex-direction: row;
		justify-content: flex-start;
		flex-wrap: wrap;
		margin-left: -12px;
		margin-right: -12px;

		> li {
			margin: 0 12px;
			position: relative;

			&:before {
				content: "";
				display: block;
				position: absolute;
				top: 0;
				left: -10px;
				bottom: 0;
				width: 1px;
				background: @g3;
			}

			&:first-child {
				&:before {
					display: none;
				}
			}

			&:last-child {
				padding-right: 0;
			}
		}
	}

	&.btn-list {
		display: inline-flex;
		flex-flow: row wrap;
		align-items: flex-start;
	    justify-content: flex-start;
		margin-left: -12px;
		margin-right: -12px;
		margin-bottom: 24px;

		> li {
			margin-left: 12px;
			margin-right: 12px;
			margin-bottom: 24px;

			.btn {
				min-width: initial;
			}
		}
	}

	/*
		&.lines {
			width: 100%;
			max-width: 450px;

			> li {
				border-bottom: solid 1px @g6;

				&:first-child {
					border-top: solid 1px @g6;
				}

				a {
					//font-size: 2.4rem;
					padding: 20px 0;
					display: flex;
					justify-content: space-between;
					align-items: center;

					> span {
						font-weight: normal;
						margin-bottom: 0 @i;
						padding-left: 10px;
					}

					> i {
						color: @azul;
						position: relative;
						right: 10px;
						transition: @ef25;
					}

					&:hover {
						color: @azul;
						text-decoration: none;

						> i { 
							right: 5px;
						}
					}
				}
			}
		}

		&.arrow {
			padding-left: 0;

			> li {
				padding-left: 30px;
				margin-bottom: 15px;
				position: relative;

				&:before {
					//content: "\f178";
					content: "\e09f";
					font-family: @fa;
					font-weight: 400;
					font-size: 95%;
					font-style: normal;
					color: @azul;
					display: block;
					position: absolute;
					top: 0;
					left: 0;
				}

				&:last-of-type {
					margin-bottom: 0;
				}
			}
		}

		&.check {
			> li {
				padding-left: 30px;
				margin-bottom: 5px;
				position: relative;

				&:before {
					content: "\f2f7";
					font-family: @fa;
					font-weight: 400;
					font-style: normal;
					color: @n;
					display: block;
					position: absolute;
					top: 1px;
					left: 0;
				}
			}
		}

		&.eye {
			> li {
				padding-left: 30px;
				margin-bottom: 5px;
				position: relative;

				&:before {
					content: "\f06e";
					font-family: @fa;
					font-weight: 300;
					font-style: normal;
					color: @n;
					display: block;
					position: absolute;
					top: 1px;
					left: 0;
				}
			}
		}

		&.numerada {
			> li {
				padding-left: 30px;

				> span {
					color: @azul;
					position: absolute;
					left: 0;
					top: 0;
				}

				&:before {
					display: none;
				}
			}
		}

		&.separadores {
			display: flex;
			flex-direction: row;
			justify-content: flex-start;
			flex-wrap: wrap;

			> li {
				margin: 0 10px 10px;
				position: relative;

				&:before {
					content: "";
					display: block;
					position: absolute;
					top: 0;
					left: -10px;
					bottom: 0;
					width: 1px;
					background: @g3;
				}

				&:first-child {
					&:before {
						display: none;
					}
				}

				&:last-child {
					padding-right: 0;
				}
			}
		}

		&.paginacion {
			font-size: 2rem;		
			margin-top: 50px;
			display: flex;
			justify-content: center;

			> li {
				padding-left: 10px;
				padding-right: 10px;
				margin: 0;

				&:before {
					display: none;
				}

				&:first-of-type, &:last-of-type {
					> a {					
						width: 48px;				
						background: @b;
						border-radius: 50%;
					}
				}

				> a, span {				
					height: 48px;
					display: inline-flex;
					justify-content: center;
					align-items: center;
					padding: 5px;
					margin: 0 5px;
				}

				> a {				
					&:hover, &.active {	
						color: @azul;
					}

					&:active {
						color: inherit;
					}
				}
			}
		}

		&.destacado {
			display: flex;
			flex-direction: column;
			align-items: flex-start;

			> li {
				font-size: 1.6rem;
				position: relative;
				padding: 8px 16px;
				margin-bottom: 16px;
				border-radius: 8px;
				background: -moz-linear-gradient(45deg, #e7e7e7 0%, @f5 100%);
				background: -webkit-linear-gradient(45deg, #e7e7e7 0%, @f5 100%);
				background: linear-gradient(45deg, #e7e7e7 0%, @f5 100%);

				> i {
					color: @azul;
					margin-right: 15px;
					font-weight: normal;
					padding-top: 5px;
				}

				ul {
					font-size: 1.6rem;
					margin-top: 5px;

					> li {
						margin-bottom: 5px;
						padding-left: 15px;

						&:before {
							font-size: 1.4rem;
							top: 2px;
						}

						&:last-child {
							margin-bottom: 0;
						}
					}
				}

				.accordion-button {
					display: block;
					padding: 0 30px 0 0;
					font-size: inherit;
					color: inherit;
					background-color: transparent;
					border: none;
					box-shadow: none;

					&:after {
						position: absolute;
						top: 0;
						right: 0;
						width: 20px;
						height: 20px;
						background-size: 20px;
						//transform: rotate(0deg);
					}

					&[aria-expanded="true"]:after {
						//transform: rotate(180deg);
					}
				}
			}

			&.inline {
				flex-direction: row;
				flex-wrap: wrap;

				> li {
					color: @b;
					margin-right: 8px;
					margin-bottom: 8px;
					background: @g2;
				}
			}
		}

		&.inline-flex {
			display: inline-flex;
			margin-left: -10px;
			margin-right: -10px;

			> li {
				display: flex;
				justify-content: center;
				align-items: center;
				padding-left: 0;
				margin-left: 10px;
				margin-right: 10px;

				&:before {
					display: none;
				}
			}
		}

		&.logos {
			flex-wrap: wrap;
			margin-bottom: 30px;

			> li {
				display: flex;
				align-items: center;
				margin-bottom: 30px;
			}

			&.xs {
				margin-bottom: 20px;

				> li {
					height: 30px;
					margin-bottom: 20px;				

					img {
						max-width: 100px;
						max-height: 30px;
					}
				}
			}

			&.sm {
				> li {
					height: 50px;				

					img {
						max-width: 120px;
						max-height: 40px;
					}
				}
			}
		}

		&.cols-2 {
			-moz-column-count: 2;
			-moz-column-gap: 30px;
			-webkit-column-count: 2;
			-webkit-column-gap: 30px;
			column-count: 2;
			column-gap: 30px;
			width: calc(~'100% + 30px');
			position: relative;
			left: -15px;
			right: -15px;

			> li {
				-webkit-column-break-inside: avoid;
				page-break-inside: avoid;
				break-inside: avoid;
				padding: 0 15px;

				&:last-child {
					//border: none;
				}
			}
		}

		&.cols-3 {
			-moz-column-count: 3;
			-moz-column-gap: 30px;
			-webkit-column-count: 3;
			-webkit-column-gap: 30px;
			column-count: 3;
			column-gap: 30px;

			li {
				-webkit-column-break-inside: avoid;
				page-break-inside: avoid;
				break-inside: avoid;
			}
		}
	*/
}

p {
	margin-bottom: 20px;

	&.thin, .thin {
		font-family: @thin
	}

	&.light, .light {
		font-family: @light;
	}

	&.regular, .regular {
		font-family: @regular;
	}

	&.bold, .bold {
		font-family: @bold;
	}

	&.black, .black {
		font-family: @black;
	}
}

i, em {
	font-style: italic;
}

b, strong {
	font-family: @bold;
	font-weight: normal;
}

small {
	font-size: 80%;
}

a {
	color: inherit;
	outline: none;
	border: none;
	text-decoration: none;
	cursor: pointer;

	img {
		outline: none;
		border: none;
	}

	&:hover {
		color: inherit;
		transition: @ef25;
	}

	&:focus,
	&:active {
		color: inherit;
		outline: none;
		text-decoration: none;
	}	
}

blockquote {
	font-size: 3.2rem;
	color: @b;
    line-height: 1.4;
    margin: 0;
    padding: 40px 60px;
    background-color: @azul;
    border-radius: 16px;

	i {
		font-size: 10rem;
		color: @b;
		position: absolute;
		z-index: -1;
		left: -10px;
		top: -50px;
		opacity: 1;

		&:before {
			line-height: 1;
		}
	}

	> * {
		position: relative;
		z-index: 1;
	}

	&.small {
		font-size: 4rem;		
		line-height: 1.3;		
		letter-spacing: 0;
		color: @b;
		padding: 65px 8.333333%;
		border-radius: 8px;
		background-color: @n10;
		background-image: url('img/blockquote_2.jpg');
		background-position: left top;
		background-size: cover;
		background-attachment: fixed;

		span {
			font-size: 2.2rem;
			letter-spacing: 3px;
			line-height: 1;
			color: @n;
			display: inline-flex;
			margin-bottom: 20px;
			padding: 5px 15px;
			border-radius: 8px;
			background: @azul;
		}

		strong {
			color: @azul;
			display: contents;
		}
	}

	&.bg {
		padding: 65px 8.333333%;
		border-radius: 16px;
		background-image: url('../gestor/recursos/uploads/marca/manufacturing.jpg');
		background-position: left top;
		background-size: cover;
		background-attachment: fixed;
		position: relative;

		&:before {
			content: '';
			display: block;
			border-radius: 16px;
			position: absolute;
			z-index: 0;
			top: 0;
			right: 0;
			bottom: 0;
			left: 0;
			background-color: rgba(0,0,0,0.6);
		}
	}
}

img:not(.thumbnail) {
	max-width: 100%;
	max-height: 100%;
}

img.radius-0 {
	border-radius: 0;
}

hr {
	width: 100%;
	height: 1px;
	border: none;
	margin-top: 25px;
	margin-bottom: 25px;
	clear: both;
	position: relative;
	z-index: 1;
	background-color: transparent;
	opacity: 1;

	&:before {
		content: "";
	    position: absolute;
	    top: 0;
	    left: 0;
	    right: 0;
	    height: 1px;
	    background: @n10;
	    opacity: 1;
	}

	&.lg {
		margin-top: 50px;
		margin-bottom: 50px;
	}

	&.xl {
		margin-top: 100px;
		margin-bottom: 100px;
	}

	&.white {
		&:before {
			background: @b50;
		}
	}

	&.dotted {
		border-top: dotted 1px @n20;
	}
}

figure {
	max-width: 100%;
	height: auto;
	margin: 0;
}

#ancla {
	position: initial;
	top: 0;
	left: 0;
	height: 0;
	width: 0;
}

.container-fluid {
	padding-left: 80px;
	padding-right: 80px;
	position: relative;
	z-index: 1;

	&.w-100 {
		padding: 0;
	}
}

.text-blue {
	color: @azul;
}
.paginacion {
    margin-top: 30px;
    text-align: center;

    ul {
        display: flex;
        justify-content: center;
        gap: 8px;
        padding: 0;
        margin: 0;
        list-style: none;
    }

    li {
        &.activo {
            a {
                font-weight: bold;
                background: #eee;
            }
        }
    }

    a {
        display: inline-block;
        padding: 8px 12px;
        border: 1px solid #ddd;
        text-decoration: none;

        &.prev,
        &.next {
            // Estilos específicos para anterior/siguiente si los necesitas
        }

        &:hover {
            background: #f5f5f5;
        }
    }
}
.btn {
	font-family: @medium;
	font-size: 1.6rem;
	line-height: 1;	
	font-weight: normal;
	color: @b;
	text-align: center;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    flex: 0 0 auto;
    width: fit-content;
	min-width: 150px;
	height: 48px;
	border-radius: 8px;
    padding: 0 24px;
    background-color: @azul;
    border: none;
	position: relative;
	top: 0;
	transition: @ef25;

	&:hover, &:hover:focus {
		color: @b;
		background-color: @n;
	}

	&:active, &:focus {
		color: @b;
		text-decoration: none;
		background-color: @azul;
	}

	&.sm {
		font-size: 1.4rem;
		height: 34px;
		min-width: 100px;	
		max-width: initial;	
		padding: 0 20px;
	}

	&.md {
		font-size: 1.6rem;
		height: 40px;
		padding: 0 25px;
		max-width: initial;

		span + i {
			margin-left: 7px;
		}
	}

	&.lg {
		min-width: initial;
		height: 64px;
	}

	&.xl {
		font-family: @regular;
		font-size: 3.2rem;
		color: @n;
		text-align: left;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: flex-start;
		width: 100%;
		height: 100%;
		padding: 24px 80px 24px 32px;
		border: none;
		border-radius: 20px;
		background-color: @b;
		background-image: url(img/ic-arrow-down-blue.svg);
		background-position: calc(~'100% - 30px') center;
		box-shadow: 0px 0px 14px 0px #0000000D;

		&:hover {
			color: @b;
			background-color: @azul;
			background-image: url(img/ic-arrow-down-white-2.svg);
		}

		&:active, &:focus {

		}
	}
	&.no-background{
		background-color: transparent;
		border: none;
		box-shadow: none;
		&:hover, &:hover:focus {
			background-color: transparent;
			border: none;
			box-shadow: none;
		}
	}
	&.ojo{
		background-image: url(img/ic-eye-blue.svg);
		background-position: center;
		padding: 0;
		width: 40px;
  		min-width: unset;

	}
	&.desc{
		background-image: url(img/ic-arrow-down-blue.svg);
		background-position: center;
		padding: 0;
		width: 40px;
  		min-width: unset;
	}
	&.flecha{
		background-image: url(img/ic-arrow-up-right.svg);
		background-position: center;
		padding: 0;
		width: 40px;
		min-width: unset;
	}
	&.light {
		background-color: @azul-light;

		&:hover, &:hover:focus {
			color: @azul;
			background-color: @b;
		}

		&:focus, &:active {
			color: @b;
			background-color: @azul-light;
		}
	}

	&.outline {
		color: @n;
		background: transparent;
		border: solid 1px @azul;

		&:hover, &:hover:focus {
			color: @b;
			background: @azul;
		}

		&:active, &:focus {
			color: @n;
			background: transparent;
			border-color: @azul;
		}

		&.white {
			color: @b;
			border-color: @b;

			&:hover, &:hover:focus {
				background-color: @azul;
			}

			&:active, &:focus {
				color: @b;
			}
		}
	}

	&.white {
		color: @n;
		background-color: @b;

		&:hover, &:hover:focus, &.active {
			color: @b;
			background-color: @azul;
		}

		&:active, &:focus {
			color: @n;
			background-color: @b;
		}

		&.outline {
			color: @azul;
			background-color: transparent;
			border: solid 2px @b;

			&:hover, &:hover:focus {
				color: @n;
				background-color: @b;
			}

			&:active, &:focus {
				color: @azul;
				background-color: transparent;
				border: solid 2px @b;
			}
		}
	}

	&.black {
		color: @b;
		background-color: @n;

		&:hover, &:hover:focus {
			color: @b;			
			background-color: @azul;
		}

		&:active, &:focus {
			color: @b;
			background-color: @n;
		}
	}

	&.selector {
		color: @n;
		min-width: initial;
		background-color: @b50;

		&:hover, &:hover:focus {
			color: @n;
			background-color: @b;
		}

		&:active, &:focus {
			color: @n;
			background-color: @b50;
		}
	}

	&.desplegar {
		width: 40px;
		height: 40px;
		min-width: initial;
		padding: 0;
		border: none;
		background-size: 24px 24px;
		background-image: url('img/ic-arrow-up-right.svg');
		background-position: center center;
		background-color: transparent;			

		i {
			margin: 0;
			transition: @ef25;
		}

		&:hover, &:hover:focus {
			background-color: transparent;
		}

		&:active, &:focus {
			background-color: transparent @i;
		}
	}

	&.transparent {
		color: @g2;
		height: initial;
		min-width: initial;
		padding: 0;
		border: none;
		background: transparent;

		span {
			display: inline-block;
			position: relative;

			&:after {
				content: '';
				position: absolute;
				width: 100%;
				transform: scaleX(0);
				height: 1px;
				bottom: -4px;
				left: 0;
				background-color: @azul;
				transform-origin: bottom right;
				transition: transform 0.25s ease-out;
			}
		}

		i {
			color: @azul;
		}

		&:hover, &:hover:focus {
			color: @n;
	 		text-decoration: none;

	 		span:after {
	 			transform: scaleX(1);
	 			transform-origin: bottom left;
	 		}

			i {
				color: @azul;
			}
	 	}
	}

	&.icon {
		display: flex;
		flex-direction: column;
		flex-wrap: wrap;
		justify-content: space-between;
		align-items: center;
		height: initial;
		width: 100%;
		height: 100%;
		margin: 0;
		padding: 16px;
		border-radius: 8px;
		background-color: @b;

		> img {
			filter: grayscale(1);
			transition: @ef25;
		}

		> span {
			font-size: 1.8rem;
			line-height: 1.25;
			color: @n;
			text-align: left;
			display: block;
			width: 100%;
			margin-top: 20px;
			padding-right: 35px;
			position: relative;

			&:after {
				content: "\f178";
				font-family: @fa;
				font-weight: 400;
				font-size: 95%;
				font-style: normal;
				color: @azul;
				display: block;
				position: absolute;
				bottom: 0;
				right: 5px;
				opacity: 0;
				visibility: hidden;
				transition: @ef25;
			}
		}

		&:hover, &:hover:focus {
			box-shadow: -9px 9px 18px #d4d4d4, 9px -9px 18px @b50;

			> img {
				filter: grayscale(0);
			}

			> span {
				&:after {
					right: 0;
					opacity: 1;
					visibility: visible;
				}
			}
		}
	}
	
	&.panel {
		display: inline-flex;
		flex-direction: column;
		justify-content: center;
		align-items: space-between;
		width: 100%;
		height: 100%;
		min-height: 100px;
		padding: 6%;
		border-radius: 8px;
		position: relative;
		background: @b;
		box-shadow: -16px 8px 20px 0px #d5d5d5, 8px -16px 20px #f7f7f7;

		> img {
			max-width: 100px;
			max-height: 100px;
		}

		> i {
			font-size: 6rem;
			color: @azul;
		}

		> span {
			display: flex;
			justify-content: space-between;
			width: calc(~'100% + 40px');
			margin-left: -20px;
			margin-right: -20px;

			> span {
				margin: 0 20px;
			}

			.tit {
				line-height: 1;
				text-align: left;
				transition: @ef25;
			}

			i {
				font-size: 3.2rem;
				color: @g2;
				margin: -2px 0;
				position: relative;
				left: 0;
				transition: @ef25;
			}
		}

		&:hover, &:hover:focus {
			> span {
				> span i {
					left: 4px;
					color: @azul;
				}

				.tit {
					color: @azul;
				}
			}
		}
	}

	&.w-100 {
		width: 100% @i;
		justify-content: space-between;
	}

	&.w-auto {
		min-width: initial;
	}

	i {
		margin-right: 10px;
	}

	span {
		+ i {
			margin-left: 12px;
			margin-right: 0;

			&.fa-arrow-down-to-line {
				transform: scale(1.25);
				position: relative;
				top: 3px;
			}
		}
	}
}

// SLICK SLIDER  ==================================================================================
.slick {
	width: 100%;
	position: relative;
	z-index: 1;
	background-size: cover;
	background-position: center center;
	transition: @ef6;

	&.hero-inner {
		height: 100%;
		background-size: contain;

		.slick-list {
			height: 100%;
			min-width: 100%;

			.slick-track {
				height: 100%;
				min-width: 100%;

				.slick-slide {
					display: flex;
					justify-content: center;
					align-items: center;
					height: 100%;
					max-height: calc(~'100vh - 180px');
					padding: 0 15px;
					cursor: grab;

					img {
						max-height: calc(~'100vh - 180px');
					}
				}
			}
		}

		.slick-dots {
			margin-top: 30px;
		}
	}

	&.hero {
		height: 100%;
		min-width: 100vw;
		background-color: @n;

		.slick-list {
			height: 100%;
			min-width: 100vw;

			.slick-track {
				height: 100%;
				min-width: 100vw;

				.slick-slide {
					height: 100%;
					min-width: 100vw;
					position: relative;
					background-size: cover;
					background-position: top center;

					&:before {
						content: '';
						display: block;
						position: absolute;
						z-index: 1;
						top: 0;
						right: 0;
						bottom: 0;
						left: 0;
						background: @n20;
					}

					&.no_before:before {
						display: none;
					}

					img {
						width: 100%;
						height: 100%;
						object-fit: cover;
						position: absolute;
						z-index: 0;
						top: 50%;
						left: 50%;
						transform: translate(-50%,-50%);
						transition: @ef6;
					}
				}
			}
		}

		.slick-dots {
			position: absolute;
			z-index: 2;
			bottom: 70px;
		    text-align: left;
		    padding: 0 50px;
		}
	}

	&.empresas {
		cursor: grab;
		//padding-top: 50px;

		.slick-list {
			overflow: hidden;
			display: flex;

			.slick-track {
				display: flex;
			}
		}

		.slick-slide {
			padding: 0 15px;
			display: flex;

			.panel {
				margin: 0;
				padding: 8%;
				min-height: initial;
				justify-content: flex-start;

				h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
					color: @n;
				}
			}
		}

		.slick-dots {
			margin-top: 75px;

			li {
				button {
					background-color: @n10;
				}

				&.slick-active, &:hover {
					button {
						background-color: @azul;
					}
				}
			}
		}

		.slick-prev, .slick-next {
			bottom: initial;
			top: 0;

			&:before {
				color: @azul;
				background-color: @b;
				border-radius: 50%;
				box-shadow: 5px 10px 20px #e3e3e3;
			}

			&.slick-disabled {
				&:before {
					color: @g6 @i;
				}
			}
		}

		.slick-prev {
			left: initial;
			right: 95px;
		}

		.slick-next {
			left: initial;
			right: 15px;
		}
	}

	&.galeria {
		height: 100%;

		.slick-list, .slick-track {
			height: 100%;
		}

		.slick-slide img {
			width: 100%;
			height: 100%;
			object-fit: cover;
			border-radius: 12px;
		}

		.slick-dots {
			width: initial;
			position: absolute;
			bottom: 20px;
			right: 20px;

			li {
				margin: 0 12px 0 0;

				button {
					width: 12px;
					height: 12px;
					border: solid 2px @b;
					background-color: transparent;
				}

				&.slick-active, &:hover {
					button {
						background-color: @b;
					}
				}
			}
		}
	}

	&.paneles, &.carrusel {
		cursor: grab;
		width: calc(~'100% + 20px');
		margin-left: -10px;
		margin-right: -10px;

		.slick-list {
			overflow: visible;

			.slick-slide {
				padding: 0 10px;
			}
		}

		.slick-dots {
			margin-top: 40px;
		}
	}

	&.carrusel {
		.prev {
			overflow: hidden;

			.img-wrapper {
				padding: 0;
				aspect-ratio: 1;
				overflow: initial;

				img {
					position: relative;
					top: initial;
					left: initial;
					transform: none;
					object-fit: cover;
				}
			}

			.txt-wrapper {
				justify-content: flex-start;
				flex: auto;
				background-color: @b;
				border-radius: 0 0 20px 20px;
				transition: @ef15;
				background-position: calc(~'100% - 20px') 22px;
			}
		}

		a.prev {
			.txt-wrapper {
				color: @b;
				background-color: @azul;
				background-image: url('img/ic-arrow-up-right-white.svg');
				height: 100%;
			}
		}
	}

	&.carrusel {
		.prev {
			padding: 0;

			.img-wrapper {
				border-radius: 20px;
				border-radius: 12px 12px 0 0;

				img {
					border-radius: 12px 12px 0 0;
				}
			}

			.txt-wrapper {
				margin: 0;
				padding: 20px 56px 20px 20px;
			}
		}
	}

	&.paneles {
		&.slick-initialized {
			.slick-list {
				display: flex;

				.slick-track {
					display: flex;

					.slick-slide {
						display: flex;
						height: 100%;
						float: none;
					}
				}
			}
		}

		.prev {
			.img-wrapper {
				height: auto;
				aspect-ratio: 1.5;
			}
		}
	}

	.slick-dots {
		li:only-child {
			display: none @i;
		}
	}
}

// ESTILOS EN FORMATO LESS ========================================================================
* {
	padding: 0;
	margin: 0;
	box-sizing: border-box;
	background-repeat: no-repeat;

	&:before,
	&:after {
		box-sizing: border-box;
	}

	&:hover,
	&:focus,
	&:active {
		outline: none;
		text-decoration: none;
	}
}

header {
	position: fixed;
	z-index: 3;
    top: 0;
    left: 0;
    right: 0;
    transition: @ef25;

    #header {
    	height: 100%;

		.container-fluid {
			padding-left: 25px;
			padding-right: 25px;
		}

		.top {
			color: @b;
			height: 40px;
			background-color: @n;
			position: relative;
			z-index: 9999;			

			.container-fluid {
				height: 100%;
				display: flex;
				justify-content: flex-end;
				align-items: center;

				ul {
					display: inline-flex;
					margin: 0;
					height: 100%;

					> li {

					}

					&.redes {
						a {
							font-size: 1.5rem;
							color: @b80;
							height: 100%;
							padding: 0 16px;
							display: flex;
							align-items: center;

							&:hover {
								color: @b;
							}

							&:focus, &:active {
								color: @b80;
							}
						}
					}

					&.menu-top {
						border-left: solid 1px #4d4d4d;

						> li {
							display: inline-flex;
							align-items: center;
							border-right: solid 1px #4d4d4d;

							a {
								color: @b80;
								display: inline-flex;
								justify-content: center;
								align-items: center;
								padding: 0 32px;

								&:hover {
									color: @b;
								}
							}
						}
					}

					/*
					&.idioma {
						height: initial;
						min-height: 40px;
						flex-direction: column;
						padding: 0 32px 0 64px;
						background-color: @n;
						position: relative;

						&:before {
							content: '\f0ac';
							font-family: @fa;
							position: absolute;
							left: 32px;
							top: 50%;
							transform: translateY(-50%);
						}

						li {
							a {
								min-height: 40px;
								display: flex;
								align-items: center;								
							}

							ul {
								min-height: 100%;
							}
						}

						> li {
							min-height: 40px;
							display: flex;
							flex-direction: column;
							justify-content: center;
							align-items: center;

							> ul {
								display: flex;
								flex-direction: column;
								opacity: 0;
								visibility: hidden;
							}
						}

						&:hover {
							li {
								ul {
									opacity: 1;
									visibility: visible;
								}
							}
						}
					}
					*/
				}

				.idioma {
					padding: 0;

					> .btn.dropdown-toggle {
						font-size: inherit;
						line-height: inherit;
						font-weight: normal;
						color: @b80;
						min-width: initial;
						height: 40px;
						margin: 0;
						padding: 0 32px 0 64px;
						border-radius: 0;
						background-color: transparent;
						position: relative;

						&:after {
							display: none;
						}

						/*
						&:before {
							display: none;
						}
						*/

						&:before {
							content: '\f0ac';
							font-family: @fa;
							color: @b80;
							position: absolute;
							left: 32px;
							top: 50%;
							transform: translateY(-50%);
						}
					}

					.dropdown-menu {
						display: flex;
						flex-direction: column;
						width: calc(~'100% - 32px');
						min-width: initial;
						height: initial;
						min-height: initial;
						//min-height: initial;
						//width: 100%;
						//min-width: initial;
						border: none;
						margin-left: 32px @i;
						padding: 0;
						opacity: 0;
						visibility: hidden;
						border-radius: 0;

						&.show {
							opacity: 1;
							visibility: visible;
							transform: translate(0px, 40px) !important;
						}

						li {
							padding-left: 32px;
							background-color: @n;

							.dropdown-item {
								font-size: 1.8rem;
								color: @b80;
								padding: 0;
								height: 40px;
								display: flex;
								align-items: center;
								width: 100%;
								transition: @ef25;

								&:hover {
									color: @b;
									background-color: transparent;
								}
							}
						}
					}
				}

				.datos {
					display: inline-flex;
					align-items: center;

					a {
						font-size: 1.5rem;
						color: @b80;
						padding: 0 8px;
						display: flex;
						align-items: center;

						&:hover {
							color: @b;
						}

						&:focus, &:active {
							color: @b80;
						}
					}
				}

				> span {
					font-size: 1.7rem;
					height: 100%;
					display: flex;
					align-items: center;

					i {
						font-size: 0.3rem;
					}
				}
			}
		}

		.bottom {
			//height: 104px;
			padding: 24px 0;

			.container-fluid {
				height: 100%;
				display: flex;
				justify-content: space-between;
				align-items: center;
			}

			.logo, .empty {
				height: 64px;
				transition: @ef25;

				&.lg {
					width: 122px;
				}

				&.sm {
					width: 74px;
				}
			}

			.logo {
				position: relative;
				height: 64px;				

				> span {
					display: block;
					height: 64px;
					width: 100%;	
					background-color: @b;
					border-radius: 12px;
					position: absolute;
					top: 0;
					left: 0;
					background-position: left top;
					background-size: contain;
					transition: width 0.25s ease;

					&:before {
						content: '';
						position: absolute;
						top: 0;
						right: 0;
						bottom: 0;
						left: 0;
						background-repeat: no-repeat;
						background-position: left center;
						transition: background-image 0.4s ease;
					}
				}

				&.lg {
					width: 122px;

					> span {
						&:before {
							background-image: url('img/ideko-mobile.svg');
						}

						&.lg {
							opacity: 1;
							visibility: visible;
						}

						&.sm {
							opacity: 0;
							visibility: hidden;
						}
					}					
				}

				&.sm {
					width: 74px;

					> span {
						&:before {
							background-image: url('img/ideko-mobile-id.svg');
						}

						&.lg {
							opacity: 0;
							visibility: hidden;
						}

						&.sm {
							opacity: 1;
							visibility: visible;
						}
					}
				}
			}

			.menu {
				height: 64px;
				display: flex;
				justify-content: center;
				align-items: center;
				margin-left: auto;
				margin-right: auto;

				nav {
					font-family: @medium;
					font-size: 1.6rem;
					letter-spacing: 0;
					color: @g-md;
					display: flex;
					align-items: center;
					height: 100%;

					> ul {
						display: flex;
						align-items: center;
						height: 100%;
						margin-bottom: 0;
						position: relative;
						background: @b80;
						border-radius: 12px;
						-webkit-backdrop-filter: blur(4px);	
						backdrop-filter: blur(4px);	

						> li {
							display: flex;
							align-items: center;
							height: 100%;
							padding: 0 16px;

							&:first-child {
								padding-left: 32px;
							}

							&:last-child {
								padding: 8px;
							}

							> a:not(.btn), > span {
								display: flex;
								align-items: center;
								height: 100%;
								padding: 0;
								position: relative;
								transition: @ef25;

								&:hover, &.active {
									//color: @azul;
									color: #070707;
									text-decoration: none;
									
									&:before {
										//transform: scaleX(1);
										transform-origin: bottom left;
									}

									&:after {
										color: @n;
									}
								}
							}

							> a.btn {
								font-size: 1.6rem;
							}

							&.mega-dropdown {
								> a, > span {
									&:after {
										content: '\f107';
										font-family: @fa;
										//font-size: 1.4rem;
										font-weight: 400;
										font-style: normal;
										vertical-align: initial;
										display: block;
										margin-left: 5px;
										border: none;
										transition: @ef25;
									}
								}
								
								&:hover {
									> a, > span {
										color: @n;

										&:after {
											content: '\f106';
											color: @n;
										}
									}

									> span {
										cursor: default;
									}

									> .mega-dropdown-menu {
										opacity: 1;
										visibility: visible;
									}
								}

								> .mega-dropdown-menu {
									position: absolute;
									z-index: 1;
									top: 100%;
									left: 0;
									display: block;
									width: 100%;
									opacity: 0;
									visibility: hidden;
									padding-top: 16px;
									margin: 0;
									border: none;									
									transition: @ef25;

									.desplegable {
										display: flex;
										flex-direction: column;
										flex-wrap: nowrap;
										padding: 24px 24px 0;
										border-radius: 12px;
										max-height: calc(~'100vh - 180px');
										height: initial;
										overflow: auto;
										background: rgba(255,255,255,0.98);
										
										a {
											font-size: 2rem;
											line-height: 1;
											color: @n;
											white-space: nowrap;
											width: 100%;
											display: flex;
											align-items: center;
											padding: 24px;
											border-radius: 20px;
											border: solid 1px @g;
											border-top: none;
											transition: @ef25;

											&:hover, &.active {
												//color: @b;
												//background-color: @azul;
												//border-color: @azul;
												color: @azul;
											}
										}

										> a {
											font-family: @bold;
											border-top: solid 1px @g;
											margin-bottom: 24px;
										}

										> p {
											font-size: 1.6rem;
											color: @g-md;
											margin: 4px 24px 20px;
										}

										ul {
											margin-bottom: 24px;

											li {
												a {
													border-radius: 0;
												}

												&:first-child {
													a {
														border-radius: 20px 20px 0 0;
														border-top: solid 1px @g;
													}
												}

												&:last-child {
													a {
														border-radius: 0 0 20px 20px;
													}
												}

												&.ic {
													a {
														padding-left: 64px;
														background-position: 24px center;
													}
												}

												&.resolucion {
													a {														
														background-image: url('img/ic-resolucion.svg');
													}
												}

												&.calculo {
													a {														
														background-image: url('img/ic-calculo.svg');
													}
												}

												&.digitalizacion {
													a {														
														background-image: url('img/ic-digitalizacion.svg');
													}
												}

												&.optimizacion {
													a {														
														background-image: url('img/ic-optimizacion.svg');
													}
												}

												&.diseno {
													a {														
														background-image: url('img/ic-diseno.svg');
													}
												}

												&.inspeccion {
													a {														
														background-image: url('img/ic-inspeccion.svg');
													}
												}

												&.calibracion {
													a {														
														background-image: url('img/ic-calibracion.svg');
													}
												}

												&.vision {
													a {														
														background-image: url('img/ic-vision.svg');
													}
												}
											}

											&.big {
												display: flex;
												flex-direction: row;
												justify-content: space-between;

												li {
													width: calc(~'50% - 5px');

													a {
														font-family: @regular;
														font-size: 2rem;
														color: @b;
														display: flex;
														flex-direction: column;
														justify-content: flex-start;
														align-items: flex-start;
														height: 100%;
														padding: 24px 64px 24px 24px;
														border: none;
														border-radius: 20px;
														background-color: @azul;
														background-image: url(img/ic-arrow-down-white.svg);
														background-position: calc(~'100% - 30px') center;

														span {
															font-family: @medium;
															//font-size: 2.4rem;
															font-size: 2rem;
															letter-spacing: -0.5px;
															display: inline-block;
															margin-top: 20px;
															max-width: 200px;
															text-wrap: auto;
														}

														&:hover {
															background-color: @n;
														}
													}
												}

												&.w-100 {
													li {
														width: 100%;

														a {
															span {
																max-width: initial;
																margin-top: 0;
															}
														}
													}
												}
											}
										}
									}

									&.big {
										position: fixed;
										top: 115px;
										left: 100px;
										right: 100px;
										padding: 8px;

										ul {
											display: flex;
											flex-wrap: wrap;

											> li {
												width: calc(~'100% / 7');
												padding: 4px;

												a {
													font-size: 1.7rem;
													line-height: 1.25;
													display: flex;
													width: 100%;
													height: 100%;
													padding: 12px;													
													border-radius: 8px;
													background-color: @b;

													&:hover, &.active {
														color: @azul;
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
    }

	#header-mobile {
		display: none;
		background: @b;

		.top {
			font-size: 1.6rem;
			color: @b;
			height: 40px;
			background-color: @n;
			position: relative;
			z-index: 9999;			

			.container-fluid {
				height: 100%;
				display: flex;
				justify-content: flex-end;
				align-items: center;

				ul {
					display: inline-flex;
					margin: 0;
					height: 100%;

					&.menu-top {
						border-left: solid 1px #4d4d4d;

						> li {
							display: inline-flex;
							align-items: center;
							border-right: solid 1px #4d4d4d;

							a {
								color: @b80;
								display: inline-flex;
								justify-content: center;
								align-items: center;
								//min-width: 130px;
								padding: 0 32px;

								&:hover {
									color: @b;
								}
							}
						}
					}
				}

				.idioma {
					padding: 0;

					> .btn.dropdown-toggle {
						font-size: inherit;
						line-height: inherit;
						font-weight: normal;
						color: @b80;
						min-width: initial;
						height: 40px;
						margin: 0;
						padding: 0 32px 0 64px;
						border-radius: 0;
						background-color: transparent;
						position: relative;

						&:after {
							display: none;
						}

						/*
						&:before {
							display: none;
						}
						*/

						&:before {
							content: '\f0ac';
							font-family: @fa;
							color: @b80;
							position: absolute;
							left: 32px;
							top: 50%;
							transform: translateY(-50%);
						}
					}

					.dropdown-menu {
						display: flex;
						flex-direction: column;
						width: calc(~'100% - 32px');
						min-width: initial;
						height: initial;
						min-height: initial;
						border: none;
						margin-left: 32px @i;
						padding: 0;
						opacity: 0;
						visibility: hidden;
						border-radius: 0;

						&.show {
							opacity: 1;
							visibility: visible;
							transform: translate(0px, 40px) !important;
						}

						li {
							padding-left: 32px;
							background-color: @n;

							.dropdown-item {
								font-family: @medium;
								font-size: 1.6rem;
								line-height: 1.2;
								color: @b80;
								padding: 0;
								height: 40px;
								display: flex;
								align-items: center;
								width: 100%;
								transition: @ef25;

								&:hover {
									color: @b;
									background-color: transparent;
								}
							}
						}
					}
				}

				.datos {
					display: inline-flex;
					align-items: center;

					a {
						font-size: 1.5rem;
						color: @b80;
						padding: 0 8px;
						display: flex;
						align-items: center;

						&:hover {
							color: @b;
						}

						&:focus, &:active {
							color: @b80;
						}
					}
				}

				> span {
					font-size: 1.7rem;
					height: 100%;
					display: flex;
					align-items: center;

					i {
						font-size: 0.3rem;
					}
				}
			}
		}

		#title-mobile {
			position: fixed;
			z-index: 1;
			top: 40px;
			right: 12px;
			left: 12px;
			display: flex;
			justify-content: space-between;
			align-items: flex-start;
			padding: 20px 0 20px;

			.logo {
				position: relative;
				height: 60px;
				transition: @ef25;

				> span {
					display: block;
					height: 60px;
					width: 100%;	
					background-color: @b;
					border-radius: 8px;
					position: absolute;
					top: 0;
					left: 0;
					background-position: left top;
					background-size: contain;
					transition: @ef25;

					&:before {
						content: '';
						position: absolute;
						top: 0;
						right: 0;
						bottom: 0;
						left: 0;
						background-size: contain;
						background-repeat: no-repeat;
						background-position: left center;
						transition: @ef25;
					}
				}

				&.lg {
					width: 130px;

					> span {
						&:before {
							background-image: url('img/ideko-mobile.svg');
						}

						&.lg {
							opacity: 1;
							visibility: visible;
						}

						&.sm {
							opacity: 0;
							visibility: hidden;
						}
					}					
				}

				&.sm {
					width: 60px;

					> span {
						&:before {
							background-image: url('img/ideko-mobile-id.svg');
						}

						&.lg {
							opacity: 0;
							visibility: hidden;
						}

						&.sm {
							opacity: 1;
							visibility: visible;
						}
					}
				}
			}

			#nav-icon {
				width: 60px;
				height: 60px;
				cursor: pointer;
				background-color: @b50;
				border-radius: 8px;
				transform: rotate(0deg);
				transition: @ef25;
			
				span {
					display: block;
					position: absolute;
					height: 2px;
					width: 32px;
					background: @n;
					opacity: 1;
					left: 50%;
					border-radius: 2px;
					transform: translateX(-50%) rotate(0deg);
					transition: .25s ease-in-out;
					
					&:nth-child(1) {
						top: 20px;
					}
					
					&:nth-child(2), &:nth-child(3) {
						top: 30px;
					}
					
					&:nth-child(4) {
						top: 40px;
					}
				}
				
				&.open {
					background-color: @b;

					span {
						&:nth-child(1) {
							top: 30px;
							width: 0%;
							left: 50%;
						}
						
						&:nth-child(2) {
							transform: rotate(45deg);
						}
						
						&:nth-child(3) {
							transform: rotate(-45deg);
						}
						
						&:nth-child(4) {
							top: 30px;
							width: 0%;
							left: 50%;
						}
					}
				}
			}
		}

		#menu-mobile {
			font-size: 2rem;
			position: fixed;
			display: inline-flex;
			flex-direction: column;
			justify-content: space-between;
			align-items: center;
			margin: 0 auto;
			padding: 98px 12px 20px;
			top: 40px;
			right: 0;
			bottom: 0;
			left: 0;
			overflow: auto;
			background-color: rgba(246, 246, 246, 0.8);
			opacity: 0;
			visibility: hidden;
			transition: @ef25;

			&.on {
				opacity: 1;
				visibility: visible;
			}

			> ul {
				margin: 0;
				position: relative;
				display: flex;
				flex-direction: column;
				width: calc(~'100% - 24px');
				min-height: calc(~'100dvh - 158px');
				background-color: @b;
				border-radius: 8px;
				box-shadow: 0 0 0 12px @b;
				overflow: auto;

				> li {
					display: flex;
					flex-direction: column;
					justify-content: center;
					align-items: flex-start;					
					margin-bottom: 10px;
					border: solid 1px @g;
					border-radius: 12px;

					> a, > span {
						font-family: @bold;
						color: @n;
						line-height: 1;
						padding: 0 24px;
						width: calc(~'100% - 58px');
						display: flex;
						justify-content: flex-start;
						align-items: center;
						min-height: 58px;

						&.active {
							color: @azul;
						}

						&:hover, &:focus, &:active {
							//color: @b;
						}
					}


					ul {
						width: 100%;

						> li {
							margin-bottom: 0;

							&.ic {
								a {
									padding-left: 64px;
									background-position: 24px center;
									background-size: 25px;
								}
							}

							&.resolucion {
								a {
									background-image: url('img/ic-resolucion.svg');
								}
							}

							&.calculo {
								a {
									background-image: url('img/ic-calculo.svg');
								}
							}

							&.digitalizacion {
								a {
									background-image: url('img/ic-digitalizacion.svg');
								}
							}

							&.optimizacion {
								a {
									background-image: url('img/ic-optimizacion.svg');
								}
							}

							&.diseno {
								a {
									background-image: url('img/ic-diseno.svg');
								}
							}

							&.inspeccion {
								a {
									background-image: url('img/ic-inspeccion.svg');
								}
							}

							&.calibracion {
								a {
									background-image: url('img/ic-calibracion.svg');
								}
							}

							&.vision {
								a {
									background-image: url('img/ic-vision.svg');
								}
							}

							a {
								font-family: @medium;
								font-size: 1.4rem;
								line-height: 1.1;
								color: @n;
								display: flex;
								justify-content: flex-start;
								align-items: center;
								min-height: 58px;
								padding: 10px 14px;

								&.active {
									color: @azul;
								}
							}
						}

						&.big {
							background-color: @azul;
							background-image: url(img/ic-arrow-down-white.svg);
							background-position: calc(~'100% - 30px') center;

							> li {
								a {
									color: @b;
									display: flex;
									flex-direction: column;
									justify-content: center;
									align-items: flex-start;
									padding: 32px 80px 32px 32px;

									span {
										font-family: @regular;
										font-size: 2.4rem;
										display: flex;
										padding-top: 5px;
									}
								}
							}
						}
					}

					> div {
						display: none;
						width: 100%;
					}

					&:first-child {
						> a {
							border: none;
						}
					}

					&:last-child {
						margin-bottom: 0;
					}

					&.sub-desplegable { 
						position: relative;

						> span {
							.ico {
								line-height: initial;
								display: flex;
								justify-content: center;
								align-items: center;
								width: 58px;
								height: 58px;
								padding: 0 22px;
								position: absolute;
								top: 0;
								right: 0;

								&:before {
									content: '\f078';
									font-family: @fa;
									font-style: normal;
									font-size: 1.6rem;
									font-weight: 400;
									transition: @ef4;
								}
							}

							&.rotate {
								.ico {
									&:before {
										content: '\f077';										
									}
								}
							}
						}

						> div {
							margin: 0 10px;
							width: calc(~'100% - 20px');

							ul {
								border: solid 1px @g;
								border-radius: 12px;
								margin-bottom: 10px;

								> li {
									border-top: solid 1px @g;

									&:first-child {
										border: none;
									}
								}
							}

							p {
								font-family: @medium;
								font-size: 1.4rem;
								color: @g-md;
								margin: 20px 14px 10px;
							}
						}
					}

					&.idioma, &.redes {
						flex-direction: row;
						justify-content: space-around;
						padding: 20px;
						margin-top: auto;

						> a {
							justify-content: center;
						}
					}
				}

				&.idioma {
					position: fixed;
					bottom: 0;
					left: 0;
					right: 0;
					display: flex;
					justify-content: center;
					padding: 20px;
					width: 100%;
					background: @g2;
				}
			}
		}
	}

	::-webkit-scrollbar-thumb {
		background-color: @azul;
		border-radius: 2px;
	}
	::-webkit-scrollbar {
		width: 4px;
		height: 4px;
		background-color: transparent;
		border-radius: 2px;
	}
	::-moz-scrollbar-thumb {
		background-color: @azul;
		border-radius: 2px;
	}
	::-moz-scrollbar {
		width: 4px;
		height: 4px;
		background-color: transparent;
		border-radius: 2px;
	}
}

section {
	padding-top: 80px;
	padding-bottom: 80px;
	position: relative;
	z-index: 1;

	> * {
		position: relative;
	}

	&.zero {
		padding-top: 0;
		padding-bottom: 0;

		&.top {
			padding-top: 0;
			padding-bottom: 80px;
		}

		&.bottom {
			padding-top: 80px;
			padding-bottom: 0 @i;
		}
	}

	&:first-of-type {
		padding-top: 160px @i;
	}

	&:last-of-type {
		padding-bottom: 160px @i;

		&.bg-blue {
			&:after {
				content: '';
				display: block;
				height: 1px;
				background-color: @b30;
				position: absolute;
				z-index: 1;
				bottom: 0;
				left: 0;
				right: 0;
			}
		}
	}

	::-webkit-input-placeholder {
		color: @n @i;
	}
	:-moz-placeholder {
		color: @n @i;
	}
	::-moz-placeholder {
		color: @n @i;
	}
	:-ms-input-placeholder {
		color: @n @i;
	}
	::-ms-input-placeholder {
		color: @n @i;
	}
	:placeholder-shown {
		color: @n @i;
	}
}

section {
	&.hero {
		&.bg, &.no-bg {
			padding-top: 120px;
			height: calc(~'100dvh - 40px');

			h1, .h1 {
				color: @b;
				text-align: center;
				margin: 0;
			}

			.container-fluid {
				height: 100%;
				display: flex;
				align-items: flex-end;
				padding-top: 80px;
				padding-bottom: 40px;
			}
		}

		&.bg {
			padding: 0 @i;
			display: flex;
			align-items: flex-end;

			.wrapper {
				display: flex;
				flex-wrap: nowrap;
				position: absolute;
				top: 0;
				right: 0;
				left: 0;
				bottom: 0;

				&.img {
					margin-top: 0;
					margin-bottom: 0;

					div {
						height: 100%;
						width: 100%;
					}

					img {
						width: 100%;
						height: 100%;
						object-fit: cover;
						z-index: 0;
					}

					&.dividida {
						div {
							width: 100%;
							height: 100%;
						}
					}
				}

				&.video {
					max-height: initial;
					min-height: initial;
					position: relative;
					border-radius: 0;

					&.dividida {
						.container-fluid {
							height: initial;
							position: absolute;
							z-index: 4;
							bottom: 0;
							padding-top: 0;
							padding-bottom: 80px;
						}

						.slick {
							width: 50%;
							min-height: 100%;
							height: 100%;

							&.hero-inner-01 {
								.slick-slide {
									cursor: e-resize;
								}
							}

							&.hero-inner-02 {
								.slick-slide {
									cursor: n-resize;
								}
							}

							.slick-slide {		
								width: 100%;						
								min-height: calc(~'100vh - 40px') @i;

								video {
									object-fit: cover;
									min-width: initial;
									min-height: calc(~'100vh - 40px');
									width: 100%;
									height: 100%;
								}
							}
						}
					}
				}
			}
		}

		&.no-bg {
			h1, .h1 {
				color: @azul;
				text-align: left;
				margin: 0;
			}
		}

		&.md {
			max-height: 520px;
			padding-bottom: 40px;

			&.short {
				h1, .h1 {
					max-width: 960px;
				}
			}
		}

		&.md, &.sector {
			h1, .h1 {
				font-size: 9rem;
				text-align: left;
			}
		}

		&.sector {
			h1, .h1 {
				text-align: center;
				max-width: 1200px;
				margin-left: auto;
				margin-right: auto;
			}

			.img-wrapper {
				display: flex;
				margin-top: 0;
				margin-bottom: 0;

				img {
					width: 100%;
					height: 100%;
					object-fit: cover;
					border-radius: 20px;
				}
			}
		}
	}

	&.bg-cover {
		background-size: 85%;
		background-position: right top;
	}

	/*
	&.mosaico {
		p {
			max-width: 700px;
		}

		.fases {
			> div {
				padding-left: 40px;
				position: relative;

				p {
					margin-bottom: 10px;
				}

				&:before {
					position: absolute;
					top: 0;
					left: 0;
				}

				&:nth-of-type(1):before {
					content: '01';
				}

				&:nth-of-type(2):before {
					content: '02';
				}

				&:nth-of-type(3):before {
					content: '03';
				}
			}
		}
	}
	*/

	ul:not(.flex, .inline-flex, .breadcrumb, .separadores, .condiciones, .slick-dots, .soluciones, .paginacion, .dinamica, .btn-list, .redes, .grid-filter, .paginador, .cta-footer) {
		list-style-type: none;
		padding-left: 20px;

		> li {
			margin-bottom: 5px;
			padding-left: 12px;
			position: relative;

			&:before {
				content: '';
				display: block;
				position: absolute;
				top: 8px;
				left: 0;				
				width: 4px;
				height: 4px;
				border-radius: 50%;
				background: @n;
			}

			&:last-of-type {
				margin-bottom: 0;
			}
		}
	}

	p, ul:not(.breadcrumb) li {
		a:not(.btn) {
			color: @azul;
			white-space: nowrap;
			display: inline-flex;
			padding-bottom: 1px;
			position: relative;
			text-decoration: none;

			&:hover, &.active {
				&:before {
					transform: scaleX(1);
					transform-origin: bottom left;
				}
			}

			&:before {
				content: '';
				position: absolute;
				width: 100%;
				transform: scaleX(0);
				height: 1px;
				bottom: 0;
				left: 0;
				background-color: @azul;
				transform-origin: bottom right;
				transition: transform 0.2s ease-out;
			}
		}
	}

	.wrapper.video {
		display: flex;
		justify-content: center;
		align-items: center;		
		height: 100%;
		max-height: calc(~'100vh - 180px');
		min-height: 350px;
		border-radius: 20px;
		overflow: hidden;
		position: relative;
	}

	.intro {
		font-size: 3.2rem;

		h2, .h2 {
			max-width: 95%;
		}

		p {
			max-width: 72%;

			&:last-of-type {
				margin-bottom: 0;
			}
		}

		p + .btn {
			margin-top: 40px;
		}

		img {
			margin-top: 32px;
		}
	}

	.info-video {
		.txt-wrapper {
			font-size: 2.2rem;
			height: 100%;
			display: flex;
			flex-direction: column;
			justify-content: center;
			padding: 0 40px;

			h2, .h2, h3, .h3, h4, .h4, h5, .h5, p, ul {
				max-width: 700px;
			}
		}
	}

	.ficha {
		border-radius: 20px;
		background-color: @b;

		.wrapper-item {
			border-radius: 20px 20px 0 0;
			//background-color: @b;
			box-shadow: 0px -4px 14px @n10;
			position: relative;

			&:after {
				content: '';
				display: block;
				position: absolute;
				top: 100%;
				left: 0;
				right: 0;
				height: 20px;
				background-color: @b;
			}

			&.first {
				//border-radius: 12px 12px 0 0;
			}

			&.last {
				border-radius: 20px;

				&:after {
					display: none;
				}
			}

			.item {
				padding: 32px 0;
				display: flex;
				justify-content: space-between;
				align-items: center;
				flex-wrap: nowrap;

				h3, .h3, h4, .h4 {
					margin-bottom: 0;
				}

				> span {
					display: block;
					padding-left: 10px;
					padding-right: 10px;
					margin-left: 20px;
					margin-right: 20px;

					&:last-of-type {
						margin-right: 5px;
					}
				}
			}

			.toggle-inner {
				padding: 16px 80px 32px 32px;

				p {
					max-width: 450px;

					&:last-of-type {
						margin-bottom: 0px;
					}
				}

				ul:last-of-type {
					margin-bottom: 0;
				}
			}
		}
	}

	.panel {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: flex-start;
		height: 100%;
		padding: 32px;		
		border-radius: 20px;
		background-color: @b;
		box-shadow: 0px 0px 14px 0px #0000000D;

		h3, .h3, h4, .h4, h5, .h5 {
			line-height: 1.1 @i;
			margin-bottom: 12px;

			+ hr {
				margin-top: 0;
				margin-bottom: 12px;
			}
		}

		p {
			line-height: 1.3;
			max-width: 790px;

			&:last-of-type {
				margin-bottom: 0;
			}
		}

		> .item {
			h3, .h3 {
				margin-bottom: 0;
			}
		}

		> div {
			hr {
				margin: 24px 0;
			}
		}

		&.xl {
			h3, .h3 {
				margin-bottom: 30px;
			}
		}

		&.ic {
			display: flex;
			flex-direction: row;
			padding: 40px 32px;

			.img-wrapper {
				margin-top: 0;
				margin-bottom: 0;
				width: 120px;
				height: 120px;
				margin-right: 32px;
				display: flex;
				justify-content: center;
				align-items: center;
			}

			.txt-wrapper {
				width: calc(~'100% - 152px');
			}
		}

		&.img {
			display: flex;
			align-items: center;
			padding: 12px;

			.img-wrapper {
				width: 200px;
				height: 200px;
				margin-top: 0;
				margin-bottom: 0;
				margin-right: 32px;
				display: flex;
				justify-content: center;
				align-items: center;
				border-radius: 12px;
				overflow: hidden;

				img {
					width: 100%;
					height: 100%;
					object-fit: cover;
				}
			}

			.txt-wrapper {
				width: calc(~'100% - 200px');
			}
		}

		&.cta {
			height: 100%;
			padding: 32px;
			position: relative;

			.txt-wrapper {
				display: block;
				width: 100%;
				position: relative;
				padding-right: 40px;			

				h3, .h3 {
					margin-bottom: 12px;
					max-width: 1420px;
				}

				p {
					margin-bottom: 12px;
					max-width: 100%;

					&:last-of-type {
						margin-bottom: 0;

						span {
							color: @azul;
						}

						+ ul {
							margin-top: 20px;
						}
					}
				}

				.btn.desplegar {
					width: 24px;
					height: 24px;
					position: absolute;
					top: 0;
					right: 0;
				}

				span:not(.btn.desplegar) {
					strong {
						font-family: @regular;
						color: @azul;
					}
				}
			}

			.tag + .txt-wrapper {
				h3, .h3 {
					margin-top: 32px;
					margin-bottom: 32px;
				}

				p {
					max-width: 460px;
				}
			}

			&.publicaciones {
				.txt-wrapper {
					padding-right: 0;

					ul.cta-footer {
						display: flex;
						justify-content: space-between;
						margin-top: 20px;
						margin-bottom: 0;

						.btn.desplegar {
							position: relative;
							width: 24px;
							height: 24px;
						}
					}

					ul.separadores {
						strong {
							font-family: @regular;
							color: @azul;
						}
					}
				}
			}
		}

		&.azul {
			background: linear-gradient(180deg, #2CBFFA 0%, #0000E6 105.02%);

			h2, .h2, h3, .h3, h4, .h4, h5, .h5 {
				color: @b;
			}

			.h3 {
				margin-bottom: 12px;
			}

			h3 {
				font-family: @bold;
				//max-width: 80%;
				margin-bottom: 0;
			}

			p {
				&:last-of-type {
					margin-bottom: 0;
				}
			}
		}

		&.datos {
			box-shadow: none;

			h3, .h3, h4, .h4 {
				strong {
					color: @azul;
				}
			}

			.txt-wrapper {
				display: flex;
				flex-direction: column;
				justify-content: center;
				height: 100%;
			}
		}

		&.programa {
			p {
				margin-bottom: 8px;
			}
		}

		&.h-auto {
			height: auto;
		}
	}

	a.panel {
		h1, .h1, h2, .h2, h3, .h3 {
			transition: @ef25;
		}

		&:hover {
			.txt-wrapper {
				h1, .h1, h2, .h2, h3, .h3 {
					color: @azul;
				}
			}
		}
	}

	.faq-list {
		.panel {
			height: initial;
		}

		&.azul {
			.panel {
				border: solid 1px @azul;

				h3, .h3, h4, .h4, h5, .h5 {
					color: @azul;
				}
			}
		}
	}

	.head {
		margin-bottom: 40px;
		font-size: 2.2rem;

		h2, .h2 {
			strong {
				font-family: @regular;
				color: @azul;
			}
		}

		h1.h2 {
			strong {
				font-family: @bold;
				color: @n;
			}
		}

		h1, .h1, h2, .h2, p:not(.h2) {
			max-width: 700px;
		}

		ul {
			margin-top: 40px;
			margin-bottom: 64px;
			padding-left: 0;

			> li {
				padding-left: 0;

				&:before {
					display: none;
				}
			}
		}

		p, ul li {
			span {
				color: @azul;
			}
		}

		&.w-100 {
			h1, .h1, h2, .h2, p:not(.h2) {
				max-width: initial;
			}
		}
	}

	.soluciones {
		display: flex;
		flex-direction: row;
		justify-content: space-between;
		flex-wrap: wrap;

		/*
		li {
			width: calc(~'50% - 10px');
			min-height: 420px;
			display: flex;
			flex-direction: column;
			justify-content: flex-end;
			align-items: flex-start;
			max-width: 425px;
			margin-bottom: 20px;
			border-radius: 20px;
			box-shadow: 0px 0px 14px 0px #0000000D;
			background-color: @b;			
		}
		*/

		[class^="col-"] {
			display: flex;
			flex-direction: column;
			justify-content: flex-end;
			align-items: flex-start;

			> div {
				width: 100%;
				height: 100%;
				border-radius: 20px;
				background: @b;
				box-shadow: 0px 0px 14px 0px #0000000D;

				a:not(.btn), span:not(.h3), div {
					display: flex;
					flex-direction: column;
					justify-content: flex-end;
					min-height: 420px;
					height: 100%;
					margin: 0;
					padding: 110px 8% 8%;					
					border-radius: 20px;
					
					&.ic {
						background-position: 9% 9%;
						background-size: 52px;
					}

					&.resolucion {
						background-image: url('img/ic-resolucion-gradient.svg');
					}

					&.calculo {
						background-image: url('img/ic-calculo-gradient.svg');
					}

					&.digitalizacion {
						background-image: url('img/ic-digitalizacion-gradient.svg');
					}

					&.optimizacion {
						background-image: url('img/ic-optimizacion-gradient.svg');
					}

					&.diseno {
						background-image: url('img/ic-diseno-gradient.svg');
					}

					&.inspeccion {
						background-image: url('img/ic-inspeccion-gradient.svg');
					}

					&.calibracion {
						background-image: url('img/ic-calibracion-gradient.svg');
					}

					&.vision {
						background-image: url('img/ic-vision-gradient.svg');
					}

					&.autonomia {
						background-image: url('img/ic-autonomia-gradient.svg');
					}

					&.innovacion {
						background-image: url('img/ic-innovacion-gradient.svg');
					}

					&.descarbonizacion {
						background-image: url('img/ic-descarbonizacion-gradient.svg');
					}

					&.aviso {
						background-image: url('img/ic-aviso-gradient.svg');
					}

					&.canal {
						background-image: url('img/ic-canal-gradient.svg');
					}

					&.cookies {
						background-image: url('img/ic-cookies-gradient.svg');
					}

					&.privacidad {
						background-image: url('img/ic-privacidad-gradient.svg');
					}
				}

				a:not(.btn):hover {
					color: @azul;
				}

				&.bg-azul {
					background: linear-gradient(180deg, #2CBFFA 0%, #0000E6 105.02%);

					a:not(.btn), span:not(.h3), div {
						color: @b;

						&.resolucion {
							background-image: url('img/ic-resolucion-white.svg');
						}

						&.calculo {
							background-image: url('img/ic-calculo-white.svg');
						}

						&.digitalizacion {
							background-image: url('img/ic-digitalizacion-white.svg');
						}

						&.optimizacion {
							background-image: url('img/ic-optimizacion-white.svg');
						}

						&.diseno {
							background-image: url('img/ic-diseno-white.svg');
						}

						&.inspeccion {
							background-image: url('img/ic-inspeccion-white.svg');
						}

						&.calibracion {
							background-image: url('img/ic-calibracion-white.svg');
						}

						&.vision {
							background-image: url('img/ic-vision-white.svg');
						}
					}

					a:hover {
						color: @b;
					}
				}
			}
		}
	}

	.timeline-container {
		margin: 0 auto;

		h1 {
			font-size: 36px;
			margin-bottom: 60px;
			color: @g3;
		}

		.timeline-wrapper {
            position: relative;

			.timeline-nav {
				position: absolute;
				top: 50%;
				transform: translateY(-50%);
				width: 40px;
				height: 40px;
				border: 2px solid #e0e0e0;
				background: white;
				border-radius: 50%;
				cursor: pointer;
				font-size: 20px;
				color: @g9;
				z-index: 10;
				transition: all 0.3s ease;
				display: flex;
				align-items: center;
				justify-content: center;

				&:hover {
					border-color: #3d5afe;
					color: #3d5afe;
					background: #f5f5f5;
				}

				&:disabled {
					opacity: 0.3;
					cursor: not-allowed;
					
					&:hover {
						border-color: #e0e0e0;
						color: @g9;
						background: white;
					}
				}

				&.timeline-nav-prev {
					left: 0;
				}

				&.timeline-nav-next {
					right: 0;
				}
			}

			.timeline-viewport {
				overflow: hidden;
				position: relative;
				cursor: grab;
				user-select: none;

				&:active {
					cursor: grabbing;
				}

				.timeline-line {
					position: absolute;
					top: 68px;
					left: 0;
					right: 0;
					height: 2px;
					background-color: #b3b3b3;
				}

				.timeline {
					position: relative;
					display: flex;
					padding-top: 66px;
					transition: transform 0.5s ease;

					.timeline-item {
						position: relative;
						flex: 0 0 33.33333%;
						width: 33.33333%;
						padding-right: 20px;
						
						.timeline-marker {
							position: absolute;
							top: -20px;
							left: 0;
							width: 48px;
							height: 48px;
							border-radius: 50%;
							border: solid 4px @g-lt;
							background-color: @g9;
							cursor: pointer;
							transition: all 0.3s ease;
							z-index: 2;

							&.active {
								background-color: @azul;
								/*width: 24px;
								height: 24px;
								top: -23px;*/
							}

							&:hover {
								//transform: scale(1.2);
							}
						}
						
						.timeline-year {
							font-size: 3.2rem;
							color: @g9;
							position: absolute;
							top: -70px;
							left: 0;							
							transition: all 0.3s ease;
							cursor: pointer;

							&.active {
								color: @azul;
							}
						}

						.timeline-content {
							margin-top: 48px;
							opacity: 0.15;
							//max-height: 0;
							overflow-x: hidden;
							overflow-y: auto;
							transform: scale(0.8);
							transform-origin: top left;
							transition: @ef25;

							&.show {
								opacity: 1;
								max-height: 1000px;
								transform: scale(1);
							}

							p {
								font-size: 3rem;
							}

							.timeline-images {
								display: flex;
								gap: 10px;
								margin-top: 20px;
								flex-wrap: wrap;

								img {
									border-radius: 20px;
									max-width: 100%;
									max-height: 240px;
									//object-fit: cover;
									
									/*
									&:first-child {
										width: 180px;
										height: 140px;
									}
									
									&:not(:first-child) {
										width: 80px;
										height: 80px;
									}
									*/
								}
							}
						}
					}
				}
			}
		}
	}

	.legal {
		h5, .h5, .wrapper-table {
			margin-top: 80px;
		}
	}

	.fuente {
		margin-top: 80px;

		p {
			margin-bottom: 0;
		}
	}

	.compartir {
		display: flex;
		justify-content: flex-end;
		margin-top: 80px;
	}

	.img-wrapper {
		margin-top: 80px;
		margin-bottom: 80px;
	}

	.cita {
		text-align: center;
	}

	.pasos {
		padding-left: 48px;

		> div {
			position: relative;

			> p {
				margin-bottom: 4px;
			}

			&:before {
				content: '';
				display: block;
				position: absolute;
				left: -48px;
				width: 48px;
			}

			&:nth-of-type(1):before {
				content: '01';
			}

			&:nth-of-type(2):before {
				content: '02';
			}

			&:nth-of-type(3):before {
				content: '03';
			}

			&:nth-of-type(4):before {
				content: '04';
			}

			&:nth-of-type(5):before {
				content: '05';
			}

			&:nth-of-type(6):before {
				content: '06';
			}

			&:nth-of-type(7):before {
				content: '07';
			}

			&:nth-of-type(8):before {
				content: '08';
			}

			&:nth-of-type(9):before {
				content: '09';
			}

			&:nth-of-type(10):before {
				content: '10';
			}
		}
	}

	.rrss {
		display: inline-flex;
		flex-direction: column;
		padding: 24px;
		border-radius: 20px;
		background-color: @b;

		h3, .h3 {
			font-family: @bold;
		}
	}
}

.wrapper {
	&.bg-id {
		background-image: url('img/id-icon.svg');
		background-size: 52%;
		background-position: 100% 0px;
	}

	section:last-of-type {
		padding-bottom: 80px @i;
	}
}

.sticky {
    position: sticky;
    top: 160px;
}

.antetitulo {
	font-family: @medium;
	font-size: 2.2rem;
	letter-spacing: -0.5px;
	white-space: nowrap;
	display: inline-block;
	margin-bottom: 40px;
	padding: 2px 0 2px 40px;
	background-image: url('img/ic-plus.svg');
	background-position: left 0;

	p {
		margin-bottom: 0;
	}
}

.tag {
	font-family: @medium;
	font-size: 1.2rem;
	line-height: 1;
	display: inline-flex;
	padding: 8px;
	border-radius: 4px;
	border: solid 1px @g;

	&.solid {
		color: @b;
		background-color: @azul;
		border-color: @azul;
	}
}

.prev {
	display: flex;
    flex-direction: column;
	width: 100%;
	min-height: 100%;
	padding: 12px;
	border-radius: 20px;
	background-color: @b;
	box-shadow: 0px 0px 14px 0px #0000000D;

	.img-wrapper {
		margin-top: 0;
		margin-bottom: 0;
		display: flex;
		justify-content: center;
		align-items: center;
		aspect-ratio: 1.5;
		width: 100%;
		height: 100%;
		height: -webkit-fill-available;
		position: relative;
		overflow: hidden;
		border-radius: 12px;

		img {
			width: 100%;
			height: 100%;
			max-width: initial;
			max-height: initial;
			object-fit: cover;
			border-radius: 12px;
		}
	}

	.txt-wrapper {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: flex-start;
		flex: 1;
		height: 100%;
		margin-top: 12px;
		padding: 20px;

		.tag {
			margin-bottom: 12px;
		}
		
		h1, .h1, h2, .h2 {
			margin-bottom: 16px;
			transition: @ef25;
		}

		h3, .h3 {
			margin-bottom: 12px;
			transition: @ef25;
		}

		p, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
			max-width: 800px;
		}

		ul {
			padding-left: 0;
		}

		.btn {
			margin-top: auto;
		}
	}

	&.solucion {
		.txt-wrapper {
			justify-content: flex-start;
		}
	}

	&.direccion {
		.img-wrapper {
			aspect-ratio: 1;
		}

		.txt-wrapper {
			p {
				margin-bottom: 0;

				&:last-of-type {
					margin-top: 20px;
					margin-bottom: 24px;
				}
			}

			.btn {
				margin-top: auto;
			}
		}
	}

	&.sector {
		.img-wrapper {
			aspect-ratio: 1;
		}

		.txt-wrapper {
			justify-content: flex-start;
		}
	}

	&.caso {
		&.bg-azul {
			color: @b;
			background-color: @azul;

			.antetitulo {
				background-image: url('img/ic-plus-white.svg');				
			}

			span {
				color: @g4;
				border: none;
				background-color: @b;
			}

			h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
				color: @b;
			}
		}

		.img-wrapper {
			aspect-ratio: 1;
			max-height: calc(~'100vh - 180px');
		}

		.img-wrapper, .embed-container {
			min-height: 400px;
		}

		.embed-container {
			border-radius: 12px;
		}

		.txt-wrapper {
			margin-top: 0;
			padding: 50px;

			.antetitulo {
				margin-bottom: auto;
				padding-bottom: 40px;
			}

			.antetitulo, .tag-wrapper {
				+ h1, .h1 {
					font-size: 6.4rem;
				}
			}
		}
	}	

	&.investigacion {
		flex-direction: row;
		align-items: center;

		.img-wrapper {
			aspect-ratio: 1;
			width: 50%;
			//flex: 1;
		}

		.txt-wrapper {
			width: 50%;
			margin: 0;
			padding-left: 52px;
		}
	}

	&.area {
		flex-direction: row;
		align-items: center;
		position: relative;

		.img-wrapper {
			aspect-ratio: 1;
			width: 200px;			
		}

		.txt-wrapper {
			margin-top: 0;
			padding-left: 40px;

			p, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
				max-width: 100%;
			}
		}
	}

	&.oferta {
		flex-direction: row;
		align-items: center;

		.img-wrapper {
			width: 33.33333%;
			max-width: 340px;
			border-radius: initial;
		}

		.txt-wrapper {
			margin-top: 0;

			.inner {
				display: flex;
				width: 100%;

				.info {
					margin: auto auto auto 0;
  					padding-right: 20px;

					p {
						margin-bottom: 12px;

						&:last-of-type {
							margin-bottom: 0;
						}
					}
				}
				
				.btn-wrapper {
					margin-left: auto;
					display: flex;
					flex-direction: column;
					gap: 10px;
				}
			}
		}

		&.logo {
			.img-wrapper {
				img {
					max-width: 100%;
					max-height: 100%;
					object-fit: contain;
					border-radius: initial;
				}
			}
		}
	}

	&.noticia {
		flex-direction: row;
		align-items: center;

		.img-wrapper {
			width: 50%;
		}

		.txt-wrapper {
			width: 50%;
			margin: 0;
			padding-left: 40px;
		}
	}

	&.jornada {
		flex-direction: row;
		align-items: center;

		.img-wrapper {
			aspect-ratio: 1.5;
			width: 33.33333%;
			max-width: 560px;
			height: -webkit-fill-available;
			height: stretch;
		}

		.txt-wrapper {
			width: 66.66666%;
			margin-top: 0;
			padding-left: 52px;
		}
	}
}

a.prev {
	&:hover {
		.txt-wrapper {
			h1, .h1, h2, .h2, h3, .h3 {
				color: @azul;
			}
		}
	}
}

.height-100 {
	min-height: calc(~'100dvh - 40px');
	display: flex;
	flex-direction: column;
	justify-content: flex-start;

	.container-fluid, .top {
		height: 100%;
	}

	&.y-center {
		justify-content: center;
	}
}

.bg-blue {
	color: @b;
	padding-top: 0;
	padding-bottom: 0;
	padding-left: 24px;
	padding-right: 24px;

	&:before {
		content: '';
		position: absolute;
		z-index: 1;
		top: 0;
		right: 24px;
		bottom: 0;
		left: 24px;
		border-radius: 20px 20px 0 0;
		background-color: @azul;
		mix-blend-mode: multiply;
		transition: @ef25;
	}

	&:hover {
		&:before {
			left: 0px;
			right: 0px;
		}
	}

	&.bg-cover {
		background-position: calc(~'100% - 24px') top;
		transition: @ef25;

		&:hover {
			//background-position: 100% top;
		}
	}

	.container-fluid {
		padding: 56px;
	}

	h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
		color: @b;
	}

	ul > li:before {
		background: @b @i;
	}

	.antetitulo {
		background-image: url('img/ic-plus-light.svg');
	}

	.prev {
		padding: 0;
		background-color: transparent;
		box-shadow: none;

		.txt-wrapper {
			justify-content: center;
			padding: 20px 0;
		}
	}

	.embed-container {
		height: 100%;
		border-radius: 12px;
	}

	.info-video {
		.txt-wrapper {
			padding: 0;

			h2, .h2, h3, .h3, h4, .h4, h5, .h5, p, ul {
				max-width: initial;
			}
		}
	}
}

footer {
	color: @b;
    position: relative;
    z-index: 1;

	&:before {
		content: '';
		position: absolute;
		z-index: 1;
		top: 0;
		right: 24px;
		bottom: 0;
		left: 24px;
		border-radius: 20px 20px 0 0;
		background-color: @azul;
		mix-blend-mode: multiply;
		transition: @ef25;
	}

	&:hover {
		&:before {
			left: 0px;
			right: 0px;
		}
	}

	form, .form {
		input[type="text"],
		input[type="email"],
		input[type="number"],
		input[type="password"],
		input[type="file"],
		textarea {
			&:focus {
				border-color: @b;
			}
		}

		select:focus {
			color: @b;
			border-color: @b;
		}
	}

    hr {
		margin-top: 0;
		margin-bottom: 0;

        &:before {
        	background: @b20;
        }
    }

	.top {
		padding-top: 44px;
		padding-bottom: 44px;

		p, h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
			color: @b;
			max-width: 720px;
		}

		.prev {
			padding: 0;
			background-color: transparent;
			box-shadow: none;

			.txt-wrapper {
				justify-content: center;
				margin: 0;
				padding: 0;

				.antetitulo {
					background-image: url('img/ic-plus-light.svg');
				}
			}
		}

		&.oportunidades {
			p, h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
				max-width: 100%;
			}
		}
	}

	.bottom {
		padding: 80px 0 64px;
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;

		> div {
			width: auto;

			&:first-of-type {
				.logo {
					display: inline-flex;
					margin-bottom: 50px;

					img {
						height: 90px;
					}
				}

				p {
					line-height: 1.35;
					margin: 0;
				}

				ul.redes {
					margin: 25px 0 0;
				}
			}

			&:last-of-type {
				ul.centros {
					display: flex;
					height: 100%;
					align-items: center;
					margin: 30px -12px;

					> li {
						padding: 0 12px;
					}
				}
			}
		}
	}

	.last {
		display: flex;
		padding-top: 54px;
		padding-bottom: 54px;

		p, ul {
			display: inline-flex;
			flex-wrap: wrap;
			margin-top: 12px;
			margin-bottom: 12px;
		}

		p {
			margin-top: 15px;
			margin-bottom: 15px;
			padding-right: 15px;
			border-right: solid 2px #80ADF1;
		}

		ul {
			 > li {
				margin-top: 5px;
				margin-bottom: 5px;
				padding-left: 15px;
				padding-right: 15px;
				border-right: solid 2px @azul-light;

				&:last-child {
					border-right: none;
				}
			 }
		}

		a {
			white-space: nowrap;
			display: inline-flex;
			padding-bottom: 1px;
			position: relative;
			text-decoration: none;

			&:hover, &.active {
				&:before {
					transform: scaleX(1);
					transform-origin: bottom left;
				}
			}

			&:before {
				content: '';
				position: absolute;
				width: 100%;
				transform: scaleX(0);
				height: 1px;
				bottom: 0;
				left: 0;
				background-color: @azul-light;
				transform-origin: bottom right;
				transition: transform 0.2s ease-out;
			}
		}
	}

	.prev {
		.img-wrapper {
			aspect-ratio: 1;
			max-height: calc(~'100vh - 180px');
			min-height: 400px;
		}
	}
}

.bg-blue, footer {
	form, .form {
		color: @b;

		input[type="text"],
		input[type="email"],
		input[type="number"],
		input[type="password"],
		input[type="file"],
		textarea {
			border: solid 1px @b;

			&:focus {
				color: @b;
			}
		}

		select {
			color: @b;
			border: solid 1px @b;

			option {
				color: @n;
				background-color: @b;
			}
		}

		.select-wrapper {
			&:after {
				color: @b;
			}
		}

		.file-upload-wrapper {
			label.custom-file-upload {
				border: 1px solid @b;
			}

			img {
				filter: invert(0);
			}
		}
	}

	::-webkit-input-placeholder {
		color: @b @i;
	}
	:-moz-placeholder {
		color: @b @i;
	}
	::-moz-placeholder {
		color: @b @i;
	}
	:-ms-input-placeholder {
		color: @b @i;
	}
	::-ms-input-placeholder {
		color: @b @i;
	}
	:placeholder-shown {
		color: @b @i;
	}
}


// CONDICIONALES ==================================================================================
@media screen and (max-width: 1599px) {

	section {
		.soluciones {
			[class^="col-"] {
				> div {
					a:not(.btn) {
						min-height: 340px;
					}
				}
			}
		}
	}

}

@media screen and (max-width: 1399.98px) {
	
	.container-fluid {
		padding-left: 60px;
		padding-right: 60px;
	}

	header {
		#header {
			.bottom {
				.menu {
					justify-content: flex-end;

					nav {
						font-size: 1.5rem;

						> ul {
							> li {
								padding: 0 10px;
							}
						}
					}
				}
			}
		}
	}

	section {
		&.hero {
			&.bg {
				.wrapper.video.dividida {
					.container-fluid {
						padding-bottom: 60px;
					}
				}
			}

			&.md {
				h1, .h1 {
					font-size: 8rem;
				}
			}
		}

		.soluciones {
			[class^="col-"] {
				> div {
					div {
						min-height: 360px;
						padding: 80px 8% 8%;

						a {
							min-height: initial;							
						}

						&.ic {
							background-size: 40px 40px;
						}
					}
				}
			}
		}
	}

	.prev {
		&.investigacion {
			.txt-wrapper {
				padding-left: 40px;
			}
		}
	}

	.wrapper {
		section:last-of-type {
			padding-bottom: 80px @i;
		}
	}

	.bg-blue {
		.container-fluid {			
			padding: 36px;
		}
	}

	footer {
		.last {
			flex-direction: column;

			p {
				width: 100%;
				padding-right: 0;
				border-right: none;
			}

			ul {
				padding-left: 0;
				margin-left: -15px;
				margin-right: -15px;

				> li {
					border-left: none;
					border-right: solid 2px @azul-light;

					&:last-child {
						border-right: none;
					}
				}
			}
		}
	}

}

@media screen and (max-width: 1199.98px) {

	form, .form {
		font-size: 2rem;

		input[type="text"],
		input[type="email"],
		input[type="number"],
		input[type="password"],
		input[type="file"],
		textarea {
			height: 56px;
			border-radius: 12px;
			padding: 16px 20px;
		}

		select {
			height: 56px;			
			padding: 16px 20px;
			border-radius: 12px;
		}

		.select-wrapper:after {
			font-size: 2.4rem;
			width: 56px;
			height: 56px;
		}

		.file-upload-wrapper {
			height: 56px;

			label.custom-file-upload {
				padding: 16px 20px;
			}
		}
	}

	.container-fluid {
		padding-left: 35px;
		padding-right: 35px;

		.bg-cover {
			margin-left: -35px;
			margin-right: -35px;
			padding-left: 35px;
			padding-right: 35px;
		}
	}

	.row-cols-5 {
		> * {
			width: calc(~'100% / 3');
		}
	}
	
	// SLICK SLIDER __________________________________
	.slick {
		&.paneles, &.carrusel {
			.slick-list  {
				overflow: hidden;
			}
		}
	}
	// FIN SLICK SLIDER ______________________________

	.tit-bg {
		h3, .h3 {
			font-size: 5rem;
		}
	}

	.btn {
		&.xl {
			font-size: 2.4rem;
		}
	}

	h1, .h1 {
		font-size: 10rem;
		margin-bottom: 60px;
	}

	h2, .h2 {
		font-size: 4.2rem;
	}

	h3, .h3 {
		font-size: 2.4rem;
	}

	h4, .h4 {
		font-size: 2rem;
	}

	body {
		padding-top: 40px;
	}

	header {
		#header {
			display: none;
		}

		#header-mobile {
			display: block;

			.top .container-fluid ul.menu-top {
				border-left: none;
			}
		}

		::-webkit-scrollbar-track {
		    background-color: transparent;
		}
		::-webkit-scrollbar-thumb {
		    background-color: @azul;
		}
		::-webkit-scrollbar {
		    width: 4px;
		    height: 4px;
		    background-color: transparent;
		}
		::-moz-scrollbar-track {
		    background-color: transparent;
		}
		::-moz-scrollbar-thumb {
		    background-color: @azul;
		}
		::-moz-scrollbar {
		    width: 4px;
		    height: 4px;
		    background-color: transparent;
		}
	}

	section {
		padding-top: 60px;
		padding-bottom: 60px;

		&.zero {
			&.top {
				padding-top: 0;
				padding-bottom: 60px;
			}

			&.bottom {
				padding-top: 60px;
				padding-bottom: 0;
			}
		}

		&:first-of-type {
			padding-top: 120px @i;
		}

		&:last-of-type {
			padding-bottom: 120px @i;
		}
	}

	section {
		&.hero {
			&.bg {
				.wrapper.video {
					position: relative;

					&:before {
						content: '';
						display: block;
						position: absolute;
						z-index: 2;
						top: 0;
						right: 0;
						bottom: 0;
						left: 0;
					}

					&.dividida {
						.container-fluid {
							padding-bottom: 35px;
						}
					}
				}
			}

			&.md {
				height: initial;
				max-height: initial;
				min-height: 400px;

				h1, .h1 {
					font-size: 6rem;
				}
			}
		}

		.intro {
			font-size: 2.8rem;
		}

		.soluciones {
			[class^="col-"] {
				> div {
					a:not(.btn), div {
						min-height: 260px;
						padding-top: 80px;

						&.ic {
							background-size: 32px 32px;
						}
					}
				}
			}
		}

		.panel {
			&.ic {
				padding: 32px;

				.img-wrapper {
					width: 80px;
					height: 80px;
				}

				.txt-wrapper {
					width: calc(~'100% - 112px');
				}
			}
		}
	}

	.wrapper {
		section:last-of-type {
			padding-bottom: 60px @i;
		}
	}

	.prev {
		&.caso {
			.txt-wrapper {
				padding: 20px;
			}
		}

		&.area {
			.img-wrapper {
				width: 160px;
			}
		}

		&.jornada {
			.txt-wrapper {
				padding-left: 30px;
			}
		}
	}

	.bg-blue {
		min-height: initial;
		padding-left: 35px;
		padding-right: 35px;

		&:before {
			left: 35px;
			right: 35px;
		}

		&:hover:before {
			left: 35px;
			right: 35px;
		}

		&.bg-cover {
			background-position: calc(~'100% - 35px') top;
		}

		.embed-container {
			border-radius: 12px;
		}

		.info-video {
			.txt-wrapper {
				padding: 20px;
			}
		}
	}

	footer {
		&:before {
			left: 35px;
			right: 35px;
		}

		&:hover:before {
			left: 35px;
			right: 35px;
		}

		.prev {
			.img-wrapper {
				max-height: 100%;
			}
		}

		.top {
			//padding: 12px;
			padding: 44px;

			.prev {
				margin: -32px;
				width: calc(~'100% + 64px');

				> .row {
					//width: calc(~'100% + 64px');
				}

				.txt-wrapper {
					padding: 28px 20px;
				}
			}
		}

		.bottom {
			padding: 32px;
		}

		.last {
			padding: 32px;
		}
	}

}

@media screen and (max-width: 991.98px) {
	
	/*
	.slick-dots li {
		margin-right: 20px;

		button {
			width: 20px;
			height: 20px;
			border-radius: 10px;
		}

		&.slick-active {
			button {
				width: 40px;
			}
		}
	}
	*/
	
	.container-fluid {
		padding-left: 24px;
		padding-right: 24px;

		.bg-cover {
			margin-left: -24px;
			margin-right: -24px;
			padding-left: 24px;
			padding-right: 24px;
		}
	}

	.desktop-hidden {
		display: block @i;
	}

	.mobile-hidden {
		display: none @i;
	}

	#masonry-grid {
		.grid-sizer, .grid-item {
			width: 33.33333%;
		}
	}

	ul {
		&.grid-filter, &.btn-list {
			margin-left: -8px;
			margin-right: -8px;

			> li, > div {
				margin-left: 8px;
				margin-right: 8px;
				margin-bottom: 16px;
			}
		}
	}

	body {
		&.navegando {
			header {
				background: @n;
				-webkit-backdrop-filter: none;
				backdrop-filter: none;
			}
		}
	}

	blockquote {
		font-size: 4rem;
		text-align: left;

		span {
			padding-right: 0;

			i {
				font-size: 6rem;
			}
		}

		&.small {
			font-size: 3rem;
			padding: 45px 8.333333%;
		}
	}

	section {
		&.hero {
			&.bg {
				.wrapper.video.dividida {
					.container-fluid {
						padding-bottom: 24px;
					}
				}
			}

			&.sector {
				h1, .h1 {
					font-size: 6rem;
				}
			}
		}

		.intro {
			font-size: 2.4rem;

			p {
				max-width: 100%;
			}
		}
		
		.soluciones {
			[class^="col-"] {
				> div {
					border-radius: 16px;

					a:not(.btn) {
						padding: 80px 24px 24px;

						&.ic {
							background-position: 24px 24px;
						}
					}

					div {
						padding: 80px 24px 24px;

						&.ic {
							background-position: 24px 24px;
						}
					}
				}
			}
		}

		.timeline-wrapper {
			padding: 0 50px;

			.timeline-nav {
				width: 35px;
				height: 35px;
				font-size: 16px;
			}

			.timeline-viewport {
				.timeline {
					.timeline-item {
						flex: 0 0 50%;
						min-width: 50%;

						.timeline-images img {
							&:first-child {
								width: 140px;
								height: 110px;
							}
							
							&:not(:first-child) {
								width: 65px;
								height: 65px;
							}
						}
					}
				}
			}
		}

		.info-video {
			.g-5, .g-4 {
				[class^="col-"]:first-of-type {
					//margin-top: calc(~'var(--bs-gutter-x) * 0.5');
				}
			}

			.embed-container {
				height: calc(~'100dvh - 240px');
				max-height: 480px;
			}
		}

		.panel {
			&.ic {
				padding: 24px;
			}
		}
	}

	.prev {
		.txt-wrapper {
			padding: 12px;
		}

		&.direccion {
			.img-wrapper {
				aspect-ratio: 10 / 6;
			}
		}

		&.caso {
			.txt-wrapper {
				//padding: 40px;
			}

			.img-wrapper, .embed-container {
				height: calc(~'100dvh - 240px');
				max-height: 480px;
			}
		}

		&.area {
			.img-wrapper {
				width: 120px;
			}
		}

		&.investigacion {
			.img-wrapper {
				width: 33%;
			}
		}
	}

	.bg-blue {
		padding-left: 24px;
		padding-right: 24px;

		&:before {
			left: 24px;
			right: 24px;
		}

		&:hover:before {
			left: 24px;
			right: 24px;
		}
		
		&.bg-cover {
			background-position: calc(~'100% - 24px') top;
		}

		.container-fluid {
			padding: 32px;

			.info-video {
				margin: -32px -20px;

				> .row {
					> [class^="col-"]:first-of-type {
						margin-top: calc(~'var(--bs-gutter-x) * 0.5');
					}
				}
			}
		}

		.row.g-5 {
			margin-top: 0;
		}

		.info-video {
			.g-5 {
				[class^="col-"]:first-of-type {
					margin-top: 0;
				}
			}

			.txt-wrapper {
				//padding: 40px;
			}
		}

		.embed-container {
			height: calc(~'100dvh - 240px');
			max-height: 480px;
		}
	}

	footer {
		&:before {
			left: 24px;
			right: 24px;
		}

		/*
		.prev {
			> .row > [class^="col-"]:first-of-type {
				margin-top: calc(~'var(--bs-gutter-x) * 0.5');
			}
		}
		*/
	}

}

@media screen and (max-width: 767.98px) {
	
	::-webkit-scrollbar {
		width: 4px;
		height: 4px;
		border-radius: 2px;
	}

	::-moz-scrollbar {
		width: 4px;
		height: 4px;
		border-radius: 2px;
	}

	.embed-container {
		min-height: initial;
		aspect-ratio: 1.5;
	}

	.container-fluid, .container {
        padding-left: 15px;
        padding-right: 15px;
    }

	.row-cols-5 {
		> * {
			width: calc(~'100% / 2');
		}
	}

	.formulario-fancybox {
		padding: 0;

		> div {
			padding: 30px 20px;
		}
	}

	.scroll.subir {
		bottom: -50px;
	}

	.slick {
		&.hero {
			.slick-dots {
				bottom: 25px;
			}
		}
	}

	.btn {
		height: 40px;
		padding: 0 16px;	
		min-width: 120px;	

		&.xl {
			font-size: 2rem;
			padding: 20px 72px 20px 20px;
			border-radius: 12px;
			background-size: 28px 28px;
			background-position: calc(~'100% - 20px') center;
		}

		&.desplegar {
			background-size: 20px 20px;
		}
	}

	#masonry-grid {
		.grid-sizer, .grid-item {
			width: 50%;
		}
	}

	form, .form {
		font-size: 1.8rem;

		.filtros {
			margin-left: -6px;
			margin-right: -6px;
			margin-bottom: 12px;

			> div {
				margin-left: 6px;
				margin-right: 6px;
				margin-bottom: 12px;
			}
		}
	}

	ul {
		&.breadcrumb {
			margin-bottom: 32px;
		}

		&.table {
			> li {
				padding: 20px @i;
			}
		}

		&.grid-filter, &.btn-list {
			margin-left: -6px;
			margin-right: -6px;
			margin-bottom: 12px;

			> li, > div {
				margin-left: 6px;
				margin-right: 6px;
				margin-bottom: 12px;

				.btn {
					font-size: 1.6rem;
				}
			}
		}
	}

	h1, .h1 {
		font-size: 6rem;
	}

	h2, .h2 {
		font-size: 3.6rem;
	}

	h3, .h3 {
		font-size: 2rem;
	}

	h5, .h5 {
		font-size: 1.8rem;
	}

	body {
		
	}

	section {
		padding-top: 40px;
		padding-bottom: 40px;

		&.zero {
			&.top {
				padding-top: 0;
				padding-bottom: 40px;
			}

			&.bottom {
				padding-top: 40px;
				padding-bottom: 0;
			}
		}

		&:first-of-type {
			//padding-top: 80px @i;
		}

		&:last-of-type {
			padding-bottom: 80px @i;
		}
	}

	section {
		&.hero {
			&.bg {
				padding: 0;

				.wrapper {
					flex-direction: column;

					&.img {
						&.dividida {
							div {
								max-height: 60vh;
								overflow: hidden;
							}
						}
					}

					&.video {
						&.dividida {
							.slick {
								width: 100%;
								height: calc(~'50dvh - 20px');
								overflow: hidden;
							}

							.container-fluid {
								padding-bottom: 24px;
								padding-left: 12px;
								padding-right: 12px;
							}
						}
					}
				}
			}

			&.bg, &.no-bg {
				h1, .h1 {
					text-align: left;
				}
			}

			&.no-bg {
				.container-fluid {
					padding-bottom: 0;
				}
			}

			&.md {
				h1, .h1 {
					font-size: 4.8rem;
				}
			}

			&.sector {
				padding-top: 120px @i;
			}
		}

		.panel {
			padding: 24px;

			&.cta {
				padding: 24px;

				.txt-wrapper {
					.btn {
						&.desplegar {
							width: 20px;
							height: 20px;
						}
					}
				}
			}

			&.azul {
				padding: 16px;
				border-radius: 16px;

				p.h3 {
					font-size: 1.8rem;
				}
			}
		}

		.soluciones {
			[class^="col-"] {
				> div {
					a:not(.btn) {
						min-height: 180px;
						padding: 72px 24px 24px;

						&.h3 {
							font-size: 2rem;
						}

						&.ic {
							background-size: 24px;
							background-position: 24px 24px;
						}
					}

					div {
						min-height: 180px;
						padding: 72px 24px 24px;

						&.ic {
							background-size: 24px;
							background-position: 24px 24px;
						}
					}
				}
			}
		}

		.info-video {
			.txt-wrapper {
				font-size: 1.8rem;
				padding: 0 12px;
			}
		}

		.pasos {
			padding-left: 32px;

			> div:before {
				left: -32px;
				width: 32px;
			}
		}

		.ficha {
			.wrapper-item {
				.item {
					padding: 24px 0;

					> span {
						margin-left: 14px;
						margin-right: 14px;
					}
				}

				.toggle-inner {
					padding: 4px 24px 24px 24px;
				}
			}
		}
	}

	.wrapper {
		section:last-of-type {
			padding-bottom: 40px @i;
		}
	}

	.antetitulo {
		font-size: 1.8rem;
	}

	.entradilla {
		h2, .h2 {
			font-size: 2.4rem;
		}
	}

	.prev {
		&.caso {
			.img-wrapper {
				min-height: initial;				
				height: initial;
				aspect-ratio: 1;
			}

			.txt-wrapper {
				margin: 0;				
				padding: 0 12px;				
			}
		}

		&.noticia {
			flex-direction: column;

			.img-wrapper {
				width: 100%;
			}

			.txt-wrapper {
				width: 100%;
				margin-top: 12px;
				padding-left: 12px;
			}
		}

		&.jornada {
			flex-direction: column;

			.img-wrapper {
				width: 100%;
				max-height: 440px;
				max-width: initial;				
			}

			.txt-wrapper {
				width: 100%;
				margin-top: 12px;
				padding-left: 12px;
			}
		}
	}

	.bg-blue {
		padding-left: 15px;
		padding-right: 15px;

		&:before {
			left: 15px;
			right: 15px;
		}

		&:hover:before {
			left: 15px;
			right: 15px;
		}

		&.bg-cover {
			background-position: calc(~'100% - 15px') top;
		}

		.container-fluid {
			padding: 24px;

			.info-video {
				margin: calc(~'var(--bs-gutter-x) * -0.5') -8px 0;

				.txt-wrapper {
					padding: 0 12px;
				}
			}
		}
	}

	footer {
		&:before {
			left: 15px;
			right: 15px;			
		}

		&:hover:before {
			left: 15px;
			right: 15px;
		}

		.top {
			.prev {
				.txt-wrapper {
					padding: 12px;
				}
			}
		}

		.bottom {
			padding: 32px 24px;

			> div:first-of-type .logo img {
				height: 64px;
			}
		}

		.last {
			padding-top: 20px;
		}

		.prev {
			.img-wrapper {
				aspect-ratio: 1;
				max-height: 440px;
				min-height: initial;
			}
		}
	}

}

@media screen and (max-width: 575.98px) {

	.row-cols-5 {
		> * {
			width: 100%;
		}
	}
	
	// SLICK SLIDER __________________________________
	.slick {
		&.hero-inner {
			.slick-list {
				.slick-track {
					.slick-slide {
						min-width: calc(~'100vw - 20px');

						img {
							max-width: 275px;
							max-height: 275px;
							width: initial;
						}
					}
				}
			}

			.slick-dots {
				margin-top: 30px;
			}
		}
	}
	// FIN SLICK SLIDER ______________________________

	.xs-mobile-hidden {
		display: none @i;
	}

	.btn {
		&.desplegar {
			height: 36px;
		}
	}

	#masonry-grid {
		.grid-sizer, .grid-item {
			width: 100%;
		}
	}

	h1, .h1 {
		font-size: 4.8rem;
	}

	h2, .h2 {
		font-size: 3.2rem;
	}

	h3, .h3 {
		font-size: 2rem;
	}

	h5, .h5 {
		font-size: 1.8rem;
	}

	body {
		
	}

	header {
		#header-mobile {
			.top {
				.container-fluid {
					padding-left: 0;
					padding-right: 0;
					justify-content: center;

					ul.menu-top {
						> li {
							a {
								min-width: 113px;
								padding: 0 24px;
							}
						}
					}
				}
			}
		}
	}

	section {
		.head {
			font-size: 2rem;
		}

		.soluciones {
			[class^="col-"] {
				> div {
					a:not(.btn) {
						max-width: initial;
						min-height: initial;

						&.h3 {
							font-size: 1.8rem;
						}
					}

					div {
						min-height: initial;
					}
				}
			}
		}

		.timeline-wrapper {
			.timeline-viewport {
				.timeline {
					.timeline-item {
						flex: 0 0 100%;
						min-width: 100%;
					}
				}
			}
		}

		.panel {
			border-radius: 16px;

			&.ic {
				.img-wrapper {
					width: 64px;
					height: 64px;
					margin-right: 24px;

					img {
						width: 42px;
						height: 42px;
					}
				}

				.txt-wrapper {
					width: calc(~'100% - 88px');
				}
			}
		}
	}

	.prev {
		&.investigacion {
			flex-direction: column;			

			.img-wrapper {
				width: 100%;
				aspect-ratio: 1.7;
			}

			.txt-wrapper {
				width: 100%;
				padding: 24px 12px 0;
			}
		}

		&.oferta {
			flex-direction: column;
			align-items: flex-start;

			.img-wrapper {
				width: 100%;
				max-width: 100%;
			}

			.txt-wrapper {
				width: 100%;
				margin-top: 12px;

				.inner {
					align-items: flex-end;
				}
			}
		}
	}

	.wrapper {
		&.bg-id {
			background-size: 80%;
		}
	}

	footer {
		.bottom {
			flex-direction: column;

			> div {
				&:last-of-type ul.centros {
					margin: 50px 0 0;
				}
			}
		}

		.last {
			ul {
				> li {
					width: 100%;
					border-right: none;
				}
			}
		}

		.height-100 {
			min-height: initial;
		}
	}

}

// SCROLL DOWN ANIMATION ==========================================================================
.scroll {
	font-size: 1.6rem;
	line-height: 40px;
	color: @b;
	text-decoration: none;
	position: absolute;
	z-index: 9999;
	display: block;
	width: 90px;
	height: 40px;
	padding: 0 10px 0 40px;
	bottom: 70px;
	left: calc(~'50vw - 45px');
	opacity: 1;
	transition: @ef4;

	&.oculto {
		opacity: 0;
		visibility: hidden;
	}

	&.subir {
		color: @b;
		padding: 0;
		opacity: 0.5;
		bottom: -40px;

		&:hover {
			color: @b;
			opacity: 1;
		}

		&:focus, &:active {
			color: @b;
		}

		&:before, &:after {
			display: none;
		}
	}	

	&:before {
		content: "";
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 24px;
		height: 40px;
		border: 2px solid @b;
		border-radius: 12px;
		//background: @n50;
	}

	&:after {
		display: block;
		position: absolute;
		top: 9px;
		left: 11px;
		width: 2px;
		height: 8px;
		border-radius: 2px;
		background: @b;
		content: "";
		animation-name: scroll-down;
		animation-duration: 2s;
		animation-iteration-count: infinite;
		animation-delay: 2s;
	}

	&:hover {
		color: @b;
		text-decoration: none;
	}

	&:focus, &:active {
		color: @b;
	}
}
@-webkit-keyframes scroll-down {
	0% {
	    opacity: 1;
	    height: 8px;
	}
	20% {
	  	opacity: 1;
	    height: 8px;
	}
	30% {
	    transform: translateY(0);
	    opacity: 1;
	    height: 19px;
	}
	40% {
		opacity: 1;
	}
	80% {
	    transform: translateY(19px);
	    opacity: 0;
	    height: 0;
	}
	81% {
	    transform: translateY(0);
	    opacity: 0;
	    height: 8px;
	}
	100% {
	    opacity: 1;
	    height: 8px;
	}
}
@-moz-keyframes scroll-down {
	0% {
	    opacity: 1;
	    height: 8px;
	}
	20% {
	  	opacity: 1;
	    height: 8px;
	}
	30% {
	    transform: translateY(0);
	    opacity: 1;
	    height: 19px;
	}
	40% {
		opacity: 1;
	}
	80% {
	    transform: translateY(19px);
	    opacity: 0;
	    height: 0;
	}
	81% {
	    transform: translateY(0);
	    opacity: 0;
	    height: 8px;
	}
	100% {
	    opacity: 1;
	    height: 8px;
	}
}
@-o-keyframes scroll-down {
	0% {
	    opacity: 1;
	    height: 8px;
	}
	20% {
	  	opacity: 1;
	    height: 8px;
	}
	30% {
	    transform: translateY(0);
	    opacity: 1;
	    height: 19px;
	}
	40% {
		opacity: 1;
	}
	80% {
	    transform: translateY(19px);
	    opacity: 0;
	    height: 0;
	}
	81% {
	    transform: translateY(0);
	    opacity: 0;
	    height: 8px;
	}
	100% {
	    opacity: 1;
	    height: 8px;
	}
}
@keyframes scroll-down {
	0% {
	    opacity: 1;
	    height: 8px;
	}
	20% {
	  	opacity: 1;
	    height: 8px;
	}
	30% {
	    transform: translateY(0);
	    opacity: 1;
	    height: 19px;
	}
	40% {
		opacity: 1;
	}
	80% {
	    transform: translateY(19px);
	    opacity: 0;
	    height: 0;
	}
	81% {
	    transform: translateY(0);
	    opacity: 0;
	    height: 8px;
	}
	100% {
	    opacity: 1;
	    height: 8px;
	}
}

@media print {
	a[href]:after {
		content: none @i;
	}
}