/* ==========================================================
   Sitio V2 — ajustes de marca FSG sobre la plantilla Softec
   Colores tomados del logo: azul, rojo, naranja, verde.
   ========================================================== */

:root {
  --fsg-azul: #0B5CAD;
  --fsg-azul-oscuro: #06204A;
  --fsg-rojo: #D9261C;
  --fsg-naranja: #F39200;
  --fsg-verde: #7CB82F;
  --fsg-fondo-oscuro: #000A24;

  --tp-theme-1: var(--fsg-azul);
  --tp-common-blue: var(--fsg-azul);
}

/* ---------- Banner GEO + header oscuro (los logos FSG son blancos) ---------- */
.fsg-banner-geo {
  position: relative;
  z-index: 6;
  background: var(--fsg-azul-oscuro);
  color: #cfd8e8;
  font-size: 13px;
  padding: 6px 0;
  text-align: center;
}
.fsg-banner-geo i { color: var(--fsg-verde); margin-right: 6px; }

.sitio-v2 .fsg-header #header-sticky,
.sitio-v2 .header-sticky-bg-2.header-sticky {
  background: var(--fsg-fondo-oscuro);
}
.sitio-v2 .fsg-header .header-bottom__main-menu ul li > a,
.sitio-v2 .fsg-header .fsg-idioma {
  color: #fff;
}
/* Hamburguesa: el círculo de la plantilla es blanco */
.sitio-v2 .fsg-header .header-bottom__bar,
.sitio-v2 .fsg-header .header-bottom__bar i { color: var(--fsg-fondo-oscuro); }
.sitio-v2 .fsg-header .header-bottom__main-menu ul li .submenu li a { color: var(--tp-common-black); }
.sitio-v2 .fsg-header .header-bottom__main-menu ul li:hover > a { color: var(--fsg-naranja); }
.sitio-v2 .fsg-header .header-bottom__main-menu ul li .submenu { min-width: 300px; }
.sitio-v2 .fsg-idioma { font-weight: 600; margin-right: 18px; white-space: nowrap; }
.sitio-v2 .fsg-idioma i { margin-right: 4px; }
.sitio-v2 .header-bottom__logo img { max-height: 38px; width: auto; }
/* El CTA estándar es largo: el botón crece con el texto */
.sitio-v2 .fsg-header .tp-btn-blue-sm { width: auto; padding-left: 22px; padding-right: 22px; white-space: nowrap; }

/* ---------- Hero ---------- */
.fsg-hero {
  background: radial-gradient(ellipse at top, #e8f0fb 0%, #ffffff 60%);
}
.fsg-hero .tp-hero-title-3 span { color: var(--fsg-azul); }
.fsg-hero .tp-hero-title-box p { font-size: 19px; max-width: 760px; margin: 0 auto 30px; }
.fsg-mockup img {
  border-radius: 16px;
  box-shadow: 0 30px 80px rgba(0, 10, 36, .18);
  max-width: 100%;
  height: auto;
}
.fsg-mockup-caption { margin-top: 14px; font-size: 14px; color: var(--tp-grey-1); text-align: center; }

.tp-section-title-3 span { color: var(--fsg-azul); }

/* ---------- Trust bar ---------- */
.fsg-trust-iso { font-weight: 600; color: var(--tp-common-black); }
.fsg-trust-iso img { vertical-align: middle; margin-right: 8px; }

/* ---------- Tarjetas ---------- */
.fsg-seccion-gris { background: var(--tp-grey-7); }
.fsg-icono i { font-size: 46px; color: var(--fsg-azul); }
/* Diferenciadores: la plantilla fija una altura pensada para títulos largos */
.fsg-diferenciador.tp-service-sm-item { height: auto; min-height: 0; gap: 28px; padding: 36px; }
/* La plantilla esconde un enlace "Learn more" con margen negativo; aquí no hay enlace */
.fsg-diferenciador .tp-service-sm-content { margin-bottom: 0; }
.fsg-card { height: 100%; }
.fsg-card .tp-blog-thumb img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.fsg-card .tp-blog-title-box p { color: var(--tp-grey-1); }
.fsg-titulo-sm { font-size: 17px; line-height: 1.4; }
.fsg-kpi {
  font-size: 26px;
  font-weight: 800;
  color: var(--fsg-azul);
  margin: 4px 0 10px;
}

/* Industrias: imagen de fondo con capa oscura */
.fsg-industria {
  display: flex;
  align-items: flex-end;
  min-height: 230px;
  border-radius: 14px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  position: relative;
}
.fsg-industria::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 10, 36, .9) 10%, rgba(0, 10, 36, .2) 100%);
  transition: background .3s;
}
.fsg-industria:hover::before { background: linear-gradient(to top, rgba(11, 92, 173, .92) 10%, rgba(11, 92, 173, .35) 100%); }
.fsg-industria-contenido { position: relative; padding: 22px; color: #fff; }
.fsg-industria-contenido strong { display: block; font-size: 19px; margin-bottom: 6px; }
.fsg-industria-contenido small { display: block; font-size: 13px; line-height: 1.5; color: #dde4f0; }

/* Integraciones: logos FSG de distintos tamaños */
.fsg-integraciones { background: var(--tp-grey-7); }
.fsg-integraciones .tp-integration-slider-item {
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 110px;
}
.fsg-integraciones .tp-integration-slider-item img { max-height: 64px; max-width: 80%; width: auto; }

/* Testimonios sin foto */
.fsg-testimonios { background: var(--fsg-fondo-oscuro); }
.fsg-testimonios .tp-testimonial-3-content-box { width: 100%; }

/* Metodología */
.fsg-pasos { list-style: none; counter-reset: paso; padding: 0; margin: 0 0 20px; }
.fsg-pasos li {
  counter-increment: paso;
  position: relative;
  padding: 0 0 22px 62px;
}
.fsg-pasos li::before {
  content: counter(paso);
  position: absolute;
  left: 0;
  top: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--fsg-azul);
  color: #fff;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.fsg-pasos strong { display: block; font-size: 19px; color: var(--tp-common-black); }
.fsg-video video { width: 100%; border-radius: 16px; box-shadow: 0 20px 60px rgba(0, 10, 36, .15); background: #000; }

.fsg-iso-img img { max-width: 100%; height: auto; border-radius: 12px; box-shadow: 0 20px 60px rgba(0, 10, 36, .12); }

/* ---------- Footer oscuro ---------- */
.fsg-footer { background: var(--fsg-fondo-oscuro); color: #b9c2d3; }
.fsg-footer .tp-footer__widget-title,
.fsg-footer .tp-footer__social-3 h4 { color: #fff; }
.fsg-footer a,
.fsg-footer .tp-footer__content ul li a,
.fsg-footer .tp-copyright__text span { color: #b9c2d3; }
.fsg-footer a:hover { color: var(--fsg-naranja); }
.fsg-footer .tp-footer__contact-info ul li span i { color: var(--fsg-verde); margin-right: 6px; }
.fsg-footer .footer-slide-item span,
.fsg-footer .footer-slide-item i { color: var(--fsg-fondo-oscuro); }
.fsg-texto-claro { color: #b9c2d3; font-size: 17px; }
.fsg-footer-iso { display: flex; align-items: center; gap: 12px; color: #fff; font-weight: 600; }
.fsg-legales a { margin-left: 18px; font-size: 14px; }

/* ==========================================================
   Páginas interiores
   ========================================================== */
.fsg-page-hero {
  position: relative;
  background: linear-gradient(135deg, var(--fsg-fondo-oscuro) 0%, var(--fsg-azul-oscuro) 100%);
  background-size: cover;
  background-position: center;
  padding: 120px 0 100px;
  color: #fff;
}
.fsg-page-hero--imagen::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0, 10, 36, .94) 0%, rgba(0, 10, 36, .82) 45%, rgba(6, 32, 74, .55) 100%);
}
.fsg-page-hero__titulo { color: #fff; font-size: 52px; line-height: 1.12; margin-bottom: 22px; }
.fsg-page-hero__sub { color: #cfd8e8; font-size: 19px; line-height: 1.6; max-width: 760px; margin-bottom: 0; }
.fsg-page-hero__botones { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }
.fsg-btn-claro, .fsg-btn-claro span { color: #fff !important; }
.fsg-btn-claro { border-color: rgba(255, 255, 255, .55) !important; }
.fsg-migas { font-size: 14px; margin-bottom: 26px; color: #9fb0cc; }
.fsg-migas a { color: #cfd8e8; }
.fsg-migas a:hover { color: var(--fsg-naranja); }
.fsg-migas span { margin: 0 6px; }
@media (max-width: 991px) {
  .fsg-page-hero { padding: 80px 0 70px; }
  .fsg-page-hero__titulo { font-size: 36px; }
  .fsg-page-hero__sub { font-size: 17px; }
}

.fsg-etiqueta {
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--fsg-naranja);
  margin-bottom: 14px;
}
.fsg-etiqueta--oscura { color: var(--fsg-azul); }
.fsg-lead { font-size: 18px; line-height: 1.7; color: var(--tp-grey-1); }
.fsg-subtitulo { font-size: 26px; margin-bottom: 22px; }
.fsg-link { font-weight: 700; color: var(--fsg-azul); }
.fsg-link i { margin-left: 6px; transition: transform .2s; }
.fsg-link:hover i { transform: translateX(4px); }
.fsg-link--claro { color: #fff; }

/* Listas con icono */
.fsg-lista { list-style: none; padding: 0; margin-top: 0; margin-left: 0; }
.fsg-lista li { position: relative; padding: 0 0 14px 34px; line-height: 1.6; }
.fsg-lista li::before {
  font-family: "Font Awesome 5 Pro";
  font-weight: 300;
  position: absolute;
  left: 0;
  top: 1px;
  content: "\f00c";
  color: var(--fsg-verde);
}
.fsg-lista--problema li::before { content: "\f071"; color: var(--fsg-naranja); }
.fsg-lista--no li::before { content: "\f00d"; color: var(--fsg-rojo); }
.fsg-lista--clara li { color: #dde4f0; }

.fsg-imagen-redonda img { width: 100%; border-radius: 20px; aspect-ratio: 4 / 3; object-fit: cover; box-shadow: 0 30px 70px rgba(0, 10, 36, .14); }

/* Tarjeta de paso/solución numerada */
.fsg-paso {
  background: #fff;
  border: 1px solid #E9EBF1;
  border-radius: 18px;
  padding: 32px;
  height: 100%;
  transition: box-shadow .3s, transform .3s;
}
.fsg-paso:hover { box-shadow: 0 16px 32px -2px rgba(32, 33, 36, .1); transform: translateY(-3px); }
.fsg-paso__num { display: block; font-size: 15px; font-weight: 800; color: var(--fsg-azul); margin-bottom: 14px; }
.fsg-paso h3 { font-size: 20px; margin-bottom: 10px; }
.fsg-paso p { margin: 0; color: var(--tp-grey-1); }

.fsg-destacado {
  background: linear-gradient(135deg, var(--fsg-azul-oscuro) 0%, var(--fsg-azul) 100%);
  border-radius: 24px;
  padding: 60px;
}
@media (max-width: 767px) { .fsg-destacado { padding: 36px 24px; } }

.fsg-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.fsg-chips span {
  background: var(--tp-grey-7);
  border: 1px solid #E3E6EF;
  border-radius: 30px;
  padding: 8px 18px;
  font-size: 14px;
  font-weight: 600;
  color: var(--tp-common-black);
}

.fsg-galeria img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 14px; }

/* Banda de caso real */
.fsg-caso-banda {
  display: flex;
  border-radius: 24px;
  overflow: hidden;
  background: var(--fsg-fondo-oscuro);
  min-height: 280px;
}
.fsg-caso-banda__img { flex: 0 0 42%; background-size: cover; background-position: center; }
.fsg-caso-banda__texto { padding: 44px; color: #dde4f0; display: flex; flex-direction: column; justify-content: center; }
.fsg-caso-banda__texto p { color: #dde4f0; font-size: 18px; }
.fsg-caso-banda .fsg-kpi { font-size: 38px; }
@media (max-width: 767px) {
  .fsg-caso-banda { flex-direction: column; }
  .fsg-caso-banda__img { flex-basis: 200px; }
  .fsg-caso-banda__texto { padding: 30px 24px; }
}

/* FAQ */
.fsg-faq .accordion-item { border: 1px solid #E9EBF1; border-radius: 14px !important; margin-bottom: 14px; overflow: hidden; }
.fsg-faq .accordion-button { font-weight: 700; font-size: 17px; padding: 22px 26px; color: var(--tp-common-black); }
.fsg-faq .accordion-button:not(.collapsed) { background: var(--tp-grey-7); color: var(--fsg-azul); box-shadow: none; }
.fsg-faq .accordion-body { padding: 4px 26px 24px; color: var(--tp-grey-1); line-height: 1.7; }

/* Menú siempre en una línea (6 entradas + idioma + CTA largo) */
.sitio-v2 .fsg-header .header-bottom__main-menu nav > ul { display: flex; flex-wrap: nowrap; justify-content: center; margin-left: 0; }
.sitio-v2 .fsg-header .header-bottom__main-menu nav > ul > li { margin: 0 10px; white-space: nowrap; }
.sitio-v2 .fsg-header .header-bottom__main-menu nav > ul > li > a { font-size: 14.5px; }
@media (max-width: 1399px) {
  .sitio-v2 .fsg-header .header-bottom__main-menu nav > ul > li { margin: 0 8px; }
  .sitio-v2 .fsg-header .header-bottom__main-menu nav > ul > li > a { font-size: 14px; }
}

/* El header es absoluto: el hero interior deja su espacio */
.fsg-page-hero { padding-top: 210px; }
@media (max-width: 991px) { .fsg-page-hero { padding-top: 150px; } }

/* Nosotros / Equipo */
.fsg-lead--grande { font-size: 21px; color: var(--tp-common-black); }
.fsg-mosaico { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 220px 220px; gap: 16px; }
.fsg-mosaico img { width: 100%; height: 100%; object-fit: cover; border-radius: 18px; }
.fsg-mosaico img:first-child { grid-row: span 2; }
.fsg-cifras {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0;
  border-radius: 24px;
  background: var(--fsg-fondo-oscuro);
  overflow: hidden;
}
.fsg-cifra { padding: 40px 32px; border-right: 1px solid rgba(255, 255, 255, .08); }
.fsg-cifra:last-child { border-right: 0; }
.fsg-cifra strong { display: block; font-size: 46px; line-height: 1; color: #fff; margin-bottom: 12px; }
.fsg-cifra span { color: #b9c2d3; font-size: 15px; line-height: 1.5; display: block; }
.fsg-disciplina {
  display: flex;
  align-items: center;
  gap: 16px;
  background: #fff;
  border: 1px solid #E9EBF1;
  border-radius: 14px;
  padding: 18px 22px;
  font-weight: 700;
  color: var(--tp-common-black);
}
.fsg-disciplina span { color: var(--fsg-azul); font-size: 14px; }
.fsg-valor { border-left: 3px solid var(--fsg-azul); padding: 2px 0 2px 22px; margin-bottom: 26px; }
.fsg-valor h3 { font-size: 20px; margin-bottom: 6px; }
.fsg-valor p { margin: 0; color: var(--tp-grey-1); }
.fsg-paso--icono > i { font-size: 38px; color: var(--fsg-azul); display: block; margin-bottom: 18px; }
.fsg-btn-blanco { background: #fff !important; }
.fsg-btn-blanco span { color: var(--fsg-azul-oscuro) !important; }
@media (max-width: 767px) {
  .fsg-mosaico { grid-template-rows: 160px 160px; }
  .fsg-cifra { border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .08); }
}

/* La plantilla usa una fuente no declarada en los datos de contacto */
.fsg-footer .tp-footer__contact-info a,
.fsg-footer .tp-footer__contact-info ul li a,
.fsg-footer .tp-footer__contact-info li { font-family: var(--tp-ff-body) !important; }

/* Línea de pasos horizontal (calidad, integraciones, inversión) */
.fsg-linea { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(var(--cols, 4), 1fr); gap: 40px 30px; counter-reset: linea; }
@media (max-width: 991px) { .fsg-linea { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .fsg-linea { grid-template-columns: 1fr; } }
.fsg-linea li { counter-increment: linea; position: relative; padding-top: 62px; }
.fsg-linea li::before {
  content: counter(linea);
  position: absolute; top: 0; left: 0;
  width: 46px; height: 46px; border-radius: 50%;
  background: var(--fsg-azul); color: #fff; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
}
.fsg-linea li::after { content: ""; position: absolute; top: 22px; left: 58px; right: -18px; height: 2px; background: #DCE3EF; }
.fsg-linea li:last-child::after { display: none; }
.fsg-linea strong { display: block; font-size: 19px; color: var(--tp-common-black); margin-bottom: 8px; }
.fsg-linea span { color: var(--tp-grey-1); line-height: 1.6; }
@media (max-width: 767px) { .fsg-linea li::after { display: none; } }

.fsg-icono-grande { font-size: 48px; color: var(--fsg-verde); display: block; margin-bottom: 20px; }
.fsg-sello { height: 70px; width: auto; margin-bottom: 20px; }
.fsg-etapa { display: flex; flex-direction: column; }
.fsg-etapa p { flex: 1; }
.fsg-entregable { margin-top: 20px; padding-top: 16px; border-top: 1px dashed #DCE3EF; font-size: 14px; font-weight: 600; color: var(--fsg-azul); }
.fsg-entregable i { margin-right: 6px; }
.fsg-chips--sm span { font-size: 13px; padding: 6px 14px; }
.fsg-logos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 18px; }
.fsg-logos div { background: #fff; border-radius: 14px; height: 100px; display: flex; align-items: center; justify-content: center; padding: 18px; }
.fsg-logos img { max-height: 60px; max-width: 100%; width: auto; }

/* La plantilla fija margin-bottom en los títulos: respetar las utilidades mb-* */
.sitio-v2 .tp-section-title-3.mb-30 { margin-bottom: 30px; }
.sitio-v2 .tp-section-title-3.mb-40 { margin-bottom: 40px; }
.sitio-v2 .tp-section-title-3.mb-50 { margin-bottom: 50px; }
.fsg-destacado .tp-section-title-3 { font-size: 34px; line-height: 1.2; }
@media (max-width: 767px) { .fsg-destacado .tp-section-title-3 { font-size: 26px; } }

/* Casos */
.fsg-filtros { display: flex; flex-wrap: wrap; gap: 10px; }
.fsg-filtros button {
  border: 1px solid #DCE3EF; background: #fff; border-radius: 30px;
  padding: 9px 20px; font-weight: 600; font-size: 14px; color: var(--tp-common-black); transition: .2s;
}
.fsg-filtros button:hover { border-color: var(--fsg-azul); color: var(--fsg-azul); }
.fsg-filtros button.activo { background: var(--fsg-azul); border-color: var(--fsg-azul); color: #fff; }
.fsg-buyer { font-size: 12px; font-weight: 700; color: var(--tp-grey-5); }
.fsg-destacado--compacto { padding: 40px 34px; border-radius: 20px; }
.fsg-destacado--compacto h3 { font-size: 26px; }
.fsg-resultados-banda { margin-top: -60px; position: relative; z-index: 4; }
.fsg-ficha { background: var(--tp-grey-7); border-radius: 20px; padding: 34px; }
.fsg-ficha dl { margin: 0; }
.fsg-ficha dt { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--tp-grey-5); }
.fsg-ficha dd { margin: 2px 0 16px; font-weight: 600; color: var(--tp-common-black); }
.fsg-ficha dd:last-child { margin-bottom: 0; }
.fsg-cita {
  margin: 0; background: var(--fsg-fondo-oscuro); border-radius: 24px; padding: 60px;
  position: relative; overflow: hidden;
}
.fsg-cita::before { content: "\201C"; position: absolute; top: -30px; left: 30px; font-size: 220px; line-height: 1; color: rgba(255, 255, 255, .06); font-family: Georgia, serif; }
.fsg-cita blockquote { position: relative; margin: 0 0 24px; font-size: 24px; line-height: 1.55; color: #fff; font-weight: 500; }
.fsg-cita figcaption { color: #b9c2d3; }
.fsg-cita figcaption strong { color: var(--fsg-naranja); }
@media (max-width: 767px) { .fsg-cita { padding: 36px 24px; } .fsg-cita blockquote { font-size: 19px; } }

/* Inversión */
.fsg-bucket { background: #fff; border: 1px solid #E9EBF1; border-radius: 20px; padding: 32px 28px; height: 100%; }
.fsg-bucket h3 { font-size: 20px; margin-bottom: 14px; }
.fsg-bucket__rango { display: block; font-size: 24px; line-height: 1.25; color: var(--fsg-azul); margin-bottom: 10px; }
.fsg-bucket__plazo { display: block; font-size: 14px; font-weight: 600; color: var(--tp-grey-5); margin-bottom: 16px; }
.fsg-bucket p { margin: 0; color: var(--tp-grey-1); }
.fsg-bucket--destacado { border: 2px solid var(--fsg-azul); box-shadow: 0 20px 40px rgba(11, 92, 173, .12); }
.fsg-tabla { background: #fff; border-radius: 18px; padding: 8px; }
.fsg-tabla table { margin: 0; min-width: 820px; }
.fsg-tabla th, .fsg-tabla td { padding: 16px 18px; vertical-align: top; font-size: 15px; border-color: #EEF1F6; }
.fsg-tabla thead th { font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--tp-grey-5); }
.fsg-tabla__fsg { background: rgba(11, 92, 173, .06); }
.fsg-tabla__fsg th, .fsg-tabla__fsg td { color: var(--fsg-azul-oscuro); font-weight: 600; }
.fsg-nota { font-size: 14px; color: var(--tp-grey-5); }

/* Contacto / formularios */
.fsg-canal { display: flex; gap: 18px; margin-bottom: 26px; }
.fsg-canal > i { flex: 0 0 52px; height: 52px; border-radius: 14px; background: var(--tp-grey-7); color: var(--fsg-azul); font-size: 22px; display: flex; align-items: center; justify-content: center; }
.fsg-canal h3 { font-size: 18px; margin-bottom: 4px; }
.fsg-canal p { color: var(--tp-grey-1); margin-bottom: 0; }
.fsg-form { background: #fff; border: 1px solid #E9EBF1; border-radius: 24px; padding: 44px; box-shadow: 0 20px 50px rgba(0, 10, 36, .06); }
.fsg-form label { display: block; font-size: 14px; font-weight: 600; color: var(--tp-common-black); margin-bottom: 18px; }
.fsg-form input, .fsg-form select, .fsg-form textarea {
  display: block; width: 100%; margin-top: 6px; border: 1px solid #DCE3EF; border-radius: 12px;
  padding: 12px 16px; font-size: 15px; font-weight: 400; background: #fff; color: var(--tp-common-black);
  height: auto;
}
.fsg-form input:focus, .fsg-form select:focus, .fsg-form textarea:focus { outline: 0; border-color: var(--fsg-azul); box-shadow: 0 0 0 3px rgba(11, 92, 173, .12); }
@media (max-width: 767px) { .fsg-form { padding: 28px 20px; } }

/* Filtros como enlaces (blog) */
.fsg-filtros a {
  border: 1px solid #DCE3EF; background: #fff; border-radius: 30px;
  padding: 9px 20px; font-weight: 600; font-size: 14px; color: var(--tp-common-black); transition: .2s;
}
.fsg-filtros a i { margin-right: 6px; color: var(--fsg-azul); }
.fsg-filtros a:hover { border-color: var(--fsg-azul); color: var(--fsg-azul); }
.fsg-filtros a.activo { background: var(--fsg-azul); border-color: var(--fsg-azul); color: #fff; }
.fsg-filtros a.activo i { color: #fff; }

/* Vacantes */
.fsg-vacante { display: flex; align-items: center; gap: 20px; background: #fff; border-radius: 16px; padding: 22px 28px; margin-bottom: 14px; border: 1px solid #E9EBF1; }
.fsg-vacante strong { flex: 1; font-size: 18px; color: var(--tp-common-black); }
.fsg-vacante span { color: var(--tp-grey-5); }
.fsg-vacante i { color: var(--fsg-azul); }

/* Legales */
.fsg-indice { position: sticky; top: 110px; display: flex; flex-direction: column; gap: 4px; border-left: 2px solid #E9EBF1; }
.fsg-indice a { padding: 6px 0 6px 18px; font-size: 14px; color: var(--tp-grey-1); line-height: 1.4; }
.fsg-indice a:hover { color: var(--fsg-azul); }
.fsg-legal section { margin-bottom: 42px; scroll-margin-top: 120px; }
.fsg-legal h2 { font-size: 24px; margin-bottom: 16px; }
.fsg-legal p { color: var(--tp-grey-1); line-height: 1.8; font-size: 16px; }

/* 404 */
.fsg-404 { padding-bottom: 120px; }
.fsg-404__codigo { display: block; font-size: 150px; line-height: 1; font-weight: 800; color: rgba(255, 255, 255, .12); margin-bottom: 10px; }

/* Artículos heredados del sitio actual (Bootstrap 4 / tema anterior) */
.fsg-articulo { padding: 70px 0 30px; }
.fsg-articulo section { padding-top: 20px !important; padding-bottom: 20px !important; }
.fsg-articulo .container { max-width: 1140px; }
.fsg-articulo h2, .fsg-articulo .h2, .fsg-articulo .h3 { font-size: 30px; line-height: 1.25; margin: 18px 0 18px; color: var(--tp-common-black); }
.fsg-articulo h3, .fsg-articulo .h4, .fsg-articulo .h5 { font-size: 21px; margin: 14px 0 10px; color: var(--tp-common-black); }
.fsg-articulo p, .fsg-articulo li { font-size: 17px; line-height: 1.8; color: var(--tp-grey-1); }
.fsg-articulo .lead { font-size: 20px; color: var(--tp-common-black); }
.fsg-articulo a { color: var(--fsg-azul); text-decoration: underline; text-underline-offset: 3px; }
.fsg-articulo img { max-width: 100%; height: auto; border-radius: 16px; }
.fsg-articulo .badge { display: inline-block; padding: 7px 14px; border-radius: 30px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.fsg-articulo .badge-primary { background: rgba(11, 92, 173, .1); color: var(--fsg-azul); }
.fsg-articulo .badge-success { background: rgba(124, 184, 47, .15); color: #4d7a17; }
.fsg-articulo .badge-warning { background: rgba(243, 146, 0, .15); color: #a35f00; }
.fsg-articulo .badge-danger { background: rgba(217, 38, 28, .12); color: var(--fsg-rojo); }
.fsg-articulo .card, .fsg-articulo .box-shadow, .fsg-articulo .bg-light, .fsg-articulo .bg-secondary {
  background: var(--tp-grey-7) !important; border: 1px solid #E9EBF1; border-radius: 18px; box-shadow: none;
}
.fsg-articulo .card-body { padding: 26px; }
.fsg-articulo .bg-dark, .fsg-articulo .bg-primary { background: var(--fsg-fondo-oscuro) !important; border-radius: 20px; }
.fsg-articulo .bg-dark p, .fsg-articulo .bg-dark h2, .fsg-articulo .bg-dark h3, .fsg-articulo .bg-primary p,
.fsg-articulo .bg-primary h2, .fsg-articulo .bg-primary h3, .fsg-articulo .text-white { color: #fff !important; }
.fsg-articulo .bg-overlay, .fsg-articulo .bg-parallax-img { display: none; }
.fsg-articulo table { width: 100%; margin-bottom: 24px; }
.fsg-articulo table th, .fsg-articulo table td { padding: 12px 14px; border-bottom: 1px solid #EEF1F6; font-size: 15px; }
.fsg-articulo .btn { display: inline-block; border-radius: 30px; padding: 12px 26px; font-weight: 700; text-decoration: none; }
.fsg-articulo .btn-primary { background: var(--tp-theme-1); color: #fff !important; }
.fsg-articulo .btn-outline-primary, .fsg-articulo .btn-outline-light { border: 1px solid currentColor; }
.fsg-articulo blockquote { border-left: 4px solid var(--fsg-azul); padding: 6px 0 6px 22px; margin: 26px 0; font-size: 19px; }
/* .block-title del tema anterior: el <small> es un subtítulo en su propia línea */
.fsg-articulo .block-title small { display: block; margin-top: 8px; font-size: 17px; font-weight: 500; color: var(--tp-grey-1); }

/* ==========================================================
   Agendar diagnóstico (#diagnostico) — adaptado del demo 15element
   ========================================================== */
.fsg-microcopy { margin: 16px 0 0; font-size: 14px; color: #b9c2d3; }
.fsg-microcopy--oscura { color: var(--tp-grey-1); margin: -18px 0 34px; }
.fsg-diagnostico {
  background: radial-gradient(ellipse at top left, rgba(11, 92, 173, .35) 0%, rgba(0, 10, 36, 0) 55%), var(--fsg-fondo-oscuro);
  padding: 110px 0 80px;
  scroll-margin-top: 90px;
}
.fsg-diagnostico .tp-section-title-3 { font-size: 40px; line-height: 1.15; }
.fsg-diagnostico__respuesta { color: #fff; font-weight: 600; margin-bottom: 10px; }
.fsg-diagnostico__respuesta i { color: var(--fsg-verde); margin-right: 6px; }
.fsg-diagnostico__contacto { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0; }
.fsg-diagnostico__contacto a { color: #b9c2d3; font-family: var(--tp-ff-body); }
.fsg-diagnostico__contacto a:hover { color: var(--fsg-naranja); }
.fsg-diagnostico__contacto i { margin-right: 6px; color: var(--fsg-naranja); }
.fsg-diagnostico .fsg-form { box-shadow: 0 30px 70px rgba(0, 0, 0, .35); border: 0; }
.fsg-pasos-barra { display: flex; gap: 8px; margin: -6px 0 24px; }
.fsg-pasos-barra span { flex: 1; height: 4px; border-radius: 4px; background: #E3E6EF; transition: background .3s; }
.fsg-pasos-barra span.activo { background: var(--fsg-azul); }
.fsg-opciones { border: 0; padding: 0; margin: 0 0 18px; }
.fsg-opciones legend { font-size: 14px; font-weight: 600; color: var(--tp-common-black); margin-bottom: 8px; float: none; width: auto; }
.fsg-form .fsg-opcion { display: flex; align-items: center; gap: 12px; border: 1px solid #DCE3EF; border-radius: 12px; padding: 12px 16px; margin-bottom: 8px; font-weight: 500; cursor: pointer; transition: .2s; }
.fsg-form .fsg-opcion input { width: auto; margin: 0; accent-color: var(--fsg-azul); }
.fsg-form .fsg-opcion:has(input:checked) { border-color: var(--fsg-azul); background: rgba(11, 92, 173, .05); }
.fsg-link-btn { background: none; border: 0; padding: 0; margin-left: 8px; color: var(--fsg-azul); font-weight: 700; text-decoration: underline; }
@media (max-width: 767px) { .fsg-diagnostico { padding: 80px 0 50px; } .fsg-diagnostico .tp-section-title-3 { font-size: 30px; } }

/* ==========================================================
   Pilar de postventa / póliza (FSG_MKT_009)
   ========================================================== */
.fsg-postventa, .fsg-compromisos {
  background: radial-gradient(ellipse at top right, rgba(11, 92, 173, .35) 0%, rgba(0, 10, 36, 0) 55%), var(--fsg-fondo-oscuro);
}
.fsg-compromiso {
  height: 100%;
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 18px;
  padding: 30px 28px;
}
.fsg-compromiso > strong { display: block; font-size: 38px; line-height: 1; color: #fff; margin-bottom: 16px; }
.fsg-compromiso > i { display: block; font-size: 34px; color: var(--fsg-naranja); margin-bottom: 18px; }
.fsg-compromiso h3 { color: #fff; font-size: 19px; margin-bottom: 8px; }
.fsg-compromiso p { color: #b9c2d3; margin: 0; }
.fsg-banda-titulo { display: block; font-size: 26px; line-height: 1.25; margin: 4px 0 12px; }

.fsg-nivel { display: flex; gap: 18px; align-items: baseline; padding: 18px 22px; border-radius: 14px; margin-bottom: 12px; background: var(--tp-grey-7); border-left: 4px solid var(--fsg-verde); }
.fsg-nivel strong { min-width: 120px; font-size: 18px; color: var(--tp-common-black); }
.fsg-nivel span { color: var(--tp-grey-1); }
.fsg-nivel--2 { border-left-color: var(--fsg-naranja); }
.fsg-nivel--3 { border-left-color: var(--fsg-rojo); }
.fsg-umbral { flex: 1; background: #fff; border-radius: 14px; padding: 18px; border: 1px solid #E3E6EF; }
.fsg-umbral strong { display: block; font-size: 24px; color: var(--fsg-azul); }
.fsg-umbral span { font-size: 14px; color: var(--tp-grey-1); }
.fsg-cifras--2 { grid-template-columns: 1fr 1fr; }

/* Muro de clientes: grises uniformes, color al pasar el cursor */
.fsg-muro { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; }
.fsg-muro li { background: #fff; border: 1px solid #E9EBF1; border-radius: 16px; height: 130px; display: flex; align-items: center; justify-content: center; padding: 18px; }
.fsg-muro img { max-height: 92px; max-width: 100%; width: auto; filter: grayscale(1); opacity: .75; transition: .25s; }
.fsg-muro li:hover img { filter: none; opacity: 1; }
@media (max-width: 1199px) { .fsg-muro { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 767px) { .fsg-muro { grid-template-columns: repeat(3, 1fr); gap: 10px; } .fsg-muro li { height: 96px; padding: 10px; } .fsg-muro img { max-height: 64px; } }

/* SORO: el widget trae su propio estilo; solo se acota el ancho y la tipografía */
.fsg-soro #soro-blog { font-family: var(--tp-ff-body); }
.fsg-soro #soro-blog { min-height: 320px; }

/* Formulario de diagnóstico (embudo V4): lada + WhatsApp y error */
.fsg-telefono { display: flex; gap: 12px; }
.fsg-telefono__lada { flex: 0 0 130px; }
.fsg-telefono__numero { flex: 1; }
.fsg-form__error { background: rgba(217, 38, 28, .08); color: var(--fsg-rojo); border-radius: 10px; padding: 12px 14px; font-size: 14px; margin-bottom: 14px; }
.fsg-form button[disabled] { opacity: .7; cursor: wait; }
.fsg-lista--2col { columns: 2; column-gap: 40px; } .fsg-lista--2col li { break-inside: avoid; } @media (max-width: 767px) { .fsg-lista--2col { columns: 1; } }
.fsg-footer-iso { flex-direction: column; align-items: flex-start; gap: 10px; } .fsg-footer-iso img { border-radius: 6px; }

/* ==========================================================
   Gráfica comparativa (Inversión): líneas animadas, sin cifras
   ========================================================== */
.fsg-grafica { background: #fff; border: 1px solid #E9EBF1; border-radius: 20px; padding: 34px; margin-bottom: 50px; }
.fsg-grafica__leyenda { list-style: none; padding: 0; margin: 0 0 24px; display: flex; flex-wrap: wrap; gap: 10px 26px; }
.fsg-grafica__leyenda li { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--tp-grey-1); }
.fsg-grafica__fsg { font-weight: 700; color: var(--tp-common-black); }
.fsg-grafica__panel { margin: 0; }
.fsg-grafica__panel figcaption { font-weight: 700; color: var(--tp-common-black); margin-bottom: 8px; }
.fsg-grafica__lienzo { position: relative; }
.fsg-grafica__lienzo svg { width: 100%; height: auto; display: block; overflow: visible; }
.fsg-grafica__rejilla { stroke: #EEF1F6; stroke-width: 1; }
.fsg-grafica__eje { font-size: 13px; fill: var(--tp-grey-5); font-family: var(--tp-ff-body); }
.fsg-grafica__etiqueta { font-size: 14px; font-weight: 700; fill: var(--tp-common-black); font-family: var(--tp-ff-body); opacity: 0; transition: opacity .4s 1.6s; }
.fsg-grafica__guia { stroke: var(--tp-grey-2); stroke-width: 1; stroke-dasharray: 3 3; opacity: 0; }
.fsg-grafica__guia.activa { opacity: 1; }

/* Revelado izquierda→derecha y puntos con retraso al entrar en pantalla */
.fsg-grafica__revelado { transform-box: fill-box; transform-origin: left center; transform: scaleX(0); transition: transform 1.8s cubic-bezier(.2, .7, .2, 1); }
.fsg-grafica__punto { opacity: 0; transition: opacity .35s var(--retraso, 0s); }
.fsg-grafica--visible .fsg-grafica__revelado { transform: scaleX(1); }
.fsg-grafica--visible .fsg-grafica__punto,
.fsg-grafica--visible .fsg-grafica__etiqueta { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .fsg-grafica__revelado { transform: none; transition: none; }
  .fsg-grafica__punto, .fsg-grafica__etiqueta { opacity: 1; transition: none; }
}

.fsg-grafica__tooltip {
  position: absolute; top: 8px; transform: translateX(14px);
  background: #fff; border: 1px solid #E3E6EF; border-radius: 12px; box-shadow: 0 12px 30px rgba(0, 10, 36, .12);
  padding: 12px 14px; font-size: 13px; color: var(--tp-grey-1); min-width: 220px; pointer-events: none; z-index: 5;
}
.fsg-grafica__tooltip.a-la-izquierda { transform: translateX(calc(-100% - 14px)); }
.fsg-grafica__tooltip strong { display: block; color: var(--tp-common-black); margin-bottom: 6px; }
.fsg-grafica__tooltip span { display: flex; align-items: center; gap: 8px; line-height: 1.7; }
.fsg-grafica__tooltip i { width: 10px; height: 10px; border-radius: 3px; flex: 0 0 10px; }
.fsg-grafica__tooltip b { color: var(--tp-common-black); margin-left: auto; padding-left: 10px; }
@media (max-width: 767px) { .fsg-grafica { padding: 22px 16px; } }

/* Muro de clientes: 10 logos → 2 filas completas de 5 */
.fsg-muro { grid-template-columns: repeat(5, 1fr); }
@media (max-width: 991px) { .fsg-muro { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 575px) { .fsg-muro { grid-template-columns: repeat(2, 1fr); } }

/* Franja de cifras del home: margen interior, alineación y tipografía uniforme (el "+" igual al número) */
.fsg-trust .tp-counter-wrapper { padding: 44px 24px 34px; }
.fsg-trust .tp-counter-wrap { justify-content: flex-start !important; height: 100%; padding: 0 36px; }
.fsg-trust .tp-counter-item { width: 100%; }
.fsg-trust .tp-counter-item h4 {
  font-family: var(--tp-ff-heading);
  font-style: normal;
  font-weight: 800;
  font-size: 56px;
  line-height: 1;
  letter-spacing: -.02em;
  color: var(--fsg-azul);
  margin-bottom: 12px;
}
.fsg-trust .tp-counter-item h4 span { font: inherit; color: inherit; }
.fsg-trust .tp-counter-item p { font-size: 16px; line-height: 1.5; color: var(--tp-grey-1); margin: 0; max-width: 300px; }
.fsg-trust .fsg-trust-iso { display: flex; align-items: center; justify-content: center; gap: 14px; padding-top: 26px; margin-top: 30px !important; border-top: 1px solid #EEF1F6; }
.fsg-trust .fsg-trust-iso img { margin: 0; }
@media (max-width: 767px) {
  .fsg-trust .tp-counter-wrap { padding: 14px 8px; }
  .fsg-trust .tp-counter-item h4 { font-size: 44px; }
  .fsg-trust .fsg-trust-iso { flex-direction: column; text-align: center; }
}

/* Header fijo: animación de entrada (antes en animate.css, fuera del paquete por rendimiento) */
@keyframes fadeInDown {
  from { opacity: 0; transform: translate3d(0, -100%, 0); }
  to { opacity: 1; transform: none; }
}

/* Menú lateral: el CTA largo se acomoda en dos líneas sin recortarse */
.tpoffcanvas .fsg-cerrar-menu {
  height: auto;
  min-height: 50px;
  line-height: 1.3;
  padding: 12px 24px;
  white-space: normal;
}

/* WhatsApp flotante (abajo a la derecha). Escritorio: píldora con texto; móvil: círculo.
   El botón "subir" de la plantilla se recorre hacia arriba para no encimarse. */
.fsg-whatsapp {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 60;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 56px;
  padding: 0 22px 0 16px;
  border-radius: 28px;
  background: #25d366;
  color: #fff;
  font-weight: 600;
  font-size: 15px;
  box-shadow: 0 8px 24px rgba(7, 94, 84, .35);
  transition: transform .2s ease, box-shadow .2s ease;
}
.fsg-whatsapp:hover,
.fsg-whatsapp:focus-visible {
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(7, 94, 84, .45);
}
.fsg-whatsapp:focus-visible { outline: 3px solid #075e54; outline-offset: 3px; }
.fsg-whatsapp svg { flex: none; }
.sitio-v2 .scroll-top { right: 24px; }
.sitio-v2 .scroll-top.open { bottom: 96px; }
@media (max-width: 991px) {
  .fsg-whatsapp { width: 56px; padding: 0; justify-content: center; right: 16px; bottom: 16px; }
  .fsg-whatsapp__texto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .sitio-v2 .scroll-top { right: 19px; }
  .sitio-v2 .scroll-top.open { bottom: 84px; }
}
@media print { .fsg-whatsapp { display: none; } }
