/*
 * Cibcom · estilos de la web y del editor de bloques.
 *
 * Reproduce lo que pintaban Bridge 13, bridge-child y WPBakery en 2019, a partir de las reglas
 * que de verdad usaba la web (02_entorno-docker/comparador/salida/css-usado-bridge-wpbakery.css).
 * La cabecera y el pie conservan las clases de Bridge; el contenido son bloques con clases «cb-»:
 *
 *   Grupo  .cb-fila / .cb-fila-interior   fila de WPBakery (--rejilla: centrada a 1100 px; --completa: a todo el ancho)
 *   Grupo  .cb-columna                    fila de una sola columna
 *   Columnas / Columna                    varias columnas (anchura en el bloque, como 1/2, 1/3…)
 *   Grupo  .cb-texto                      «Texto» de WPBakery
 *   .cb-solo-escritorio / .cb-solo-movil  lo que se ve solo a partir de 768 px o solo por debajo
 *
 * El mismo archivo se carga en el editor (add_editor_style): lo que se ve al editar es lo que se publica.
 */

/* ===== 1. Fuentes (en el tema: sin peticiones a Google) ===== */

@font-face {
	font-family: 'HelveticaNeue';
	src: url('../fonts/HelveticaNeueRegular.woff2') format('woff2'), url('../fonts/HelveticaNeueRegular.woff') format('woff');
	font-weight: 100;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'HelveticaNeue';
	src: url('../fonts/HelveticaNeueRoman.woff2') format('woff2'), url('../fonts/HelveticaNeueRoman.woff') format('woff');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'HelveticaNeue';
	src: url('../fonts/HelveticaNeueMedium.woff2') format('woff2'), url('../fonts/HelveticaNeueMedium.woff') format('woff');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
/* La «helvetica» de Use Any Font (2019): la usan los títulos de Portfolio («Helvetica»). */
@font-face {
	font-family: 'helvetica';
	font-style: normal;
	src: local('helvetica'), url('../fonts/helvetica-uaf.woff') format('woff');
	font-display: swap;
}
/* Dosis (menú) y Raleway (campos de los formularios), las de Google Fonts que cargaba Bridge. */
@font-face {
	font-family: 'Dosis';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('../fonts/dosis-500-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Dosis';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('../fonts/dosis-500-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Raleway';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('../fonts/raleway-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Raleway';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('../fonts/raleway-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ===== 2. Base ===== */

:root {
	--cb-verde: #53bbad;
	--cb-gris-oscuro: #575756;
	--cb-texto: #818181;
	/* Ancho de la rejilla de Bridge (.container_inner y .grid_section .section_inner) y margen de las columnas. */
	--cb-rejilla: 1100px;
	--cb-margen: 15px;
}
@media only screen and (max-width: 1200px) { :root { --cb-rejilla: 950px; } }
@media only screen and (max-width: 1000px) { :root { --cb-rejilla: 768px; } }
@media only screen and (max-width: 768px) { :root { --cb-rejilla: 600px; } }
@media only screen and (max-width: 600px) { :root { --cb-rejilla: 420px; } }
@media only screen and (max-width: 480px) { :root { --cb-rejilla: 300px; } }
@media only screen and (max-width: 350px) { :root { --cb-rejilla: 95%; --cb-margen: 0px; } }

a, b, body, div, em, figure, font, form, h1, h2, h3, h4, h5, h6, html, i, iframe, li, ol, p, span, strong, ul {
	background: 0 0;
	border: 0;
	margin: 0;
	padding: 0;
	vertical-align: baseline;
	outline: 0;
}
html { height: 100%; margin: 0 !important; }
body {
	font-family: 'HelveticaNeue-Light', Arial, sans-serif !important;
	font-size: 16px;
	line-height: 19px;
	color: #818181;
	font-weight: 400;
	letter-spacing: .5px;
	background-color: #fff;
	overflow-y: scroll;
	overflow-x: hidden !important;
	-webkit-font-smoothing: antialiased;
}
::selection { background: #1abc9c; color: #fff; }
footer, header, nav, section { display: block; }
img { max-width: 100%; height: auto; }
a img { border: none; }
.clearfix::after, .clearfix::before { content: " "; display: table; }
.clearfix::after { clear: both; }

a, p a { color: #fff; text-decoration: none; cursor: pointer; }
a:hover, p a:hover { color: #e2e2e2; text-decoration: none; }

h1 {
	font-family: 'HelveticaNeue', Arial, sans-serif !important;
	color: #53bbad;
	font-size: 30px;
	line-height: 50px;
	font-weight: 700;
	text-transform: none;
}
h2 {
	font-family: 'HelveticaNeue', Arial, sans-serif !important;
	color: #575756;
	font-size: 20px;
	line-height: 24px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: none;
}
h3 {
	font-family: 'HelveticaNeue', Arial, sans-serif !important;
	color: #53bbad;
	font-size: 28px;
	line-height: 30px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: none;
}
h4 {
	font-family: 'HelveticaNeue', Arial, sans-serif !important;
	color: #fff;
	font-size: 24px;
	line-height: 26px;
	font-weight: 500;
	letter-spacing: .5px;
	text-transform: none;
}
h5 {
	color: #303030;
	font-size: 15px;
	line-height: 1.57143em;
	font-weight: 600;
	letter-spacing: 1px;
	text-transform: uppercase;
}
.has-text-align-left { text-align: left; }
.has-text-align-center { text-align: center; }
.has-text-align-right { text-align: right; }
.has-text-align-justify { text-align: justify; }

ul { list-style-position: inside; }
ul ul { padding: 0 0 0 15px; }
.cb-sin-vinetas > li { list-style-type: none; }

/* ===== 3. Estructura: cabecera fija, menú y pie (mismas clases que Bridge) ===== */

.wrapper {
	background-color: #fff;
	position: relative;
	z-index: 1000;
	left: 0;
}
.wrapper_inner { width: 100%; overflow: hidden; }
.container, .content, .full_width { z-index: 100; position: relative; }
.content, .full_width, .content .container { background-color: #fff; }
.content { margin-top: 0; }
.content.content_top_margin { margin-top: 100px !important; }
.container { padding: 0; width: 100%; }
.container_inner { width: var(--cb-rejilla); margin: 0 auto; position: relative; }
.content .container .container_inner { padding: 0; }
.content .container .container_inner.page_container_inner { padding: 30px 0 0; }

header {
	width: 100%;
	display: inline-block;
	margin: 0;
	vertical-align: middle;
	position: relative;
	z-index: 110;
	-webkit-backface-visibility: hidden;
}
header.fixed {
	width: 100%;
	position: fixed;
	z-index: 110;
	top: 0;
	left: 0;
}
.header_top_bottom_holder { position: relative; }
.header_bottom {
	position: relative;
	padding: 0 45px;
	background-color: #fff;
	transition: all .2s ease 0s;
}
.header_bottom .container_inner { position: relative; }
header .container_inner .header_inner_left { position: absolute; left: 0; top: 0; }
.header_inner_right { float: right; position: relative; z-index: 110; }
.side_menu_button_wrapper { display: table; }
.side_menu_button { cursor: pointer; display: table-cell; vertical-align: middle; height: var(--cb-cabecera, 100px); position: relative; }

/* Logotipo: centrado en la altura de la cabecera, que encoge al bajar (--cb-cabecera, assets/js/cibcom.js). */
.logo_wrapper { height: var(--cb-cabecera, 100px); float: left; }
.q_logo { position: relative; top: 50%; left: 0; }
.q_logo a { position: relative; display: block; height: 60px; }
.q_logo img {
	display: block;
	position: absolute;
	top: -50%;
	height: 100%;
	max-width: none;
	width: auto !important;
}

/* Menú principal */
nav.main_menu { position: absolute; left: 50%; z-index: 100; text-align: left; }
nav.main_menu.right { position: relative; left: auto; float: right; margin-top: 16px; }
nav.main_menu ul { list-style: none; margin: 0; padding: 0; }
nav.main_menu > ul { left: -50%; position: relative; }
nav.main_menu.right > ul { left: auto; }
nav.main_menu ul li { display: inline-block; float: left; padding: 0; margin: 0; }
nav.main_menu ul li a {
	display: inline-block;
	position: relative;
	margin: 0;
	padding: 0;
	line-height: var(--cb-cabecera, 100px);
	color: #777;
	font-weight: 400;
	text-decoration: none;
	cursor: pointer;
}
nav.main_menu > ul > li > a {
	height: 100%;
	padding: 0 17px;
	background-color: transparent;
	color: #575756;
	font-family: 'Dosis', sans-serif;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 1px;
	text-transform: uppercase;
	transition: opacity .3s ease-in-out, color .3s ease-in-out;
}
nav.main_menu > ul > li:hover > a { opacity: .8; }
nav.main_menu ul li:hover a,
nav.main_menu ul li.active a { color: #53bbad; }
nav.main_menu > ul > li > a > span { position: relative; display: inline-block; line-height: initial; }

/* Menú de móvil (se despliega con el botón) */
.mobile_menu_button { display: none; float: left; height: 100px; margin: 0 20px 0 0; }
.mobile_menu_button span {
	display: table-cell;
	position: relative;
	width: 19px;
	height: 17px;
	vertical-align: middle;
	font-size: 14px;
	color: #53bbad;
	cursor: pointer;
	z-index: 50;
	transition: opacity .3s;
}
.mobile_menu_button span:hover { opacity: .8; }
.mobile_menu_button svg { display: inline-block; width: 12px; height: 14px; vertical-align: -2px; fill: currentColor; }
nav.mobile_menu, nav.mobile_menu ul { display: none; width: 100%; position: relative; }
nav.mobile_menu {
	float: left;
	top: 0;
	text-align: left;
	overflow: hidden;
	z-index: 100;
	background-color: #fff;
}
nav.mobile_menu ul { list-style: none; padding: 0; margin: 0; }
nav.mobile_menu > ul { margin-bottom: -1px !important; }
nav.mobile_menu ul li { margin: 0; padding: 0; position: relative; border-bottom: 1px solid #eaeaea; }
nav.mobile_menu ul li:last-child { border: 0 !important; }
nav.mobile_menu ul li a {
	display: block;
	position: relative;
	padding: 10px 0;
	color: #888;
	font-size: 13px;
	font-weight: 400;
	line-height: 26px;
	letter-spacing: 0;
	text-transform: uppercase;
	transition: all .2s ease 0s;
	-webkit-tap-highlight-color: transparent;
}
nav.mobile_menu ul li a:hover,
nav.mobile_menu ul li.active > a { color: #1abc9c; }

/* Botón de volver arriba */
#back_to_top {
	position: fixed;
	right: 25px;
	bottom: 65px;
	margin: 0;
	height: auto;
	z-index: 10000;
	color: #cdcdcd;
	opacity: 0;
	visibility: hidden;
	transition: all .3s ease 0s;
	-webkit-backface-visibility: hidden;
}
#back_to_top.on { opacity: 1; visibility: visible; }
#back_to_top > span {
	position: relative;
	display: inline-block;
	vertical-align: middle;
	width: 52px;
	height: 52px;
	line-height: 52px;
	text-align: center;
	text-decoration: none;
	border: 1px solid #53bbad;
	border-radius: 0;
	background: 0 0;
	transition: all .2s ease 0s;
}
#back_to_top:hover > span { background-color: #53bbad; }
#back_to_top svg {
	position: absolute;
	top: 15px;
	left: calc(50% - 10.2143px);
	width: 20.4286px;
	height: 22px;
	fill: #b0b0b0;
	transition: fill .2s ease 0s;
}
#back_to_top:hover svg { fill: #fff; }

/* Pie: cuatro columnas de widgets y los logotipos de certificaciones */
footer { display: block; width: 100%; margin: 0 auto; z-index: 100; position: relative; }
footer .container_inner { position: relative; }
.footer_top_holder { display: block; background-color: #575756; position: relative; }
.footer_top { padding: 40px 0 25px; }
.footer_top, .footer_top p, .footer_top .textwidget {
	color: #fff;
	font-size: 14px;
	font-weight: 300;
	font-style: normal;
	letter-spacing: 1px;
	text-transform: none;
}
.footer_top p { font-family: 'HelveticaNeueMedium', sans-serif; }
.footer_top .textwidget, .footer_top a, .footer_top p { overflow-wrap: break-word; }
.footer_top h5 { color: #fff; margin: 0 0 22px; }
.footer_top .column_inner > div h5, .footer-cibcom h5 { color: #53bbad; }
.footer_top a { color: #fff !important; transition: color .2s ease-in-out; }
.footer_top a:hover { color: #53bbad !important; }
.four_columns { width: 100%; }
.four_columns > .column1, .four_columns > .column2, .four_columns > .column3, .four_columns > .column4 { width: 25%; float: left; }
.four_columns > .column1 > .column_inner { padding: 0 15px 0 0; }
.four_columns > .column2 > .column_inner { padding: 0 10px 0 5px; }
.four_columns > .column3 > .column_inner { padding: 0 5px 0 10px; }
.four_columns > .column4 > .column_inner { padding: 0 0 0 15px; }
.footer_top .four_columns .column2 .column_inner > div { margin: 0 0 0 15px; }
.footer_top .four_columns .column3 .column_inner > div { margin: 0 0 0 10px; }
.footer_top .four_columns .column4 .column_inner > div { margin: 0 0 0 5px; }
.footer-cibcom { margin-left: 27%; margin-top: 55px; }
.footer-cibcom .logos-foot { display: flex; }
.footer-cibcom .wp-image-381 { height: 109px; }
.footer-cibcom .wp-image-386 { width: 120px; height: 120px; }
.footer-cibcom .wp-image-387 { width: 320px; height: 100px; }

@media only screen and (min-width: 1000px) and (max-width: 1200px) {
	.header_bottom .container_inner { width: 100%; }
}
@media only screen and (max-width: 1000px) {
	.header_inner_left, header { margin-bottom: 0; position: relative !important; left: 0 !important; }
	header { display: block; top: 0 !important; margin-top: 0 !important; }
	.content, .content.content_top_margin { margin-top: 0 !important; }
	.header_bottom { background-color: #fff !important; }
	.main_menu { display: none !important; }
	nav.mobile_menu { display: block; }
	nav.mobile_menu > ul { width: 768px; margin: 0 auto; }
	.mobile_menu_button { display: table; }
	.logo_wrapper { display: table; position: absolute; left: 50%; height: 100px !important; }
	.q_logo { display: table-cell; position: relative; top: auto; vertical-align: middle; }
	.q_logo a { left: -50%; width: auto !important; height: 60px !important; }
	.q_logo img { position: relative; top: 0; left: 0; margin: 0 auto; }
	.side_menu_button { height: 100px !important; }
}
@media only screen and (max-width: 768px) {
	.header_bottom .container_inner { max-width: 100%; }
	nav.mobile_menu > ul { width: 600px; }
	.footer-cibcom .logos-foot { display: block; }
	.footer-cibcom { margin-left: 0; margin-top: 0; }
}
@media only screen and (max-width: 600px) {
	nav.mobile_menu > ul { width: 420px; }
	.four_columns .column1, .four_columns .column2, .four_columns .column3, .four_columns .column4 { width: 100%; }
	.four_columns .column1 .column_inner, .four_columns .column2 .column_inner, .four_columns .column3 .column_inner, .four_columns .column4 .column_inner { padding: 0; }
	.footer_top .four_columns .column2 .column_inner > div, .footer_top .four_columns .column3 .column_inner > div, .footer_top .four_columns .column4 .column_inner > div { margin: 0; }
	.footer_top .four_columns .column1, .footer_top .four_columns .column2, .footer_top .four_columns .column3 { margin: 0 0 25px; }
}
@media only screen and (max-width: 480px) {
	.header_bottom, footer .container_inner { padding: 0 25px; }
	.header_bottom .container_inner, footer .container_inner, nav.mobile_menu > ul { width: auto; }
	.footer_top .column_inner > div { margin: 0 0 25px !important; }
}
@media only screen and (max-width: 420px) {
	.header_bottom, footer .container_inner { padding: 0 15px; }
}

/* Hueco del área de título de Bridge (título oculto) en las páginas que la tenían activada. */
.cb-hueco-titulo .content_inner::before { content: ""; display: block; height: 100px; }
@media only screen and (max-width: 1000px) { .cb-hueco-titulo .content_inner::before { height: 60px; } }
@media only screen and (max-width: 768px) { .cb-hueco-titulo .content_inner::before { height: 50px; } }
@media only screen and (max-width: 600px) { .cb-hueco-titulo .content_inner::before { height: 30px; } }

/* ===== 4. Contenido en bloques, con la geometría de WPBakery ===== */

/* Filas: como .vc_row, sobresalen 15 px por cada lado (lo compensan las columnas). */
.cb-fila, .cb-fila-interior { position: relative; margin-left: -15px; margin-right: -15px; }
/* Rejilla: el contenido al ancho de .section_inner (1100 px, 950, 768…) más los 15 px por lado de
   .section_inner_margin. Como en Bridge, se centra si cabe; si no, se pega a la izquierda. */
.cb-fila--rejilla > *, .cb-fila-interior--rejilla > * {
	--cb-ancho: var(--cb-rejilla);
	box-sizing: border-box;
	width: calc(var(--cb-ancho) + 2 * var(--cb-margen));
	margin-left: calc(max(0px, (100% - var(--cb-ancho)) / 2) - var(--cb-margen));
	margin-right: calc(max(0px, (100% - var(--cb-ancho)) / 2) - var(--cb-margen));
}
.cb-alinear-izquierda { text-align: left; }
.cb-alinear-centro { text-align: center; }
.cb-alinear-derecha { text-align: right; }

/* Columnas: el relleno de 15 px de .vc_column-inner (y 1 px de alto mínimo, como .vc_col-sm-*); en móvil, una debajo de otra. */
.cb-columna, .wp-block-column { box-sizing: border-box; min-height: 1px; padding-left: 15px; padding-right: 15px; }
/* (Con !important porque en el editor los estilos de WordPress estiran las columnas a la misma altura.) */
.wp-block-columns { display: flex; flex-wrap: nowrap !important; align-items: flex-start !important; }
.wp-block-column { flex-grow: 0; flex-shrink: 0; min-width: 0; }
.wp-block-column:not([style*="flex-basis"]) { flex: 1 1 0; }

@media (max-width: 767px) {
	.wp-block-columns { display: block; }
	.cb-solo-escritorio { display: none !important; }
}
@media (min-width: 768px) {
	.cb-solo-movil { display: none !important; }
}
@media only screen and (max-width: 768px) {
	/* bridge-child: las filas llevan 15 px de margen interior y la rejilla no pasa del ancho disponible. */
	.cb-fila, .cb-fila-interior { padding-left: 15px; padding-right: 15px; }
	.cb-fila--rejilla > *, .cb-fila-interior--rejilla > * { --cb-ancho: min(var(--cb-rejilla), 100%); }
}

/* Imágenes (Imagen sencilla de WPBakery). Con alineación, WordPress mete la imagen en un
   <div class="wp-block-image"> con la clase de alineación en el <figure>. */
.wp-block-image { margin: 0; }
.wp-block-image img { max-width: 100%; height: auto; vertical-align: middle; }
.wp-block-image.aligncenter, .wp-block-image .aligncenter { text-align: center; margin-left: auto; margin-right: auto; }
.wp-block-image.alignright, .wp-block-image .alignright { text-align: right; }
.max-width-80 img { max-width: 72%; }

/* Separador transparente de Bridge: 1 px de alto y sus márgenes. */
hr.wp-block-separator.cb-separador {
	display: block;
	position: relative;
	height: 1px;
	margin: 10px 0;
	padding: 0;
	border: 0;
	background-color: #eaeaea;
	opacity: 1;
}
hr.wp-block-separator.cb-separador--transparent { background-color: transparent; }

/* Botones de Bridge: «Cibcom» (pequeño) y «Cibcom grande». Se colocan como texto: los alinea la fila. */
.wp-block-buttons { display: block; }
.wp-block-buttons.is-content-justification-left { text-align: left; }
.wp-block-buttons.is-content-justification-center { text-align: center; }
.wp-block-buttons.is-content-justification-right { text-align: right; }
.wp-block-button { display: inline-block; }
.wp-block-button .wp-block-button__link {
	position: relative;
	display: inline-block;
	box-sizing: content-box;
	width: auto;
	height: 30px;
	margin: 0;
	padding: 0 23px;
	border: 1px solid #53bbad;
	border-radius: 4px;
	background-color: transparent;
	color: #53bbad;
	font-family: inherit;
	font-size: 12px;
	font-style: normal;
	font-weight: 700;
	line-height: 30px;
	letter-spacing: 1px;
	text-align: left;
	text-decoration: none;
	text-shadow: none;
	text-transform: none;
	white-space: nowrap;
	cursor: pointer;
	outline: 0;
	transition: color .1s linear, background-color .1s linear, border-color .1s linear;
}
.wp-block-button.is-style-cibcom .wp-block-button__link {
	padding: 0 17px;
	font-weight: 800;
	text-transform: capitalize;
	text-align: center;
}
.wp-block-button.is-style-cibcom .wp-block-button__link:hover { color: #53bbad; border-color: #53bbad; }
.wp-block-button.is-style-cibcom-relleno .wp-block-button__link:hover { background-color: #53bbad !important; border-color: #53bbad; color: #fff; }
.wp-block-button.is-style-cibcom-relleno .wp-block-button__link.has-background:hover { border-color: #fff; }
@media only screen and (max-width: 768px) {
	.wp-block-button.is-style-cibcom .wp-block-button__link { padding: 0 14px; }
	.wp-block-button.is-style-cibcom-relleno .wp-block-button__link { height: 38px; line-height: 38px; padding: 0 16px; }
}

/* Mapa de Google */
.wpb_gmaps_widget .wpb_wrapper { background-color: #f7f7f7; padding: 5px; }
.wpb_gmaps_widget .wpb_map_wraper iframe { display: block; width: 100%; margin-bottom: 0; padding: 0; border: none; }

/* Aparición al bajar (css_animation de WPBakery): assets/js/cibcom.js añade «wpb_start_animation animated». */
.wpb_animate_when_almost_visible { opacity: 0; }
.wpb_animate_when_almost_visible:not(.wpb_start_animation) { animation: none; }
.wpb_start_animation { opacity: 1; }
.animated { animation-duration: 1s; animation-fill-mode: both; }
.fadeIn { animation-name: fadeIn; }
@keyframes fadeIn { 0% { opacity: 0; } 100% { opacity: 1; } }

/* ===== 5. Estilos propios de cada sección (bridge-child) ===== */

.tecnologia h3 {
	font-family: 'HelveticaNeue', Arial, sans-serif !important;
	color: #fff;
	font-size: 19px;
	line-height: 23px;
	font-weight: 400;
	text-transform: none;
}
.servicios h3 {
	font-family: 'HelveticaNeue', Arial, sans-serif !important;
	color: #53bbad;
	font-size: 25px;
	line-height: 29px;
	font-weight: 700;
	text-transform: none;
}
.servicios h2 {
	font-family: 'HelveticaNeue', Arial, sans-serif !important;
	color: #53bbad;
	font-size: 25px;
	line-height: 29px;
	font-weight: 500;
	text-transform: none;
}
.servicios h1 {
	font-family: 'HelveticaNeue', Arial, sans-serif !important;
	font-size: 67px;
	letter-spacing: 2px;
	color: #fff;
	font-weight: 700;
	text-transform: none;
}
@media (max-width: 768px) {
	.servicios h1 { font-size: 2.3em; }
}
.porfolio h2 strong {
	font-family: 'Helvetica', Arial, sans-serif !important;
	color: #53bbad;
	font-size: 55px;
	line-height: 29px;
	font-weight: 100;
	text-transform: none;
}
.porfolio h2 {
	font-family: 'Helvetica', Arial, sans-serif !important;
	color: #575756;
	font-size: 20px;
	line-height: 29px;
	font-weight: 700;
	text-transform: none;
}
.contacto h2 {
	font-family: 'HelveticaNeue', Arial, sans-serif !important;
	color: #53bbad;
	font-size: 30px;
	line-height: 32px;
	font-weight: 700;
	text-transform: none;
}
.contacto h3 {
	font-family: 'HelveticaNeueRegular', Arial, sans-serif !important;
	color: #575756;
	font-size: 20px;
	line-height: 32px;
	font-weight: 200;
	text-transform: none;
	letter-spacing: 0;
}
.contacto a { color: #000; }

/* Mapa web (bloque «Mapa web») */
.mapa-web, .mapa-web a {
	font-family: 'HelveticaNeue-Light', Arial, sans-serif !important;
	font-size: 16px;
	line-height: 19px;
	color: #818181;
	font-weight: 400;
	letter-spacing: .5px;
}
.wsp-pages-title { height: 36px; }

/* ===== 6. Formularios (Contact Form 7) ===== */

.vc_col-md-6 { position: relative; min-height: 1px; padding-left: 15px; padding-right: 15px; box-sizing: border-box; }
@media (min-width: 992px) {
	.vc_col-md-6 { float: left; width: 50%; }
}
input.wpcf7-form-control.wpcf7-text, textarea.wpcf7-form-control.wpcf7-textarea {
	display: block;
	width: 100%;
	margin: 5px 0 0;
	padding: 15px;
	border: 0;
	border-radius: 0;
	outline: 0;
	resize: none;
	box-sizing: border-box;
	-webkit-appearance: none;
	appearance: none;
	background-color: #fff;
	color: #818181;
	font-family: 'Raleway';
	font-size: 13px;
	font-weight: 400;
	line-height: 17px;
}
input.wpcf7-form-control.wpcf7-submit {
	position: relative;
	display: inline-block;
	width: auto;
	height: 39px;
	margin: 0;
	padding: 0 23px;
	box-sizing: initial;
	border-radius: 4px;
	background-color: transparent;
	font-family: 'Raleway', sans-serif;
	font-size: 13px;
	font-style: normal;
	font-weight: 700;
	line-height: 36px;
	letter-spacing: 1px;
	text-align: left;
	text-decoration: none;
	text-shadow: none;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
	outline: 0;
	-webkit-appearance: none;
	appearance: none;
	transition: all .1s linear 0s;
}
input.wpcf7-form-control.wpcf7-submit:not([disabled]) { border: 2px solid #303030; color: #303030; }
input.wpcf7-form-control.wpcf7-submit:not([disabled]):hover { background-color: #1abc9c; border-color: #1abc9c; color: #fff; text-decoration: none; }
input.wpcf7-form-control.wpcf7-submit[disabled] { color: #818181; border: 2px solid #818181; cursor: not-allowed; }
div.wpcf7-response-output {
	position: relative;
	margin-left: 0;
	margin-right: 0;
	padding: 17px 30px 17px 55px;
	border: none;
	color: #fff;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 1px;
	text-transform: none;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output,
.wpcf7 form.sent .wpcf7-response-output { background-color: #53bbad; border: none; }

/* Estilos 1 (portada) y 2 (Contacto) de Bridge */
.cf7_custom_style_1 input.wpcf7-form-control.wpcf7-submit,
.cf7_custom_style_1 input.wpcf7-form-control.wpcf7-submit:not([disabled]),
.cf7_custom_style_2 input.wpcf7-form-control.wpcf7-submit,
.cf7_custom_style_2 input.wpcf7-form-control.wpcf7-submit:not([disabled]) {
	height: 33px;
	padding: 0 45px;
	border-color: #53bbad;
	border-width: 1px;
	border-radius: 4px;
	color: #53bbad;
	font-size: 12px;
	line-height: 33px;
	text-transform: none;
}
.cf7_custom_style_1 input.wpcf7-form-control.wpcf7-submit:hover,
.cf7_custom_style_1 input.wpcf7-form-control.wpcf7-submit:not([disabled]):hover { color: #fff; }
.cf7_custom_style_2 input.wpcf7-form-control.wpcf7-submit { background-color: #fff; }
.cf7_custom_style_2 input.wpcf7-form-control.wpcf7-submit:hover { background-color: #fff; }
.cf7_custom_style_1 input.wpcf7-form-control.wpcf7-text, .cf7_custom_style_1 textarea.wpcf7-form-control.wpcf7-textarea,
.cf7_custom_style_2 input.wpcf7-form-control.wpcf7-text, .cf7_custom_style_2 textarea.wpcf7-form-control.wpcf7-textarea {
	background-color: #fff;
	border-color: #575756;
	color: #53bbad;
}
.cf7_custom_style_1 ::placeholder, .cf7_custom_style_2 ::placeholder { color: #53bbad; opacity: 1; }
.cf7_custom_style_1 textarea.wpcf7-form-control.wpcf7-textarea,
.cf7_custom_style_2 textarea.wpcf7-form-control.wpcf7-textarea { height: 120px; }

/* Campos con solo la línea de abajo y su icono (bridge-child) */
.formulario-contacto input, .formu-contacto input { width: 100%; }
.formulario-contacto input[type="text"], .formulario-contacto input[type="email"],
.formu-contacto input[type="text"], .formu-contacto input[type="email"] {
	padding-left: 0;
	padding-top: 15px;
	padding-bottom: 15px;
	border-bottom: 1px;
	border-style: solid;
	color: #53bbad;
	background-image: url('../img/icono_nombre_cibcom_tech.png');
	background-repeat: no-repeat;
	background-position: right 19px;
}
.formulario-contacto input[type="email"], .formu-contacto input[type="email"] { background-image: url('../img/icono_email_cibcom_tech.png'); }
.cf7_custom_style_1 textarea.wpcf7-form-control.wpcf7-textarea,
.cf7_custom_style_2 textarea.wpcf7-form-control.wpcf7-textarea {
	background-color: #fff;
	padding-left: 0;
	padding-top: 15px;
	padding-bottom: 15px;
	border-bottom: 1px;
	border-style: solid;
	color: #53bbad;
}
.formulario-contacto input[type="submit"], .formu-contacto input[type="submit"] { margin-top: 30px; }
.formulario-contacto .ajax-loader, .formu-contacto .ajax-loader,
.formulario-contacto .wpcf7-spinner, .formu-contacto .wpcf7-spinner { display: none !important; }
.formulario-contacto .enviar { text-align: right; }
.formulario-contacto input[type="checkbox"], .formu-contacto input[type="checkbox"] { width: 12px; }
.formulario-contacto .textarea { clear: both; }
.formu-contacto { overflow: hidden; }
.formu-contacto .izquierda { padding-right: 50px; }
.formu-contacto .derecha { margin-top: 131px; }
.formu-contacto .aceptar input[type="text"] { background-image: none; }
.formu-contacto .enviar { text-align: left; }
.formu-contacto .aceptar { margin-bottom: 25px; }
span.wpcf7-list-item { display: inline-block; margin: 0; }

.inicio .vc_col-md-6 { position: relative; min-height: 1px; padding-right: 20px; padding-left: 0; margin-bottom: 25px; }
.formulario-inicio .formulario-inicio-form .vc_col-md-6 { padding-right: 0; }
@media screen and (min-width: 1024px) {
	/* En Bridge el interior de la columna del formulario se desplaza 120 px a la derecha sin estrecharse. */
	.formulario-inicio .formulario-inicio-form > * { margin-left: 120px; margin-right: -120px; }
	.formulario-inicio .formulario-inicio-form .vc_col-md-6 { padding-right: 20px; }
}

/* ===== 7. Impresión ===== */

@media print {
	header, footer, #back_to_top, nav.mobile_menu { display: none !important; }
	.content.content_top_margin { margin-top: 0 !important; }
	.container_inner { max-width: 80%; }
	.wpb_animate_when_almost_visible { opacity: 1 !important; }
	html, body, .wrapper { padding-top: 0 !important; margin-top: 0 !important; top: 0 !important; }
}

/* ===== 8. Página no encontrada ===== */

.page_not_found { text-align: center; margin: 0 0 83px; padding-top: 120px; }
.page_not_found p { margin-top: 10px; }
.page_not_found .cb-404-boton { margin: 35px 0; }

/* ===== 9. Contact Form 7: textos solo para lectores de pantalla y aviso inicial oculto ===== */

.wpcf7 .screen-reader-response {
	position: absolute;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	word-wrap: normal !important;
}
.wpcf7 .hidden-fields-container { display: none; }
.wpcf7 form.init .wpcf7-response-output, .wpcf7 form.resetting .wpcf7-response-output, .wpcf7 form.submitting .wpcf7-response-output { display: none; }
