/* =====================================================================
   Cambio Soluciones · King Long — estilos para WordPress
   Todo está encapsulado en .cs-kl: no afecta al tema y el tema no lo afecta.
   Generado desde styles.css original. --cs-header-h = alto del header (74px con [cs_header]).
   ===================================================================== */
:is(#cs-kl,.cs-kl){
  --ink:#081428;          /* deepest navy */
  --navy:#0b1e3d;         /* section navy */
  --navy-2:#102a52;       /* raised navy */
  --navy-3:#16345f;
  --brand:#1257c9;        /* institutional blue */
  --brand-d:#0e46a6;
  --brand-b:#2f7bef;      /* bright blue */
  --brand-soft:#e9f1fd;
  --steel:#5a6b81;
  --silver:#b7c2d2;
  --paper:#ffffff;
  --paper-2:#f3f6fb;      /* light gray */
  --paper-3:#e9eef6;
  --line:#e0e7f1;
  --ink-text:#0d1b30;
  --mute:#5b6a80;
  --cream:#eaf1fb;        /* text on navy */
  --cream-mute:#9fb2ce;
  --green:#25d366;

  --r:16px;
  --r-lg:22px;
  --shadow:0 18px 50px -22px rgba(9,26,54,.28);
  --shadow-lg:0 40px 90px -30px rgba(9,26,54,.45);
  --ease:cubic-bezier(.22,.61,.36,1);
  --wrap:1200px;
  --cs-rem:16px;          /* tamaño base fijo (no depende del tema) */
  --cs-header-h:74px;     /* alto del header de Elementor: AJUSTAR */
  --font-d:"Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --font-b:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
}

/* ---------- reset: neutraliza estilos del tema / Elementor dentro de .cs-kl ---------- */
:is(#cs-kl,.cs-kl) :is(h1,h2,h3,h4,h5,h6){ color:inherit; text-transform:none; font-style:normal; padding:0; border:0; background:none; }
:is(#cs-kl,.cs-kl) h1{ font-size:2em; } :is(#cs-kl,.cs-kl) h2{ font-size:1.5em; } :is(#cs-kl,.cs-kl) h3{ font-size:1.17em; } :is(#cs-kl,.cs-kl) h4{ font-size:1em; }
:is(#cs-kl,.cs-kl) p{ margin:1em 0; padding:0; }
:is(#cs-kl,.cs-kl) :is(ul,ol){ margin:1em 0; padding-left:40px; }
:is(#cs-kl,.cs-kl) li{ margin:0; padding:0; }
:is(#cs-kl,.cs-kl) figure{ margin:1em 40px; padding:0; }
:is(#cs-kl,.cs-kl) :is(button,input,select,textarea){ margin:0; min-height:0; height:auto; line-height:normal; letter-spacing:normal;
  text-transform:none; text-shadow:none; box-shadow:none; font-weight:400; }
:is(#cs-kl,.cs-kl) button{ font-family:inherit; }
:is(#cs-kl,.cs-kl) :is(table,tr,td,th){ border:0; background:none; }
:is(#cs-kl,.cs-kl) img{ border:0; border-radius:0; box-shadow:none; height:auto; }
:is(#cs-kl,.cs-kl) a{ box-shadow:none; text-transform:inherit; letter-spacing:inherit; font-style:inherit; }
:is(#cs-kl,.cs-kl) :is(div,section,header,footer,figure,form,label,span,a,dialog,table){ float:none; }
:is(#cs-kl,.cs-kl) :is(div,section,header,footer,form){ margin:0; }
/* clases que chocan con Bootstrap (muy usado en temas) */
:is(#cs-kl,.cs-kl) .btn{ line-height:inherit; text-align:center; vertical-align:middle; }
:is(#cs-kl,.cs-kl) button.btn{ line-height:normal; }
:is(#cs-kl,.cs-kl) .breadcrumb{ padding:0; background:none; border-radius:0; list-style:none; }
:is(#cs-kl,.cs-kl) dialog.modal{ position:fixed; inset:0; margin:auto; height:fit-content; z-index:auto; outline:0; display:none; opacity:1; transform:none; }
:is(#cs-kl,.cs-kl) dialog.modal[open]{ display:block; }
:is(#cs-kl,.cs-kl) .nav{ display:block; flex-wrap:nowrap; padding:0; margin:0; list-style:none; background-color:transparent; }
:is(#cs-kl,.cs-kl) .nav-links{ margin:0; padding:0; background:none; }
:is(#cs-kl,.cs-kl) :is(.nav-links,.nav-mobile) a{ text-decoration:none; text-transform:none; }
:is(#cs-kl,.cs-kl) :is(.nav-links,.nav-mobile) a:not(.btn){ background:none; letter-spacing:normal; margin:0; border-radius:0; }
:is(#cs-kl,.cs-kl) .nav-burger{ margin:0; min-height:0; box-shadow:none; border-radius:0; }
:is(#cs-kl,.cs-kl) .nav-burger span{ display:block; }

:is(#cs-kl,.cs-kl) *, :is(#cs-kl,.cs-kl) *::before, :is(#cs-kl,.cs-kl) *::after{ box-sizing:border-box; }
:is(#cs-kl,.cs-kl){
  margin:0; background:var(--paper); color:var(--ink-text);
  font-family:var(--font-b); font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility; overflow-x:clip;
  letter-spacing:normal; word-spacing:normal; text-transform:none; text-align:left;
}
:is(#cs-kl,.cs-kl) img{ max-width:100%; display:block; }
:is(#cs-kl,.cs-kl) a{ color:inherit; text-decoration:none; }
:is(#cs-kl,.cs-kl) h1, :is(#cs-kl,.cs-kl) h2, :is(#cs-kl,.cs-kl) h3, :is(#cs-kl,.cs-kl) h4{ font-family:var(--font-d); font-weight:800; line-height:1.06; margin:0; letter-spacing:-.01em; }
:is(#cs-kl,.cs-kl) em{ font-style:normal; color:var(--brand-b); }
:is(#cs-kl,.cs-kl) .wrap{ width:min(var(--wrap), 92vw); margin-inline:auto; }
/* ---------- reveal ---------- */
:is(#cs-kl,.cs-kl) .reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
:is(#cs-kl,.cs-kl) .reveal.is-in{ opacity:1; transform:none; }
:is(#cs-kl,.cs-kl) .reveal[data-split]{ opacity:1; transform:none; }
/* ---------- buttons ---------- */
:is(#cs-kl,.cs-kl) .btn{
  --pad:.8em 1.5em;
  display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  font-family:var(--font-d); font-weight:700; font-size:calc(.94 * var(--cs-rem)); letter-spacing:.01em;
  padding:var(--pad); border-radius:100px; border:1.5px solid transparent;
  cursor:pointer; transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s, color .25s, border-color .25s;
  white-space:nowrap;
}
:is(#cs-kl,.cs-kl) .btn-lg{ --pad:1.02em 1.9em; font-size:calc(1 * var(--cs-rem)); }
@media (hover:hover){
  :is(#cs-kl,.cs-kl) .btn:hover{ transform:translateY(-2px); }
}
:is(#cs-kl,.cs-kl) .btn-primary{ background:var(--brand); color:#fff; box-shadow:0 14px 30px -12px rgba(18,87,201,.7); }
:is(#cs-kl,.cs-kl) .btn-primary:hover{ background:var(--brand-d); box-shadow:0 20px 38px -12px rgba(18,87,201,.75); }
:is(#cs-kl,.cs-kl) .btn-ghost{ background:rgba(255,255,255,.08); color:#fff; border-color:rgba(255,255,255,.4); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
:is(#cs-kl,.cs-kl) .btn-ghost:hover{ background:rgba(255,255,255,.16); border-color:#fff; }
:is(#cs-kl,.cs-kl) .btn-line{ background:transparent; color:var(--brand); border-color:var(--brand); }
:is(#cs-kl,.cs-kl) .btn-line:hover{ background:var(--brand); color:#fff; }
/* ---------- splash ---------- */
:is(#cs-kl,.cs-kl) .splash{ position:fixed; inset:0; z-index:200; background:var(--ink); display:grid; place-items:center;
  animation:cs-splashSafety .01s 4.2s forwards; transition:opacity .7s var(--ease), visibility .7s; }
:is(#cs-kl,.cs-kl) .splash.is-out{ opacity:0; visibility:hidden; pointer-events:none; }
@keyframes cs-splashSafety{ to{ opacity:0; visibility:hidden; pointer-events:none; } }
:is(#cs-kl,.cs-kl) .splash-inner{ display:flex; flex-direction:column; align-items:center; gap:26px; }
:is(#cs-kl,.cs-kl) .splash-logo{ width:auto; height:150px; animation:cs-splashLogo .9s var(--ease) both; }
@keyframes cs-splashLogo{ from{ opacity:0; transform:scale(.92) translateY(6px); } to{ opacity:1; transform:none; } }
:is(#cs-kl,.cs-kl) .splash-bar{ width:130px; height:3px; border-radius:3px; background:rgba(255,255,255,.14); position:relative; overflow:hidden; }
:is(#cs-kl,.cs-kl) .splash-bar::after{ content:""; position:absolute; inset:0; width:42%; border-radius:3px;
  background:linear-gradient(90deg,#17b0a0,#3fd6b8); animation:cs-splashBar 1.15s var(--ease) infinite; }
@keyframes cs-splashBar{ 0%{ transform:translateX(-120%); } 100%{ transform:translateX(320%); } }
/* ---------- nav ---------- */
:is(#cs-kl,.cs-kl) .nav{ position:fixed; inset:0 0 auto 0; z-index:120; transition:background .35s var(--ease), box-shadow .35s, border-color .35s;
  border-bottom:1px solid transparent; }
:is(#cs-kl,.cs-kl) .nav-inner{ width:min(var(--wrap),94vw); margin-inline:auto; display:flex; align-items:center; gap:22px;
  height:74px; }
:is(#cs-kl,.cs-kl) .nav.is-solid{ background:rgba(255,255,255,.9); backdrop-filter:saturate(160%) blur(14px); -webkit-backdrop-filter:saturate(160%) blur(14px);
  box-shadow:0 8px 30px -18px rgba(9,26,54,.4); }
:is(#cs-kl,.cs-kl) .brand{ display:flex; align-items:center; gap:11px; margin-right:auto; }
:is(#cs-kl,.cs-kl) .brand-mark{ height:34px; width:auto; display:block; flex:none; }
:is(#cs-kl,.cs-kl) .brand-cs-logo{ height:37px; width:auto; display:block; flex:none; }
:is(#cs-kl,.cs-kl) .brand-cs-logo--dark{ display:none; }
:is(#cs-kl,.cs-kl) .nav.is-solid .brand-cs-logo--light{ display:none; }
:is(#cs-kl,.cs-kl) .nav.is-solid .brand-cs-logo--dark{ display:block; }
:is(#cs-kl,.cs-kl) .brand-cs{ font-family:var(--font-d); font-weight:800; font-size:calc(1.02 * var(--cs-rem)); letter-spacing:-.01em; color:#fff; line-height:1; transition:color .35s; white-space:nowrap; }
:is(#cs-kl,.cs-kl) .brand-cs span{ color:var(--brand-b); }
:is(#cs-kl,.cs-kl) .nav.is-solid .brand-cs{ color:var(--ink-text); }
:is(#cs-kl,.cs-kl) .brand-div{ width:1px; height:30px; background:rgba(255,255,255,.28); transition:background .35s; }
:is(#cs-kl,.cs-kl) .nav.is-solid .brand-div{ background:var(--line); }
:is(#cs-kl,.cs-kl) .brand-kl-wrap{ display:flex; flex-direction:column; gap:3px; }
:is(#cs-kl,.cs-kl) .brand-oficial{ font-family:var(--font-d); font-weight:600; font-size:calc(.56 * var(--cs-rem)); letter-spacing:.14em; text-transform:uppercase; color:var(--cream-mute); transition:color .35s; }
:is(#cs-kl,.cs-kl) .nav.is-solid .brand-oficial{ color:var(--brand); }
:is(#cs-kl,.cs-kl) .brand-kl{ height:26px; width:auto; display:block; }
:is(#cs-kl,.cs-kl) .brand-kl--dark{ display:none; }
:is(#cs-kl,.cs-kl) .nav.is-solid .brand-kl--light{ display:none; }
:is(#cs-kl,.cs-kl) .nav.is-solid .brand-kl--dark{ display:block; }
@media (max-width:560px){
  :is(#cs-kl,.cs-kl) .brand-cs, :is(#cs-kl,.cs-kl) .brand-div, :is(#cs-kl,.cs-kl) .brand-oficial{ display:none; }
  :is(#cs-kl,.cs-kl) .brand-mark{ height:30px; }
  :is(#cs-kl,.cs-kl) .brand-cs-logo{ height:30px; }
  :is(#cs-kl,.cs-kl) .brand-kl{ height:20px; }
  :is(#cs-kl,.cs-kl) .brand{ gap:9px; }
  :is(#cs-kl,.cs-kl) .brand-kl-wrap{ gap:0; }
}
:is(#cs-kl,.cs-kl) .nav-links{ display:flex; gap:28px; }
:is(#cs-kl,.cs-kl) .nav-links a{ font-weight:600; font-size:calc(.95 * var(--cs-rem)); color:rgba(255,255,255,.86); position:relative; padding:4px 0; transition:color .3s; }
:is(#cs-kl,.cs-kl) .nav-links a::after{ content:""; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--brand-b); transition:width .3s var(--ease); }
:is(#cs-kl,.cs-kl) .nav-links a:hover{ color:#fff; }
:is(#cs-kl,.cs-kl) .nav-links a:hover::after{ width:100%; }
:is(#cs-kl,.cs-kl) .nav.is-solid .nav-links a{ color:var(--mute); }
:is(#cs-kl,.cs-kl) .nav.is-solid .nav-links a:hover{ color:var(--brand); }
:is(#cs-kl,.cs-kl) .nav-cta{ padding:.62em 1.25em; font-size:calc(.9 * var(--cs-rem)); }
:is(#cs-kl,.cs-kl) .nav-burger{ display:none; flex-direction:column; gap:5px; width:44px; height:40px; border:0; background:transparent; cursor:pointer; padding:8px; }
:is(#cs-kl,.cs-kl) .nav-burger span{ height:2px; width:100%; background:#fff; border-radius:2px; transition:transform .3s var(--ease), opacity .3s; }
:is(#cs-kl,.cs-kl) .nav.is-solid .nav-burger span{ background:var(--ink-text); }
:is(#cs-kl,.cs-kl) .nav-burger.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
:is(#cs-kl,.cs-kl) .nav-burger.is-open span:nth-child(2){ opacity:0; }
:is(#cs-kl,.cs-kl) .nav-burger.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
:is(#cs-kl,.cs-kl) .nav-mobile{ display:none; }
@media (max-width:900px){
  :is(#cs-kl,.cs-kl) .nav-links, :is(#cs-kl,.cs-kl) .nav-cta{ display:none; }
  :is(#cs-kl,.cs-kl) .nav-burger{ display:flex; }
  :is(#cs-kl,.cs-kl) .nav-mobile{ display:flex; flex-direction:column; gap:6px; padding:0 4vw; border:0;
      background:rgba(8,20,40,.98); backdrop-filter:blur(10px); visibility:hidden;
      max-height:0; overflow:hidden; transition:max-height .4s var(--ease), padding .4s, visibility 0s .4s; }
  :is(#cs-kl,.cs-kl) .nav-mobile.is-open{ max-height:60vh; padding:14px 4vw 22px; visibility:visible; transition:max-height .4s var(--ease), padding .4s; }
  :is(#cs-kl,.cs-kl) .nav-mobile a{ color:#eaf1fb; font-weight:600; padding:12px 6px; border-bottom:1px solid rgba(255,255,255,.08); }
  :is(#cs-kl,.cs-kl) .nav-mobile .btn{ margin-top:8px; }
}
/* ---------- hero ---------- */
:is(#cs-kl,.cs-kl) .hero{ position:relative; min-height:100vh; min-height:100svh; display:flex; align-items:center;
  overflow:hidden; background:var(--ink); isolation:isolate; }
:is(#cs-kl,.cs-kl) .hero-media{ position:absolute; inset:0; z-index:-2; }
:is(#cs-kl,.cs-kl) .hero-img{ width:100%; height:100%; object-fit:cover; object-position:65% center;
  transform:scale(1.06); animation:cs-heroZoom 18s var(--ease) forwards; }
@keyframes cs-heroZoom{ to{ transform:scale(1); } }
:is(#cs-kl,.cs-kl) .hero-scrim{ position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(6,16,34,.94) 0%, rgba(6,16,34,.8) 34%, rgba(6,16,34,.28) 62%, rgba(6,16,34,.05) 100%),
             linear-gradient(0deg, rgba(6,16,34,.6), transparent 40%); }
:is(#cs-kl,.cs-kl) .hero-mesh{ position:absolute; inset:auto -10% -30% 30%; height:80%; z-index:-1; pointer-events:none;
  background:radial-gradient(45% 55% at 50% 50%, rgba(47,123,239,.35), transparent 70%); filter:blur(80px); }
:is(#cs-kl,.cs-kl) .hero-content{ width:min(var(--wrap),92vw); margin-inline:auto; padding:calc(var(--cs-header-h) + 46px) 0 90px; max-width:none; }
:is(#cs-kl,.cs-kl) .kicker{ display:inline-flex; align-items:center; gap:9px; font-family:var(--font-d); font-weight:600;
  font-size:calc(.82 * var(--cs-rem)); letter-spacing:.14em; text-transform:uppercase; color:var(--cream); margin:0 0 22px;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.16); padding:8px 15px; border-radius:100px;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
:is(#cs-kl,.cs-kl) .kicker-dot{ width:8px; height:8px; border-radius:50%; background:var(--brand-b); box-shadow:0 0 0 4px rgba(47,123,239,.25);
  animation:cs-dotPulse 2.4s ease-in-out infinite; }
@keyframes cs-dotPulse{ 0%,100%{ box-shadow:0 0 0 3px rgba(47,123,239,.25);} 50%{ box-shadow:0 0 0 7px rgba(47,123,239,0);} }
:is(#cs-kl,.cs-kl) .hero-title{ color:#fff; font-size:clamp(calc(2.3 * var(--cs-rem)), 5.4vw, calc(4.5 * var(--cs-rem))); line-height:1.02; max-width:16ch; text-wrap:balance;
  margin:0 0 24px; text-shadow:0 4px 30px rgba(0,0,0,.35); }
:is(#cs-kl,.cs-kl) .hero-sub{ color:var(--cream); font-size:clamp(calc(1.02 * var(--cs-rem)),1.5vw,calc(1.22 * var(--cs-rem))); max-width:52ch; margin:0 0 34px; opacity:.94; }
:is(#cs-kl,.cs-kl) .hero-actions{ display:flex; gap:14px; flex-wrap:wrap; }
:is(#cs-kl,.cs-kl) .hero-badges{ list-style:none; display:flex; gap:36px; margin:52px 0 0; padding:26px 0 0; border-top:1px solid rgba(255,255,255,.14); flex-wrap:wrap; }
:is(#cs-kl,.cs-kl) .hero-badges strong{ display:block; font-family:var(--font-d); font-weight:800; font-size:calc(1.5 * var(--cs-rem)); color:#fff; line-height:1; }
:is(#cs-kl,.cs-kl) .hero-badges span{ font-size:calc(.8 * var(--cs-rem)); color:var(--cream-mute); letter-spacing:.04em; }
:is(#cs-kl,.cs-kl) .hero-scroll{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:2;
  display:flex; align-items:center; gap:12px; font-size:calc(.78 * var(--cs-rem)); letter-spacing:.16em; text-transform:uppercase; color:var(--cream-mute); }
:is(#cs-kl,.cs-kl) .hero-scroll-line{ width:40px; height:1px; background:var(--cream-mute); position:relative; overflow:hidden; }
:is(#cs-kl,.cs-kl) .hero-scroll-line::after{ content:""; position:absolute; inset:0; width:40%; background:var(--brand-b); animation:cs-scrollLine 2.2s var(--ease) infinite; }
@keyframes cs-scrollLine{ 0%{ transform:translateX(-100%);} 60%,100%{ transform:translateX(280%);} }
@media (max-width:640px){
  :is(#cs-kl,.cs-kl) .hero-scroll{ display:none; }
  :is(#cs-kl,.cs-kl) .hero-img{ object-position:72% center; }
  :is(#cs-kl,.cs-kl) .hero-scrim{ background:linear-gradient(0deg, rgba(6,16,34,.95) 6%, rgba(6,16,34,.55) 55%, rgba(6,16,34,.3)); }
}
/* ---------- marquee ---------- */
:is(#cs-kl,.cs-kl) .marquee{ background:var(--ink); border-block:1px solid rgba(255,255,255,.08); overflow:hidden; padding:16px 0; }
:is(#cs-kl,.cs-kl) .marquee-track{ display:inline-flex; align-items:center; gap:26px; white-space:nowrap; will-change:transform; }
:is(#cs-kl,.cs-kl) .marquee-track span{ font-family:var(--font-d); font-weight:600; font-size:calc(.95 * var(--cs-rem)); letter-spacing:.02em; color:var(--cream); }
:is(#cs-kl,.cs-kl) .marquee-track i{ color:var(--brand-b); font-style:normal; font-size:calc(.6 * var(--cs-rem)); }
/* ---------- partner / distributor band ---------- */
:is(#cs-kl,.cs-kl) .partner{ background:var(--paper); border-bottom:1px solid var(--line); padding:38px 0; }
:is(#cs-kl,.cs-kl) .partner-inner{ display:flex; align-items:center; justify-content:center; gap:34px; flex-wrap:wrap; text-align:center; }
:is(#cs-kl,.cs-kl) .partner-label{ font-family:var(--font-d); font-weight:700; font-size:calc(.8 * var(--cs-rem)); letter-spacing:.16em; text-transform:uppercase; color:var(--brand); }
:is(#cs-kl,.cs-kl) .partner-lockup{ display:flex; align-items:center; gap:22px; }
:is(#cs-kl,.cs-kl) .partner-cs-logo{ height:64px; width:auto; }
:is(#cs-kl,.cs-kl) .partner-x{ font-size:calc(1.4 * var(--cs-rem)); color:var(--silver); font-weight:300; }
:is(#cs-kl,.cs-kl) .partner-kl{ height:46px; width:auto; }
:is(#cs-kl,.cs-kl) .partner-vp{ height:44px; width:auto; }
@media (max-width:640px){
  :is(#cs-kl,.cs-kl) .partner{ padding:28px 0; }
  :is(#cs-kl,.cs-kl) .partner-inner{ gap:18px; flex-direction:column; }
  :is(#cs-kl,.cs-kl) .partner-lockup{ gap:16px; flex-wrap:wrap; justify-content:center; }
  :is(#cs-kl,.cs-kl) .partner-cs-logo{ height:48px; }
  :is(#cs-kl,.cs-kl) .partner-kl{ height:34px; }
  :is(#cs-kl,.cs-kl) .partner-vp{ height:34px; }
}
/* ---------- section heads ---------- */
:is(#cs-kl,.cs-kl) .sec-head{ max-width:720px; margin:0 auto 54px; text-align:center; }
:is(#cs-kl,.cs-kl) .sec-kicker{ font-family:var(--font-d); font-weight:700; font-size:calc(.8 * var(--cs-rem)); letter-spacing:.16em; text-transform:uppercase;
  color:var(--brand); margin:0 0 14px; }
:is(#cs-kl,.cs-kl) .sec-kicker--light{ color:var(--brand-b); }
:is(#cs-kl,.cs-kl) .sec-title{ font-size:clamp(calc(1.8 * var(--cs-rem)),3.4vw,calc(2.8 * var(--cs-rem))); color:var(--ink-text); text-wrap:balance; }
:is(#cs-kl,.cs-kl) .sec-title--light{ color:#fff; }
:is(#cs-kl,.cs-kl) .sec-lead{ color:var(--mute); font-size:calc(1.08 * var(--cs-rem)); margin:16px 0 0; }
/* ---------- stats ---------- */
:is(#cs-kl,.cs-kl) .stats{ background:var(--paper-2); padding:56px 0; border-bottom:1px solid var(--line); }
:is(#cs-kl,.cs-kl) .stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
:is(#cs-kl,.cs-kl) .stat{ text-align:center; }
:is(#cs-kl,.cs-kl) .stat-num{ font-family:var(--font-d); font-weight:900; font-size:clamp(calc(2.4 * var(--cs-rem)),5vw,calc(3.4 * var(--cs-rem))); color:var(--brand); line-height:1;
  background:linear-gradient(135deg,var(--brand),var(--brand-b)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
:is(#cs-kl,.cs-kl) .stat-label{ display:block; margin-top:10px; color:var(--mute); font-size:calc(.94 * var(--cs-rem)); font-weight:500; }
@media (max-width:720px){
  :is(#cs-kl,.cs-kl) .stats-grid{ grid-template-columns:repeat(2,1fr); gap:34px 18px; }
}
/* ---------- catalog ---------- */
:is(#cs-kl,.cs-kl) .catalog{ padding:100px 0; }
:is(#cs-kl,.cs-kl) .model-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
:is(#cs-kl,.cs-kl) .model-card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden;
  box-shadow:var(--shadow); transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s;
  transform-style:preserve-3d; will-change:transform; }
@media (hover:hover){
  :is(#cs-kl,.cs-kl) .model-card:hover{ box-shadow:var(--shadow-lg); border-color:var(--brand-soft); }
}
:is(#cs-kl,.cs-kl) .model-media{ position:relative; aspect-ratio:16/10.3; overflow:hidden; background:linear-gradient(160deg,#eef3fa,#dde7f4); }
:is(#cs-kl,.cs-kl) .model-media img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
@media (hover:hover){
  :is(#cs-kl,.cs-kl) .model-card:hover .model-media img{ transform:scale(1.07); }
}
:is(#cs-kl,.cs-kl) .model-media--zoom img{ transform:scale(1.28); }
@media (hover:hover){
  :is(#cs-kl,.cs-kl) .model-card:hover .model-media--zoom img{ transform:scale(1.37); }
}
:is(#cs-kl,.cs-kl) .model-tag{ position:absolute; top:14px; left:14px; background:rgba(8,20,40,.82); color:#fff; font-family:var(--font-d);
  font-weight:700; font-size:calc(.78 * var(--cs-rem)); padding:6px 12px; border-radius:100px; backdrop-filter:blur(4px); }
:is(#cs-kl,.cs-kl) .model-flag{ position:absolute; top:14px; right:14px; background:var(--brand); color:#fff; font-family:var(--font-d);
  font-weight:700; font-size:calc(.72 * var(--cs-rem)); padding:6px 11px; border-radius:100px; letter-spacing:.02em; }
:is(#cs-kl,.cs-kl) .model-flag--e{ background:linear-gradient(135deg,#0f9d58,#25d366); }
:is(#cs-kl,.cs-kl) .model-body{ padding:22px 22px 24px; }
:is(#cs-kl,.cs-kl) .model-seg{ color:var(--brand); font-weight:600; font-size:calc(.82 * var(--cs-rem)); letter-spacing:.02em; margin:0 0 4px; text-transform:uppercase; font-family:var(--font-d); }
:is(#cs-kl,.cs-kl) .model-name{ font-size:calc(1.5 * var(--cs-rem)); color:var(--ink-text); margin:0 0 16px; }
:is(#cs-kl,.cs-kl) .model-specs{ list-style:none; margin:0 0 20px; padding:0; display:grid; gap:0; border-top:1px solid var(--line); }
:is(#cs-kl,.cs-kl) .model-specs li{ display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); font-size:calc(.92 * var(--cs-rem)); }
:is(#cs-kl,.cs-kl) .model-specs span{ color:var(--mute); }
:is(#cs-kl,.cs-kl) .model-specs strong{ font-family:var(--font-d); font-weight:700; color:var(--ink-text); }
:is(#cs-kl,.cs-kl) .model-more{ width:100%; }
:is(#cs-kl,.cs-kl) .model-card--electric{ border-color:#bfe9cf; }
:is(#cs-kl,.cs-kl) .model-card--electric .model-seg{ color:#0f9d58; }
@media (max-width:980px){
  :is(#cs-kl,.cs-kl) .model-grid{ grid-template-columns:repeat(2,1fr); gap:22px; }
}
@media (max-width:600px){
  :is(#cs-kl,.cs-kl) .model-grid{ grid-template-columns:1fr; }
  :is(#cs-kl,.cs-kl) .catalog{ padding:70px 0; }
}
/* ---------- modos: stock vs a medida ---------- */
:is(#cs-kl,.cs-kl) .modes{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
:is(#cs-kl,.cs-kl) .mode-card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); padding:28px 30px; box-shadow:var(--shadow); }
:is(#cs-kl,.cs-kl) .mode-badge{ display:inline-block; font-family:var(--font-d); font-weight:700; font-size:calc(.72 * var(--cs-rem)); letter-spacing:.06em; text-transform:uppercase; padding:5px 12px; border-radius:100px; margin-bottom:14px; }
:is(#cs-kl,.cs-kl) .mode-badge--stock{ background:#e7f7ef; color:#0f9d58; }
:is(#cs-kl,.cs-kl) .mode-badge--custom{ background:var(--brand-soft); color:var(--brand); }
:is(#cs-kl,.cs-kl) .mode-card h3{ font-size:calc(1.3 * var(--cs-rem)); color:var(--ink-text); margin:0 0 8px; }
:is(#cs-kl,.cs-kl) .mode-card p{ color:var(--mute); margin:0; font-size:calc(.97 * var(--cs-rem)); }
@media (max-width:720px){
  :is(#cs-kl,.cs-kl) .modes{ grid-template-columns:1fr; }
}
/* ---------- custom / fabricación especial ---------- */
:is(#cs-kl,.cs-kl) .model-media--custom{ display:grid; place-items:center; background:linear-gradient(160deg,var(--navy-2),var(--ink)); }
:is(#cs-kl,.cs-kl) .custom-ico{ font-size:calc(3.6 * var(--cs-rem)); filter:grayscale(.1); }
:is(#cs-kl,.cs-kl) .model-card--custom{ border-color:var(--brand-soft); }
:is(#cs-kl,.cs-kl) .model-card--custom .model-seg{ color:var(--brand); }
/* ---------- pending / soon ---------- */
:is(#cs-kl,.cs-kl) .model-flag--soon{ background:#8a94a6; }
:is(#cs-kl,.cs-kl) .model-card--pending .model-media img{ filter:saturate(.55) brightness(.98); }
:is(#cs-kl,.cs-kl) .model-card--pending .model-seg{ color:var(--steel); }
/* footer vivipra */
:is(#cs-kl,.cs-kl) .footer-vivipra{ margin:18px 0 0 !important; display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
:is(#cs-kl,.cs-kl) .footer-vivipra-label{ font-family:var(--font-d); font-weight:600; font-size:calc(.66 * var(--cs-rem)); letter-spacing:.14em; text-transform:uppercase; color:var(--cream-mute); }
:is(#cs-kl,.cs-kl) .footer-vivipra-logo{ height:30px; width:auto; }
:is(#cs-kl,.cs-kl) .footer-social{ display:flex; gap:12px; margin-top:20px; }
:is(#cs-kl,.cs-kl) .footer-social a{ width:38px; height:38px; border-radius:50%; display:grid; place-items:center;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); color:var(--cream-mute);
  transition:background .25s, color .25s, border-color .25s, transform .25s; }
:is(#cs-kl,.cs-kl) .footer-social a:hover{ background:var(--brand); border-color:var(--brand); color:#fff; transform:translateY(-2px); }
:is(#cs-kl,.cs-kl) .footer-social svg{ width:17px; height:17px; }
/* about vivipra (respaldo) */
:is(#cs-kl,.cs-kl) .about-vivipra{ display:flex; align-items:flex-start; gap:20px; margin-top:24px; padding-top:22px; border-top:1px solid var(--line); flex-wrap:wrap; }
:is(#cs-kl,.cs-kl) .about-vivipra img{ height:42px; width:auto; flex:none; }
:is(#cs-kl,.cs-kl) .about-vivipra-txt{ flex:1 1 300px; display:flex; flex-direction:column; gap:8px; }
:is(#cs-kl,.cs-kl) .about-vivipra-txt strong{ font-family:var(--font-d); font-weight:800; font-size:calc(1.02 * var(--cs-rem)); color:var(--ink); letter-spacing:.01em; }
:is(#cs-kl,.cs-kl) .about-vivipra-txt span{ font-size:calc(.94 * var(--cs-rem)); line-height:1.6; color:var(--mute); }
:is(#cs-kl,.cs-kl) .about-vivipra-txt b{ color:var(--ink); font-weight:700; }
/* ---------- craft ---------- */
:is(#cs-kl,.cs-kl) .craft{ background:linear-gradient(180deg,var(--ink),var(--navy)); color:#fff; padding:100px 0; position:relative; overflow:hidden; }
:is(#cs-kl,.cs-kl) .craft::before{ content:""; position:absolute; inset:-30% -10% auto auto; width:60%; height:70%;
  background:radial-gradient(45% 50% at 60% 40%, rgba(47,123,239,.28), transparent 70%); filter:blur(70px); pointer-events:none; }
:is(#cs-kl,.cs-kl) .craft-grid{ display:grid; grid-template-columns:1fr 1.05fr; gap:56px; align-items:center; position:relative; }
:is(#cs-kl,.cs-kl) .craft-lead{ color:var(--cream); font-size:calc(1.1 * var(--cs-rem)); margin:18px 0 28px; }
:is(#cs-kl,.cs-kl) .craft-list{ list-style:none; margin:0; padding:0; display:grid; gap:14px; }
:is(#cs-kl,.cs-kl) .craft-list li{ display:flex; gap:12px; align-items:flex-start; color:var(--cream); font-size:calc(1 * var(--cs-rem)); }
:is(#cs-kl,.cs-kl) .ck{ flex:none; width:24px; height:24px; border-radius:50%; background:rgba(47,123,239,.18); color:var(--brand-b);
  display:grid; place-items:center; font-size:calc(.8 * var(--cs-rem)); font-weight:800; margin-top:1px; }
:is(#cs-kl,.cs-kl) .craft-media{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
:is(#cs-kl,.cs-kl) .craft-fig{ margin:0; border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow-lg); border:1px solid rgba(255,255,255,.1); }
:is(#cs-kl,.cs-kl) .craft-fig img{ width:100%; height:100%; object-fit:cover; }
:is(#cs-kl,.cs-kl) .craft-fig--lg{ grid-column:1 / -1; aspect-ratio:16/8.4; }
:is(#cs-kl,.cs-kl) .craft-fig:not(.craft-fig--lg){ aspect-ratio:4/3; }
@media (max-width:860px){
  :is(#cs-kl,.cs-kl) .craft-grid{ grid-template-columns:1fr; gap:36px; }
  :is(#cs-kl,.cs-kl) .craft{ padding:70px 0; }
}
/* ---------- galería interior ---------- */
:is(#cs-kl,.cs-kl) .gallery{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
:is(#cs-kl,.cs-kl) .gallery figure{ margin:0; border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--line);
  aspect-ratio:4/3; position:relative; }
:is(#cs-kl,.cs-kl) .gallery img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
@media (hover:hover){
  :is(#cs-kl,.cs-kl) .gallery figure:hover img{ transform:scale(1.06); }
}
:is(#cs-kl,.cs-kl) .gallery figcaption{ position:absolute; left:0; right:0; bottom:0; padding:12px 12px 10px; z-index:2;
  color:#fff; font-family:var(--font-d); font-weight:600; font-size:calc(.8 * var(--cs-rem));
  background:linear-gradient(0deg, rgba(6,16,34,.82), transparent); }
@media (max-width:820px){
  :is(#cs-kl,.cs-kl) .gallery{ grid-template-columns:repeat(2,1fr); }
}
/* ---------- fuels ---------- */
:is(#cs-kl,.cs-kl) .fuels{ padding:100px 0; background:var(--paper-2); }
:is(#cs-kl,.cs-kl) .fuel-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
:is(#cs-kl,.cs-kl) .fuel-card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); padding:34px 28px;
  box-shadow:var(--shadow); transition:transform .35s var(--ease), box-shadow .35s; }
@media (hover:hover){
  :is(#cs-kl,.cs-kl) .fuel-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }
}
:is(#cs-kl,.cs-kl) .fuel-ico{ font-size:calc(2 * var(--cs-rem)); display:grid; place-items:center; width:64px; height:64px; border-radius:18px;
  background:var(--brand-soft); margin-bottom:20px; }
:is(#cs-kl,.cs-kl) .fuel-card h3{ font-size:calc(1.32 * var(--cs-rem)); margin:0 0 10px; color:var(--ink-text); }
:is(#cs-kl,.cs-kl) .fuel-card p{ color:var(--mute); margin:0; font-size:calc(.98 * var(--cs-rem)); }
:is(#cs-kl,.cs-kl) .fuel-card--e{ background:linear-gradient(180deg,#f0fbf4,#fff); border-color:#c9edd6; }
:is(#cs-kl,.cs-kl) .fuel-card--e .fuel-ico{ background:#dcf6e4; }
@media (max-width:820px){
  :is(#cs-kl,.cs-kl) .fuel-grid{ grid-template-columns:1fr; }
  :is(#cs-kl,.cs-kl) .fuels{ padding:70px 0; }
}
/* ---------- backing ---------- */
:is(#cs-kl,.cs-kl) .backing{ padding:100px 0; }
:is(#cs-kl,.cs-kl) .back-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
:is(#cs-kl,.cs-kl) .back-card{ text-align:left; padding:32px 26px; border-radius:var(--r-lg); background:var(--paper);
  border:1px solid var(--line); transition:transform .35s var(--ease), box-shadow .35s, border-color .35s; }
@media (hover:hover){
  :is(#cs-kl,.cs-kl) .back-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--brand-soft); }
}
:is(#cs-kl,.cs-kl) .back-ico{ display:grid; place-items:center; width:56px; height:56px; border-radius:16px;
  background:linear-gradient(135deg,var(--brand),var(--brand-b)); color:#fff; margin-bottom:20px; }
:is(#cs-kl,.cs-kl) .back-ico svg{ width:28px; height:28px; }
:is(#cs-kl,.cs-kl) .back-card h3{ font-size:calc(1.14 * var(--cs-rem)); color:var(--ink-text); margin:0 0 8px; line-height:1.2; }
:is(#cs-kl,.cs-kl) .back-card p{ color:var(--mute); font-size:calc(.94 * var(--cs-rem)); margin:0; }
@media (max-width:900px){
  :is(#cs-kl,.cs-kl) .back-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:520px){
  :is(#cs-kl,.cs-kl) .back-grid{ grid-template-columns:1fr; }
  :is(#cs-kl,.cs-kl) .backing{ padding:70px 0; }
}
/* ---------- cta band ---------- */
:is(#cs-kl,.cs-kl) .ctaband{ position:relative; overflow:hidden; isolation:isolate; }
:is(#cs-kl,.cs-kl) .ctaband-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 62%; z-index:-2; }
:is(#cs-kl,.cs-kl) .ctaband-scrim{ position:absolute; inset:0; z-index:-1;
  background:linear-gradient(90deg, rgba(8,20,40,.92), rgba(8,20,40,.62) 60%, rgba(8,20,40,.35)); }
:is(#cs-kl,.cs-kl) .ctaband-inner{ padding:96px 0; max-width:640px; }
:is(#cs-kl,.cs-kl) .ctaband h2{ color:#fff; font-size:clamp(calc(1.8 * var(--cs-rem)),3.6vw,calc(2.8 * var(--cs-rem))); margin:0 0 14px; text-wrap:balance; }
:is(#cs-kl,.cs-kl) .ctaband p{ color:var(--cream); font-size:calc(1.12 * var(--cs-rem)); margin:0 0 28px; }
/* ---------- quote ---------- */
:is(#cs-kl,.cs-kl) .quote{ background:linear-gradient(180deg,var(--navy),var(--ink)); color:#fff; padding:100px 0; }
:is(#cs-kl,.cs-kl) .quote-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:52px; align-items:start; }
:is(#cs-kl,.cs-kl) .quote-lead{ color:var(--cream); font-size:calc(1.08 * var(--cs-rem)); margin:16px 0 30px; }
:is(#cs-kl,.cs-kl) .quote-contacts{ list-style:none; margin:0; padding:0; display:grid; gap:18px; }
:is(#cs-kl,.cs-kl) .quote-contacts li{ display:flex; flex-direction:column; gap:2px; padding-bottom:16px; border-bottom:1px solid rgba(255,255,255,.12); }
:is(#cs-kl,.cs-kl) .quote-contacts span{ font-size:calc(.78 * var(--cs-rem)); letter-spacing:.12em; text-transform:uppercase; color:var(--cream-mute); }
:is(#cs-kl,.cs-kl) .quote-contacts a, :is(#cs-kl,.cs-kl) .quote-contacts strong{ font-family:var(--font-d); font-weight:700; color:#fff; font-size:calc(1.05 * var(--cs-rem)); }
:is(#cs-kl,.cs-kl) .quote-contacts a:hover{ color:var(--brand-b); }
:is(#cs-kl,.cs-kl) .quote-form{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.12); border-radius:var(--r-lg);
  padding:34px; display:grid; grid-template-columns:1fr 1fr; gap:18px;
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
:is(#cs-kl,.cs-kl) .field{ grid-column:1 / -1; display:flex; flex-direction:column; gap:7px; }
:is(#cs-kl,.cs-kl) .field--half{ grid-column:span 1; }
:is(#cs-kl,.cs-kl) .field--qty{ grid-column:span 1; }
:is(#cs-kl,.cs-kl) .field label{ font-size:calc(.82 * var(--cs-rem)); font-weight:600; letter-spacing:.03em; color:var(--cream); }
:is(#cs-kl,.cs-kl) .field input, :is(#cs-kl,.cs-kl) .field select, :is(#cs-kl,.cs-kl) .field textarea{
  font-family:var(--font-b); font-size:calc(.98 * var(--cs-rem)); color:#fff; background:rgba(8,20,40,.5);
  border:1.5px solid rgba(255,255,255,.16); border-radius:12px; padding:.82em .95em; width:100%;
  transition:border-color .25s, background .25s, box-shadow .25s; }
:is(#cs-kl,.cs-kl) .field textarea{ resize:vertical; min-height:84px; }
:is(#cs-kl,.cs-kl) .field input::placeholder, :is(#cs-kl,.cs-kl) .field textarea::placeholder{ color:#7f92b0; }
:is(#cs-kl,.cs-kl) .field select{ appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237f92b0' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .9em center; padding-right:2.6em; }
:is(#cs-kl,.cs-kl) .field select option{ color:#0d1b30; }
:is(#cs-kl,.cs-kl) .field input:focus, :is(#cs-kl,.cs-kl) .field select:focus, :is(#cs-kl,.cs-kl) .field textarea:focus{ outline:none; border-color:var(--brand-b);
  background:rgba(8,20,40,.75); box-shadow:0 0 0 4px rgba(47,123,239,.18); }
:is(#cs-kl,.cs-kl) .field input:invalid:not(:placeholder-shown){ border-color:#e0576b; }
:is(#cs-kl,.cs-kl) .form-actions{ grid-column:1 / -1; display:flex; gap:14px; flex-wrap:wrap; margin-top:4px; }
:is(#cs-kl,.cs-kl) .form-actions .btn-line{ color:#fff; border-color:rgba(255,255,255,.5); }
:is(#cs-kl,.cs-kl) .form-actions .btn-line:hover{ background:#fff; color:var(--brand); border-color:#fff; }
:is(#cs-kl,.cs-kl) .form-note{ grid-column:1 / -1; font-size:calc(.82 * var(--cs-rem)); color:var(--cream-mute); margin:2px 0 0; }
:is(#cs-kl,.cs-kl) .form-note.is-error{ color:#ff9db0; }
:is(#cs-kl,.cs-kl) .form-note.is-ok{ color:#7fe6a0; }
/* ---------- toast (confirmación de envío) ---------- */
:is(#cs-kl,.cs-kl) .toast-pop{ position:fixed; left:50%; bottom:26px; z-index:200; transform:translate(-50%,18px); opacity:0;
  pointer-events:none; transition:opacity .35s var(--ease), transform .35s var(--ease);
  display:flex; align-items:center; gap:12px; max-width:min(420px,92vw);
  background:var(--paper); color:var(--ink-text); border-radius:16px; padding:16px 20px;
  box-shadow:var(--shadow-lg); border:1px solid var(--line); }
:is(#cs-kl,.cs-kl) .toast-pop.is-show{ opacity:1; transform:translate(-50%,0); pointer-events:auto; }
:is(#cs-kl,.cs-kl) .toast-pop-icon{ flex:none; width:34px; height:34px; border-radius:50%; display:grid; place-items:center;
  background:#e6f9ee; color:#1fa464; }
:is(#cs-kl,.cs-kl) .toast-pop.is-error .toast-pop-icon{ background:#fdeaea; color:#d64545; }
:is(#cs-kl,.cs-kl) .toast-pop-icon svg{ width:18px; height:18px; }
:is(#cs-kl,.cs-kl) .toast-pop-text strong{ display:block; font-family:var(--font-d); font-size:calc(.94 * var(--cs-rem)); margin-bottom:2px; }
:is(#cs-kl,.cs-kl) .toast-pop-text span{ display:block; font-size:calc(.82 * var(--cs-rem)); color:var(--mute); }
@media (max-width:520px){
  :is(#cs-kl,.cs-kl) .toast-pop{ bottom:16px; padding:14px 16px; }
}
@media (max-width:900px){
  :is(#cs-kl,.cs-kl) .quote-grid{ grid-template-columns:1fr; gap:34px; }
  :is(#cs-kl,.cs-kl) .quote{ padding:70px 0; }
}
@media (max-width:520px){
  :is(#cs-kl,.cs-kl) .quote-form{ padding:22px; grid-template-columns:1fr; }
  :is(#cs-kl,.cs-kl) .field--half, :is(#cs-kl,.cs-kl) .field--qty{ grid-column:1/-1; }
}
/* ---------- footer ---------- */
:is(#cs-kl,.cs-kl) .footer{ background:var(--ink); color:var(--cream); padding:70px 0 26px; }
:is(#cs-kl,.cs-kl) .footer-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; }
:is(#cs-kl,.cs-kl) .brand-cs--footer{ font-size:calc(1.4 * var(--cs-rem)); color:#fff; }
:is(#cs-kl,.cs-kl) .footer-cs{ height:80px; width:auto; display:block; }
:is(#cs-kl,.cs-kl) .footer-brand p{ color:var(--cream-mute); font-size:calc(.96 * var(--cs-rem)); margin:18px 0 22px; max-width:34ch; }
:is(#cs-kl,.cs-kl) .footer-oficial{ display:block; font-family:var(--font-d); font-weight:600; font-size:calc(.66 * var(--cs-rem)); letter-spacing:.14em; text-transform:uppercase; color:var(--cream-mute); margin-bottom:10px; }
:is(#cs-kl,.cs-kl) .footer-kl{ height:40px; width:auto; opacity:.95; }
:is(#cs-kl,.cs-kl) .footer-col h4{ font-family:var(--font-d); font-size:calc(.86 * var(--cs-rem)); letter-spacing:.1em; text-transform:uppercase; color:#fff; margin:0 0 16px; }
:is(#cs-kl,.cs-kl) .footer-col a, :is(#cs-kl,.cs-kl) .footer-loc{ display:block; color:var(--cream-mute); font-size:calc(.95 * var(--cs-rem)); padding:6px 0; transition:color .25s; }
:is(#cs-kl,.cs-kl) .footer-col a:hover{ color:var(--brand-b); }
:is(#cs-kl,.cs-kl) .footer-base{ width:min(var(--wrap),92vw); margin:44px auto 0; padding-top:22px; border-top:1px solid rgba(255,255,255,.1);
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:calc(.82 * var(--cs-rem)); color:var(--cream-mute); }
@media (max-width:820px){
  :is(#cs-kl,.cs-kl) .footer-grid{ grid-template-columns:1fr 1fr; gap:30px; }
}
@media (max-width:520px){
  :is(#cs-kl,.cs-kl) .footer-grid{ grid-template-columns:1fr; }
}
/* ---------- whatsapp float ---------- */
:is(#cs-kl,.cs-kl) .wa-float{ position:fixed; right:20px; bottom:20px; z-index:90; width:58px; height:58px; border-radius:50%;
  background:var(--green); color:#fff; display:grid; place-items:center; box-shadow:0 14px 34px -8px rgba(37,211,102,.6);
  transition:transform .3s var(--ease); animation:cs-waPop .5s var(--ease) 1s both; }
:is(#cs-kl,.cs-kl) .wa-float svg{ width:30px; height:30px; }
@media (hover:hover){
  :is(#cs-kl,.cs-kl) .wa-float:hover{ transform:scale(1.08); }
}
@keyframes cs-waPop{ from{ transform:scale(0); opacity:0; } to{ transform:scale(1); opacity:1; } }
/* ---------- modal ---------- */
:is(#cs-kl,.cs-kl) .modal{ border:0; border-radius:var(--r-lg); padding:0; max-width:720px; width:92vw; background:var(--paper);
  box-shadow:var(--shadow-lg); overflow:hidden; max-height:92vh; }
:is(#cs-kl,.cs-kl) .modal::backdrop{ background:rgba(8,20,40,.62); backdrop-filter:blur(4px); }
:is(#cs-kl,.cs-kl) .modal[open]{ animation:cs-modalIn .35s var(--ease); }
@keyframes cs-modalIn{ from{ opacity:0; transform:translateY(20px) scale(.98); } to{ opacity:1; transform:none; } }
:is(#cs-kl,.cs-kl) .modal-inner{ display:flex; flex-direction:column; max-height:92vh; }
:is(#cs-kl,.cs-kl) .modal-media{ flex:none; width:100%; aspect-ratio:16/9.4; display:grid; place-items:center;
  background:linear-gradient(160deg,#eef3fa,#d7e3f2); border-bottom:1px solid var(--line); }
:is(#cs-kl,.cs-kl) .modal-media img{ width:100%; height:100%; object-fit:contain; }
:is(#cs-kl,.cs-kl) .modal-info{ padding:26px 32px 30px; position:relative; flex:1 1 auto; overflow-y:auto; }
:is(#cs-kl,.cs-kl) .modal-close{ position:absolute; top:14px; right:14px; width:38px; height:38px; border-radius:50%; border:1px solid var(--line);
  background:var(--paper); color:var(--mute); cursor:pointer; font-size:calc(.95 * var(--cs-rem)); transition:background .2s, color .2s; z-index:2; }
:is(#cs-kl,.cs-kl) .modal-close:hover{ background:var(--brand); color:#fff; }
:is(#cs-kl,.cs-kl) .modal-seg{ color:var(--brand); font-family:var(--font-d); font-weight:700; font-size:calc(.8 * var(--cs-rem)); letter-spacing:.06em;
  text-transform:uppercase; margin:0 0 6px; }
:is(#cs-kl,.cs-kl) .modal-name{ font-size:calc(1.8 * var(--cs-rem)); color:var(--ink-text); margin:0 0 18px; }
:is(#cs-kl,.cs-kl) .modal-table{ width:100%; border-collapse:collapse; margin-bottom:22px; }
:is(#cs-kl,.cs-kl) .modal-table tr{ border-bottom:1px solid var(--line); }
:is(#cs-kl,.cs-kl) .modal-table td{ padding:9px 0; font-size:calc(.9 * var(--cs-rem)); vertical-align:top; }
:is(#cs-kl,.cs-kl) .modal-table td:first-child{ color:var(--mute); width:44%; }
:is(#cs-kl,.cs-kl) .modal-table td:last-child{ font-family:var(--font-d); font-weight:600; color:var(--ink-text); }
@media (max-width:680px){
  :is(#cs-kl,.cs-kl) .modal-media{ aspect-ratio:16/10; }
  :is(#cs-kl,.cs-kl) .modal-info{ padding:22px 22px 26px; }
}
/* ---------- nav active state ---------- */
:is(#cs-kl,.cs-kl) .nav-links a.is-active{ color:#fff; }
:is(#cs-kl,.cs-kl) .nav-links a.is-active::after{ width:100%; }
:is(#cs-kl,.cs-kl) .nav.is-solid .nav-links a.is-active{ color:var(--brand); }
:is(#cs-kl,.cs-kl) .nav-mobile a.is-active{ color:var(--brand-b); }
/* ---------- page hero (inner pages) ---------- */
:is(#cs-kl,.cs-kl) .page-hero{ position:relative; min-height:56vh; display:flex; align-items:flex-end; overflow:hidden;
  background:var(--ink); isolation:isolate; padding-top:var(--cs-header-h); }
:is(#cs-kl,.cs-kl) .page-hero-media{ position:absolute; inset:0; z-index:-2; }
:is(#cs-kl,.cs-kl) .page-hero-media img{ width:100%; height:100%; object-fit:cover; object-position:center 60%;
  transform:scale(1.05); animation:cs-heroZoom 16s var(--ease) forwards; }
:is(#cs-kl,.cs-kl) .page-hero-scrim{ position:absolute; inset:0; z-index:-1;
  background:linear-gradient(0deg, rgba(6,16,34,.96) 2%, rgba(6,16,34,.7) 40%, rgba(6,16,34,.4) 100%),
             linear-gradient(90deg, rgba(6,16,34,.7), transparent 70%); }
:is(#cs-kl,.cs-kl) .page-hero-inner{ width:min(var(--wrap),92vw); margin-inline:auto; padding:0 0 60px; }
:is(#cs-kl,.cs-kl) .breadcrumb{ display:flex; gap:8px; align-items:center; font-size:calc(.82 * var(--cs-rem)); color:var(--cream-mute);
  letter-spacing:.04em; margin-bottom:16px; }
:is(#cs-kl,.cs-kl) .breadcrumb a:hover{ color:#fff; }
:is(#cs-kl,.cs-kl) .breadcrumb span{ opacity:.5; }
:is(#cs-kl,.cs-kl) .page-hero h1{ color:#fff; font-size:clamp(calc(2 * var(--cs-rem)),4.6vw,calc(3.6 * var(--cs-rem))); max-width:20ch; text-wrap:balance;
  text-shadow:0 4px 30px rgba(0,0,0,.4); }
:is(#cs-kl,.cs-kl) .page-hero p{ color:var(--cream); font-size:clamp(calc(1 * var(--cs-rem)),1.5vw,calc(1.2 * var(--cs-rem))); max-width:56ch; margin:18px 0 0; }
@media (max-width:640px){
  :is(#cs-kl,.cs-kl) .page-hero{ min-height:48vh; }
}
/* generic section padding */
:is(#cs-kl,.cs-kl) .section{ padding:100px 0; }
:is(#cs-kl,.cs-kl) .section--tint{ background:var(--paper-2); }
@media (max-width:600px){
  :is(#cs-kl,.cs-kl) .section{ padding:70px 0; }
}
/* featured (home) */
:is(#cs-kl,.cs-kl) .featured-foot{ text-align:center; margin-top:44px; }
/* video reels (King Long en movimiento) */
:is(#cs-kl,.cs-kl) .reels{ background:linear-gradient(180deg,var(--ink),var(--navy)); color:#fff; }
:is(#cs-kl,.cs-kl) .reels .sec-title{ color:#fff; }
:is(#cs-kl,.cs-kl) .reels .sec-lead{ color:var(--cream); }
:is(#cs-kl,.cs-kl) .reel-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; max-width:900px; margin:0 auto; }
:is(#cs-kl,.cs-kl) .reel{ margin:0; position:relative; border-radius:var(--r-lg); overflow:hidden; aspect-ratio:9/16;
  box-shadow:var(--shadow-lg); border:1px solid rgba(255,255,255,.1); background:#0a1830; }
:is(#cs-kl,.cs-kl) .reel video, :is(#cs-kl,.cs-kl) .reel img.reel-poster{ width:100%; height:100%; object-fit:cover; display:block; }
:is(#cs-kl,.cs-kl) .reel figcaption{ position:absolute; left:0; right:0; bottom:0; padding:16px 14px 14px; z-index:2;
  color:#fff; font-family:var(--font-d); font-weight:600; font-size:calc(.86 * var(--cs-rem)); letter-spacing:.01em;
  background:linear-gradient(0deg, rgba(6,16,34,.9), rgba(6,16,34,.3) 60%, transparent);
  display:flex; align-items:center; gap:8px; }
:is(#cs-kl,.cs-kl) .reel figcaption .dot{ width:7px; height:7px; border-radius:50%; background:var(--brand-b); flex:none; }
@media (max-width:720px){
  :is(#cs-kl,.cs-kl) .reel-row{ display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory;
      padding-bottom:10px; -webkit-overflow-scrolling:touch; }
  :is(#cs-kl,.cs-kl) .reel{ flex:0 0 68%; scroll-snap-align:center; }
}
/* video destacado (landscape) */
:is(#cs-kl,.cs-kl) .reel-feature{ position:relative; margin:0 auto 26px; max-width:900px; border-radius:var(--r-lg); overflow:hidden;
  box-shadow:var(--shadow-lg); border:1px solid rgba(255,255,255,.1); aspect-ratio:16/9; background:#0a1830; }
:is(#cs-kl,.cs-kl) .reel-feature video, :is(#cs-kl,.cs-kl) .reel-feature img{ width:100%; height:100%; object-fit:cover; display:block; }
:is(#cs-kl,.cs-kl) .reel-feature figcaption{ position:absolute; left:0; right:0; bottom:0; padding:18px 18px 16px; z-index:2;
  color:#fff; font-family:var(--font-d); font-weight:600; font-size:calc(.9 * var(--cs-rem)); letter-spacing:.01em;
  background:linear-gradient(0deg, rgba(6,16,34,.92), rgba(6,16,34,.2) 70%, transparent);
  display:flex; align-items:center; gap:9px; }
:is(#cs-kl,.cs-kl) .reel-feature figcaption .dot{ width:7px; height:7px; border-radius:50%; background:var(--brand-b); flex:none; }
/* operaciones reales en el Perú */
:is(#cs-kl,.cs-kl) .ops{ background:linear-gradient(180deg,var(--ink),var(--navy)); color:#fff; }
:is(#cs-kl,.cs-kl) .ops .sec-title{ color:#fff; }
:is(#cs-kl,.cs-kl) .ops .sec-lead{ color:var(--cream); }
:is(#cs-kl,.cs-kl) .ops-feature{ position:relative; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg);
  border:1px solid rgba(255,255,255,.1); aspect-ratio:16/8.5; margin-bottom:16px; }
:is(#cs-kl,.cs-kl) .ops-feature img{ width:100%; height:100%; object-fit:cover; }
:is(#cs-kl,.cs-kl) .ops-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
:is(#cs-kl,.cs-kl) .ops-fig{ position:relative; margin:0; border-radius:var(--r); overflow:hidden; aspect-ratio:4/3;
  box-shadow:var(--shadow-lg); border:1px solid rgba(255,255,255,.08); }
:is(#cs-kl,.cs-kl) .ops-fig img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
@media (hover:hover){
  :is(#cs-kl,.cs-kl) .ops-fig:hover img{ transform:scale(1.06); }
}
:is(#cs-kl,.cs-kl) .ops-cap{ position:absolute; left:0; right:0; bottom:0; padding:16px 14px 12px; z-index:2;
  color:#fff; font-family:var(--font-d); font-weight:700; font-size:calc(.86 * var(--cs-rem)); letter-spacing:.01em;
  background:linear-gradient(0deg, rgba(6,16,34,.92), rgba(6,16,34,.15) 75%, transparent); }
:is(#cs-kl,.cs-kl) .ops-cap span{ display:block; font-family:var(--font-b); font-weight:400; font-size:calc(.76 * var(--cs-rem)); color:var(--cream-mute); margin-top:2px; }
:is(#cs-kl,.cs-kl) .ops-feature .ops-cap{ font-size:calc(1 * var(--cs-rem)); padding:20px 18px 16px; }
@media (max-width:820px){
  :is(#cs-kl,.cs-kl) .ops-grid{ grid-template-columns:1fr 1fr; }
}
/* flota en el Perú */
:is(#cs-kl,.cs-kl) .peru-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:48px; align-items:center; }
:is(#cs-kl,.cs-kl) .peru-flag{ display:inline-flex; align-items:center; gap:8px; font-family:var(--font-d); font-weight:700;
  font-size:calc(.72 * var(--cs-rem)); letter-spacing:.06em; text-transform:uppercase; color:var(--brand);
  background:var(--brand-soft); padding:6px 13px; border-radius:100px; margin-bottom:16px; }
:is(#cs-kl,.cs-kl) .peru-media{ display:grid; grid-template-columns:1.5fr 1fr; gap:14px; }
:is(#cs-kl,.cs-kl) .peru-fig{ margin:0; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg); }
:is(#cs-kl,.cs-kl) .peru-fig img{ width:100%; height:100%; object-fit:cover; display:block; }
:is(#cs-kl,.cs-kl) .peru-fig--main{ aspect-ratio:4/3; }
:is(#cs-kl,.cs-kl) .peru-cap{ display:block; margin-top:14px; font-size:calc(.86 * var(--cs-rem)); color:var(--mute); }
@media (max-width:860px){
  :is(#cs-kl,.cs-kl) .peru-grid{ grid-template-columns:1fr; gap:30px; }
}
@media (max-width:520px){
  :is(#cs-kl,.cs-kl) .peru-media{ grid-template-columns:1fr; }
  :is(#cs-kl,.cs-kl) .peru-fig--main{ aspect-ratio:16/10; }
}
/* about (respaldo) */
:is(#cs-kl,.cs-kl) .about-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:52px; align-items:center; }
:is(#cs-kl,.cs-kl) .about-grid figure{ margin:0; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg); aspect-ratio:4/3; }
:is(#cs-kl,.cs-kl) .about-grid figure img{ width:100%; height:100%; object-fit:cover; }
:is(#cs-kl,.cs-kl) .about-lead{ color:var(--mute); font-size:calc(1.1 * var(--cs-rem)); margin:16px 0 22px; }
:is(#cs-kl,.cs-kl) .about-list{ list-style:none; margin:0; padding:0; display:grid; gap:14px; }
:is(#cs-kl,.cs-kl) .about-list li{ display:flex; gap:12px; align-items:flex-start; color:var(--ink-text); }
:is(#cs-kl,.cs-kl) .about-list .ck{ background:var(--brand-soft); color:var(--brand); }
@media (max-width:820px){
  :is(#cs-kl,.cs-kl) .about-grid{ grid-template-columns:1fr; gap:32px; }
}
/* reduced motion — only intrusive */
@media (prefers-reduced-motion: reduce){
  :is(#cs-kl,.cs-kl) .hero-img{ animation:none; transform:none; }
  :is(#cs-kl,.cs-kl) .kicker-dot{ animation:none; }
  :is(#cs-kl,.cs-kl) .hero-scroll-line::after{ animation:none; }
  :is(#cs-kl,.cs-kl) .splash-bar::after{ animation:none; }
  :is(#cs-kl,.cs-kl) .marquee-track{ animation:none !important; }
}

/* ---------- header como shortcode: barra de administración y páginas sin hero ---------- */
body.admin-bar :is(#cs-kl,.cs-kl) .nav{ top:32px; }
@media (max-width:782px){ body.admin-bar :is(#cs-kl,.cs-kl) .nav{ top:46px; } }
@media (max-width:600px){ body.admin-bar :is(#cs-kl,.cs-kl) .nav{ top:0; } }
body.cs-kl-nohero{ padding-top:74px; }
