/*
 * FIMECORP para Elementor – detalles de diseño de las secciones montadas con widgets de Elementor.
 * Las plantillas usan estas clases (Avanzado > Clases CSS). Colores y tamaños básicos están en los
 * propios widgets; aquí va lo que Elementor no ofrece como ajuste (degradados de texto, etiquetas,
 * fondos con retícula, estados hover…).
 */

:root {
	--fc-blue: #004080;
	--fc-teal: #00bfbf;
	--fc-green: #00a896;
	--fc-dark: #002b59;
	--fc-navy: #001f3f;
	--fc-font: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	--fc-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;
}

body { font-family: var(--fc-font); background: #fff; }
/* Como en la web: sin margen debajo del último párrafo de cada bloque de texto */
.elementor .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor a { text-decoration: none; }

/* ---------------------------------------------------------------- textos */
.fc-grad {
	background: linear-gradient(90deg, #004080, #0080ff 50%, #00bfbf);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
}
.fc-t-dark { color: var(--fc-dark); font-weight: 700; }
.fc-t-blue { color: var(--fc-blue); font-weight: 600; }
.fc-t-teal { color: var(--fc-teal); font-weight: 600; }
.fc-t-white { color: #fff; font-weight: 700; }
.fc-t-dark.fc-semi, .fc-t-white.fc-semi { font-weight: 600; }
.fc-on-dark strong { color: #fff; }
.fc-mono .elementor-heading-title, .fc-mono { font-family: var(--fc-mono) !important; }
.fc-nowrap .elementor-heading-title, .fc-nowrap .elementor-icon-list-text { white-space: nowrap; }
.e-con > .fc-mw-576, .e-con-inner > .fc-mw-576, .fc-mw-576 { max-width: 576px !important; }
.e-con > .fc-mw-768-l, .e-con-inner > .fc-mw-768-l, .fc-mw-768-l { max-width: 768px !important; }
.e-con > .fc-mw-768, .e-con-inner > .fc-mw-768, .e-con > .fc-mw-896, .e-con-inner > .fc-mw-896, .e-con > .fc-mw-1024, .e-con-inner > .fc-mw-1024, .e-con > .fc-mw-1328, .e-con-inner > .fc-mw-1328 { margin-left: auto !important; margin-right: auto !important; width: 100%; }
.e-con > .fc-mw-768, .e-con-inner > .fc-mw-768 { max-width: 768px !important; }
.e-con > .fc-mw-896, .e-con-inner > .fc-mw-896 { max-width: 896px !important; }
.e-con > .fc-mw-1024, .e-con-inner > .fc-mw-1024 { max-width: 1024px !important; }
.e-con > .fc-mw-1328, .e-con-inner > .fc-mw-1328 { padding-left: 8px; padding-right: 8px; }
.fc-btn-nowrap .elementor-button { white-space: nowrap; }
.e-con > .fc-btn-nowrap { flex-shrink: 0 !important; }
.fc-narrow { max-width: 900px; margin-left: auto !important; margin-right: auto !important; }
.fc-grow, .e-con > .fc-grow, .e-con-inner > .fc-grow { flex: 1 1 0% !important; min-width: 0; }
@media (max-width: 1024px) { .e-con > .fc-grow { flex-basis: auto !important; } }
.fc-eyebrow i { color: currentColor; }

/* ---------------------------------------------------------------- etiquetas (pills) */
.fc-pill .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 20px;
	border-radius: 999px;
	border: 1px solid transparent;
	font-family: var(--fc-mono);
	font-size: 14px;
	line-height: 20px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.fc-pill-lg .elementor-heading-title { font-size: 16px; line-height: 24px; }
.fc-pill-sm .elementor-heading-title { font-size: 12px; line-height: 16px; padding: 6px 14px; }
@media (max-width: 639px) {
	.fc-pill .elementor-heading-title { font-size: 12px; line-height: 16px; }
	.fc-pill-lg .elementor-heading-title { font-size: 14px; line-height: 20px; }
}
.fc-pill-teal .elementor-heading-title { color: var(--fc-green); background: rgba(0, 168, 150, 0.10); border-color: rgba(0, 168, 150, 0.25); }
.fc-pill-green .elementor-heading-title { color: var(--fc-green); background: rgba(0, 168, 150, 0.10); border-color: rgba(0, 168, 150, 0.25); font-family: var(--fc-font); font-weight: 700; }
.fc-pill-blue .elementor-heading-title { color: #006dff; background: rgba(0, 64, 128, 0.10); border-color: rgba(0, 64, 128, 0.20); box-shadow: 0 1px 2px rgba(0, 0, 0, .05); }
.fc-pill-li .elementor-heading-title { color: #0a66c2; background: rgba(10, 102, 194, 0.10); border-color: rgba(10, 102, 194, 0.20); padding: 6px 16px; }
.fc-pill-navy .elementor-heading-title { color: var(--fc-blue); background: rgba(0, 64, 128, 0.05); }
.fc-pill-cyan .elementor-heading-title { color: var(--fc-teal); background: rgba(0, 191, 191, 0.05); }
.fc-pill-solid .elementor-heading-title { display: inline-block; padding: 4px 12px; border-radius: 999px; background: var(--fc-blue); font-family: var(--fc-mono); }
.fc-pill-verified .elementor-heading-title { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: rgba(10, 102, 194, 0.10); }
.fc-pill-verified .elementor-heading-title::before { content: '\2713'; display: inline-grid; place-items: center; width: 14px; height: 14px; border-radius: 50%; background: #0a66c2; color: #fff; font-size: 9px; }

/* ---------------------------------------------------------------- fondos de sección */
.fc-hero, .fc-soft, .fc-soft-top, .fc-soft-bottom, .fc-soft-grad, .fc-grid-bg { position: relative; overflow: hidden; }
.fc-soft-grad { background: linear-gradient(180deg, #f9fafb, #fff 50%, #f9fafb); }
.fc-soft.fc-soft-60 { background: rgba(248, 250, 252, .6); }
.fc-soft-grad::before { content: ''; position: absolute; top: -160px; right: -160px; width: 520px; height: 520px; border-radius: 50%; background: rgba(0, 109, 255, .05); filter: blur(80px); pointer-events: none; }
.fc-soft-grad::after { content: ''; position: absolute; bottom: 10%; left: -160px; width: 480px; height: 480px; border-radius: 50%; background: rgba(0, 191, 191, .05); filter: blur(80px); pointer-events: none; }
.fc-grid-bg::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(rgba(0, 109, 255, .015) 1px, transparent 1px); background-size: 32px 32px; pointer-events: none; }
.fc-soft-grad > .e-con-inner, .fc-grid-bg > .e-con-inner { position: relative; z-index: 1; }
.fc-hero { background: linear-gradient(180deg, #fff, #f8fafc 55%, #fff); }
.fc-soft { background: #f8fafc; }
.fc-soft-top { background: linear-gradient(180deg, #f8fafc, #fff); }
.fc-soft-bottom { background: #fff; }
.fc-hero::before, .fc-soft::before, .fc-soft-top::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: linear-gradient(to right, rgba(128, 128, 128, .04) 1px, transparent 1px), linear-gradient(to bottom, rgba(128, 128, 128, .04) 1px, transparent 1px);
	background-size: 36px 36px;
	pointer-events: none;
}
/* Átomo de FIMECORP de fondo en la portada */
.fc-hero::after {
	content: '';
	position: absolute;
	left: 8%;
	top: 50%;
	width: min(760px, 70vw);
	height: min(760px, 70vw);
	transform: translateY(-50%) rotate(-2deg);
	background: url('../app/icono_blanco_sintagline.svg') center / contain no-repeat;
	opacity: .28;
	filter: brightness(1.45);
	pointer-events: none;
}
.fc-hero > .e-con-inner, .fc-soft > .e-con-inner, .fc-soft-top > .e-con-inner { position: relative; z-index: 1; }
.fc-band-top { border-top: 1px solid #e5e7eb; background: #fff; }
.fc-dark-section { position: relative; overflow: hidden; }
.fc-dark-section::before {
	content: '';
	position: absolute;
	right: -10%;
	top: -20%;
	width: 50%;
	height: 80%;
	background: radial-gradient(closest-side, rgba(0, 191, 191, .12), transparent);
	pointer-events: none;
}

/* ---------------------------------------------------------------- tarjetas */
.fc-card { transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.fc-card:hover { transform: translateY(-4px); box-shadow: 0 24px 48px -20px rgba(15, 23, 42, .25) !important; }
.fc-card-dark:hover { border-color: rgba(0, 191, 191, .40) !important; background-color: rgba(255, 255, 255, .08) !important; }
.fc-card-dark { backdrop-filter: blur(12px); }
.fc-chip-dark, .fc-badge-dark { transition: transform .3s ease; }
.fc-chip-dark:hover { transform: translateY(-3px); }
.fc-perfil { transition: border-color .2s ease, background-color .2s ease; }
.fc-perfil:hover { border-color: rgba(0, 191, 191, .45) !important; background-color: #fff !important; }
.fc-tile { flex: 0 0 auto; }
.fc-tile .elementor-icon { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; width: 100%; aspect-ratio: 1 / 1; padding: 0 !important; }
.fc-tile .elementor-icon-wrapper { line-height: 0; }
.fc-tile-navy .elementor-icon, .fc-tile-blue .elementor-icon { border: 1px solid rgba(0, 64, 128, .20); }
.fc-tile-teal .elementor-icon { border: 1px solid rgba(0, 191, 191, .20); }
.fc-tile-white .elementor-icon { border: 1px solid #eef2f6; box-shadow: 0 1px 2px rgba(15, 23, 42, .05); }
.fc-tile-soft .elementor-icon { border: 1px solid #eef2f6; }
.fc-tile-glass .elementor-icon { border: 1px solid rgba(0, 191, 191, .20); }
.fc-tile-li .elementor-icon { border: 2px solid #fff; box-shadow: 0 14px 30px -12px rgba(10, 102, 194, .7); }

/* ---------------------------------------------------------------- botones */
.fc-btn .elementor-button { transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease; box-shadow: 0 10px 15px -3px rgba(0, 64, 128, .15); }
.fc-btn .elementor-button:hover { transform: translateY(-2px); }
.fc-btn-grad .elementor-button:hover { opacity: .95; }
.fc-btn-white .elementor-button { border: 1px solid #e5e7eb; box-shadow: 0 10px 24px -16px rgba(15, 23, 42, .35); }
.fc-btn-white .elementor-button:hover { border-color: var(--fc-teal); }
.fc-btn-mini .elementor-button { padding: 6px 12px !important; border-radius: 10px !important; font-size: 12px !important; line-height: 16px !important; font-weight: 800 !important; letter-spacing: 0 !important; text-transform: none !important; box-shadow: none; }
.fc-btn-mini-light .elementor-button { background: rgba(0, 191, 191, .10) !important; color: #008f8f !important; border: 1px solid rgba(0, 191, 191, .25); padding: 4px 12px !important; font-weight: 700 !important; }
.fc-btn-mini-light .elementor-button:hover { background: var(--fc-teal) !important; color: #fff !important; }
.fc-btn-ghost .elementor-button { box-shadow: none; text-transform: none !important; letter-spacing: 0 !important; }
.fc-btn-ghost .elementor-button:hover { background: #0a66c2 !important; }

/* ---------------------------------------------------------------- formularios (Elementor Pro) */
.fc-form .elementor-field-group > label { font-weight: 700; color: #0f172a; }
.fc-form .elementor-field-textual, .fc-form select.elementor-field {
	border-radius: 12px !important;
	border: 1px solid #e2e8f0 !important;
	background: #fff !important;
	padding: 14px 16px !important;
	min-height: 54px;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.fc-form textarea.elementor-field-textual { min-height: 110px; }
.fc-form .elementor-field-textual:focus, .fc-form select.elementor-field:focus { border-color: var(--fc-teal) !important; box-shadow: 0 0 0 4px rgba(0, 191, 191, .15); outline: none; }
.fc-form .elementor-field-type-upload .elementor-field {
	width: 100%;
	padding: 24px 16px;
	border: 2px dashed #D1D5DC;
	border-radius: 16px;
	background: #fff;
	text-align: center;
	cursor: pointer;
}
.fc-form .elementor-field-type-acceptance label, .fc-form .elementor-field-subgroup label { font-weight: 400; font-size: 12.5px; color: #64748b; line-height: 1.5; }
.fc-form .elementor-button[type='submit'] { width: 100%; min-height: 52px; background: linear-gradient(90deg, #004080, #00bfbf) !important; box-shadow: 0 20px 25px -5px rgba(0, 64, 128, .2); transition: opacity .2s ease; }
.fc-form.fc-form-green .elementor-button[type='submit'] { background: linear-gradient(90deg, #004080, #00a896) !important; }
.fc-form .elementor-button[type='submit']:hover { opacity: .95; }
.fc-form .elementor-field-textual, .fc-form select.elementor-field { color: #002b59; }
.fc-note-dark strong { color: #fff; }
.fc-form .elementor-message { border-radius: 14px; padding: 14px 16px; font-weight: 600; }
.fc-form .elementor-message-success { background: rgba(0, 168, 150, .10); color: #047857; }

/* ---------------------------------------------------------------- cabecera */
.fc-header { z-index: 100; }
.fc-topbar .fc-dot .elementor-widget-container, .fc-dot { line-height: 0; }
.fc-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--fc-teal); box-shadow: 0 0 8px rgba(0, 191, 191, .6); animation: fc-pulse 2s ease-in-out infinite; }
@keyframes fc-pulse { 50% { opacity: .55; } }
.fc-topbar-left { min-width: 0; overflow: hidden; }
.fc-mainbar { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, .1); }
.fc-logo img { display: block; }
.fc-nav .elementor-nav-menu--main > .elementor-nav-menu {
	padding: 6px;
	border-radius: 16px;
	background: rgba(255, 255, 255, .05);
	border: 1px solid rgba(255, 255, 255, .10);
	box-shadow: inset 0 2px 4px rgba(0, 0, 0, .05);
}
.fc-nav .elementor-nav-menu--main .elementor-item { border-radius: 12px; white-space: nowrap; }
.fc-nav .elementor-nav-menu--main .elementor-item { border: 1px solid transparent; }
.fc-nav .elementor-nav-menu--main .elementor-item.elementor-item-active { border-color: rgba(255, 255, 255, .15); box-shadow: 0 1px 2px rgba(0, 0, 0, .05); }
.fc-nav .elementor-nav-menu--main .elementor-item.elementor-item-active::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: 4px;
	width: 32px;
	height: 2.5px;
	margin-left: -16px;
	border-radius: 2px;
	background: var(--fc-teal);
	opacity: 1;
}
.fc-nav .elementor-menu-toggle { border-radius: 12px; border: 1px solid rgba(255, 255, 255, .18); }
.fc-nav .elementor-nav-menu--dropdown { border-radius: 0 0 16px 16px; overflow: hidden; box-shadow: 0 20px 40px -20px rgba(0, 0, 0, .5); }
.fc-li-in { display: flex; align-items: center; justify-content: center; width: 60px; height: 60px; border-radius: 12px; background: rgba(255, 255, 255, .10); border: 1px solid rgba(255, 255, 255, .15); box-shadow: 0 1px 2px rgba(0, 0, 0, .05); color: #fff !important; transition: background-color .2s ease; }
.fc-li-in span { font-family: var(--fc-font); font-size: 27px; line-height: 1; font-weight: 800; letter-spacing: -0.05em; margin-top: -2px; transition: transform .2s ease; }
.fc-li-in:hover { background: #0a66c2; }
.fc-li-in:hover span { transform: scale(1.1); }
.fc-lang-static { display: inline-flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 12px; color: #fff; font-family: var(--fc-font); font-size: 16px; font-weight: 700; letter-spacing: .025em; white-space: nowrap; }
@media (max-width: 1280px) {
	.fc-nav .elementor-nav-menu--main .elementor-item { padding-left: 12px !important; padding-right: 12px !important; font-size: 14px !important; }
}
@media (max-width: 1279px) { .fc-li-in { width: 52px; height: 52px; } }
@media (max-width: 639px) { .fc-li-in { width: 40px; height: 40px; } .fc-li-in span { font-size: 23px; } .fc-lang-static { font-size: 14px; padding: 8px; } }

/* ---------------------------------------------------------------- pie */
.fc-footer { position: relative; overflow: hidden; background: radial-gradient(circle at 15% 85%, rgba(0, 191, 191, .12), transparent 40%), radial-gradient(circle at 95% 0%, rgba(0, 64, 128, .45), transparent 45%), #001f3f !important; }
.fc-logo-footer img { display: block; }
.fc-footer-nav .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--fc-teal); }
.fc-legal-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 24px; font-size: 12px; line-height: 16px; }
.fc-legal-links a { color: #99A1AF; display: inline-flex; align-items: center; gap: 6px; transition: color .2s ease; }
.fc-legal-links a:hover { color: #fff; }
.fc-legal-links svg { width: 14px; height: 14px; color: var(--fc-teal); }

/* ---------------------------------------------------------------- ficha de producto */
.fc-ficha-wrap { background: #f8fafc; }

/* Iconos dentro de títulos y etiquetas */
.fc-inline-icon { display: inline-block; width: 1.15em; height: 1.15em; vertical-align: -0.2em; margin-right: 0.35em; flex: 0 0 auto; }
.fc-pill .fc-inline-icon { margin-right: 0; }
.fc-nowrap .elementor-icon-list-items.elementor-inline-items { flex-wrap: nowrap !important; }
.fc-tile, .fc-logo, .fc-li-btn, .fc-lang { flex-shrink: 0; }

/* Bloques del plugin dentro de contenedores flex de Elementor: que no desborden en el móvil */
.elementor-widget-shortcode { min-width: 0; max-width: 100%; }
.fc-scope { max-width: 100%; min-width: 0; }
.fc-block-especialidades .inline-flex { max-width: 100%; }
@media (max-width: 767px) {
	/* La foto grande del equipo mantenía 16:9 con 380 px de alto y salía del móvil */
	.fc-block-equipo [data-fc-team-main] { aspect-ratio: auto !important; width: 100%; }
	.fc-block-especialidades [data-fc-view] { white-space: normal; text-align: left; }
}

/* Botones con texto normal (sin mayúsculas), p. ej. en las fichas de partner */
.fc-btn-normal .elementor-button { text-transform: none !important; letter-spacing: 0 !important; font-size: 15px !important; }
.fc-btn-normal .elementor-button-text { white-space: normal; }

/* Páginas legales */
.fc-legal-text a { color: #006dff; text-decoration: underline; }
.fc-legal-text ul { padding-left: 1.2em; margin: 0; }
.fc-legal-text li { margin: .35em 0; }
.fc-legal-text mark { background: #fef3c7; color: #92400e; padding: 0 .25em; border-radius: 4px; }

/* Página 404 */
.fc-404-num .elementor-heading-title { background: linear-gradient(90deg, #00bfbf, #0080ff); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.fc-404-links .elementor-icon-list-items { justify-content: center; }

/* Fichas de partner (popups de Elementor Pro) */
.fc-popup-logo img { max-height: 56px; width: auto; padding: 10px 16px; border: 1px solid #eef2f6; border-radius: 16px; background: #fff; box-shadow: 0 1px 2px rgba(15,23,42,.06); }
.fc-popup-products .elementor-icon-list-item a { padding: 12px 14px; border: 1px solid rgba(226,232,240,.9); border-radius: 12px; background: #fff; width: 100%; transition: border-color .2s ease, background-color .2s ease; }
.fc-popup-products .elementor-icon-list-item a:hover { border-color: rgba(0,109,255,.6); background: rgba(239,246,255,.6); }
.fc-popup-products .elementor-icon-list-item a:hover .elementor-icon-list-text { color: #006dff; }
.fc-popup-products .elementor-icon-list-text { font-weight: 800; }
.fc-popup-footer { position: sticky; bottom: 0; z-index: 2; box-shadow: 0 -16px 30px -24px rgba(2,6,23,.35); }
.fc-soft .elementor-widget-text-editor a, .fc-dark-section .elementor-widget-text-editor a { color: #006dff; }

/* Conócenos: tarjeta de calidad con el degradado de tres tonos de la web; textos de las miniaturas del equipo en dos líneas */
.e-con.fc-quality { background: linear-gradient(to bottom right, #002b59, #0f172a, #002b59) !important; }
.fc-block-equipo button, .fc-block-equipo button span { white-space: normal; }

/* Fila de datos bajo la ficha de LinkedIn (Conócenos): iconos de 16 px y separador «•». */
.fc-meta-row .elementor-heading-title { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.fc-meta-row .elementor-heading-title > span { display: inline-flex; align-items: center; gap: 4px; font-family: var(--fc-font) !important; }
.fc-meta-row .fc-inline-icon { width: 16px; height: 16px; margin: 0; vertical-align: 0; }
.fc-ic-li { color: #0a66c2; } .fc-ic-teal { color: var(--fc-teal); }
.fc-btn .elementor-button-icon svg { width: 20px; height: 20px; }
.fc-btn .elementor-button-icon i { font-size: 20px; }
.fc-btn.fc-btn-ic16 .elementor-button-icon svg { width: 16px; height: 16px; }
.fc-btn.fc-btn-ic16 .elementor-button-icon i { font-size: 16px; }
.fc-btn.fc-btn-mini .elementor-button-icon svg { width: 14px; height: 14px; }
.fc-btn.fc-btn-mini .elementor-button-icon i { font-size: 14px; }
/* Icono delante de los rótulos en mayúsculas (como los w-4/w-5 de la web). */
.fc-eyebrow .fc-inline-icon { width: 1.34em; height: 1.34em; margin-right: 8px; vertical-align: -0.3em; }
@media (max-width: 767px) {
	.fc-meta-row .elementor-heading-title { justify-content: center; }
	.fc-btn-full-m .elementor-button { width: 100%; white-space: normal; text-align: left; }
	.fc-btn-full-m .elementor-button-content-wrapper { justify-content: space-between; }
}
/* Iconos de Lucide (los mismos de la web) en títulos con fondo: ver ltile() del generador. */
.fc-lt .elementor-heading-title { display: flex; align-items: center; justify-content: center; line-height: 0 !important; }
.fc-lt .elementor-heading-title svg { display: block; flex: 0 0 auto; }
.e-con > .fc-lt, .e-con-inner > .fc-lt { flex-shrink: 0 !important; }
.fc-note-title .fc-inline-icon { width: 16px; height: 16px; margin-right: 8px; vertical-align: -0.25em; }
.e-con.fc-chip-dark > .e-con, .fc-chip-dark > .e-con-inner > .e-con { min-width: min-content !important; flex-shrink: 1; }
.fc-soft.fc-soft-60::before { display: none; }
.fc-soft-slate { background: linear-gradient(180deg, #f8fafc, #fff 50%, #f8fafc); }
.fc-grid-bg.fc-grid-30::before { background-size: 30px 30px; }
