
/*** Estilos MIC000 - Estructura **/

/** 0. Fuentes */
/** 1. Base */
/** 2. Layout: l-; 2.1. General; 2.2. Header; 2.3. Menu; 2.4. Page; 2.5. Menu */
/** 3. Componentes: c- */
/** 4. Paginas: p- */
/** 5. Otros: body-fixed */

/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

/** 0. Fuentes */

/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

/** 1. Base */

:root {
	--color-primary: #2E1452;
	--color-secondary: #2BD6D9;
	--color-tertiary: #2755F8;
	--color-footer: #383838;
	--font-color-primary: #3d3d3d;
	--font-color-secondary: #646468;
	--font-text-primary: 'Raleway', -apple-system, sans-serif;
	--width-container: 128rem;
}

html, body {
	font-size: 62.5%;
	height: 100%;
}

body {
	background: #ffffff;
	color: var(--font-color-primary);
	font-family: var(--font-text-primary);
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 1.25;
	margin: 0;
    position: relative;
}

*,
*::before,
*::after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

*::-moz-selection {
    background-color: var(--color-secondary);
    color: #fff;
}

*::selection {
    background-color: var(--color-secondary);
    color: #fff;
}

a {
	color: var(--color-primary);
	-webkit-transition: all 0.1s ease 0s;
	-ms-transition: all 0.1s ease 0s;
	-moz-transition: all 0.1s ease 0s;
	-o-transition: all 0.1s ease 0s;
	transition: all 0.1s ease 0s;
}
a:hover, a:focus {color: var(--color-secondary);}

b, strong {font-weight: 700;}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
	color: var(--font-color-primary);
	font-weight: 700;
    margin: 0 0 1rem;
}

h4 {font-size: 2rem; font-weight: bold;}

ul, li {
	font-size: 1.5rem;
	padding: 0;
	list-style: outside none none;
}

li:last-child {
	margin-bottom: 0;
}

.clear {
    clear: both;
    display: block;
    height: 0;
    overflow: hidden;
    visibility: hidden;
    width: 0;
}

.hide-text {
	display: block;
	overflow: hidden;
	text-indent: 101%;
	white-space: nowrap;
}

input {font-size: 1.5rem; font-weight: normal;}

input[type="text"],
input[type="password"],
input[type="email"],
textarea,
select {
	background-color: #eee;
	border: 1px solid transparent;
	-webkit-border-radius: 0;
	-moz-border-radius: 0;
	border-radius: 0;
	color: var(--font-color-primary);
	font-size: 1.5rem;
	padding: 1rem;
}

input[type="text"]:focus,
input[type="password"]:focus,
input[type="email"]:focus,
textarea:focus,
select:focus {
	border: 0.1rem solid var(--color-primary);
	outline: 0;
}

input[type="file"] {
    border: 1rem solid #ccc;
    display: block;
    padding: 0;
    width: auto;
}

img {
	font-style: italic;
	vertical-align: middle;
}

table {
  	border-collapse: collapse;
  	border-spacing: 0;
  	font-size: 1.3rem;
}

p {
	color: var(--font-color-primary);
	font-size: 1.5rem;
}

/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

/** 2. Layout */

/* 2.1. General */

body > .l-container::after {
    clear: both;
    content: "";
    display: block;
    height: 138px;
}

.l-container {
	min-height: 100%;
	padding-top: 10.8rem;
	overflow: hidden;
	position: relative;
	z-index: 2;
}

@media (min-width: 768px) {

	body > .l-container::after {
	    height: 72px;
	}
}

@media (min-width: 991px) {
	.l-container {
		padding-top: 12.8rem;
	}
}

/* --------------- */

/* 2.2. Header */

.l-header {
	background-color: #FFF;
	-webkit-box-shadow: 0 0 20px #999;
	-moz-box-shadow: 0 0 20px #999;
	box-shadow: 0 0 20px #999;
	left: 0;
	min-height: 5.5rem;
	overflow: hidden;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 5;
}

.l-header__top {
	min-height: auto;
	overflow: hidden;
	padding: 0;
	position: relative;
	text-align: right;
	width: 100%;
}

.l-header__top > .l-page__container {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	align-items: center;
	padding: 1rem 0;
}

.l-header__top h1 {
	display: none;
    left: 50%;
    position: absolute;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
}

.l-header__top ul {
	margin: 0;
}

.l-header__top li {
    color: var(--font-color-primary);
    display: inline-block;
    font-size: 1.3rem;
    margin-left: 1.5rem;
    padding-left: 1.5rem;
    position: relative;
}

.l-header__logo {
    margin: 0;
    width: 15.6rem;
}

.l-header__logo img {
	display: block;
	width: 100%;
}

.l-header__bottom {
	background-color: var(--color-secondary);
	color: #fff;
	font-weight: bold;
	padding: 1.5rem 0;
	text-align: center;
}

.l-header__bottom p {
	color: #fff;
	margin: 0;
}

@media (min-width: 768px) {
	.l-header__top h1 {
		display: block;
	}
}

@media (min-width: 991px) {

	.l-header__logo {
		padding-top: 2rem;
	}	
}

/* --------------- */

/* 2.3. Menu */

.l-menu {
	background-color: transparent;
	display: none;
}

.l-menu.navbar {
	padding:  0;
}

.l-menu ul {
	display: block;
	overflow: hidden;
}

.l-menu a {
	border: 0 none;
    color: var(--font-color-primary);
    display: block;
    font-size: 1.5rem;
	font-weight: 600;
    line-height: 1.65;
    padding: 1rem 3rem;
	text-decoration: none;
}

.l-menu a:hover, .l-menu a.active {
	color: var(--color-secondary);
}

.l-menu a.active {font-weight: 600;}

.l-menu a i {display: none;}

.l-menu__contact {
	background: transparent url('../images/icons/icon-phone.svg') no-repeat scroll center center;
	background-size: cover;
	display: inline-block;
	height: 2.2rem;
	width: 2.2rem;
}
  
.l-menu a:hover .l-menu__contact {
	background-image: url('../images/icons/icon-phone-hover.svg');
}

@media (min-width: 992px) {
	.l-menu {
		display: block;
		float: right;
		margin: 0;
	}

	.l-menu ul.l-menu__profile {display: none;}

	.l-menu li {
		float: left;
		margin-left: 1.5rem;
	}

	.l-menu li:first-child {margin-left: 0;}

	.l-menu a {
		font-size: 1.4rem;
		padding: 1rem;
	}

	.l-menu a i {display: block;}

	.l-menu a span {display: none;}
	
	.l-menu .navbar-collapse {
		display: block;
	}

	.l-menu__logout {display: none;}
}

/* --------------- */

/* 2.4. Page */

.l-page__container {
	margin: 0 auto;
	max-width: var(--width-container);
	width: 94%;
}

.l-page__headline {
	padding: 5rem 0;
}

.l-page__headline h2 {
	margin-top: 1.5rem;
}

.l-page__general {
	padding: 1.2rem 0;
}

.l-page__data {
    -webkit-box-align: left;
	-ms-flex-align: left;
        align-items: left;
    border-bottom: 0.1rem solid #CCC;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-flow: column;
        flex-flow: column;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
        justify-content: flex-start;
    overflow: hidden;
    padding: 2rem 0;
    width: 100%;
}

.l-page__data p {
	font-size: 1rem;
	margin: 0 0 1.2rem;
	text-align: left;
}
.l-page__data p strong {}
.l-page__data > strong {font-size: 1rem;}

.l-page__data .c-btn {max-width: 230px;}

.l-page__box {
	background-color: #FFF;
	-webkit-box-shadow: 0 0 1.2rem #efefef;
	-moz-box-shadow: 0 0 1.2rem #efefef;
	box-shadow: 0 0 1.2rem #efefef;
	margin-bottom: 1.2rem;
	overflow: hidden;
	padding: 2rem;
	width: 100%;
}

.l-page__box:last-child {margin-bottom: 0;}

.l-page__box h3 {
	color: var(--color-primary);
	margin-bottom: 3rem;
	text-align: center;
}

.l-page__text {
	margin-bottom: 3.5rem;
	overflow: hidden;
	width: 100%;
}

.l-page__text p {margin: 0 0 1.2rem;}
.l-page__text p:last-child {margin: 0;}

.l-page__button {
	overflow: hidden;
	text-align: center;
	width: 100%;
}

@media (min-width: 768px) {
	.l-page__general {
		padding: 2rem 0;
	}
	.l-page__titular {
		margin-top: 2rem;
		min-height: 100px;
		padding: 2rem 0;
	}
	.l-page__titular::before {display: none;}
	.l-page__titular h2 {
		font-size: 3rem;
	}
	.l-page__data {
		align-items: center;
		flex-flow: row wrap;
		justify-content: space-between;
	}
	.l-page__data p {font-size: 2rem; margin: 0;}
	.l-page__data > strong {font-size: 2rem;}
	.l-page__box {padding: 2.5rem;}
}

.l-page__info {
	background-color: #FFF;
	-webkit-box-shadow: 0 0 1.2rem #efefef;
	-moz-box-shadow: 0 0 1.2rem #efefef;
	box-shadow: 0 0 1.2rem #efefef;
	overflow: hidden;
	padding: 2rem;
	text-align: center;
	width: 100%;
}
.l-page__info h3 {
	margin-bottom: 2.5rem;
}
.l-page__info h4 {
	margin-bottom: 2.5rem;
}
.o-info__buttons {
	overflow: hidden;
	text-align: center;
	width: 100%;
}
.o-info__buttons a, .o-info__buttons button {
	margin: 0 0.6rem;
}

@media (min-width: 768px) {
	.l-page__info {padding: 2.5rem;}
}

/* --------------- */

/* 2.5. Footer */

.l-footer {
	background-color: var(--color-footer);
	margin-top: -138px;
	min-height: 138px;
	overflow: hidden;
	position: relative;
	width: 100%;
	z-index: 10;
}

.l-footer > .l-page__container {
	position: relative;
}

.l-footer__list {
	margin: 0;
	overflow: hidden;
	padding: 2.5rem 0;
	text-align: center;
	width: 100%;
}
.l-footer__list li {
	display: inline-block;
	margin: 0;
	text-align: center;
	width: 100%;
}
.l-footer__list li:last-child {
	border-right: 0 none;
}
.l-footer__list a, .l-footer__list span {
	color: #fff;
	display: inline-block;
	font-size: 1.4rem;
	font-weight: 500;
	padding: 0.6rem 1rem;
	text-decoration: none;
}
.l-footer__list a:hover {text-decoration: underline;}

@media (min-width: 768px) {
	.l-footer {
		margin-top: -72px;
		min-height: 72px;
	}
	
	.l-footer__list {
		display: flex;
		flex-flow: row wrap;
		justify-content: center;
	}
	
	.l-footer__list li {
		position: relative;
		width: auto;
	}

	.l-footer__list li::before {
		background-color: #fff;
		content: '';
		height: 1.2rem;
		margin-top: -0.6rem;
		position: absolute;
		right: 0;
		top: 50%;
		width: 0.1rem;
	}
	
	.l-footer__list li:last-child:before {
		display: none;
	}

	.l-footer__list a {
		padding: 0 1.5rem;
	}
}

/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

/** 3. Componentes */

/* 3.1 Botones */

.c-btn {
	background-color: var(--color-primary);
	border: 0 none;
	-webkit-border-radius: 4rem;
	border-radius: 4rem;
	color: #fff;
	cursor: pointer;
	display: inline-block;
	font-size: 1.6rem;
	font-weight: 600;
	min-width: 14rem;
	padding: 1.6rem 3rem 1.4rem;
	text-align: center;
	text-decoration: none;
}
.c-btn:hover {
	background-color: var(--color-secondary);
	color: #FFF;
	text-decoration: none;
}

.c-btn--red {background-color: var(--color-secondary);}
.c-btn--red:hover {background-color: var(--font-color-primary);}

.c-btn--border {
	background-color: #FFF;
	border: 0.1rem solid var(--color-primary);
	color: var(--color-primary);
}

.c-btn--border:hover {
	background-color: var(--color-primary);
	color: #FFF;
}

.c-btn--volver {
	background-color: transparent;
	color: var(--color-primary);
	min-width: auto;
	padding: 1rem 0;
}

.c-btn--volver:hover {
	background-color: transparent;
	color: var(--color-secondary);
	text-decoration: none;
}

/** Button mobile */

.c-button__mobile {
    overflow: hidden;
    display: inline-block;
    min-height: 4rem;
    position: absolute;
    right: 1.5rem;
    top: 1rem;
	vertical-align: middle;
}

.c-button__mobile button {
	background: transparent none no-repeat scroll 0 0;
	border: 0 none;
	background: transparent none no-repeat scroll 0 0;
	color: var(--color-primary);
	cursor: pointer;	
	display: inline-block;
	height: 3rem;
	outline: none;
	overflow: hidden;
	padding: 0;
	position: relative;
	vertical-align: middle;
	width: 3rem;
}
  
.c-button__mobile button:focus {
	outline: none;
}
  
.c-button__mobile button span {
	margin: 0 auto;
	position: relative;
}
  
.c-button__mobile button span::before,
.c-button__mobile button span::after {
	position: absolute;
	content: '';
}
  
.c-button__mobile button span,
.c-button__mobile button span::before,
.c-button__mobile button span::after {
	width: 3rem;
	height: 0.4rem;
	background-color: var(--color-primary);
	display: block;
}
  
.c-button__mobile button span::before {
	margin-top: -0.9rem;
}
  
.c-button__mobile button span::after {
	margin-top: 0.9rem;
}
  
.c-button__mobile button span {
	-webkit-transition-duration: 0s;
	transition-duration: 0s;
	-webkit-transition-delay: 0.2s;
	transition-delay: 0.2s;
}
  
.c-button__mobile button span::before {
	-webkit-transition-property: margin, -webkit-transform;
	transition-property: margin, transform;
	-webkit-transition-duration: 0.2s;
	transition-duration: 0.2s;
	-webkit-transition-delay: 0.2s, 0s;
	transition-delay: 0.2s, 0s;
}
  
.c-button__mobile button span::after {
	-webkit-transition-property: margin, -webkit-transform;
	transition-property: margin, transform;
	-webkit-transition-duration: 0.2s;
	transition-duration: 0.2s;
	-webkit-transition-delay: 0.2s, 0s;
	transition-delay: 0.2s, 0s;
}
  
@media (min-width: 991px) {
	.c-button__mobile {
	  display: none;
	}
}

/* --------------- */

/* 3.2 Listas */

.c-list {
	overflow: hidden;
	width: 100%;
}
.c-list li {
	font-size: 1.5rem;
	margin: 0 0 1rem;
	position: relative;
}

.c-list li:last-child {
	margin-bottom: 0;
}

.c-list--points li {
	padding: 0 0 0 2.2rem;
}
.c-list--points li::before {
	background-color: var(--color-primary);
	-webkit-border-radius: 50%;
	-moz-border-radius: 50%;
	border-radius: 50%;
	content: '';
	display: block;
	height: 0.6rem;
	left: 0;
	position: absolute;
	top: 0.6rem;
	width: 0.6rem;
}

.c-list--points ul, .c-list--letters ul {margin-top: 1.2rem;}
.c-list--points ul li::before {
	background-color: #FFF;
	border: 0.1rem solid var(--color-primary);
}

.c-list--letters li {
	padding: 0 0 0 1.5rem;
}
.c-list--letters li span {
	color: var(--color-primary);
    font-weight: bold;
    left: 0;
    line-height: 1.2;
    position: absolute;
    top: 0;
}

/* --------------- */

/* 3.3 Colores */

.c-color--red {color: #d52b1e;}

/* --------------- */

/* 3.4 Enlaces */

.c-link--mailto {
	color: var(--color-primary);
	font-weight: bold;
}
.c-link--mailto:hover {
	color: var(--color-secondary);
}

.c-link--table {
	color: var(--color-primary);
	font-weight: 600;
}
.c-link--table:hover {
	color: var(--color-secondary);
}

.c-link--back {
	color: var(--color-primary);
	font-size: 1.6rem;
	font-weight: 700;
}
  
.c-link--back:hover {
	color: var(--color-secondary);
}
  
.c-link--back::before {
	border: solid var(--color-primary);
	border-width: 0 0.2rem 0.2rem 0;
	content: '';
	display: inline-block;
	margin-right: 1rem;
	padding: 0.3rem;
	transform: rotate(135deg);
	-webkit-transform: rotate(135deg);
	vertical-align: middle;
}
  
.c-link--back:hover::before {
	border: solid var(--color-secondary);
	border-width: 0 0.2rem 0.2rem 0;
}
  
.c-link--back span {
	display: inline-block;
	line-height: 1;
	vertical-align: middle;
}

/* --------------- */

/* 3.5 Tablas */

.c-table thead th {
	font-size: 1.5rem;
	letter-spacing: 0.4rem;
	padding: 1rem 0.5rem;
	text-transform: uppercase;
}
.c-table thead th, .c-table tbody td {
	vertical-align: middle;
}
.c-table tbody td {font-size: 1.4rem;padding: 1.2rem 0.5rem;}
.c-table__center {text-align: center;}
.c-table__left {text-align: left;}
.c-table__right {text-align: right;}

.c-table .c-table__links a {margin-right: 1rem;}
.c-table .c-table__links a:last-child {margin-right: 0;}

/* 3.10 Loading */

.c-loading {
    background-color: rgba(0,0,0,0.8);
    display: none;
    height: 100%;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    left: 0;
    position: fixed;
    top: 0;
    width:100%;
    z-index: 1100;
}

.c-loading > div {margin: auto;}

.lds-ellipsis {
  display: inline-block;
  position: relative;
  width: 80px;
  height: 80px;
}
.lds-ellipsis div {
  position: absolute;
  top: 33px;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: var(--color-secondary);
  -webkit-animation-timing-function: cubic-bezier(0, 1, 1, 0);
          animation-timing-function: cubic-bezier(0, 1, 1, 0);
}
.lds-ellipsis div:nth-child(1) {
  left: 8px;
  -webkit-animation: lds-ellipsis1 0.6s infinite;
          animation: lds-ellipsis1 0.6s infinite;
}
.lds-ellipsis div:nth-child(2) {
  left: 8px;
  -webkit-animation: lds-ellipsis2 0.6s infinite;
          animation: lds-ellipsis2 0.6s infinite;
}
.lds-ellipsis div:nth-child(3) {
  left: 32px;
  -webkit-animation: lds-ellipsis2 0.6s infinite;
          animation: lds-ellipsis2 0.6s infinite;
}
.lds-ellipsis div:nth-child(4) {
  left: 56px;
  -webkit-animation: lds-ellipsis3 0.6s infinite;
          animation: lds-ellipsis3 0.6s infinite;
}
@-webkit-keyframes lds-ellipsis1 {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
@keyframes lds-ellipsis1 {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
@-webkit-keyframes lds-ellipsis3 {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  100% {
    -webkit-transform: scale(0);
            transform: scale(0);
  }
}
@keyframes lds-ellipsis3 {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  100% {
    -webkit-transform: scale(0);
            transform: scale(0);
  }
}
@-webkit-keyframes lds-ellipsis2 {
  0% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
  }
  100% {
    -webkit-transform: translate(24px, 0);
            transform: translate(24px, 0);
  }
}
@keyframes lds-ellipsis2 {
  0% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
  }
  100% {
    -webkit-transform: translate(24px, 0);
            transform: translate(24px, 0);
  }
}

/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

/** 5. Base */

/* 5.1 Body fixed */

.body--fixed {
	overflow: hidden;
}
  
.body--fixed .c-button__mobile { background-color: #fff; }
  
.body--fixed .l-menu {
	-webkit-box-align: self-start;
	-ms-flex-align: self-start;
	align-items: self-start;
	background-color: rgba(255, 255, 255, 0.96);
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-flow: column;
	flex-flow: column;
	height: calc(100% - 6.4rem);
	left: 0;
	margin: 0;
	overflow-y: auto;
	padding: 0;
	position: fixed;
	top: 6.2rem;
	width: 100%;
	z-index: 1000;
}
  
.body--fixed .l-menu ul,
.body--fixed .navbar-collapse {
	text-align: left;
	width: 100%;
}
  
.body--fixed .l-menu li {
	margin: 0;
	padding: 0;
	width: 100%;
}
  
.body--fixed .l-menu ul li a {
	border-bottom: 0.1rem solid #ccc;
	padding: 1.8rem;
}
  
.body--fixed .c-button__mobile button span {
	background-color: rgba(0, 0, 0, 0);
	-webkit-transition-delay: 0.2s;
	transition-delay: 0.2s;
}
  
.body--fixed .c-button__mobile button span::before {
	margin-top: 0;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
	-webkit-transition-delay: 0s, 0.2s;
	transition-delay: 0s, 0.2s;
}
  
.body--fixed .c-button__mobile button span::after {
	margin-top: 0;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
	-webkit-transition-delay: 0s, 0.2s;
	transition-delay: 0s, 0.2s;
}
  
.body--fixed .l-footer { display: none; }

/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

.badge {
    display: inline-block;
    min-width: 10px;
    padding: 3px 7px;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
    background-color: #777;
    border-radius: 10px;
}

.badge.badge-success {
    background-color: #0a800a;
}

.badge.badge-important {
    background-color: #ff0000;
}

/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

/* Cookies */

#cookie-law {background-color: rgba(0, 0, 0, 0.95);position: absolute;width: 100%;bottom: 0;z-index: 999;color: #fff;padding: 2rem;}
.text-cookie-banner {width: 90%;}
.text-cookie-banner p {color: #FFF;line-height: 1.4;}
.text-cookie-banner p a {color: #FFF;font-weight: bold;text-decoration: underline;}
.text-cookie-banner p a:hover {color: #d52b1e;}
.close-cookie-banner {position: absolute;right: 2rem;top: 2rem;}
.close-cookie-banner a {color: #FFF;font-size: 2rem;}
.close-cookie-banner a:hover {color: #d52b1e;text-decoration: none;}