/* Callsy X — sistema de diseño (tokens, base y componentes). Compartido por la hoja de muestra y el sitio.
   Dirección de arte "Vidrio que responde" (14-oct-2026). Los valores salen de la paleta del panel de referencia
   que eligió Luis y de su logotipo "Callsy X" (se usa tal cual; la X sola donde no cabe el nombre). El detalle está en el LEEME. */

@font-face{font-family:"Inter";src:url(../fonts/inter-var.woff2) format("woff2");font-weight:100 900;font-display:swap}

:root{
  /* Color (roles) — paleta de la referencia: negro con tinte verde-azul, luz teal-menta, vidrio con brillo en las esquinas */
  --brand:#5EE3CF;            /* teal-menta: la luz. Cables, bordes encendidos, palabras de acento */
  --brand-press:#43C9B5;
  --brand-soft:rgba(94,227,207,.14);
  --brand-on-dark:#5EE3CF;
  --brand-deep:#1E9E90;       /* teal profundo: inicio de los degradados y los haces de luz */
  --mint:#B6F3EA;             /* teal claro: final de los degradados */
  --cta:#121B1A;              /* botón principal: oscuro con borde de luz (como la referencia) */
  --cta-ink:#F4F7F6;
  --ink:#F4F7F6;              /* blanco: títulos y texto */
  --muted:#93A3A0;            /* gris verdoso: texto de apoyo */
  --bg:#060A0A;               /* negro con tinte verde-azul: el fondo */
  --bg-2:#080E0E;
  --surface:#0E1515;          /* vidrio oscuro: tarjetas */
  --surface-2:#132020;
  --line:rgba(255,255,255,.08);
  --line-strong:rgba(255,255,255,.15);
  --ok:#4ADE80;
  --warn:#F5C451;
  --error:#F87171;
  --grad:linear-gradient(135deg,var(--brand-deep),var(--mint));
  /* Tipografía */
  --font-display:"Inter",system-ui,sans-serif;
  --font-body:"Inter",system-ui,sans-serif;
  /* Forma: esquinas amplias, como el panel de referencia */
  --r-xl:24px;--r-lg:16px;--r-md:12px;--r-sm:8px;--r-pill:999px;
  /* Movimiento: preciso, fluido, luminoso */
  --ease:cubic-bezier(.25,1,.5,1);        /* power3.out */
  --ease-io:cubic-bezier(.76,0,.24,1);    /* power3.inOut */
  --ease-pop:var(--ease);                 /* sin rebote */
  --dur:.8s;--dist:20px;--t-hover:.35s;
  /* Espacio */
  --gutter:clamp(16px,4vw,40px);--maxw:1180px;--section-y:clamp(64px,9vw,120px);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:1rem;line-height:1.6;overflow-x:clip;-webkit-font-smoothing:antialiased}
img,svg,video{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:var(--r-sm)}
.wrap{width:min(100% - 2*var(--gutter),var(--maxw));margin-inline:auto}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Fondo: cuadrícula tenue + dos luces (morada arriba a la izquierda, menta abajo a la derecha) */
.fondo{position:relative;isolation:isolate}
.fondo::before{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1.2px);background-size:26px 26px;
  -webkit-mask:radial-gradient(60% 50% at 50% 30%,#000 30%,transparent 100%);mask:radial-gradient(60% 50% at 50% 30%,#000 30%,transparent 100%)}
.fondo::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(42% 36% at 12% 8%,rgba(94,227,207,.14),transparent 70%),radial-gradient(36% 30% at 90% 85%,rgba(94,227,207,.08),transparent 70%),linear-gradient(115deg,transparent 46%,rgba(94,227,207,.05) 50%,transparent 54%)}

/* Texto */
.ceja{font:500 .78rem/1.2 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--brand);margin:0 0 14px}
.ceja--suave{color:var(--muted)}
.h1{font:500 clamp(2.3rem,6.8vw,4.4rem)/1.06 var(--font-display);letter-spacing:-.03em;margin:0;text-wrap:balance}
.h2{font:500 clamp(1.6rem,3.8vw,2.5rem)/1.1 var(--font-display);letter-spacing:-.025em;margin:0 0 18px;text-wrap:balance}
.h3{font:500 1.12rem/1.3 var(--font-display);letter-spacing:-.015em;margin:0 0 8px}
.lead{font-size:clamp(1.02rem,1.3vw,1.2rem);color:var(--muted);max-width:52ch;margin:18px 0 0}
.p{color:var(--muted);margin:0}
.acento{color:var(--brand)}

/* Botones: píldora como los del panel de referencia; el principal es menta con letra oscura */
.btn{--pad:14px 24px;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:var(--pad);
  border-radius:var(--r-pill);font:600 1rem/1 var(--font-body);text-decoration:none;cursor:pointer;border:1px solid transparent;
  transition:transform var(--t-hover) var(--ease),box-shadow var(--t-hover) var(--ease),background-color var(--t-hover) var(--ease),border-color var(--t-hover) var(--ease);
  position:relative;isolation:isolate;white-space:nowrap}
.btn--cta{background:linear-gradient(180deg,rgba(94,227,207,.14),rgba(94,227,207,.03)),var(--cta);color:var(--cta-ink);border-color:rgba(94,227,207,.55);box-shadow:0 0 0 1px rgba(94,227,207,.15),0 0 24px -6px rgba(94,227,207,.55),0 18px 40px -22px rgba(0,0,0,.9)}
.btn--cta:hover{transform:translateY(-2px);border-color:var(--brand);box-shadow:0 0 0 1px rgba(94,227,207,.35),0 0 36px -4px rgba(94,227,207,.8),0 24px 48px -22px rgba(0,0,0,.9)}
.btn--cta:active{transform:scale(.97)}
.btn--cta.is-lit{border-color:var(--brand);box-shadow:0 0 0 1px rgba(94,227,207,.4),0 0 0 6px rgba(94,227,207,.12),0 0 44px -4px rgba(94,227,207,.85)}
.btn--ghost{background:rgba(255,255,255,.03);border-color:var(--line-strong);color:var(--ink)}
.btn--ghost:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.3);transform:translateY(-2px)}
.btn--ghost:active{transform:scale(.97)}
.btn__ico{width:18px;height:18px;flex:none}

/* Vidrio: la tarjeta de Callsy X. Borde fino, brillo diagonal arriba a la izquierda, sombra larga teñida */
.glass{position:relative;background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.015) 55%),var(--surface);
  border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:0 1px 0 rgba(255,255,255,.07) inset,0 34px 80px -46px rgba(0,0,0,.9),0 30px 70px -50px rgba(30,158,144,.35)}
.glass::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(60% 50% at 0% 0%,rgba(94,227,207,.18),transparent 70%),linear-gradient(115deg,rgba(255,255,255,.07),transparent 40%);opacity:.9}
/* Borde iluminado (morado → menta) para la pieza activa */
.rim{position:relative}
.rim::after{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:var(--grad);pointer-events:none;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:.9}
.rim--glow{box-shadow:0 0 0 1px rgba(255,255,255,.04),0 0 40px -10px rgba(30,158,144,.55),0 0 40px -14px rgba(94,227,207,.45)}

/* Chips (como "Virtual card active" del panel de referencia) */
.chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--r-pill);font:500 .8rem/1.2 var(--font-body);
  background:rgba(255,255,255,.05);border:1px solid var(--line);color:var(--muted)}
.chip--ok{color:var(--brand);border-color:rgba(94,227,207,.35);background:rgba(94,227,207,.08)}
.chip--cian{color:var(--brand);border-color:rgba(94,227,207,.4);background:rgba(94,227,207,.1)}
.chip--ambar{color:var(--warn);border-color:rgba(245,196,81,.35);background:rgba(245,196,81,.08)}
.dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 10px currentColor}

/* Interruptor (el "Freeze switch" en nuestra versión: Pasar a humano) */
.switch{--w:44px;--h:26px;position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer;color:var(--muted);font-size:.9rem}
.switch input{position:absolute;opacity:0;width:0;height:0}
.switch__pista{width:var(--w);height:var(--h);border-radius:var(--r-pill);background:rgba(255,255,255,.08);border:1px solid var(--line);position:relative;transition:background-color var(--t-hover) var(--ease)}
.switch__pista::after{content:"";position:absolute;top:3px;left:3px;width:calc(var(--h) - 8px);height:calc(var(--h) - 8px);border-radius:50%;background:#fff;transition:transform var(--t-hover) var(--ease)}
.switch input:checked + .switch__pista{background:var(--brand)}
.switch input:checked + .switch__pista::after{transform:translateX(calc(var(--w) - var(--h)))}

/* Logo: el logotipo "Callsy X" de Luis, tal cual (PNG blanco sobre transparente). La X sola (img/callsy-x-x.png) es el favicon, el avatar y la viñeta */
.logo{display:inline-flex;align-items:center;gap:10px;min-height:44px;text-decoration:none;color:var(--ink)}
.logo__texto{height:20px;width:auto}

/* Cables (el "n8n" de Callsy X): línea con degradado y guiones que avanzan cuando el cable está encendido */
.cable{fill:none;stroke:url(#g-cable);stroke-width:2;stroke-linecap:round;opacity:.45}
.cable.is-on{opacity:1;stroke-dasharray:6 8;animation:cableFlujo 1.2s linear infinite}
.is-quieto .cable.is-on{animation-play-state:paused}
@keyframes cableFlujo{to{stroke-dashoffset:-28}}
.pulso{fill:#fff;filter:drop-shadow(0 0 6px rgba(94,227,207,.95)) drop-shadow(0 0 12px rgba(94,227,207,.6))}

/* Listas con la X del logotipo como viñeta */
.lista-x{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.lista-x li{display:flex;gap:12px;align-items:flex-start;color:var(--muted)}
.lista-x img{height:16px;width:auto;flex:none;margin-top:5px}

/* Secciones */
.seccion{padding-block:var(--section-y)}
.seccion--alt{background:var(--bg-2)}

/* Menos movimiento */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
  .cable.is-on{animation:none;stroke-dasharray:none}
}
