.elementor-kit-6{--e-global-color-secondary:#F8F8F8;--e-global-color-primary:#AEB0B2;--e-global-color-text:#FFFFFF;--e-global-color-accent:#FFFFFF2B;--e-global-color-d49ac81:#0AECC5;--e-global-color-332724a:#02D3E0;--e-global-color-cfa1f76:#0A0D21;--e-global-color-7fbea4f:#0A1029;--e-global-color-044b931:#000319;--e-global-color-638d055:#000000;--e-global-color-ec3c7a7:#0AECC5;--e-global-color-3ee16e7:#02D3E0;--e-global-color-cfd5506:#D950C5;--e-global-color-50d373e:#8359EA;--e-global-color-76aea3c:#092224;--e-global-color-khbtntx:#1C1E42;--e-global-color-khbtnhov:#3FF7D6;--e-global-color-khbtnact:#0AB8A1;--e-global-color-khbtnglow:rgba(10,236,197,0.34);--e-global-color-khsectx:#7A95FF;--e-global-color-khsectxh:#B2C2FF;--e-global-color-khsecbr:#6C6F9E;--e-global-color-khsecbg:#2A2C55;--e-global-color-khsecglow:rgba(122,149,255,0.30);--e-global-color-khbg:#121430;--e-global-color-khsurface:#1C1E42;--e-global-color-khelev:#2A2C55;--e-global-color-khbody:#C6C7DD;--e-global-color-khmuted:#9B9DBF;--e-global-color-khstrong:#383B6B;--e-global-color-khchipbg:#0C3A3C;--e-global-color-khchiptx:#96F8E8;--e-global-color-khbrand:#0032F6;--e-global-color-khbrandt2:#D6DEFF;--e-global-color-khband50:#EBEFFF;--e-global-color-khclygos:#FF6600;--e-global-color-khwa:#25D366;--e-global-color-khwa2:#2BDF70;--e-global-color-khalerta:#FF6B6E;--e-global-color-khwaglow:rgba(37,211,102,0.34);--e-global-typography-primary-font-family:"Rajdhani";--e-global-typography-primary-font-size:48px;--e-global-typography-primary-font-weight:600;--e-global-typography-primary-line-height:1.2em;--e-global-typography-secondary-font-family:"Rajdhani";--e-global-typography-secondary-font-size:39px;--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-line-height:1.2em;--e-global-typography-secondary-letter-spacing:-0.5px;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.4em;--e-global-typography-accent-font-family:"Rajdhani";--e-global-typography-accent-font-size:14px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1em;--e-global-typography-accent-letter-spacing:0px;--e-global-typography-b2ce6af-font-family:"Inter";--e-global-typography-b2ce6af-font-size:16px;--e-global-typography-b2ce6af-font-weight:400;--e-global-typography-b2ce6af-text-transform:none;--e-global-typography-b2ce6af-font-style:normal;--e-global-typography-b2ce6af-line-height:1.4em;--e-global-typography-69c152f-font-family:"Inter";--e-global-typography-69c152f-font-size:14px;--e-global-typography-69c152f-font-weight:400;--e-global-typography-69c152f-line-height:1.4em;--e-global-typography-520c191-font-family:"Rajdhani";--e-global-typography-520c191-font-size:18px;--e-global-typography-520c191-font-weight:600;--e-global-typography-520c191-line-height:1.5em;--e-global-typography-583e54c-font-family:"Rajdhani";--e-global-typography-583e54c-font-size:48px;--e-global-typography-583e54c-font-weight:600;--e-global-typography-583e54c-line-height:1.2em;--e-global-typography-5d167aa-font-family:"Rajdhani";--e-global-typography-5d167aa-font-size:39px;--e-global-typography-5d167aa-font-weight:600;--e-global-typography-5d167aa-line-height:1.2em;--e-global-typography-d3dae9a-font-family:"Rajdhani";--e-global-typography-d3dae9a-font-size:31px;--e-global-typography-d3dae9a-font-weight:600;--e-global-typography-d3dae9a-font-style:normal;--e-global-typography-d3dae9a-line-height:1.3em;--e-global-typography-83682a1-font-family:"Rajdhani";--e-global-typography-83682a1-font-size:25px;--e-global-typography-83682a1-font-weight:300;--e-global-typography-83682a1-text-transform:none;--e-global-typography-83682a1-font-style:normal;--e-global-typography-83682a1-line-height:1.3em;--e-global-typography-7044a64-font-family:"Rajdhani";--e-global-typography-7044a64-font-size:20px;--e-global-typography-7044a64-font-weight:600;--e-global-typography-7044a64-line-height:1.4em;--e-global-typography-84ca66e-font-family:"Rajdhani";--e-global-typography-84ca66e-font-size:16px;--e-global-typography-84ca66e-font-weight:400;--e-global-typography-84ca66e-text-transform:uppercase;--e-global-typography-112b6c4-font-family:"Inter";--e-global-typography-112b6c4-font-size:13px;--e-global-typography-112b6c4-font-weight:500;--e-global-typography-112b6c4-line-height:1.5em;--e-global-typography-a435f28-font-family:"Rajdhani";--e-global-typography-a435f28-font-size:61px;--e-global-typography-a435f28-font-weight:700;--e-global-typography-a435f28-line-height:1em;background-color:var( --e-global-color-044b931 );color:var( --e-global-color-primary );font-family:var( --e-global-typography-b2ce6af-font-family ), Sans-serif;font-size:var( --e-global-typography-b2ce6af-font-size );font-weight:var( --e-global-typography-b2ce6af-font-weight );text-transform:var( --e-global-typography-b2ce6af-text-transform );font-style:var( --e-global-typography-b2ce6af-font-style );line-height:var( --e-global-typography-b2ce6af-line-height );letter-spacing:var( --e-global-typography-b2ce6af-letter-spacing );word-spacing:var( --e-global-typography-b2ce6af-word-spacing );}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{background-color:var( --e-global-color-d49ac81 );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );word-spacing:var( --e-global-typography-accent-word-spacing );color:var( --e-global-color-khbtntx );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-d49ac81 );border-radius:8px 8px 8px 8px;}.elementor-kit-6 button:hover,.elementor-kit-6 button:focus,.elementor-kit-6 input[type="button"]:hover,.elementor-kit-6 input[type="button"]:focus,.elementor-kit-6 input[type="submit"]:hover,.elementor-kit-6 input[type="submit"]:focus,.elementor-kit-6 .elementor-button:hover,.elementor-kit-6 .elementor-button:focus{background-color:var( --e-global-color-khbtnhov );color:var( --e-global-color-khbtntx );box-shadow:0px 5px 30px 0px rgba(10, 236, 197, 0.34);border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-khbtnhov );}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-kit-6 a{color:var( --e-global-color-primary );}.elementor-kit-6 a:hover{color:var( --e-global-color-332724a );}.elementor-kit-6 h1{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-583e54c-font-family ), Sans-serif;font-size:var( --e-global-typography-583e54c-font-size );font-weight:var( --e-global-typography-583e54c-font-weight );line-height:var( --e-global-typography-583e54c-line-height );letter-spacing:var( --e-global-typography-583e54c-letter-spacing );word-spacing:var( --e-global-typography-583e54c-word-spacing );}.elementor-kit-6 h2{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-5d167aa-font-family ), Sans-serif;font-size:var( --e-global-typography-5d167aa-font-size );font-weight:var( --e-global-typography-5d167aa-font-weight );line-height:var( --e-global-typography-5d167aa-line-height );letter-spacing:var( --e-global-typography-5d167aa-letter-spacing );word-spacing:var( --e-global-typography-5d167aa-word-spacing );}.elementor-kit-6 h3{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-d3dae9a-font-family ), Sans-serif;font-size:var( --e-global-typography-d3dae9a-font-size );font-weight:var( --e-global-typography-d3dae9a-font-weight );font-style:var( --e-global-typography-d3dae9a-font-style );line-height:var( --e-global-typography-d3dae9a-line-height );letter-spacing:var( --e-global-typography-d3dae9a-letter-spacing );word-spacing:var( --e-global-typography-d3dae9a-word-spacing );}.elementor-kit-6 h4{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-83682a1-font-family ), Sans-serif;font-size:var( --e-global-typography-83682a1-font-size );font-weight:var( --e-global-typography-83682a1-font-weight );text-transform:var( --e-global-typography-83682a1-text-transform );font-style:var( --e-global-typography-83682a1-font-style );line-height:var( --e-global-typography-83682a1-line-height );letter-spacing:var( --e-global-typography-83682a1-letter-spacing );word-spacing:var( --e-global-typography-83682a1-word-spacing );}.elementor-kit-6 h5{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-7044a64-font-family ), Sans-serif;font-size:var( --e-global-typography-7044a64-font-size );font-weight:var( --e-global-typography-7044a64-font-weight );line-height:var( --e-global-typography-7044a64-line-height );letter-spacing:var( --e-global-typography-7044a64-letter-spacing );word-spacing:var( --e-global-typography-7044a64-word-spacing );}.elementor-kit-6 h6{color:var( --e-global-color-d49ac81 );font-family:var( --e-global-typography-84ca66e-font-family ), Sans-serif;font-size:var( --e-global-typography-84ca66e-font-size );font-weight:var( --e-global-typography-84ca66e-font-weight );text-transform:var( --e-global-typography-84ca66e-text-transform );line-height:var( --e-global-typography-84ca66e-line-height );letter-spacing:var( --e-global-typography-84ca66e-letter-spacing );word-spacing:var( --e-global-typography-84ca66e-word-spacing );}.elementor-kit-6 label{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-520c191-font-family ), Sans-serif;font-size:var( --e-global-typography-520c191-font-size );font-weight:var( --e-global-typography-520c191-font-weight );line-height:var( --e-global-typography-520c191-line-height );letter-spacing:var( --e-global-typography-520c191-letter-spacing );word-spacing:var( --e-global-typography-520c191-word-spacing );}.elementor-kit-6 input:not([type="button"]):not([type="submit"]),.elementor-kit-6 textarea,.elementor-kit-6 .elementor-field-textual{font-family:var( --e-global-typography-b2ce6af-font-family ), Sans-serif;font-size:var( --e-global-typography-b2ce6af-font-size );font-weight:var( --e-global-typography-b2ce6af-font-weight );text-transform:var( --e-global-typography-b2ce6af-text-transform );font-style:var( --e-global-typography-b2ce6af-font-style );line-height:var( --e-global-typography-b2ce6af-line-height );letter-spacing:var( --e-global-typography-b2ce6af-letter-spacing );word-spacing:var( --e-global-typography-b2ce6af-word-spacing );color:var( --e-global-color-secondary );background-color:var( --e-global-color-cfa1f76 );border-style:solid;border-width:1px 1px 1px 1px;border-radius:5px 5px 5px 5px;}.elementor-kit-6 input:focus:not([type="button"]):not([type="submit"]),.elementor-kit-6 textarea:focus,.elementor-kit-6 .elementor-field-textual:focus{color:var( --e-global-color-primary );background-color:var( --e-global-color-76aea3c );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-d49ac81 );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-6{--e-global-typography-primary-font-size:37px;--e-global-typography-secondary-font-size:31px;--e-global-typography-text-font-size:15px;--e-global-typography-accent-font-size:13px;--e-global-typography-b2ce6af-font-size:15px;--e-global-typography-69c152f-font-size:13px;--e-global-typography-520c191-font-size:17px;--e-global-typography-583e54c-font-size:37px;--e-global-typography-5d167aa-font-size:31px;--e-global-typography-d3dae9a-font-size:25px;--e-global-typography-83682a1-font-size:21px;--e-global-typography-7044a64-font-size:18px;--e-global-typography-84ca66e-font-size:15px;--e-global-typography-112b6c4-font-size:12px;--e-global-typography-a435f28-font-size:44px;font-size:var( --e-global-typography-b2ce6af-font-size );line-height:var( --e-global-typography-b2ce6af-line-height );letter-spacing:var( --e-global-typography-b2ce6af-letter-spacing );word-spacing:var( --e-global-typography-b2ce6af-word-spacing );}.elementor-kit-6 h1{font-size:var( --e-global-typography-583e54c-font-size );line-height:var( --e-global-typography-583e54c-line-height );letter-spacing:var( --e-global-typography-583e54c-letter-spacing );word-spacing:var( --e-global-typography-583e54c-word-spacing );}.elementor-kit-6 h2{font-size:var( --e-global-typography-5d167aa-font-size );line-height:var( --e-global-typography-5d167aa-line-height );letter-spacing:var( --e-global-typography-5d167aa-letter-spacing );word-spacing:var( --e-global-typography-5d167aa-word-spacing );}.elementor-kit-6 h3{font-size:var( --e-global-typography-d3dae9a-font-size );line-height:var( --e-global-typography-d3dae9a-line-height );letter-spacing:var( --e-global-typography-d3dae9a-letter-spacing );word-spacing:var( --e-global-typography-d3dae9a-word-spacing );}.elementor-kit-6 h4{font-size:var( --e-global-typography-83682a1-font-size );line-height:var( --e-global-typography-83682a1-line-height );letter-spacing:var( --e-global-typography-83682a1-letter-spacing );word-spacing:var( --e-global-typography-83682a1-word-spacing );}.elementor-kit-6 h5{font-size:var( --e-global-typography-7044a64-font-size );line-height:var( --e-global-typography-7044a64-line-height );letter-spacing:var( --e-global-typography-7044a64-letter-spacing );word-spacing:var( --e-global-typography-7044a64-word-spacing );}.elementor-kit-6 h6{font-size:var( --e-global-typography-84ca66e-font-size );line-height:var( --e-global-typography-84ca66e-line-height );letter-spacing:var( --e-global-typography-84ca66e-letter-spacing );word-spacing:var( --e-global-typography-84ca66e-word-spacing );}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );word-spacing:var( --e-global-typography-accent-word-spacing );}.elementor-kit-6 label{font-size:var( --e-global-typography-520c191-font-size );line-height:var( --e-global-typography-520c191-line-height );letter-spacing:var( --e-global-typography-520c191-letter-spacing );word-spacing:var( --e-global-typography-520c191-word-spacing );}.elementor-kit-6 input:not([type="button"]):not([type="submit"]),.elementor-kit-6 textarea,.elementor-kit-6 .elementor-field-textual{font-size:var( --e-global-typography-b2ce6af-font-size );line-height:var( --e-global-typography-b2ce6af-line-height );letter-spacing:var( --e-global-typography-b2ce6af-letter-spacing );word-spacing:var( --e-global-typography-b2ce6af-word-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-6{--e-global-typography-primary-font-size:30px;--e-global-typography-secondary-font-size:24px;--e-global-typography-text-font-size:14px;--e-global-typography-accent-font-size:12px;--e-global-typography-b2ce6af-font-size:14px;--e-global-typography-69c152f-font-size:12px;--e-global-typography-520c191-font-size:16px;--e-global-typography-583e54c-font-size:30px;--e-global-typography-5d167aa-font-size:24px;--e-global-typography-d3dae9a-font-size:20px;--e-global-typography-83682a1-font-size:18px;--e-global-typography-7044a64-font-size:16px;--e-global-typography-84ca66e-font-size:14px;--e-global-typography-112b6c4-font-size:11px;--e-global-typography-a435f28-font-size:32px;font-size:var( --e-global-typography-b2ce6af-font-size );line-height:var( --e-global-typography-b2ce6af-line-height );letter-spacing:var( --e-global-typography-b2ce6af-letter-spacing );word-spacing:var( --e-global-typography-b2ce6af-word-spacing );}.elementor-kit-6 h1{font-size:var( --e-global-typography-583e54c-font-size );line-height:var( --e-global-typography-583e54c-line-height );letter-spacing:var( --e-global-typography-583e54c-letter-spacing );word-spacing:var( --e-global-typography-583e54c-word-spacing );}.elementor-kit-6 h2{font-size:var( --e-global-typography-5d167aa-font-size );line-height:var( --e-global-typography-5d167aa-line-height );letter-spacing:var( --e-global-typography-5d167aa-letter-spacing );word-spacing:var( --e-global-typography-5d167aa-word-spacing );}.elementor-kit-6 h3{font-size:var( --e-global-typography-d3dae9a-font-size );line-height:var( --e-global-typography-d3dae9a-line-height );letter-spacing:var( --e-global-typography-d3dae9a-letter-spacing );word-spacing:var( --e-global-typography-d3dae9a-word-spacing );}.elementor-kit-6 h4{font-size:var( --e-global-typography-83682a1-font-size );line-height:var( --e-global-typography-83682a1-line-height );letter-spacing:var( --e-global-typography-83682a1-letter-spacing );word-spacing:var( --e-global-typography-83682a1-word-spacing );}.elementor-kit-6 h5{font-size:var( --e-global-typography-7044a64-font-size );line-height:var( --e-global-typography-7044a64-line-height );letter-spacing:var( --e-global-typography-7044a64-letter-spacing );word-spacing:var( --e-global-typography-7044a64-word-spacing );}.elementor-kit-6 h6{font-size:var( --e-global-typography-84ca66e-font-size );line-height:var( --e-global-typography-84ca66e-line-height );letter-spacing:var( --e-global-typography-84ca66e-letter-spacing );word-spacing:var( --e-global-typography-84ca66e-word-spacing );}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );word-spacing:var( --e-global-typography-accent-word-spacing );}.elementor-kit-6 label{font-size:var( --e-global-typography-520c191-font-size );line-height:var( --e-global-typography-520c191-line-height );letter-spacing:var( --e-global-typography-520c191-letter-spacing );word-spacing:var( --e-global-typography-520c191-word-spacing );}.elementor-kit-6 input:not([type="button"]):not([type="submit"]),.elementor-kit-6 textarea,.elementor-kit-6 .elementor-field-textual{font-size:var( --e-global-typography-b2ce6af-font-size );line-height:var( --e-global-typography-b2ce6af-line-height );letter-spacing:var( --e-global-typography-b2ce6af-letter-spacing );word-spacing:var( --e-global-typography-b2ce6af-word-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ==========================================================================
   RAJDHANI AUTOALOJADA  (2026-09-02, orden del operador)
   Antes la servia fonts.googleapis.com en TODAS las paginas, lo que manda la
   IP del visitante a Google antes de cualquier consentimiento. Los ficheros
   viven ahora en uploads/fonts/rajdhani y las Google Fonts de Elementor estan
   apagadas (opcion elementor_google_font = 0).
   Subconjuntos latin y latin-ext; el unicode-range hace que el navegador baje
   solo lo que necesita. display:swap, igual que servia Google.
   ========================================================================== */
@font-face{
  font-family:"Rajdhani";
  font-style:normal;
  font-weight:300;
  font-display:swap;
  src:url("/wp-content/uploads/fonts/rajdhani/rajdhani-300-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:"Rajdhani";
  font-style:normal;
  font-weight:300;
  font-display:swap;
  src:url("/wp-content/uploads/fonts/rajdhani/rajdhani-300-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;
}
@font-face{
  font-family:"Rajdhani";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("/wp-content/uploads/fonts/rajdhani/rajdhani-400-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:"Rajdhani";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("/wp-content/uploads/fonts/rajdhani/rajdhani-400-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;
}
@font-face{
  font-family:"Rajdhani";
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url("/wp-content/uploads/fonts/rajdhani/rajdhani-500-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:"Rajdhani";
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url("/wp-content/uploads/fonts/rajdhani/rajdhani-500-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;
}
@font-face{
  font-family:"Rajdhani";
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url("/wp-content/uploads/fonts/rajdhani/rajdhani-600-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:"Rajdhani";
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url("/wp-content/uploads/fonts/rajdhani/rajdhani-600-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;
}
@font-face{
  font-family:"Rajdhani";
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url("/wp-content/uploads/fonts/rajdhani/rajdhani-700-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:"Rajdhani";
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url("/wp-content/uploads/fonts/rajdhani/rajdhani-700-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;
}

/* === KH-FIDELIDAD:INI === */
/* Reafirma el kit frente a los globales por defecto de los widgets. Fase 7a, 2026-08-20.
   Botones: color y efecto del archivo de componentes, 2026-08-21
   (info/Portafolio/kharonte-componentes.html, seccion "botones"). Ningun hex literal: todo por token. */

/* Boton: ESTANDAR UNICO del sitio (orden del operador 2026-08-24).
   El efecto del boton del hero aplica a TODOS los botones; el halo toma el
   color respectivo de cada variante via --khglow1/--khglow2. Peso 600 para
   legibilidad (tambien fijado en la tipografia de botones del kit).
   Variantes por clase en el widget de boton:
     (sin clase) = primario teal del kit  |  .kh-btn2 = secundario en contorno
     .kh-btnb = boton de banda blanco sobre azul de marca (halo blanco;
     unico rgba literal porque no existe token de brillo blanco). */
.elementor-kit-6 .elementor-widget-button .elementor-button,
.elementor-kit-6 .elementor-widget-form .elementor-button[type="submit"]{
  --khglow1:var(--e-global-color-khbtnglow);
  --khglow2:var(--e-global-color-khbtnglow);
  background-color:var(--e-global-color-d49ac81);
  color:var(--e-global-color-khbtntx);
  fill:var(--e-global-color-khbtntx);
  border-color:var(--e-global-color-d49ac81);
  font-weight:600;
  transition:background-color .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.elementor-kit-6 .elementor-widget-button.kh-btn2 .elementor-button{
  --khglow1:var(--e-global-color-khsecglow);
  --khglow2:var(--e-global-color-khsecglow);
}
.elementor-kit-6 .elementor-widget-button.kh-btnb .elementor-button{
  --khglow1:rgba(0,0,0,.28);
  --khglow2:rgba(255,255,255,.45);
}
/* Hover del archivo: aclara el fondo, eleva 2 px y enciende el halo doble.
   Los colores de cada variante viven en su widget y ganan por especificidad;
   aqui solo el efecto. */
.elementor-kit-6 .elementor-widget-button .elementor-button:hover,
.elementor-kit-6 .elementor-widget-button .elementor-button:focus,
.elementor-kit-6 .elementor-widget-form .elementor-button[type="submit"]:hover,
.elementor-kit-6 .elementor-widget-form .elementor-button[type="submit"]:focus{
  background-color:var(--e-global-color-khbtnhov);
  color:var(--e-global-color-khbtntx);
  fill:var(--e-global-color-khbtntx);
  border-color:var(--e-global-color-khbtnhov);
  transform:translateY(-2px);
  box-shadow:0 7px 20px var(--khglow1),0 0 0 3px var(--khglow2);
}
/* Pulsacion: vuelve al plano y oscurece. */
.elementor-kit-6 .elementor-widget-button .elementor-button:active,
.elementor-kit-6 .elementor-widget-form .elementor-button[type="submit"]:active{
  background-color:var(--e-global-color-khbtnact);
  border-color:var(--e-global-color-khbtnact);
  transform:translateY(0);
  box-shadow:0 0 0 3px var(--khglow2);
}
/* Foco visible por teclado (WCAG 2.4.7). */
.elementor-kit-6 .elementor-widget-button .elementor-button:focus-visible,
.elementor-kit-6 .elementor-widget-form .elementor-button[type="submit"]:focus-visible{
  outline:2px solid var(--e-global-color-secondary);
  outline-offset:3px;
}
/* Foco visible general del sitio (antes vivia repetido por pagina). */
.elementor-kit-6 a:focus-visible,
.elementor-kit-6 button:focus-visible,
.elementor-kit-6 .elementor-tab-title:focus-visible{
  outline:2px solid var(--e-global-color-khsectx)!important;
  outline-offset:3px;border-radius:4px;
}
/* Movimiento reducido: anula la elevacion, no el resto del efecto. */
@media (prefers-reduced-motion:reduce){
  .elementor-kit-6 .elementor-widget-button .elementor-button,
  .elementor-kit-6 .elementor-widget-form .elementor-button[type="submit"]{transition:none}
  .elementor-kit-6 .elementor-widget-button .elementor-button:hover,
  .elementor-kit-6 .elementor-widget-form .elementor-button[type="submit"]:hover{transform:none}
}

/* Titulares: el kit los quiere en el blanco de titular, no en el gris de cuerpo. */
.elementor-kit-6 .elementor-widget-heading h1.elementor-heading-title,
.elementor-kit-6 .elementor-widget-heading h2.elementor-heading-title,
.elementor-kit-6 .elementor-widget-heading h3.elementor-heading-title,
.elementor-kit-6 .elementor-widget-heading h4.elementor-heading-title,
.elementor-kit-6 .elementor-widget-heading h5.elementor-heading-title{
  color:var(--e-global-color-secondary);
}
/* El h6 es el rotulo de seccion: color de marca, como fija el kit. */
.elementor-kit-6 .elementor-widget-heading h6.elementor-heading-title{
  color:var(--e-global-color-d49ac81);
}

/* Extracto de las tarjetas: Elementor lo fija a un gris propio de 4,57:1. Pasa al gris del kit (8,9:1). */
.elementor-kit-6 .elementor-posts .elementor-post__excerpt p{
  color:var(--e-global-color-primary);
}
/* === KH-FIDELIDAD:FIN === */


/* === KH-LEGAL:INI === */
/* Paginas de texto largo (avisos y politicas). Fase 7b, 2026-08-20. */
.kh-legal .elementor-widget-text-editor p{line-height:1.75;margin:0 0 1em}
.kh-legal .elementor-widget-text-editor p:last-child{margin-bottom:0}
.kh-legal strong{color:var(--e-global-color-secondary);font-weight:600}
/* En el kit el enlace tiene el color del cuerpo: dentro del texto legal se subraya
   para que sea distinguible sin depender del color (WCAG 1.4.1). */
.kh-legal a{color:var(--e-global-color-d49ac81);text-decoration:underline;text-underline-offset:2px}
.kh-legal a:hover{color:var(--e-global-color-332724a)}
.kh-legal a:focus-visible{outline:2px solid var(--e-global-color-secondary);outline-offset:2px}
/* === KH-LEGAL:FIN === */


/* === KH-STICKY:INI === */
/* Cabecera fija. Fase 7d, 2026-08-20. En reposo se ve igual; al desplazar se separa del
   contenido con una linea y una sombra para que no parezca que flota sobre el texto. */
.elementor-location-header .elementor-sticky--effects{
  border-bottom:1px solid var(--e-global-color-4d462f5);
  box-shadow:0 6px 26px rgba(0,0,0,.5);
  backdrop-filter:saturate(120%);
}
@media (prefers-reduced-motion:reduce){
  .elementor-location-header .elementor-sticky--effects{transition:none}
}
/* === KH-STICKY:FIN === */





/* === KH-FONDO:INI === */
/* Fondos propios del heroe y del pie. Fase 7f, 2026-08-20.
   Sustituyen la imagen de demostracion del kit (bg_img2). Cada dibujo se relaciona
   con el contenido de su pagina y ocupa todo el ancho del contenedor.
   Van como mascara: el SVG no lleva color y el tono lo pone el token del kit.
   Se usa ::after porque Elementor ya ocupa ::before con su superposicion. */

.kh-fondo{position:relative}
.kh-fondo > *{position:relative;z-index:1}
.kh-fondo::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-color:var(--e-global-color-d49ac81);
  opacity:.13;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-size:cover;mask-size:cover;
  -webkit-mask-position:center;mask-position:center;
}
.kh-fondo-pie::after{opacity:.16}
@media (max-width:767px){ .kh-fondo::after{opacity:.09} }
@media (prefers-reduced-transparency:reduce){ .kh-fondo::after{opacity:.06} }

.kh-fondo-contacto::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201440%20400%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%271010%27%20y%3D%2796%27%20width%3D%27300%27%20height%3D%27208%27%20rx%3D%2718%27%2F%3E%3Cpath%20d%3D%27M1010%20120l150%20112%20150-112%27%2F%3E%3Cpath%20d%3D%27M70%20292c180%200%20210-96%20380-96s240%2060%20420%2040%27%20stroke-dasharray%3D%2710%2014%27%2F%3E%3Crect%20x%3D%2796%27%20y%3D%2796%27%20width%3D%27210%27%20height%3D%27112%27%20rx%3D%2716%27%2F%3E%3Cpath%20d%3D%27M140%20240l32-32h-32z%27%2F%3E%3Cpath%20d%3D%27M136%20132h130M136%20164h90%27%2F%3E%3Crect%20x%3D%27372%27%20y%3D%27176%27%20width%3D%27150%27%20height%3D%2784%27%20rx%3D%2714%27%2F%3E%3Cpath%20d%3D%27M404%20288l26-28h-26z%27%2F%3E%3Cpath%20d%3D%27M404%20208h86%27%2F%3E%3Ccircle%20cx%3D%27700%27%20cy%3D%27150%27%20r%3D%277%27%2F%3E%3Ccircle%20cx%3D%27800%27%20cy%3D%27120%27%20r%3D%275%27%2F%3E%3Ccircle%20cx%3D%27880%27%20cy%3D%27168%27%20r%3D%276%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%20viewBox%3D%270%200%201440%20400%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%271010%27%20y%3D%2796%27%20width%3D%27300%27%20height%3D%27208%27%20rx%3D%2718%27%2F%3E%3Cpath%20d%3D%27M1010%20120l150%20112%20150-112%27%2F%3E%3Cpath%20d%3D%27M70%20292c180%200%20210-96%20380-96s240%2060%20420%2040%27%20stroke-dasharray%3D%2710%2014%27%2F%3E%3Crect%20x%3D%2796%27%20y%3D%2796%27%20width%3D%27210%27%20height%3D%27112%27%20rx%3D%2716%27%2F%3E%3Cpath%20d%3D%27M140%20240l32-32h-32z%27%2F%3E%3Cpath%20d%3D%27M136%20132h130M136%20164h90%27%2F%3E%3Crect%20x%3D%27372%27%20y%3D%27176%27%20width%3D%27150%27%20height%3D%2784%27%20rx%3D%2714%27%2F%3E%3Cpath%20d%3D%27M404%20288l26-28h-26z%27%2F%3E%3Cpath%20d%3D%27M404%20208h86%27%2F%3E%3Ccircle%20cx%3D%27700%27%20cy%3D%27150%27%20r%3D%277%27%2F%3E%3Ccircle%20cx%3D%27800%27%20cy%3D%27120%27%20r%3D%275%27%2F%3E%3Ccircle%20cx%3D%27880%27%20cy%3D%27168%27%20r%3D%276%27%2F%3E%3C%2Fsvg%3E")}
.kh-fondo-nosotros::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201440%20400%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M1140%2060l128%2052v88c0%2082-55%20140-128%20164-73-24-128-82-128-164v-88z%27%2F%3E%3Cpath%20d%3D%27M1088%20200l36%2040%2070-79%27%2F%3E%3Ccircle%20cx%3D%27150%27%20cy%3D%27120%27%20r%3D%2711%27%2F%3E%3Ccircle%20cx%3D%27330%27%20cy%3D%27230%27%20r%3D%2711%27%2F%3E%3Ccircle%20cx%3D%27150%27%20cy%3D%27320%27%20r%3D%2711%27%2F%3E%3Ccircle%20cx%3D%27520%27%20cy%3D%27120%27%20r%3D%2711%27%2F%3E%3Ccircle%20cx%3D%27520%27%20cy%3D%27320%27%20r%3D%2711%27%2F%3E%3Ccircle%20cx%3D%27710%27%20cy%3D%27224%27%20r%3D%2711%27%2F%3E%3Cpath%20d%3D%27M161%20126l158%2098M161%20314l158-84M341%20224h168M530%20128l170%2088M530%20312l170-80%27%2F%3E%3Cpath%20d%3D%27M520%20131v178%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%20viewBox%3D%270%200%201440%20400%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M1140%2060l128%2052v88c0%2082-55%20140-128%20164-73-24-128-82-128-164v-88z%27%2F%3E%3Cpath%20d%3D%27M1088%20200l36%2040%2070-79%27%2F%3E%3Ccircle%20cx%3D%27150%27%20cy%3D%27120%27%20r%3D%2711%27%2F%3E%3Ccircle%20cx%3D%27330%27%20cy%3D%27230%27%20r%3D%2711%27%2F%3E%3Ccircle%20cx%3D%27150%27%20cy%3D%27320%27%20r%3D%2711%27%2F%3E%3Ccircle%20cx%3D%27520%27%20cy%3D%27120%27%20r%3D%2711%27%2F%3E%3Ccircle%20cx%3D%27520%27%20cy%3D%27320%27%20r%3D%2711%27%2F%3E%3Ccircle%20cx%3D%27710%27%20cy%3D%27224%27%20r%3D%2711%27%2F%3E%3Cpath%20d%3D%27M161%20126l158%2098M161%20314l158-84M341%20224h168M530%20128l170%2088M530%20312l170-80%27%2F%3E%3Cpath%20d%3D%27M520%20131v178%27%2F%3E%3C%2Fsvg%3E")}
.kh-fondo-privacidad::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201440%20400%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M1150%2056l132%2054v92c0%2084-57%20144-132%20168-75-24-132-84-132-168v-92z%27%2F%3E%3Ccircle%20cx%3D%271150%27%20cy%3D%27186%27%20r%3D%2726%27%2F%3E%3Cpath%20d%3D%27M1150%20212v52%27%2F%3E%3Crect%20x%3D%27110%27%20y%3D%2796%27%20width%3D%27128%27%20height%3D%2796%27%20rx%3D%2712%27%2F%3E%3Crect%20x%3D%27286%27%20y%3D%2796%27%20width%3D%27128%27%20height%3D%2796%27%20rx%3D%2712%27%2F%3E%3Crect%20x%3D%27110%27%20y%3D%27240%27%20width%3D%27128%27%20height%3D%2796%27%20rx%3D%2712%27%2F%3E%3Crect%20x%3D%27286%27%20y%3D%27240%27%20width%3D%27128%27%20height%3D%2796%27%20rx%3D%2712%27%2F%3E%3Crect%20x%3D%27462%27%20y%3D%27168%27%20width%3D%27128%27%20height%3D%2796%27%20rx%3D%2712%27%2F%3E%3Cpath%20d%3D%27M238%20144h48M414%20144h48M238%20288h48M414%20216h48%27%20stroke-dasharray%3D%278%2010%27%2F%3E%3Cpath%20d%3D%27M660%20130v140M760%20100v200M860%20150v100%27%20stroke-dasharray%3D%276%2012%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%20viewBox%3D%270%200%201440%20400%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M1150%2056l132%2054v92c0%2084-57%20144-132%20168-75-24-132-84-132-168v-92z%27%2F%3E%3Ccircle%20cx%3D%271150%27%20cy%3D%27186%27%20r%3D%2726%27%2F%3E%3Cpath%20d%3D%27M1150%20212v52%27%2F%3E%3Crect%20x%3D%27110%27%20y%3D%2796%27%20width%3D%27128%27%20height%3D%2796%27%20rx%3D%2712%27%2F%3E%3Crect%20x%3D%27286%27%20y%3D%2796%27%20width%3D%27128%27%20height%3D%2796%27%20rx%3D%2712%27%2F%3E%3Crect%20x%3D%27110%27%20y%3D%27240%27%20width%3D%27128%27%20height%3D%2796%27%20rx%3D%2712%27%2F%3E%3Crect%20x%3D%27286%27%20y%3D%27240%27%20width%3D%27128%27%20height%3D%2796%27%20rx%3D%2712%27%2F%3E%3Crect%20x%3D%27462%27%20y%3D%27168%27%20width%3D%27128%27%20height%3D%2796%27%20rx%3D%2712%27%2F%3E%3Cpath%20d%3D%27M238%20144h48M414%20144h48M238%20288h48M414%20216h48%27%20stroke-dasharray%3D%278%2010%27%2F%3E%3Cpath%20d%3D%27M660%20130v140M760%20100v200M860%20150v100%27%20stroke-dasharray%3D%276%2012%27%2F%3E%3C%2Fsvg%3E")}
.kh-fondo-cookies::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201440%20400%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%271160%27%20cy%3D%27200%27%20r%3D%27128%27%2F%3E%3Ccircle%20cx%3D%271114%27%20cy%3D%27150%27%20r%3D%2715%27%2F%3E%3Ccircle%20cx%3D%271214%27%20cy%3D%27138%27%20r%3D%2712%27%2F%3E%3Ccircle%20cx%3D%271200%27%20cy%3D%27236%27%20r%3D%2719%27%2F%3E%3Ccircle%20cx%3D%271104%27%20cy%3D%27246%27%20r%3D%2710%27%2F%3E%3Ccircle%20cx%3D%271158%27%20cy%3D%27196%27%20r%3D%279%27%2F%3E%3Ccircle%20cx%3D%27880%27%20cy%3D%27140%27%20r%3D%279%27%2F%3E%3Ccircle%20cx%3D%27790%27%20cy%3D%27250%27%20r%3D%277%27%2F%3E%3Ccircle%20cx%3D%27690%27%20cy%3D%27170%27%20r%3D%2711%27%2F%3E%3Ccircle%20cx%3D%27560%27%20cy%3D%27268%27%20r%3D%276%27%2F%3E%3Ccircle%20cx%3D%27430%27%20cy%3D%27150%27%20r%3D%278%27%2F%3E%3Ccircle%20cx%3D%27300%27%20cy%3D%27250%27%20r%3D%2710%27%2F%3E%3Ccircle%20cx%3D%27160%27%20cy%3D%27170%27%20r%3D%276%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%20viewBox%3D%270%200%201440%20400%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%271160%27%20cy%3D%27200%27%20r%3D%27128%27%2F%3E%3Ccircle%20cx%3D%271114%27%20cy%3D%27150%27%20r%3D%2715%27%2F%3E%3Ccircle%20cx%3D%271214%27%20cy%3D%27138%27%20r%3D%2712%27%2F%3E%3Ccircle%20cx%3D%271200%27%20cy%3D%27236%27%20r%3D%2719%27%2F%3E%3Ccircle%20cx%3D%271104%27%20cy%3D%27246%27%20r%3D%2710%27%2F%3E%3Ccircle%20cx%3D%271158%27%20cy%3D%27196%27%20r%3D%279%27%2F%3E%3Ccircle%20cx%3D%27880%27%20cy%3D%27140%27%20r%3D%279%27%2F%3E%3Ccircle%20cx%3D%27790%27%20cy%3D%27250%27%20r%3D%277%27%2F%3E%3Ccircle%20cx%3D%27690%27%20cy%3D%27170%27%20r%3D%2711%27%2F%3E%3Ccircle%20cx%3D%27560%27%20cy%3D%27268%27%20r%3D%276%27%2F%3E%3Ccircle%20cx%3D%27430%27%20cy%3D%27150%27%20r%3D%278%27%2F%3E%3Ccircle%20cx%3D%27300%27%20cy%3D%27250%27%20r%3D%2710%27%2F%3E%3Ccircle%20cx%3D%27160%27%20cy%3D%27170%27%20r%3D%276%27%2F%3E%3C%2Fsvg%3E")}
.kh-fondo-legal::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201440%20400%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M720%2070v268M620%20118h200M720%2084l-100%2034M720%2084l100%2034%27%2F%3E%3Cpath%20d%3D%27M620%20118l-56%20128h112zM820%20118l-56%20128h112z%27%2F%3E%3Cpath%20d%3D%27M654%20338h132%27%2F%3E%3Cpath%20d%3D%27M170%20130h140M180%20130v190M300%20130v190M210%20160v160M270%20160v160M150%20320h180%27%2F%3E%3Cpath%20d%3D%27M1130%20130h140M1140%20130v190M1260%20130v190M1170%20160v160M1230%20160v160M1110%20320h180%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%20viewBox%3D%270%200%201440%20400%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M720%2070v268M620%20118h200M720%2084l-100%2034M720%2084l100%2034%27%2F%3E%3Cpath%20d%3D%27M620%20118l-56%20128h112zM820%20118l-56%20128h112z%27%2F%3E%3Cpath%20d%3D%27M654%20338h132%27%2F%3E%3Cpath%20d%3D%27M170%20130h140M180%20130v190M300%20130v190M210%20160v160M270%20160v160M150%20320h180%27%2F%3E%3Cpath%20d%3D%27M1130%20130h140M1140%20130v190M1260%20130v190M1170%20160v160M1230%20160v160M1110%20320h180%27%2F%3E%3C%2Fsvg%3E")}
.kh-fondo-noticias::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201440%20400%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%27120%27%20y%3D%2780%27%20width%3D%27360%27%20height%3D%27240%27%20rx%3D%2714%27%2F%3E%3Crect%20x%3D%27152%27%20y%3D%27112%27%20width%3D%27296%27%20height%3D%27104%27%20rx%3D%278%27%2F%3E%3Cpath%20d%3D%27M152%20246h296M152%20278h200%27%2F%3E%3Crect%20x%3D%27540%27%20y%3D%2780%27%20width%3D%27360%27%20height%3D%27240%27%20rx%3D%2714%27%2F%3E%3Crect%20x%3D%27572%27%20y%3D%27112%27%20width%3D%27296%27%20height%3D%27104%27%20rx%3D%278%27%2F%3E%3Cpath%20d%3D%27M572%20246h296M572%20278h200%27%2F%3E%3Crect%20x%3D%27960%27%20y%3D%2780%27%20width%3D%27360%27%20height%3D%27240%27%20rx%3D%2714%27%2F%3E%3Crect%20x%3D%27992%27%20y%3D%27112%27%20width%3D%27296%27%20height%3D%27104%27%20rx%3D%278%27%2F%3E%3Cpath%20d%3D%27M992%20246h296M992%20278h200%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%20viewBox%3D%270%200%201440%20400%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%27120%27%20y%3D%2780%27%20width%3D%27360%27%20height%3D%27240%27%20rx%3D%2714%27%2F%3E%3Crect%20x%3D%27152%27%20y%3D%27112%27%20width%3D%27296%27%20height%3D%27104%27%20rx%3D%278%27%2F%3E%3Cpath%20d%3D%27M152%20246h296M152%20278h200%27%2F%3E%3Crect%20x%3D%27540%27%20y%3D%2780%27%20width%3D%27360%27%20height%3D%27240%27%20rx%3D%2714%27%2F%3E%3Crect%20x%3D%27572%27%20y%3D%27112%27%20width%3D%27296%27%20height%3D%27104%27%20rx%3D%278%27%2F%3E%3Cpath%20d%3D%27M572%20246h296M572%20278h200%27%2F%3E%3Crect%20x%3D%27960%27%20y%3D%2780%27%20width%3D%27360%27%20height%3D%27240%27%20rx%3D%2714%27%2F%3E%3Crect%20x%3D%27992%27%20y%3D%27112%27%20width%3D%27296%27%20height%3D%27104%27%20rx%3D%278%27%2F%3E%3Cpath%20d%3D%27M992%20246h296M992%20278h200%27%2F%3E%3C%2Fsvg%3E")}
.kh-fondo-servicios::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201440%20400%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M720%2060l150%2068-150%2068-150-68z%27%2F%3E%3Cpath%20d%3D%27M570%20200l150%2068%20150-68%27%2F%3E%3Cpath%20d%3D%27M570%20272l150%2068%20150-68%27%2F%3E%3Crect%20x%3D%27120%27%20y%3D%27120%27%20width%3D%27230%27%20height%3D%2772%27%20rx%3D%2712%27%2F%3E%3Crect%20x%3D%27120%27%20y%3D%27226%27%20width%3D%27230%27%20height%3D%2772%27%20rx%3D%2712%27%2F%3E%3Cpath%20d%3D%27M160%20156h8M190%20156h8M160%20262h8M190%20262h8%27%2F%3E%3Crect%20x%3D%271090%27%20y%3D%27120%27%20width%3D%27230%27%20height%3D%2772%27%20rx%3D%2712%27%2F%3E%3Crect%20x%3D%271090%27%20y%3D%27226%27%20width%3D%27230%27%20height%3D%2772%27%20rx%3D%2712%27%2F%3E%3Cpath%20d%3D%27M1130%20156h8M1160%20156h8M1130%20262h8M1160%20262h8%27%2F%3E%3Cpath%20d%3D%27M350%20156h150M350%20262h150M940%20156h150M940%20262h150%27%20stroke-dasharray%3D%279%2012%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%20viewBox%3D%270%200%201440%20400%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M720%2060l150%2068-150%2068-150-68z%27%2F%3E%3Cpath%20d%3D%27M570%20200l150%2068%20150-68%27%2F%3E%3Cpath%20d%3D%27M570%20272l150%2068%20150-68%27%2F%3E%3Crect%20x%3D%27120%27%20y%3D%27120%27%20width%3D%27230%27%20height%3D%2772%27%20rx%3D%2712%27%2F%3E%3Crect%20x%3D%27120%27%20y%3D%27226%27%20width%3D%27230%27%20height%3D%2772%27%20rx%3D%2712%27%2F%3E%3Cpath%20d%3D%27M160%20156h8M190%20156h8M160%20262h8M190%20262h8%27%2F%3E%3Crect%20x%3D%271090%27%20y%3D%27120%27%20width%3D%27230%27%20height%3D%2772%27%20rx%3D%2712%27%2F%3E%3Crect%20x%3D%271090%27%20y%3D%27226%27%20width%3D%27230%27%20height%3D%2772%27%20rx%3D%2712%27%2F%3E%3Cpath%20d%3D%27M1130%20156h8M1160%20156h8M1130%20262h8M1160%20262h8%27%2F%3E%3Cpath%20d%3D%27M350%20156h150M350%20262h150M940%20156h150M940%20262h150%27%20stroke-dasharray%3D%279%2012%27%2F%3E%3C%2Fsvg%3E")}
.kh-fondo-error::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201440%20400%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M0%20200h380%27%20stroke-dasharray%3D%2718%2022%27%2F%3E%3Cpath%20d%3D%27M1060%20200h380%27%20stroke-dasharray%3D%2718%2022%27%2F%3E%3Cpath%20d%3D%27M470%20148h-44a52%2052%200%20000%20104h44%27%2F%3E%3Cpath%20d%3D%27M970%20148h44a52%2052%200%20010%20104h-44%27%2F%3E%3Cpath%20d%3D%27M524%20200h74M842%20200h74%27%20stroke-dasharray%3D%2711%2015%27%2F%3E%3Cpath%20d%3D%27M664%20152l112%2096M776%20152l-112%2096%27%2F%3E%3Ccircle%20cx%3D%27250%27%20cy%3D%27104%27%20r%3D%279%27%2F%3E%3Ccircle%20cx%3D%271198%27%20cy%3D%27300%27%20r%3D%279%27%2F%3E%3Ccircle%20cx%3D%27360%27%20cy%3D%27312%27%20r%3D%277%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%20viewBox%3D%270%200%201440%20400%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%273%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M0%20200h380%27%20stroke-dasharray%3D%2718%2022%27%2F%3E%3Cpath%20d%3D%27M1060%20200h380%27%20stroke-dasharray%3D%2718%2022%27%2F%3E%3Cpath%20d%3D%27M470%20148h-44a52%2052%200%20000%20104h44%27%2F%3E%3Cpath%20d%3D%27M970%20148h44a52%2052%200%20010%20104h-44%27%2F%3E%3Cpath%20d%3D%27M524%20200h74M842%20200h74%27%20stroke-dasharray%3D%2711%2015%27%2F%3E%3Cpath%20d%3D%27M664%20152l112%2096M776%20152l-112%2096%27%2F%3E%3Ccircle%20cx%3D%27250%27%20cy%3D%27104%27%20r%3D%279%27%2F%3E%3Ccircle%20cx%3D%271198%27%20cy%3D%27300%27%20r%3D%279%27%2F%3E%3Ccircle%20cx%3D%27360%27%20cy%3D%27312%27%20r%3D%277%27%2F%3E%3C%2Fsvg%3E")}
.kh-fondo-pie::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201440%20560%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cg%20stroke-opacity%3D%270.09%27%20stroke-width%3D%271.1%27%3E%3Cpath%20d%3D%27M240%200v560M480%200v560M720%200v560M960%200v560M1200%200v560%27%20stroke-dasharray%3D%272%2022%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.3%27%20stroke-width%3D%271.4%27%3E%3Cpath%20d%3D%27M0%2052H1440%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.42%27%20stroke-width%3D%271.5%27%3E%3Cpath%20d%3D%27M0%20122H1034Q1060%20122%201078.4%20140.4L1111.6%20173.6Q1130%20192%201156%20192H1440%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.5%27%20stroke-width%3D%271.6%27%3E%3Cpath%20d%3D%27M0%20192H854Q880%20192%20898.4%20210.4L931.6%20243.6Q950%20262%20976%20262H1440%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.85%27%20stroke-width%3D%272.4%27%3E%3Cpath%20d%3D%27M0%20262H674Q700%20262%20718.4%20280.4L751.6%20313.6Q770%20332%20796%20332H1129.1%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.5%27%20stroke-width%3D%271.6%27%3E%3Cpath%20d%3D%27M0%20332H494Q520%20332%20538.4%20350.4L571.6%20383.6Q590%20402%20616%20402H1094.7%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.42%27%20stroke-width%3D%271.5%27%3E%3Cpath%20d%3D%27M0%20402H314Q340%20402%20358.4%20420.4L391.6%20453.6Q410%20472%20436%20472H1098.1%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.32%27%20stroke-width%3D%271.4%27%3E%3Cpath%20d%3D%27M0%20472H134Q160%20472%20178.4%20490.4L211.6%20523.6Q230%20542%20256%20542H1143.3%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.9%27%20stroke-width%3D%272.4%27%3E%3Ccircle%20cx%3D%271240%27%20cy%3D%27430%27%20r%3D%2734%27%2F%3E%3Ccircle%20cx%3D%271240%27%20cy%3D%27430%27%20r%3D%275.5%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.55%27%20stroke-width%3D%271.8%27%3E%3Ccircle%20cx%3D%271240%27%20cy%3D%27430%27%20r%3D%2768%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.32%27%20stroke-width%3D%271.4%27%3E%3Ccircle%20cx%3D%271240%27%20cy%3D%27430%27%20r%3D%27105%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.18%27%20stroke-width%3D%271.2%27%3E%3Ccircle%20cx%3D%271240%27%20cy%3D%27430%27%20r%3D%27148%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.8%27%20stroke-width%3D%272%27%3E%3Ccircle%20cx%3D%271129.1%27%20cy%3D%27332%27%20r%3D%274%27%2F%3E%3Ccircle%20cx%3D%271094.7%27%20cy%3D%27402%27%20r%3D%274%27%2F%3E%3Ccircle%20cx%3D%271098.1%27%20cy%3D%27472%27%20r%3D%274%27%2F%3E%3Ccircle%20cx%3D%271143.3%27%20cy%3D%27542%27%20r%3D%274%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.9%27%20stroke-width%3D%272.2%27%3E%3Ccircle%20cx%3D%271060%27%20cy%3D%27122%27%20r%3D%275%27%2F%3E%3Ccircle%20cx%3D%27700%27%20cy%3D%27262%27%20r%3D%275%27%2F%3E%3Ccircle%20cx%3D%27340%27%20cy%3D%27402%27%20r%3D%275%27%2F%3E%3Ccircle%20cx%3D%27950%27%20cy%3D%2752%27%20r%3D%275%27%2F%3E%3Ccircle%20cx%3D%271180%27%20cy%3D%27262%27%20r%3D%275%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.3%27%20stroke-width%3D%271.4%27%3E%3Ccircle%20cx%3D%271060%27%20cy%3D%27122%27%20r%3D%2712%27%2F%3E%3Ccircle%20cx%3D%27700%27%20cy%3D%27262%27%20r%3D%2712%27%2F%3E%3Ccircle%20cx%3D%27340%27%20cy%3D%27402%27%20r%3D%2712%27%2F%3E%3Ccircle%20cx%3D%27950%27%20cy%3D%2752%27%20r%3D%2712%27%2F%3E%3Ccircle%20cx%3D%271180%27%20cy%3D%27262%27%20r%3D%2712%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.55%27%20stroke-width%3D%272%27%3E%3Ccircle%20cx%3D%27480%27%20cy%3D%2752%27%20r%3D%273.5%27%2F%3E%3Ccircle%20cx%3D%271250%27%20cy%3D%27192%27%20r%3D%273.5%27%2F%3E%3Ccircle%20cx%3D%27250%27%20cy%3D%27332%27%20r%3D%273.5%27%2F%3E%3Ccircle%20cx%3D%27890%27%20cy%3D%27472%27%20r%3D%273.5%27%2F%3E%3Ccircle%20cx%3D%27620%27%20cy%3D%27542%27%20r%3D%273.5%27%2F%3E%3Ccircle%20cx%3D%27100%27%20cy%3D%27542%27%20r%3D%273.5%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.5%27%20stroke-width%3D%271.8%27%3E%3Cpath%20d%3D%27M1264%20454%201314%20504%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.26%27%20stroke-width%3D%271.4%27%3E%3Cpath%20d%3D%27M1240%2062V276%27%20stroke-dasharray%3D%273%2014%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201440%20560%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cg%20stroke-opacity%3D%270.09%27%20stroke-width%3D%271.1%27%3E%3Cpath%20d%3D%27M240%200v560M480%200v560M720%200v560M960%200v560M1200%200v560%27%20stroke-dasharray%3D%272%2022%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.3%27%20stroke-width%3D%271.4%27%3E%3Cpath%20d%3D%27M0%2052H1440%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.42%27%20stroke-width%3D%271.5%27%3E%3Cpath%20d%3D%27M0%20122H1034Q1060%20122%201078.4%20140.4L1111.6%20173.6Q1130%20192%201156%20192H1440%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.5%27%20stroke-width%3D%271.6%27%3E%3Cpath%20d%3D%27M0%20192H854Q880%20192%20898.4%20210.4L931.6%20243.6Q950%20262%20976%20262H1440%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.85%27%20stroke-width%3D%272.4%27%3E%3Cpath%20d%3D%27M0%20262H674Q700%20262%20718.4%20280.4L751.6%20313.6Q770%20332%20796%20332H1129.1%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.5%27%20stroke-width%3D%271.6%27%3E%3Cpath%20d%3D%27M0%20332H494Q520%20332%20538.4%20350.4L571.6%20383.6Q590%20402%20616%20402H1094.7%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.42%27%20stroke-width%3D%271.5%27%3E%3Cpath%20d%3D%27M0%20402H314Q340%20402%20358.4%20420.4L391.6%20453.6Q410%20472%20436%20472H1098.1%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.32%27%20stroke-width%3D%271.4%27%3E%3Cpath%20d%3D%27M0%20472H134Q160%20472%20178.4%20490.4L211.6%20523.6Q230%20542%20256%20542H1143.3%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.9%27%20stroke-width%3D%272.4%27%3E%3Ccircle%20cx%3D%271240%27%20cy%3D%27430%27%20r%3D%2734%27%2F%3E%3Ccircle%20cx%3D%271240%27%20cy%3D%27430%27%20r%3D%275.5%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.55%27%20stroke-width%3D%271.8%27%3E%3Ccircle%20cx%3D%271240%27%20cy%3D%27430%27%20r%3D%2768%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.32%27%20stroke-width%3D%271.4%27%3E%3Ccircle%20cx%3D%271240%27%20cy%3D%27430%27%20r%3D%27105%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.18%27%20stroke-width%3D%271.2%27%3E%3Ccircle%20cx%3D%271240%27%20cy%3D%27430%27%20r%3D%27148%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.8%27%20stroke-width%3D%272%27%3E%3Ccircle%20cx%3D%271129.1%27%20cy%3D%27332%27%20r%3D%274%27%2F%3E%3Ccircle%20cx%3D%271094.7%27%20cy%3D%27402%27%20r%3D%274%27%2F%3E%3Ccircle%20cx%3D%271098.1%27%20cy%3D%27472%27%20r%3D%274%27%2F%3E%3Ccircle%20cx%3D%271143.3%27%20cy%3D%27542%27%20r%3D%274%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.9%27%20stroke-width%3D%272.2%27%3E%3Ccircle%20cx%3D%271060%27%20cy%3D%27122%27%20r%3D%275%27%2F%3E%3Ccircle%20cx%3D%27700%27%20cy%3D%27262%27%20r%3D%275%27%2F%3E%3Ccircle%20cx%3D%27340%27%20cy%3D%27402%27%20r%3D%275%27%2F%3E%3Ccircle%20cx%3D%27950%27%20cy%3D%2752%27%20r%3D%275%27%2F%3E%3Ccircle%20cx%3D%271180%27%20cy%3D%27262%27%20r%3D%275%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.3%27%20stroke-width%3D%271.4%27%3E%3Ccircle%20cx%3D%271060%27%20cy%3D%27122%27%20r%3D%2712%27%2F%3E%3Ccircle%20cx%3D%27700%27%20cy%3D%27262%27%20r%3D%2712%27%2F%3E%3Ccircle%20cx%3D%27340%27%20cy%3D%27402%27%20r%3D%2712%27%2F%3E%3Ccircle%20cx%3D%27950%27%20cy%3D%2752%27%20r%3D%2712%27%2F%3E%3Ccircle%20cx%3D%271180%27%20cy%3D%27262%27%20r%3D%2712%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.55%27%20stroke-width%3D%272%27%3E%3Ccircle%20cx%3D%27480%27%20cy%3D%2752%27%20r%3D%273.5%27%2F%3E%3Ccircle%20cx%3D%271250%27%20cy%3D%27192%27%20r%3D%273.5%27%2F%3E%3Ccircle%20cx%3D%27250%27%20cy%3D%27332%27%20r%3D%273.5%27%2F%3E%3Ccircle%20cx%3D%27890%27%20cy%3D%27472%27%20r%3D%273.5%27%2F%3E%3Ccircle%20cx%3D%27620%27%20cy%3D%27542%27%20r%3D%273.5%27%2F%3E%3Ccircle%20cx%3D%27100%27%20cy%3D%27542%27%20r%3D%273.5%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.5%27%20stroke-width%3D%271.8%27%3E%3Cpath%20d%3D%27M1264%20454%201314%20504%27%2F%3E%3C%2Fg%3E%3Cg%20stroke-opacity%3D%270.26%27%20stroke-width%3D%271.4%27%3E%3Cpath%20d%3D%27M1240%2062V276%27%20stroke-dasharray%3D%273%2014%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}
@media (max-width:767px){.kh-fondo-pie::after{-webkit-mask-position:92% center;mask-position:92% center}}
/* kh-fondo-pie v4 2026-08-27: plano de rutas - 7 rutas a 45 grados hacia el hub de la mesa (antes: corrientes) */
/* === KH-FONDO:FIN === */


/* ============================================================
   BLOQUE HOME - PILOTO REDISENO 2026-08-24
   Tokens de docs/design-system.md (tema oscuro). Selectores
   limitados a la home (body.home, .elementor-7, IDs de post 7).
   Al aprobarse el piloto, generalizar .elementor-kit-6es para el sitio.
   ============================================================ */
body.home{background-color:#121430}

/* Hero: rejilla + aurora corporativa (solo transform/opacity) */
.elementor-element-063792e{position:relative;overflow:hidden;background-image:linear-gradient(rgba(122,149,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(122,149,255,.055) 1px,transparent 1px);background-size:56px 56px}
.elementor-element-063792e::before,.elementor-element-063792e::after{content:"";position:absolute;width:56vw;height:56vw;min-width:520px;min-height:520px;border-radius:50%;pointer-events:none;filter:blur(90px)}
.elementor-element-063792e::before{background:radial-gradient(circle,rgba(0,50,246,.55) 0%,transparent 60%);top:-28vw;right:-12vw;opacity:.55}
.elementor-element-063792e::after{background:radial-gradient(circle,rgba(10,236,197,.5) 0%,transparent 62%);bottom:-30vw;left:-14vw;opacity:.3}
.elementor-element-063792e>.e-con-inner{position:relative;z-index:1}
@media (prefers-reduced-motion:no-preference){
.elementor-element-063792e::before{animation:kh-aurora-a 26s ease-in-out infinite alternate}
.elementor-element-063792e::after{animation:kh-aurora-b 32s ease-in-out infinite alternate}
}
@keyframes kh-aurora-a{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(-6vw,4vw,0) scale(1.15)}}
@keyframes kh-aurora-b{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(5vw,-3vw,0) scale(1.12)}}

/* Arte del hero (diagrama de la mesa de servicio) */
.kh-hero-art{position:absolute;right:max(20px,4vw);top:50%;transform:translateY(-50%);width:min(410px,29vw);pointer-events:none;z-index:1;display:none}
@media (min-width:1200px){
.kh-hero-art{display:block}
.elementor-7 .elementor-element.elementor-widget.elementor-widget-heading.elementor-element-0dcd31e,.elementor-7 .elementor-element.elementor-widget.elementor-widget-heading.elementor-element-93c2bd0{max-width:62%}
}

/* Tipografia normalizada */
.elementor-element-0dcd31e .elementor-heading-title{font-size:clamp(34px,4.4vw,48px);line-height:1.15}
.elementor-element-93c2bd0 .elementor-heading-title{font-size:18.5px;line-height:1.6;max-width:56ch}
.elementor-element-e75c7b4 .elementor-heading-title,.elementor-element-895deba .elementor-heading-title,.elementor-element-a7b93ba .elementor-heading-title,.elementor-element-68767bc .elementor-heading-title,.elementor-element-ad389a4 .elementor-heading-title,.elementor-element-1718a51 .elementor-heading-title{max-width:66ch;margin-inline:auto;font-size:17px;line-height:1.65;text-align:center}
.elementor-element-83c4938 .elementor-heading-title,.elementor-element-c590831 .elementor-heading-title{max-width:72ch;margin-inline:auto;text-align:center}

/* Rotulos como chip corporativo */
.kh-rotulo .elementor-heading-title{font-size:14px;letter-spacing:.09em;text-transform:uppercase;font-weight:600}

/* Tarjetas: hover con halo + elevacion + fondo (design system s5) */
.kh-card{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background-color .16s ease}
.kh-card:hover{border-color:#6C6F9E!important;background-color:#2A2C55!important;box-shadow:0 8px 20px rgba(0,0,0,.38),0 0 0 3px rgba(198,199,221,.16)}
@media (prefers-reduced-motion:no-preference){.kh-card:hover{transform:translateY(-3px)}}
.kh-alerta{border-left:4px solid #0AECC5!important}
/* Variante roja del filete de alerta (landing, §26). Va por token,
   no por hex, y escopada para ganar al !important de arriba si conviven. */
.elementor-kit-6 .kh-alerta-r{border-left:4px solid var(--e-global-color-khalerta)!important}

/* Iconos de linea */
.kh-ico{display:inline-flex;width:48px;height:48px;border-radius:12px;background:#0C3A3C;align-items:center;justify-content:center}
.kh-ico svg{transition:transform .16s ease}
@media (prefers-reduced-motion:no-preference){.kh-card:hover .kh-ico svg{transform:translateY(-2px) scale(1.1)}}

/* Numerales decorativos */
.kh-num{font-family:Rajdhani,sans-serif;font-size:52px;font-weight:700;line-height:1;color:#383B6B}

/* Fotos estilo /nosotros/ */
.kh-foto img{display:block;width:100%;object-fit:cover;border-radius:12px;border:1px solid #2A2C55}
@media (min-width:1025px){
.kh-foto,.kh-foto .elementor-widget-container,.kh-foto img{height:100%}
.elementor-7 .elementor-element.elementor-element-5166b88{--e-con-grid-template-columns:minmax(0,5fr) minmax(0,7fr);--e-con-grid-template-rows:repeat(4,auto)}
.elementor-element-8931ad4{grid-row:1/span 4}
.elementor-7 .elementor-element.elementor-element-80eaea4{--e-con-grid-template-columns:minmax(0,7fr) minmax(0,5fr);--e-con-grid-template-rows:repeat(3,auto)}
.elementor-element-ac57e37{grid-column:2;grid-row:1/span 3}
.elementor-element-2070a29{grid-column:span 2}
.elementor-element-d53bc8d{grid-column:span 2}
}
@media (min-width:768px) and (max-width:1024px){
.elementor-element-2070a29{grid-column:span 2}
.kh-foto img{max-height:360px}
}
@media (max-width:767px){.kh-foto img{max-height:300px}}

/* FAQ: especificacion unificada */
.elementor-element-9d05ee9 .elementor-accordion-item{border-radius:12px;overflow:hidden}
.elementor-element-9d05ee9 .elementor-accordion-item+.elementor-accordion-item{margin-top:12px}
.elementor-element-9d05ee9 .elementor-tab-title{padding:18px 22px}
.elementor-element-9d05ee9 .elementor-tab-content{padding:4px 22px 20px;border-top-width:0!important}

/* Banda de marca: brillo en bucle */
.kh-banda{position:relative;overflow:hidden}
.kh-banda::before{content:"";position:absolute;top:-50%;left:-60%;width:60%;height:200%;background:linear-gradient(75deg,transparent 0%,rgba(255,255,255,.10) 50%,transparent 100%);filter:blur(6px);pointer-events:none}
@media (prefers-reduced-motion:no-preference){.kh-banda::before{animation:khsheen 7s ease-in-out infinite}}
@keyframes khsheen{0%,55%{transform:translateX(0)}100%{transform:translateX(320%)}}

/* Botones y foco: estandar unico del sitio, bloque KH-FIDELIDAD al inicio. */


/* ============================================================
   BLOQUE CONTACTO - REDISENO 2026-08-24
   Mismo estandar del piloto de la home; .elementor-kit-6es limitados a
   la pagina de contacto (body.page-id-450 / .elementor-450).
   Reusa los keyframes kh-aurora-a/b del bloque HOME.
   ============================================================ */
body.page-id-450{background-color:#121430}

/* Hero: rejilla + aurora (como la home) */
.elementor-450 .elementor-element.elementor-element-618e94b1{position:relative;overflow:hidden;background-image:linear-gradient(rgba(122,149,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(122,149,255,.055) 1px,transparent 1px);background-size:56px 56px}
.elementor-450 .elementor-element-618e94b1::before,.elementor-450 .elementor-element-618e94b1::after{content:"";position:absolute;width:48vw;height:48vw;min-width:420px;min-height:420px;border-radius:50%;pointer-events:none;filter:blur(90px)}
.elementor-450 .elementor-element-618e94b1::before{background:radial-gradient(circle,rgba(0,50,246,.5) 0%,transparent 60%);top:-26vw;right:-10vw;opacity:.5}
.elementor-450 .elementor-element-618e94b1::after{background:radial-gradient(circle,rgba(10,236,197,.45) 0%,transparent 62%);bottom:-28vw;left:-12vw;opacity:.28}
.elementor-450 .elementor-element-618e94b1>.e-con-inner{position:relative;z-index:1}
@media (prefers-reduced-motion:no-preference){
.elementor-450 .elementor-element-618e94b1::before{animation:kh-aurora-a 26s ease-in-out infinite alternate}
.elementor-450 .elementor-element-618e94b1::after{animation:kh-aurora-b 32s ease-in-out infinite alternate}
}

/* Tipografia del hero */
.elementor-element-18baf609 .elementor-heading-title{font-size:clamp(34px,4.4vw,48px);line-height:1.15}
/* kh-hero-contacto v2 2026-08-27: hero a la izquierda + arte kh-hero-artL.
   La entradilla ya no centra su caja (se retiro el margen automatico). */
.elementor-element-5e97797c .elementor-heading-title{font-size:18.5px;line-height:1.6;max-width:56ch}
/* El hero de contacto es mas bajo que el de las lineas y su primer tramo
   queda bajo la cabecera fija: el arte se reduce y baja (patron kh-news-fix).
   Medido a 1440: visible 121-391; con 300 px de ancho el arte ocupa 133-378. */
.kh-hero-contacto .kh-hero-artL{width:min(300px,21vw);top:61%}

/* Formulario: foco visible, placeholder atenuado, etiquetas */
.elementor-450 .elementor-field-group .elementor-field:focus{outline:2px solid #7A95FF;outline-offset:2px;border-color:#7A95FF}
.elementor-450 .elementor-field::placeholder{color:#9B9DBF}
.elementor-450 .elementor-field-group label{font-size:13.5px;font-weight:500}

/* Enlaces de la columna de datos */
.elementor-450 .elementor-icon-box-description a{color:#7A95FF;transition:color .15s ease}
.elementor-450 .elementor-icon-box-description a:hover{color:#B2C2FF}

/* Botones y foco: estandar unico del sitio, bloque KH-FIDELIDAD al inicio. */


/* ============================================================
   BLOQUE NOSOTROS - REDISENO 2026-08-24
   Mismo estandar del piloto; .elementor-kit-6es limitados a la pagina
   (body.page-id-536 / .elementor-536). Reusa keyframes kh-aurora.
   ============================================================ */
body.page-id-536{background-color:#121430}

/* Hero: rejilla + aurora */
.elementor-536 .elementor-element.elementor-element-ca938a0e{position:relative;overflow:hidden;background-image:linear-gradient(rgba(122,149,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(122,149,255,.055) 1px,transparent 1px);background-size:56px 56px}
.elementor-536 .elementor-element-ca938a0e::before,.elementor-536 .elementor-element-ca938a0e::after{content:"";position:absolute;width:52vw;height:52vw;min-width:480px;min-height:480px;border-radius:50%;pointer-events:none;filter:blur(90px)}
.elementor-536 .elementor-element-ca938a0e::before{background:radial-gradient(circle,rgba(0,50,246,.5) 0%,transparent 60%);top:-26vw;right:-10vw;opacity:.5}
.elementor-536 .elementor-element-ca938a0e::after{background:radial-gradient(circle,rgba(10,236,197,.45) 0%,transparent 62%);bottom:-28vw;left:-12vw;opacity:.28}
.elementor-536 .elementor-element-ca938a0e>.elementor-element:not(.kh-hero-art2){position:relative;z-index:1}
@media (prefers-reduced-motion:no-preference){
.elementor-536 .elementor-element-ca938a0e::before{animation:kh-aurora-a 26s ease-in-out infinite alternate}
.elementor-536 .elementor-element-ca938a0e::after{animation:kh-aurora-b 32s ease-in-out infinite alternate}
}

/* Arte del hero (linea de proceso) */
.kh-hero-art2{position:absolute;right:calc(max(0px,(100% - var(--container-max-width,1280px))/2) + max(20px,4vw));top:50%;transform:translateY(-50%);width:min(420px,29vw);pointer-events:none;z-index:1;display:none}
@media (min-width:1200px){
.kh-hero-art2{display:block}
.elementor-536 .elementor-element.elementor-widget.elementor-widget-heading.elementor-element-b0d2960c,.elementor-536 .elementor-element.elementor-widget.elementor-widget-text-editor.elementor-element-bacfed9f{max-width:60%}
.elementor-536 .elementor-element-bacfed9f p{text-align:left!important}
}

/* Tipografia del hero */
.elementor-element-b0d2960c .elementor-heading-title{font-size:clamp(34px,4.4vw,48px);line-height:1.15}
.elementor-536 .elementor-element-bacfed9f{font-size:18.5px;line-height:1.6;max-width:56ch}

/* Botones y foco: estandar unico del sitio, bloque KH-FIDELIDAD al inicio. */


/* ============================================================
   BLOQUE AJUSTES 2026-08-24 (orden del operador)
   1) icon-box como tarjeta del estandar (clase kh-card en el widget)
   2) pozos de cifras de /nosotros/ a igual altura
   3) marcas de agua de seccion: numeral Rajdhani en khstrong,
      coherentes con kh-num y el "Hablemos" de contacto. El texto
      alternativo vacio los oculta a los lectores de pantalla; un
      navegador sin esa sintaxis simplemente no pinta la marca.
   4) tarjeta enlazada por completo (2026-08-25, orden del operador)
   ============================================================ */

/* 1) Tarjeta icon-box del estandar (reusa el hover global kh-card) */
.elementor-widget-icon-box.kh-card{background-color:var(--e-global-color-khsurface);border:1px solid var(--e-global-color-khelev);border-radius:12px;padding:22px}
.elementor-536 .elementor-element-2969669e>.e-con{align-self:stretch}
.elementor-536 .elementor-element-2969669e .elementor-widget-icon-box{height:100%}

/* 2) Pozos de cifras a igual altura (los envoltorios ya hacen stretch) */
.elementor-536 .elementor-element-c6680c96>.e-con{align-self:stretch}
.elementor-536 .elementor-element-c6680c96 .elementor-widget-counter{height:100%}
.elementor-536 .elementor-element-c6680c96 .elementor-widget-counter>.elementor-widget-container{height:100%;display:flex;flex-direction:column;justify-content:center}

/* 3) Marcas de agua de seccion */
.elementor-element-964e19e,.elementor-element-213dcec,.elementor-element-33ebd83d,.elementor-element-d8c34d3a{position:relative;overflow:hidden}
.elementor-element-964e19e>.e-con-inner,.elementor-element-213dcec>.e-con-inner,.elementor-element-33ebd83d>.e-con-inner,.elementor-element-d8c34d3a>.e-con-inner,
.elementor-element-964e19e>.elementor-element,.elementor-element-213dcec>.elementor-element,.elementor-element-33ebd83d>.elementor-element,.elementor-element-d8c34d3a>.elementor-element{position:relative;z-index:1}
.elementor-element-964e19e::after,.elementor-element-213dcec::after,.elementor-element-33ebd83d::after,.elementor-element-d8c34d3a::after{position:absolute;top:16px;right:2vw;z-index:0;pointer-events:none;font-family:Rajdhani,sans-serif;font-weight:700;line-height:.75;font-size:clamp(130px,15vw,220px);letter-spacing:-.02em;color:#383B6B;opacity:.5}
.elementor-element-964e19e::after{content:"07" / ""}
.elementor-element-213dcec::after{content:"?" / ""}
.elementor-element-33ebd83d::after{content:"07" / ""}
.elementor-element-d8c34d3a::after{content:"05" / ""}
@media (max-width:767px){.elementor-element-964e19e::after,.elementor-element-213dcec::after,.elementor-element-33ebd83d::after,.elementor-element-d8c34d3a::after{display:none}}

/* 4) Tarjeta enlazada por completo (patron "stretched link").
   El icon-box ya trae DOS anclas al mismo destino: la del icono
   (tabindex="-1", decorativa) y la del titulo (la accesible). Se estira
   esta ultima sobre toda la tarjeta con un ::after transparente: toda la
   superficie queda clicleable SIN anadir DOM, scripts ni un segundo enlace
   al orden de tabulacion, y sin tocar un solo estilo existente.
   Se aplica sola a cualquier icon-box con clase kh-card que tenga enlace.
   Efecto lateral conocido del patron: el texto de la tarjeta deja de poder
   seleccionarse con el raton (el ::after lo cubre). */
.elementor-widget-icon-box.kh-card{position:relative}
.elementor-widget-icon-box.kh-card .elementor-icon-box-title a::after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:2}
/* El foco por teclado debe dibujarse alrededor de la tarjeta, que es lo que
   ahora se activa, no alrededor de las palabras del titulo. Si el navegador
   no soporta :has(), se conserva el anillo del titulo (regla global). */
@supports .elementor-kit-6(:has(*)){
  .elementor-widget-icon-box.kh-card:has(.elementor-icon-box-title a:focus-visible){outline:2px solid var(--e-global-color-khsectx);outline-offset:3px;border-radius:12px}
  .elementor-widget-icon-box.kh-card .elementor-icon-box-title a:focus-visible{outline:none!important}
}
/* Marcador de version de la regla: kh-card-link */


/* ============================================================
   BLOQUE SERVICIOS - REDISENO 2026-08-25
   Mismo estandar del piloto; .elementor-kit-6es limitados a la pagina
   (body.page-id-555 / .elementor-555). Reusa los keyframes
   kh-aurora-a/b del bloque HOME. Marcador: kh-servicios
   ============================================================ */
body.page-id-555{background-color:#121430}

/* Hero: rejilla + aurora corporativa */
.elementor-555 .elementor-element.elementor-element-2079be9{position:relative;overflow:hidden;background-image:linear-gradient(rgba(122,149,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(122,149,255,.055) 1px,transparent 1px);background-size:56px 56px}
.elementor-555 .elementor-element-2079be9::before,.elementor-555 .elementor-element-2079be9::after{content:"";position:absolute;width:52vw;height:52vw;min-width:480px;min-height:480px;border-radius:50%;pointer-events:none;filter:blur(90px)}
.elementor-555 .elementor-element-2079be9::before{background:radial-gradient(circle,rgba(0,50,246,.5) 0%,transparent 60%);top:-26vw;right:-10vw;opacity:.5}
.elementor-555 .elementor-element-2079be9::after{background:radial-gradient(circle,rgba(10,236,197,.45) 0%,transparent 62%);bottom:-28vw;left:-12vw;opacity:.28}
.elementor-555 .elementor-element-2079be9>.elementor-element:not(.kh-hero-art3){position:relative;z-index:1}
@media (prefers-reduced-motion:no-preference){
.elementor-555 .elementor-element-2079be9::before{animation:kh-aurora-a 26s ease-in-out infinite alternate}
.elementor-555 .elementor-element-2079be9::after{animation:kh-aurora-b 32s ease-in-out infinite alternate}
}

/* Arte del hero: pila isometrica de las siete lineas del portafolio.
   Un realce sube escalon por escalon (steps(7)) recorriendo las capas.
   Distinto del diagrama de la mesa (home) y de la onda de proceso (nosotros). */
.kh-hero-art3{position:absolute;right:calc(max(0px,(100% - var(--container-max-width,1280px))/2) + max(20px,4vw));top:50%;transform:translateY(-50%);width:min(430px,30vw);pointer-events:none;z-index:1;display:none}
@media (min-width:1200px){
.kh-hero-art3{display:block}
.elementor-555 .elementor-element.elementor-widget.elementor-widget-heading.elementor-element-5e3266a,.elementor-555 .elementor-element.elementor-widget.elementor-widget-heading.elementor-element-5aa3ebe{max-width:60%}
}
.kh-hero-art3 svg{display:block;width:100%;height:auto;overflow:visible}
.kh-svc-capas path{fill:#1C1E42;stroke:#383B6B;stroke-width:1.4}
.kh-svc-capas path:last-child{stroke:#2A2C55}
.kh-svc-halo{stroke:#0AECC5;stroke-width:7;opacity:.16}
.kh-svc-activa{stroke:#0AECC5;stroke-width:2}
.kh-svc-num text{fill:#9B9DBF;font-family:"IBM Plex Mono","Courier New",monospace;font-size:11px;letter-spacing:.06em}
@media (prefers-reduced-motion:no-preference){
.kh-svc-viaje{animation:khsvcsube 7s steps(7,end) infinite}
.kh-hero-art3 svg{animation:khlentrada .9s cubic-bezier(.16,.8,.3,1) both,khsvcflota 9s ease-in-out .9s infinite alternate}
}
@keyframes khsvcsube{from{transform:translateY(0)}to{transform:translateY(-294px)}}
@keyframes khsvcflota{from{transform:translateY(0)}to{transform:translateY(-6px)}}

/* Tipografia del hero */
.elementor-element-5e3266a .elementor-heading-title{font-size:clamp(34px,4.4vw,48px);line-height:1.15}
.elementor-element-5aa3ebe .elementor-heading-title{font-size:18.5px;line-height:1.6;max-width:56ch}

/* Subtitulos de seccion */
.elementor-element-7186f60 .elementor-heading-title,.elementor-element-9323a5f .elementor-heading-title,.elementor-element-2d5ec71 .elementor-heading-title{max-width:66ch;font-size:17px;line-height:1.65}
.elementor-element-7186f60 .elementor-heading-title,.elementor-element-9323a5f .elementor-heading-title{margin-inline:auto}

/* Numerales decorativos de los compromisos */
.elementor-555 .kh-num .elementor-heading-title{font-family:Rajdhani,sans-serif;font-size:52px;font-weight:700;line-height:1;color:#383B6B}

/* FAQ: especificacion unificada del sitio */
.elementor-element-e33578d .elementor-accordion-item{border-radius:12px;overflow:hidden}
.elementor-element-e33578d .elementor-accordion-item+.elementor-accordion-item{margin-top:12px}
.elementor-element-e33578d .elementor-tab-content{border-top-width:0!important}

/* Boton al pie de cada tarjeta de linea: alinea los CTA aunque los
   textos tengan distinto largo (las tarjetas ya estiran a igual altura). */
.elementor-555 .elementor-element-384c57f .elementor-widget-button{margin-top:auto}

/* Rejilla de licenciamiento: separacion uniforme */
.elementor-555 .elementor-element-ec0dcd0{--gap:20px 24px;--row-gap:20px;--column-gap:24px}

/* Marcas de agua de seccion (mismo patron del BLOQUE AJUSTES) */
.elementor-element-06d67b7,.elementor-element-0514391,.elementor-element-85582d5{position:relative;overflow:hidden}
.elementor-element-06d67b7>.e-con-inner,.elementor-element-0514391>.e-con-inner,.elementor-element-85582d5>.e-con-inner,
.elementor-element-06d67b7>.elementor-element,.elementor-element-0514391>.elementor-element,.elementor-element-85582d5>.elementor-element{position:relative;z-index:1}
.elementor-element-06d67b7::after,.elementor-element-0514391::after,.elementor-element-85582d5::after{position:absolute;top:16px;right:2vw;z-index:0;pointer-events:none;font-family:Rajdhani,sans-serif;font-weight:700;line-height:.75;font-size:clamp(130px,15vw,220px);letter-spacing:-.02em;color:#383B6B;opacity:.5}
.elementor-element-06d67b7::after{content:"07" / ""}
.elementor-element-0514391::after{content:"05" / ""}
.elementor-element-85582d5::after{content:"?" / ""}
@media (max-width:767px){.elementor-element-06d67b7::after,.elementor-element-0514391::after,.elementor-element-85582d5::after{display:none}}


/* ============================================================
   BLOQUE LINEAS - REDISENO 2026-08-25            marcador: kh-lineas
   Las SIETE paginas de linea (662, 676, 692, 708, 730, 791, 808).
   A diferencia de los bloques anteriores este va por CLASES
   (kh-hero-l, kh-cierre, kh-faq-sec, kh-hero-artL), no por IDs:
   las 7 paginas no comparten plantilla y los IDs son distintos en
   cada una. Reusa los keyframes kh-aurora-a/b y khsheen del bloque HOME.
   ============================================================ */
body.page-id-662,body.page-id-676,body.page-id-692,
body.page-id-708,body.page-id-730,body.page-id-791,
body.page-id-808{background-color:#121430}

/* --- Hero: rejilla + aurora corporativa --- */
.kh-hero-l{position:relative;overflow:hidden;overflow:clip;background-image:linear-gradient(rgba(122,149,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(122,149,255,.055) 1px,transparent 1px);background-size:56px 56px}
.kh-hero-l::before,.kh-hero-l::after{content:"";position:absolute;width:52vw;height:52vw;min-width:480px;min-height:480px;border-radius:50%;pointer-events:none;filter:blur(90px)}
.kh-hero-l::before{background:radial-gradient(circle,rgba(0,50,246,.5) 0%,transparent 60%);top:-26vw;right:-10vw;opacity:.5}
.kh-hero-l::after{background:radial-gradient(circle,rgba(10,236,197,.45) 0%,transparent 62%);bottom:-28vw;left:-12vw;opacity:.28}
.kh-hero-l>.elementor-element:not(.kh-hero-artL),.kh-hero-l>.e-con-inner{position:relative;z-index:1}
@media (prefers-reduced-motion:no-preference){
.kh-hero-l::before{animation:kh-aurora-a 26s ease-in-out infinite alternate}
.kh-hero-l::after{animation:kh-aurora-b 32s ease-in-out infinite alternate}
}

/* Tipografia del hero. Se apunta al h1/p reales, no al widget: asi no
   compite con la base de Elementor sobre .elementor-widget (0,4,0). */
.kh-hero-l h1.elementor-heading-title{font-size:clamp(34px,4.4vw,48px);line-height:1.15}
.kh-hero-l p.elementor-heading-title{font-size:18.5px;line-height:1.6;max-width:56ch}

/* --- Arte del hero: uno por linea, relacionado con su contenido --- */
.kh-hero-artL{position:absolute;right:max(20px,4vw);top:50%;transform:translateY(-50%);width:min(420px,29vw);pointer-events:none;z-index:1;display:none}
@media (min-width:1200px){
.kh-hero-artL{display:block}
.kh-hero-l h1.elementor-heading-title{max-width:60%}
.kh-hero-l p.elementor-heading-title{max-width:min(56ch,60%)}
}
.kh-hero-artL svg{display:block;width:100%;height:auto;overflow:visible}
.kh-hero-artL .kh-tz{stroke:#383B6B;stroke-width:1.4;fill:none}
.kh-hero-artL .kh-tz2{stroke:#2A2C55;stroke-width:1.3;fill:none}
.kh-hero-artL .kh-ac{stroke:#0AECC5;stroke-width:1.8;fill:none}
.kh-hero-artL .kh-rel{fill:#1C1E42}
.kh-hero-artL .kh-pt{fill:#0AECC5}
.kh-hero-artL text{fill:#9B9DBF;font-family:"IBM Plex Mono","Courier New",monospace;font-size:11px;letter-spacing:.06em}
@media (prefers-reduced-motion:no-preference){
.kh-hero-artL .kh-flujo{stroke-dasharray:7 9;animation:khlflujo 1.5s linear infinite}
.kh-hero-artL .kh-late{animation:khllate 3.4s ease-in-out infinite}
.kh-hero-artL .kh-late2{animation:khllate 3.4s ease-in-out infinite;animation-delay:-1.1s}
.kh-hero-artL .kh-late3{animation:khllate 3.4s ease-in-out infinite;animation-delay:-2.2s}
.kh-hero-artL .kh-gira{transform-box:fill-box;transform-origin:center;animation:khlgira 14s linear infinite}
.kh-hero-artL svg{animation:khlentrada .9s cubic-bezier(.16,.8,.3,1) both,khlflota 9s ease-in-out .9s infinite alternate}
}
@keyframes khlflujo{to{stroke-dashoffset:-32}}
@keyframes khllate{0%,100%{opacity:.35;transform:scale(1)}50%{opacity:1;transform:scale(1.14)}}
@keyframes khlgira{to{transform:rotate(360deg)}}
@keyframes khlflota{from{transform:translateY(0)}to{transform:translateY(-6px)}}
.kh-hero-artL .kh-late,.kh-hero-artL .kh-late2,.kh-hero-artL .kh-late3{transform-box:fill-box;transform-origin:center}

/* --- Cierre (retirado el 2026-08-25, orden del operador) ---
   El CTA de las siete lineas era una seccion .kh-cierre pintada sobre su propio
   .e-con-inner: la caja azul ocupaba TODA la seccion y quedaba pegada a las
   secciones vecinas, y el H2 iba suelto en 48 px. Ahora es la misma estructura
   de /nosotros -- seccion con aire propio + caja .kh-banda de 1280 --, asi que
   estas reglas sobran: el brillo en bucle lo pone .kh-banda (bloque HOME). */

/* --- FAQ: especificacion unificada del sitio --- */
body.page-id-662 .elementor-accordion-item,body.page-id-676 .elementor-accordion-item,
body.page-id-692 .elementor-accordion-item,body.page-id-708 .elementor-accordion-item,
body.page-id-730 .elementor-accordion-item,body.page-id-791 .elementor-accordion-item,
body.page-id-808 .elementor-accordion-item{border-radius:12px;overflow:hidden}
body.page-id-662 .elementor-accordion-item+.elementor-accordion-item,body.page-id-676 .elementor-accordion-item+.elementor-accordion-item,
body.page-id-692 .elementor-accordion-item+.elementor-accordion-item,body.page-id-708 .elementor-accordion-item+.elementor-accordion-item,
body.page-id-730 .elementor-accordion-item+.elementor-accordion-item,body.page-id-791 .elementor-accordion-item+.elementor-accordion-item,
body.page-id-808 .elementor-accordion-item+.elementor-accordion-item{margin-top:12px}
body.page-id-662 .elementor-tab-content,body.page-id-676 .elementor-tab-content,
body.page-id-692 .elementor-tab-content,body.page-id-708 .elementor-tab-content,
body.page-id-730 .elementor-tab-content,body.page-id-791 .elementor-tab-content,
body.page-id-808 .elementor-tab-content{border-top-width:0!important}

/* --- Numerales decorativos --- */
body.page-id-662 .kh-num .elementor-heading-title,body.page-id-676 .kh-num .elementor-heading-title,
body.page-id-692 .kh-num .elementor-heading-title,body.page-id-708 .kh-num .elementor-heading-title,
body.page-id-730 .kh-num .elementor-heading-title,body.page-id-791 .kh-num .elementor-heading-title,
body.page-id-808 .kh-num .elementor-heading-title{font-family:Rajdhani,sans-serif;font-size:44px;font-weight:700;line-height:1;color:#383B6B}

/* --- Marca de agua de la seccion de preguntas frecuentes --- */
.kh-faq-sec{position:relative;overflow:hidden}
.kh-faq-sec>.e-con-inner,.kh-faq-sec>.elementor-element{position:relative;z-index:1}
.kh-faq-sec::after{content:"?" / "";position:absolute;top:16px;right:2vw;z-index:0;pointer-events:none;font-family:Rajdhani,sans-serif;font-weight:700;line-height:.75;font-size:clamp(130px,15vw,220px);letter-spacing:-.02em;color:#383B6B;opacity:.5}
@media (max-width:767px){.kh-faq-sec::after{display:none}}

/* ============================================================
   ENTRADA DE LOS ARTES DE HERO 2026-08-25   marcador: khlentrada
   Orden del operador: solo animacion de ENTRADA; los bucles que ya
   tenian los artes no se tocan. Home y /nosotros/ animan elementos
   internos del SVG, asi que basta con animar el <svg>; las lineas y
   /servicios/ ya animaban el <svg> y alli la entrada va encadenada
   delante, con la flotacion retrasada para no competir por transform.
   ============================================================ */
@keyframes khlentrada{from{opacity:0;transform:translateX(30px) scale(.97)}to{opacity:1;transform:translateX(0) scale(1)}}
@media (prefers-reduced-motion:no-preference){
.kh-hero-art svg,.kh-hero-art2 svg{animation:khlentrada .9s cubic-bezier(.16,.8,.3,1) both}
}
/* kh-anclaje: los 4 artes de hero comparten borde derecho (caja del kit) y altura (50%). */


/* ============================================================
   BLOQUE NOTICIAS - REDISENO 2026-08-25        marcador: kh-news
   Plantilla de ARCHIVO de Elementor (471), que pinta /news/ y
   ademas los archivos de categoria, etiqueta, autor y fecha.
   Reusa el andamiaje de las lineas: kh-hero-l, kh-hero-artL y los
   keyframes kh-aurora-a/b, khlentrada, khlflota, khllate.
   ============================================================ */
body.blog,body.archive,body.search{background-color:#121430}

/* kh-news-fix: el hero del archivo es mas bajo que el de las paginas (solo
   lleva H1), asi que el arte se reduce y baja para que la cabecera fija
   no le corte la primera tarjeta. */
.kh-hero-news .kh-hero-artL{width:min(360px,26vw);top:55%}

/* --- Rejilla: contenido + barra lateral --- */
.kh-news-wrap{align-items:flex-start}
@media (max-width:1024px){
.kh-news-main,.kh-news-side{width:100%}
.kh-news-side{margin-top:8px}
}
/* kh-sin-sticky 2026-08-25: la barra mide ~2.160 px, mas del doble del alto
   de una pantalla. Con position:sticky solo podia fijarse un tramo y despues
   se deslizaba bajo la cabecera fija, dejando el rotulo CATEGORIAS pegado al
   menu. Acompana al contenido en su columna, sin fijarse. */

/* --- Bloques de la barra: mismo lenguaje que las tarjetas --- */
/* La tarjeta la dibuja el CONTENEDOR del bloque, no el widget: asi el rotulo
   y la lista viven dentro de la misma caja. El titulo lo pone un widget de
   encabezado en h2; el <h5> que inyecta WordPress queda vacio y se oculta. */
.kh-side-bloque{background-color:var(--e-global-color-khsurface);border:1px solid var(--e-global-color-khelev);border-radius:12px}
.kh-news-side .kh-rotulo .elementor-heading-title{font-size:14px;letter-spacing:.09em;text-transform:uppercase;font-weight:600;margin:0}
/* kh-news-h5: WordPress ignora el titulo vacio y repone el del widget, y lo
   emite en <h5> (salto H1->H5). Se oculta: el rotulo correcto es el widget
   de encabezado en h2 que va justo encima, con el mismo texto. */
.kh-news-side .elementor-widget-container > h5{display:none}
.kh-news-side nav{margin:0}

/* Buscador: el widget de Elementor trae su propio marco, se anula */
.kh-side-buscar .elementor-widget-container{padding:0;border:0;background:none}
.kh-side-buscar form,.kh-side-buscar .elementor-search-form__container{display:flex;align-items:stretch}
.kh-side-buscar input[type="search"]{width:100%;background-color:var(--e-global-color-khbg);color:var(--e-global-color-text);border:1px solid var(--e-global-color-khsecbr);border-right:0;border-radius:8px 0 0 8px;padding:13px 16px;font-family:Inter,sans-serif;font-size:16px}
.kh-side-buscar input[type="search"]::placeholder{color:var(--e-global-color-khmuted)}
.kh-side-buscar input[type="search"]:focus{outline:2px solid var(--e-global-color-khsectx);outline-offset:2px;border-color:var(--e-global-color-khsectx)}
.kh-side-buscar button{background-color:var(--e-global-color-d49ac81);color:var(--e-global-color-khbtntx);border:0;border-radius:0 8px 8px 0;padding:0 18px;cursor:pointer;transition:background-color .16s ease,box-shadow .16s ease}
.kh-side-buscar button:hover{background-color:var(--e-global-color-khbtnhov);box-shadow:0 7px 20px var(--e-global-color-khbtnglow)}
.kh-side-buscar button:focus-visible{outline:2px solid var(--e-global-color-secondary);outline-offset:3px}

/* --- Categorias: lista legible, con el conteo atenuado --- */
.kh-side-cats ul{list-style:none;margin:0;padding:0}
.kh-side-cats li{margin:0}
.kh-side-cats li a{display:flex;justify-content:space-between;gap:12px;align-items:baseline;
  padding:9px 10px;border-radius:8px;color:var(--e-global-color-khbody);
  font-family:Inter,sans-serif;font-size:15px;line-height:1.4;text-decoration:none;
  transition:background-color .16s ease,color .16s ease}
.kh-side-cats li a:hover{background-color:var(--e-global-color-khelev);color:var(--e-global-color-secondary)}
.kh-side-cats li a:focus-visible{outline:2px solid var(--e-global-color-khsectx);outline-offset:2px}
/* WordPress escribe el conteo como texto suelto tras el enlace */
.kh-side-cats li{color:var(--e-global-color-khmuted);font-family:"IBM Plex Mono","Courier New",monospace;font-size:12px;
  display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  padding:0 10px;border-radius:8px}
.kh-side-cats li a{flex:1;padding:9px 0}
.kh-side-cats li:hover{background-color:var(--e-global-color-khelev)}
.kh-side-cats li:hover a{color:var(--e-global-color-secondary)}
.kh-side-cats li a:hover{background:none}
.kh-side-cats li.current-cat{background-color:var(--e-global-color-khelev)}
.kh-side-cats li.current-cat a{color:var(--e-global-color-khchiptx)}

/* --- Etiquetas: pildoras --- */
.kh-side-tags .tagcloud{display:flex;flex-wrap:wrap;gap:8px}
.kh-side-tags .tagcloud a{font-size:13px!important;font-family:Inter,sans-serif;line-height:1;
  color:var(--e-global-color-khbody);background-color:var(--e-global-color-khbg);
  border:1px solid var(--e-global-color-khstrong);border-radius:999px;padding:7px 13px;
  text-decoration:none;transition:background-color .16s ease,color .16s ease,border-color .16s ease}
.kh-side-tags .tagcloud a:hover{background-color:var(--e-global-color-khchipbg);color:var(--e-global-color-khchiptx);border-color:var(--e-global-color-d49ac81)}
.kh-side-tags .tagcloud a:focus-visible{outline:2px solid var(--e-global-color-khsectx);outline-offset:2px}
.kh-side-tags .tag-cloud-link .tag-link-count{display:none}

/* --- Tarjetas del listado: hover del estandar --- */
/* El halo del hover va sobre .elementor-post__card, que es quien lleva el
   radio 12; sobre .elementor-post salia con las esquinas en angulo recto. */
.elementor-posts .elementor-post__card{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background-color .16s ease}
.elementor-posts .elementor-post:hover .elementor-post__card{border-color:var(--e-global-color-khsecbr)!important;box-shadow:0 8px 20px rgba(0,0,0,.38),0 0 0 3px rgba(198,199,221,.16)}
@media (prefers-reduced-motion:no-preference){.elementor-posts .elementor-post:hover .elementor-post__card{transform:translateY(-3px)}}
.elementor-posts .elementor-post__title a:focus-visible,.elementor-posts .elementor-post__thumbnail__link:focus-visible{outline:2px solid var(--e-global-color-khsectx);outline-offset:3px;border-radius:4px}

/* Boton "Ver mas articulos": hereda el estandar de botones del kit */
.elementor-posts-nothing-found{color:var(--e-global-color-khbody)}

/* El CSS por widget de Elementor pesa (0,3,0): se fuerza el color del buscador. */
.kh-side-buscar .elementor-search-form__input{background-color:var(--e-global-color-khbg)!important;color:var(--e-global-color-text)!important;border:1px solid var(--e-global-color-khsecbr)!important;border-right:0!important;border-radius:8px 0 0 8px!important;padding:13px 16px!important;font-family:Inter,sans-serif!important;font-size:16px!important;min-height:0!important}
.kh-side-buscar .elementor-search-form__input::placeholder{color:var(--e-global-color-khmuted)!important;opacity:1}
.kh-side-buscar .elementor-search-form__input:focus{outline:2px solid var(--e-global-color-khsectx)!important;outline-offset:2px;border-color:var(--e-global-color-khsectx)!important}
.kh-side-buscar .elementor-search-form__submit{background-color:var(--e-global-color-d49ac81)!important;color:var(--e-global-color-khbtntx)!important;fill:var(--e-global-color-khbtntx)!important;border:0!important;border-radius:0 8px 8px 0!important;min-width:52px!important;padding:0 16px!important;cursor:pointer;transition:background-color .16s ease,box-shadow .16s ease}
.kh-side-buscar .elementor-search-form__submit svg{fill:var(--e-global-color-khbtntx)!important;width:17px;height:17px}
.kh-side-buscar .elementor-search-form__submit:hover{background-color:var(--e-global-color-khbtnhov)!important;box-shadow:0 7px 20px var(--e-global-color-khbtnglow)}
.kh-side-buscar .elementor-search-form__submit:focus-visible{outline:2px solid var(--e-global-color-secondary)!important;outline-offset:3px}

/* === kh-news-ajustes 2026-08-25 (orden del operador) === */
.kh-hero-news .kh-regla{stroke:var(--e-global-color-khelev);stroke-width:1.4;fill:none}
.kh-hero-news .kh-titular path{stroke:var(--e-global-color-d49ac81);stroke-width:3.4;stroke-linecap:round;fill:none}
.kh-hero-news .kh-sep{stroke:var(--e-global-color-khstrong);stroke-width:1.4;stroke-linecap:round;fill:none}
.kh-hero-news .kh-linea path{stroke:var(--e-global-color-khelev);stroke-width:2.2;stroke-linecap:round;fill:none}
.kh-hero-news .kh-lector path{stroke:var(--e-global-color-d49ac81);stroke-width:2.6;stroke-linecap:round;fill:none}
.kh-hero-news .kh-lector{opacity:0}
@media (prefers-reduced-motion:no-preference){.kh-hero-news .kh-lector{animation:khnewsleer 6.5s ease-in-out infinite}}
@keyframes khnewsleer{0%{transform:translateY(0);opacity:0}12%{opacity:.95}88%{opacity:.95}100%{transform:translateY(132px);opacity:0}}
/* kh-busca-ancho: Elementor fija el contenedor del buscador en 300 px, asi que
   el widget se estiraba pero la caja interior no. Se libera el ancho. */
.kh-side-buscar,.kh-side-buscar .elementor-widget-container,.kh-side-buscar .elementor-search-form{width:100%}
.kh-side-buscar .elementor-search-form__container{width:100%!important;max-width:none!important}
/* kh-esquinas 2026-08-25: ese mismo contenedor trae de Elementor un fondo gris
   claro (#F1F2F3) y radio 3, y asomaba por las esquinas redondeadas del campo y
   del boton. Se deja transparente y con el mismo radio 8. Overflow visible para
   que el contorno de foco del teclado no quede recortado. */
.kh-side-buscar .elementor-search-form__container{background-color:transparent!important;border:0!important;border-radius:8px!important;overflow:visible!important;box-shadow:none!important}
/* El listado no es un widget de boton, asi que no le llega el estandar del
   kit: se le da aqui la variante secundaria (contorno azul). */
.kh-news-main .elementor-button-wrapper .elementor-button{background-color:transparent!important;color:var(--e-global-color-khsectx)!important;border:1px solid var(--e-global-color-khsecbr)!important;border-radius:8px!important;font-weight:600!important;padding:12px 22px!important;transition:background-color .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.kh-news-main .elementor-button-wrapper .elementor-button:hover,.kh-news-main .elementor-button-wrapper .elementor-button:focus{background-color:var(--e-global-color-khsecbg)!important;color:var(--e-global-color-khsectxh)!important;border-color:var(--e-global-color-khsectx)!important;box-shadow:0 7px 20px var(--e-global-color-khsecglow),0 0 0 3px var(--e-global-color-khsecglow)}
.kh-news-main .elementor-button-wrapper .elementor-button:focus-visible{outline:2px solid var(--e-global-color-secondary)!important;outline-offset:3px}
@media (prefers-reduced-motion:no-preference){.kh-news-main .elementor-button-wrapper .elementor-button:hover{transform:translateY(-2px)}}


/* ============================================================
   BLOQUE ENTRADA - REDISENO 2026-08-25        marcador: kh-post
   Plantilla de ENTRADA INDIVIDUAL de Elementor (468).
   Reusa tal cual la barra lateral de /news/ (kh-news-side y sus
   bloques) y el andamiaje del hero de las lineas (kh-hero-l).
   El cuerpo del articulo es HTML del editor: se le da el sistema
   de diseno aqui, porque no hay controles de widget para el.
   ============================================================ */
body.single-post{background-color:var(--e-global-color-khbg)}

/* Hero: sin arte a la derecha, el titular no cede el 40% que ceden las lineas */
.kh-hero-post h1.elementor-heading-title{max-width:min(38ch,100%)}
.kh-hero-post .elementor-post-info__item{align-items:center}

/* Imagen destacada: mismo lenguaje que las tarjetas del listado */
.elementor-kit-6 .kh-post-img img{display:block;width:100%;height:auto;border-radius:12px;border:1px solid var(--e-global-color-khelev)}

/* --- Cuerpo del articulo --- */
.elementor-kit-6 .kh-post-cuerpo{color:var(--e-global-color-khbody);font-family:Inter,sans-serif;font-size:17px;line-height:1.75}
.elementor-kit-6 .kh-post-cuerpo p{margin:0 0 1.15em;color:var(--e-global-color-khbody)}
.elementor-kit-6 .kh-post-cuerpo h2,.elementor-kit-6 .kh-post-cuerpo h3,
.elementor-kit-6 .kh-post-cuerpo h4,.elementor-kit-6 .kh-post-cuerpo h5{color:var(--e-global-color-secondary);line-height:1.2;margin:1.7em 0 .55em}
.elementor-kit-6 .kh-post-cuerpo strong,.elementor-kit-6 .kh-post-cuerpo b{color:var(--e-global-color-secondary)}
.elementor-kit-6 .kh-post-cuerpo a{color:var(--e-global-color-khsectx);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.elementor-kit-6 .kh-post-cuerpo a:hover{color:var(--e-global-color-khsectxh)}
.elementor-kit-6 .kh-post-cuerpo a:focus-visible{outline:2px solid var(--e-global-color-khsectx);outline-offset:2px;border-radius:3px}
.elementor-kit-6 .kh-post-cuerpo ul,.elementor-kit-6 .kh-post-cuerpo ol{margin:0 0 1.15em;padding-left:1.25em}
.elementor-kit-6 .kh-post-cuerpo li{margin:.3em 0}
.elementor-kit-6 .kh-post-cuerpo li::marker{color:var(--e-global-color-d49ac81)}
.elementor-kit-6 .kh-post-cuerpo img{max-width:100%;height:auto;border-radius:12px}
.elementor-kit-6 .kh-post-cuerpo figure{margin:1.6em 0}
.elementor-kit-6 .kh-post-cuerpo figcaption{color:var(--e-global-color-khmuted);font-size:14px;margin-top:8px}
.elementor-kit-6 .kh-post-cuerpo blockquote{margin:1.6em 0;padding:16px 20px;border-left:3px solid var(--e-global-color-d49ac81);background-color:var(--e-global-color-khsurface);border-radius:0 10px 10px 0}
.elementor-kit-6 .kh-post-cuerpo pre{overflow-x:auto;background-color:var(--e-global-color-khsurface);border:1px solid var(--e-global-color-khelev);border-radius:10px;padding:16px;font-family:"IBM Plex Mono","Courier New",monospace;font-size:14px}
.elementor-kit-6 .kh-post-cuerpo code{font-family:"IBM Plex Mono","Courier New",monospace;font-size:.92em}
.elementor-kit-6 .kh-post-cuerpo iframe,.elementor-kit-6 .kh-post-cuerpo video{max-width:100%;border-radius:12px}
/* Tablas del editor: filete del sistema y desplazamiento propio en movil,
   para que una tabla ancha no arrastre la pagina entera. */
.elementor-kit-6 .kh-post-cuerpo table{width:100%;max-width:100%;border-collapse:collapse;margin:0 0 1.4em;font-size:15px}
@media (max-width:1024px){.elementor-kit-6 .kh-post-cuerpo table{display:block;overflow-x:auto}}
.elementor-kit-6 .kh-post-cuerpo th,.elementor-kit-6 .kh-post-cuerpo td{border:1px solid var(--e-global-color-khelev)!important;padding:10px 12px;text-align:left;color:var(--e-global-color-khbody)}
.elementor-kit-6 .kh-post-cuerpo thead th{background-color:var(--e-global-color-khsurface);color:var(--e-global-color-secondary)}

/* --- Compartir: misma piel que las redes del pie (orden 2026-08-25) ---
   Circulo solido khchipbg con el glifo teal, y en el hover el halo del estandar
   de botones. Los colores y el tamano viven en los controles del widget; aqui
   va solo el efecto, igual que en .kh-pie .elementor-social-icon. */
.kh-post-share .elementor-share-btn{transition:background-color .16s ease,box-shadow .16s ease,transform .16s ease}
.kh-post-share .elementor-share-btn:hover{
  box-shadow:0 7px 20px var(--e-global-color-khbtnglow),0 0 0 3px var(--e-global-color-khbtnglow)}
@media (prefers-reduced-motion:no-preference){
.kh-post-share .elementor-share-btn:hover{transform:translateY(-2px)}
}

/* --- Comentarios (solo se pintan si la entrada los admite) --- */
.elementor-kit-6 .kh-post-coment{color:var(--e-global-color-khbody)}
.elementor-kit-6 .kh-post-coment h2,.elementor-kit-6 .kh-post-coment h3{color:var(--e-global-color-secondary)}
.elementor-kit-6 .kh-post-coment input[type="text"],.elementor-kit-6 .kh-post-coment input[type="email"],
.elementor-kit-6 .kh-post-coment input[type="url"],.elementor-kit-6 .kh-post-coment textarea{
  background-color:var(--e-global-color-khbg);color:var(--e-global-color-text);
  border:1px solid var(--e-global-color-khsecbr);border-radius:8px;padding:12px 14px;
  font-family:Inter,sans-serif;font-size:16px;width:100%}
.elementor-kit-6 .kh-post-coment input:focus,.elementor-kit-6 .kh-post-coment textarea:focus{
  outline:2px solid var(--e-global-color-khsectx);outline-offset:2px;border-color:var(--e-global-color-khsectx)}
.elementor-kit-6 .kh-post-coment input[type="submit"]{
  background-color:var(--e-global-color-d49ac81);color:var(--e-global-color-khbtntx);
  border:0;border-radius:8px;padding:12px 22px;font-weight:600;cursor:pointer;
  transition:background-color .16s ease,box-shadow .16s ease,transform .16s ease}
.elementor-kit-6 .kh-post-coment input[type="submit"]:hover{
  background-color:var(--e-global-color-khbtnhov);transform:translateY(-2px);
  box-shadow:0 7px 20px var(--e-global-color-khbtnglow),0 0 0 3px var(--e-global-color-khbtnglow)}

/* --- Ultimas entradas: mismas tarjetas del listado de /news/ --- */
.kh-post-rel .elementor-posts .elementor-post__card{background-color:var(--e-global-color-khsurface)}
.kh-post-rel .elementor-posts-container{align-items:stretch}
@media (max-width:1024px){
.kh-post-rel .elementor-post__card .elementor-post__title{font-size:22px}
}

/* --- Ultimos articulos en la home: la tarjeta del blog, en horizontal ---
   Es la MISMA tarjeta del skin "cards" que usa /news/: fondo, borde, radio,
   y el hover que el kit ya define para .elementor-post__card. Aqui solo
   se gira a dos columnas con grid -imagen a la izquierda, contenido a la
   derecha- y se deja que la imagen cubra todo el alto de la tarjeta.
   El relleno interior NO se toca aqui: lo pone el propio widget. */
.elementor-widget-posts.kh-news-home .elementor-posts-container.elementor-posts .elementor-post__card{display:grid;grid-template-columns:34% minmax(0,1fr);grid-template-rows:1fr auto;grid-template-areas:"img cuerpo" "img meta"}
.elementor-widget-posts.kh-news-home .elementor-posts-container.elementor-posts .elementor-post__thumbnail__link{grid-area:img;width:100%;height:100%;margin:0}
.elementor-widget-posts.kh-news-home .elementor-posts-container.elementor-posts .elementor-post__thumbnail{position:absolute;inset:0;height:100%;padding-bottom:0;border-radius:0}
.elementor-widget-posts.kh-news-home .elementor-posts-container.elementor-posts .elementor-post__thumbnail img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transform:none}
.elementor-widget-posts.kh-news-home .elementor-posts-container.elementor-posts .elementor-post__text{grid-area:cuerpo}
.elementor-widget-posts.kh-news-home .elementor-posts-container.elementor-posts .elementor-post__meta-data{grid-area:meta}
.kh-news-home .elementor-post__excerpt p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}
.kh-news-home .elementor-post__excerpt{margin-bottom:0}
@media (max-width:767px){.elementor-widget-posts.kh-news-home .elementor-posts-container.elementor-posts .elementor-post__card{grid-template-columns:38% minmax(0,1fr)}}

/* === kh-arch 2026-08-25: titulo de archivo en espanol y en una sola linea ===
   Elementor Pro no esta traducido y escribe "Category:", "Tag:" y
   "Search Results for:" desde su propio codigo. En vez de esperar al paquete de
   idioma, el ROTULO son tres encabezados con texto real en espanol y el TERMINO
   viene limpio de la etiqueta dinamica (archive-title sin contexto, y la query
   var `s` en la busqueda). Aqui solo se decide cual se ve, segun la clase que
   WordPress pone en el <body>, y se resalta el termino. */
.kh-arch{margin-top:4px}
.kh-arch-etq,.kh-arch-q{display:none}
body.category .kh-arch-cat,
body.tag .kh-arch-tag,
body.search .kh-arch-bus,
body.search .kh-arch-q{display:block}
/* En busqueda el termino lo pone la query var, no archive-title */
body.search .kh-arch-term{display:none}
/* Fuera de un archivo con rotulo la fila no ocupa nada */
.kh-arch .elementor-heading-title{margin:0;line-height:1.5}
.kh-arch-etq .elementor-heading-title{font-size:16px}
.kh-arch-val .elementor-heading-title{
  display:inline-block;
  background-color:var(--e-global-color-khchipbg);
  border:1px solid var(--e-global-color-d49ac81);
  border-radius:7px;
  padding:3px 11px;
  font-size:16px;
  font-weight:600;
  letter-spacing:.01em;
}
@media (max-width:767px){
.kh-arch-etq .elementor-heading-title,.kh-arch-val .elementor-heading-title{font-size:15px}
}

/* ============================================================
   BLOQUE PIE - REDISENO 2026-08-25             marcador: kh-pie
   Plantilla de pie de Elementor (465). El contenido ya era el de
   KHARONTE; lo que quedaba netrix era la piel: fondo #0A1029 con
   degradado, textura bg_img1.png tras los rotulos y encabezados
   en <h5>. Aqui va solo lo que no cabe en los controles del
   widget: estados de foco y hover de los enlaces y de las redes.
   ============================================================ */
.kh-pie .elementor-icon-list-text{transition:color .16s ease}
.kh-pie .elementor-icon-list-item > a:hover .elementor-icon-list-text{
  color:var(--e-global-color-secondary);text-decoration:underline;text-underline-offset:3px}
.kh-pie .elementor-icon-list-item > a:focus-visible{border-radius:4px}
/* Rotulos de columna: banda con filete teal, ya sin la textura del tema */
.kh-pie-rot .elementor-heading-title{margin:0}
/* Redes: el mismo halo del estandar de botones */
.kh-pie .elementor-social-icon{transition:background-color .16s ease,box-shadow .16s ease,transform .16s ease}
.kh-pie .elementor-social-icon:hover{
  box-shadow:0 7px 20px var(--e-global-color-khbtnglow),0 0 0 3px var(--e-global-color-khbtnglow)}
@media (prefers-reduced-motion:no-preference){
.kh-pie .elementor-social-icon:hover{transform:translateY(-2px)}
}
/* Menus del pie: la flecha va del color del texto y se enciende en teal al
   pasar. Acotado con .kh-pie-menu para no tocar los iconos de contacto, que
   son teal en reposo por diseno. */
.elementor-kit-6 .kh-pie .kh-pie-menu .elementor-icon-list-icon svg{transition:fill .16s ease}
.kh-pie-menu .elementor-icon-list-item > a:hover .elementor-icon-list-icon svg{fill:var(--e-global-color-d49ac81)}
/* Linea legal */
.kh-pie-legal .elementor-heading-title{margin:0}
/* Credito de diseno: CLYGOS toma su propio naranja al pasar, sin subrayado
   (orden del operador 2026-08-25). El prefijo
   .elementor-kit-6 .kh-pie es necesario: widget-heading.min.css se encola
   DESPUES del kit y trae `...[class*="elementor-size-"] > a{color:inherit}`,
   que con menos especificidad ganaba y dejaba el enlace en gris. Es color de otra
   marca, por eso vive como token propio (khclygos) y no en la paleta de uso. */
.elementor-kit-6 .kh-pie .kh-pie-credito .elementor-heading-title a{color:var(--e-global-color-khbody);text-decoration:none;transition:color .16s ease}
.elementor-kit-6 .kh-pie .kh-pie-credito .elementor-heading-title a:hover{color:var(--e-global-color-khclygos)}
.elementor-kit-6 .kh-pie .kh-pie-credito .elementor-heading-title a:focus-visible{outline:2px solid var(--e-global-color-khclygos);outline-offset:2px;border-radius:3px}
/* kh-pie-rotulo: mismo rotulo-chip que la barra lateral de /news/ */
.kh-pie .kh-rotulo .elementor-heading-title{font-size:14px;letter-spacing:.09em;text-transform:uppercase;font-weight:600;margin:0}

/* ============================================================
   BLOQUE CABECERA - REDISENO 2026-08-25         marcador: kh-cab
   Plantilla de encabezado de Elementor (461). Los colores base
   viven en los controles del widget (todo por token); aqui va lo
   que no cabe en ellos: translucidez con desenfoque, el patron de
   subrayado del navbar (design system), la piel del desplegable,
   el area tactil del toggle y el skip link del tema.
   ============================================================ */
/* kh-solida 2026-08-25 (orden del operador): banda SOLIDA. La version
   translucida con desenfoque dificultaba leer el menu sobre contenido claro. */

/* Enlaces del menu: subrayado interior en hover/foco (khsecbr) y
   subrayado teal fijo en el elemento activo — patron del navbar. */
.kh-cab .elementor-nav-menu--main .elementor-item{transition:color .16s ease,box-shadow .16s ease}
.kh-cab .elementor-nav-menu--main .elementor-item:hover,
.kh-cab .elementor-nav-menu--main .elementor-item:focus-visible{box-shadow:inset 0 -2px 0 var(--e-global-color-khsecbr)}
.kh-cab .elementor-nav-menu--main .elementor-item.elementor-item-active{box-shadow:inset 0 -2px 0 var(--e-global-color-d49ac81)}

/* Desplegable de escritorio: tarjeta del sistema */
.kh-cab .elementor-nav-menu--main .elementor-nav-menu--dropdown{
  border:1px solid var(--e-global-color-khelev);border-radius:12px;overflow:hidden;
  box-shadow:0 12px 28px rgba(0,0,0,.45)}
.kh-cab .elementor-nav-menu--dropdown a.elementor-sub-item{transition:background-color .16s ease,color .16s ease}

/* Panel movil (hamburguesa): superficie del sistema con desplazamiento
   propio si el menu no cabe en el alto de la pantalla. */
.kh-cab nav.elementor-nav-menu--dropdown.elementor-nav-menu__container{
  background-color:var(--e-global-color-khsurface);
  border-top:1px solid var(--e-global-color-khelev);
  box-shadow:0 16px 30px rgba(0,0,0,.5);
  max-height:calc(100vh - 80px);overflow-y:auto}
/* Las hijas de Servicios, sangradas y con filete para leer la jerarquia */
.kh-cab nav.elementor-nav-menu--dropdown .sub-menu a.elementor-sub-item{
  padding-left:32px;border-left:2px solid var(--e-global-color-khstrong)}

/* Toggle: area tactil de 44px y foco visible (es div[role=button]: la regla
   general de foco del kit solo cubre a y button). */
.kh-cab .elementor-menu-toggle{width:44px;height:44px;justify-content:center;align-items:center;border-radius:8px}
.kh-cab .elementor-menu-toggle:focus-visible{outline:2px solid var(--e-global-color-khsectx);outline-offset:3px}

/* Skip link del tema: oculto salvo con foco de teclado; con foco aparece
   como boton de marca por encima del encabezado. */
.skip-link.screen-reader-text:focus{
  position:fixed!important;left:16px!important;top:12px!important;z-index:999;
  clip:auto!important;clip-path:none!important;width:auto!important;height:auto!important;
  overflow:visible!important;
  background-color:var(--e-global-color-khbrand);color:var(--e-global-color-text);
  padding:12px 20px;border-radius:8px;font-family:Inter,sans-serif;font-size:15px;font-weight:600;
  text-decoration:none;outline:2px solid var(--e-global-color-text);outline-offset:2px}

/* kh-cab-logo v3 2026-08-25 (orden del operador): SIN efecto de fondo. El logo
   va limpio sobre la banda; la legibilidad se resuelve con tamano (54 px). */
.kh-cab .kh-cab-logo a{display:inline-flex;align-items:center}

/* kh-topbar: fila superior de contacto. No es sticky: se va con el scroll
   y la banda principal queda fija. */
.kh-topbar .elementor-icon-list-item a{display:flex;align-items:center;min-height:32px;transition:color .16s ease}
.kh-topbar .elementor-icon-list-item a:hover .elementor-icon-list-text{color:var(--e-global-color-secondary)}
.kh-topbar .elementor-social-icon{transition:box-shadow .16s ease,transform .16s ease}
.kh-topbar .elementor-social-icon:hover{box-shadow:0 0 0 3px var(--e-global-color-khbtnglow)}
@media (prefers-reduced-motion:no-preference){
.kh-topbar .elementor-social-icon:hover{transform:translateY(-1px)}
}
@media (max-width:767px){
/* kh-topbar v2 (orden del operador): en movil tambien se ven las redes, y
   correo/telefono van como CHIPS circulares identicos a los de las redes.
   El texto sigue en el arbol de accesibilidad (sr-only): el enlace conserva
   su nombre. */
.kh-topbar .elementor-icon-list-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.kh-topbar .elementor-icon-list-item{flex-shrink:0}
.kh-topbar .elementor-icon-list-item a{width:28px;min-width:28px;height:28px;min-height:0;flex-shrink:0;justify-content:center;background-color:var(--e-global-color-khchipbg);border-radius:50%;padding:0}
.kh-topbar .elementor-icon-list-icon{margin:0;display:flex;width:auto;min-width:0;align-items:center;justify-content:center}
.kh-topbar .elementor-icon-list-icon svg{margin:0!important;width:14px;height:14px}
}

/* ============================================================
   BLOQUE GRACIAS - MIGRACION 2026-08-25          marcador: kh-gracias
   /soporte-ti-para-empresas/gracias-por-contactarnos/ (pagina 55).
   Venia como documento HTML completo dentro de un widget, en claro y
   con su propia cabecera y pie. Aqui solo queda lo que no cabe en los
   controles de widget: la insignia del visto y los topes de medida de
   linea del titular y del parrafo de entrada.
   ============================================================ */
/* Insignia del visto: circulo de chip con el trazo teal y un halo que late */
.kh-gracias .kh-check{display:flex;justify-content:center}
.kh-gracias .kh-check svg{width:96px;height:96px;overflow:visible}
@media (max-width:767px){.kh-gracias .kh-check svg{width:80px;height:80px}}
.kh-gracias .kh-check-fondo{fill:var(--e-global-color-khchipbg);stroke:var(--e-global-color-d49ac81);stroke-width:2}
.kh-gracias .kh-check-halo{fill:none;stroke:var(--e-global-color-d49ac81);stroke-width:2;opacity:0;transform-origin:50% 50%}
.kh-gracias .kh-check-tick{fill:none;stroke:var(--e-global-color-d49ac81);stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:56;stroke-dashoffset:56}
@media (prefers-reduced-motion:no-preference){
.kh-gracias .kh-check-tick{animation:khtick .55s ease-out .3s forwards}
.kh-gracias .kh-check-halo{animation:khhalo 2.8s ease-out 1s infinite}
}
@media (prefers-reduced-motion:reduce){.kh-gracias .kh-check-tick{stroke-dashoffset:0}}
@keyframes khtick{to{stroke-dashoffset:0}}
@keyframes khhalo{0%{opacity:.55;transform:scale(1)}70%{opacity:0;transform:scale(1.45)}100%{opacity:0;transform:scale(1.45)}}
/* Medida de linea: el titular y la entrada no ocupan los 1280 de la caja */
.kh-gracias h1.elementor-heading-title{max-width:min(20em,100%);margin-inline:auto}
.kh-gracias .kh-gracias-lead .elementor-heading-title{max-width:min(62ch,100%);margin-inline:auto}
/* Rotulo de frase: mismo chip del sitio, pero sin versalitas -- aqui el rotulo
   es una oracion completa, no una etiqueta de seccion. El TAMANO lo fija el
   propio widget: el CSS de pagina emite `.elementor-widget-heading
   .elementor-heading-title{font-size:var(--e-global-typography-primary-font-size)}`
   con la misma especificidad (0,2,0) y en una hoja posterior, asi que desde el
   kit no se puede ganar sin subir la especificidad. */
.kh-rotulo-frase .elementor-heading-title{text-transform:none}

/* ===================== LANDING SOPORTE TI (pagina 53) =====================
   La pagina se reconstruyo con elementos nativos el 2026-08-25. Vive en
   `elementor_canvas`, sin cabecera ni pie globales del sitio, asi que trae los
   suyos. Todo este bloque es de esa pagina: se puede retirar entero sin tocar
   el resto del sitio. Marcador: kh-land */

/* --- cabecera propia, pegada arriba ---
   CABECERA LANDING v2 2026-08-26 (orden del operador): adopta los valores del
   header global (plantilla 461, `.kh-cab`) SIN su fila superior de contactos.
   Altos (80/70/60), relleno, anchos de grupo (30/40/30 -> 30/70 -> 45/55),
   tamano del logo y tipografias viven en los AJUSTES de los elementos.
   Aqui solo lo que no cabe en un control de widget:
     - z-index 99, el mismo de `.kh-cab`. El chat de WhatsApp va a 320 y sigue
       ganando; nada de la landing vive entre 60 y 99.
     - el subrayado del navbar del sistema: en el header global lo pone el
       widget nav-menu y aqui hay que reproducirlo sobre una lista de iconos.
     - en movil el telefono se vuelve CHIP circular, igual que en `.kh-topbar`,
       con el texto en sr-only. Antes era `display:none`: perdia el nombre
       accesible del enlace y dejaba un objetivo tactil de 19x15 px, por debajo
       del minimo de 24 que exige el gate G6.
   NO se copia el `margin-bottom:-80` de `.kh-cab`: alli hace que el contenido
   se meta BAJO la banda (comprobado: el <main> de /servicios empieza en y=41 y
   la banda acaba en 121). En la landing el heroe va inmediatamente despues y
   se le meteria 80 px por debajo. */
.kh-land-cab{position:sticky;top:0;z-index:99}
.kh-land-nav .elementor-icon-list-text,.kh-land-tel .elementor-icon-list-text{transition:color .16s ease}
/* CABECERA LANDING v2.1: area tactil de los enlaces de contacto, copiada de
   `.kh-topbar .elementor-icon-list-item a` del header global. */
.kh-land-tel .elementor-icon-list-item a{display:flex;align-items:center;min-height:32px}
.kh-land-nav .elementor-icon-list-item a:hover .elementor-icon-list-text,
.kh-land-tel .elementor-icon-list-item a:hover .elementor-icon-list-text{color:var(--e-global-color-d49ac81)}
/* Subrayado del navbar: mismo patron y mismo alto de caja que
   `.kh-cab .elementor-nav-menu--main .elementor-item` (padding vertical 25). */
.kh-land-nav .elementor-icon-list-item a{padding-top:25px;padding-bottom:25px;transition:box-shadow .16s ease,color .16s ease}
.kh-land-nav .elementor-icon-list-item a:hover,
.kh-land-nav .elementor-icon-list-item a:focus-visible{box-shadow:inset 0 -2px 0 var(--e-global-color-khsecbr)}
@media (max-width:1024px){.kh-land-cab .kh-land-nav{display:none}}
@media (max-width:767px){
/* Telefono como chip circular, identico al de `.kh-topbar` en movil */
.kh-land-cab .kh-land-tel .elementor-icon-list-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.kh-land-cab .kh-land-tel .elementor-icon-list-item{flex-shrink:0}
/* CABECERA v2.2 2026-08-26 (orden del operador): el chip pasa de 28 a 34 px
   para facilitar la llamada sin pulsar "Cotizar" por error. */
.kh-land-cab .kh-land-tel .elementor-icon-list-item a{width:34px;min-width:34px;height:34px;min-height:0;flex-shrink:0;display:flex;align-items:center;justify-content:center;background-color:var(--e-global-color-khchipbg);border-radius:50%;padding:0}
.kh-land-cab .kh-land-tel .elementor-icon-list-icon{margin:0;display:flex;width:auto;min-width:0;align-items:center;justify-content:center}
/* El icono sube a 17 para mantener la proporcion del header global, donde
   el icono es la mitad del chip (14 sobre 28). */
.kh-land-cab .kh-land-tel .elementor-icon-list-icon svg{margin:0!important;width:17px;height:17px}
}

/* --- anclas de la pagina ---
   ANCLAS LANDING v1 2026-08-26 (orden del operador).
   La cabecera es pegajosa (80/70/60), asi que sin `scroll-margin-top` el
   navegador alinea el destino con el borde de la ventana y la cabecera se come
   sus primeros 80 px: el titulo del formulario quedaba cortado. Se le suman
   16 px de aire.
   Vale para los clics Y para las visitas directas con el fragmento en la URL.
   ALCANCE: escopado a la pagina 53 por exigencia del operador (un cambio no
   puede alcanzar al resto del sitio). AVISO: si en el paso a produccion esta
   pagina cambia de ID, hay que actualizar `.elementor-page-53` aqui o la
   correccion dejara de aplicarse en silencio. Hoy los cuatro `id` existen
   SOLO en esta pagina (comprobado en /, /servicios, /nosotros,
   /soporte-remoto-y-en-sitio y /contacto).
   2026-09-01 (orden del operador): la pagina pasa a plantilla elementor_canvas
   y ya NO carga la cabecera global pegajosa. La barra propia de la landing
   (kh-land-cab, khl0011) NO es pegajosa, asi que no tapa nada: los tres valores
   bajan de 96/86/76 a 16 px, que era solo el aire. Si algun dia esa barra se
   hace pegajosa, hay que volver a sumarle su altura. */
.elementor-page-53 #servicios,
.elementor-page-53 #proceso,
.elementor-page-53 #faq,
.elementor-page-53 #form-lead{scroll-margin-top:16px}
@media (max-width:1024px){
.elementor-page-53 #servicios,
.elementor-page-53 #proceso,
.elementor-page-53 #faq,
.elementor-page-53 #form-lead{scroll-margin-top:16px}
}
@media (max-width:767px){
.elementor-page-53 #servicios,
.elementor-page-53 #proceso,
.elementor-page-53 #faq,
.elementor-page-53 #form-lead{scroll-margin-top:16px}
}
/* --- hero --- */
.kh-grad{background:linear-gradient(90deg,var(--e-global-color-khbrand),var(--e-global-color-d49ac81));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
/* El tamano del titular secundario del hero (18,5/1,6, como especifica el
   sistema de diseno en .kh-hero-l) va en los AJUSTES del widget: desde aqui
   nunca llegaria, porque la regla por elemento de Elementor tiene mas
   especificidad. Aqui solo la medida de linea, que Elementor no escribe. */
.kh-land-lead .elementor-heading-title{max-width:56ch}
.kh-land-seguro .elementor-icon-list-item{align-items:center}

/* --- icono de tarjeta: el kh-ico del sitio, con el color por variable --- */
.kh-land-ico{color:var(--e-global-color-d49ac81)}

/* --- entradilla del portafolio, al ancho del origen --- */
.kh-land-entradilla .elementor-heading-title{max-width:666px;margin-inline:auto}

/* --- separador «o si prefieres…» de la tarjeta de formulario --- */
.kh-land-div .elementor-heading-title{display:flex;align-items:center;gap:12px}
.kh-land-div .elementor-heading-title::before,.kh-land-div .elementor-heading-title::after{content:"";flex:1;height:1px;background:var(--e-global-color-khelev)}

/* --- ilustracion de marca de «Quienes somos» --- */
.kh-land-ilus .illus-panel{background:linear-gradient(160deg,var(--e-global-color-khsurface) 0%,var(--e-global-color-khchipbg) 100%);border:1px solid var(--e-global-color-khelev);border-radius:26px;padding:26px}
.kh-land-ilus svg{display:block;width:100%;height:auto}
@media (prefers-reduced-motion:no-preference){
.kh-land-ilus .bob-svg{animation:khbob 6s ease-in-out infinite}
.kh-land-ilus .dash-line{stroke-dasharray:5 7;animation:khdash 22s linear infinite}
.kh-land-ilus .node-pulse{animation:khnodo 3.2s ease-in-out infinite}
.kh-land-ilus .node-pulse.n2{animation-delay:-1.1s}
.kh-land-ilus .node-pulse.n3{animation-delay:-2.2s}}
@keyframes khbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-11px)}}
@keyframes khdash{to{stroke-dashoffset:-260}}
@keyframes khnodo{0%,100%{opacity:1}50%{opacity:.35}}

/* --- FORMULARIO REAL (Contact Form 7) DENTRO DE LA TARJETA ---
   Estiliza la salida estandar de CF7 con los tokens del sitio. Selectores
   genericos: valen para cualquier plantilla CF7. */
.kh-form .wpcf7,.kh-form .wpcf7-form,.kh-form .wpcf7-form p{margin:0;padding:0}
.kh-form .wpcf7-form br{display:none}
.kh-form .wpcf7-form label{display:block;font-size:13px;font-weight:600;color:var(--e-global-color-secondary);margin:15px 0 0}
.kh-form .wpcf7-form label .req{color:var(--e-global-color-khalerta)}
.kh-form .wpcf7-form-control-wrap{display:block;margin-top:6px}
.kh-form .wpcf7-form .wpcf7-form-control:not(.wpcf7-submit):not([type="hidden"]){
 width:100%!important;padding:12px 14px!important;border:1.5px solid var(--e-global-color-khelev)!important;border-radius:11px!important;
 font:inherit;font-size:15px!important;color:var(--e-global-color-secondary)!important;background:var(--e-global-color-khbg)!important;
 box-shadow:none;transition:border-color .2s,box-shadow .2s,background .2s}
.kh-form .wpcf7-form .wpcf7-form-control:not(.wpcf7-submit):focus{
 outline:none!important;border-color:var(--e-global-color-d49ac81)!important;box-shadow:0 0 0 4px var(--e-global-color-khbtnglow)!important}
.kh-form .wpcf7-form select.wpcf7-form-control:not(.wpcf7-submit):not([type="hidden"]){
 appearance:none;-webkit-appearance:none;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23C6C7DD' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")!important;
 background-repeat:no-repeat!important;background-position:right 14px center!important;padding-right:40px!important}
.kh-form .wpcf7-form textarea.wpcf7-form-control{min-height:96px;resize:vertical}
.kh-form .wpcf7-submit{
 display:block;width:100%!important;margin-top:20px!important;padding:15px 46px 15px 28px!important;
 border:0!important;border-radius:8px!important;cursor:pointer;text-align:center;
 font-family:Inter,sans-serif!important;font-weight:600!important;font-size:16px!important;line-height:1.4!important;
 color:var(--e-global-color-khbtntx)!important;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231C1E42' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E"),linear-gradient(180deg,var(--e-global-color-khbtnhov),var(--e-global-color-d49ac81))!important;
 background-repeat:no-repeat,no-repeat!important;background-position:right 22px center,0 0!important;
 background-size:19px 19px,100% 100%!important;
 transition:transform .16s ease,box-shadow .16s ease,background-position .3s ease}
.kh-form .wpcf7-submit:hover{transform:translateY(-2px);box-shadow:0 7px 20px var(--e-global-color-khbtnglow),0 0 0 3px var(--e-global-color-khbtnglow);background-position:right 18px center,0 0!important}
.kh-form .wpcf7-submit:disabled{opacity:.65;cursor:not-allowed;transform:none}
.kh-form .wpcf7-spinner{
 display:block;margin:12px auto 0!important;width:22px;height:22px;
 background:transparent!important;opacity:1;visibility:visible;
 border:3px solid var(--e-global-color-khelev);border-top-color:var(--e-global-color-d49ac81);border-radius:50%;
 animation:khgira .8s linear infinite}
.kh-form .wpcf7-spinner::before{display:none}
.kh-form .wpcf7-form:not(.submitting) .wpcf7-spinner{display:none}
@keyframes khgira{to{transform:rotate(360deg)}}
.kh-form .wpcf7-not-valid{border-color:var(--e-global-color-khalerta)!important}
.kh-form .wpcf7-not-valid-tip{display:block;font-size:12px;font-weight:500;color:var(--e-global-color-khalerta);margin:6px 2px 0}
.kh-form .wpcf7-response-output{
 margin:14px 0 0!important;padding:11px 14px!important;border-radius:11px!important;
 font-size:14px;line-height:1.5;border:1.5px solid var(--e-global-color-khelev)!important;color:var(--e-global-color-khbody)}
.kh-form .wpcf7-response-output:empty{display:none}
.kh-form .wpcf7-form.invalid .wpcf7-response-output,
.kh-form .wpcf7-form.unaccepted .wpcf7-response-output,
.kh-form .wpcf7-form.failed .wpcf7-response-output,
.kh-form .wpcf7-form.aborted .wpcf7-response-output{border-color:var(--e-global-color-khalerta)!important;color:var(--e-global-color-khalerta)!important}
.kh-form .wpcf7-form.sent .wpcf7-response-output{border-color:var(--e-global-color-d49ac81)!important;color:var(--e-global-color-khchiptx)!important}

/* --- WHATSAPP: boton flotante y chat (widget funcional de la pagina) --- */
/* ARREGLO DE APILAMIENTO 2026-08-26: `z-index:0` aqui creaba un contexto
   que encerraba al minichat (fixed, z-index:320) y lo dejaba por debajo
   del hero, cuyos hijos van a z-index:1 desde que adopto kh-hero-l. Este
   contenedor no pinta nada (1440x0), solo aloja chat, flotante y scripts:
   con z-index:auto no crea contexto y el chat sube a la raiz.
   NO devolverle un z-index ni darle transform/filter/opacity<1: cualquiera
   de esos vuelve a crear el contexto y reaparece el defecto. */
.kh-land-func{position:relative;z-index:auto}
.wa-float{position:fixed;right:24px;bottom:24px;z-index:300;
 min-width:60px;height:60px;padding:0 15px;border-radius:999px;
 background:linear-gradient(180deg,var(--e-global-color-khwa2),var(--e-global-color-khwa));color:#fff!important;
 display:flex;align-items:center;justify-content:center;
 box-shadow:0 12px 28px rgba(37,211,102,.42);transition:transform .3s ease}
.wa-float:hover{transform:scale(1.09)}
.wa-float .ic-fill{width:30px;height:30px;fill:currentColor;stroke:none}
.wa-float::before{content:"";position:absolute;inset:0;border-radius:999px;background:rgba(37,211,102,.45);animation:khpulso 2.6s ease-out infinite;z-index:-1}
@keyframes khpulso{0%{transform:scale(1);opacity:.75}70%,100%{transform:scale(1.6);opacity:0}}
.wa-label{display:inline-block;max-width:0;opacity:0;overflow:hidden;white-space:nowrap;font-weight:600;font-size:15px;transition:max-width .45s ease,opacity .3s ease,margin .45s ease}
@media (hover:hover){.wa-float:hover .wa-label{max-width:140px;opacity:1;margin-left:10px}}
.wa-float .ic-close{display:none;width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:2}
body.wa-open .wa-float .ic-wa-main,body.wa-open .wa-float .wa-label{display:none}
body.wa-open .wa-float .ic-close{display:block}
body.wa-open .wa-float{background:linear-gradient(180deg,var(--e-global-color-khelev),var(--e-global-color-khsurface))}
body.wa-open .wa-float::before{animation:none;opacity:0}
.wa-widget{position:fixed;right:24px;bottom:98px;z-index:320;width:min(372px,calc(100vw - 32px));
 background:var(--e-global-color-khsurface);border:1px solid var(--e-global-color-khelev);border-radius:20px;overflow:hidden;
 box-shadow:0 24px 64px rgba(0,0,0,.45);
 opacity:0;transform:translateY(18px) scale(.95);transform-origin:bottom right;pointer-events:none;
 transition:opacity .3s ease,transform .35s cubic-bezier(.22,.9,.3,1)}
.wa-widget.open{opacity:1;transform:none;pointer-events:auto}
.waw-head{display:flex;align-items:center;gap:12px;padding:14px 16px;background:linear-gradient(135deg,#1db457,var(--e-global-color-khwa));color:#fff}
.waw-avatar{width:42px;height:42px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;flex:none;overflow:hidden}
.waw-avatar img{width:30px!important;height:30px!important;object-fit:contain}
.waw-avatar svg{display:none;width:26px;height:26px;color:var(--e-global-color-khwa);fill:currentColor}
.waw-avatar img.logo-fail{display:none}
.waw-avatar img.logo-fail+svg{display:block}
.waw-id{display:flex;flex-direction:column;line-height:1.3;min-width:0}
.waw-id strong{font-family:Rajdhani,sans-serif;font-size:16px;letter-spacing:.06em}
.waw-status{font-size:12px;color:rgba(255,255,255,.92);display:flex;align-items:center;gap:6px}
.waw-status i{width:8px;height:8px;border-radius:50%;background:#d9ffe9;box-shadow:0 0 0 3px rgba(255,255,255,.25)}
.elementor-kit-6 button.waw-close{margin-left:auto;width:34px;height:34px;border-radius:10px;border:0;
 background:rgba(255,255,255,.16);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;
 padding:0;font:inherit;letter-spacing:normal;text-transform:none;box-shadow:none;flex:none;transition:background .25s}
.elementor-kit-6 button.waw-close:hover{background:rgba(255,255,255,.3)}
.waw-close .ic{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;flex:none}
.waw-body{padding:18px 14px;background:var(--e-global-color-khbg);
 background-image:radial-gradient(rgba(198,199,221,.06) 1px,transparent 1px);background-size:18px 18px;
 display:flex;flex-direction:column;gap:10px;max-height:300px;overflow:auto}
.waw-msg{background:var(--e-global-color-khelev);border:1px solid var(--e-global-color-khstrong);border-radius:14px 14px 14px 4px;
 padding:10px 13px;font-size:14px;color:var(--e-global-color-secondary);line-height:1.55;max-width:90%}
.wa-widget.open .waw-msg{animation:khmsg .45s ease both}
@keyframes khmsg{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.waw-time{display:block;font-size:11px;color:var(--e-global-color-khmuted);margin-top:5px;text-align:right}
.waw-input{display:flex;align-items:flex-end;gap:10px;padding:12px;background:var(--e-global-color-khsurface);border-top:1px solid var(--e-global-color-khelev)}
.waw-input textarea{flex:1;resize:none;border:1.5px solid var(--e-global-color-khelev);border-radius:12px;padding:10px 12px;
 font:inherit;font-size:14px;color:var(--e-global-color-secondary);background:var(--e-global-color-khbg);
 transition:border-color .2s,box-shadow .2s}
.waw-input textarea:focus{outline:none;border-color:var(--e-global-color-khwa);box-shadow:0 0 0 4px rgba(37,211,102,.18)}
.elementor-kit-6 button.waw-send{width:46px;height:46px;border-radius:50%;border:0;flex:none;padding:0;
 background:linear-gradient(180deg,var(--e-global-color-khwa2),var(--e-global-color-khwa));color:#fff;
 display:flex;align-items:center;justify-content:center;cursor:pointer;font:inherit;letter-spacing:normal;text-transform:none;
 box-shadow:0 8px 18px rgba(37,211,102,.35);transition:transform .25s ease,box-shadow .25s ease}
.elementor-kit-6 button.waw-send:hover{transform:scale(1.08);box-shadow:0 12px 24px rgba(37,211,102,.45)}
.waw-send .ic{width:19px;height:19px;margin:1px 2px 0 0;stroke:currentColor;fill:none;stroke-width:2;flex:none}
@media (max-width:640px){.wa-widget{right:16px;bottom:92px}}

/* --- Escritura simulada del minichat ---
   Los dos saludos no se vuelcan de golpe: primero se ven los tres puntos
   de "escribiendo" y luego cae cada burbuja. El JavaScript vive en el
   snippet de WPCode 1500. Con prefers-reduced-motion no se anima nada. */
.waw-msg[hidden]{display:none}
.waw-typing{align-self:flex-start;width:auto;max-width:none;display:inline-flex;align-items:center;gap:5px;padding:13px 15px}
.waw-typing i{width:7px;height:7px;border-radius:50%;background:var(--e-global-color-khmuted);animation:khtype 1.25s infinite ease-in-out}
.waw-typing i:nth-child(2){animation-delay:.16s}
.waw-typing i:nth-child(3){animation-delay:.32s}
@keyframes khtype{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}
@media (prefers-reduced-motion:reduce){.waw-typing i{animation:none;opacity:.55}.wa-widget.open .waw-msg{animation:none}}

/* --- CIERRE: banda de marca ---
   La piel de la banda azul original de la landing (orden 2026-08-25, con
   captura): degradado de marca, rejilla enmascarada que se desvanece desde
   arriba, orbe teal difuminado que deriva y marca de agua de circuito.
   Radio 30, relleno 80/48 y sombra van como ajustes nativos del contenedor.
   El foco que sigue al cursor del original NO se aplica: es JavaScript y esos
   efectos quedaron interpretados pero en espera por orden del operador. */
.elementor-kit-6 .kh-banda-marca{position:relative;overflow:hidden;
 /* #1330B8: variante de marca usada solo en degradados (no existe como token) */
 background:linear-gradient(135deg,var(--e-global-color-khbrand) 0%,#1330B8 45%,var(--e-global-color-khsurface) 100%)}
.elementor-kit-6 .kh-banda-marca::before{content:"";position:absolute;inset:0;pointer-events:none;
 /* neutraliza el brillo del estandar .kh-banda, que comparte este ::before:
    su regla (0,1,0) aporta width 60%, blur 6px y la animacion khsheen */
 width:auto;height:auto;filter:none;animation:none;
 background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);
 background-size:42px 42px;
 -webkit-mask-image:radial-gradient(640px 420px at 50% 0%,#000 20%,transparent 75%);
 mask-image:radial-gradient(640px 420px at 50% 0%,#000 20%,transparent 75%)}
.elementor-kit-6 .kh-banda-marca::after{content:"";position:absolute;width:380px;height:380px;border-radius:50%;
 background:rgba(10,236,197,.28);filter:blur(90px);bottom:-190px;right:-110px;pointer-events:none}
@media (prefers-reduced-motion:no-preference){
 .elementor-kit-6 .kh-banda-marca::after{animation:khderiva 14s ease-in-out infinite alternate}}
@keyframes khderiva{from{translate:0 0;scale:1}to{translate:46px 32px;scale:1.08}}
/* el contenido por encima de la rejilla y el orbe; la marca de agua y el foco, detras */
.kh-banda-marca>.elementor-element:not(.kh-banda-wm):not(.kh-banda-spot){position:relative;z-index:1}
.kh-banda-marca>.kh-banda-wm{position:absolute;left:-28px;bottom:-22px;width:310px;z-index:0;
 pointer-events:none;color:#fff;opacity:.09}
.kh-banda-wm svg{display:block;width:100%;height:auto}
/* foco que sigue al cursor (orden 2026-08-25): la capa se enciende al entrar el
   raton y el JS de la pieza funcional actualiza --mx/--my sobre la banda */
.kh-banda-marca>.kh-banda-spot{position:absolute;inset:0;z-index:0;margin:0;
 pointer-events:none;opacity:0;transition:opacity .5s ease;
 background:radial-gradient(340px 340px at var(--mx,50%) var(--my,40%),rgba(10,236,197,.28),transparent 65%)}
.kh-banda-marca:hover>.kh-banda-spot{opacity:1}

/* --- BOTON DE WHATSAPP: el estandar del kit en su verde y con texto oscuro ---
   Variante kh-wa del sistema de botones del kit: hereda el hover del archivo
   (aclara, eleva 2 px, halo doble) y solo cambia sus colores, como kh-btn2 y
   kh-btnb. El texto y el icono oscuros van en los ajustes de cada widget.
   Ademas recupera la onda de atencion del original, en su verde. */
.elementor-kit-6 .elementor-widget-button.kh-wa .elementor-button{
 --khglow1:var(--e-global-color-khwaglow);
 --khglow2:var(--e-global-color-khwaglow);
}
.elementor-kit-6 .elementor-widget-button.kh-wa .elementor-button:active{
 background-color:var(--e-global-color-khwa);
 border-color:var(--e-global-color-khwa);
}
@keyframes khondaverde{
 0%{box-shadow:0 10px 26px rgba(37,211,102,.30),0 0 0 0 rgba(37,211,102,.42)}
 70%{box-shadow:0 10px 26px rgba(37,211,102,.30),0 0 0 15px rgba(37,211,102,0)}
 100%{box-shadow:0 10px 26px rgba(37,211,102,.30),0 0 0 0 rgba(37,211,102,0)}}
@media (prefers-reduced-motion:no-preference){
 .elementor-kit-6 .elementor-widget-button.kh-wa .elementor-button{animation:khondaverde 2.7s ease-out infinite}
 .elementor-kit-6 .elementor-widget-button.kh-wa .elementor-button:hover,
 .elementor-kit-6 .elementor-widget-button.kh-wa .elementor-button:focus{animation:none}}

/* --- FAQ: el acordeon con la piel de /servicios ---
   El sitio aplica el radio y la separacion por elemento o por pagina (ver
   .elementor-element-e33578d y el bloque body.page-id-662...808); la landing
   necesita su propia linea. El resto del aspecto (titulo h3 de 31 px, relleno
   18/22, cuerpo a 1,65) sale de los ajustes del widget. */
.kh-land-faq .elementor-accordion-item{border-radius:12px;overflow:hidden}
.kh-land-faq .elementor-accordion-item+.elementor-accordion-item{margin-top:12px}

/* --- entrada de la seccion: el zoom suave del original (reveal rv-zoom) ---
   El ciclo de vida lo lleva Elementor (zoomIn en el contenedor); aqui solo se
   cambia la curva por la del original: escala 94% -> 100% en 0,7 s. */
@keyframes khzoomsuave{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
.elementor-kit-6 .kh-banda-marca.animated{
 animation:khzoomsuave .7s cubic-bezier(.22,.9,.3,1) 1 both}
/* fin kh-land */


/* --- El hero de la landing (kh-land-hero) adopta kh-hero-l (2026-08-26) ---
   La rejilla y las auroras vienen de la clase. Sus topes de ancho a >=1200px
   (60%, pensados para convivir con el arte lateral kh-hero-artL) NO aplican
   aqui: la landing no tiene arte lateral, tiene una segunda columna real con
   el formulario. Se neutralizan y se recupera el tope de 56ch solo para el
   titular secundario (.kh-land-lead). */
@media (min-width:1200px){
.elementor-kit-6 .kh-land-hero h1.elementor-heading-title,
.elementor-kit-6 .kh-land-hero p.elementor-heading-title{max-width:none}
}
.elementor-kit-6 .kh-land-hero .kh-land-lead .elementor-heading-title{max-width:56ch}
/* Los parrafos de la tarjeta del formulario tampoco heredan el 56ch base */
.elementor-kit-6 .kh-land-hero .kh-form .elementor-heading-title{max-width:none}


/* ============================================================
   DECO LANDING v2 2026-08-26            marcador: deco-landing
   Adornos por seccion de la landing 53. v2: composicion en
   zigzag (orden del operador: balancear, casi todo caia a la
   derecha) y linea de pasos mas presente. Tecnicas del kit:
   glifo content:"X"/"" (kh-faq-sec), halo blur + khderiva,
   reticula enmascarada. Sin barras invertidas (wp_unslash).
   Zigzag de acentos: somos IZQ | alcance halo-izq+glifo-der |
   pozo luz-IZQ | problema DER (llena el vacio bajo la tarjeta) |
   referencias IZQ | pasos CENTRO | faq IZQ | cierre DER (orbe).
   ============================================================ */

/* --- Quienes somos: halo teal a la IZQUIERDA, tras el titular ---
   (las cifras 2x2 ya cargan el lado derecho: la luz contrapesa) */
.elementor-kit-6 .kh-land-somos{position:relative;overflow:hidden}
.elementor-kit-6 .kh-land-somos>.e-con-inner{position:relative;z-index:1}
.elementor-kit-6 .kh-land-somos::after{
  content:"";position:absolute;width:560px;height:560px;border-radius:50%;
  top:-170px;left:-160px;pointer-events:none;z-index:0;
  background:radial-gradient(circle,rgba(10,236,197,.13) 0%,transparent 62%);
  filter:blur(70px)}

/* --- El alcance: halo azul izquierda + el "+" de lo que se suma,
   derecha. Balanceada en si misma; se conserva de la v1 --- */
.elementor-kit-6 .kh-land-incluye{position:relative;overflow:hidden}
.elementor-kit-6 .kh-land-incluye>.e-con-inner{position:relative;z-index:1}
.elementor-kit-6 .kh-land-incluye::after{
  content:"+" / "";position:absolute;top:24px;right:2vw;z-index:0;pointer-events:none;
  font-family:Rajdhani,sans-serif;font-weight:700;line-height:.75;
  font-size:clamp(130px,15vw,220px);color:#383B6B;opacity:.5}
.elementor-kit-6 .kh-land-incluye::before{
  content:"";position:absolute;width:560px;height:560px;border-radius:50%;
  top:-200px;left:-170px;pointer-events:none;z-index:0;
  background:radial-gradient(circle,rgba(0,50,246,.16) 0%,transparent 62%);
  filter:blur(80px)}

/* --- Portafolio (pozo): nodos centrados; la luz pasa ABAJO-IZQUIERDA --- */
.elementor-kit-6 .kh-land-port{position:relative;overflow:hidden}
.elementor-kit-6 .kh-land-port>.e-con-inner{position:relative;z-index:1}
.elementor-kit-6 .kh-land-port::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:radial-gradient(rgba(122,149,255,.14) 1.2px,transparent 1.7px);
  background-size:28px 28px;
  -webkit-mask-image:radial-gradient(720px 460px at 50% 0%,#000 15%,transparent 78%);
  mask-image:radial-gradient(720px 460px at 50% 0%,#000 15%,transparent 78%)}
.elementor-kit-6 .kh-land-port::before{
  content:"";position:absolute;width:640px;height:640px;border-radius:50%;
  bottom:-260px;left:-190px;pointer-events:none;z-index:0;
  background:radial-gradient(circle,rgba(10,236,197,.10) 0%,transparent 60%);
  filter:blur(90px)}

/* --- El problema: el "!" baja al vacio que queda bajo la
   tarjeta-respuesta (el bloque de mini-tarjetas ya pesa a la
   izquierda: el glifo contrapesa y llena ese hueco) --- */
.elementor-kit-6 .kh-land-dol{position:relative;overflow:hidden;overflow:clip}
.elementor-kit-6 .kh-land-dol>.e-con-inner{position:relative;z-index:1}
.elementor-kit-6 .kh-land-dol::after{
  content:"!" / "";position:absolute;bottom:28px;right:6vw;z-index:0;pointer-events:none;
  font-family:Rajdhani,sans-serif;font-weight:700;line-height:.75;
  font-size:clamp(130px,15vw,220px);
  color:var(--e-global-color-khalerta);opacity:.10}

/* --- Referencias: la cita, arriba-izquierda --- */
.elementor-kit-6 .kh-land-testi{position:relative;overflow:hidden}
.elementor-kit-6 .kh-land-testi>.e-con-inner{position:relative;z-index:1}
.elementor-kit-6 .kh-land-testi::after{
  content:"“" / "";position:absolute;top:2px;left:2vw;z-index:0;pointer-events:none;
  font-family:Rajdhani,sans-serif;font-weight:700;line-height:1;
  font-size:clamp(150px,17vw,250px);
  color:var(--e-global-color-d49ac81);opacity:.09}

/* --- Como se empieza: el camino 01→04. v2: khsecbr en vez de
   khstrong, trazos mas largos y de borde a borde de la seccion --- */
/* v3 2026-08-26: el .elementor-kit-6 era `.kh-land-pasos .e-grid`, o sea CUALQUIER
   rejilla de la seccion. Al pasar la seccion a dos columnas aparecio una
   segunda rejilla (el reparto contenido|foto) y el camino se dibujaba
   tambien sobre ella, cruzando la seccion por detras de la foto. Ahora
   apunta solo a la rejilla de las tarjetas, por su clase.
   v4 2026-08-26 (orden del operador): las DOS RECTAS pasan a ser UN
   CIRCULO que gira en el sentido de las agujas del reloj, detras de las
   tarjetas. Ya no hace falta calcular donde empieza cada fila.
     - Tamano FIJO de 440 px. Se intento sacar el lado menor de la rejilla
       con `aspect-ratio:1` + `width:100%` + `max-height:100%` y NO
       funciona: `aspect-ratio` solo gobierna el lado que esta en `auto`,
       asi que con el ancho al 100 % deriva el alto, y cuando `max-height`
       lo recorta el ancho no se recalcula. Salia una elipse de 632x467.
       El lado menor de la rejilla, medido en toda la banda de escritorio
       (unica donde existe esta decoracion), va de 467 a 512: 1440 da
       632x467, 1200 da 563x512, 1100 da 509x604 y 1025 da 469x650.
       v5.1 2026-08-26: el operador subio el circulo a 500 de diametro
       (paso primero por 440 y por 480). El lado menor de la rejilla es
       467 a 1440 y 469 a 1025, asi que a 500 el circulo ASOMA unos 16 px
       por lado en los extremos de la banda, y algo menos en el medio
       (1100 da 509, 1200 da 512). Asoma sobre el fondo de la seccion, no
       sobre otro contenido. Los radios de la mascara van con el diametro
       para conservar el anillo de 3 px: 247 a 250.
     - Centrado por el CENTRO (`left/top:50%` + `translate(-50%,-50%)`).
       NO vale `inset:0` + `margin:auto`: `inset:0` fija los cuatro lados,
       la caja se estira al ancho Y al alto del bloque y `aspect-ratio` se
       queda sin lado libre que derivar. Salia una ELIPSE de 632x467.
     - Los trazos son un `repeating-conic-gradient` (3 grados de trazo y 3
       de hueco, 60 trazos) recortado a un anillo de 3 px con mascara
       radial. Con `border:3px dashed` el guion del navegador sale
       diminuto y no se parece a los 14 px del trazo que habia; a radio
       220 estos 3 grados dan ~11,5 px de arco.
       La mascara lleva la forma EXPLICITA (`circle`) y los radios en
       PIXELES. Con `radial-gradient(farthest-side, ... calc(100% - 2px))`
       no salia un anillo: sin forma explicita el gradiente es una ELIPSE,
       y en una elipse el `%` de la parada de color se mide sobre un radio
       que cambia con el angulo, asi que el anillo salia de grosor variable
       y, cruzado con las cunas del conic, parecian RADIOS. Como el circulo
       mide 440 fijos, los pixeles se pueden escribir: 217 a 220.
     - `z-index:-1`: se ve por los huecos entre tarjetas y por los bordes,
       igual que se veian las rectas. */
.elementor-kit-6 .kh-land-pasos .kh-pasos-flujo{position:relative;z-index:0}
@media (min-width:1025px){
.elementor-kit-6 .kh-land-pasos .kh-pasos-flujo::before{
  content:"";position:absolute;left:50%;top:50%;z-index:-1;
  transform:translate(-50%,-50%);
  width:500px;height:500px;pointer-events:none;opacity:0;
  background:repeating-conic-gradient(
    var(--e-global-color-khsecbr) 0 3deg,transparent 3deg 6deg);
  -webkit-mask:radial-gradient(circle at 50% 50%,
    transparent 0 247px,#000 247px 250px,transparent 250px);
  mask:radial-gradient(circle at 50% 50%,
    transparent 0 247px,#000 247px 250px,transparent 250px)}
/* Menos movimiento: el circulo no aparece ni gira, simplemente esta. */
@media (prefers-reduced-motion:reduce){
.elementor-kit-6 .kh-land-pasos .kh-pasos-flujo::before{opacity:1}
}
}

/* --- FAQ: en la landing el "?" pasa a la IZQUIERDA (en el resto
   del sitio sigue a la derecha) --- */
.elementor-kit-6 .kh-land-faq.kh-faq-sec::after{right:auto;left:2vw}

/* Movimiento, solo si el visitante no lo tiene reducido */
@media (prefers-reduced-motion:no-preference){
.elementor-kit-6 .kh-land-somos::after{animation:khderiva 18s ease-in-out infinite alternate}
.elementor-kit-6 .kh-land-incluye::before{animation:khderiva 22s ease-in-out infinite alternate-reverse}
.elementor-kit-6 .kh-land-port::before{animation:khderiva 26s ease-in-out infinite alternate}
@keyframes khpasosgiro{
  from{transform:translate(-50%,-50%) rotate(0deg)}
  to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes khpasosentra{to{opacity:1}}
/* El circulo entra cuando la CUARTA tarjeta acaba. El retardo de las
   tarjetas no es CSS (computa 0s): Elementor escalona por JavaScript el
   momento de anadir `animated`. La ultima lo recibe a los 300 ms y corre
   0,75 s, luego acaba a los 1.050 ms. `:has(...:last-child.animated)` es
   cierto en ese instante inicial, asi que el retardo que falta es 0,75 s. */
.elementor-kit-6 .kh-land-pasos
  .kh-pasos-flujo:has(> .elementor-element:last-child.animated)::before{
  animation:khpasosentra .75s ease .75s forwards,
            khpasosgiro 30s linear .75s infinite}
}

/* Los glifos se apagan en movil, como el "?" del FAQ */
@media (max-width:767px){
.elementor-kit-6 .kh-land-incluye::after,
.elementor-kit-6 .kh-land-dol::after,
.elementor-kit-6 .kh-land-testi::after{display:none}
}


/* ============================================================
   FORMULARIO v2 2026-08-26                marcador: form-v2
   Orden del operador: nombre+telefono y empresa+equipos en
   pareja, mejor espaciado, casilla de politica de datos y el
   boton igual al verde principal del sitio.
   Va al final del kit a proposito: las reglas .kh-form de mas
   arriba usan !important y aqui se las gana por orden.
   ============================================================ */

/* El formulario reparte el aire; los campos ya no van pegados */
.kh-form .wpcf7-form{display:flex;flex-direction:column;gap:14px}

/* Pareja de campos. En movil se apilan */
.kh-form .kh-f-fila{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:600px){.kh-form .kh-f-fila{grid-template-columns:1fr}}

/* Envoltorios que no deben ocupar un hueco de la columna */
.kh-form .kh-f-oculto{display:none}
/* El captcha solo ocupa sitio si su plugin lo pinta de verdad */
.kh-form .kh-f-turnstile:not(:has(*)){display:none}

/* --- Casilla de la politica de tratamiento de datos --- */
/* CF7 pone .wpcf7-form-control en el SPAN que envuelve la casilla, no en
   el input: sin esto hereda la caja de campo (borde, fondo y relleno). */
.kh-form .wpcf7-form .kh-f-acepta .wpcf7-form-control.wpcf7-acceptance{
  width:auto!important;padding:0!important;border:0!important;
  border-radius:0!important;background:transparent!important}
.kh-form .kh-f-acepta .wpcf7-list-item{margin:0}
.kh-form .wpcf7-form .kh-f-acepta label{padding:3px 0;
  display:flex;align-items:flex-start;gap:10px;margin:0;cursor:pointer;
  font-family:Inter,sans-serif;font-size:13px;font-weight:400;line-height:1.55;
  color:var(--e-global-color-khmuted)}
.kh-form .wpcf7-form .kh-f-acepta input[type="checkbox"]{
  flex:none;width:20px;height:20px;margin:1px 0 0;cursor:pointer;
  accent-color:var(--e-global-color-d49ac81)}
.kh-form .kh-f-acepta a{
  color:var(--e-global-color-d49ac81);text-decoration:underline;
  text-underline-offset:2px;transition:color .16s ease}
.kh-form .kh-f-acepta a:hover{color:var(--e-global-color-khbtnhov)}
.kh-form .kh-f-acepta a:focus-visible{
  outline:2px solid var(--e-global-color-d49ac81);outline-offset:2px;border-radius:3px}
.kh-form .kh-f-acepta .wpcf7-not-valid-tip{margin-left:30px}

/* --- Boton: el mismo verde principal del sitio ---
   Tipografia, caja y color calcados del .elementor-button teal
   (Rajdhani 600 14 mayusculas, 12/24, radio 8, filete 1px) y el
   mismo hover/pulsacion del estandar de botones del kit. */
.kh-form .wpcf7-submit{
  margin-top:6px!important;
  padding:12px 46px 12px 24px!important;
  border:1px solid var(--e-global-color-d49ac81)!important;
  border-radius:8px!important;
  font-family:Rajdhani,sans-serif!important;
  font-weight:600!important;font-size:14px!important;line-height:1.4!important;
  text-transform:uppercase!important;letter-spacing:normal!important;
  color:var(--e-global-color-khbtntx)!important;
  background-color:var(--e-global-color-d49ac81)!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231C1E42' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:right 22px center!important;
  background-size:17px 17px!important;
  transition:background-color .16s ease,color .16s ease,border-color .16s ease,
             box-shadow .16s ease,transform .16s ease!important}
.kh-form .wpcf7-submit:hover,
.kh-form .wpcf7-submit:focus-visible{
  background-color:var(--e-global-color-khbtnhov)!important;
  border-color:var(--e-global-color-khbtnhov)!important;
  color:var(--e-global-color-khbtntx)!important;
  transform:translateY(-2px)!important;
  box-shadow:0 7px 20px var(--e-global-color-khbtnglow),
             0 0 0 3px var(--e-global-color-khbtnglow)!important;
  background-position:right 18px center!important}
.kh-form .wpcf7-submit:active{
  background-color:var(--e-global-color-khbtnact)!important;
  border-color:var(--e-global-color-khbtnact)!important;
  transform:none!important;box-shadow:none!important}

/* ============================================================
   CARRUSEL v2 2026-08-26              marcador: carrusel-ref
   Piel del widget `testimonial-carousel` (Elementor Pro) para
   que sus diapositivas se vean EXACTAMENTE como las tarjetas
   que tenia la seccion. El fondo, filete, radio y relleno los
   pone el propio widget sobre `.swiper-slide`; aqui solo va lo
   que el widget no ofrece: el icono de comilla y el color de
   flechas y puntos.
   Sustituye al bloque de la pista scroll-snap de la version
   anterior, que se retiro junto con su contenedor.
   ============================================================ */

/* Icono de comilla (marcador: kh-testi-glifo). El widget no lo trae.
   La CAJA va en ::before y el GLIFO en ::after por mascara: si se pone
   todo en un solo pseudo, la mascara recorta tambien el fondo y el icono
   sale del color de la caja y sin caja. Los dos colores, por token. */
.elementor-kit-6 .kh-land-testi-car .elementor-testimonial{
  position:relative;padding-top:68px}
/* Los puntos respiran con el relleno mayor de la tarjeta */
/* 4 clases a proposito: el css del widget se encola despues del kit y a
   igual especificidad (3) ganaba su padding-bottom de 40. */
.elementor-kit-6 .elementor-widget.kh-land-testi-car .elementor-main-swiper{padding-bottom:52px}
.elementor-kit-6 .kh-land-testi-car .elementor-testimonial::before{
  content:"";position:absolute;top:0;left:0;width:48px;height:48px;
  border-radius:12px;background-color:var(--e-global-color-khchipbg)}
.elementor-kit-6 .kh-land-testi-car .elementor-testimonial::after{
  content:"";position:absolute;top:13px;left:13px;width:22px;height:22px;
  background-color:var(--e-global-color-d49ac81);
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 5.5C6.9 6.2 4 9.4 4 13.5V19h7v-6H7.6c.2-2.3 1.7-4 3.9-4.6L11 5.5Zm9.4 0c-4.1.7-7 3.9-7 8V19h7v-6h-3.4c.2-2.3 1.7-4 3.9-4.6l-.5-2.9Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 5.5C6.9 6.2 4 9.4 4 13.5V19h7v-6H7.6c.2-2.3 1.7-4 3.9-4.6L11 5.5Zm9.4 0c-4.1.7-7 3.9-7 8V19h7v-6h-3.4c.2-2.3 1.7-4 3.9-4.6l-.5-2.9Z'/%3E%3C/svg%3E");
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-size:22px 22px;mask-size:22px 22px}

/* Las diapositivas igualan altura: el filete no baila entre tarjetas */
.elementor-kit-6 .kh-land-testi-car .swiper-slide{height:auto}

/* Flechas y puntos con el foco visible del sitio */
.elementor-kit-6 .kh-land-testi-car .elementor-swiper-button:focus-visible{
  outline:2px solid var(--e-global-color-d49ac81);outline-offset:3px;border-radius:6px}
.elementor-kit-6 .kh-land-testi-car .swiper-pagination-bullet{
  transition:background-color .16s ease,transform .16s ease}
.elementor-kit-6 .kh-land-testi-car .swiper-pagination-bullet-active{transform:scale(1.25)}
/* CARRUSEL v2.1 2026-08-26 (orden del operador): SIN FLECHAS EN MOVIL.
   Las flechas van `position:absolute` a los lados del swiper. Con una sola
   diapositiva por vista la tarjeta ocupa casi todo el ancho y las flechas
   caen DENTRO de ella. Medido: a 390 la anterior ocupa x 26-46 sobre una
   tarjeta que empieza en 25, y la siguiente x 344-364 sobre una que acaba en
   365 (las dos, enteras dentro); a 767, 12 px de solape por la izquierda y
   11 por la derecha.
   Se retiran del todo con `display:none`, que las saca tambien del arbol de
   accesibilidad: en movil la navegacion queda en el gesto de deslizar, los
   tres puntos (que siguen siendo pulsables) y el autoplay cada 5 s.
   A 1024 el solape es de 5 px y solo en la flecha izquierda: NO se toca,
   queda como decision pendiente del operador. */
@media (max-width:767px){
/* CARRUSEL v2.2: cuatro clases. Con tres, `e-swiper.min.css` empataba en
   especificidad (0,3,0) con `.elementor-element .swiper ~ .elementor-swiper-button`
   y ganaba por ir despues en la cascada (leccion 68). */
.elementor-kit-6 .elementor-widget.kh-land-testi-car .elementor-swiper-button{display:none}
/* CARRUSEL v2.3: sin flechas, el swiper no necesita ceder el 5 % que
   Elementor le quita para hacerles sitio. Al 95 % el ancho salia
   FRACCIONARIO y la diapositiva, que Swiper calcula en enteros, lo
   desbordaba por decimas: el overflow:hidden se comia el filete de 1 px de
   un lado. Al 100 % el ancho vuelve a ser entero y se recuperan 18-19 px.
   Cuatro clases por lo mismo que en v2.2: la regla de Elementor va despues. */
.elementor-kit-6 .elementor-widget.kh-land-testi-car .elementor-main-swiper{width:100%}
}


/* ============================================================
   FORMULARIO v3 2026-08-26                marcador: form-v3
   Orden del operador: casilla de verificacion personalizada,
   bordes de campo mas claros y hover con el borde en verde
   corporativo.
   Va al final del kit a proposito: las reglas `.kh-form` de mas
   arriba usan !important y aqui se las gana por orden.
   ============================================================ */

/* --- Bordes de campo: de khelev a khsecbr ---
   khelev #2A2C55 sobre el fondo del campo (khbg #121430) da 1,36:1 y no se
   veia. khsecbr #6C6F9E da 3,77:1 contra el campo y 3,35:1 contra el panel:
   es el token mas contenido que CUMPLE el minimo 3:1 que WCAG 2.2 (1.4.11)
   exige al contorno de un control. khstrong seguiria suspendiendo (1,72). */
.kh-form .wpcf7-form .wpcf7-form-control:not(.wpcf7-submit):not([type="hidden"]):not(.wpcf7-not-valid){
  border-color:var(--e-global-color-khsecbr)!important}

/* --- Hover: el borde pasa al verde corporativo ---
   Se declara ANTES que el foco para que, al usar el teclado, el foco (que
   ademas trae el halo) mande sobre el hover. */
/* FORMULARIO v3.1: fuera los campos en error. Con `.wpcf7-not-valid` el
   borde debe seguir siendo el neutro; ponerlo verde al pasar el raton
   dice "correcto" justo donde hay un fallo. */
.kh-form .wpcf7-form .wpcf7-form-control:not(.wpcf7-submit):not([type="hidden"]):not(.wpcf7-not-valid):hover{
  border-color:var(--e-global-color-d49ac81)!important}
.kh-form .wpcf7-form .wpcf7-form-control:not(.wpcf7-submit):not([type="hidden"]):focus{
  border-color:var(--e-global-color-d49ac81)!important;
  box-shadow:0 0 0 4px var(--e-global-color-khbtnglow)!important}

/* --- Casilla de verificacion, dibujada por nosotros ---
   Antes era la casilla nativa del navegador con `accent-color`: sin marcar se
   pinta como un cuadro BLANCO del sistema, que sobre el panel oscuro cantaba.
   Con `appearance:none` la caja pasa a ser nuestra y usa los tokens: filete
   khsecbr sobre khbg, y al marcarla se llena de verde corporativo con el tick
   en khbtntx.
   El color del tick va horneado en el data-URI porque dentro de un data-URI
   no se puede usar `var()`; es la misma convencion que ya siguen la flecha del
   boton de envio y el chevron del select en este kit. */
.kh-form .wpcf7-form .kh-f-acepta input[type="checkbox"]{
  appearance:none;-webkit-appearance:none;
  flex:none;width:20px;height:20px;margin:1px 0 0;cursor:pointer;
  border:1.5px solid var(--e-global-color-khsecbr);
  border-radius:6px;
  background-color:var(--e-global-color-khbg);
  background-repeat:no-repeat;background-position:center;background-size:12px 12px;
  transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease}
/* Basta con pasar por la fila entera: la etiqueta ya es el area pulsable */
.kh-form .wpcf7-form .kh-f-acepta label:hover input[type="checkbox"],
.kh-form .wpcf7-form .kh-f-acepta input[type="checkbox"]:hover{
  border-color:var(--e-global-color-d49ac81)}
.kh-form .wpcf7-form .kh-f-acepta input[type="checkbox"]:focus-visible{
  outline:none;
  border-color:var(--e-global-color-d49ac81);
  box-shadow:0 0 0 4px var(--e-global-color-khbtnglow)}
.kh-form .wpcf7-form .kh-f-acepta input[type="checkbox"]:checked{
  background-color:var(--e-global-color-d49ac81);
  border-color:var(--e-global-color-d49ac81);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231C1E42' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}

/* --- FORMULARIO v3.2 2026-08-26 ---
   (a) Cursor del boton deshabilitado: BLOQUEADO, no "cargando". El boton esta
       deshabilitado desde que carga la pagina hasta que se marca la casilla de
       consentimiento, con `submitting` en falso: no hay nada procesandose.
       `progress` se reserva para el envio de verdad, aqui debajo.
   (b) La regla de bordes de v3 se acota con `:not(.wpcf7-not-valid)` para que
       el hover verde no alcance a un campo en error. OJO: al medirlo se vio
       que el rojo de `.kh-form .wpcf7-not-valid` NUNCA se aplicaba — esa regla
       (0,2,0) pierde contra la regla base de campo (0,5,0), las dos con
       !important —, asi que no fue v3 quien lo rompio. Se remata en v3.3. */
/* (c) ORDEN DEL OPERADOR: deshabilitado = INERTE, sin ningun efecto, para que
       al usuario le quede claro que no se puede pulsar. Un control deshabilitado
       SIGUE casando `:hover` en el navegador, asi que sin esto el boton seguia
       levantandose 2 px, encendiendo el halo, cambiando al verde de hover y
       moviendo la flecha. Se anulan los cuatro efectos y la transicion, y se
       fijan color y posicion de la flecha a los de reposo. El atenuado (opacidad)
       se conserva: ESE es el aviso de inactivo. */
.kh-form .wpcf7-submit:disabled,
.kh-form .wpcf7-submit:disabled:hover,
.kh-form .wpcf7-submit:disabled:focus,
.kh-form .wpcf7-submit:disabled:focus-visible,
.kh-form .wpcf7-submit:disabled:active{
  cursor:not-allowed!important;
  transform:none!important;
  box-shadow:none!important;
  transition:none!important;
  background-color:var(--e-global-color-d49ac81)!important;
  border-color:var(--e-global-color-d49ac81)!important;
  color:var(--e-global-color-khbtntx)!important;
  background-position:right 22px center,0 0!important}
/* Mientras se envia de verdad si procede el cursor de "procesando" */
.kh-form .wpcf7-form.submitting .wpcf7-submit:disabled{cursor:progress!important}

/* --- FORMULARIO v3.3 2026-08-26: el campo en error, en rojo de verdad ---
   `.kh-form .wpcf7-not-valid{border-color:khalerta!important}` existe en el kit
   desde el principio pero nunca se aplico: es (0,2,0) y pierde contra la regla
   base de campo, que es (0,5,0) y tambien lleva !important. El campo en error
   se venia viendo con el borde normal.
   Con los bordes aclarados en v3 eso paso de inocuo a al reves: los campos
   correctos son khsecbr #6C6F9E y el de error se quedaba en khelev #2A2C55, es
   decir MAS APAGADO que uno correcto. Aqui se le da la especificidad que le
   faltaba. El color no se inventa: es el que el kit ya declaraba.
   El aviso en rojo bajo el campo sigue siendo el mensaje real; el borde solo
   acompana, que el color nunca debe ser el unico indicador (WCAG 1.4.1). */
.kh-form .wpcf7-form .wpcf7-form-control:not(.wpcf7-submit):not([type="hidden"]).wpcf7-not-valid{
  border-color:var(--e-global-color-khalerta)!important}

/* ============================================================
   BANDA DE CIERRE DEL SITIO v2 2026-08-26   marcador: banda-sitio
   Orden del operador: la banda de cierre del resto del sitio pasa
   a llevar la piel de la de la landing, conservando cada pagina
   su propio contenido.
   Afecta a las 9 paginas con `.kh-banda`: inicio, nosotros y las
   siete lineas de servicio.
   `:not(.kh-banda-marca)` excluye a la landing, que ya la trae por
   su clase propia; sin eso le saldria una marca de agua duplicada.
   Las propiedades de caja (radio, relleno, filete y sombra) NO van
   aqui: son ajustes nativos de cada contenedor.
   ============================================================ */

/* Degradado de marca + marca de agua de circuito abajo a la izquierda.
   La marca de agua va como capa de fondo, no como elemento hijo, para no
   tener que anadir un widget en cada pagina. El blanco al 9 % va horneado en
   el data-URI porque dentro de uno no se puede usar `var()`. */
.elementor-kit-6 .kh-banda:not(.kh-banda-marca){
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 220'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.09' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M10 200h70v-50h60'/%3E%3Cpath d='M10 160h40v-90h70'/%3E%3Cpath d='M60 200v-20'/%3E%3Cpath d='M140 150v-60h50'/%3E%3Cpath d='M120 70h90v40h70'/%3E%3Cpath d='M210 110v60h80'/%3E%3Cpath d='M250 70h50'/%3E%3C/g%3E%3Cg fill='%23ffffff' fill-opacity='.09' stroke='none'%3E%3Ccircle cx='140' cy='150' r='5'/%3E%3Ccircle cx='120' cy='70' r='5'/%3E%3Ccircle cx='190' cy='90' r='5'/%3E%3Ccircle cx='210' cy='110' r='5'/%3E%3Ccircle cx='290' cy='170' r='5'/%3E%3Ccircle cx='300' cy='70' r='5'/%3E%3Ccircle cx='80' cy='200' r='5'/%3E%3Ccircle cx='50' cy='160' r='5'/%3E%3C/g%3E%3C/svg%3E"),
   linear-gradient(135deg,var(--e-global-color-khbrand) 0%,#1330B8 45%,var(--e-global-color-khsurface) 100%);
 background-repeat:no-repeat,no-repeat;
 background-position:-28px calc(100% + 22px),0 0;
 background-size:310px 213px,auto}

/* --- BANDA DE CIERRE DEL SITIO v3 2026-08-26: el foco, replicado ---
   Copia literal del foco de la landing (bloque `kh-banda-marca`), no una
   version propia: un elemento hijo con `opacity` de 0 a 1, que aparece y
   desaparece EN EL SITIO. La v2.1 lo montaba como capa de fondo que crecia
   con `background-size`, y como un fondo se posiciona por su esquina, el
   foco entraba y salia deslizandose desde arriba a la izquierda.
   El hijo `.kh-banda-spot` se anade a cada banda por EMCP, con los mismos
   ajustes que el de la landing. */
.elementor-kit-6 .kh-banda:not(.kh-banda-marca)>.elementor-element:not(.kh-banda-spot){
 position:relative;z-index:1}
.elementor-kit-6 .kh-banda:not(.kh-banda-marca)>.kh-banda-spot{
 position:absolute;inset:0;z-index:0;margin:0;
 pointer-events:none;opacity:0;transition:opacity .5s ease;
 background:radial-gradient(340px 340px at var(--mx,50%) var(--my,40%),rgba(10,236,197,.28),transparent 65%)}
.elementor-kit-6 .kh-banda:not(.kh-banda-marca):hover>.kh-banda-spot{opacity:1}

/* Rejilla enmascarada que se desvanece desde arriba. Sustituye al destello en
   bucle del estandar `.kh-banda`, que comparte este mismo `::before`: hay que
   anular su ancho, su desenfoque y su animacion. */
.elementor-kit-6 .kh-banda:not(.kh-banda-marca)::before{
 inset:0;width:auto;height:auto;filter:none;animation:none;
 background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);
 background-size:42px 42px;
 -webkit-mask-image:radial-gradient(640px 420px at 50% 0%,#000 20%,transparent 75%);
 mask-image:radial-gradient(640px 420px at 50% 0%,#000 20%,transparent 75%)}

/* Orbe teal difuminado que deriva despacio, abajo a la derecha */
.elementor-kit-6 .kh-banda:not(.kh-banda-marca)::after{
 content:"";position:absolute;width:380px;height:380px;border-radius:50%;
 background:rgba(10,236,197,.28);filter:blur(90px);bottom:-190px;right:-110px;pointer-events:none}
@media (prefers-reduced-motion:no-preference){
.elementor-kit-6 .kh-banda:not(.kh-banda-marca)::after{animation:khderiva 14s ease-in-out infinite alternate}}
/* ============================================================
   FORMULARIO v4: la lista desplegable «Servicio de interes»
   (2026-08-27, orden del operador para la pagina de contacto)

   El bloque CF7 de mas arriba ya daba al select la caja de campo y un
   chevron. Aqui se completa lo que hacia falta para que la lista sea del
   sitio y no del sistema operativo:
     - la LISTA ABIERTA (`option`) heredaba los colores del sistema y sobre
       el tema oscuro salia blanca;
     - el estado MARCADOR, mientras no se ha elegido servicio;
     - el chevron, que ahora acompana al borde en hover y en foco.
   El color del chevron va horneado en el data-URI porque ahi dentro no
   funciona `var()`: misma convencion que la flecha del boton y el tick de
   la casilla de aceptacion.
   ============================================================ */
.kh-form .wpcf7-form select.wpcf7-form-control{cursor:pointer}

/* La lista abierta. Windows, Linux y Android la respetan; el popup nativo
   de Safari en macOS la ignora y ahi se vera el estilo del sistema. */
.kh-form .wpcf7-form select.wpcf7-form-control option{
  background-color:var(--e-global-color-khsurface);
  color:var(--e-global-color-secondary)}
.kh-form .wpcf7-form select.wpcf7-form-control option[value=""]{
  color:var(--e-global-color-khmuted)}

/* Estado marcador: aun no se ha elegido servicio. CF7 no pone el atributo
   `required` (solo `aria-required`), asi que `:required:invalid` no vale. */
.kh-form .wpcf7-form select.wpcf7-form-control:has(option[value=""]:checked){
  color:var(--e-global-color-khmuted)!important}

/* El chevron sigue al borde: verde corporativo en hover y en foco.
   Los `:not()` NO son decorativos: suben la regla a (0,5,1) para ganarle
   a la regla base de campo, que puntua (0,5,0) y tambien usa !important.
   Sin ellos el chevron no se pinta. Ver la cabecera de kit37.php. */
.kh-form .wpcf7-form select.wpcf7-form-control:not(.wpcf7-submit):hover,
.kh-form .wpcf7-form select.wpcf7-form-control:not(.wpcf7-submit):focus{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%230AECC5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")!important}

/* Envoltorio propio del campo, para tener donde agarrarse mas adelante. */
.kh-form .kh-f-select{display:block}


/* ============================================================
   BLOQUE VIP-ART 2026-09-01 (orden del operador)     marcador: kh-vip-art
   Arte del Soporte TI VIP en /soporte-ti/ (662): la cola estandar, la via VIP
   que adelanta, y el tiempo del SLA contra su mitad.
   Misma receta que los artes de hero (.kh-hero-artL): el SVG vive en un widget
   html y aqui viven color y movimiento. Diferencia deliberada: aqui NO hay un
   solo hex literal, todo va por token del kit.
   El movimiento se declara solo bajo prefers-reduced-motion:no-preference,
   como el resto del bloque de movimiento del kit.
   ============================================================ */
.kh-vip-art svg{display:block;width:100%;height:auto;overflow:visible}
.kh-vip-art .kh-tz{stroke:var(--e-global-color-khstrong);stroke-width:1.4;fill:none}
.kh-vip-art .kh-ac{stroke:var(--e-global-color-d49ac81);stroke-width:1.8;fill:none}
.kh-vip-art .kh-rel{fill:var(--e-global-color-khsurface)}
.kh-vip-art .kh-pt{fill:var(--e-global-color-d49ac81);stroke:none}
.kh-vip-art .kh-guia{stroke-dasharray:3 5;stroke-width:1.2}
.kh-vip-art .kh-flujo{stroke-dasharray:7 9}
.kh-vip-art text{fill:var(--e-global-color-khmuted);font-family:"IBM Plex Mono","Courier New",monospace;font-size:11px;letter-spacing:.06em}
/* La onda de llegada solo existe mientras se anima: en reposo es invisible. */
.kh-vip-art .kh-onda{opacity:0;transform-box:fill-box;transform-origin:center}
.kh-vip-art .kh-mitad{transform-box:fill-box;transform-origin:left center}

@media (prefers-reduced-motion:no-preference){
  /* Un solo reloj de 6 s para las tres piezas: el ticket adelanta, la barra
     llega a la mitad y la mesa acusa recibo, en ese orden. */
  .kh-vip-art .kh-flujo{animation:khlflujo 1.5s linear infinite}
  .kh-vip-art .kh-adel{animation:khvipadel 6s cubic-bezier(.16,.8,.3,1) infinite}
  .kh-vip-art .kh-mitad{animation:khvipmitad 6s cubic-bezier(.16,.8,.3,1) infinite}
  .kh-vip-art .kh-onda{animation:khviponda 6s ease-out infinite}
}
@keyframes khvipadel{
  0%{transform:translateX(0);opacity:0}
  6%{opacity:1}
  42%,88%{transform:translateX(216px);opacity:1}
  100%{transform:translateX(216px);opacity:0}
}
@keyframes khvipmitad{
  0%{transform:scaleX(0);opacity:0}
  6%{opacity:1}
  42%,88%{transform:scaleX(1);opacity:1}
  100%{transform:scaleX(1);opacity:0}
}
@keyframes khviponda{
  0%,38%{transform:scale(1);opacity:0}
  46%{opacity:.65}
  70%,100%{transform:scale(1.45);opacity:0}
}


/* --- CTA del Soporte TI VIP: efecto constante (2026-09-01, orden del operador) ---
   Marcador: kh-vip-cta. Misma receta que el boton de WhatsApp (.kh-wa con
   khondaverde): una onda de atencion en bucle que se DETIENE al pasar el cursor
   o al enfocar, para no competir con el halo del hover del estandar.
   Dos diferencias deliberadas con .kh-wa: el color sale del token del propio
   boton (khbtnglow) en vez de un rgba literal, y el ciclo es algo mas lento. */
@keyframes khvipatencion{
  0%  {box-shadow:0 8px 22px var(--e-global-color-khbtnglow),0 0 0 0 var(--e-global-color-khbtnglow)}
  70% {box-shadow:0 8px 22px var(--e-global-color-khbtnglow),0 0 0 14px transparent}
  100%{box-shadow:0 8px 22px var(--e-global-color-khbtnglow),0 0 0 0 transparent}
}
@media (prefers-reduced-motion:no-preference){
  .elementor-kit-6 .elementor-widget-button.kh-vip-cta .elementor-button{animation:khvipatencion 2.9s ease-out infinite}
}
.elementor-kit-6 .elementor-widget-button.kh-vip-cta .elementor-button:hover,
.elementor-kit-6 .elementor-widget-button.kh-vip-cta .elementor-button:focus{animation:none}


/* --- Seccion VIP: marca de agua en movimiento y compactado (2026-09-01, orden del operador) ---
   Marcador: kh-vip-sec.
   La marca de agua sigue la receta que ya usan .kh-faq-sec, .kh-land-incluye,
   .kh-land-dol y .kh-land-testi: un glifo Rajdhani 700 puesto por ::after, con
   `content: "X" / ""` (el alt vacio lo oculta a los lectores de pantalla).
   Dos diferencias: el color va por token en vez de hex literal, y aqui la marca
   AVANZA. El glifo es un chevron doble porque lo que hace el servicio es
   justamente eso: adelantar en la cola. */
.kh-vip-sec{position:relative}
/* El contenido por encima de la marca, misma receta que .kh-hero-l. Sin esto el
   ::after posicionado pinta por encima del texto. */
.kh-vip-sec>.e-con-inner{position:relative;z-index:1}
.kh-vip-sec::after{
  content:"»" / "";
  position:absolute;right:2vw;bottom:2px;z-index:0;pointer-events:none;
  font-family:Rajdhani,sans-serif;font-weight:700;line-height:.75;letter-spacing:-.02em;
  font-size:clamp(120px,13vw,190px);
  color:var(--e-global-color-khstrong);opacity:.42;
}
/* Menos aire entre las piezas de la columna de texto. Ojo: el valor efectivo NO
   sale de --gap sino de --row-gap, que la hoja base de Elementor fija en
   .e-con como var(--widgets-spacing-row,20px). Aqui se suma cinco veces. */
.kh-vip-col{--row-gap:12px}

@media (prefers-reduced-motion:no-preference){
  .kh-vip-sec::after{animation:khvipmarca 9s ease-in-out infinite}
}
/* Entra desvanecida, avanza y se va: sin salto al reiniciar el bucle. */
@keyframes khvipmarca{
  0%  {transform:translateX(-18px);opacity:0}
  22% {opacity:.42}
  70% {opacity:.42}
  100%{transform:translateX(30px);opacity:0}
}


/* ============================================================
   LICENCIAMIENTO OFICIAL (pagina 555) — marcador: kh-lic
   Diagnostico medido el 2026-09-01: el hueco de 794x314 px a la
   derecha del titular NO lo producia el contenido, sino que
   86edcc3 era flex row con flex-wrap:wrap y su segundo hijo
   (a3ab1aa) estaba en _flex_size:grow SIN width. "grow" implica
   flex-shrink:0, asi que ese hijo no podia ceder y la fila se
   partia por construccion. La seccion pasa a columna: no hay
   linea que repartir, luego no puede quedar lateral muerto.
   Las dos columnas al 50 % (7bac859 / 2f49836, que ademas
   llevaban align-items:center y encogian las ocho marcas) se
   disuelven y las marcas cuelgan directas como celdas.
   Movil primero. El tramo de escritorio arranca en 1025px porque
   por debajo manda el propio @media de Elementor (max-1024 y
   min-768). Ni un hex literal: aqui solo hay maquetacion.
   ============================================================ */

/* Rejilla de marcas: movil, una columna */
.elementor-555 .elementor-element.kh-lic-rej{display:grid;grid-template-columns:minmax(0,1fr);--gap:16px;--row-gap:16px;--column-gap:16px;gap:16px;align-items:stretch}
/* Defensivo: si alguien devuelve el contenedor a "boxed", sus hijos colgarian
   de .e-con-inner y la rejilla se aplicaria al envoltorio. */
.elementor-555 .elementor-element.kh-lic-rej>.e-con-inner{display:contents}
/* Sin esto, el min-content de cada celda vuelve a mandar sobre la rejilla. */
.elementor-555 .elementor-element.kh-lic-rej>.e-con{min-width:0}

/* Tablet: dos columnas */
@media (min-width:768px) and (max-width:1024px){
.elementor-555 .elementor-element.kh-lic-rej{grid-template-columns:repeat(2,minmax(0,1fr));--gap:20px 24px;--row-gap:20px;--column-gap:24px;gap:20px 24px}
}

/* Escritorio: cuatro columnas, dos filas exactas de cuatro marcas */
@media (min-width:1025px){
.elementor-555 .elementor-element.kh-lic-rej{grid-template-columns:repeat(4,minmax(0,1fr));--gap:24px;--row-gap:24px;--column-gap:24px;gap:24px}
}

/* Cabecera de la seccion: sus dos columnas ya llevan ancho propio, asi que
   la canaleta horizontal sobra; la vertical es la que separa al apilarse. */
.elementor-555 .elementor-element.kh-lic-cab{--gap:24px 0px;--row-gap:24px;--column-gap:0px}
.elementor-555 .elementor-element.kh-lic-cab>.e-con{min-width:0}

/* Que el titular no deje una palabra suelta si llega a caer en dos lineas */
.elementor-555 .elementor-element-8bb2283 .elementor-heading-title{text-wrap:balance}

/* ==========================================================================
   BANNER DE CONSENTIMIENTO (Complianz)
   La paleta la pone el propio plugin desde su configuracion, con los colores
   del kit. Aqui solo lo que Complianz no sabe expresar.

   Nota de cascada: la hoja de Complianz se sirve DESPUES de esta (es la hoja
   26 de 27; el kit es la 8) y sus reglas de boton son (0,3,0). Empatar no
   basta: las de aqui suben a (0,4,0) nombrando la clase de cada boton, sin
   necesidad de !important.
   ========================================================================== */

/* --- La ventana ----------------------------------------------------------
   Se levanta como el panel flotante del sitio (.wa-widget): superficie
   khsurface, borde de 1 px y sombra larga. El COLOR del borde lo pone el
   plugin, y es khsecbr: khelev daba 1,21:1 contra el propio banner y 1,36:1
   contra la pagina --no se veia--; khstrong, 1,53 y 1,72; khsecbr da 3,35 y
   3,77, que es el minimo de 3:1 que WCAG 2.2 (1.4.11) exige a un contorno.
   La sombra del plugin queda apagada (use_box_shadow = 0) y se define aqui,
   con el mismo valor del panel del minichat: las dos ventanas flotantes del
   sitio se despegan del fondo igual. */
.cmplz-cookiebanner.cmplz-show{box-shadow:0 24px 64px rgba(0,0,0,.45)}

/* --- Los botones: el estandar unico del sitio ----------------------------
   Medido sobre .elementor-button del kit: 14 px, interlineado 14, peso 600,
   relleno 12/24 y sin alto minimo -> 40 px de alto. Complianz servia 15 px,
   peso 500, interlineado 20 y relleno 10 -> 45 px. El radio (8 px) y los
   colores ya venian bien desde la configuracion del plugin. */
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences{
  --khglow1:var(--e-global-color-khsecglow);
  --khglow2:var(--e-global-color-khsecglow);
  min-height:0;
  padding:12px 24px;
  font-size:14px;
  line-height:14px;
  font-weight:600;
  transition:background-color .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept{
  --khglow1:var(--e-global-color-khbtnglow);
  --khglow2:var(--e-global-color-khbtnglow);
}
/* Hover del sitio: aclara el fondo, eleva 2 px y enciende el halo doble. */
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept:hover,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept:focus,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny:hover,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny:focus,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences:hover,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences:focus,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences:hover,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences:focus{
  transform:translateY(-2px);
  box-shadow:0 7px 20px var(--khglow1),0 0 0 3px var(--khglow2);
}
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept:hover,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept:focus{
  background-color:var(--e-global-color-khbtnhov);
  border-color:var(--e-global-color-khbtnhov);
  color:var(--e-global-color-khbtntx);
}
/* Secundario: el borde NO cambia en hover. Medido en .kh-btn2 del sitio, que
   se queda en khsecbr y solo mueve fondo y texto. */
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny:hover,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny:focus,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences:hover,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences:focus,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences:hover,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences:focus{
  background-color:var(--e-global-color-khsecbg);
  color:var(--e-global-color-khsectxh);
}
/* Pulsacion: vuelve al plano y deja solo el anillo, como en el sitio. */
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept:active,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny:active,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences:active,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences:active{
  transform:translateY(0);
  box-shadow:0 0 0 3px var(--khglow2);
}
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept:active{
  background-color:var(--e-global-color-khbtnact);
  border-color:var(--e-global-color-khbtnact);
}
/* Movimiento reducido: se anula la elevacion, no el resto del efecto. */
@media (prefers-reduced-motion:reduce){
  .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept,
  .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny,
  .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences,
  .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences{transition:none}
  .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept:hover,
  .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny:hover,
  .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences:hover,
  .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences:hover{transform:none}
}

/* --- Foco de teclado -----------------------------------------------------
   La hoja generada por Complianz trae un azul fijo para el foco del
   interruptor de categoria que no es del sistema de diseno. */
.cmplz-cookiebanner .cmplz-consent-checkbox:focus + .cmplz-label:before,
.cmplz-cookiebanner .cmplz-consent-checkbox:focus-visible + .cmplz-label:before{
  box-shadow:0 0 0 2px var(--e-global-color-secondary)!important;
}
.cmplz-cookiebanner .cmplz-btn:focus-visible,
.cmplz-cookiebanner .cmplz-category-toggle:focus-visible,
#cmplz-manage-consent .cmplz-manage-consent:focus-visible{
  outline:2px solid var(--e-global-color-secondary);
  outline-offset:3px;
}

/* --- Boton flotante de gestion de consentimiento -------------------------
   Orden del operador (2026-09-03): reducir la pestana "Gestionar
   consentimiento", llevarla a la esquina inferior izquierda y sustituir el
   rotulo por el icono de cookies. En todos los anchos: ni una media query de
   ancho.

   Sustituye al bloque anterior ("Pestana permanente de gestion"), que estaba
   escrito a (1,1,0) --la misma especificidad que Complianz-- y por eso solo
   llegaba a aplicarse en lo que el plugin no declara. Comprobado con
   CSS.getMatchedStylesForNode, no leyendo hojas: de aquel bloque unicamente
   ganaban `font-weight` y la sombra; el fondo y el borde los ponia el plugin.

   Tres trampas de este control, las tres medidas:

   1. Especificidad. La regla del plugin va a (1,1,0) y su hoja se sirve
      DESPUES del kit, asi que en empate gana el plugin. Aqui se sube a
      (1,2,1) con `button.cmplz-btn`, dos cosas que el boton ya lleva. No se
      usa `.manage-consent-1`, que depende del id del banner.
   2. La posicion NO la fija `bottom`: la fija una ANIMACION con `forwards`
      (`animation:mc_slideIn 0s forwards`, cuyo fotograma final es `bottom:0`),
      y una animacion gana a una declaracion normal. Sin `animation:none` el
      `bottom` de aqui no se aplicaria. En :hover y :focus el plugin la
      reactiva con `mc_slideIn 0.5s`, por eso se anula tambien alli.
   3. El rotulo ES el nombre accesible del boton, y es un nodo de texto suelto:
      no hay envoltorio que ocultar. Con `display:none` o `visibility:hidden`
      el boton se quedaria mudo para un lector de pantalla. Se desplaza con
      `text-indent` y se recorta con `overflow`, que lo deja fuera de la vista
      pero dentro del arbol de accesibilidad: se sigue anunciando como
      "Gestionar consentimiento". Se le pone `text-transform:none` porque la
      tipografia `accent` del kit lo pasaba a mayusculas y ese rotulo ya no se
      ve: la unica consecuencia era que las ayudas tecnicas lo leian gritado.

   El icono es `fas fa-cookie-bite`, del mismo mapa de SVG en linea que
   Elementor usa para el resto de iconos del sitio. Va como MASCARA y no como
   imagen de fondo, para que tome el color con `currentColor` y no quede
   ningun hex suelto (regla 9). El data URI no lleva ni una barra invertida,
   que el custom_css del kit se las come.

   Dos salvaguardas, ambas anadidas tras medir que hacian falta:

   - `@supports`: sin mascaras, el `::before` se pintaria como un DISCO MACIZO
     del color del texto, tapando el boton entero. Envuelto, donde no haya
     mascaras simplemente no se pinta.
   - `@media (forced-colors: active)`: en alto contraste el navegador fuerza
     `background-color` e ignora `currentColor`, con lo que icono y fondo
     salian del MISMO color y el boton quedaba como un circulo vacio, sin
     icono y sin rotulo. `forced-color-adjust:none` + `CanvasText` devuelven el
     icono. Se usan palabras clave del sistema, no hex.

   Geometria: simetrica al flotante de WhatsApp, que esta a right/bottom 24px
   y mide 60 px. Este mide 44 px: mas discreto que el CTA, y muy por encima
   del minimo de 24x24 px que pide la WCAG 2.5.8. Contrastes medidos: icono
   9,42:1 en reposo y 12,44:1 en hover; borde 3,29:1 sobre khsurface y 3,77:1
   sobre el fondo de pagina, los dos unicos fondos que hay detras.

   El anillo de foco NO se define aqui: lo pone la regla global del kit
   `.elementor-kit-6 button:focus-visible`, que lleva `!important` y pinta
   khsectx (#7A95FF) con 3 px de separacion. Ojo: la regla
   `#cmplz-manage-consent .cmplz-manage-consent:focus-visible` que hay mas
   arriba en este mismo fichero NUNCA gana por culpa de ese `!important`
   --esta muerta, y no solo para este boton--. `overflow:hidden` no recorta un
   outline, asi que el anillo se ve entero. */
#cmplz-manage-consent button.cmplz-btn.cmplz-manage-consent{
  left:24px;
  right:auto;
  bottom:24px;
  width:44px;
  min-width:0;
  height:44px;
  padding:0;
  border-radius:999px;
  border:1px solid var(--e-global-color-khsecbr);
  background-color:var(--e-global-color-khsurface);
  color:var(--e-global-color-khbody);
  box-shadow:0 10px 24px rgba(0,0,0,.45);
  animation:none;
  text-indent:-9999px;
  text-transform:none;
  overflow:hidden;
  white-space:nowrap;
  transition:background-color .2s ease,color .2s ease;
}
@supports ((-webkit-mask-image:url(a.svg)) or (mask-image:url(a.svg))){
  #cmplz-manage-consent button.cmplz-btn.cmplz-manage-consent::before{
    content:"";
    position:absolute;
    inset:0;
    text-indent:0;
    background-color:currentColor;
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3Cpath%20d=%22M510.52%20255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17%200-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72%2012.82l-69.13%2035.22a132.221%20132.221%200%200%200-57.79%2057.81l-35.1%2068.88a132.645%20132.645%200%200%200-12.82%2080.95l12.08%2076.27a132.521%20132.521%200%200%200%2037.16%2072.96l54.77%2054.76a132.036%20132.036%200%200%200%2072.71%2037.06l76.71%2012.15c27.51%204.36%2055.7-.11%2080.53-12.76l69.13-35.21a132.273%20132.273%200%200%200%2057.79-57.81l35.1-68.88c12.56-24.64%2017.01-52.58%2012.91-79.91zM176%20368c-17.67%200-32-14.33-32-32s14.33-32%2032-32%2032%2014.33%2032%2032-14.33%2032-32%2032zm32-160c-17.67%200-32-14.33-32-32s14.33-32%2032-32%2032%2014.33%2032%2032-14.33%2032-32%2032zm160%20128c-17.67%200-32-14.33-32-32s14.33-32%2032-32%2032%2014.33%2032%2032-14.33%2032-32%2032z%22/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20512%20512%22%3E%3Cpath%20d=%22M510.52%20255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17%200-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72%2012.82l-69.13%2035.22a132.221%20132.221%200%200%200-57.79%2057.81l-35.1%2068.88a132.645%20132.645%200%200%200-12.82%2080.95l12.08%2076.27a132.521%20132.521%200%200%200%2037.16%2072.96l54.77%2054.76a132.036%20132.036%200%200%200%2072.71%2037.06l76.71%2012.15c27.51%204.36%2055.7-.11%2080.53-12.76l69.13-35.21a132.273%20132.273%200%200%200%2057.79-57.81l35.1-68.88c12.56-24.64%2017.01-52.58%2012.91-79.91zM176%20368c-17.67%200-32-14.33-32-32s14.33-32%2032-32%2032%2014.33%2032%2032-14.33%2032-32%2032zm32-160c-17.67%200-32-14.33-32-32s14.33-32%2032-32%2032%2014.33%2032%2032-14.33%2032-32%2032zm160%20128c-17.67%200-32-14.33-32-32s14.33-32%2032-32%2032%2014.33%2032%2032-14.33%2032-32%2032z%22/%3E%3C/svg%3E");
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-position:center;
    mask-position:center;
    -webkit-mask-size:22px 22px;
    mask-size:22px 22px;
  }
}
@media (forced-colors: active){
  #cmplz-manage-consent button.cmplz-btn.cmplz-manage-consent::before{
    forced-color-adjust:none;
    background-color:CanvasText;
  }
}
#cmplz-manage-consent button.cmplz-btn.cmplz-manage-consent:hover,
#cmplz-manage-consent button.cmplz-btn.cmplz-manage-consent:focus{
  animation:none;
  background-color:var(--e-global-color-khelev);
  color:var(--e-global-color-secondary);
}

/* --- Las categorias de la vista de preferencias --------------------------
   Complianz las pinta con `rgba(239,239,239,0.5)`, un lavado gris claro
   hecho para temas claros: sobre este banner compone un #868698 en el que el
   titulo y la descripcion quedan en 2,15:1 y el "Siempre activo" en 1,44:1.
   No es solo feo: no cumple. Aqui pasan a ser tarjetas del sitio, un escalon
   por encima de la superficie del banner, igual que `.kh-card` lo esta sobre
   la pagina: relleno khelev, borde khstrong de 1 px y radio de 12 px.
   Sobre khelev el titulo sube a 7,93:1 y la descripcion a 5,01:1.

   La regla de Complianz es (0,3,0) y su hoja va despues, asi que estas suben
   a (0,4,0) apoyandose en `.cmplz-body`, que es el contenedor real. */
.cmplz-cookiebanner .cmplz-body .cmplz-categories .cmplz-category{
  background-color:var(--e-global-color-khelev);
  border:1px solid var(--e-global-color-khstrong);
  border-radius:12px;
}
.cmplz-cookiebanner .cmplz-body .cmplz-categories .cmplz-category .cmplz-category-header{
  padding:12px 14px;
}
/* Texto de apoyo: khmuted, como en el resto del sitio. */
.cmplz-cookiebanner .cmplz-body .cmplz-categories .cmplz-category .cmplz-description{
  color:var(--e-global-color-khmuted);
  padding:0 14px 14px;
}
/* "Siempre activo" venia en la palabra clave `green` (#008000), que no es del
   sistema. Se le da el teal del kit, que es el mismo color del interruptor
   encendido: en este banner, teal significa activo. Se hace sobre la propia
   variable de Complianz, en el banner, para que gane a su :root. */
.cmplz-cookiebanner{
  --cmplz_category_header_always_active_color:var(--e-global-color-d49ac81);
}
/* La flecha de desplegar es un SVG SIN atributo `fill`: sale negra siempre,
   aunque su boton declare `color:inherit`. Con currentColor toma el color del
   texto del banner. */
.cmplz-cookiebanner .cmplz-icon.cmplz-open svg,
.cmplz-cookiebanner .cmplz-icon.cmplz-open svg path{fill:currentColor}/* End custom CSS */