/* =========================================================================
   ESTANZA · Estilos compartidos para index / registro / login / activar
   Estética premium clara: Airbnb + Stripe + Linear.
   ========================================================================= */
:root{
  --canvas:#F4F6FB;
  --canvas-2:#EEF1F7;
  --ink:#0F1230;
  --panel:#FFFFFF;
  --line:#E5E8F2;
  --mute:#6B7290;
  --brand:#5B3FE0;
  --brand2:#7C5CFF;
  --aqua:#38BDF8;
  --green:#10B981;
  --red:#DC2626;
  --grad:linear-gradient(135deg,#5B3FE0 0%,#38BDF8 100%);
  --shadow-sm:0 1px 2px rgba(15,18,48,.04), 0 1px 1px rgba(15,18,48,.03);
  --shadow-md:0 8px 22px rgba(15,18,48,.07), 0 2px 8px rgba(15,18,48,.05);
  --shadow-lg:0 22px 48px rgba(15,18,48,.12), 0 6px 18px rgba(15,18,48,.06);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  background:var(--canvas);
  color:var(--ink);
  font-family:'Manrope','Inter',system-ui,-apple-system,sans-serif;
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}
h1,h2,h3,.d{font-family:'Outfit','Inter',system-ui,sans-serif;letter-spacing:-.01em}
a{color:var(--brand);text-decoration:none}
a:hover{color:var(--brand2)}

/* ===== HEADER ===== */
.est-hdr{
  position:sticky;top:0;z-index:30;
  background:rgba(255,255,255,.85);backdrop-filter:saturate(160%) blur(14px);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid var(--line);box-shadow:var(--shadow-sm);
  padding:10px 28px;display:flex;align-items:center;justify-content:space-between;
}
.est-brand{display:flex;align-items:center;gap:11px}
.est-brand img.logo-horizontal{height:42px;width:auto;display:block}
.est-brand img.logo-icon{height:34px;width:34px;display:block}
.est-nav{display:flex;gap:22px;align-items:center}
.est-nav a{color:var(--ink);font-size:14px;font-weight:600}
.est-nav a.muted{color:var(--mute);font-weight:500}
.est-cta{background:var(--grad);color:#fff;padding:10px 18px;border-radius:11px;font-weight:600;font-size:14px;box-shadow:0 10px 26px -10px rgba(91,63,224,.55)}
.est-cta:hover{box-shadow:0 14px 32px -10px rgba(91,63,224,.7);color:#fff}

/* ===== CONTAINER ===== */
.est-wrap{max-width:1100px;margin:0 auto;padding:14px 24px 28px}
.est-wrap.narrow{max-width:520px;padding:48px 24px}

/* ===== HERO (index) ===== */
.est-hero{padding:34px 24px 26px;text-align:center}
.est-hero .hero-logo{display:block;margin:0 auto 14px;max-width:180px;width:52%;height:auto}
.est-hero h1{font-size:42px;font-weight:700;margin-bottom:12px;line-height:1.1}
.est-hero h1 .grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.est-hero p{font-size:15.5px;color:var(--mute);max-width:600px;margin:0 auto 22px;line-height:1.55}
.est-hero .ctas{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.est-btn{display:inline-block;padding:12px 24px;border-radius:12px;font-weight:600;font-size:14.5px;border:0;cursor:pointer;font-family:inherit;transition:.2s;text-decoration:none}
.est-btn.primary{background:var(--grad);color:#fff;box-shadow:0 12px 28px -12px rgba(91,63,224,.55)}
.est-btn.primary:hover{box-shadow:0 16px 36px -12px rgba(91,63,224,.7);transform:translateY(-1px);color:#fff}
.est-btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.est-btn.ghost:hover{box-shadow:var(--shadow-md);color:var(--ink)}
.est-btn.full{width:100%;padding:14px;font-size:15px}
.est-btn.secondary{background:#fff;color:var(--brand);border:1.5px solid var(--brand2);width:100%;padding:14px;font-size:15px;margin-top:10px}
.est-btn.secondary:hover{background:rgba(124,92,255,.05);color:var(--brand)}

.est-feat{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:8px}
.est-feat .f{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 22px;box-shadow:var(--shadow-md);transition:.2s}
.est-feat .f:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.est-feat .f .ic{width:38px;height:38px;border-radius:10px;background:rgba(124,92,255,.10);display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:11px}
.est-feat .f h3{font-size:16px;font-weight:700;margin-bottom:6px}
.est-feat .f p{font-size:13.5px;color:var(--mute);line-height:1.5}
@media(max-width:760px){.est-feat{grid-template-columns:1fr;gap:14px} .est-hero h1{font-size:32px} .est-hero{padding:22px 20px 18px} .est-hero .hero-logo{max-width:150px}}

/* ===== CARD ===== */
.est-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:36px;box-shadow:var(--shadow-lg)}
.est-card h2{font-size:24px;font-weight:700;margin-bottom:6px}
.est-card .sub{color:var(--mute);font-size:14px;margin-bottom:24px}

/* ===== ROLE SELECTOR ===== */
.est-roles{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:22px}
.est-role{background:#F4F6FB;border:1.5px solid var(--line);border-radius:13px;padding:13px 10px;cursor:pointer;text-align:center;transition:.15s}
.est-role:hover{border-color:#C9CFE0}
.est-role.on{background:rgba(124,92,255,.07);border-color:var(--brand2);box-shadow:0 0 0 3px rgba(124,92,255,.10)}
.est-role .ic{font-size:22px;margin-bottom:4px}
.est-role .lb{font-size:13px;font-weight:600}
@media(max-width:520px){.est-roles{grid-template-columns:1fr}}

/* ===== FORM ===== */
.est-form{display:flex;flex-direction:column;gap:14px}
.est-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:520px){.est-row{grid-template-columns:1fr}}
.est-fld{display:flex;flex-direction:column;gap:6px}
.est-fld label{font-size:12px;color:var(--mute);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.est-fld input, .est-fld select, .est-fld textarea{
  background:#F4F6FB;border:1px solid var(--line);color:var(--ink);
  border-radius:11px;padding:12px 14px;font:inherit;font-size:14px;outline:none;
  transition:.15s;font-family:inherit;
}
.est-fld input::placeholder, .est-fld textarea::placeholder{color:#A0A6BF}
.est-fld input:focus, .est-fld select:focus, .est-fld textarea:focus{
  border-color:var(--brand2);background:#fff;box-shadow:0 0 0 3px rgba(124,92,255,.10);
}
.est-fld textarea{resize:vertical;min-height:90px}

/* ===== MENSAJE ===== */
.estmsg{display:none;margin-top:14px;padding:14px 16px;border-radius:11px;font-size:14px;font-weight:600;line-height:1.4}
.est-ok{background:rgba(16,185,129,.10);color:var(--green);border:1px solid rgba(16,185,129,.25)}
.est-err{background:rgba(220,38,38,.07);color:var(--red);border:1px solid rgba(220,38,38,.20)}

/* ===== SUCCESS PANEL (post-registro) ===== */
.est-success{display:none;text-align:center;padding:8px 0}
.est-success.on{display:block}
.est-success .check{width:64px;height:64px;border-radius:50%;background:rgba(16,185,129,.12);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:32px;margin:0 auto 16px;font-weight:bold}
.est-success h3{font-size:22px;font-weight:700;margin-bottom:8px}
.est-success p{color:var(--mute);font-size:14px;margin-bottom:22px;line-height:1.5}

/* ===== FOOTER ===== */
.est-foot{padding:16px 24px;text-align:center;color:var(--mute);font-size:13px}
.est-foot a{color:var(--mute)}
.est-foot a:hover{color:var(--ink)}

/* ===== CHECKBOX RGPD ===== */
.est-check{display:flex;align-items:flex-start;gap:10px;padding:12px;background:#F4F6FB;border:1px solid var(--line);border-radius:11px;font-size:12px;color:var(--mute);line-height:1.5;cursor:pointer}
.est-check input{margin-top:2px;flex-shrink:0;accent-color:var(--brand)}
.est-check a{color:var(--brand);text-decoration:underline}
