/* ==========================================================================
   KAP Brand — tokens, tipografía y utilidades
   Fuente de verdad: docs/manualImagen.md (Manual de imagen KAP, pág. 09–10)
   ========================================================================== */

/* --- Tipografía: Raleway variable autoalojada (1 archivo, subconjunto latino, 48 KB) --- */
@font-face {
  font-family: "Raleway";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonts/raleway-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  /* Colores de marca (Manual de imagen) */
  --kap-rojo: #8F1F1D;
  --kap-carmesi: #922351;
  --kap-ciruela: #6B1C51;
  --kap-morado: #451350;
  --kap-gris: #C6C6C6;
  /* Botones: color heredado del sitio en producción */
  --kap-boton: #9E1F63;
  --kap-boton-hover: #86194F;
  --kap-degrade: linear-gradient(90deg, #8F1F1D 0%, #922351 40%, #6B1C51 70%, #451350 100%);
  --kap-degrade-diag: linear-gradient(135deg, #8F1F1D 0%, #922351 40%, #6B1C51 70%, #451350 100%);

  /* Neutros derivados (web) */
  --kap-texto: #1F1A22;
  --kap-texto-2: #5D5D5D;
  --kap-blanco: #FFFFFF;
  --kap-fondo-suave: #F7F5F8;
  --kap-borde: #E6E2E8;
  --kap-overlay: rgba(69, 19, 80, 0.78);

  /* Tipografía */
  --kap-font: "Raleway", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --kap-radio: 12px;
  --kap-sombra: 0 10px 30px rgba(69, 19, 80, 0.10);
}

body {
  font-family: var(--kap-font);
  color: var(--kap-texto);
  -webkit-font-smoothing: antialiased;
}

/* Elementor: asegurar que todo el sitio use Raleway aunque un widget tenga otra familia heredada */
.elementor-widget-container,
.elementor-heading-title,
.elementor-button,
.elementor-nav-menu,
input, select, textarea, button {
  font-family: var(--kap-font);
}

/* --- Utilidades de sección --- */
.kap-oscuro { background: var(--kap-morado); color: var(--kap-blanco); }
.kap-oscuro a { color: var(--kap-blanco); }
.kap-degrade { background: var(--kap-degrade-diag); color: var(--kap-blanco); }
.kap-suave { background: var(--kap-fondo-suave); }

.kap-texto-degrade {
  background: var(--kap-degrade);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* --- Botones --- */
/* Estilo heredado del sitio en producción: píldora de 31 px, peso 900, carmesí #9E1F63 */
.kap-btn, a.kap-btn {
  display: inline-block;
  padding: 16px 30px;
  border-radius: 31px;
  font-weight: 900;
  font-size: 16px;
  letter-spacing: .2px;
  text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.kap-btn-primario, a.kap-btn-primario { background: var(--kap-boton); color: var(--kap-blanco); box-shadow: var(--kap-sombra); }
.kap-btn-primario:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(158, 31, 99, 0.30); background: var(--kap-boton-hover); color: var(--kap-blanco); }
.elementor-button { border-radius: 31px; font-weight: 900; }
.kap-btn-claro, a.kap-btn-claro { background: var(--kap-blanco); color: var(--kap-morado); }
.kap-btn-borde, a.kap-btn-borde { border: 2px solid var(--kap-blanco); color: var(--kap-blanco); }
.kap-btn-borde:hover { background: var(--kap-blanco); color: var(--kap-morado); }

/* --- KPIs (banda de credibilidad) --- */
/* 6 cifras en 3 columnas: con 6 por fila "+$50.000 MM" se salía de su celda y pisaba las vecinas */
.kap-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px 24px; text-align: center; }
.kap-kpi { min-width: 0; padding: 0 6px; }
.kap-kpi__num { font-size: clamp(30px, 3.2vw, 46px); font-weight: 800; line-height: 1.1; letter-spacing: -.5px; white-space: nowrap; }
.kap-kpi__lbl { margin-top: 8px; font-size: 14px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; opacity: .85; text-wrap: balance; }
@media (max-width: 900px) { .kap-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px) { .kap-kpis { grid-template-columns: minmax(0, 1fr); gap: 24px; } }

/* --- Tarjetas --- */
.kap-card { background: var(--kap-blanco); border: 1px solid var(--kap-borde); border-radius: var(--kap-radio); padding: 28px; box-shadow: var(--kap-sombra); }
.kap-card__icono { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--kap-fondo-suave); color: var(--kap-carmesi); margin-bottom: 16px; }
.kap-card h3, .kap-card h4 { margin: 0 0 8px; font-weight: 700; color: var(--kap-morado); }
.kap-card p { margin: 0; color: var(--kap-texto-2); font-size: 15px; line-height: 1.55; }

/* --- Etiquetas / chips --- */
.kap-chip { display: inline-block; padding: 6px 14px; border-radius: 999px; font-size: 13px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; background: var(--kap-fondo-suave); color: var(--kap-carmesi); }

/* --- Selector de idioma (Polylang en el menú): bandera + ES/EN --- */
.pll-parent-menu-item > a img, .lang-item a img { vertical-align: -2px; margin-right: 6px; border-radius: 2px; }
.lang-item a { font-weight: 700; letter-spacing: .5px; }

/* --- Accesibilidad / movimiento reducido --- */
@media (prefers-reduced-motion: reduce) {
  .kap-btn { transition: none; }
}

/* --- Footer [kap_footer] --- */
/* Fondo del footer: el degradado que usa el sitio en producción (fondo1.png), con overlay para contraste */
.kap-footer { position: relative; isolation: isolate; background: var(--kap-morado) url("img/fondo-kap-lite.jpg") center/cover no-repeat; color: var(--kap-blanco); font-size: 15px; }
/* el degradado va bajo un velo del 46 %: la versión ligera (7 KB frente a 258 KB) es indistinguible */
.kap-footer { background-image: image-set(url("img/fondo-kap-lite.webp") type("image/webp"), url("img/fondo-kap-lite.jpg") type("image/jpeg")); }
.kap-footer::before { content: ""; position: absolute; inset: 0; background: rgba(28, 10, 34, .46); z-index: -1; }
.kap-footer a { color: var(--kap-blanco); text-decoration: none; }
.kap-footer a:hover { color: var(--kap-blanco); text-decoration: underline; }
.kap-footer__inner { max-width: 1140px; margin: 0 auto; padding: 56px 20px 32px; display: grid; grid-template-columns: 1.3fr 1fr 1.1fr; gap: 32px; }
.kap-footer__col h4 { margin: 0 0 14px; font-size: 13px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--kap-blanco); opacity: .92; }
.kap-footer__col p { margin: 0 0 8px; line-height: 1.55; }
.kap-footer__col ul { list-style: none; margin: 0; padding: 0; }
.kap-footer__col li { margin: 0 0 8px; }
.kap-footer__logo img { width: 150px; height: auto; display: block; margin-bottom: 14px; }
.kap-footer__tagline { font-size: 16px; font-weight: 600; margin: 0 0 14px; }
.kap-footer__linkedin { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; }
.kap-footer__cta { margin-top: 10px; padding: 11px 22px; font-size: 14px; }
.kap-footer__bar { border-top: 1px solid rgba(255,255,255,.14); }
.kap-footer__bar > span { display: block; }
.kap-footer__bar { max-width: 1140px; margin: 0 auto; padding: 18px 20px 28px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 24px; font-size: 13px; color: rgba(255,255,255,.88); }
.kap-footer__legal a { margin-left: 18px; color: var(--kap-blanco); }
@media (max-width: 900px) { .kap-footer__inner { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .kap-footer__inner { grid-template-columns: 1fr; padding-top: 40px; } .kap-footer__bar { flex-direction: column; } .kap-footer__legal a { margin: 0 18px 0 0; } }
.kap-footer__col ul { columns: 2; column-gap: 18px; }
@media (max-width: 560px) { .kap-footer__col ul { columns: 1; } }
