/* ──────────────────────────────────────────────────────────────────────
   Demo del chatbot de WhatsApp — /servicios/software

   Simula la interfaz de WhatsApp en modo oscuro. NO usa la marca ni el logo
   de WhatsApp: solo el lenguaje visual, y el demo va rotulado como
   simulación para que nadie lo confunda con la app real.

   Solo se carga en la página del demo, no en todo el sitio.
   ────────────────────────────────────────────────────────────────────── */

.wa-demo{ margin:0 auto; max-width:900px }

/* ── Pestañas de negocio ──────────────────────────────────────────── */
.wa-tabs{
  display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:22px;
}
.wa-tab{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 18px;border-radius:999px;cursor:pointer;
  font-family:'DM Sans',system-ui,sans-serif;font-size:.88rem;
  color:rgba(255,255,255,.72);
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.14);
  transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}
.wa-tab:hover{background:rgba(255,255,255,.09);transform:translateY(-1px)}
.wa-tab[aria-selected="true"]{
  color:#fff;background:rgba(0,168,132,.18);border-color:rgba(0,168,132,.6);
}
.wa-tab:focus-visible{outline:2px solid #15baff;outline-offset:2px}
.wa-tab i{font-style:normal;font-size:1rem;line-height:1}

/* ── Teléfono ─────────────────────────────────────────────────────── */
.wa-phone{
  margin:0 auto;width:100%;max-width:400px;
  border-radius:36px;padding:10px;
  background:linear-gradient(160deg,#2a2a33,#14141a);
  box-shadow:0 30px 80px rgba(0,0,0,.6),
             inset 0 1px 0 rgba(255,255,255,.12);
}
.wa-screen{
  border-radius:28px;overflow:hidden;
  display:flex;flex-direction:column;
  height:560px;
  background:#0b141a;
}

/* ── Barra superior ───────────────────────────────────────────────── */
.wa-top{
  display:flex;align-items:center;gap:11px;flex-shrink:0;
  padding:12px 14px;background:#202c33;
}
.wa-back{color:rgba(255,255,255,.6);font-size:1.2rem;line-height:1}
.wa-ava{
  width:38px;height:38px;border-radius:50%;flex-shrink:0;
  display:grid;place-items:center;font-size:1.1rem;
  background:linear-gradient(140deg,#00a884,#025c4c);
}
.wa-who{flex:1;min-width:0}
.wa-who b{
  display:block;font-family:'DM Sans',sans-serif;font-size:.92rem;font-weight:600;
  color:#e9edef;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.wa-who span{display:block;font-size:.72rem;color:#8696a0}
.wa-icons{display:flex;gap:16px;color:#8696a0;flex-shrink:0}
.wa-icons svg{width:17px;height:17px;display:block}

/* ── Hilo ─────────────────────────────────────────────────────────────
   El patrón de fondo es un SVG en línea, no una imagen: sin peticiones
   extra y sin depender de un archivo externo. */
.wa-thread{
  flex:1;overflow-y:auto;overscroll-behavior:contain;
  padding:16px 12px;display:flex;flex-direction:column;gap:3px;
  background-color:#0b141a;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.028' stroke-width='1.4'%3E%3Cpath d='M14 20c4-6 10-6 13 0M52 12c3 5 8 6 12 2M20 56c5-3 11-1 13 4M58 62c-4-4-4-9 0-12M34 38c3-4 8-4 11 0'/%3E%3Ccircle cx='68' cy='34' r='4'/%3E%3Ccircle cx='12' cy='70' r='3'/%3E%3C/g%3E%3C/svg%3E");
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.16) transparent;
}
.wa-thread::-webkit-scrollbar{width:6px}
.wa-thread::-webkit-scrollbar-thumb{background:rgba(255,255,255,.16);border-radius:99px}

/* WhatsApp ancla los mensajes abajo, no arriba. Se hace con margin-top:auto
   en el primer hijo y no con justify-content:flex-end, porque eso último
   vuelve inalcanzable la parte de arriba cuando el hilo se desborda. */
.wa-thread > :first-child{margin-top:auto}

.wa-dia{
  align-self:center;margin:4px 0 10px;padding:5px 12px;border-radius:8px;
  background:rgba(32,44,51,.92);color:#8696a0;font-size:.7rem;
}

.wa-msg{
  position:relative;max-width:78%;
  padding:6px 10px 18px 10px;border-radius:8px;
  font-size:.875rem;line-height:1.4;color:#e9edef;
  word-wrap:break-word;white-space:pre-wrap;
  box-shadow:0 1px 1px rgba(0,0,0,.28);
  animation:wa-in .24s ease both;
}
@keyframes wa-in{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}

.wa-msg.ellos{align-self:flex-start;background:#202c33;border-top-left-radius:2px}
.wa-msg.yo{align-self:flex-end;background:#005c4b;border-top-right-radius:2px}
/* mensajes seguidos del mismo lado: esquina normal, se ven agrupados */
.wa-msg.ellos + .wa-msg.ellos{border-top-left-radius:8px}
.wa-msg.yo + .wa-msg.yo{border-top-right-radius:8px}

.wa-hora{
  position:absolute;right:9px;bottom:4px;
  font-size:.62rem;color:rgba(233,237,239,.45);
  display:flex;align-items:center;gap:3px;
}
.wa-msg.yo .wa-hora{color:rgba(233,237,239,.5)}
.wa-check{width:13px;height:auto;display:block;color:#53bdeb}

/* "escribiendo…" */
.wa-typing{
  align-self:flex-start;display:flex;gap:3px;
  padding:11px 13px;border-radius:8px;border-top-left-radius:2px;
  background:#202c33;box-shadow:0 1px 1px rgba(0,0,0,.28);
}
.wa-typing i{
  width:6px;height:6px;border-radius:50%;background:#8696a0;
  animation:wa-bota 1.2s infinite;
}
.wa-typing i:nth-child(2){animation-delay:.16s}
.wa-typing i:nth-child(3){animation-delay:.32s}
@keyframes wa-bota{
  0%,60%,100%{transform:translateY(0);opacity:.45}
  30%{transform:translateY(-4px);opacity:1}
}

.wa-error{
  align-self:center;max-width:90%;margin:6px 0;
  padding:9px 13px;border-radius:8px;
  background:rgba(255,105,47,.12);border:1px solid rgba(255,105,47,.35);
  color:#ffb596;font-size:.78rem;text-align:center;line-height:1.45;
}

/* ── Sugerencias ──────────────────────────────────────────────────── */
.wa-sug{
  display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;
  padding:8px 12px 0;flex-shrink:0;
}
.wa-sug button{
  padding:7px 12px;border-radius:14px;cursor:pointer;
  font-family:'DM Sans',sans-serif;font-size:.78rem;
  color:#8fdcc8;background:rgba(0,168,132,.1);
  border:1px solid rgba(0,168,132,.42);
  transition:background .2s ease,transform .2s ease;
}
.wa-sug button:hover{background:rgba(0,168,132,.22);transform:translateY(-1px)}
.wa-sug button:focus-visible{outline:2px solid #15baff;outline-offset:2px}

/* ── Barra de escritura ───────────────────────────────────────────── */
.wa-bar{
  display:flex;align-items:flex-end;gap:8px;flex-shrink:0;
  padding:9px 10px;background:#202c33;
}
.wa-bar textarea{
  flex:1;resize:none;min-height:38px;max-height:88px;
  padding:9px 14px;border:0;border-radius:19px;
  font-family:'DM Sans',sans-serif;font-size:.86rem;line-height:1.4;
  color:#e9edef;background:#2a3942;
}
.wa-bar textarea::placeholder{color:#8696a0}
.wa-bar textarea:focus{outline:0}
.wa-send{
  width:38px;height:38px;flex-shrink:0;border:0;border-radius:50%;cursor:pointer;
  display:grid;place-items:center;color:#0b141a;background:#00a884;
  transition:transform .18s ease,opacity .2s ease;
}
.wa-send:hover:not(:disabled){transform:scale(1.06)}
.wa-send:disabled{opacity:.45;cursor:not-allowed}
.wa-send:focus-visible{outline:2px solid #15baff;outline-offset:2px}
.wa-send svg{width:18px;height:18px;display:block}

/* ── Aviso y CTA ──────────────────────────────────────────────────── */
.wa-nota{
  margin:16px auto 0;max-width:560px;text-align:center;
  font-size:.78rem;line-height:1.5;color:rgba(255,255,255,.45);
}
.wa-nota strong{color:rgba(255,255,255,.72);font-weight:600}

@media (max-width:560px){
  .wa-phone{padding:7px;border-radius:28px;max-width:100%}
  .wa-screen{height:520px;border-radius:22px}
  .wa-msg{max-width:86%}
  .wa-tab{padding:9px 14px;font-size:.82rem}
}

@media (prefers-reduced-motion:reduce){
  .wa-msg{animation:none}
  .wa-typing i{animation:none}
}
