/*!
 * Fitfox Plugins — estética de la web.
 * Clases con prefijo .ffp- para no chocar con Elementor ni con el plugin (.fitfox).
 * En Elementor, las clases se ponen en Avanzado → Clases CSS de cada elemento.
 */

:root {
  /* Paleta de fitfox.es */
  --ffp-primario: #FF6401;      /* naranja Fitfox (botones «Prueba gratis», logo) */
  --ffp-primario-osc: #E85400;  /* hover */
  --ffp-primario-txt: #C94A00;  /* naranja para texto y enlaces (contraste AA) */
  --ffp-primario-suave: #FFF1E7;
  --ffp-marino: #001635;        /* «FIT» del logo */
  --ffp-marino-2: #0C2648;
  --ffp-noche: #00050F;
  --ffp-tinta: #121933;         /* títulos */
  --ffp-texto: #3E4150;
  --ffp-tenue: #6E6D79;         /* texto secundario */
  --ffp-fondo: #FFFFFF;
  --ffp-suave: #F3FAFF;         /* fondo suave azulado */
  --ffp-borde: #E3E9F0;
  --ffp-cian: #74D1E7;
  --ffp-morado: #712FFE;
  --ffp-magenta: #CE1C8D;
  --ffp-verde: #52E472;
  --ffp-verde-osc: #1E9E45;
  --ffp-radio: 16px;
  --ffp-radio-s: 10px;
  --ffp-sombra: 0 1px 2px rgba(0, 22, 53, .04), 0 8px 24px -12px rgba(0, 22, 53, .14);
  --ffp-sombra-alta: 0 2px 6px rgba(0, 22, 53, .06), 0 24px 48px -20px rgba(0, 22, 53, .30);
  --ffp-titulos: "Poppins", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ffp-cuerpo: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ffp-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --ffp-cab: 72px;
  --ffp-sub: 56px;
}

/* ── Base ──────────────────────────────────────────────────────────────── */
html { scroll-padding-top: calc(var(--ffp-cab) + var(--ffp-sub) + 16px); }
body {
  font-family: var(--ffp-cuerpo);
  color: var(--ffp-texto);
  background: var(--ffp-fondo);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
body h1, body h2, body h3, body h4, body h5, body h6,
body .elementor-widget-heading .elementor-heading-title {
  font-family: var(--ffp-titulos);
  color: var(--ffp-tinta);
  letter-spacing: -.015em;
  line-height: 1.2;
  font-weight: 700;
}
body .elementor-widget-text-editor { color: var(--ffp-texto); font-family: var(--ffp-cuerpo); }
body .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
body a { color: var(--ffp-primario-txt); }
body a:hover { color: var(--ffp-primario-osc); }
body code, body kbd {
  font-family: var(--ffp-mono);
  font-size: .86em;
  background: var(--ffp-primario-suave);
  color: #B44200;
  padding: .12em .42em;
  border-radius: 6px;
}
::selection { background: var(--ffp-primario); color: #fff; }

/* Tamaños de título (clases en el widget Título) */
body .ffp-h1 .elementor-heading-title { font-size: clamp(36px, 5.2vw, 60px); line-height: 1.06; letter-spacing: -.03em; }
body .ffp-h2 .elementor-heading-title { font-size: clamp(28px, 3.4vw, 42px); line-height: 1.12; letter-spacing: -.025em; }
body .ffp-h3 .elementor-heading-title { font-size: 21px; font-weight: 600; }
body .ffp-h4 .elementor-heading-title { font-size: 17px; font-weight: 600; }
body .ffp-blanco .elementor-heading-title, body .ffp-blanco, body .ffp-blanco p { color: #fff; }
body .ffp-lead { font-size: 19px; line-height: 1.6; color: var(--ffp-tenue); }
body .ffp-lead.ffp-blanco, body .ffp-lead.ffp-blanco p { color: #B8C3D3; }
body .ffp-centro, body .ffp-centro .elementor-heading-title { text-align: center; }
body .ffp-max-640 { max-width: 640px; margin-left: auto; margin-right: auto; }
body .ffp-max-760 { max-width: 760px; margin-left: auto; margin-right: auto; }
.ffp-resaltado { background: linear-gradient(90deg, var(--ffp-morado), var(--ffp-magenta) 55%, var(--ffp-primario)); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* Antetítulo tipo pastilla */
body .ffp-eyebrow .elementor-heading-title,
.ffp-eyebrow-html {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--ffp-cuerpo); font-size: 13px; font-weight: 600;
  letter-spacing: .06em; text-transform: uppercase;
  color: var(--ffp-primario-txt); background: var(--ffp-primario-suave);
  padding: 6px 12px; border-radius: 999px; line-height: 1.3;
}
body .ffp-eyebrow.ffp-eyebrow--osc .elementor-heading-title { background: rgba(255,255,255,.08); color: #FFB27F; }
body .ffp-eyebrow .elementor-heading-title::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor;
}

/* ── Secciones ─────────────────────────────────────────────────────────── */
.e-con.ffp-sec { --padding-top: 96px; --padding-bottom: 96px; }
.e-con.ffp-sec--compacta { --padding-top: 56px; --padding-bottom: 56px; }
.e-con.ffp-sec--suave { background: var(--ffp-suave); }
.e-con.ffp-sec--marino { background: var(--ffp-marino); color: #B8C3D3; }
.e-con.ffp-sec--marino .elementor-heading-title { color: #fff; }
.e-con.ffp-sec--marino .elementor-widget-text-editor { color: #B8C3D3; }
.e-con.ffp-sec--borde { border-top: 1px solid var(--ffp-borde); }
.e-con.ffp-sec--cta {
  background:
    radial-gradient(700px 300px at 100% 0%, rgba(255, 255, 255, .14), transparent 60%),
    linear-gradient(105deg, #712FFE 0%, #CE1C8D 55%, #FF6401 100%);
}
.e-con.ffp-sec--cta .ffp-eyebrow .elementor-heading-title { background: rgba(255,255,255,.14); color: #fff; }
.e-con.ffp-sec--cta .ffp-lead.ffp-blanco, .e-con.ffp-sec--cta .ffp-lead.ffp-blanco p { color: #FFF1E7; }
.e-con.ffp-centrado { --margin-inline-start: auto; --margin-inline-end: auto; margin-left: auto; margin-right: auto; }
.e-con.ffp-sec, .e-con.ffp-hero, .e-con.ffp-hero-mini { --padding-left: 20px; --padding-right: 20px; }
@media (max-width: 767px) {
  .e-con.ffp-sec { --padding-top: 64px; --padding-bottom: 64px; }
}

/* Héroe */
.e-con.ffp-hero {
  --padding-top: 72px; --padding-bottom: 88px;
  background:
    radial-gradient(900px 420px at 85% -10%, rgba(113, 47, 254, .12), transparent 60%),
    radial-gradient(700px 380px at -10% 20%, rgba(255, 100, 1, .10), transparent 60%),
    linear-gradient(180deg, #F3FAFF 0%, #fff 100%);
  overflow: hidden;
}
.e-con.ffp-hero--marino {
  background:
    radial-gradient(800px 400px at 90% 0%, rgba(113, 47, 254, .45), transparent 60%),
    radial-gradient(600px 300px at 0% 100%, rgba(255, 100, 1, .22), transparent 60%),
    var(--ffp-marino);
}
.e-con.ffp-hero-mini { --padding-top: 40px; --padding-bottom: 48px; background: linear-gradient(180deg, #F3FAFF 0%, #fff 100%); border-bottom: 1px solid var(--ffp-borde); }

/* ── Botones (widget Botón con clase ffp-btn) ──────────────────────────── */
body .ffp-btn .elementor-button {
  font-family: var(--ffp-cuerpo); font-weight: 600; font-size: 15px; line-height: 1;
  padding: 15px 22px; border-radius: 12px;
  background: var(--ffp-primario); color: #fff; border: 1.5px solid var(--ffp-primario);
  box-shadow: 0 6px 18px -8px rgba(255, 100, 1, .6);
  transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
}
body .ffp-btn .elementor-button:hover { background: var(--ffp-primario-osc); border-color: var(--ffp-primario-osc); color: #fff; transform: translateY(-1px); }
body .ffp-btn--sec .elementor-button { background: #fff; color: var(--ffp-tinta); border-color: var(--ffp-borde); box-shadow: var(--ffp-sombra); }
body .ffp-btn--sec .elementor-button:hover { background: #fff; color: var(--ffp-primario); border-color: var(--ffp-primario); }
body .ffp-btn--claro .elementor-button { background: #fff; color: var(--ffp-marino); border-color: #fff; box-shadow: none; }
body .ffp-btn--claro .elementor-button:hover { background: var(--ffp-primario-suave); color: var(--ffp-marino); border-color: var(--ffp-primario-suave); }
body .ffp-btn--borde-claro .elementor-button { background: transparent; color: #fff; border-color: rgba(255,255,255,.35); box-shadow: none; }
body .ffp-btn--borde-claro .elementor-button:hover { background: rgba(255,255,255,.08); color: #fff; border-color: #fff; }
body .ffp-btn--texto .elementor-button { background: transparent; border-color: transparent; color: var(--ffp-primario); box-shadow: none; padding-left: 0; padding-right: 0; }
body .ffp-btn--texto .elementor-button:hover { background: transparent; color: var(--ffp-primario-osc); border-color: transparent; }
body .ffp-btn--peq .elementor-button { padding: 11px 16px; font-size: 14px; border-radius: 10px; }

/* ── Tarjetas (contenedor con clase ffp-card) ──────────────────────────── */
.e-con.ffp-card {
  background: #fff; border: 1px solid var(--ffp-borde); border-radius: var(--ffp-radio);
  --padding-top: 28px; --padding-bottom: 28px; --padding-left: 28px; --padding-right: 28px;
  box-shadow: var(--ffp-sombra);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.e-con.ffp-card--suave { background: var(--ffp-suave); box-shadow: none; }
.e-con.ffp-card--marino { background: var(--ffp-marino-2); border-color: rgba(255,255,255,.08); box-shadow: none; }
.e-con.ffp-card--marino .elementor-heading-title { color: #fff; }
.e-con.ffp-card--marino .elementor-widget-text-editor { color: #9DAABD; }
a.e-con.ffp-card, .e-con.ffp-card--link { text-decoration: none; color: inherit; }
a.e-con.ffp-card:hover, .e-con.ffp-card--link:hover { transform: translateY(-3px); box-shadow: var(--ffp-sombra-alta); border-color: #FFC9A6; }
a.e-con.ffp-card:hover .elementor-heading-title { color: var(--ffp-primario); }
.e-con.ffp-card--destacada { border: 2px solid var(--ffp-primario); }

/* Pequeño texto bajo título de tarjeta */
body .ffp-meta, body .ffp-meta p { font-size: 13px; color: var(--ffp-tenue); }
body .ffp-texto-s, body .ffp-texto-s p { font-size: 15px; line-height: 1.6; }

/* Icon box (widget Caja de icono con clase ffp-feature) */
body .ffp-feature .elementor-icon-box-wrapper { text-align: left; }
body .ffp-feature .elementor-icon-box-icon { margin-bottom: 16px !important; }
body .ffp-feature .elementor-icon {
  width: 48px; height: 48px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center;
  background: var(--ffp-primario-suave); color: var(--ffp-primario); font-size: 22px; fill: var(--ffp-primario);
}
body .ffp-feature .elementor-icon svg { width: 22px; height: 22px; fill: var(--ffp-primario); }
body .ffp-feature .elementor-icon-box-title { font-family: var(--ffp-titulos); font-size: 18px; font-weight: 600; color: var(--ffp-tinta); margin: 0 0 6px; }
body .ffp-feature .elementor-icon-box-title a { color: inherit; }
body .ffp-feature .elementor-icon-box-description { font-size: 15px; line-height: 1.6; color: var(--ffp-tenue); margin: 0; }
body .ffp-feature--osc .elementor-icon { background: rgba(255,255,255,.07); color: #FFB27F; }
body .ffp-feature--osc .elementor-icon svg { fill: #FFB27F; }
body .ffp-feature--osc .elementor-icon-box-title { color: #fff; }
body .ffp-feature--osc .elementor-icon-box-description { color: #9DAABD; }

/* Lista con iconos de check (widget Lista de iconos con clase ffp-checks) */
body .ffp-checks .elementor-icon-list-item { align-items: flex-start; padding-bottom: 10px; }
body .ffp-checks .elementor-icon-list-icon { margin-top: 4px; }
body .ffp-checks .elementor-icon-list-icon i, body .ffp-checks .elementor-icon-list-icon svg { color: var(--ffp-verde-osc); fill: var(--ffp-verde-osc); width: 16px; font-size: 16px; }
body .ffp-checks .elementor-icon-list-text { color: var(--ffp-texto); font-size: 16px; padding-left: 8px; }
body .ffp-checks.ffp-blanco .elementor-icon-list-text { color: #B8C3D3; }

/* ── Bloque de cifras ──────────────────────────────────────────────────── */
.ffp-cifras { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border: 1px solid var(--ffp-borde); border-radius: var(--ffp-radio); background: #fff; overflow: hidden; }
.ffp-cifras > div { padding: 22px 24px; border-left: 1px solid var(--ffp-borde); }
.ffp-cifras > div:first-child { border-left: 0; }
.ffp-cifras strong { display: block; font-family: var(--ffp-titulos); font-size: 30px; color: var(--ffp-tinta); line-height: 1.1; letter-spacing: -.02em; }
.ffp-cifras span { font-size: 14px; color: var(--ffp-tenue); }
@media (max-width: 767px) {
  .ffp-cifras { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ffp-cifras > div:nth-child(3) { border-left: 0; }
  .ffp-cifras > div:nth-child(n+3) { border-top: 1px solid var(--ffp-borde); }
}

/* ── Marco de navegador para las demos en vivo ─────────────────────────── */
.e-con.ffp-marco {
  background: #fff; border: 1px solid var(--ffp-borde); border-radius: 18px;
  box-shadow: var(--ffp-sombra-alta); overflow: hidden;
  --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0;
}
.ffp-marco__barra {
  display: flex; align-items: center; gap: 8px; height: 42px; padding: 0 16px;
  background: #F5F8FB; border-bottom: 1px solid var(--ffp-borde);
  font-family: var(--ffp-mono); font-size: 12px; color: var(--ffp-tenue);
}
.ffp-marco__barra i { width: 11px; height: 11px; border-radius: 50%; background: #E1E7EE; display: block; }
.ffp-marco__barra i:nth-child(1) { background: #FF6B5E; } .ffp-marco__barra i:nth-child(2) { background: #FFC542; } .ffp-marco__barra i:nth-child(3) { background: #2BCB6A; }
.ffp-marco__barra span { margin-left: 10px; background: #fff; border: 1px solid var(--ffp-borde); border-radius: 8px; padding: 4px 12px; flex: 1; max-width: 360px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.e-con.ffp-marco > .elementor-widget-html:first-child { width: 100%; }
.e-con.ffp-marco .elementor-widget-shortcode { padding: 24px; width: 100%; }
@media (max-width: 767px) { .e-con.ffp-marco .elementor-widget-shortcode { padding: 14px; } }

/* Escenario de demo con selector de dispositivo */
.ffp-escenario__barra { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.ffp-dispositivos { display: inline-flex; padding: 4px; background: #fff; border: 1px solid var(--ffp-borde); border-radius: 12px; gap: 2px; }
.ffp-dispositivos button {
  font: 600 13px/1 var(--ffp-cuerpo); color: var(--ffp-tenue); background: transparent; border: 0;
  padding: 9px 14px; border-radius: 9px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px;
}
.ffp-dispositivos button:hover { color: var(--ffp-tinta); background: var(--ffp-suave); }
.ffp-dispositivos button[aria-pressed="true"] { background: var(--ffp-primario); color: #fff; }
.ffp-escenario__nota { font-size: 13px; color: var(--ffp-tenue); }
.e-con.ffp-escenario { transition: max-width .35s ease; margin-left: auto; margin-right: auto; width: 100%; max-width: 100%; }
.e-con.ffp-escenario[data-ancho="tablet"] { max-width: 820px; }
.e-con.ffp-escenario[data-ancho="movil"] { max-width: 400px; }
.e-con.ffp-escenario--estrecho { max-width: 420px; }

/* Aviso cuando la demo no está conectada (lo pinta el plugin solo a administradores) */
.fitfox-aviso-admin { padding: 16px 18px; border-radius: 12px; background: #FFF6EC; color: #8A4B10; border: 1px dashed #F3B77A; font-size: 14px; }

/* ── Código con botón Copiar ───────────────────────────────────────────── */
.ffp-code {
  position: relative; display: flex; align-items: center; gap: 12px;
  background: var(--ffp-marino); color: #E6ECF5; border-radius: 12px;
  padding: 14px 14px 14px 18px; font-family: var(--ffp-mono); font-size: 14px; line-height: 1.55;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
}
.ffp-code code { background: none; color: inherit; padding: 0; font-size: inherit; flex: 1; overflow-x: auto; white-space: pre; scrollbar-width: thin; }
.ffp-code .t { color: #74D1E7; } .ffp-code .a { color: #FFB27F; } .ffp-code .v { color: #52E472; }
.ffp-code--bloque { display: block; padding: 18px 20px; }
.ffp-code--bloque code { display: block; }
.ffp-code--bloque .ffp-copiar { position: absolute; top: 10px; right: 10px; }
.ffp-copiar {
  flex: none; font: 600 12px/1 var(--ffp-cuerpo); color: #fff; background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.14); border-radius: 8px; padding: 8px 11px; cursor: pointer;
  transition: background .15s ease;
}
.ffp-copiar:hover { background: rgba(255,255,255,.18); }
.ffp-copiar.es-ok { background: var(--ffp-verde); border-color: var(--ffp-verde); }
.ffp-code-lista { display: grid; gap: 10px; }
.ffp-code-fila { display: grid; grid-template-columns: minmax(0, 1fr) 210px; gap: 16px; align-items: center; }
.ffp-code-fila p { margin: 0; font-size: 14px; color: var(--ffp-tenue); }
@media (max-width: 767px) { .ffp-code-fila { grid-template-columns: 1fr; gap: 4px; } .ffp-code-fila p { order: -1; } }

/* ── Tablas ────────────────────────────────────────────────────────────── */
.ffp-tabla-wrap { overflow-x: auto; border: 1px solid var(--ffp-borde); border-radius: 14px; background: #fff; }
.ffp-tabla { width: 100%; border-collapse: collapse; font-size: 14.5px; margin: 0; }
.ffp-tabla th, .ffp-tabla td { text-align: left; padding: 12px 16px; border: 0; border-bottom: 1px solid var(--ffp-borde); vertical-align: top; }
.ffp-tabla thead th { background: var(--ffp-suave); font-family: var(--ffp-cuerpo); font-weight: 600; color: var(--ffp-tinta); font-size: 13px; text-transform: uppercase; letter-spacing: .04em; }
.ffp-tabla tbody tr:last-child td { border-bottom: 0; }
.ffp-tabla tbody tr:nth-child(even) td { background: #FAFCFE; }
.ffp-tabla td:first-child { white-space: nowrap; }
.ffp-tabla .ffp-ops { display: flex; flex-wrap: wrap; gap: 4px; }
.ffp-tabla .ffp-ops code { font-size: 12px; }
.ffp-tabla .ffp-defecto { color: var(--ffp-tenue); font-size: 13px; }
.ffp-tabla--attr, .ffp-tabla--attr5 { table-layout: fixed; min-width: 640px; }
.ffp-tabla--attr th:nth-child(1) { width: 24%; } .ffp-tabla--attr th:nth-child(2) { width: 36%; }
.ffp-tabla--attr th:nth-child(3) { width: 24%; } .ffp-tabla--attr th:nth-child(4) { width: 16%; }
.ffp-tabla--attr5 th:nth-child(1) { width: 20%; } .ffp-tabla--attr5 th:nth-child(2) { width: 30%; }
.ffp-tabla--attr5 th:nth-child(3) { width: 16%; } .ffp-tabla--attr5 th:nth-child(4) { width: 20%; } .ffp-tabla--attr5 th:nth-child(5) { width: 14%; }
.ffp-tabla--attr td, .ffp-tabla--attr5 td { overflow-wrap: anywhere; }
.ffp-tabla--attr td:first-child, .ffp-tabla--attr5 td:first-child { white-space: normal; }
.ffp-grupo-tabla { margin: 36px 0 12px; font-family: var(--ffp-titulos); font-size: 19px; color: var(--ffp-tinta); font-weight: 600; }
.ffp-grupo-tabla:first-child { margin-top: 0; }

/* ── Pasos numerados ───────────────────────────────────────────────────── */
.ffp-pasos { list-style: none; margin: 0; padding: 0; counter-reset: paso; display: grid; gap: 4px; }
.ffp-pasos > li { counter-increment: paso; position: relative; padding: 0 0 26px 60px; }
.ffp-pasos > li::before {
  content: counter(paso); position: absolute; left: 0; top: 0; width: 40px; height: 40px; border-radius: 50%;
  background: var(--ffp-primario); color: #fff; font: 700 16px/40px var(--ffp-titulos); text-align: center;
  box-shadow: 0 0 0 6px var(--ffp-primario-suave);
}
.ffp-pasos > li::after { content: ""; position: absolute; left: 19.5px; top: 48px; bottom: 6px; width: 1px; background: var(--ffp-borde); }
.ffp-pasos > li:last-child::after { display: none; }
.ffp-pasos h3, .ffp-pasos h4 { margin: 6px 0 6px; font-size: 18px; font-weight: 600; }
.ffp-pasos p { margin: 0 0 10px; color: var(--ffp-texto); }
.ffp-ruta { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: var(--ffp-tinta); background: var(--ffp-suave); border: 1px solid var(--ffp-borde); border-radius: 8px; padding: 4px 10px; }
.ffp-ruta i { font-style: normal; color: var(--ffp-tenue); font-weight: 400; }

/* ── Avisos ────────────────────────────────────────────────────────────── */
.ffp-aviso { display: flex; gap: 14px; padding: 18px 20px; border-radius: 14px; background: var(--ffp-primario-suave); border: 1px solid #FFD7BC; color: var(--ffp-tinta); font-size: 15px; line-height: 1.6; }
.ffp-aviso::before { content: "i"; flex: none; width: 24px; height: 24px; border-radius: 50%; background: var(--ffp-primario); color: #fff; font: 700 14px/24px var(--ffp-titulos); text-align: center; }
.ffp-aviso p { margin: 0; } .ffp-aviso p + p { margin-top: 6px; }
.ffp-aviso--ok { background: #ECFDF3; border-color: #B7EBCB; } .ffp-aviso--ok::before { content: "✓"; background: var(--ffp-verde); }
.ffp-aviso--ojo { background: #FFF6EC; border-color: #FBD3AE; } .ffp-aviso--ojo::before { content: "!"; background: var(--ffp-primario); }

/* ── Preguntas frecuentes ──────────────────────────────────────────────── */
.ffp-faq { display: grid; gap: 12px; }
.ffp-faq details { background: #fff; border: 1px solid var(--ffp-borde); border-radius: 14px; padding: 0 22px; transition: box-shadow .2s ease, border-color .2s ease; }
.ffp-faq details[open] { box-shadow: var(--ffp-sombra); border-color: #FFD2B5; }
.ffp-faq summary { cursor: pointer; list-style: none; padding: 20px 36px 20px 0; position: relative; font: 600 17px/1.4 var(--ffp-titulos); color: var(--ffp-tinta); }
.ffp-faq summary::-webkit-details-marker { display: none; }
.ffp-faq summary::after { content: ""; position: absolute; right: 2px; top: 50%; width: 10px; height: 10px; border-right: 2px solid var(--ffp-primario); border-bottom: 2px solid var(--ffp-primario); transform: translateY(-70%) rotate(45deg); transition: transform .2s ease; }
.ffp-faq details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.ffp-faq details > div { padding: 0 0 20px; color: var(--ffp-texto); }
.ffp-faq details > div p:last-child { margin-bottom: 0; }

/* ── Miniaturas de las vistas (mismo dibujo que el generador del plugin) ─ */
.ffp-mini { display: block; width: 100%; height: auto; }
.ffp-mini .f { fill: #fff; stroke: #C8D2DE; stroke-width: 1.1; }
.ffp-mini .ab { stroke: var(--ffp-primario); stroke-width: 1.6; }
.ffp-mini .l { stroke: #D8E0EA; stroke-width: 1; fill: none; }
.ffp-mini .l.d { stroke-dasharray: 2 2; }
.ffp-mini .l2 { stroke: #9FAABA; stroke-width: 2.4; stroke-linecap: round; fill: none; }
.ffp-mini .l2.ac { stroke: var(--ffp-primario); }
.ffp-mini .l2f { fill: #C8D2DE; }
.ffp-mini .a { fill: var(--ffp-primario); }
.ffp-mini .a.o { opacity: .55; }
.ffp-thumb { background: linear-gradient(160deg, #F3FAFF, #E3F4FA); border-radius: 12px; padding: 18px 26px; border: 1px solid #D8EEF6; }
.ffp-thumb--grande { padding: 34px 54px; }
.ffp-thumbs-fila { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.ffp-thumbs-fila .ffp-thumb { padding: 10px 12px; }

/* Pastillas / chips */
.ffp-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ffp-chip { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; color: var(--ffp-texto); background: #fff; border: 1px solid var(--ffp-borde); border-radius: 999px; padding: 6px 12px; line-height: 1.2; }
.ffp-chip--primario { background: var(--ffp-primario-suave); border-color: #FFD7BC; color: var(--ffp-primario); }
.ffp-chip--osc { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); color: #B8C3D3; }
.ffp-chip b { color: var(--ffp-tinta); }
.ffp-chip--osc b { color: #fff; }

/* Contador de vistas en tarjetas de familia */
.ffp-cuenta { font: 600 13px/1 var(--ffp-cuerpo); color: var(--ffp-primario); }

/* ── Maqueta del generador (landing) ───────────────────────────────────── */
.ffp-gen { display: grid; grid-template-columns: 240px minmax(0, 1fr); min-height: 380px; font-size: 13px; }
.ffp-gen__main, .ffp-gen__prev { min-width: 0; }
.ffp-gen__lado { background: #F7FAFD; border-right: 1px solid var(--ffp-borde); padding: 16px; display: grid; gap: 14px; align-content: start; }
.ffp-gen__grupo b { display: block; font: 600 11px/1.2 var(--ffp-cuerpo); text-transform: uppercase; letter-spacing: .06em; color: var(--ffp-tenue); margin-bottom: 8px; }
.ffp-gen__campo { display: flex; justify-content: space-between; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--ffp-borde); border-radius: 8px; padding: 7px 10px; margin-bottom: 6px; color: var(--ffp-tinta); }
.ffp-gen__campo em { font-style: normal; color: var(--ffp-tenue); }
.ffp-gen__sw { width: 28px; height: 16px; border-radius: 99px; background: var(--ffp-primario); position: relative; flex: none; }
.ffp-gen__sw::after { content: ""; position: absolute; right: 2px; top: 2px; width: 12px; height: 12px; border-radius: 50%; background: #fff; }
.ffp-gen__sw.no { background: #D5DDE7; } .ffp-gen__sw.no::after { right: auto; left: 2px; }
.ffp-gen__color { width: 16px; height: 16px; border-radius: 5px; background: var(--ffp-primario); }
.ffp-gen__main { padding: 16px; display: grid; grid-template-rows: auto 1fr auto; gap: 12px; }
.ffp-gen__top { display: flex; justify-content: space-between; align-items: center; }
.ffp-gen__top .ffp-dispositivos button { padding: 6px 10px; font-size: 12px; }
.ffp-gen__prev { border: 1px dashed #CBD6E2; border-radius: 12px; padding: 14px; background: #fff; }
.ffp-gen__tabla { display: grid; grid-template-columns: 44px repeat(5, 1fr); gap: 4px; font-size: 11px; }
.ffp-gen__tabla > span { padding: 6px 4px; color: var(--ffp-tenue); text-align: center; }
.ffp-gen__tabla > i { font-style: normal; display: block; border-radius: 6px; padding: 6px; font-weight: 600; color: #fff; font-size: 11px; line-height: 1.2; }
.ffp-gen__tabla > i.v { background: transparent; }
.ffp-gen__out { display: flex; gap: 8px; align-items: center; background: var(--ffp-marino); color: #E6ECF5; border-radius: 10px; padding: 9px 9px 9px 12px; font-family: var(--ffp-mono); font-size: 12px; }
.ffp-gen__out code { background: none; color: inherit; padding: 0; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ffp-gen__out b { font: 600 11px/1 var(--ffp-cuerpo); background: var(--ffp-primario); padding: 7px 10px; border-radius: 7px; }
@media (max-width: 767px) { .ffp-gen { grid-template-columns: 1fr; } .ffp-gen__lado { display: none; } }

/* Diagrama de conexión (seguridad) */
.ffp-flujo { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: center; gap: 10px; }
.ffp-flujo__nodo { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); border-radius: 14px; padding: 18px; text-align: center; color: #B8C3D3; font-size: 14px; }
.ffp-flujo__nodo strong { display: block; color: #fff; font-family: var(--ffp-titulos); font-size: 16px; margin-bottom: 4px; }
.ffp-flujo__nodo--centro { background: var(--ffp-primario); border-color: var(--ffp-primario); color: #FFE3D0; }
.ffp-flujo__flecha { color: #7C8AA0; font-size: 12px; text-align: center; line-height: 1.3; }
.ffp-flujo__flecha::before { content: "⟷"; display: block; font-size: 22px; color: #FFB27F; }
@media (max-width: 767px) { .ffp-flujo { grid-template-columns: 1fr; } .ffp-flujo__flecha::before { content: "↕"; } }

/* ── Cabecera ──────────────────────────────────────────────────────────── */
.ffp-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.92); backdrop-filter: saturate(160%) blur(12px); -webkit-backdrop-filter: saturate(160%) blur(12px); border-bottom: 1px solid var(--ffp-borde); }
.admin-bar .ffp-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ffp-header { top: 46px; } }
.ffp-header__in { max-width: 1240px; margin: 0 auto; padding: 0 20px; height: var(--ffp-cab); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.ffp-header__marca { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; }
.ffp-header__logo { height: 36px; width: auto; display: block; }
.ffp-header__etiqueta { font: 600 12px/1 var(--ffp-cuerpo); letter-spacing: .06em; text-transform: uppercase; color: var(--ffp-primario-txt); background: var(--ffp-primario-suave); padding: 6px 9px; border-radius: 999px; }
.ffp-header__etiqueta--osc { color: #FFB27F; background: rgba(255,255,255,.08); }
.ffp-header__mono { width: 34px; height: 34px; border-radius: 10px; background: var(--ffp-primario); color: #fff; font: 700 16px/34px var(--ffp-titulos); text-align: center; letter-spacing: -.04em; box-shadow: 0 6px 16px -6px rgba(255,100,1,.6); }
.ffp-header__nombre { font: 700 20px/1 var(--ffp-titulos); color: var(--ffp-tinta); letter-spacing: -.03em; }
.ffp-header__nombre span { font-weight: 500; color: var(--ffp-tenue); margin-left: 4px; }
.ffp-header__nav { display: flex; }
.ffp-header__menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 4px; }
.ffp-header__menu > li { position: relative; }
.ffp-header__menu a { display: block; padding: 10px 14px; border-radius: 10px; font-weight: 500; font-size: 15px; color: var(--ffp-tinta); text-decoration: none; }
.ffp-header__menu a:hover, .ffp-header__menu .current-menu-item > a, .ffp-header__menu .current-menu-ancestor > a { color: var(--ffp-primario); background: var(--ffp-primario-suave); }
.ffp-header__menu .menu-item-has-children > a::after { content: ""; display: inline-block; width: 6px; height: 6px; margin-left: 8px; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: translateY(-3px) rotate(45deg); }
.ffp-header__menu .sub-menu { list-style: none; margin: 0; padding: 8px; position: absolute; top: calc(100% + 6px); left: 0; min-width: 260px; background: #fff; border: 1px solid var(--ffp-borde); border-radius: 14px; box-shadow: var(--ffp-sombra-alta); opacity: 0; visibility: hidden; transform: translateY(6px); transition: all .16s ease; }
.ffp-header__menu li:hover > .sub-menu, .ffp-header__menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.ffp-header__menu .sub-menu a { padding: 10px 12px; font-size: 14.5px; }
.ffp-header__menu .ffp-menu-cta > a { background: var(--ffp-primario); color: #fff; padding: 11px 18px; margin-left: 8px; font-weight: 600; box-shadow: 0 6px 16px -8px rgba(255,100,1,.7); }
.ffp-header__menu .ffp-menu-cta > a:hover { background: var(--ffp-primario-osc); color: #fff; }
.ffp-header__toggle { display: none; width: 44px; height: 44px; border-radius: 10px; border: 1px solid var(--ffp-borde); background: #fff; cursor: pointer; padding: 0; }
.ffp-header__burger, .ffp-header__burger::before, .ffp-header__burger::after { display: block; width: 18px; height: 2px; background: var(--ffp-tinta); border-radius: 2px; margin: 0 auto; position: relative; transition: transform .2s ease; }
.ffp-header__burger::before, .ffp-header__burger::after { content: ""; position: absolute; left: 0; }
.ffp-header__burger::before { top: -6px; } .ffp-header__burger::after { top: 6px; }
.ffp-header.es-abierta .ffp-header__burger { background: transparent; }
.ffp-header.es-abierta .ffp-header__burger::before { top: 0; transform: rotate(45deg); }
.ffp-header.es-abierta .ffp-header__burger::after { top: 0; transform: rotate(-45deg); }
@media (max-width: 960px) {
  .ffp-header__toggle { display: block; }
  .ffp-header__nav { display: none; position: absolute; left: 0; right: 0; top: var(--ffp-cab); background: #fff; border-bottom: 1px solid var(--ffp-borde); padding: 12px 16px 20px; box-shadow: var(--ffp-sombra-alta); max-height: calc(100vh - var(--ffp-cab)); overflow-y: auto; }
  .ffp-header.es-abierta .ffp-header__nav { display: block; }
  .ffp-header__menu { flex-direction: column; align-items: stretch; }
  .ffp-header__menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 0 12px; min-width: 0; }
  .ffp-header__menu .ffp-menu-cta > a { margin: 8px 0 0; text-align: center; }
}

/* ── Barra del plugin ──────────────────────────────────────────────────── */
.ffp-subnav { position: sticky; top: var(--ffp-cab); z-index: 90; background: var(--ffp-marino); color: #B8C3D3; }
.admin-bar .ffp-subnav { top: calc(var(--ffp-cab) + 32px); }
.ffp-subnav__in { max-width: 1240px; margin: 0 auto; padding: 0 20px; height: var(--ffp-sub); display: flex; align-items: center; gap: 20px; }
.ffp-subnav a { text-decoration: none; }
.ffp-subnav__marca { display: inline-flex; align-items: center; gap: 10px; color: #fff; font: 600 16px/1 var(--ffp-titulos); white-space: nowrap; }
.ffp-subnav__marca:hover { color: #fff; }
.ffp-subnav__ico { width: 30px; height: 30px; border-radius: 8px; background: var(--ffp-primario); display: inline-flex; align-items: center; justify-content: center; color: #fff; }
.ffp-subnav__ver { font: 500 11px/1 var(--ffp-mono); color: #FFB27F; background: rgba(255,255,255,.08); padding: 4px 7px; border-radius: 6px; }
.ffp-subnav__menu { list-style: none; margin: 0 0 0 8px; padding: 0; display: flex; align-items: center; gap: 2px; flex: 1; height: 100%; }
.ffp-subnav__menu > li { position: relative; height: 100%; display: flex; align-items: center; }
.ffp-subnav__menu > li > a { display: inline-flex; align-items: center; gap: 4px; color: #B8C3D3; font-size: 14.5px; font-weight: 500; padding: 8px 12px; border-radius: 8px; }
.ffp-subnav__menu > li > a:hover { color: #fff; background: rgba(255,255,255,.07); }
.ffp-subnav__menu > li > a.es-actual { color: #fff; box-shadow: inset 0 -2px 0 var(--ffp-primario); border-radius: 0; background: none; }
.ffp-subnav__menu > li > a svg { width: 14px; height: 14px; opacity: .7; }
.ffp-subnav__panel { position: absolute; top: 100%; left: 0; background: #fff; color: var(--ffp-texto); border: 1px solid var(--ffp-borde); border-radius: 0 0 16px 16px; box-shadow: var(--ffp-sombra-alta); padding: 18px; min-width: 280px; opacity: 0; visibility: hidden; transform: translateY(4px); transition: all .16s ease; }
.es-mega .ffp-subnav__panel { min-width: 760px; left: -120px; }
.ffp-subnav__menu li:hover > .ffp-subnav__panel, .ffp-subnav__menu li:focus-within > .ffp-subnav__panel { opacity: 1; visibility: visible; transform: none; }
.ffp-subnav__cols { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 18px; }
.ffp-subnav__grupo { font: 600 11px/1.2 var(--ffp-cuerpo); letter-spacing: .07em; text-transform: uppercase; color: var(--ffp-tenue); margin: 0 0 8px; }
.ffp-subnav__col ul { list-style: none; margin: 0; padding: 0; }
.ffp-subnav__col a { display: block; padding: 6px 8px; margin: 0 -8px; border-radius: 8px; color: var(--ffp-tinta); font-size: 14px; }
.ffp-subnav__col a:hover, .ffp-subnav__col a.es-actual { background: var(--ffp-primario-suave); color: var(--ffp-primario); }
.ffp-subnav__todas { display: inline-flex; align-items: center; gap: 4px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--ffp-borde); width: 100%; font-weight: 600; font-size: 14px; color: var(--ffp-primario); }
.ffp-subnav__todas svg { width: 16px; height: 16px; }
.ffp-subnav__cta { margin-left: auto; white-space: nowrap; background: #fff; color: var(--ffp-marino); font-weight: 600; font-size: 14px; padding: 9px 16px; border-radius: 10px; }
.ffp-subnav__cta:hover { background: var(--ffp-primario-suave); color: var(--ffp-marino); }
.ffp-subnav__toggle { display: none; margin-left: auto; align-items: center; gap: 6px; background: rgba(255,255,255,.08); color: #fff; border: 0; border-radius: 8px; padding: 8px 12px; font: 600 14px/1 var(--ffp-cuerpo); cursor: pointer; }
@media (max-width: 1080px) {
  .ffp-subnav__toggle { display: inline-flex; }
  .ffp-subnav__cta { display: none; }
  .ffp-subnav__menu { display: none; position: absolute; left: 0; right: 0; top: var(--ffp-sub); background: var(--ffp-marino); flex-direction: column; align-items: stretch; height: auto; padding: 8px 16px 16px; margin: 0; max-height: calc(100vh - var(--ffp-cab) - var(--ffp-sub)); overflow-y: auto; }
  .ffp-subnav.es-abierta .ffp-subnav__menu { display: flex; }
  .ffp-subnav__menu > li { height: auto; flex-direction: column; align-items: stretch; }
  .ffp-subnav__menu > li > a.es-actual { box-shadow: inset 3px 0 0 var(--ffp-primario); padding-left: 14px; }
  .ffp-subnav__panel { display: none; }
}

/* ── Migas, docs y paginación ──────────────────────────────────────────── */
.ffp-migas { display: flex; flex-wrap: wrap; gap: 8px; font-size: 13.5px; color: var(--ffp-tenue); }
.ffp-migas a { color: var(--ffp-tenue); text-decoration: none; }
.ffp-migas a:hover { color: var(--ffp-primario); }
.ffp-migas [aria-current] { color: var(--ffp-tinta); font-weight: 500; }

.e-con.ffp-docs-lado { position: sticky; top: calc(var(--ffp-cab) + var(--ffp-sub) + 24px); align-self: flex-start; }
.ffp-docnav { font-size: 14.5px; }
.ffp-docnav__tit { font: 600 16px/1.3 var(--ffp-titulos); margin: 0 0 14px; }
.ffp-docnav__tit a { color: var(--ffp-tinta); text-decoration: none; }
.ffp-docnav__grupo { font: 600 11px/1.2 var(--ffp-cuerpo); letter-spacing: .07em; text-transform: uppercase; color: var(--ffp-tenue); margin: 18px 0 6px; }
.ffp-docnav ul { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--ffp-borde); }
.ffp-docnav li a { display: block; padding: 7px 0 7px 14px; margin-left: -1px; border-left: 2px solid transparent; color: var(--ffp-texto); text-decoration: none; }
.ffp-docnav li a:hover { color: var(--ffp-primario); }
.ffp-docnav li a.es-actual { color: var(--ffp-primario); border-left-color: var(--ffp-primario); font-weight: 600; }
@media (max-width: 1024px) { .e-con.ffp-docs-lado { position: static; } }

/* Contenido largo de documentación (widget Editor de texto con clase ffp-prosa) */
body .ffp-prosa { font-size: 16.5px; line-height: 1.75; }
body .ffp-prosa h2 { font-size: 26px; margin: 44px 0 14px; padding-top: 4px; }
body .ffp-prosa h3 { font-size: 19px; margin: 30px 0 10px; font-weight: 600; }
body .ffp-prosa h2:first-child, body .ffp-prosa h3:first-child { margin-top: 0; }
body .ffp-prosa ul, body .ffp-prosa ol { padding-left: 1.3em; margin: 0 0 1.2em; }
body .ffp-prosa li { margin-bottom: 6px; }
body .ffp-prosa li::marker { color: var(--ffp-primario); }
body .ffp-prosa .ffp-tabla-wrap, body .ffp-prosa .ffp-aviso, body .ffp-prosa .ffp-code, body .ffp-prosa .ffp-pasos { margin: 18px 0 24px; }

.ffp-prevnext { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ffp-prevnext__a { display: block; border: 1px solid var(--ffp-borde); border-radius: 14px; padding: 16px 20px; text-decoration: none; background: #fff; transition: border-color .15s ease, box-shadow .15s ease; }
.ffp-prevnext__a:hover { border-color: var(--ffp-primario); box-shadow: var(--ffp-sombra); }
.ffp-prevnext__a small { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; color: var(--ffp-tenue); }
.ffp-prevnext__a small svg { width: 15px; height: 15px; }
.ffp-prevnext__a strong { display: block; font: 600 16px/1.3 var(--ffp-titulos); color: var(--ffp-tinta); margin-top: 4px; }
.ffp-prevnext__a.es-next { text-align: right; grid-column: 2; }
.ffp-prevnext__a.es-next small { justify-content: flex-end; }
@media (max-width: 600px) { .ffp-prevnext { grid-template-columns: 1fr; } .ffp-prevnext__a.es-next { grid-column: 1; } }

/* ── Novedades (changelog) ─────────────────────────────────────────────── */
.ffp-version { display: grid; grid-template-columns: 180px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--ffp-borde); }
.ffp-version:first-child { border-top: 0; padding-top: 0; }
.ffp-version__tag { font: 700 22px/1 var(--ffp-titulos); color: var(--ffp-tinta); }
.ffp-version__tag small { display: block; margin-top: 8px; font: 500 13px/1 var(--ffp-cuerpo); color: var(--ffp-tenue); }
.ffp-version ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ffp-version li { display: flex; gap: 10px; align-items: baseline; }
.ffp-etq { flex: none; font: 600 11px/1 var(--ffp-cuerpo); text-transform: uppercase; letter-spacing: .05em; padding: 5px 8px; border-radius: 6px; background: var(--ffp-primario-suave); color: var(--ffp-primario); }
.ffp-etq--nuevo { background: #ECFDF3; color: #0A7F4B; }
.ffp-etq--mejora { background: #FFF3EA; color: #B4501A; }
.ffp-etq--seguridad { background: #F3EEFF; color: #6A3FD0; }
@media (max-width: 600px) { .ffp-version { grid-template-columns: 1fr; gap: 12px; } }

/* ── Pie ───────────────────────────────────────────────────────────────── */
.ffp-footer { background: var(--ffp-noche); color: #9DAABD; font-size: 15px; }
.ffp-footer__in { max-width: 1240px; margin: 0 auto; padding: 64px 20px 40px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 2fr); gap: 48px; }
.ffp-footer .ffp-header__nombre { color: #fff; }
.ffp-footer .ffp-header__nombre span { color: #8593A8; }
.ffp-footer__marca p { margin: 16px 0 0; max-width: 360px; line-height: 1.6; }
.ffp-footer__menu { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ffp-footer__menu > li > a { display: block; color: #fff; font: 600 15px/1.3 var(--ffp-titulos); margin-bottom: 12px; text-decoration: none; }
.ffp-footer__menu .sub-menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ffp-footer__menu .sub-menu a { color: #9DAABD; text-decoration: none; }
.ffp-footer__menu .sub-menu a:hover { color: #fff; }
.ffp-footer__legal { max-width: 1240px; margin: 0 auto; padding: 20px; border-top: 1px solid rgba(255,255,255,.08); display: flex; justify-content: space-between; gap: 16px; font-size: 13px; color: #8593A8; }
@media (max-width: 767px) {
  .ffp-footer__in { grid-template-columns: 1fr; gap: 32px; }
  .ffp-footer__menu { grid-template-columns: 1fr 1fr; }
}

/* ── Ajustes finos de Elementor / Hello ────────────────────────────────── */
.ffp-es-plugin .site-main, .page-template-elementor_header_footer .site-main { max-width: none; padding: 0; }
.e-con.ffp-sin-gap { --gap: 0px; --row-gap: 0px; --column-gap: 0px; }
.ffp-ancla { scroll-margin-top: calc(var(--ffp-cab) + var(--ffp-sub) + 20px); }

@media (max-width: 767px) { .ffp-gen__top .ffp-dispositivos { display: none; } .ffp-gen__tabla { grid-template-columns: 38px repeat(5, minmax(0,1fr)); } }

body .ffp-checks.ffp-blanco .elementor-icon-list-icon i, body .ffp-checks.ffp-blanco .elementor-icon-list-icon svg { color: var(--ffp-verde); fill: var(--ffp-verde); }
/* Botón principal tipo fitfox.es: pastilla naranja */
body .ffp-btn .elementor-button { border-radius: 100px; }
body .ffp-btn--peq .elementor-button { border-radius: 100px; }
.ffp-header__menu .ffp-menu-cta > a { border-radius: 100px; }
.ffp-subnav__cta { border-radius: 100px; }
/* Textos en naranja con contraste suficiente */
.ffp-subnav__col a:hover, .ffp-subnav__col a.es-actual, .ffp-subnav__todas, .ffp-cuenta,
.ffp-docnav li a.es-actual, .ffp-docnav li a:hover, .ffp-header__menu a:hover,
.ffp-header__menu .current-menu-item > a, .ffp-header__menu .current-menu-ancestor > a,
.ffp-chip--primario, body .ffp-btn--texto .elementor-button { color: var(--ffp-primario-txt); }
body .ffp-feature .elementor-icon { color: var(--ffp-primario-txt); }
body .ffp-feature .elementor-icon svg { fill: var(--ffp-primario-txt); }

body .ffp-btn .elementor-button { white-space: nowrap; }
body .ffp-btn--texto { flex-shrink: 0; }

/* ── Home: tarjetas de plugin, estados y maquetas (INICIO HOME) ───────── */
.e-con.ffp-card--plugin { --padding-top: 20px; --padding-left: 20px; --padding-right: 20px; --padding-bottom: 24px; justify-content: space-between; }
.e-con.ffp-card--plugin > .e-con:nth-child(2) { flex-grow: 1; }
.e-con.ffp-card--pronto .ffp-ilu { filter: saturate(.85); }
.ffp-estado { display: inline-flex; align-items: center; gap: 6px; font: 600 12px/1 var(--ffp-cuerpo); text-transform: uppercase; letter-spacing: .05em; padding: 6px 10px; border-radius: 999px; background: #F1ECFF; color: #5A23BB; }
.ffp-estado::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.ffp-estado--ok { background: #E8FBEE; color: #1E7A3C; }
.ffp-tabla--elige td:last-child a { font-weight: 600; text-decoration: none; }
.ffp-tabla--elige td:first-child { white-space: normal; }

.ffp-ilu { background: #fff; border: 1px solid var(--ffp-borde); border-radius: 14px; padding: 14px; font: 12px/1.35 var(--ffp-cuerpo); color: var(--ffp-texto); box-shadow: var(--ffp-sombra); }
.ffp-card--plugin .ffp-ilu { box-shadow: none; background: linear-gradient(160deg, #F3FAFF, #fff); min-height: 210px; }
.ffp-ilu b { color: var(--ffp-tinta); font-family: var(--ffp-titulos); }
/* calendario */
.ffp-ilu__top { display: flex; justify-content: space-between; margin-bottom: 8px; }
.ffp-ilu__top span { color: var(--ffp-tenue); }
.ffp-ilu__dias { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; text-align: center; }
.ffp-ilu__dias i { font-style: normal; font-weight: 600; color: var(--ffp-tenue); font-size: 10px; }
.ffp-ilu__dias em { font-style: normal; padding: 4px 0; border-radius: 6px; background: var(--ffp-suave); position: relative; }
.ffp-ilu__dias em.ev::after { content: ""; position: absolute; left: 50%; bottom: 2px; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: var(--ffp-morado); }
.ffp-ilu__dias em.hoy { background: var(--ffp-primario); color: #fff; font-weight: 700; }
.ffp-ilu__ses { display: grid; gap: 5px; margin-top: 10px; }
.ffp-ilu__ses span { border-left: 3px solid var(--c); background: #FAFBFD; padding: 5px 8px; border-radius: 4px; font-weight: 600; color: var(--ffp-tinta); }
/* crm */
.ffp-ilu--crm { display: grid; grid-template-columns: 1.15fr 1fr; gap: 12px; }
.ffp-ilu__form { display: grid; gap: 6px; align-content: start; }
.ffp-ilu__form .campo { border: 1px solid var(--ffp-borde); border-radius: 7px; padding: 6px 8px; color: var(--ffp-tenue); background: #fff; }
.ffp-ilu__form .ok { color: var(--ffp-verde-osc); font-size: 11px; }
.ffp-ilu__form .btn { background: var(--ffp-primario); color: #fff; text-align: center; border-radius: 99px; padding: 6px; font-weight: 600; }
.ffp-ilu__embudo { display: grid; gap: 6px; align-content: start; }
.ffp-ilu__embudo span { width: var(--w); background: linear-gradient(90deg, var(--ffp-morado), var(--ffp-magenta)); color: #fff; border-radius: 6px; padding: 6px 8px; font-weight: 600; display: flex; justify-content: space-between; min-width: 92px; box-sizing: border-box; }
.ffp-ilu__embudo em { font-style: normal; opacity: .85; }
/* perfil */
.ffp-ilu__cab { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
.ffp-ilu__cab .logo { width: 36px; height: 36px; border-radius: 10px; background: var(--ffp-marino); color: #fff; font: 700 13px/36px var(--ffp-titulos); text-align: center; flex: none; }
.ffp-ilu__cab small { display: block; color: var(--ffp-tenue); }
.ffp-ilu__cab .abierto { margin-left: auto; color: #1E7A3C; background: #E8FBEE; border-radius: 99px; padding: 4px 8px; font-weight: 600; font-size: 11px; }
.ffp-ilu__horas { display: grid; grid-template-columns: 1fr auto; gap: 5px 10px; padding: 10px; background: var(--ffp-suave); border-radius: 10px; }
.ffp-ilu__horas b { font-size: 12px; }
.ffp-ilu__cierre { margin-top: 10px; padding: 8px 10px; border-radius: 10px; background: #FFF1E7; color: #8A3A00; }
.ffp-ilu__cierre b { display: block; color: #8A3A00; font-size: 12px; }
/* collage del héroe */
.ffp-collage { position: relative; min-height: 520px; }
.ffp-collage > div { position: absolute; }
.ffp-collage__a { width: 56%; left: 0; top: 110px; transform: rotate(-2deg); z-index: 2; }
.ffp-collage__b { width: 62%; right: 0; top: 0; z-index: 1; }
.ffp-collage__c { width: 58%; right: 0; bottom: 0; z-index: 3; transform: rotate(1.5deg); }
.ffp-collage .ffp-ilu { box-shadow: var(--ffp-sombra-alta); }
@media (max-width: 1024px) {
  .ffp-collage { min-height: 0; display: grid; gap: 14px; }
  .ffp-collage > div { position: static; width: auto; transform: none; }
}
/* (FIN HOME) */
