/* ============================================================
   TERRITORIK — hoja de estilo del bloque
   Cubre solo lo que el panel de Elementor no expone o no genera
   de forma fiable. Clases verificadas contra elementor 3.28 y
   proelements (widget-form.min.css).
   ============================================================ */

/* ---------- 1. HERO: velo crema en degradado horizontal ----------
   Elementor no genera CSS fiable para degradados de fondo en
   contenedores, asi que el nativo queda como color plano de
   respaldo y el degradado real se pinta aqui sobre ::before.     */
.tk-hero { --overlay-opacity: 1; position: relative; }
.tk-hero::before {
  content: '' !important;
  display: block;
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 1 !important;
  background-color: transparent !important;
  background-image: linear-gradient(90deg,
      #FDFAF1 0%,
      rgba(253,250,241,.95) 32%,
      rgba(253,250,241,.55) 62%,
      rgba(253,250,241,.12) 100%) !important;
}
.tk-hero > .e-con-inner,
.tk-hero > .elementor-element { position: relative; z-index: 1; }

@media (max-width: 1024px) {
  .tk-hero::before {
    background-image: linear-gradient(90deg,
        #FDFAF1 0%,
        rgba(253,250,241,.94) 45%,
        rgba(253,250,241,.35) 100%) !important;
  }
}
@media (max-width: 767px) {
  .tk-hero::before {
    background-image: linear-gradient(180deg,
        rgba(253,250,241,.93) 0%,
        rgba(253,250,241,.88) 50%,
        rgba(253,250,241,.97) 100%) !important;
  }
}

/* ---------- 2. OFERTA: degradado dosel ---------- */
.tk-canopy {
  background-image: linear-gradient(160deg, #00643A 0%, #003821 100%) !important;
}

/* ---------- 3. Botones ---------- */
.tk-warm > .elementor-widget-container > .elementor-button-wrapper > .elementor-button,
.tk-warm .elementor-button {
  background-image: linear-gradient(135deg, #DB6B25 0%, #D79628 100%);
  border: 0;
  transition: transform .25s cubic-bezier(.22,.68,0,1), box-shadow .25s ease;
}
.tk-warm .elementor-button:hover {
  background-image: linear-gradient(135deg, #D79628 0%, #DB6B25 100%);
  transform: translateY(-3px);
}
.tk-ghost .elementor-button { transition: transform .25s ease, background-color .25s ease; }
.tk-ghost .elementor-button:hover { transform: translateY(-2px); }
.tk-blur { backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }

/* ---------- 4. Tarjetas ---------- */
.tk-card, .tk-scard, .tk-mini {
  transition: transform .38s cubic-bezier(.22,.68,0,1),
              box-shadow .38s cubic-bezier(.22,.68,0,1),
              border-color .38s ease, background-color .38s ease;
}
.tk-card:hover { transform: translateY(-6px); box-shadow: 0 34px 70px -30px rgba(27,69,38,.55); }
.tk-scard:hover { transform: translateY(-6px); background-color: rgba(252,250,241,.15); }
.tk-mini:hover { transform: translateY(-4px); border-color: #429C5A; }

/* ---------- 5. Barra de progreso del test ----------
   Los controles nativos llevan default global (verde/gris) y no
   siempre ganan; fijamos las variables directamente.             */
.tk-form-test {
  --e-form-steps-indicator-progress-color: #DB6B25;
  --e-form-steps-indicator-progress-background-color: #F4EAD5;
  --e-form-steps-indicator-progress-height: 8px;
  --e-form-steps-indicator-progress-border-radius: 999px;
  --e-form-steps-indicators-spacing: 30px;
}
.tk-form-test .e-form__indicators__indicator__progress__meter {
  padding-right: 0;
  background-image: linear-gradient(135deg, #DB6B25 0%, #D79628 100%);
  transition: width .5s cubic-bezier(.22,.68,0,1);
}

/* ---------- 6. Preguntas del test como titulares ---------- */
.tk-form-test .elementor-field-type-radio > label {
  display: block;
  font-family: Fraunces, Georgia, serif;
  font-size: 26px;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: -.4px;
  color: #17291B;
  margin: 0 0 18px;
  padding: 0;
}
@media (max-width: 767px) {
  .tk-form-test .elementor-field-type-radio > label { font-size: 21px; }
}

/* ---------- 7. Opciones como tarjetas seleccionables ---------- */
.tk-form-test .elementor-field-type-radio .elementor-field-subgroup { display: grid; gap: 12px; width: 100%; }
.tk-form-test .elementor-field-type-radio .elementor-field-subgroup .elementor-field-option {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 56px;
  margin: 0;
  padding: 14px 20px;
  border: 1px solid #E3DECF;
  border-radius: 18px;
  background: #FDFAF1;
  cursor: pointer;
  transition: transform .24s cubic-bezier(.22,.68,0,1), border-color .24s ease,
              background-color .24s ease, box-shadow .24s ease;
}
.tk-form-test .elementor-field-type-radio .elementor-field-subgroup .elementor-field-option:hover {
  transform: translateY(-2px);
  border-color: #00643A;
  background: #FEE2C9;
  box-shadow: 0 18px 45px -22px rgba(27,69,38,.45);
}
.tk-form-test .elementor-field-type-radio .elementor-field-subgroup .elementor-field-option label {
  flex: 1;
  margin: 0;
  cursor: pointer;
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.35;
  color: #17291B;
}
.tk-form-test .elementor-field-type-radio .elementor-field-subgroup input[type=radio] {
  width: 19px; height: 19px; flex: 0 0 auto;
  accent-color: #00643A; cursor: pointer; margin: 0;
}
.tk-form-test .elementor-field-type-radio .elementor-field-subgroup .elementor-field-option:has(input:checked) {
  border-color: #00643A;
  background: #FEE2C9;
  box-shadow: inset 0 0 0 1px #00643A;
}

/* ---------- 8. Bloque HTML de resultado ----------
   Ojo: el css_classes de un campo html se escribe en el atributo del
   <input>, que para ese tipo de campo no se imprime. El unico gancho
   valido es .elementor-field-type-html; se estiliza en el bloque 17. */
.tk-form .elementor-field-type-html { display: block; width: 100%; }

/* ---------- 9. Campos ---------- */
.tk-form .elementor-field-group > label { font-weight: 500; }
.tk-form .elementor-field:focus {
  border-color: #00643A;
  box-shadow: 0 0 0 3px rgba(0,100,58,.16);
  outline: none;
}
.tk-form .elementor-field::placeholder { color: rgba(94,103,85,.55); }
.tk-form .elementor-field-textual { min-height: 50px; }

/* ---------- 10. Botones del multistep ---------- */
.tk-form .e-form__buttons { gap: 12px; }
.tk-form .e-form__buttons__wrapper__button-previous {
  background: transparent;
  color: #5E6755;
  border: 1px solid #E3DECF;
  border-radius: 999px;
}
.tk-form .e-form__buttons__wrapper__button-previous:hover { background: #F4EAD5; color: #17291B; }

/* ---------- 11. Correcciones verificadas contra el render real ---------- */

/* El porcentaje va dentro de una barra de 8 px y no cabe: se oculta. */
.tk-form-test .e-form__indicators__indicator__progress__meter {
  font-size: 0;
  min-width: 8px;
}

/* Degradado calido tambien en los botones del formulario */
.tk-form .elementor-button,
.tk-form .e-form__buttons__wrapper__button-next {
  background-image: linear-gradient(135deg, #DB6B25 0%, #D79628 100%);
  border: 0;
  transition: transform .25s cubic-bezier(.22,.68,0,1), box-shadow .25s ease;
}
.tk-form .elementor-button:hover,
.tk-form .e-form__buttons__wrapper__button-next:hover {
  background-image: linear-gradient(135deg, #D79628 0%, #DB6B25 100%);
  transform: translateY(-2px);
  box-shadow: 0 24px 55px -26px rgba(109,56,0,.5);
}
.tk-form .e-form__buttons__wrapper__button-previous { background-image: none; }

/* Espaciado interno del panel */
.tk-form-test .elementor-field-group { margin-bottom: 0; }
.tk-form-test .e-form__buttons { margin-top: 26px; }

/* Tarjetas siempre a la misma altura dentro de la rejilla */
.tk-card, .tk-scard, .tk-mini { height: 100%; }

/* Red de seguridad de las animaciones */
@media (prefers-reduced-motion: reduce) {
  .elementor-invisible { visibility: visible !important; animation: none !important; }
}

/* ---------- 12. Fidelidad con ViabilityTest.tsx ----------
   Pregunta: text-2xl / sm:text-3xl -> 24 / 30 px
   Opcion:   rounded-2xl px-5 py-4 text-base font-medium
   Lista:    min-h-[19rem] content-start gap-3
   Barra:    h-2 bg-muted                                   */
.tk-form-test .elementor-field-type-radio > label { font-size: 30px; }
@media (max-width: 767px) {
  .tk-form-test .elementor-field-type-radio > label { font-size: 24px; }
}
.tk-form-test .elementor-field-type-radio .elementor-field-subgroup { align-content: start; }
@media (min-width: 768px) {
  .tk-form-test .elementor-field-type-radio .elementor-field-subgroup { min-height: 304px; }
}
.tk-form-test .elementor-field-type-radio .elementor-field-option {
  padding: 16px 20px;
  min-height: 60px;
}
.tk-form-test .elementor-field-type-radio .elementor-field-option:hover {
  background: rgba(254,226,201,.6);
}
.tk-form-test {
  --e-form-steps-indicator-progress-background-color: #F3EEE1;
  --e-form-steps-indicator-progress-height: 8px;
}

/* Flecha a la derecha de cada opcion, igual que en el referente */
.tk-form-test .elementor-field-type-radio .elementor-field-option::after {
  content: '';
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2720%27%20height%3D%2720%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%235E6755%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%2012h14%27%2F%3E%3Cpath%20d%3D%27m12%205%207%207-7%207%27%2F%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: center;
  transition: transform .24s cubic-bezier(.22,.68,0,1), background-image .24s ease;
}
.tk-form-test .elementor-field-type-radio .elementor-field-option:hover::after {
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2720%27%20height%3D%2720%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%2300643A%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%2012h14%27%2F%3E%3Cpath%20d%3D%27m12%205%207%207-7%207%27%2F%3E%3C%2Fsvg%3E");
  transform: translateX(5px);
}

/* ---------- 0. Fuentes y base, identicas al referente ----------
   Fraunces 500/700 para titulares, DM Sans 400/500/700 para el resto,
   con el eje optico de Fraunces activo como en el original.        */
.elementor-widget-heading .elementor-heading-title,
.tk-form-test .elementor-field-type-html h3 { font-optical-sizing: auto; }

/* ---------- 14. Barra de progreso y navegacion del test ----------
   Calcado de ViabilityTest.tsx:
     fila superior  -> "PREGUNTA 1 DE 5" uppercase tracking-widest + "0%"
     pista          -> h-2 rounded-full bg-muted
     relleno        -> gradiente calido, transition 500 ms
     navegacion     -> "Volver" como enlace de texto; sin boton Siguiente
                       (el avance es automatico al elegir)                */
.tk-form-test .e-form__indicators { display: block; margin-bottom: 32px; }
.tk-form-test .e-form__indicators__indicator { padding: 0; flex-basis: auto; width: 100%; }
.tk-form-test .e-form__indicators__indicator__progress { width: 100%; }

.tk-progress-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
  font-family: 'DM Sans', system-ui, sans-serif;
}
.tk-progress-head .tk-step {
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: #5E6755;
}
.tk-progress-head .tk-pct {
  font-size: 14px;
  font-weight: 500;
  color: #5E6755;
  font-variant-numeric: tabular-nums;
}

/* Navegacion: "Volver" es un enlace de texto, no un boton */
.tk-form-test .e-form__buttons { margin-top: 24px; justify-content: flex-start; gap: 20px; }
.tk-form-test .e-form__buttons__wrapper__button-previous {
  background: none !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  min-height: 0;
  color: #5E6755 !important;
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 400;
  text-underline-offset: 4px;
  transform: none !important;
}
.tk-form-test .e-form__buttons__wrapper__button-previous:hover {
  color: #00643A !important;
  text-decoration: underline;
}
/* El boton Siguiente solo se oculta si el avance automatico esta activo:
   asi, si el JS no corriera, el formulario sigue siendo utilizable. */
.tk-form-test.js-autonext .e-form__buttons__wrapper__button-next:not(.elementor-hidden) {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px; border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
}
.tk-form-test.js-autonext .e-form__buttons { margin-top: 20px; }

/* ---------- 15. Iconos Lucide exactos del referente ----------
   IMPORTANTE: con el experimento e_font_icon_svg activo (por defecto en
   Elementor 4), los iconos se renderizan como <svg> en linea, NO como <i>.
   Por eso la mascara va sobre el contenedor, nunca sobre el <i>.

   El widget Icono sigue siendo nativo: tamano, colores, radio y espaciado
   se editan en el panel; la mascara hereda currentColor. */
.tk-lucide .elementor-icon {
  display: inline-flex; align-items: center; justify-content: center;
}
.tk-lucide .elementor-icon > i,
.tk-lucide .elementor-icon > svg { display: none; }
.tk-lucide .elementor-icon::after {
  content: '';
  display: block;
  width: 1em;
  height: 1em;
  background-color: currentColor;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center;  mask-position: center;
  -webkit-mask-size: contain;     mask-size: contain;
}
.tk-i-compass .elementor-icon::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-compass%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cpath%20d%3D%22m16.24%207.76-1.804%205.411a2%202%200%200%201-1.265%201.265L7.76%2016.24l1.804-5.411a2%202%200%200%201%201.265-1.265z%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-compass%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cpath%20d%3D%22m16.24%207.76-1.804%205.411a2%202%200%200%201-1.265%201.265L7.76%2016.24l1.804-5.411a2%202%200%200%201%201.265-1.265z%22%2F%3E%3C%2Fsvg%3E"); }
.tk-i-wallet .elementor-icon::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-wallet%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M19%207V4a1%201%200%200%200-1-1H5a2%202%200%200%200%200%204h15a1%201%200%200%201%201%201v4h-3a2%202%200%200%200%200%204h3a1%201%200%200%200%201-1v-2a1%201%200%200%200-1-1%22%2F%3E%3Cpath%20d%3D%22M3%205v14a2%202%200%200%200%202%202h15a1%201%200%200%200%201-1v-4%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-wallet%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M19%207V4a1%201%200%200%200-1-1H5a2%202%200%200%200%200%204h15a1%201%200%200%201%201%201v4h-3a2%202%200%200%200%200%204h3a1%201%200%200%200%201-1v-2a1%201%200%200%200-1-1%22%2F%3E%3Cpath%20d%3D%22M3%205v14a2%202%200%200%200%202%202h15a1%201%200%200%200%201-1v-4%22%2F%3E%3C%2Fsvg%3E"); }
.tk-i-landmark .elementor-icon::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-landmark%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M10%2018v-7%22%2F%3E%3Cpath%20d%3D%22M11.119%202.205a2%202%200%200%201%201.762%200l7.84%203.846A.5.5%200%200%201%2020.5%207h-17a.5.5%200%200%201-.22-.949z%22%2F%3E%3Cpath%20d%3D%22M14%2018v-7%22%2F%3E%3Cpath%20d%3D%22M18%2018v-7%22%2F%3E%3Cpath%20d%3D%22M3%2022h18%22%2F%3E%3Cpath%20d%3D%22M6%2018v-7%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-landmark%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M10%2018v-7%22%2F%3E%3Cpath%20d%3D%22M11.119%202.205a2%202%200%200%201%201.762%200l7.84%203.846A.5.5%200%200%201%2020.5%207h-17a.5.5%200%200%201-.22-.949z%22%2F%3E%3Cpath%20d%3D%22M14%2018v-7%22%2F%3E%3Cpath%20d%3D%22M18%2018v-7%22%2F%3E%3Cpath%20d%3D%22M3%2022h18%22%2F%3E%3Cpath%20d%3D%22M6%2018v-7%22%2F%3E%3C%2Fsvg%3E"); }
.tk-i-users .elementor-icon::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-users%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M16%2021v-2a4%204%200%200%200-4-4H6a4%204%200%200%200-4%204v2%22%2F%3E%3Cpath%20d%3D%22M16%203.128a4%204%200%200%201%200%207.744%22%2F%3E%3Cpath%20d%3D%22M22%2021v-2a4%204%200%200%200-3-3.87%22%2F%3E%3Ccircle%20cx%3D%229%22%20cy%3D%227%22%20r%3D%224%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-users%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M16%2021v-2a4%204%200%200%200-4-4H6a4%204%200%200%200-4%204v2%22%2F%3E%3Cpath%20d%3D%22M16%203.128a4%204%200%200%201%200%207.744%22%2F%3E%3Cpath%20d%3D%22M22%2021v-2a4%204%200%200%200-3-3.87%22%2F%3E%3Ccircle%20cx%3D%229%22%20cy%3D%227%22%20r%3D%224%22%2F%3E%3C%2Fsvg%3E"); }
.tk-i-layer-group .elementor-icon::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-layers%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M12.83%202.18a2%202%200%200%200-1.66%200L2.6%206.08a1%201%200%200%200%200%201.83l8.58%203.91a2%202%200%200%200%201.66%200l8.58-3.9a1%201%200%200%200%200-1.83z%22%2F%3E%3Cpath%20d%3D%22M2%2012a1%201%200%200%200%20.58.91l8.6%203.91a2%202%200%200%200%201.65%200l8.58-3.9A1%201%200%200%200%2022%2012%22%2F%3E%3Cpath%20d%3D%22M2%2017a1%201%200%200%200%20.58.91l8.6%203.91a2%202%200%200%200%201.65%200l8.58-3.9A1%201%200%200%200%2022%2017%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-layers%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M12.83%202.18a2%202%200%200%200-1.66%200L2.6%206.08a1%201%200%200%200%200%201.83l8.58%203.91a2%202%200%200%200%201.66%200l8.58-3.9a1%201%200%200%200%200-1.83z%22%2F%3E%3Cpath%20d%3D%22M2%2012a1%201%200%200%200%20.58.91l8.6%203.91a2%202%200%200%200%201.65%200l8.58-3.9A1%201%200%200%200%2022%2012%22%2F%3E%3Cpath%20d%3D%22M2%2017a1%201%200%200%200%20.58.91l8.6%203.91a2%202%200%200%200%201.65%200l8.58-3.9A1%201%200%200%200%2022%2017%22%2F%3E%3C%2Fsvg%3E"); }
.tk-i-route .elementor-icon::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-route%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Ccircle%20cx%3D%226%22%20cy%3D%2219%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M9%2019h8.5a3.5%203.5%200%200%200%200-7h-11a3.5%203.5%200%200%201%200-7H15%22%2F%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%225%22%20r%3D%223%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-route%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Ccircle%20cx%3D%226%22%20cy%3D%2219%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M9%2019h8.5a3.5%203.5%200%200%200%200-7h-11a3.5%203.5%200%200%201%200-7H15%22%2F%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%225%22%20r%3D%223%22%2F%3E%3C%2Fsvg%3E"); }
.tk-i-train .elementor-icon::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-train-front%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M8%203.1V7a4%204%200%200%200%208%200V3.1%22%2F%3E%3Cpath%20d%3D%22m9%2015-1-1%22%2F%3E%3Cpath%20d%3D%22m15%2015%201-1%22%2F%3E%3Cpath%20d%3D%22M9%2019c-2.8%200-5-2.2-5-5v-4a8%208%200%200%201%2016%200v4c0%202.8-2.2%205-5%205Z%22%2F%3E%3Cpath%20d%3D%22m8%2019-2%203%22%2F%3E%3Cpath%20d%3D%22m16%2019%202%203%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-train-front%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M8%203.1V7a4%204%200%200%200%208%200V3.1%22%2F%3E%3Cpath%20d%3D%22m9%2015-1-1%22%2F%3E%3Cpath%20d%3D%22m15%2015%201-1%22%2F%3E%3Cpath%20d%3D%22M9%2019c-2.8%200-5-2.2-5-5v-4a8%208%200%200%201%2016%200v4c0%202.8-2.2%205-5%205Z%22%2F%3E%3Cpath%20d%3D%22m8%2019-2%203%22%2F%3E%3Cpath%20d%3D%22m16%2019%202%203%22%2F%3E%3C%2Fsvg%3E"); }
.tk-i-shield-alt .elementor-icon::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-shield-check%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M20%2013c0%205-3.5%207.5-7.66%208.95a1%201%200%200%201-.67-.01C7.5%2020.5%204%2018%204%2013V6a1%201%200%200%201%201-1c2%200%204.5-1.2%206.24-2.72a1.17%201.17%200%200%201%201.52%200C14.51%203.81%2017%205%2019%205a1%201%200%200%201%201%201z%22%2F%3E%3Cpath%20d%3D%22m9%2012%202%202%204-4%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-shield-check%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M20%2013c0%205-3.5%207.5-7.66%208.95a1%201%200%200%201-.67-.01C7.5%2020.5%204%2018%204%2013V6a1%201%200%200%201%201-1c2%200%204.5-1.2%206.24-2.72a1.17%201.17%200%200%201%201.52%200C14.51%203.81%2017%205%2019%205a1%201%200%200%201%201%201z%22%2F%3E%3Cpath%20d%3D%22m9%2012%202%202%204-4%22%2F%3E%3C%2Fsvg%3E"); }
.tk-i-map-marked-alt .elementor-icon::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-map-pinned%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M18%208c0%203.613-3.869%207.429-5.393%208.795a1%201%200%200%201-1.214%200C9.87%2015.429%206%2011.613%206%208a6%206%200%200%201%2012%200%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228%22%20r%3D%222%22%2F%3E%3Cpath%20d%3D%22M8.714%2014h-3.71a1%201%200%200%200-.948.683l-2.004%206A1%201%200%200%200%203%2022h18a1%201%200%200%200%20.948-1.316l-2-6a1%201%200%200%200-.949-.684h-3.712%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-map-pinned%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M18%208c0%203.613-3.869%207.429-5.393%208.795a1%201%200%200%201-1.214%200C9.87%2015.429%206%2011.613%206%208a6%206%200%200%201%2012%200%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228%22%20r%3D%222%22%2F%3E%3Cpath%20d%3D%22M8.714%2014h-3.71a1%201%200%200%200-.948.683l-2.004%206A1%201%200%200%200%203%2022h18a1%201%200%200%200%20.948-1.316l-2-6a1%201%200%200%200-.949-.684h-3.712%22%2F%3E%3C%2Fsvg%3E"); }
.tk-i-clipboard-list .elementor-icon::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-clipboard-list%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Crect%20width%3D%228%22%20height%3D%224%22%20x%3D%228%22%20y%3D%222%22%20rx%3D%221%22%20ry%3D%221%22%2F%3E%3Cpath%20d%3D%22M16%204h2a2%202%200%200%201%202%202v14a2%202%200%200%201-2%202H6a2%202%200%200%201-2-2V6a2%202%200%200%201%202-2h2%22%2F%3E%3Cpath%20d%3D%22M12%2011h4%22%2F%3E%3Cpath%20d%3D%22M12%2016h4%22%2F%3E%3Cpath%20d%3D%22M8%2011h.01%22%2F%3E%3Cpath%20d%3D%22M8%2016h.01%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-clipboard-list%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Crect%20width%3D%228%22%20height%3D%224%22%20x%3D%228%22%20y%3D%222%22%20rx%3D%221%22%20ry%3D%221%22%2F%3E%3Cpath%20d%3D%22M16%204h2a2%202%200%200%201%202%202v14a2%202%200%200%201-2%202H6a2%202%200%200%201-2-2V6a2%202%200%200%201%202-2h2%22%2F%3E%3Cpath%20d%3D%22M12%2011h4%22%2F%3E%3Cpath%20d%3D%22M12%2016h4%22%2F%3E%3Cpath%20d%3D%22M8%2011h.01%22%2F%3E%3Cpath%20d%3D%22M8%2016h.01%22%2F%3E%3C%2Fsvg%3E"); }
.tk-i-bus .elementor-icon::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-bus-front%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M4%206%202%207%22%2F%3E%3Cpath%20d%3D%22M10%206h4%22%2F%3E%3Cpath%20d%3D%22m22%207-2-1%22%2F%3E%3Crect%20width%3D%2216%22%20height%3D%2216%22%20x%3D%224%22%20y%3D%223%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M4%2011h16%22%2F%3E%3Cpath%20d%3D%22M8%2015h.01%22%2F%3E%3Cpath%20d%3D%22M16%2015h.01%22%2F%3E%3Cpath%20d%3D%22M6%2019v2%22%2F%3E%3Cpath%20d%3D%22M18%2021v-2%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-bus-front%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M4%206%202%207%22%2F%3E%3Cpath%20d%3D%22M10%206h4%22%2F%3E%3Cpath%20d%3D%22m22%207-2-1%22%2F%3E%3Crect%20width%3D%2216%22%20height%3D%2216%22%20x%3D%224%22%20y%3D%223%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M4%2011h16%22%2F%3E%3Cpath%20d%3D%22M8%2015h.01%22%2F%3E%3Cpath%20d%3D%22M16%2015h.01%22%2F%3E%3Cpath%20d%3D%22M6%2019v2%22%2F%3E%3Cpath%20d%3D%22M18%2021v-2%22%2F%3E%3C%2Fsvg%3E"); }
.tk-i-building .elementor-icon::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-building-2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M10%2012h4%22%2F%3E%3Cpath%20d%3D%22M10%208h4%22%2F%3E%3Cpath%20d%3D%22M14%2021v-3a2%202%200%200%200-4%200v3%22%2F%3E%3Cpath%20d%3D%22M6%2010H4a2%202%200%200%200-2%202v7a2%202%200%200%200%202%202h16a2%202%200%200%200%202-2V9a2%202%200%200%200-2-2h-2%22%2F%3E%3Cpath%20d%3D%22M6%2021V5a2%202%200%200%201%202-2h8a2%202%200%200%201%202%202v16%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-building-2%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M10%2012h4%22%2F%3E%3Cpath%20d%3D%22M10%208h4%22%2F%3E%3Cpath%20d%3D%22M14%2021v-3a2%202%200%200%200-4%200v3%22%2F%3E%3Cpath%20d%3D%22M6%2010H4a2%202%200%200%200-2%202v7a2%202%200%200%200%202%202h16a2%202%200%200%200%202-2V9a2%202%200%200%200-2-2h-2%22%2F%3E%3Cpath%20d%3D%22M6%2021V5a2%202%200%200%201%202-2h8a2%202%200%200%201%202%202v16%22%2F%3E%3C%2Fsvg%3E"); }
.tk-i-balance-scale .elementor-icon::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-scale%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M12%203v18%22%2F%3E%3Cpath%20d%3D%22m19%208%203%208a5%205%200%200%201-6%200zV7%22%2F%3E%3Cpath%20d%3D%22M3%207h1a17%2017%200%200%200%208-2%2017%2017%200%200%200%208%202h1%22%2F%3E%3Cpath%20d%3D%22m5%208%203%208a5%205%200%200%201-6%200zV7%22%2F%3E%3Cpath%20d%3D%22M7%2021h10%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-scale%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M12%203v18%22%2F%3E%3Cpath%20d%3D%22m19%208%203%208a5%205%200%200%201-6%200zV7%22%2F%3E%3Cpath%20d%3D%22M3%207h1a17%2017%200%200%200%208-2%2017%2017%200%200%200%208%202h1%22%2F%3E%3Cpath%20d%3D%22m5%208%203%208a5%205%200%200%201-6%200zV7%22%2F%3E%3Cpath%20d%3D%22M7%2021h10%22%2F%3E%3C%2Fsvg%3E"); }
.tk-i-envelope .elementor-icon::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-mail%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22m22%207-8.991%205.727a2%202%200%200%201-2.009%200L2%207%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%224%22%20width%3D%2220%22%20height%3D%2216%22%20rx%3D%222%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-mail%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22m22%207-8.991%205.727a2%202%200%200%201-2.009%200L2%207%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%224%22%20width%3D%2220%22%20height%3D%2216%22%20rx%3D%222%22%2F%3E%3C%2Fsvg%3E"); }
.tk-i-phone-alt .elementor-icon::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-phone%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M13.832%2016.568a1%201%200%200%200%201.213-.303l.355-.465A2%202%200%200%201%2017%2015h3a2%202%200%200%201%202%202v3a2%202%200%200%201-2%202A18%2018%200%200%201%202%204a2%202%200%200%201%202-2h3a2%202%200%200%201%202%202v3a2%202%200%200%201-.8%201.6l-.468.351a1%201%200%200%200-.292%201.233%2014%2014%200%200%200%206.392%206.384%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-phone%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M13.832%2016.568a1%201%200%200%200%201.213-.303l.355-.465A2%202%200%200%201%2017%2015h3a2%202%200%200%201%202%202v3a2%202%200%200%201-2%202A18%2018%200%200%201%202%204a2%202%200%200%201%202-2h3a2%202%200%200%201%202%202v3a2%202%200%200%201-.8%201.6l-.468.351a1%201%200%200%200-.292%201.233%2014%2014%200%200%200%206.392%206.384%22%2F%3E%3C%2Fsvg%3E"); }

/* --- Listas de iconos: hero y pie ---
   icon_color de Elementor apunta a '.elementor-icon-list-icon i' (color) y
   a '... svg' (fill). Como el <svg> se oculta, el color se fija aqui sobre
   el <span>, que ademas heredaria el color de enlace del tema. */
.tk-trust, .tk-contact { --tk-list-icon: #00643A; }
.tk-trust .elementor-icon-list-icon,
.tk-contact .elementor-icon-list-icon {
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--tk-list-icon, #00643A) !important;
}
.tk-trust .elementor-icon-list-icon > i,
.tk-trust .elementor-icon-list-icon > svg,
.tk-contact .elementor-icon-list-icon > i,
.tk-contact .elementor-icon-list-icon > svg { display: none; }
.tk-trust .elementor-icon-list-icon::after,
.tk-contact .elementor-icon-list-icon::after {
  content: '';
  display: block;
  width: var(--e-icon-list-icon-size, 1em);
  height: var(--e-icon-list-icon-size, 1em);
  background-color: var(--tk-list-icon, #00643A) !important;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center;  mask-position: center;
  -webkit-mask-size: contain;     mask-size: contain;
}
.tk-trust .elementor-icon-list-item:nth-child(1) .elementor-icon-list-icon::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-shield-check%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M20%2013c0%205-3.5%207.5-7.66%208.95a1%201%200%200%201-.67-.01C7.5%2020.5%204%2018%204%2013V6a1%201%200%200%201%201-1c2%200%204.5-1.2%206.24-2.72a1.17%201.17%200%200%201%201.52%200C14.51%203.81%2017%205%2019%205a1%201%200%200%201%201%201z%22%2F%3E%3Cpath%20d%3D%22m9%2012%202%202%204-4%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-shield-check%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M20%2013c0%205-3.5%207.5-7.66%208.95a1%201%200%200%201-.67-.01C7.5%2020.5%204%2018%204%2013V6a1%201%200%200%201%201-1c2%200%204.5-1.2%206.24-2.72a1.17%201.17%200%200%201%201.52%200C14.51%203.81%2017%205%2019%205a1%201%200%200%201%201%201z%22%2F%3E%3Cpath%20d%3D%22m9%2012%202%202%204-4%22%2F%3E%3C%2Fsvg%3E"); }
.tk-contact .elementor-icon-list-item:nth-child(1) .elementor-icon-list-icon::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-mail%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22m22%207-8.991%205.727a2%202%200%200%201-2.009%200L2%207%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%224%22%20width%3D%2220%22%20height%3D%2216%22%20rx%3D%222%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-mail%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22m22%207-8.991%205.727a2%202%200%200%201-2.009%200L2%207%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%224%22%20width%3D%2220%22%20height%3D%2216%22%20rx%3D%222%22%2F%3E%3C%2Fsvg%3E"); }
.tk-contact .elementor-icon-list-item:nth-child(2) .elementor-icon-list-icon::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-phone%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M13.832%2016.568a1%201%200%200%200%201.213-.303l.355-.465A2%202%200%200%201%2017%2015h3a2%202%200%200%201%202%202v3a2%202%200%200%201-2%202A18%2018%200%200%201%202%204a2%202%200%200%201%202-2h3a2%202%200%200%201%202%202v3a2%202%200%200%201-.8%201.6l-.468.351a1%201%200%200%200-.292%201.233%2014%2014%200%200%200%206.392%206.384%22%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20class%3D%22lucide%20lucide-phone%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20%3E%3Cpath%20d%3D%22M13.832%2016.568a1%201%200%200%200%201.213-.303l.355-.465A2%202%200%200%201%2017%2015h3a2%202%200%200%201%202%202v3a2%202%200%200%201-2%202A18%2018%200%200%201%202%204a2%202%200%200%201%202-2h3a2%202%200%200%201%202%202v3a2%202%200%200%201-.8%201.6l-.468.351a1%201%200%200%200-.292%201.233%2014%2014%200%200%200%206.392%206.384%22%2F%3E%3C%2Fsvg%3E"); }

/* Si el navegador no soporta mask-image, se vuelve al icono nativo de
   Elementor en vez de dejar el hueco vacio. */
@supports not ((-webkit-mask-image: url('')) or (mask-image: url(''))) {
  .tk-lucide .elementor-icon > svg,
  .tk-trust .elementor-icon-list-icon > svg,
  .tk-contact .elementor-icon-list-icon > svg { display: block; }
  .tk-trust .elementor-icon-list-icon > svg,
  .tk-contact .elementor-icon-list-icon > svg { fill: var(--tk-list-icon, #00643A); }
  .tk-lucide .elementor-icon::after,
  .tk-trust .elementor-icon-list-icon::after,
  .tk-contact .elementor-icon-list-icon::after { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .tk-card, .tk-scard, .tk-mini, .tk-warm .elementor-button, .tk-ghost .elementor-button,
  .tk-form-test .elementor-field-type-radio .elementor-field-subgroup .elementor-field-option { transition: none; }
}

/* ============================================================
   16. SELECTORES Y BARRA DEL TEST — tal cual ViabilityTest.tsx
   Este bloque va ultimo a proposito: pisa lo anterior y lo que
   Elementor genera para label_typography.
   ============================================================ */

/* --- La pregunta es un titular, no una etiqueta de campo --- */
.tk-form-test .elementor-form .elementor-field-type-radio > label.elementor-field-label {
  display: block !important;
  font-family: Fraunces, Georgia, serif !important;
  font-size: 30px !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
  color: #17291B !important;
  margin: 0 0 24px !important;
  padding: 0 !important;
  text-transform: none !important;
}
@media (max-width: 767px) {
  .tk-form-test .elementor-form .elementor-field-type-radio > label.elementor-field-label {
    font-size: 24px !important;
    margin-bottom: 18px !important;
  }
}

/* --- La opcion entera es la tarjeta y toda ella es pulsable --- */
.tk-form-test .elementor-field-type-radio .elementor-field-subgroup {
  display: grid;
  gap: 12px;
  width: 100%;
  align-content: start;
}
.tk-form-test .elementor-field-type-radio .elementor-field-option {
  display: block;
  position: relative;
  margin: 0;
  padding: 0;
  border: 1px solid #E3DECF;
  border-radius: 18px;
  background: #FDFAF1;
  overflow: hidden;
  transition: transform .24s cubic-bezier(.22,.68,0,1), border-color .24s ease,
              background-color .24s ease, box-shadow .24s ease;
}
/* El radio se oculta pero sigue existiendo para teclado y lectores */
.tk-form-test .elementor-field-type-radio .elementor-field-option input[type=radio] {
  position: absolute;
  width: 1px; height: 1px;
  margin: 0; padding: 0; border: 0;
  opacity: 0;
  clip: rect(0 0 0 0);
}
.tk-form-test .elementor-field-type-radio .elementor-field-option > label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  min-height: 60px;
  margin: 0;
  padding: 16px 20px;
  cursor: pointer;
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.35;
  color: #17291B;
  text-align: left;
}
/* Flecha a la derecha, como en el referente */
.tk-form-test .elementor-field-type-radio .elementor-field-option > label::after {
  content: '';
  flex: 0 0 auto;
  width: 20px; height: 20px;
  background-color: #5E6755;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2724%27%20height%3D%2724%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%2012h14%27%2F%3E%3Cpath%20d%3D%27m12%205%207%207-7%207%27%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2724%27%20height%3D%2724%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%2012h14%27%2F%3E%3Cpath%20d%3D%27m12%205%207%207-7%207%27%2F%3E%3C%2Fsvg%3E");
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center;  mask-position: center;
  -webkit-mask-size: contain;     mask-size: contain;
  transition: transform .24s cubic-bezier(.22,.68,0,1), background-color .24s ease;
}
.tk-form-test .elementor-field-type-radio .elementor-field-option:hover {
  transform: translateY(-2px);
  border-color: #00643A;
  background: rgba(254,226,201,.6);
  box-shadow: 0 18px 45px -22px rgba(27,69,38,.45);
}
.tk-form-test .elementor-field-type-radio .elementor-field-option:hover > label::after {
  transform: translateX(5px);
  background-color: #00643A;
}
.tk-form-test .elementor-field-type-radio .elementor-field-option:has(input:checked) {
  border-color: #00643A;
  background: #FEE2C9;
  box-shadow: inset 0 0 0 1px #00643A;
}
.tk-form-test .elementor-field-type-radio .elementor-field-option:has(input:focus-visible) {
  outline: 2.5px solid #00643A;
  outline-offset: 3px;
}
/* Sin :has (navegadores viejos) la seleccion se ve en el propio radio */
@supports not selector(:has(*)) {
  .tk-form-test .elementor-field-type-radio .elementor-field-option input[type=radio] {
    position: static; width: 19px; height: 19px; opacity: 1; clip: auto;
    accent-color: #00643A; margin-right: 12px;
  }
  .tk-form-test .elementor-field-type-radio .elementor-field-option > label::after { display: none; }
}

/* --- Barra de progreso --- */
.tk-form-test .e-form__indicators { display: block !important; margin-bottom: 32px !important; }
.tk-form-test .e-form__indicators__indicator {
  padding: 0 !important;
  flex-basis: auto !important;
  width: 100% !important;
}
.tk-form-test .e-form__indicators__indicator__progress { width: 100%; }
/* El porcentaje nativo va dentro de una pista de 8 px: no cabe.
   Lo muestra la fila de arriba que inserta el script. */
.tk-form-test .e-form__indicators__indicator__progress__meter {
  font-size: 0 !important;
  padding-right: 0 !important;
  min-width: 8px;
  background-image: linear-gradient(135deg, #DB6B25 0%, #D79628 100%);
  transition: width .5s cubic-bezier(.22,.68,0,1);
}


/* ============================================================
   17. PASO DE RESULTADO — tal cual ViabilityTest.tsx
   El css_classes de un campo html se escribe en el atributo del
   <input>, que para este tipo de campo nunca se imprime
   (form.php:2472 solo hace echo de field_html). El unico gancho
   fiable es .elementor-field-type-html.
   ============================================================ */
.tk-form-test .elementor-field-type-html {
  display: block !important;
  width: 100%;
  padding-bottom: 0 !important;
}
.tk-form-test .elementor-field-type-html h3 {
  font-family: Fraunces, Georgia, serif !important;
  font-size: 30px !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
  color: #17291B !important;
  margin: 0 0 12px !important;
}
@media (max-width: 767px) {
  .tk-form-test .elementor-field-type-html h3 { font-size: 24px !important; }
}
.tk-form-test .elementor-field-type-html p {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: #5E6755 !important;
  margin: 0 0 12px !important;
}
/* La linea de llamada a la accion va en negrita y en color de texto:
   mt-3 font-bold text-foreground */
.tk-form-test .elementor-field-type-html p.tk-result-cta {
  color: #17291B !important;
  font-weight: 700 !important;
  margin: 12px 0 0 !important;
}

/* --- Chips con las respuestas elegidas ---
   Referente: rounded-full bg-secondary px-3 py-1 text-xs font-medium
              text-secondary-foreground, en un flex-wrap con gap-2 */
.tk-form-test .tk-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}
.tk-form-test .tk-chips span {
  display: inline-block;
  border-radius: 999px;
  background: #F4EAD5;
  color: #1F3A25;
  padding: 5px 12px;
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.3333;
  /* Resumen informativo: ni enlace ni boton. */
  cursor: default;
  user-select: none;
}
/* Separacion entre los chips y los campos de captura */
.tk-form-test .tk-chips + * { margin-top: 4px; }
.tk-form-test .e-form__step:last-child .elementor-field-type-text,
.tk-form-test .e-form__step:last-child .elementor-field-type-email { margin-top: 16px; }

/* En el paso final se mantiene "Volver" como enlace de texto: los chips son
   solo un resumen y no llevan a ningun sitio. */
.tk-form-test .elementor-form-fields-wrapper > .e-form__step:last-child
  .e-form__buttons { margin-top: 14px; }


/* ============================================================
   18. UX · accesibilidad · responsive
   ============================================================ */

/* --- Desplazamiento suave con hueco para los anclas --- */
html { scroll-behavior: smooth; }
#inicio, #test, #oferta, #servicios, #contacto { scroll-margin-top: 24px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* --- Enlaces del pie: subrayado al pasar, area de toque comoda --- */
.tk-contact .elementor-icon-list-item a { padding: 4px 0; }
.tk-contact .elementor-icon-list-item a:hover .elementor-icon-list-text {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* --- Formularios: campos con altura de toque y transicion suave --- */
.tk-form .elementor-field-textual {
  min-height: 50px;
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.tk-form .elementor-field-textual:hover { border-color: #D6CFBB; }
.tk-form .elementor-field-group.elementor-error .elementor-field {
  border-color: #B3401F;
  box-shadow: 0 0 0 3px rgba(179,64,31,.13);
}
.tk-form .elementor-message-danger { color: #B3401F; }
.tk-form .elementor-message-success { color: #00643A; font-weight: 500; }
/* El boton no salta al enviarse */
.tk-form .elementor-button[disabled],
.tk-form .elementor-form .elementor-button .elementor-button-content-wrapper { min-height: 22px; }

/* --- Barra de progreso: la anuncia el lector de pantalla --- */
.tk-progress-head { min-height: 20px; }

/* --- Movil: el test respira y las opciones no se aprietan --- */
@media (max-width: 767px) {
  .tk-form-test .elementor-field-type-radio .elementor-field-option > label {
    padding: 14px 16px;
    font-size: 15px;
    gap: 12px;
  }
  .tk-form-test .elementor-field-type-radio .elementor-field-option > label::after {
    width: 18px; height: 18px;
  }
  .tk-form-test .e-form__indicators { margin-bottom: 24px !important; }
  .tk-progress-head .tk-step, .tk-progress-head .tk-pct { font-size: 13px; }
  .tk-form-test .tk-chips span { font-size: 12px; padding: 5px 10px; }
  /* Botones de envio comodos para el pulgar */
  .tk-form .elementor-button { min-height: 52px; }
}

/* --- Tablet: el panel del test aprovecha el ancho --- */
@media (min-width: 768px) and (max-width: 1024px) {
  .tk-form-test .elementor-field-type-radio > label.elementor-field-label {
    font-size: 27px !important;
  }
}

/* --- Pantallas anchas: la foto del hero no se estira de mas --- */
@media (min-width: 1600px) {
  .tk-hero::before {
    background-image: linear-gradient(90deg,
        #FDFAF1 0%, rgba(253,250,241,.95) 38%,
        rgba(253,250,241,.55) 66%, rgba(253,250,241,.12) 100%) !important;
  }
}

/* --- Sin hover (tactil): nada se queda pegado --- */
@media (hover: none) {
  .tk-card:hover, .tk-scard:hover, .tk-mini:hover,
  .tk-warm .elementor-button:hover, .tk-ghost .elementor-button:hover { transform: none; }
  .tk-form-test .elementor-field-type-radio .elementor-field-option:hover {
    transform: none;
    background: #FDFAF1;
    border-color: #E3DECF;
    box-shadow: none;
  }
  .tk-form-test .elementor-field-type-radio .elementor-field-option:hover > label::after {
    transform: none; background-color: #5E6755;
  }
  /* En tactil el estado que importa es el seleccionado */
  .tk-form-test .elementor-field-type-radio .elementor-field-option:active {
    background: #FEE2C9;
    border-color: #00643A;
  }
}

/* --- Impresion --- */
@media print {
  .tk-hero::before { display: none; }
  .tk-canopy { background: #fff !important; color: #000 !important; }
  .tk-canopy * { color: #000 !important; }
  .elementor-invisible { visibility: visible !important; }
  .tk-form-test .e-form__buttons, .tk-progress-head { display: none !important; }
  .tk-card, .tk-mini, .tk-scard { box-shadow: none !important; break-inside: avoid; }
}


/* ============================================================
   19. Enlaces del pie
   El <a> del tema aporta su propio color y lo heredaria el texto.
   El color del icono se resuelve en el bloque 15 sobre el <span>.
   ============================================================ */
.tk-contact .elementor-icon-list-item a,
.tk-contact .elementor-icon-list-text { color: #17291B; }
.tk-contact .elementor-icon-list-item a:hover .elementor-icon-list-text { color: #00643A; }


/* ---------- 20. Ganchos reservados ----------
   Estas clases van puestas en la plantilla a proposito, sin estilos propios:
   sirven para que puedas apuntar CSS a esos elementos sin tener que buscar
   el ID que Elementor genera al azar.

     .tk-panel          los dos paneles blancos (test y contacto)
     .tk-form-contacto  solo el formulario del pie
     .tk-form-test      solo el formulario del test
     --tk-list-icon     color de los iconos de las listas (hero y pie)

   Ejemplo: para que el panel del test sea mas ancho,
     .tk-panel { max-width: 900px; }                                  */
.tk-panel { position: relative; }
.tk-form-contacto { position: relative; }


/* ============================================================
   22. Revelado al hacer scroll — a prueba de fallos
   El elemento NACE VISIBLE. El CSS solo lo oculta si el <html>
   lleva .tk-anim-on, clase que pone el propio JavaScript una vez
   confirmado que esta vivo. Si el JS no corre, si no hay
   IntersectionObserver o si se pide menos movimiento, todo queda
   visible. Es imposible repetir el fallo de las secciones en
   blanco que provocaban las animaciones nativas de Elementor,
   que ocultan desde el servidor con .elementor-invisible.
   ============================================================ */
html.tk-anim-on .tk-rise {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .6s cubic-bezier(.22,.68,0,1),
              transform .6s cubic-bezier(.22,.68,0,1);
  will-change: opacity, transform;
}
html.tk-anim-on .tk-rise.is-in { opacity: 1; transform: none; }
html.tk-anim-on .tk-rise-1 { transition-delay: .09s; }
html.tk-anim-on .tk-rise-2 { transition-delay: .18s; }
html.tk-anim-on .tk-rise-3 { transition-delay: .27s; }
html.tk-anim-on .tk-rise-4 { transition-delay: .36s; }
html.tk-anim-on .tk-rise-5 { transition-delay: .45s; }
@media (prefers-reduced-motion: reduce) {
  html.tk-anim-on .tk-rise {
    opacity: 1 !important; transform: none !important; transition: none !important;
  }
}

/* ---------- 23. Franja 640-767 ----------
   La rejilla de Respaldo es sm:grid-cols-2 en el referente: dos columnas
   desde 640 px. El breakpoint movil de Elementor llega hasta 767, asi que
   entre 640 y 767 se fija la variable con la que resuelve sus rejillas. */
@media (min-width: 640px) and (max-width: 767px) {
  .tk-grid-sm2 { --e-con-grid-template-columns: repeat(2, 1fr); }
}
