
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }

:root {
  color-scheme: light;
  --ink:#14161F; --ink-2:#3A3F4B; --muted:#7B8194; --placeholder:#9CA1AE; --icon:#4B5060;
  --paper:#FFFFFF; --paper-warm:#FBFAF7; --line:#E8E5DE; --line-soft:#F0EEE9;
  --gold-1:#F8E6AE; --gold-2:#E9C877; --gold-3:#CF9F57; --gold-ink:#9A6F22;
  --radius-pill:999px;
  --font:'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ease:cubic-bezier(0.22, 1, 0.36, 1);
}

html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }

body {
  min-height:100vh; min-height:100dvh;
  font-family:var(--font); color:var(--ink); background:var(--paper);
  display:flex; justify-content:center; -webkit-font-smoothing:antialiased;
}

.bg-waves { position:fixed; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; }

.auth-card {
  position:relative; z-index:1; width:100%; max-width:520px; min-height:100vh; min-height:100dvh;
  display:flex; flex-direction:column;
  padding:max(28px, env(safe-area-inset-top)) 24px max(24px, env(safe-area-inset-bottom));
  animation:rise 0.55s var(--ease) both;
}
@keyframes rise { from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:translateY(0);} }

@media (min-width:600px) {
  body { padding:40px 20px; }
  .auth-card {
    margin:auto; min-height:0; padding:44px 40px 30px;
    background:rgba(255,255,255,0.8); border:1px solid var(--line-soft); border-radius:32px;
    box-shadow:0 40px 90px -50px rgba(20,22,31,0.22);
    -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  }
}

/* Logo */
.card-header { text-align:center; }
.logo-box { margin-bottom:22px; }
.logo-box img { width:150px; max-width:60%; height:auto; }

/* Flash */
.flash-zone { margin-top:0; }
.flash-msg {
  display:flex; align-items:flex-start; gap:10px; padding:13px 16px; border-radius:18px;
  font-size:14px; font-weight:500; margin:4px 0; line-height:1.5; color:var(--ink-2);
  border:1px solid var(--line); background:var(--paper-warm);
}
.flash-msg.success { background:#EFF9F3; border-color:#CDEBD9; color:#1E5B3A; }
.flash-msg.error   { background:#FDF1F0; border-color:#F5D0CC; color:#8A2C25; }
.flash-icon { font-size:15px; flex-shrink:0; margin-top:1px; }

/* Insignia de cupos */
.cupos-pill {
  display:inline-flex; align-items:center; gap:8px; padding:8px 16px; border-radius:var(--radius-pill);
  background:var(--paper-warm); border:1px solid var(--line); font-size:13.5px; font-weight:600; color:var(--ink-2);
}
.cupos-pill b { color:var(--gold-ink); font-weight:800; }
.cupos-dot { width:8px; height:8px; border-radius:50%; background:linear-gradient(135deg, var(--gold-1), var(--gold-3)); }

.hero { text-align:center; padding-top:6px; }
.form-title {
  font-size:clamp(28px, 8.4vw, 36px); font-weight:700; line-height:1.12; letter-spacing:-0.03em;
  color:var(--ink); margin:18px 0 10px;
}
.form-title em { font-style:normal; background:linear-gradient(100deg, var(--gold-2), var(--gold-3)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.form-sub { font-size:16px; color:var(--muted); line-height:1.55; margin-bottom:26px; }

/* Botón secundario de ancla */
.btn-ghost {
  display:inline-flex; align-items:center; justify-content:center; height:50px; padding:0 26px;
  border-radius:var(--radius-pill); border:1px solid var(--line); background:var(--paper);
  color:var(--ink); font:600 15px var(--font); text-decoration:none; transition:background .2s, border-color .2s;
}
.btn-ghost:hover { background:var(--paper-warm); border-color:#DAD6CC; }

/* Secciones */
.sec { margin-top:40px; }
.sec-eyebrow { font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-ink); margin-bottom:8px; }
.sec-title { font-size:24px; font-weight:700; letter-spacing:-0.02em; line-height:1.2; margin-bottom:6px; }
.sec-sub { font-size:15px; color:var(--muted); line-height:1.55; margin-bottom:20px; }

/* Beneficios */
.beneficios { display:grid; gap:12px; }
.beneficio {
  display:flex; gap:14px; align-items:flex-start; padding:16px 18px; border-radius:22px;
  background:var(--paper); border:1px solid var(--line); box-shadow:0 1px 2px rgba(20,22,31,0.03);
}
.beneficio-ico {
  width:40px; height:40px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--gold-1), var(--gold-2)); color:#1B1408;
}
.beneficio-ico svg { width:20px; height:20px; }
.beneficio h3 { font-size:16px; font-weight:700; margin-bottom:3px; letter-spacing:-0.01em; }
.beneficio p { font-size:14px; color:#5B6070; line-height:1.6; }
.aviso-ejemplo {
  margin-top:12px; padding:10px 14px; border-radius:14px; background:#FFF8E6; border:1px dashed var(--gold-3);
  font-size:12.5px; color:var(--gold-ink); line-height:1.5;
}

/* Simulador */
.sim { padding:22px 20px; border-radius:26px; background:var(--paper-warm); border:1px solid var(--line); }
.sim-row { margin-bottom:18px; }
.sim-row label { display:flex; justify-content:space-between; font-size:14px; font-weight:600; color:var(--ink-2); margin-bottom:8px; }
.sim-row label span { color:var(--gold-ink); font-weight:700; }
.sim-row input[type="range"] { width:100%; accent-color:var(--gold-3); height:28px; cursor:pointer; }
.sim-num {
  width:100%; height:48px; padding:0 18px; border-radius:var(--radius-pill); border:1px solid var(--line);
  background:var(--paper); font:500 16px var(--font); color:var(--ink); outline:none; margin-top:4px;
}
.sim-num:focus { border-color:var(--gold-3); box-shadow:0 0 0 4px rgba(207,159,87,0.16); }
.sim-result {
  margin-top:6px; padding:20px; border-radius:22px; text-align:center;
  background:linear-gradient(100deg, var(--gold-1) 0%, var(--gold-2) 48%, var(--gold-3) 100%); color:#1B1408;
  box-shadow:0 12px 24px -14px rgba(207,159,87,0.85), inset 0 1px 0 rgba(255,255,255,0.55);
}
.sim-result small { display:block; font-size:13px; font-weight:600; opacity:.8; }
.sim-big { font-size:34px; font-weight:800; letter-spacing:-0.03em; line-height:1.15; margin:2px 0 6px; }
.sim-year { font-size:14px; font-weight:600; }
.sim-nota { margin-top:12px; font-size:12px; color:var(--muted); line-height:1.55; text-align:center; }

/* Formulario */
.inp-wrap { position:relative; margin-bottom:14px; }
.inp-wrap .icon { position:absolute; left:20px; top:50%; transform:translateY(-50%); color:var(--icon); pointer-events:none; line-height:0; transition:color .2s; }
.inp-wrap .icon svg { width:20px; height:20px; }
.inp-wrap:focus-within .icon { color:var(--gold-ink); }
.eye-btn {
  position:absolute; right:10px; top:50%; transform:translateY(-50%); width:40px; height:40px; color:var(--icon);
  cursor:pointer; background:none; border:none; display:flex; align-items:center; justify-content:center;
  border-radius:50%; transition:color .2s, background .2s; line-height:0;
}
.eye-btn svg { width:20px; height:20px; }
.eye-btn:hover { color:var(--ink); background:var(--line-soft); }
.inp {
  width:100%; height:58px; padding:0 54px; border-radius:var(--radius-pill); border:1px solid var(--line);
  background:var(--paper); color:var(--ink); font:500 16px var(--font); outline:none;
  box-shadow:0 1px 2px rgba(20,22,31,0.03); transition:border-color .2s, box-shadow .2s;
  -webkit-appearance:none; appearance:none;
}
.inp::placeholder { color:var(--placeholder); font-weight:400; }
.inp:focus { border-color:var(--gold-3); box-shadow:0 0 0 4px rgba(207,159,87,0.16); }
.inp:-webkit-autofill { -webkit-box-shadow:0 0 0 40px #fff inset; -webkit-text-fill-color:var(--ink); }

.strength-bar { height:4px; background:#EEECE7; border-radius:4px; margin:-2px 10px 18px; overflow:hidden; }
.strength-fill { height:100%; border-radius:4px; width:0; transition:width .35s, background .35s; }

.checkbox-row { display:flex; align-items:flex-start; gap:12px; font-size:14px; color:#5B6070; margin-bottom:20px; line-height:1.55; }
.checkbox-row input[type="checkbox"] { width:20px; height:20px; margin-top:1px; accent-color:var(--gold-3); cursor:pointer; flex-shrink:0; }
.checkbox-row label { cursor:pointer; }
.link-gold { font-weight:600; color:var(--gold-ink); text-decoration:underline; text-decoration-color:rgba(154,111,34,0.35); text-underline-offset:3px; }

.didit-box {
  display:flex; gap:12px; align-items:flex-start; padding:14px 16px; border-radius:20px; margin-bottom:20px;
  background:var(--paper-warm); border:1px solid var(--line); font-size:13.5px; color:#5B6070; line-height:1.6;
}
.didit-box svg { width:22px; height:22px; flex-shrink:0; color:var(--gold-ink); margin-top:1px; }
.didit-box strong { color:var(--ink); font-weight:700; }

.btn-gold {
  width:100%; height:58px; padding:0 24px; border-radius:var(--radius-pill); border:none;
  background:linear-gradient(100deg, var(--gold-1) 0%, var(--gold-2) 48%, var(--gold-3) 100%);
  color:#1B1408; font:700 17px var(--font); cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; gap:10px; margin-top:6px;
  box-shadow:0 12px 24px -14px rgba(207,159,87,0.85), inset 0 1px 0 rgba(255,255,255,0.55);
  transition:transform .15s, box-shadow .2s, filter .2s; -webkit-tap-highlight-color:transparent;
}
.btn-gold svg { width:20px; height:20px; transition:transform .25s var(--ease); }
.btn-gold:hover { filter:brightness(1.03); transform:translateY(-1px); }
.btn-gold:hover svg { transform:translateX(3px); }
.btn-gold:active { transform:translateY(0) scale(0.99); }
.btn-gold:disabled { opacity:.5; cursor:not-allowed; filter:grayscale(.3); transform:none; }
.btn-gold.is-loading { pointer-events:none; opacity:.8; }
.btn-gold.is-loading svg { display:none; }
.btn-gold.is-loading::after {
  content:""; width:18px; height:18px; border-radius:50%;
  border:2px solid rgba(27,20,8,0.25); border-top-color:#1B1408; animation:spin .7s linear infinite;
}
@keyframes spin { to { transform:rotate(360deg); } }

.cupos-agotados { padding:18px; border-radius:20px; background:#FDF1F0; border:1px solid #F5D0CC; color:#8A2C25; font-size:14.5px; font-weight:500; line-height:1.6; text-align:center; margin-bottom:14px; }

.form-links { display:flex; justify-content:center; margin-top:22px; font-size:15px; }
.form-links a { color:#6B7080; font-weight:500; text-decoration:none; transition:color .2s; }
.form-links a:hover { color:var(--gold-ink); }

/* Footer legal */
.card-footer { margin-top:auto; padding-top:36px; text-align:center; }
.footer-text { font-size:12.5px; color:#9BA0AD; line-height:1.7; }
.footer-text a, .legal-links a { color:#7B8194; text-decoration:underline; text-decoration-color:#D8D4CA; text-underline-offset:3px; transition:color .2s; }
.footer-text a:hover, .legal-links a:hover { color:var(--gold-ink); }
.legal-links { display:flex; flex-wrap:wrap; justify-content:center; gap:4px 16px; margin-top:12px; font-size:12px; color:#9BA0AD; }

/* Registro primero; beneficios y simulador debajo, ocultos hasta pulsar el enlace */
#registro { order:4; margin-top:30px; }
.mas-info { order:5; }
.card-footer { order:6; }
.mas-info:not([hidden]) { animation:formIn .4s var(--ease) both; }
@keyframes formIn { from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);} }
.link-info {
  display:flex; align-items:center; justify-content:center; gap:6px; width:100%; margin:-2px 0 16px; padding:6px 0;
  background:none; border:0; font:600 14px var(--font); color:var(--gold-ink); cursor:pointer;
  text-decoration:underline; text-decoration-color:rgba(154,111,34,0.35); text-underline-offset:3px;
}
.link-info:hover { text-decoration-color:currentColor; }
.link-info svg { width:16px; height:16px; transition:transform .25s var(--ease); }
.link-info[aria-expanded="true"] svg { transform:rotate(180deg); }

.ben-destacado { padding:22px 20px; border-radius:26px; margin-bottom:6px;
  background:linear-gradient(100deg, var(--gold-1) 0%, var(--gold-2) 48%, var(--gold-3) 100%); color:#1B1408;
  box-shadow:0 12px 24px -14px rgba(207,159,87,0.85), inset 0 1px 0 rgba(255,255,255,0.55); }
.ben-tag { display:inline-block; font-size:11.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; opacity:.75; margin-bottom:8px; }
.ben-destacado h3 { font-size:21px; font-weight:800; letter-spacing:-0.02em; line-height:1.2; margin-bottom:8px; }
.ben-destacado p { font-size:14.5px; line-height:1.6; font-weight:500; }
.ben-grupo { font-size:13px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-ink); margin:26px 0 10px; }
.ben-lista { list-style:none; display:grid; gap:10px; }
.ben-lista li { display:flex; gap:12px; align-items:flex-start; padding:13px 15px; border-radius:18px; background:var(--paper); border:1px solid var(--line); font-size:14px; line-height:1.55; color:#5B6070; }
.ben-lista li b { color:var(--ink); font-weight:700; }
.ben-check { width:22px; height:22px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; margin-top:1px; background:linear-gradient(135deg, var(--gold-1), var(--gold-2)); color:#1B1408; }
.ben-check svg { width:13px; height:13px; }
.ben-nota { margin-top:18px; font-size:12px; line-height:1.55; color:var(--muted); text-align:center; }
.mi-cupo { padding:24px 20px; border-radius:26px; background:var(--paper-warm); border:1px solid var(--line); text-align:center; }
.mi-cupo-num { font-size:56px; font-weight:800; letter-spacing:-0.04em; line-height:1.1; background:linear-gradient(100deg, var(--gold-2), var(--gold-3)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.mi-cupo p { font-size:15px; color:#5B6070; line-height:1.6; margin:8px 0 18px; }
.mi-cupo a.btn-gold { text-decoration:none; }

@media (prefers-reduced-motion:reduce) { *, *::before, *::after { animation:none !important; transition:none !important; } html { scroll-behavior:auto; } }
