@import url("https://fonts.googleapis.com/css?family=Lato:700,300,300italic");
*, a:focus {
  outline: none !important;
}

html {
  font-size: 100%;
  font-weight: 400;
  overflow-x: hidden;
}

td.collapsed, th.collapsed {
  white-space: nowrap;
  width: 1px;
}

.cms_componente_gutter {
  margin-top: 40px;
}

@media (min-width: 992px) {
  .cms_componente_gutter_lg_none {
    margin-top: 0 !important;
  }
}
.text-right {
  text-align: right;
}

.list-inline-separator .list-inline-item {
  margin-right: 0;
}
.list-inline-separator .list-inline-item:not(:last-child):after {
  content: "|";
  position: relative;
  top: 0;
  color: #212529;
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}

.big {
  font-size: 1.25rem;
}

@media (min-width: 576px) and (max-width: 767.98px) {
  .hidden-sm {
    display: none;
  }
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .hidden-md {
    display: none;
  }
}
@media (min-width: 992px) and (max-width: 1199.98px) {
  .hidden-lg {
    display: none;
  }
}
@media (min-width: 1200px) and (max-width: 1399.98px) {
  .hidden-xl {
    display: none;
  }
}
@media (min-width: 1400px) {
  .hidden-xxl {
    display: none;
  }
}
.cms_texto_html p:last-child {
  margin-bottom: 0;
}

.card-text p:last-child {
  margin-bottom: 0;
}

.card-body > .cms_componente_gutter {
  margin-top: 1rem;
}

.card-body > .cms_componente_gutter:first-child {
  margin-top: 0;
}

/** Quita la card del interior de otra card **/
.card-body-fake .card {
  border: 0;
}
.card-body-fake .card-body, .card-body-fake .card-footer {
  margin-left: -1rem;
  margin-right: -1rem;
}
.card-body-fake .card-footer {
  margin-top: -1rem;
  margin-bottom: -1rem;
}

.cms_matriz_2p_1g .cms_matriz_item .cms_componente_gutter:first-child, .cms_matriz_1g_2p .cms_matriz_item .cms_componente_gutter:first-child {
  margin-top: 0;
}

.cms_footer_bottom li {
  margin-bottom: 10px;
}
.cms_footer_bottom .btn {
  margin-top: 10px;
}

.cms_hx_separator {
  text-align: center;
}
.cms_hx_separator > * {
  display: inline-block;
  font-size: 1.25rem;
  position: relative;
  text-transform: uppercase;
  color: #6c757d;
}
.cms_hx_separator > *:after, .cms_hx_separator > *:before {
  border-bottom: 3px solid #6c757d;
  content: "";
  display: inline-block;
  position: absolute;
  top: 10px;
}
@media (min-width: 576px) and (max-width: 991.98px) {
  .cms_hx_separator > *:after, .cms_hx_separator > *:before {
    width: 10px;
  }
  .cms_hx_separator > *:before {
    left: -30px;
  }
  .cms_hx_separator > *:after {
    right: -30px;
  }
}
@media (min-width: 992px) {
  .cms_hx_separator > *:after, .cms_hx_separator > *:before {
    width: 80px;
  }
  .cms_hx_separator > *:before {
    left: -100px;
  }
  .cms_hx_separator > *:after {
    right: -100px;
  }
}

.cms_sidebar .cms_hx_separator > *:after, .cms_sidebar .cms_hx_separator > *:before {
  width: 10px;
}
.cms_sidebar .cms_hx_separator > *:before {
  left: -30px;
}
.cms_sidebar .cms_hx_separator > *:after {
  right: -30px;
}

.btn-banner {
  font-size: 1.25rem;
  white-space: normal !important;
}
.btn-banner > .icono {
  font-size: 1.5rem;
}

.label-circular {
  width: 40px;
  height: 40px;
  line-height: 35px;
  text-align: center;
  border-radius: 50%;
  background-color: transparent;
  color: #2f69b3;
  display: inline-block;
  border: 2px solid #2f69b3;
}

.cms_circled_banner {
  text-align: center;
}
.cms_circled_banner > .icono {
  border: 8px solid rgb(171.8, 195, 224.6);
  border-radius: 50%;
  height: 125px;
  position: relative;
  transition: all 0.2s ease-in-out;
  width: 125px;
  margin: 0 auto;
  background-color: #fff;
}
.cms_circled_banner > .icono span {
  border-radius: 50%;
  bottom: 0;
  display: block;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
  height: 100%;
  width: 100%;
  background-repeat: no-repeat;
  background-position: center center;
}
.cms_circled_banner:hover > .icono {
  border-color: #2f69b3;
}
.cms_circled_banner a {
  text-decoration: none !important;
}

.cms_html_banner {
  border-radius: 0.375rem;
  background-repeat: no-repeat;
  opacity: 0.9;
  text-decoration: none !important;
}
.cms_html_banner:hover {
  opacity: 1;
}
.cms_html_banner .icono-right {
  order: 2;
}
.cms_html_banner > span {
  color: #ced4da;
}

.cms_tree_view ul {
  margin: 0 0 0 0.1em; /* indentation */
  padding: 0;
  list-style: none;
  position: relative;
}
.cms_tree_view > ul {
  margin: 0;
}
.cms_tree_view > ul ul {
  padding-top: 0.2rem;
  padding-bottom: 1rem;
}
.cms_tree_view li.active > a {
  font-weight: bold;
}

.cms_tree_view_btn span::before {
  content: "\f068";
}

.cms_tree_view_btn.collapsed span::before {
  content: "+";
}

.cms_faq_item .numero {
  border-radius: 50%;
  background-color: rgb(171.8, 195, 224.6);
  color: white;
  width: 29px;
  height: 29px;
  display: block;
  text-align: center;
  line-height: 29px;
}
.cms_faq_item .icono {
  color: rgb(171.8, 195, 224.6);
  transition: all 0.2s ease-in-out;
}
.cms_faq_item > a {
  border-bottom: 4px solid rgb(171.8, 195, 224.6);
  text-decoration: none;
  color: #212529;
}
.cms_faq_item > a:hover, .cms_faq_item a:not(.collapsed) {
  color: #2f69b3;
}
.cms_faq_item > a:hover .icono, .cms_faq_item a:not(.collapsed) .icono {
  color: #2f69b3;
}
.cms_faq_item > a:hover .numero, .cms_faq_item a:not(.collapsed) .numero {
  background-color: #2f69b3;
}

.cms_faq_item a[aria-expanded=true] .icono {
  transform: rotate(180deg);
}

.cms_date_squared {
  border-radius: 0.375rem;
  border: 1px solid rgb(171.8, 195, 224.6);
  overflow: hidden;
  padding: 0px 0 5px;
  text-align: center;
  min-width: 46px;
  color: white;
  background-color: rgb(171.8, 195, 224.6);
}
.cms_date_squared .day {
  font-size: 1.5rem;
  display: block;
  margin-bottom: 3px;
}
.cms_date_squared .month {
  font-size: 0.875rem;
  text-transform: uppercase;
  display: block;
}

.cms_sidebar .cms_date_squared {
  margin-right: 10px;
  padding: 3px 0 4px;
}
.cms_sidebar .cms_date_squared > .day {
  font-size: 1.3125rem;
}
.cms_sidebar .cms_date_squared > .month {
  font-size: 0.765625rem;
}

.cms_tag_group {
  margin-bottom: -5px;
}
.cms_tag_group > * {
  margin-bottom: 5px;
  margin-right: 4px;
}

.cms_tags_menu {
  margin-top: 1rem;
}
.cms_tags_menu .btn {
  margin-bottom: 5px;
}

.cms_tag_menu_btn .icono {
  transition: all 0.2s ease-in-out;
}
.cms_tag_menu_btn[aria-expanded=true] .icono {
  transform: rotate(90deg);
}

.cms_ev_list_evento .card-img-top img {
  width: 100%;
  border-radius: 0.375rem 0.375rem 0 0;
}

.cms_ev_menu_horizontal {
  border-bottom: 4px solid rgb(213.4, 225, 239.8);
  margin-bottom: 40px;
  justify-content: stretch;
}
.cms_ev_menu_horizontal a, .cms_ev_menu_horizontal span {
  flex: 1 1 0;
  white-space: nowrap;
  padding: 10px 10px 15px 10px;
  color: #212529;
  text-decoration: none;
  display: block;
  text-align: center;
  margin-bottom: -4px;
}
.cms_ev_menu_horizontal a:hover, .cms_ev_menu_horizontal span:hover {
  color: #000;
}
.cms_ev_menu_horizontal a {
  border-bottom: 4px solid rgb(213.4, 225, 239.8);
}
.cms_ev_menu_horizontal a:hover {
  transition: all 0.2s ease-in-out;
  border-color: #2f69b3;
}
.cms_ev_menu_horizontal .activo {
  font-size: 1.3rem;
  font-weight: bolder;
  border-bottom: 4px solid #2f69b3;
}

@media (max-width: 575.98px) {
  .cms_ev_menu_horizontal *:first-child {
    display: none;
  }
  .cms_ev_menu_horizontal *:last-child {
    display: none;
  }
}
.cms_ev_complementos {
  padding-left: 0;
  list-style: none;
  margin-bottom: -0.5rem;
}
.cms_ev_complementos li {
  display: inline-block;
  margin-bottom: 0.5rem;
}
.cms_ev_complementos li:not(:last-child) {
  margin-right: 0.5rem;
}

.cms_ev_list_fecha time {
  border-radius: 0.375rem;
  border-style: solid;
  border-width: 1px;
  min-width: 65px;
}
.cms_ev_list_fecha .day {
  font-size: 1.5rem;
  display: block;
}
.cms_ev_list_fecha .month {
  font-size: 0.875rem;
  font-variant: small-caps;
}

.cms_calendario_widget {
  margin-bottom: 4px;
}
.cms_calendario_widget td, .cms_calendario_widget th, .cms_calendario_widget tr {
  border: 1px solid rgb(213.4, 225, 239.8);
  text-align: center;
}
.cms_calendario_widget th {
  border: 1px solid rgb(213.4, 225, 239.8);
  background-color: #e9ecef;
  width: 60px;
  height: 60px;
  font-weight: normal;
}
.cms_calendario_widget td {
  width: 60px;
  height: 60px;
  background-color: white;
  vertical-align: top !important;
}
.cms_calendario_widget .evento {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  margin: 1px;
  display: block;
}
.cms_calendario_widget .eventos {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 3px;
}
.cms_calendario_widget .dia-nombre {
  display: block;
  margin: 3px 0 2px 0;
  color: gray;
  user-select: none;
  font-size: 0.875rem;
}
.cms_calendario_widget .dia.interativo:hover {
  background-color: rgb(130.2, 165, 209.4);
}
.cms_calendario_widget .dia.interativo:hover .dia-nombre {
  color: white;
}
.cms_calendario_widget .dia.hoy {
  background-color: rgb(213.4, 225, 239.8);
}
.cms_calendario_widget .dia.activo {
  background-color: rgb(213.4, 225, 239.8);
}
.cms_calendario_widget .dia.activo .dia-nombre {
  color: #212529;
}
.cms_calendario_widget .disabled {
  background-color: #f8f9fa;
}

.cms_ev_calendario_menu_titulo,
.cms_ev_calendario_eventos_titulo {
  text-align: center;
  padding: 1rem 1rem;
  margin-bottom: 1rem;
  border: 1px solid rgb(213.4, 225, 239.8);
  border-radius: 0.375rem;
}

.cms_ev_calendario_horario {
  border-radius: 0.375rem;
  border-style: solid;
  border-width: 1px;
  min-width: 65px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  width: 65px;
  min-height: 75px;
  color: white;
}
.cms_ev_calendario_horario time, .cms_ev_calendario_horario .todo_el_dia {
  font-weight: bolder;
}
.cms_ev_calendario_horario .todo_el_dia {
  transform: rotate(-45deg);
}

@media (max-width: 575.98px) {
  .cms_calendario_widget td, .cms_calendario_widget th {
    width: calc(14.2857142857vw - 2px);
    height: 14.2857142857vw;
  }
  .cms_calendario_widget .evento {
    width: 7px;
    height: 7px;
  }
}
.cms_blog_widget .card-img-top img {
  width: 100%;
  border-radius: 0.375rem 0.375rem 0 0;
}

.cms_star_widgets {
  height: 25px;
}

.cms_star_widgets.clickable .cms_star_widget {
  cursor: pointer;
}

.cms_star_widget {
  width: 20px;
  height: 25px;
  display: inline-block;
}
.cms_star_widget .ft {
  display: inline-block;
  width: 20px;
  overflow: hidden;
  z-index: 10;
  position: absolute;
}
.cms_star_widget .ft > * {
  color: #ffd500;
}
.cms_star_widget .bg {
  display: inline-block;
  width: 20px;
  overflow: hidden;
  z-index: 1;
  position: absolute;
}
.cms_star_widget .bg > * {
  color: #e9ecef;
}

.cms_star_widget.p0 .ft {
  width: 0px;
}

.cms_star_widget.p25 .ft {
  width: 5px;
}

.cms_star_widget.p50 .ft {
  width: 10px;
}

.cms_star_widget.p75 .ft {
  width: 15px;
}

.cms_star_widget.p100 .ft {
  width: 20px;
}

.cms_star_widget.hover .ft {
  width: 20px;
}
.cms_star_widget.hover .ft > * {
  color: #2f69b3;
}

.cms_blog_barra {
  border-bottom: 4px solid rgb(171.8, 195, 224.6);
}

.cms_news_widget .card-img-top img {
  width: 100%;
  border-radius: 0.375rem 0.375rem 0 0;
}

.cms_ficha_persona_cv img {
  width: 150px;
}
.cms_ficha_persona_cv .cms_ficha_persona_iconos a {
  text-decoration: none !important;
}

/* The intrinsic width of the underline stroke (in pixels). This is 
   * the same as the height of the cap images. Don't specify the
   * units! This is because of some of the calculations we do later on. */
/* The actual width of the underline stroke we want to render (in pixels).
 * You can modify this, and the sizing and positioning should be calculated
 * accordingly. Again, Don't specify the units! */
/* We need to know the width of the cap images so that we
 * can position everything on the x axis accordingly. */
/* The border is positioned relative to the bottom of the line.
 * We can move it upwards a little to create an overlap effect. */
/* The padding to add to the x axis. By default, the caps would be
 * aligned with the beginning and end of the line. */
* {
  font-family: "Lato", serif;
}

.cms_texto_html {
  text-align: justify;
}

.btn-primary {
  color: #EEE;
}
.btn-primary:hover {
  color: white;
}

.cms_logo img, img.cms_logo {
  max-width: 250px;
}

@media (max-width: 767.98px) {
  .cms_logo img, img.cms_logo {
    max-width: 175px;
  }
}
.cms_header {
  background-color: #2f69b3;
}
.cms_header .btn {
  background-color: #fff;
  border-radius: 50%;
  color: #f39daa;
  border-color: #fff;
  border-width: 2px;
  transition: 0.5s ease-out;
  width: 48px;
  height: 48px;
  line-height: 33px;
  text-align: center;
}
.cms_header .btn:hover {
  background-color: #f39daa;
  color: #fff;
}

.cms_header_middle {
  padding-bottom: 25px;
  padding-top: 25px;
}
.cms_header_middle .cms_lang_links a {
  position: relative;
  text-decoration: none;
  color: white;
}
.cms_header_middle .cms_lang_links a::before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 2px;
  bottom: -2px;
  left: 0;
  background-color: #fff;
  transform: scaleX(0);
  transition: transform 0.3s ease;
  border-radius: 0.375rem;
}
.cms_header_middle .cms_lang_links a:hover::before {
  transform: scaleX(1);
}

.cms_header_bottom .cms_lang_links a {
  position: relative;
  text-decoration: none;
  color: white;
}
.cms_header_bottom .cms_lang_links a::before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 2px;
  bottom: -2px;
  left: 0;
  background-color: #fff;
  transform: scaleX(0);
  transition: transform 0.3s ease;
  border-radius: 0.375rem;
}
.cms_header_bottom .cms_lang_links a:hover::before {
  transform: scaleX(1);
}

.cms_header_bottom {
  padding-top: 0;
}

.navbar-toggler .icon-bar {
  border-top: 4px solid #fff;
  width: 30px;
  margin: 7px 0;
  display: block;
  border-radius: 0.375rem;
  transition: 0.2s ease-in-out;
}
.navbar-toggler:hover .icon-bar {
  border-top-color: #f39daa;
}

.cms_main {
  padding-top: 40px;
  padding-bottom: 20px;
}

h1 {
  color: #2f69b3;
}
h1 .cms_subtitulo {
  color: #6c757d;
  font-size: 1.25rem;
}
h1 .link-danger, h1 .link-danger .cms_subtitulo {
  transition: 0.2s ease-in-out;
}
h1 .link-danger:hover, h1 .link-danger:hover .cms_subtitulo {
  color: #dc3545 !important;
}

h2, h3, h4, h5, h6 {
  color: #2f69b3;
}

.cms_pagina h1:after, .cms_plantilla h1:after, .cms_sitemap h1:after, .cms_blog h1 .h1-main:after, .cms_eventos h1 .h1-main:after, .cms_noticias h1 .h1-main:after {
  display: block;
  content: "";
  width: 70%;
  height: 8px;
  margin-top: 2px;
  background-color: #ffd500;
}

.cms_contents {
  margin-top: 0;
}
.cms_contents a {
  text-decoration: none;
}
.cms_contents a:not(.btn):hover {
  text-decoration: underline;
}

.cms_homepage .cms_contents {
  margin-top: -40px;
}

.breadcrumb {
  margin-top: 0;
  margin-bottom: 0.5rem !important;
  color: #6c757d;
}
.breadcrumb .fas, .breadcrumb .fa {
  color: #6c757d;
}
.breadcrumb .fas:hover, .breadcrumb a:hover {
  color: #212529;
}

@media (max-width: 767.98px) {
  .cms_contents {
    margin-top: 0 !important;
  }
}
.cms_contents .card .card-img-top {
  overflow: hidden;
}
.cms_contents .card .card-img-top img {
  transform: scale(1);
  transition: 0.3s ease-in-out;
}
.cms_contents .card:hover .card-img-top img {
  transform: rotate(-1deg) scale(1.1);
}

.cms_footer {
  padding-top: 40px;
  padding-bottom: 40px;
  margin-top: 100px;
  background-color: #2f69b3;
}

.cms_footer {
  color: #f8f9fa;
}
.cms_footer h2 {
  color: #f8f9fa;
}
.cms_footer a:not(.btn) {
  color: #f8f9fa;
  position: relative;
  text-decoration: none;
}
.cms_footer a:not(.btn)::before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 2px;
  bottom: -2px;
  left: 0;
  background-color: #f8f9fa;
  transform: scaleX(0);
  transition: transform 0.3s ease;
  border-radius: 0.375rem;
}
.cms_footer a:not(.btn):hover::before {
  transform: scaleX(1);
}
.cms_footer .btn {
  background-color: #f8f9fa;
  border-radius: 50%;
  color: #2f69b3;
  border-color: #f8f9fa;
  border-width: 2px;
  transition: 0.5s ease-out;
  width: 48px;
  height: 48px;
  line-height: 33px;
  text-align: center;
}
.cms_footer .btn:hover {
  background-color: #2f69b3;
  color: #f8f9fa;
}
.cms_footer .bg {
  background-color: #2f69b3;
}

.navbar-custom {
  padding: 0;
  font-size: 1.2rem;
  font-weight: bolder;
}
.navbar-custom .navbar-nav {
  background-color: #2db56a;
}
.navbar-custom .navbar-nav .nav-item {
  padding: 0 5px;
}
.navbar-custom .navbar-nav .dropdown-menu {
  margin: 0 5px;
}
.navbar-custom .navbar-nav .nav-link {
  padding: 15px 15px;
  color: #fff;
}
.navbar-custom .navbar-nav .nav-link:hover, .navbar-custom .navbar-nav .nav-link:focus {
  color: #2db56a;
  background-color: #fff;
}
.navbar-custom .navbar-nav .nav-link.disabled {
  color: rgba(0, 0, 0, 0.3);
}
.navbar-custom .navbar-nav .show > .nav-link,
.navbar-custom .navbar-nav .nav-link.active {
  color: #2f69b3;
  background-color: #fff;
}
.navbar-custom .navbar-nav .dropdown-menu {
  border: 0;
  background-color: #2db56a;
  border-radius: 0;
}
.navbar-custom .navbar-nav .dropdown-menu .dropdown-item {
  font-size: 1.1rem;
  color: white !important;
  font-weight: bolder;
}
.navbar-custom .navbar-nav .dropdown-menu .dropdown-item:not(.active):hover {
  color: #2db56a !important;
  background-color: white;
}
.navbar-custom .navbar-toggler {
  color: rgba(0, 0, 0, 0.55);
  border-color: rgba(0, 0, 0, 0.1);
}
.navbar-custom .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.navbar-custom .navbar-text {
  color: rgba(0, 0, 0, 0.55);
}
.navbar-custom .navbar-text a,
.navbar-custom .navbar-text a:hover,
.navbar-custom .navbar-text a:focus {
  color: rgba(0, 0, 0, 0.9);
}
@media (min-width: 1200px) {
  .navbar-custom .navbar-nav {
    margin-left: -15px;
    margin-right: -15px;
  }
}
@media (max-width: 1199.98px) {
  .navbar-custom .offcanvas {
    background-color: #2db56a;
  }
  .navbar-custom .navbar-nav .dropdown-menu {
    background-color: white;
  }
  .navbar-custom .navbar-nav .dropdown-menu .dropdown-item {
    color: #2db56a !important;
  }
  .navbar-custom .navbar-nav .dropdown-menu .dropdown-item:not(.active):hover {
    background-color: #2db56a !important;
    color: white !important;
  }
}

.cms_sidebar .fs-5 {
  font-size: 1rem !important;
}

#uib_empresas_cards .card-title a {
  text-decoration: none !important;
}
#uib_empresas_cards .card-title:after {
  display: block;
  content: "";
  width: 70%;
  height: 8px;
  margin-top: 2px;
  background-color: #ffd500;
}
