/* Cauce — estilos de la casa (ESTANDAR-UI-UX-APP) con matiz propio: esmeralda + dorado */
:root{
  --bg0:#060d0a; --bg1:#0a1410;
  --ink:#eaf5ef; --muted:#93ad9f; --faint:#5c7568;
  /* Paleta de marca Cauce: el verde-esmeralda del agua que corre + el dorado del capital */
  --esm:#10b981; --esm-2:#34d399; --esm-3:#6ee7b7; --oro:#e2b04a; --oro-2:#f0c56e;
  --agua:#7dd3c8; --danger:#fb7185;
  --glass:rgba(13,26,21,.58); --glass-3:rgba(255,255,255,.045);
  --line:rgba(147,173,159,.16); --line-soft:rgba(147,173,159,.09);
  --r-xl:24px; --r-lg:18px; --r-md:13px; --r-sm:9px;
  --blur:saturate(1.5) blur(16px);
  --shadow-1:0 18px 50px rgba(1,7,4,.5); --shadow-2:0 6px 18px rgba(1,7,4,.35);
  --glow:0 0 0 1px rgba(16,185,129,.28), 0 10px 30px rgba(16,185,129,.14);
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:radial-gradient(1200px 800px at 85% -10%, rgba(16,185,129,.10), transparent 60%),
             radial-gradient(900px 700px at -10% 110%, rgba(226,176,74,.08), transparent 55%),
             linear-gradient(180deg,var(--bg0),var(--bg1));
  color:var(--ink); min-height:100vh;
  font-family:"Segoe UI",system-ui,-apple-system,Roboto,sans-serif; line-height:1.55;
}

/* ── Auroras de fondo (decorativas) ── */
.bg-aurora{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.bg-aurora .blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.16;animation:deriva 26s var(--ease) infinite alternate}
.bg-aurora .b1{width:520px;height:520px;background:var(--esm);top:-160px;left:-120px}
.bg-aurora .b2{width:440px;height:440px;background:var(--oro);bottom:-140px;right:-100px;animation-delay:-9s}
.bg-aurora .b3{width:340px;height:340px;background:var(--agua);top:38%;left:56%;opacity:.10;animation-delay:-17s}
@keyframes deriva{from{transform:translate(0,0) scale(1)}to{transform:translate(60px,40px) scale(1.12)}}

/* ── Header de vidrio ── */
header.top{
  position:sticky;top:0;z-index:40;
  background:linear-gradient(180deg,rgba(13,26,21,.72),rgba(13,26,21,.5));
  backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);
  border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px clamp(16px,4vw,40px);
}
.marca{display:flex;align-items:baseline;gap:10px}
.marca .logo{font-size:1.28rem;font-weight:700;letter-spacing:.02em}
.marca .logo em{font-style:normal;background:linear-gradient(90deg,var(--esm-2),var(--oro-2));-webkit-background-clip:text;background-clip:text;color:transparent}
.marca .tag{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.14em}
.top nav{display:flex;gap:8px;flex-wrap:wrap}
.btn{
  border:1px solid var(--line);border-radius:var(--r-sm);background:var(--glass-3);color:var(--ink);
  padding:9px 16px;font-size:.9rem;cursor:pointer;transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s var(--ease);
}
.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-2);background:rgba(16,185,129,.10)}
.btn:focus-visible, .card-opcion:focus-visible, .opcion:focus-visible{outline:2px solid var(--esm-2);outline-offset:2px}
.btn-primario{
  background:linear-gradient(135deg,var(--esm),#0d9668);border:1px solid rgba(16,185,129,.55);
  box-shadow:var(--glow);font-weight:600;
}
.btn-primario:hover{background:linear-gradient(135deg,var(--esm-2),var(--esm))}
.btn-oro{background:linear-gradient(135deg,var(--oro),#c9962f);border:1px solid rgba(226,176,74,.5);color:#1c1405;font-weight:700}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}

main{max-width:980px;margin:0 auto;padding:clamp(20px,4vw,44px) clamp(16px,4vw,32px) 90px}

/* ── Hero ── */
.hero{text-align:center;padding:36px 0 26px}
.hero h1{font-size:clamp(1.7rem,4.4vw,2.7rem);font-weight:800;letter-spacing:-.01em}
.hero h1 span{background:linear-gradient(90deg,var(--esm-2),var(--oro-2));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{color:var(--muted);max-width:640px;margin:14px auto 4px;font-size:1.02rem}
.hero .kpi{display:flex;justify-content:center;gap:34px;margin-top:26px;flex-wrap:wrap}
.hero .kpi div{font-variant-numeric:tabular-nums}
.hero .kpi b{display:block;font-size:1.5rem;background:linear-gradient(90deg,var(--esm-3),var(--oro-2));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .kpi small{color:var(--faint);text-transform:uppercase;letter-spacing:.12em;font-size:.68rem}

/* ── Panel de vidrio (3 capas: gradiente interior + borde + brillo) ── */
.panel{
  position:relative;border-radius:var(--r-xl);padding:26px;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015)) padding-box,
             var(--glass);
  border:1px solid var(--line);
  box-shadow:var(--shadow-1), inset 0 1px 0 rgba(255,255,255,.07);
  backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);
}
.panel + .panel{margin-top:18px}

/* ── Wizard ── */
.progreso{display:flex;align-items:center;gap:10px;margin-bottom:22px}
.progreso .barra{flex:1;height:6px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}
.progreso .barra i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--esm),var(--oro));transition:width .45s var(--ease)}
.progreso .num{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.85rem;min-width:52px;text-align:right}
.paso-titulo{font-size:1.12rem;font-weight:700;margin-bottom:4px}
.paso-sub{color:var(--muted);font-size:.9rem;margin-bottom:18px}

.opciones{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.opcion{
  text-align:left;border:1px solid var(--line-soft);border-radius:var(--r-md);padding:13px 15px;cursor:pointer;
  background:var(--glass-3);color:var(--ink);font-size:.92rem;
  transition:border-color .18s var(--ease),background .18s var(--ease),transform .18s var(--ease);
}
.opcion:hover{border-color:rgba(16,185,129,.5);transform:translateY(-1px)}
.opcion.sel{border-color:var(--esm);background:rgba(16,185,129,.12);box-shadow:0 0 0 1px rgba(16,185,129,.35)}
.opcion small{display:block;color:var(--faint);margin-top:3px;font-size:.78rem}
select, input[type="text"], textarea{
  width:100%;background:rgba(6,13,10,.6);border:1px solid var(--line);border-radius:var(--r-md);
  color:var(--ink);padding:12px 14px;font-size:.95rem;font-family:inherit;
}
select:focus, input:focus, textarea:focus{outline:2px solid var(--esm-2);outline-offset:1px}
textarea{min-height:88px;resize:vertical}
label.campo{display:block;margin-bottom:14px}
label.campo span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:7px}

.wizard-nav{display:flex;justify-content:space-between;gap:10px;margin-top:22px}
.chips-dato{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 16px}
.chip{border:1px solid var(--line);border-radius:99px;padding:4px 12px;font-size:.78rem;color:var(--muted);background:var(--glass-3)}

/* ── Resultados: matches ── */
.cinta-fit{display:flex;align-items:center;gap:14px;margin-bottom:18px;flex-wrap:wrap}
.cinta-fit .grande{font-size:2.1rem;font-weight:800;font-variant-numeric:tabular-nums;background:linear-gradient(90deg,var(--esm-3),var(--oro-2));-webkit-background-clip:text;background-clip:text;color:transparent}
.match{
  border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:18px;margin-bottom:12px;
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01));
  transition:border-color .2s var(--ease)}
.match:hover{border-color:rgba(16,185,129,.45)}
.match-cab{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap}
.match-cab h3{font-size:1.02rem}
.match .tipo{display:inline-block;margin-top:4px;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.fit-badge{
  font-variant-numeric:tabular-nums;font-weight:800;font-size:1.25rem;
  border:1px solid rgba(16,185,129,.4);color:var(--esm-3);border-radius:var(--r-sm);padding:6px 12px;
  background:rgba(16,185,129,.10);
}
.fit-medio{border-color:rgba(226,176,74,.4);color:var(--oro-2);background:rgba(226,176,74,.08)}
.match ul{margin:10px 0 0;padding-left:18px;color:var(--muted);font-size:.88rem}
.match .razones li{color:#9fd8bf}
.match .gaps{margin-top:6px}
.match .gaps li{color:#e8c9a0}
.match .av{display:inline-block;margin-left:8px;font-size:.68rem;color:var(--oro-2);border:1px dashed rgba(226,176,74,.5);border-radius:6px;padding:1px 7px}
.match .link-fuente{display:inline-block;margin-top:10px;font-size:.82rem;color:var(--agua)}

/* ── Ruta ── */
.ruta-paso{display:flex;gap:16px;margin-bottom:14px}
.ruta-semana{
  min-width:64px;height:64px;border-radius:var(--r-md);display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-variant-numeric:tabular-nums;font-weight:800;color:var(--esm-3);
  border:1px solid rgba(16,185,129,.35);background:rgba(16,185,129,.08);font-size:1.15rem;
}
.ruta-semana small{font-size:.56rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600}
.ruta-cuerpo{flex:1;border-bottom:1px solid var(--line-soft);padding-bottom:14px}
.ruta-cuerpo h4{font-size:.98rem;margin-bottom:3px}
.ruta-cuerpo p{color:var(--muted);font-size:.86rem}
.ruta-cuerpo ul{margin:8px 0 0;padding-left:18px;color:var(--muted);font-size:.85rem}
.ruta-cuerpo a{color:var(--agua);font-size:.84rem;word-break:break-all}

/* ── Paywall honesto ── */
.paywall{border:1px dashed rgba(226,176,74,.55);border-radius:var(--r-lg);padding:22px;margin-top:8px;
  background:linear-gradient(180deg,rgba(226,176,74,.07),rgba(226,176,74,.02))}
.paywall h3{color:var(--oro-2)}
.paywall .precio{font-size:1.9rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--oro-2)}
.paywall small{display:block;color:var(--muted);margin-top:8px}
.demo-tag{display:inline-block;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--line);border-radius:6px;padding:2px 8px;color:var(--muted);margin-left:8px;vertical-align:middle}

/* ── Toasts (cero alert nativo) ── */
#toasts{position:fixed;bottom:22px;right:22px;z-index:100;display:flex;flex-direction:column;gap:10px;max-width:min(92vw,380px)}
.toast{
  border-radius:var(--r-md);padding:13px 16px;font-size:.9rem;color:var(--ink);
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02)) padding-box, var(--glass);
  border:1px solid var(--line);box-shadow:var(--shadow-1),inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:var(--blur);animation:toast-in .28s var(--ease);
}
.toast.ok{border-color:rgba(16,185,129,.5)}
.toast.err{border-color:rgba(251,113,133,.55)}
@keyframes toast-in{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}

/* ── Modal (3 salidas: ✕ + fondo + Escape) ── */
.modal-fondo{position:fixed;inset:0;z-index:60;background:rgba(2,8,5,.62);display:flex;align-items:center;justify-content:center;padding:18px;opacity:0;pointer-events:none;transition:opacity .22s var(--ease)}
.modal-fondo.abierto{opacity:1;pointer-events:auto}
.modal{
  width:min(720px,94vw);max-height:86vh;overflow:auto;border-radius:var(--r-xl);padding:24px;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015)) padding-box, var(--glass);
  border:1px solid var(--line);box-shadow:var(--shadow-1),inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:var(--blur);transform:scale(.94);transition:transform .22s var(--ease);position:relative;
}
.modal-fondo.abierto .modal{transform:scale(1)}
.modal .cerrar{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--glass-3);color:var(--muted);cursor:pointer;font-size:1rem;transition:color .15s}
.modal .cerrar:hover{color:var(--ink)}

/* ── Footer ── */
footer{border-top:1px solid var(--line);padding:26px clamp(16px,4vw,40px);color:var(--faint);font-size:.78rem;text-align:center}
footer a{color:var(--agua)}

.vignette{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(120% 120% at 50% 50%,transparent 55%,rgba(2,8,5,.55) 100%)}

/* ── Scrollbar propio ── */
::-webkit-scrollbar{width:11px}
::-webkit-scrollbar-thumb{background:rgba(16,185,129,.25);border-radius:99px;border:3px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:rgba(16,185,129,.45);background-clip:content-box;border:3px solid transparent}

/* ── Movimiento respetuoso ── */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001s !important;animation-iteration-count:1 !important;transition-duration:.001s !important;scroll-behavior:auto !important}
}

@media (max-width:560px){
  .ruta-paso{gap:10px}
  .ruta-semana{min-width:54px;height:54px;font-size:1rem}
  .hero .kpi{gap:18px}
  .match-cab .fit-badge{font-size:1.05rem}
}
