<!DOCTYPE html>

<html lang="es">
<head>
<meta charset="utf-8"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<title>Anualidades Indexadas | Siéntete Seguro</title>
<meta content="Anualidades indexadas en Puerto Rico — ingreso garantizado, protección del capital y crecimiento vinculado al mercado sin riesgo de pérdida. Pedro Rosado, CPIA — 30+ años. Evaluación privada." name="description"/>
<meta content="index,follow" name="robots"/>
<link href="https://sienteteseguropr.com/anualidades.html" rel="canonical"/>
<meta content="website" property="og:type"/>
<meta content="Anualidades Indexadas | Siéntete Seguro PR" property="og:title"/>
<meta content="Anualidades indexadas en Puerto Rico — ingreso garantizado, protección del capital y crecimiento vinculado al mercado sin riesgo de pérdida. Pedro Rosado, CPIA — 30+ años." property="og:description"/>
<meta content="https://sienteteseguropr.com/anualidades.html" property="og:url"/>
<meta content="https://sienteteseguropr.com/og-image.jpg" property="og:image"/>
<meta content="Siéntete Seguro PR" property="og:site_name"/>
<meta content="summary_large_image" name="twitter:card"/>
<meta content="Anualidades Indexadas | Siéntete Seguro PR" name="twitter:title"/>
<meta content="Anualidades indexadas en Puerto Rico — ingreso garantizado y protección del capital." name="twitter:description"/>
<script type="application/ld+json">{"@context":"https://schema.org","@type":"FinancialService","name":"Siéntete Seguro — Anualidades Indexadas","description":"Anualidades indexadas en Puerto Rico con ingreso garantizado y protección del capital","url":"https://sienteteseguropr.com/anualidades.html","provider":{"@type":"Person","name":"Pedro Rosado","jobTitle":"Diseñador de Estrategias Financieras, CPIA","telephone":"+17875943555","email":"pdrosado@sienteteseguropr.com"},"areaServed":{"@type":"State","name":"Puerto Rico"}}</script>

<link rel="stylesheet" href="brand.css"/>
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&amp;family=Barlow+Condensed:wght@300;400;500;600;700&amp;family=Barlow:wght@300;400;500&amp;display=swap" rel="stylesheet"/>
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
<style>
  :root {
    --navy: #0D1F3C;
    --navy-mid: #162d56;
    --navy-light: #1e3d74;
    --red: #C0272D;
    --red-light: #e03035;
    --gold: #C9A84C;
    --gray: #6D6E71;
    --light: #f4f6fa;
    --white: #ffffff;
    --success: #1a9e5f;
    --border: rgba(13,31,60,0.12);
  }

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

  body {
    font-family: 'Barlow', sans-serif;
    background: var(--light);
    color: var(--navy);
    min-height: 100vh;
  }

  /* ── HEADER ── */
  .header {
    background: var(--navy);
    padding: 20px 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 3px solid var(--red);
  }
  .logo-area { display: flex; align-items: center; gap: 14px; }
  .logo-shield {
    width: 44px; height: 44px;
    background: var(--red);
    clip-path: polygon(50% 0%, 100% 20%, 100% 70%, 50% 100%, 0% 70%, 0% 20%);
    display: flex; align-items: center; justify-content: center;
    font-family: 'Playfair Display', serif;
    color: white; font-size: 18px; font-weight: 700;
  }
  .logo-text { color: white; }
  .logo-text .brand { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 600; letter-spacing: 0.5px; }
  .logo-text .tagline { font-family: 'Barlow Condensed', sans-serif; font-size: 11px; font-weight: 400; color: var(--gold); letter-spacing: 2px; text-transform: uppercase; margin-top: 2px; }
  .header-badge {
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 6px;
    padding: 6px 14px;
    color: rgba(255,255,255,0.7);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 12px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
  }

  /* ── HERO ── */
  .hero {
    background: linear-gradient(135deg, var(--navy) 0%, var(--navy-mid) 60%, #1a3a6b 100%);
    padding: 52px 40px 48px;
    text-align: center;
    position: relative;
    overflow: hidden;
  }
  .hero::before {
    content: '';
    position: absolute; inset: 0;
    background: radial-gradient(ellipse at 70% 50%, rgba(192,39,45,0.12) 0%, transparent 60%);
  }
  .hero-eyebrow {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 12px; font-weight: 600;
    letter-spacing: 3px; text-transform: uppercase;
    color: var(--gold); margin-bottom: 14px;
  }
  .hero h1 {
    font-family: 'Playfair Display', serif;
    font-size: clamp(26px, 4vw, 42px);
    font-weight: 700; color: white;
    line-height: 1.15; margin-bottom: 16px;
  }
  .hero h1 span { color: var(--gold); }
  .hero p {
    font-size: 16px; color: rgba(255,255,255,0.72);
    max-width: 640px; margin: 0 auto 0;
    line-height: 1.6; font-weight: 300;
  }

  /* ── KEY PROMISE STRIP ── */
  .promise-strip {
    background: var(--red);
    display: flex; justify-content: center; gap: 0;
    flex-wrap: wrap;
  }
  .promise-item {
    display: flex; align-items: center; gap: 10px;
    padding: 14px 32px;
    border-right: 1px solid rgba(255,255,255,0.2);
    color: white;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 14px; font-weight: 500; letter-spacing: 0.5px;
  }
  .promise-item:last-child { border-right: none; }
  .promise-item .icon { font-size: 18px; }

  /* ── MAIN LAYOUT ── */
  .main {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 24px 60px;
  }

  /* ── CALCULATOR CARD ── */
  .calc-card {
    background: white;
    border-radius: 16px;
    box-shadow: 0 4px 32px rgba(13,31,60,0.10);
    overflow: hidden;
    margin-bottom: 32px;
  }
  .calc-header {
    background: var(--navy);
    padding: 22px 32px;
    display: flex; align-items: center; gap: 12px;
  }
  .calc-header-icon {
    width: 36px; height: 36px; border-radius: 8px;
    background: var(--red);
    display: flex; align-items: center; justify-content: center;
    font-size: 17px;
  }
  .calc-header h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 20px; font-weight: 600;
    color: white; letter-spacing: 0.5px;
  }
  .calc-header p { color: rgba(255,255,255,0.6); font-size: 13px; margin-top: 2px; }

  .calc-body { padding: 32px; }

  /* ── FORM GRID ── */
  .form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 24px;
    margin-bottom: 28px;
  }
  .form-group label {
    display: block;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 12px; font-weight: 600;
    letter-spacing: 1.5px; text-transform: uppercase;
    color: var(--gray); margin-bottom: 8px;
  }
  .form-group input,
  .form-group select {
    width: 100%; padding: 13px 16px;
    border: 2px solid var(--border);
    border-radius: 10px;
    font-family: 'Barlow', sans-serif;
    font-size: 15px; color: var(--navy);
    background: #fafbfd;
    transition: border-color 0.2s, box-shadow 0.2s;
    appearance: none;
  }
  .form-group input:focus,
  .form-group select:focus {
    outline: none;
    border-color: var(--navy);
    box-shadow: 0 0 0 3px rgba(13,31,60,0.08);
    background: white;
  }
  .form-group .input-prefix {
    position: relative;
  }
  .form-group .input-prefix span {
    position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
    color: var(--gray); font-weight: 600; font-size: 15px;
  }
  .form-group .input-prefix input { padding-left: 28px; }

  .carrier-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
    margin-bottom: 28px;
  }
  .carrier-card {
    border: 2px solid var(--border);
    border-radius: 10px;
    padding: 14px 16px;
    cursor: pointer;
    transition: all 0.2s;
    text-align: center;
    background: #fafbfd;
  }
  .carrier-card:hover { border-color: var(--navy-light); background: white; }
  .carrier-card.selected {
    border-color: var(--navy);
    background: var(--navy);
    color: white;
  }
  .carrier-card .c-name {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 14px; font-weight: 700; letter-spacing: 0.3px;
  }
  .carrier-card .c-cap {
    font-size: 11px; color: var(--gray); margin-top: 4px;
  }
  .carrier-card.selected .c-cap { color: rgba(255,255,255,0.65); }
  .carrier-card .c-rating {
    font-size: 10px; margin-top: 6px;
    background: rgba(13,31,60,0.06);
    border-radius: 4px; padding: 2px 6px;
    display: inline-block;
  }
  .carrier-card.selected .c-rating { background: rgba(255,255,255,0.15); color: white; }

  .index-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    margin-bottom: 28px;
  }
  .index-chip {
    border: 2px solid var(--border);
    border-radius: 10px; padding: 12px 16px;
    cursor: pointer; transition: all 0.2s;
    background: #fafbfd;
  }
  .index-chip:hover { border-color: var(--red); background: white; }
  .index-chip.selected { border-color: var(--red); background: var(--red); color: white; }
  .index-chip .i-name {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 14px; font-weight: 700;
  }
  .index-chip .i-ticker {
    font-size: 11px; color: var(--gray); margin-top: 3px;
  }
  .index-chip.selected .i-ticker { color: rgba(255,255,255,0.7); }

  /* ── CALCULATE BUTTON ── */
  .btn-calculate {
    width: 100%;
    padding: 18px;
    background: linear-gradient(135deg, var(--red) 0%, #a01e23 100%);
    color: white; border: none;
    border-radius: 12px;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 18px; font-weight: 700;
    letter-spacing: 1.5px; text-transform: uppercase;
    cursor: pointer;
    transition: all 0.2s;
    box-shadow: 0 4px 16px rgba(192,39,45,0.3);
  }
  .btn-calculate:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 24px rgba(192,39,45,0.4);
  }
  .btn-calculate:active { transform: translateY(0); }
  .btn-calculate:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }

  /* ── LOADING ── */
  .loading-state {
    display: none;
    text-align: center; padding: 48px;
  }
  .spinner {
    width: 48px; height: 48px;
    border: 3px solid var(--border);
    border-top-color: var(--navy);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    margin: 0 auto 16px;
  }
  @keyframes spin { to { transform: rotate(360deg); } }

  /* ── RESULTS ── */
  .results-section { display: none; }

  /* KPI CARDS */
  .kpi-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
    margin-bottom: 28px;
  }
  .kpi-card {
    background: white;
    border-radius: 14px;
    padding: 24px 22px;
    box-shadow: 0 2px 16px rgba(13,31,60,0.08);
    border-top: 4px solid var(--navy);
    position: relative; overflow: hidden;
  }
  .kpi-card.highlight { border-top-color: var(--red); }
  .kpi-card.success-card { border-top-color: var(--success); }
  .kpi-card::after {
    content: '';
    position: absolute; right: -20px; bottom: -20px;
    width: 80px; height: 80px;
    border-radius: 50%;
    background: rgba(13,31,60,0.03);
  }
  .kpi-label {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 11px; font-weight: 600;
    letter-spacing: 1.5px; text-transform: uppercase;
    color: var(--gray); margin-bottom: 8px;
  }
  .kpi-value {
    font-family: 'Playfair Display', serif;
    font-size: 32px; font-weight: 700; color: var(--navy);
    line-height: 1;
  }
  .kpi-card.highlight .kpi-value { color: var(--red); }
  .kpi-card.success-card .kpi-value { color: var(--success); }
  .kpi-sub { font-size: 12px; color: var(--gray); margin-top: 6px; }

  /* CHART */
  .chart-card {
    background: white; border-radius: 14px;
    box-shadow: 0 2px 16px rgba(13,31,60,0.08);
    padding: 28px; margin-bottom: 24px;
  }
  .chart-title {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 16px; font-weight: 700;
    letter-spacing: 0.5px; color: var(--navy);
    margin-bottom: 20px;
    display: flex; align-items: center; gap: 8px;
  }
  .chart-title::before {
    content: '';
    display: block; width: 4px; height: 18px;
    background: var(--red); border-radius: 2px;
  }
  .chart-container { position: relative; height: 340px; }

  /* YEAR TABLE */
  .table-card {
    background: white; border-radius: 14px;
    box-shadow: 0 2px 16px rgba(13,31,60,0.08);
    overflow: hidden; margin-bottom: 24px;
  }
  .table-header {
    background: var(--navy); padding: 18px 24px;
    display: flex; align-items: center; gap: 10px;
  }
  .table-header h3 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 16px; font-weight: 600;
    color: white; letter-spacing: 0.5px;
  }
  table { width: 100%; border-collapse: collapse; }
  thead th {
    background: var(--light);
    padding: 12px 16px;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 11px; font-weight: 700;
    letter-spacing: 1.5px; text-transform: uppercase;
    color: var(--gray); text-align: left;
  }
  tbody tr { border-bottom: 1px solid var(--border); transition: background 0.15s; }
  tbody tr:last-child { border-bottom: none; }
  tbody tr:hover { background: #f8f9fc; }
  tbody td {
    padding: 13px 16px;
    font-size: 14px; color: var(--navy);
  }
  .badge {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 3px 10px; border-radius: 20px;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 12px; font-weight: 600;
  }
  .badge.positive { background: rgba(26,158,95,0.1); color: var(--success); }
  .badge.zero { background: rgba(109,110,113,0.12); color: var(--gray); }
  .badge.protected { background: rgba(13,31,60,0.07); color: var(--navy); }
  .balance-cell { font-weight: 600; font-family: 'Barlow Condensed', sans-serif; font-size: 15px; }

  /* EXECUTIVE SUMMARY */
  .summary-card {
    background: linear-gradient(135deg, var(--navy) 0%, var(--navy-mid) 100%);
    border-radius: 14px;
    padding: 32px;
    color: white;
    margin-bottom: 24px;
    position: relative; overflow: hidden;
  }
  .summary-card::before {
    content: '';
    position: absolute; right: -40px; top: -40px;
    width: 200px; height: 200px; border-radius: 50%;
    background: rgba(255,255,255,0.03);
  }
  .summary-card::after {
    content: '';
    position: absolute; right: 20px; bottom: -30px;
    width: 120px; height: 120px; border-radius: 50%;
    background: rgba(192,39,45,0.15);
  }
  .summary-eyebrow {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 11px; font-weight: 600;
    letter-spacing: 2px; text-transform: uppercase;
    color: var(--gold); margin-bottom: 12px;
  }
  .summary-card h3 {
    font-family: 'Playfair Display', serif;
    font-size: 22px; font-weight: 700;
    margin-bottom: 20px; line-height: 1.3;
  }
  .summary-card h3 span { color: var(--gold); }
  .summary-points { list-style: none; display: flex; flex-direction: column; gap: 12px; }
  .summary-points li {
    display: flex; align-items: flex-start; gap: 12px;
    font-size: 14px; line-height: 1.5;
    color: rgba(255,255,255,0.85);
  }
  .summary-points li .bullet {
    width: 22px; height: 22px; border-radius: 50%;
    background: var(--red); flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 11px; margin-top: 1px;
  }

  /* DISCLAIMER */
  .disclaimer {
    background: rgba(109,110,113,0.08);
    border-left: 3px solid var(--gray);
    border-radius: 0 8px 8px 0;
    padding: 14px 18px;
    font-size: 11px; color: var(--gray);
    line-height: 1.6;
  }

  /* SECTION LABELS */
  .section-label {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 12px; font-weight: 700;
    letter-spacing: 2px; text-transform: uppercase;
    color: var(--gray); margin-bottom: 12px;
    display: flex; align-items: center; gap: 8px;
  }
  .section-label::after {
    content: ''; flex: 1; height: 1px;
    background: var(--border);
  }

  /* ERROR */
  .error-msg {
    display: none;
    background: rgba(192,39,45,0.07);
    border: 1px solid rgba(192,39,45,0.2);
    border-radius: 10px; padding: 14px 18px;
    color: var(--red); font-size: 14px;
    margin-bottom: 20px;
  }

  
  .nav{position:sticky;top:0;left:0;right:0;z-index:1000;height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;background:rgba(7,15,30,.96);backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid rgba(201,165,90,.15)}
  .nav .logo{display:flex;flex-direction:column;line-height:1;gap:3px;text-decoration:none}
  .nav .logo-name{font-family:'Playfair Display',serif;font-size:1.2rem;font-weight:700;color:#fff}
  .nav .logo-tag{font-family:'Barlow Condensed',sans-serif;font-size:.58rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
  .nav-links{display:flex;align-items:center;gap:26px;list-style:none}
  .nav-links a{font-family:'Barlow Condensed',sans-serif;font-size:.78rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.75);text-decoration:none}
  .nav-links a:hover,.nav-links a.active{color:#fff}
  .nav-cta{background:var(--red);color:#fff!important;padding:10px 18px;border-radius:6px}
  .nav-cta:hover{background:#a01e23}
  .hero{padding-top:64px}
  .floating-actions{bottom:20px;right:20px}
  @media (max-width: 900px){.nav{padding:0 18px;height:auto;min-height:70px;flex-wrap:wrap;padding-top:14px;padding-bottom:14px}.nav-links{width:100%;justify-content:center;flex-wrap:wrap;gap:14px;margin-top:10px}}

  @media (max-width: 640px) {
    .header { padding: 16px 20px; }
    .hero { padding: 36px 20px; }
    .calc-body { padding: 20px; }
    .main { padding: 20px 16px 40px; }
    .promise-item { padding: 10px 16px; font-size: 12px; }
  }

  /* ── PREMIUM ACTIONS ── */
  .premium-note {
    margin-top: 18px;
    padding: 16px 18px;
    background: rgba(192,39,45,0.06);
    border: 1px solid rgba(192,39,45,0.14);
    border-radius: 12px;
    color: var(--navy);
    font-size: 14px;
    line-height: 1.55;
  }
  .next-step-card {
    display: none;
    background: white;
    border-radius: 14px;
    box-shadow: 0 2px 16px rgba(13,31,60,0.08);
    overflow: hidden;
    margin: 24px 0;
  }
  .next-step-head {
    background: linear-gradient(135deg, var(--navy) 0%, var(--navy-mid) 100%);
    padding: 22px 24px;
    color: white;
  }
  .next-step-head h3 {
    font-family: 'Playfair Display', serif;
    font-size: 24px;
    margin-bottom: 8px;
  }
  .next-step-head p {
    color: rgba(255,255,255,0.78);
    line-height: 1.6;
    font-size: 14px;
  }
  .next-step-body {
    padding: 24px;
  }
  .lead-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
    margin-bottom: 16px;
  }
  .lead-grid textarea,
  .lead-grid input,
  .lead-grid select {
    width: 100%;
    padding: 13px 15px;
    border: 2px solid var(--border);
    border-radius: 10px;
    background: #fafbfd;
    font-family: 'Barlow', sans-serif;
    font-size: 15px;
    color: var(--navy);
  }
  .lead-grid textarea { min-height: 110px; resize: vertical; }
  .next-step-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 8px;
  }
  .action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 18px;
    border-radius: 10px;
    text-decoration: none;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 15px;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-weight: 700;
    border: none;
    cursor: pointer;
  }
  .action-btn.primary {
    background: linear-gradient(135deg, var(--red) 0%, #a01e23 100%);
    color: white;
    box-shadow: 0 4px 16px rgba(192,39,45,0.26);
  }
  .action-btn.wa {
    background: #25D366;
    color: white;
  }
  .action-btn.fb {
    background: #1877F2;
    color: white;
  }
  .inline-note {
    margin-top: 12px;
    color: var(--gray);
    font-size: 13px;
    line-height: 1.6;
  }
  .floating-actions {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .floating-actions a,
  .floating-actions button {
    border: none;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    justify-content: center;
    min-width: 56px;
    min-height: 56px;
    padding: 0 16px;
    border-radius: 999px;
    color: white;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(13,31,60,0.18);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 14px;
    letter-spacing: .6px;
    font-weight: 700;
  }
  .floating-actions .wa-float { background: #25D366; }
  .floating-actions .fb-float { background: #1877F2; }
  .floating-actions .ai-float { background: var(--navy); }
  .icon-svg {
    width: 22px;
    height: 22px;
    fill: currentColor;
    flex-shrink: 0;
  }
  .ai-panel {
    position: fixed;
    right: 18px;
    bottom: 206px;
    width: min(360px, calc(100vw - 32px));
    background: white;
    border-radius: 18px;
    box-shadow: 0 20px 50px rgba(13,31,60,0.22);
    border: 1px solid rgba(13,31,60,0.08);
    overflow: hidden;
    z-index: 1001;
    display: none;
  }
  .ai-panel.open { display: block; }
  .ai-head {
    background: linear-gradient(135deg, var(--navy) 0%, var(--navy-mid) 100%);
    color: white;
    padding: 18px 18px 14px;
  }
  .ai-head h4 {
    font-family: 'Playfair Display', serif;
    font-size: 21px;
    margin-bottom: 6px;
  }
  .ai-head p {
    color: rgba(255,255,255,0.78);
    font-size: 13px;
    line-height: 1.5;
  }
  .ai-body { padding: 16px 18px 18px; }
  .ai-quick {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
  }
  .ai-quick button {
    border: 1px solid rgba(13,31,60,0.1);
    background: #f7f9fc;
    color: var(--navy);
    border-radius: 999px;
    padding: 8px 12px;
    cursor: pointer;
    font-size: 12px;
    font-family: 'Barlow Condensed', sans-serif;
    letter-spacing: .5px;
    text-transform: uppercase;
    font-weight: 700;
  }
  .ai-response {
    background: #f8f9fc;
    border: 1px solid rgba(13,31,60,0.08);
    border-radius: 14px;
    padding: 14px;
    min-height: 124px;
    color: var(--navy);
    line-height: 1.6;
    font-size: 14px;
  }
  .ai-response strong { color: var(--red); }
  .ai-panel .mini-actions {
    display: flex;
    gap: 10px;
    margin-top: 12px;
  }
  .ai-panel .mini-actions a {
    flex: 1;
    text-align: center;
    border-radius: 10px;
    padding: 11px 12px;
    text-decoration: none;
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700;
    letter-spacing: .8px;
    text-transform: uppercase;
    font-size: 13px;
  }
  .ai-panel .mini-actions .mini-wa {
    background: #25D366;
    color: white;
  }
  .ai-panel .mini-actions .mini-fb {
    background: #1877F2;
    color: white;
  }

  @media (max-width: 640px) {
    .next-step-head h3 { font-size: 21px; }
    .floating-actions a span,
    .floating-actions button span { display: none; }
    .floating-actions a,
    .floating-actions button { width: 56px; padding: 0; }
    .ai-panel { bottom: 146px; right: 12px; width: calc(100vw - 24px); }
  }


.site-nav{position:sticky;top:0;z-index:1100;height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:rgba(7,15,30,.96);backdrop-filter:blur(20px);border-bottom:1px solid rgba(201,168,76,.18)}
.site-logo{display:flex;flex-direction:column;line-height:1;text-decoration:none}.site-logo strong{font-family:'Playfair Display',serif;font-size:1.2rem;color:#fff}.site-logo span{font-family:'Barlow Condensed',sans-serif;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-top:4px}
.site-links{display:flex;align-items:center;gap:22px;list-style:none}.site-links a{font-family:'Barlow Condensed',sans-serif;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.74);text-decoration:none}.site-links a:hover,.site-links a.act{color:var(--gold)}
.site-cta{display:inline-flex;align-items:center;gap:8px;background:var(--red);color:#fff;padding:10px 18px;border-radius:999px;text-decoration:none;font-family:'Barlow Condensed',sans-serif;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.page-section[id]{scroll-margin-top:100px}
.cta-band{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:22px;position:relative;z-index:2}
.cta-band a{text-decoration:none}
.benefit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin:0 0 28px}
.benefit-card{background:#fff;border:1px solid rgba(13,31,60,.08);border-radius:16px;padding:22px;box-shadow:0 6px 24px rgba(13,31,60,.06)}
.benefit-card h3{font-family:'Barlow Condensed',sans-serif;font-size:1rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}.benefit-card p{font-size:.95rem;line-height:1.65;color:var(--gray)}
.next-step-card{background:#fff;border-radius:16px;box-shadow:0 8px 28px rgba(13,31,60,.10);padding:28px;margin-top:24px}
.next-step-card h3{font-family:'Playfair Display',serif;font-size:1.8rem;color:var(--navy);margin-bottom:10px}.next-step-card p{color:var(--gray);line-height:1.7;margin-bottom:18px}
.lead-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.lead-grid textarea{grid-column:1/-1;min-height:110px;resize:vertical}.lead-grid input,.lead-grid select,.lead-grid textarea{width:100%;padding:13px 14px;border:2px solid var(--border);border-radius:12px;background:#fafbfd;font-family:'Barlow',sans-serif}
.lead-grid label{display:block;font-family:'Barlow Condensed',sans-serif;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gray);margin-bottom:7px}
.next-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.next-actions .btn-secondary{display:inline-flex;align-items:center;justify-content:center;padding:14px 18px;border-radius:999px;background:var(--navy);color:#fff;text-decoration:none;font-family:'Barlow Condensed',sans-serif;letter-spacing:.08em;text-transform:uppercase;font-weight:700}
@media(max-width:860px){.site-nav{padding:0 16px;height:auto;min-height:70px;flex-wrap:wrap;gap:10px 14px;padding-top:12px;padding-bottom:12px}.site-links{flex-wrap:wrap;gap:12px}.site-cta{width:100%;justify-content:center}}

[id]{scroll-margin-top:100px}
.utility-dock{position:fixed;right:18px;bottom:18px;z-index:1200;display:flex;flex-direction:column;gap:10px;align-items:flex-end}
.utility-fab{width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 28px rgba(13,31,60,.22);border:1px solid rgba(255,255,255,.15);cursor:pointer;transition:transform .2s ease, box-shadow .2s ease;text-decoration:none}
.utility-fab:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 16px 34px rgba(13,31,60,.28)}
.utility-fab svg{width:24px;height:24px;display:block}
.utility-fab.whatsapp{background:#25D366}
.utility-fab.facebook{background:#1877F2}
.utility-fab.assistant{background:#0D1F3C}
.utility-fab-label{display:none}
.ai-panel{position:fixed;right:88px;bottom:18px;width:min(360px,calc(100vw - 110px));background:#fff;border-radius:18px;box-shadow:0 20px 60px rgba(13,31,60,.22);border:1px solid rgba(13,31,60,.08);overflow:hidden;z-index:1200;transform:translateY(16px);opacity:0;pointer-events:none;transition:all .22s ease}
.ai-panel.open{transform:none;opacity:1;pointer-events:auto}
.ai-head{background:linear-gradient(135deg,#0D1F3C 0%,#162d56 100%);padding:18px 18px 16px;color:#fff}
.ai-head strong{display:block;font-family:'Playfair Display',Georgia,serif;font-size:1.1rem}
.ai-head span{display:block;margin-top:6px;color:rgba(255,255,255,.75);font-size:.92rem;line-height:1.5}
.ai-body{padding:16px 16px 18px;background:#fff}
.ai-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ai-chip{border:1px solid rgba(13,31,60,.12);background:#f7f9fc;border-radius:12px;padding:12px 10px;font-family:'Barlow',sans-serif;font-size:.92rem;color:#0D1F3C;cursor:pointer;transition:all .2s ease;text-align:left}
.ai-chip:hover{border-color:#C0272D;background:#fff}
.ai-response{margin-top:12px;padding:14px;border-radius:14px;background:#f4f6fa;color:#1C1D1F;font-size:.93rem;line-height:1.6;border:1px solid rgba(13,31,60,.06)}
.ai-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.ai-link{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:10px 14px;font-family:'Barlow Condensed',sans-serif;font-size:.84rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-decoration:none}
.ai-link.wa{background:#25D366;color:#fff}.ai-link.fb{background:#1877F2;color:#fff}.ai-link.close{background:#edf1f7;color:#0D1F3C}
.brand-qr-box,.brand-qr,.brand-qr-cap,.brand-qr-sub,.qr,.qr-wrap,.qr-box{display:none !important}
.brand-access .brand-card{grid-template-columns:1fr !important}
@media(max-width:768px){.utility-dock{right:14px;bottom:14px}.utility-fab{width:54px;height:54px}.ai-panel{right:14px;left:14px;bottom:84px;width:auto}.ai-grid{grid-template-columns:1fr}}


/* === Siéntete Seguro Unified Brand System === */
:root{
  --navy:#0D1F3C;
  --navy-mid:#142b50;
  --navy-light:#1a3666;
  --navy-dark:#07111f;
  --red:#C0272D;
  --red-dark:#961e23;
  --gold:#C9A55A;
  --gold-light:#E0C875;
}
.nav, nav{
  background:rgba(7,15,30,.94) !important;
  border-bottom:1px solid rgba(201,165,90,.18) !important;
}
.logo-name,.brand-name{
  font-family:'Playfair Display',Georgia,serif !important;
  color:#fff !important;
}
.logo-tag,.brand-tag{
  color:var(--gold) !important;
  opacity:.86 !important;
}
.nav-links a{
  color:rgba(255,255,255,.72) !important;
}
.nav-links a:hover,.nav-links a.act{
  color:var(--gold) !important;
}
.nav-cta,.btn-primary,.btn-red{
  background:var(--red) !important;
  border-color:var(--red) !important;
  color:#fff !important;
}
.nav-cta:hover,.btn-primary:hover,.btn-red:hover{
  background:var(--red-dark) !important;
}
a[href="/politica-privacidad.html"],a[href="politica-privacidad.html"]{
  text-decoration:underline;
}


/* === AUDITORÍA FINAL · Siéntete Seguro responsive + branding === */
:root{
  --navy:#0D1F3C;
  --navy-mid:#142b50;
  --navy-light:#1a3666;
  --navy-dark:#07111f;
  --red:#C0272D;
  --red-dark:#961e23;
  --gold:#C9A55A;
  --gold-light:#E0C875;
}
html,body{overflow-x:hidden!important}
img,svg{max-width:100%}
.logo-name,.brand-name{
  font-family:'Playfair Display',Georgia,serif!important;
  color:#fff!important;
  font-weight:700!important;
}
.logo-name .brand-red,.brand-name span,.brand-red{
  color:var(--red)!important;
}
.logo-tag,.brand-tag{
  color:var(--gold)!important;
  opacity:.88!important;
  letter-spacing:.18em!important;
}
.nav,nav{
  background:rgba(7,15,30,.94)!important;
  border-bottom:1px solid rgba(201,165,90,.18)!important;
}
.nav-links a{color:rgba(255,255,255,.74)!important}
.nav-links a:hover,.nav-links a.act{color:var(--gold)!important}
.nav-cta,.btn-primary,.btn-red{
  background:var(--red)!important;
  border-color:var(--red)!important;
  color:#fff!important;
}
.nav-cta:hover,.btn-primary:hover,.btn-red:hover{background:var(--red-dark)!important}
.sr{opacity:1!important;transform:none!important}
.sec{padding:72px 0!important}
.sec-sm{padding:46px 0!important}
.sec-head{margin-bottom:34px!important}
.sub{margin-top:12px!important}
.ctaf,.ctai{padding:64px 0!important}
.footer{padding:48px 0 24px!important}
[id]{scroll-margin-top:92px}
.lead-msg:empty,.ai-response:empty,.modal-stats:empty,.summaryCard:empty,.kpiRow:empty,.future-results:empty,.result:empty{display:none!important}

@media(max-width:980px){
  .wrap,.wrap-w{padding-left:24px!important;padding-right:24px!important}
  .hero-layout,.ph-layout,.grid-2,.bio-grid,.cards,.premium-services-grid,.service-grid,.strategy-grid,.problem-grid,.benefit-grid,.valuation-grid,.lead-grid,.diag-wrap,.closing-grid{grid-template-columns:1fr!important}
  .hero-card,.ph-card,.funnel-card,.result-panel,.closing-result{position:relative!important;top:auto!important;max-width:none!important;margin-left:0!important}
}
@media(max-width:768px){
  .wrap,.wrap-w{padding-left:20px!important;padding-right:20px!important}
  .nav,nav{min-height:72px!important;height:auto!important}
  .nav .wrap,.nav-inner{min-height:72px!important;display:flex!important;align-items:center!important}
  .logo-name,.brand-name{font-size:1.08rem!important;line-height:1.05!important}
  .logo-tag,.brand-tag{font-size:.58rem!important;letter-spacing:.14em!important}
  .nav-links{
    display:none!important;
    position:absolute!important;
    top:100%!important;
    left:0!important;
    right:0!important;
    background:rgba(7,15,30,.98)!important;
    padding:14px 20px!important;
    flex-direction:column!important;
    gap:0!important;
    border-bottom:1px solid rgba(201,165,90,.18)!important;
    z-index:9999!important;
  }
  .nav-links.open{display:flex!important}
  .burger{display:flex!important}
  .nav-links li,.nav-links a{width:100%!important}
  .nav-links a{display:block!important;padding:12px 0!important;text-align:left!important}
  .sec{padding:48px 0!important}
  .sec-sm{padding:34px 0!important}
  .sec-head{margin-bottom:26px!important}
  .hero,.ph{padding-top:104px!important;padding-bottom:42px!important}
  .ph-inner,.hero-inner{padding:28px 0 22px!important}
  .h-xl{font-size:clamp(2.15rem,10vw,3.25rem)!important}
  .h-lg,.ttl{font-size:clamp(1.75rem,8vw,2.55rem)!important}
  .sub,.hero-sub,.ph-sub,p{font-size:1rem!important}
  .btn,.btn-lg{width:100%!important;justify-content:center!important;white-space:normal!important;text-align:center!important}
  .hero-acts,.ph-acts,.hero-actions,.result-actions{gap:10px!important}
  .ctaf,.ctai{padding:42px 0!important}
  .footer,.foot-grid{padding-top:34px!important}
}



/* === Siéntete Seguro Social Standard Final === */
.ss-float-actions{position:fixed!important;right:20px!important;bottom:20px!important;z-index:9999!important;display:flex!important;flex-direction:column!important;gap:12px!important}
.ss-float-btn{width:62px!important;height:62px!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;box-shadow:0 14px 34px rgba(37,211,102,.30),0 10px 28px rgba(0,0,0,.24)!important;border:2px solid rgba(255,255,255,.9)!important;overflow:hidden!important;transition:transform .2s ease,box-shadow .2s ease!important}
.ss-float-btn:hover{transform:translateY(-3px)!important}.ss-float-btn.ss-whatsapp{background:#25D366!important;color:#fff!important}.ss-float-btn svg{width:40px!important;height:40px!important;fill:#fff!important}
.ss-footer-social{display:flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;margin-top:14px!important}
.ss-footer-icon{width:40px!important;height:40px!important;border-radius:50%!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border:1px solid rgba(255,255,255,.14)!important;box-shadow:0 10px 24px rgba(0,0,0,.18)!important;transition:transform .2s ease,opacity .2s ease!important}
.ss-footer-icon:hover{transform:translateY(-2px)!important}.ss-footer-icon svg{width:24px!important;height:24px!important;fill:#fff!important}.ss-footer-whatsapp{background:#25D366!important}.ss-footer-facebook{background:#1877F2!important}
@media(max-width:768px){.ss-float-actions{right:14px!important;bottom:14px!important}.ss-float-btn{width:56px!important;height:56px!important}.ss-float-btn svg{width:36px!important;height:36px!important}}

</style>
<!-- Global Tracking: Meta Pixel + Google Analytics -->
<script async="" src="https://www.googletagmanager.com/gtag/js?id=G-S1JBXDYB4F"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-S1JBXDYB4F');
</script>
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '796996033487432');
fbq('track', 'PageView');
window.ssTrack = function(name, params){
  try{
    params = params || {};
    params.page_path = location.pathname;
    if (typeof fbq === 'function') {
      if (['Lead','Contact','ViewContent','CompleteRegistration','Schedule'].includes(name)) fbq('track', name, params);
      else fbq('trackCustom', name, params);
    }
    if (typeof gtag === 'function') gtag('event', String(name).toLowerCase(), params);
  }catch(e){}
};
</script>
<noscript><img alt="" height="1" src="https://www.facebook.com/tr?id=796996033487432&amp;ev=PageView&amp;noscript=1" style="display:none" width="1"/></noscript>
<!-- End Global Tracking -->
<style>
/* === Anualidades Flow Advanced Modules === */
.ann-bridge{
  max-width:980px;
  margin:44px auto 26px;
  background:linear-gradient(135deg,#0D1F3C,#07111f);
  border:1px solid rgba(201,165,90,.22);
  border-radius:24px;
  padding:28px;
  box-shadow:0 22px 60px rgba(13,31,60,.16);
  color:#fff;
}
.ann-bridge .eyebrow{
  display:block;
  color:#E4C989;
  font-family:'Barlow Condensed',sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:.75rem;
  font-weight:700;
  margin-bottom:8px;
}
.ann-bridge h3{
  font-family:'Playfair Display',serif;
  font-size:clamp(1.6rem,3vw,2.3rem);
  margin:0 0 10px;
  color:#fff;
}
.ann-bridge p{
  margin:0;
  color:rgba(255,255,255,.74);
  line-height:1.7;
}
.ann-module{
  padding:72px 0;
  margin-top:36px;
}
.ann-module.light{
  background:
    radial-gradient(circle at 80% 10%, rgba(201,165,90,.12), transparent 30%),
    linear-gradient(180deg,#fff 0%,#f5f7fa 100%);
  border-radius:34px;
}
.ann-module.dark{
  background:
    radial-gradient(circle at 82% 10%, rgba(201,165,90,.13), transparent 31%),
    linear-gradient(135deg,#07111f 0%,#0D1F3C 58%,#142b50 100%);
  border-radius:34px;
  color:#fff;
}
.ann-module .ann-head{
  text-align:center;
  max-width:860px;
  margin:0 auto 34px;
  padding:0 22px;
}
.ann-module .ann-head .eye{
  color:#C0272D;
}
.ann-module.dark .ann-head .eye{
  color:#E4C989;
}
.ann-module .ann-head h2{
  color:#0D1F3C;
  font-family:'Playfair Display',serif;
  font-size:clamp(2rem,4vw,3.3rem);
  line-height:1.08;
  margin:10px 0 12px;
}
.ann-module.dark .ann-head h2{
  color:#fff;
}
.ann-module .ann-head p{
  color:#667085;
  line-height:1.72;
  margin:0 auto;
}
.ann-module.dark .ann-head p{
  color:rgba(255,255,255,.70);
}
.ann-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  align-items:stretch;
}
.ann-card{
  background:#fff;
  border:1px solid rgba(13,31,60,.10);
  border-radius:24px;
  padding:26px;
  box-shadow:0 18px 48px rgba(13,31,60,.08);
}
.ann-card.dark{
  background:linear-gradient(135deg,#0D1F3C,#07111f);
  color:#fff;
  border-color:rgba(255,255,255,.10);
}
.ann-card h3{
  font-family:'Playfair Display',serif;
  color:#0D1F3C;
  font-size:1.55rem;
  margin:0 0 10px;
}
.ann-card.dark h3,
.ann-module.dark .ann-card h3{
  color:#fff;
}
.ann-card p{
  color:#667085;
  line-height:1.7;
  margin:0 0 18px;
}
.ann-card.dark p,
.ann-module.dark .ann-card p{
  color:rgba(255,255,255,.72);
}
.ann-controls{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:18px;
}
.ann-control{
  background:#f8fafc;
  border:1px solid #e5e7eb;
  border-radius:16px;
  padding:14px;
}
.ann-control label{
  display:flex;
  justify-content:space-between;
  gap:8px;
  color:#0D1F3C;
  font-family:'Barlow Condensed',sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:.72rem;
  font-weight:700;
  margin-bottom:8px;
}
.ann-control strong{
  color:#C0272D;
  font-family:'Playfair Display',serif;
  letter-spacing:0;
  text-transform:none;
}
.ann-control input{
  width:100%;
}
.ann-chart{
  position:relative;
  height:330px;
  margin-top:18px;
}
.ann-table{
  width:100%;
  border-collapse:collapse;
  margin-top:18px;
  overflow:hidden;
  border-radius:16px;
}
.ann-table th,.ann-table td{
  padding:12px 13px;
  border-bottom:1px solid rgba(13,31,60,.08);
  font-size:.9rem;
}
.ann-table th{
  text-align:left;
  font-family:'Barlow Condensed',sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#667085;
  font-size:.68rem;
  background:#f8fafc;
}
.ann-table td{
  color:#344054;
}
.ann-table td:last-child,.ann-table th:last-child{text-align:right}
.ann-kpis{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
  margin:20px 0;
}
.ann-kpi{
  border-radius:16px;
  padding:16px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.10);
}
.ann-kpi small{
  display:block;
  color:rgba(255,255,255,.52);
  font-family:'Barlow Condensed',sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:.66rem;
  margin-bottom:6px;
}
.ann-kpi strong{
  color:#E4C989;
  font-family:'Playfair Display',serif;
  font-size:1.5rem;
}
.ann-narrative{
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  padding:18px;
  color:rgba(255,255,255,.82);
  line-height:1.75;
}
.ann-single-cta{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  min-height:54px;
  border-radius:999px;
  background:#C0272D;
  color:#fff!important;
  text-decoration:none!important;
  padding:15px 24px;
  font-family:'Barlow Condensed',sans-serif;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:700;
  margin-top:18px;
  box-shadow:0 14px 30px rgba(192,39,45,.24);
}
.ann-disclaimer{
  margin-top:18px;
  color:rgba(255,255,255,.46);
  font-size:.82rem;
  line-height:1.6;
}
.ann-steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin-top:26px;
}
.ann-step{
  background:#fff;
  border:1px solid rgba(13,31,60,.10);
  border-radius:20px;
  padding:20px;
  box-shadow:0 14px 34px rgba(13,31,60,.06);
}
.ann-step b{
  display:block;
  color:#C0272D;
  font-family:'Barlow Condensed',sans-serif;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-size:.74rem;
  margin-bottom:8px;
}
.ann-step h4{
  margin:0 0 8px;
  color:#0D1F3C;
  font-family:'Playfair Display',serif;
  font-size:1.2rem;
}
.ann-step p{
  margin:0;
  color:#667085;
  line-height:1.65;
  font-size:.94rem;
}
@media(max-width:980px){
  .ann-grid,.ann-steps{grid-template-columns:1fr}
}
@media(max-width:680px){
  .ann-module{padding:54px 0;border-radius:24px}
  .ann-card,.ann-bridge{padding:22px}
  .ann-controls,.ann-kpis{grid-template-columns:1fr}
  .ann-chart{height:280px}
}
</style>
<style>
/* === Impacto Visual Anualidades Premium === */
.impact-close{margin-top:38px;padding:76px 0;border-radius:34px;background:radial-gradient(circle at 80% 8%,rgba(201,165,90,.18),transparent 30%),radial-gradient(circle at 10% 88%,rgba(192,39,45,.12),transparent 32%),linear-gradient(135deg,#07111f 0%,#0D1F3C 58%,#142b50 100%);color:#fff;position:relative;overflow:hidden}
.impact-close:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(201,165,90,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(201,165,90,.035) 1px,transparent 1px);background-size:64px 64px;pointer-events:none}
.impact-close .wrap{position:relative;z-index:2}.impact-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:28px;align-items:center}
.impact-copy .eye{color:#E4C989}.impact-copy h2{color:#fff;font-family:'Playfair Display',serif;font-size:clamp(2.1rem,4.7vw,4rem);line-height:1.02;margin:10px 0 16px}.impact-copy p{color:rgba(255,255,255,.74);line-height:1.75;font-size:1.03rem;max-width:650px}
.impact-warning{margin-top:20px;padding:18px;border:1px solid rgba(201,165,90,.26);background:rgba(201,165,90,.10);border-radius:18px;color:rgba(255,255,255,.84);line-height:1.65}.impact-warning b{color:#E4C989}
.impact-panel{background:rgba(255,255,255,.065);border:1px solid rgba(255,255,255,.12);border-radius:28px;padding:28px;box-shadow:0 24px 74px rgba(0,0,0,.24)}
.impact-panel-top{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.impact-panel-top small{color:rgba(255,255,255,.52);display:block;font-family:'Barlow Condensed',sans-serif;letter-spacing:.14em;text-transform:uppercase;font-weight:700;font-size:.72rem}
.impact-badge{display:inline-flex;align-items:center;gap:8px;border-radius:999px;background:rgba(192,39,45,.14);border:1px solid rgba(192,39,45,.26);color:#fecaca;padding:8px 12px;font-family:'Barlow Condensed',sans-serif;letter-spacing:.12em;text-transform:uppercase;font-weight:700;font-size:.68rem;white-space:nowrap}
.impact-number{font-family:'Playfair Display',serif;font-size:clamp(3.2rem,7vw,5.6rem);color:#E4C989;line-height:.95;margin:8px 0 12px;word-break:break-word}.impact-sub{color:rgba(255,255,255,.72);line-height:1.65}
.impact-bars{display:grid;gap:13px;margin:24px 0 20px}.impact-bar-row{display:grid;grid-template-columns:110px 1fr auto;gap:12px;align-items:center}.impact-bar-label{color:rgba(255,255,255,.62);font-family:'Barlow Condensed',sans-serif;letter-spacing:.1em;text-transform:uppercase;font-size:.72rem}
.impact-bar-track{height:16px;border-radius:999px;background:rgba(255,255,255,.10);overflow:hidden}.impact-bar-fill{height:100%;width:0%;border-radius:999px;background:linear-gradient(90deg,#C0272D,#E4C989);transition:width 1.1s ease}.impact-bar-fill.safe{background:linear-gradient(90deg,#C9A55A,#E4C989)}
.impact-bar-value{min-width:96px;text-align:right;color:#fff;font-weight:700}.impact-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.impact-mini{border-radius:16px;padding:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.10)}
.impact-mini small{display:block;color:rgba(255,255,255,.48);font-family:'Barlow Condensed',sans-serif;letter-spacing:.12em;text-transform:uppercase;font-size:.62rem;margin-bottom:6px}.impact-mini strong{color:#fff;font-family:'Playfair Display',serif;font-size:1.22rem}
.impact-close-text{margin-top:18px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.11);border-radius:18px;padding:18px;color:rgba(255,255,255,.82);line-height:1.75}.impact-close-text b{color:#E4C989}
.impact-cta{display:inline-flex;justify-content:center;align-items:center;min-height:54px;border-radius:999px;background:#C0272D;color:#fff!important;text-decoration:none!important;padding:15px 24px;font-family:'Barlow Condensed',sans-serif;letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-top:18px;box-shadow:0 14px 30px rgba(192,39,45,.25)}
@media(max-width:980px){.impact-grid{grid-template-columns:1fr}}@media(max-width:680px){.impact-close{padding:54px 0;border-radius:24px}.impact-panel{padding:22px}.impact-panel-top{flex-direction:column}.impact-bar-row{grid-template-columns:1fr;gap:7px}.impact-bar-value{text-align:left}.impact-mini-grid{grid-template-columns:1fr}}
</style>
<style>
/* === Anualidades Interactive Conversion Upgrade === */
.ann-interactive-trust{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin:22px 0 16px;
}
.ann-trust-item{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(201,165,90,.22);
  border-radius:16px;
  padding:14px 15px;
  color:rgba(255,255,255,.86);
  font-weight:600;
  line-height:1.45;
}
.ann-trust-item b{
  color:#E4C989;
}
.ann-anti-skeptic{
  margin:12px 0 0;
  color:rgba(255,255,255,.72);
  line-height:1.7;
  font-size:1rem;
  max-width:820px;
}
.ann-live-preview{
  margin:28px 0 24px;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:18px;
  align-items:stretch;
}
.ann-live-card{
  background:linear-gradient(135deg,#0D1F3C,#07111f);
  border:1px solid rgba(201,165,90,.24);
  border-radius:22px;
  padding:22px;
  color:#fff;
  box-shadow:0 18px 44px rgba(13,31,60,.16);
}
.ann-live-card.light{
  background:#fff;
  color:#0D1F3C;
  border-color:rgba(13,31,60,.10);
}
.ann-live-card small{
  display:block;
  font-family:'Barlow Condensed',sans-serif;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#C9A55A;
  font-weight:700;
  font-size:.72rem;
  margin-bottom:7px;
}
.ann-live-card.light small{
  color:#C0272D;
}
.ann-live-card h3{
  margin:0 0 10px;
  font-family:'Playfair Display',serif;
  font-size:1.45rem;
  color:inherit;
}
.ann-live-card p{
  color:rgba(255,255,255,.72);
  line-height:1.65;
  margin:0;
}
.ann-live-card.light p{
  color:#667085;
}
.ann-live-number{
  font-family:'Playfair Display',serif;
  color:#E4C989;
  font-size:clamp(2.3rem,5vw,4.2rem);
  line-height:1;
  margin:12px 0 8px;
}
.ann-live-card.light .ann-live-number{
  color:#C0272D;
}
.ann-live-bars{
  display:grid;
  gap:12px;
  margin-top:18px;
}
.ann-live-bar-row{
  display:grid;
  grid-template-columns:115px 1fr auto;
  gap:10px;
  align-items:center;
}
.ann-live-bar-label{
  font-family:'Barlow Condensed',sans-serif;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-size:.72rem;
  color:rgba(255,255,255,.62);
}
.ann-live-card.light .ann-live-bar-label{
  color:#667085;
}
.ann-live-bar-track{
  height:14px;
  border-radius:999px;
  overflow:hidden;
  background:rgba(255,255,255,.12);
}
.ann-live-card.light .ann-live-bar-track{
  background:#e5e7eb;
}
.ann-live-bar-fill{
  height:100%;
  width:0%;
  border-radius:999px;
  background:linear-gradient(90deg,#C0272D,#E4C989);
  transition:width .8s ease;
}
.ann-live-bar-fill.safe{
  background:linear-gradient(90deg,#C9A55A,#E4C989);
}
.ann-live-bar-value{
  min-width:90px;
  text-align:right;
  color:#fff;
  font-weight:700;
}
.ann-live-card.light .ann-live-bar-value{
  color:#0D1F3C;
}
.ann-precalc-box{
  margin:20px 0 10px;
  background:linear-gradient(135deg,rgba(201,165,90,.12),rgba(13,31,60,.06));
  border:1px solid rgba(201,165,90,.22);
  border-radius:18px;
  padding:18px;
  color:#0D1F3C;
  line-height:1.65;
}
.ann-precalc-box b{
  color:#C0272D;
}
.ann-post-result-close{
  margin:20px 0;
  background:linear-gradient(135deg,#0D1F3C,#07111f);
  border:1px solid rgba(201,165,90,.24);
  border-radius:22px;
  padding:24px;
  color:#fff;
  box-shadow:0 16px 44px rgba(13,31,60,.15);
}
.ann-post-result-close h3{
  margin:0 0 10px;
  color:#E4C989;
  font-family:'Playfair Display',serif;
  font-size:1.65rem;
}
.ann-post-result-close p{
  color:rgba(255,255,255,.78);
  line-height:1.72;
  margin:0 0 10px;
}
.ann-post-result-close .mini-question{
  font-weight:700;
  color:#fff;
}
@media(max-width:900px){
  .ann-interactive-trust,
  .ann-live-preview{
    grid-template-columns:1fr;
  }
}
@media(max-width:640px){
  .ann-live-bar-row{
    grid-template-columns:1fr;
    gap:6px;
  }
  .ann-live-bar-value{
    text-align:left;
  }
}


/* === AUDITORÍA GLOBAL FINAL · Legibilidad + Header + Conversión === */
:root{
  --ss-navy:#0D1F3C;
  --ss-navy-dark:#07111f;
  --ss-red:#C0272D;
  --ss-gold:#C9A55A;
  --ss-gold-light:#E4C989;
  --ss-muted:#667085;
}
html{scroll-behavior:smooth!important}
[id]{scroll-margin-top:96px!important}
body{overflow-x:hidden!important}
img,svg,video,canvas{max-width:100%!important}
.nav,.header,nav{
  min-height:76px!important;
}
.logo-name,.brand-name,.logo-text .brand,.brand{
  font-size:clamp(1.32rem,1.9vw,1.72rem)!important;
  line-height:1.05!important;
  letter-spacing:.01em!important;
}
.logo-tag,.brand-tag,.logo-text .tagline{
  font-size:clamp(.64rem,.82vw,.78rem)!important;
  letter-spacing:.20em!important;
}
.nav-links a,.header-badge{
  font-size:clamp(.76rem,.9vw,.9rem)!important;
}
.nav-inner,.nav,.header{
  gap:20px!important;
}
.hero p,.sub,.sub-w,p,li{
  text-wrap:pretty;
}
.bg-dark p,.bg-navy p,.hero p,.card.dark p,.ann-card.dark p,.ann-module.dark p,.footer p,footer p,
[class*="dark"] p,[class*="navy"] p,[class*="hero"] p{
  color:rgba(255,255,255,.76)!important;
}
.bg-dark h1,.bg-dark h2,.bg-dark h3,.bg-navy h1,.bg-navy h2,.bg-navy h3,.hero h1,.hero h2,.hero h3,
.card.dark h1,.card.dark h2,.card.dark h3,.ann-card.dark h1,.ann-card.dark h2,.ann-card.dark h3,
[class*="dark"] h1,[class*="dark"] h2,[class*="dark"] h3{
  color:#fff!important;
}
.bg-dark .eye,.bg-navy .eye,.hero .eye,.hero-eyebrow,.eye-gold,[class*="dark"] .eye{
  color:var(--ss-gold-light)!important;
}
.bg-gray p,.bg-white p,.card p,.benefit-card p,.step p,.item p,.service p{
  color:#4B5563!important;
}
.bg-gray h1,.bg-gray h2,.bg-gray h3,.bg-white h1,.bg-white h2,.bg-white h3,.card h1,.card h2,.card h3{
  color:var(--ss-navy)!important;
}
input,select,textarea{
  color:var(--ss-navy)!important;
  background:#fff!important;
}
input::placeholder,textarea::placeholder{
  color:#6B7280!important;
  opacity:1!important;
}
button,.btn,a.btn,.action-btn{
  text-decoration:none!important;
}
.btn-red,.btn-primary,.nav-cta,.action-btn.primary,.btn-wa{
  color:#fff!important;
}
.btn-ghost{
  color:#fff!important;
}
.btn-outline,.btn-outline-gold{
  color:var(--ss-navy)!important;
}
.bg-dark .btn-outline,.bg-navy .btn-outline,.hero .btn-outline,.bg-dark .btn-outline-gold,.bg-navy .btn-outline-gold{
  color:#fff!important;
}
.lead-msg:empty,.ai-response:empty,.modal-stats:empty,.summaryCard:empty,.kpiRow:empty,.future-results:empty,.result:empty{
  display:none!important;
}
.ss-float-actions{
  position:fixed!important;
  right:20px!important;
  bottom:20px!important;
  z-index:9999!important;
  display:flex!important;
  flex-direction:column!important;
  gap:12px!important;
}
.ss-float-btn{
  width:62px!important;
  height:62px!important;
  border-radius:50%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-shadow:0 14px 34px rgba(37,211,102,.30),0 10px 28px rgba(0,0,0,.24)!important;
  border:2px solid rgba(255,255,255,.9)!important;
  overflow:hidden!important;
  background:#25D366!important;
  color:#fff!important;
}
.ss-float-btn svg{width:40px!important;height:40px!important;color:#fff!important}
.ss-footer-social{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  margin-top:18px!important;
}
.ss-footer-icon{
  width:42px!important;
  height:42px!important;
  border-radius:50%!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border:1px solid rgba(255,255,255,.14)!important;
  box-shadow:0 10px 24px rgba(0,0,0,.18)!important;
  color:#fff!important;
}
.ss-footer-icon svg{width:25px!important;height:25px!important;color:#fff!important}
.ss-footer-whatsapp{background:#25D366!important}
.ss-footer-facebook{background:#1877F2!important}
.ss-anchor-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 10px;
  border-radius:999px;
  border:1px solid rgba(201,165,90,.22);
  color:var(--ss-gold-light)!important;
  background:rgba(201,165,90,.08);
  font-family:'Barlow Condensed',sans-serif;
  font-size:.68rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:700;
}
@media(max-width:980px){
  .nav-links{gap:16px!important}
  .wrap,.wrap-w{padding-left:24px!important;padding-right:24px!important}
}
@media(max-width:768px){
  .nav,.header,nav{min-height:72px!important}
  .logo-name,.brand-name,.logo-text .brand,.brand{font-size:1.28rem!important}
  .logo-tag,.brand-tag,.logo-text .tagline{font-size:.62rem!important}
  .ss-float-actions{right:14px!important;bottom:14px!important}
  .ss-float-btn{width:56px!important;height:56px!important}
  .ss-float-btn svg{width:36px!important;height:36px!important}
}

</style>

<style>
/* === Pedro Rosado Photos + CPIA Authority Blocks === */
.pedro-photo-card{
  position:relative;
  overflow:hidden;
  border-radius:28px;
  background:linear-gradient(135deg,#07111f,#0D1F3C);
  border:1px solid rgba(201,165,90,.22);
  box-shadow:0 24px 70px rgba(13,31,60,.24);
}
.pedro-photo-card img{
  width:100%;
  height:100%;
  min-height:360px;
  object-fit:cover;
  object-position:center;
  display:block;
  filter:saturate(1.02) contrast(1.02);
}
.pedro-photo-overlay{
  position:absolute;
  left:18px;
  right:18px;
  bottom:18px;
  padding:16px 18px;
  border-radius:18px;
  background:rgba(7,15,30,.78);
  border:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(12px);
  color:#fff;
}
.pedro-photo-overlay strong{
  display:block;
  font-family:'Playfair Display',Georgia,serif;
  font-size:1.18rem;
  color:#fff;
  line-height:1.2;
}
.pedro-photo-overlay span{
  display:block;
  margin-top:5px;
  font-family:'Barlow Condensed',sans-serif;
  color:#E4C989;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:.72rem;
  font-weight:700;
}
.pedro-authority-section{
  padding:72px 0;
  background:linear-gradient(180deg,#fff 0%,#f5f7fa 100%);
}
.pedro-authority-grid{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:34px;
  align-items:center;
}
.pedro-authority-copy .eyebrow,
.pedro-authority-copy .eye{
  color:#C0272D!important;
}
.pedro-authority-copy h2{
  font-family:'Playfair Display',Georgia,serif;
  color:#0D1F3C;
  font-size:clamp(2rem,4vw,3.15rem);
  line-height:1.08;
  margin:8px 0 14px;
}
.pedro-authority-copy p{
  color:#4B5563;
  line-height:1.75;
  font-size:1.03rem;
}
.pedro-cred-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:20px;
}
.pedro-cred{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 12px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(13,31,60,.10);
  color:#0D1F3C;
  font-family:'Barlow Condensed',sans-serif;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-size:.72rem;
  font-weight:700;
  box-shadow:0 8px 22px rgba(13,31,60,.06);
}
.pedro-cred::before{
  content:"✓";
  color:#C0272D;
  font-weight:900;
}
@media(max-width:900px){
  .pedro-authority-grid{grid-template-columns:1fr}
  .pedro-photo-card img{min-height:320px}
}
</style>


<!-- === FIX GLOBAL DE LEGIBILIDAD · Siéntete Seguro PR === -->
<style id="ss-legibility-fix">
/* Corrige texto blanco heredado accidentalmente sobre fondos claros.
   No altera lógica, formularios, endpoints, calculadoras ni scripts. */

/* Superficies claras: texto principal oscuro */
.bg-white,
.bg-gray,
.bg-light,
.card:not(.dark),
.cbox,
.form-card,
.table-card,
.chart-card,
.kpi-card,
.next-step-card,
.tipo-card,
.topic,
.ann-card,
.prod,
.perfil,
.svc-card,
.carrier-card,
.comp-card:not(.featured),
.faq-item,
.compare-shell,
.term-rows,
.pain,
.field,
.lead-grid,
.calc-card,
.result-panel,
.closing-result,
.mdrt-stat,
.pstat,
.footer-card,
main .card:not(.dark) {
  color: var(--navy, #0D1F3C) !important;
}

/* Texto dentro de superficies claras */
.bg-white p,
.bg-gray p,
.bg-light p,
.card:not(.dark) p,
.cbox p,
.form-card p,
.table-card p,
.chart-card p,
.kpi-card p,
.next-step-card p,
.tipo-card p,
.topic p,
.ann-card p,
.prod p,
.perfil p,
.carrier-card p,
.comp-card:not(.featured) p,
.faq-item p,
.compare-shell p,
.term-rows p,
.pain p,
.calc-card p,
.result-panel p,
.closing-result p,
.bg-white li,
.bg-gray li,
.bg-light li,
.card:not(.dark) li,
.cbox li,
.form-card li,
.tipo-card li,
.topic li,
.ann-card li,
.prod li,
.perfil li,
.carrier-card li,
.comp-card:not(.featured) li,
.faq-item li,
.compare-shell li,
.term-rows li {
  color: #4B5563 !important;
}

/* Títulos dentro de superficies claras */
.bg-white h1,
.bg-white h2,
.bg-white h3,
.bg-white h4,
.bg-gray h1,
.bg-gray h2,
.bg-gray h3,
.bg-gray h4,
.bg-light h1,
.bg-light h2,
.bg-light h3,
.bg-light h4,
.card:not(.dark) h1,
.card:not(.dark) h2,
.card:not(.dark) h3,
.card:not(.dark) h4,
.cbox h1,
.cbox h2,
.cbox h3,
.cbox h4,
.form-card h1,
.form-card h2,
.form-card h3,
.form-card h4,
.table-card h1,
.table-card h2,
.table-card h3,
.table-card h4,
.chart-card h1,
.chart-card h2,
.chart-card h3,
.chart-card h4,
.kpi-card h1,
.kpi-card h2,
.kpi-card h3,
.kpi-card h4,
.next-step-card h1,
.next-step-card h2,
.next-step-card h3,
.next-step-card h4,
.tipo-card h1,
.tipo-card h2,
.tipo-card h3,
.tipo-card h4,
.topic h1,
.topic h2,
.topic h3,
.topic h4,
.ann-card h1,
.ann-card h2,
.ann-card h3,
.ann-card h4,
.prod h1,
.prod h2,
.prod h3,
.prod h4,
.perfil h1,
.perfil h2,
.perfil h3,
.perfil h4,
.carrier-card h1,
.carrier-card h2,
.carrier-card h3,
.carrier-card h4,
.comp-card:not(.featured) h1,
.comp-card:not(.featured) h2,
.comp-card:not(.featured) h3,
.comp-card:not(.featured) h4,
.faq-item h1,
.faq-item h2,
.faq-item h3,
.faq-item h4,
.compare-shell h1,
.compare-shell h2,
.compare-shell h3,
.compare-shell h4,
.term-rows h1,
.term-rows h2,
.term-rows h3,
.term-rows h4 {
  color: var(--navy, #0D1F3C) !important;
}

/* Labels, subtítulos y detalles en zonas claras */
.bg-white .sub,
.bg-gray .sub,
.bg-light .sub,
.card:not(.dark) .sub,
.cbox .sub,
.form-card .sub,
.tipo-card .sub,
.topic .sub,
.ann-card .sub,
.prod .sub,
.perfil .sub,
.carrier-card .sub,
.compare-shell .sub,
.term-rows .sub,
.field label,
.cfield label,
.clbl,
.kpi-label,
.kpi-sub,
.fine,
.inline-note,
.tipo-txt,
.topic-txt,
.ann-txt,
.prod-txt,
.ptxt,
.cp-txt,
.ip-txt,
.der-txt,
.carrier-products,
.compare-sub,
.compare-plan span,
.term-row-lbl {
  color: #667085 !important;
}

/* Formularios en fondos claros */
input,
select,
textarea {
  color: var(--navy, #0D1F3C) !important;
  background-color: #fff !important;
}
input::placeholder,
textarea::placeholder {
  color: #6B7280 !important;
  opacity: 1 !important;
}

/* Tablas claras */
table th,
.compare-table th {
  color: #526070 !important;
}
table td,
.compare-table td {
  color: var(--navy, #0D1F3C) !important;
}
.compare-table .compare-plan strong,
.compare-row-title,
.term-row-val {
  color: var(--navy, #0D1F3C) !important;
}

/* Mantener blanco SOLO donde el fondo realmente es oscuro */
.bg-dark,
.bg-navy,
.hero,
.page-hero,
.ph,
.ctaf,
.ctai,
.summary-card,
.warn-card,
.term-card,
.strategy-panel,
.mdrt-card,
.card.dark,
.comp-card.featured,
.tipo-box,
.ss-box,
.footer,
footer,
.nav,
.header,
.urgency-card,
.scards,
.scard,
.ph-card,
.hero-card,
.cres {
  color: #fff !important;
}
.bg-dark p,
.bg-navy p,
.hero p,
.page-hero p,
.ph p,
.ctaf p,
.ctai p,
.summary-card p,
.warn-card p,
.term-card p,
.strategy-panel p,
.mdrt-card p,
.card.dark p,
.comp-card.featured p,
.tipo-box p,
.ss-box p,
.footer p,
footer p,
.urgency-card p,
.scard p,
.ph-card p,
.hero-card p,
.cres p {
  color: rgba(255,255,255,.74) !important;
}
.bg-dark h1,
.bg-dark h2,
.bg-dark h3,
.bg-dark h4,
.bg-navy h1,
.bg-navy h2,
.bg-navy h3,
.bg-navy h4,
.hero h1,
.hero h2,
.hero h3,
.hero h4,
.page-hero h1,
.page-hero h2,
.page-hero h3,
.page-hero h4,
.ph h1,
.ph h2,
.ph h3,
.ph h4,
.ctaf h1,
.ctaf h2,
.ctaf h3,
.ctaf h4,
.ctai h1,
.ctai h2,
.ctai h3,
.ctai h4,
.summary-card h1,
.summary-card h2,
.summary-card h3,
.summary-card h4,
.warn-card h1,
.warn-card h2,
.warn-card h3,
.warn-card h4,
.term-card h1,
.term-card h2,
.term-card h3,
.term-card h4,
.strategy-panel h1,
.strategy-panel h2,
.strategy-panel h3,
.strategy-panel h4,
.mdrt-card h1,
.mdrt-card h2,
.mdrt-card h3,
.mdrt-card h4,
.card.dark h1,
.card.dark h2,
.card.dark h3,
.card.dark h4,
.comp-card.featured h1,
.comp-card.featured h2,
.comp-card.featured h3,
.comp-card.featured h4,
.tipo-box h1,
.tipo-box h2,
.tipo-box h3,
.tipo-box h4,
.ss-box h1,
.ss-box h2,
.ss-box h3,
.ss-box h4,
.footer h1,
.footer h2,
.footer h3,
.footer h4,
footer h1,
footer h2,
footer h3,
footer h4,
.urgency-card h1,
.urgency-card h2,
.urgency-card h3,
.urgency-card h4,
.scard h1,
.scard h2,
.scard h3,
.scard h4,
.ph-card h1,
.ph-card h2,
.ph-card h3,
.ph-card h4,
.hero-card h1,
.hero-card h2,
.hero-card h3,
.hero-card h4,
.cres h1,
.cres h2,
.cres h3,
.cres h4 {
  color: #fff !important;
}

/* Botones: conservar contraste correcto */
.btn-red,
.btn-primary,
.nav-cta,
.action-btn.primary,
.btn-wa,
.action-btn.wa,
.wa-float,
.ss-float-btn {
  color: #fff !important;
}
.btn-white {
  background:#fff !important;
  color: var(--red, #C0272D) !important;
}
.btn-outline,
.btn-outline-gold {
  color: var(--navy, #0D1F3C) !important;
}
.bg-dark .btn-outline,
.bg-navy .btn-outline,
.hero .btn-outline,
.page-hero .btn-outline,
.ph .btn-outline,
.bg-dark .btn-outline-gold,
.bg-navy .btn-outline-gold,
.hero .btn-outline-gold,
.page-hero .btn-outline-gold,
.ph .btn-outline-gold {
  color:#fff !important;
}

/* Enlaces del menú siempre visibles */
.nav-links a {
  color: rgba(255,255,255,.78) !important;
}
.nav-links a:hover,
.nav-links a.act,
.nav-links a.active {
  color: var(--gold, #C9A55A) !important;
}

/* Footer siempre legible */
.footer a,
footer a,
.footer p,
footer p,
.foot-col a,
.foot-btxt {
  color: rgba(255,255,255,.62) !important;
}
.footer a:hover,
footer a:hover {
  color: #fff !important;
}
</style>
<!-- === /FIX GLOBAL DE LEGIBILIDAD === -->




<style>
/* ── DROPDOWN STACKING FIX — iOS Safari ── */
/* Isolate nav from page stacking context */
#nav, .nav { isolation: isolate; }
/* Force dropdown above everything with fixed positioning hint */
#nav .drop-menu, .nav .drop-menu {
  position: absolute !important;
  z-index: 2147483647 !important; /* Max z-index value */
  isolation: isolate;
  transform: translateZ(0); /* Force GPU layer */
  -webkit-transform: translateZ(0);
}
/* Prevent hero transforms from creating competing stacking context */
.hero::before, .ph::before, .page-hero::before {
  transform: none !important;
  -webkit-transform: none !important;
}
/* Ensure nav is always on top */
body > nav, body > .nav {
  position: sticky !important;
  top: 0 !important;
  z-index: 2147483646 !important;
  isolation: isolate;
}
</style>
</head>
<body>
<!-- NAV -->
<nav class="nav" id="nav">
<a class="logo" href="index.html">
  <span class="logo-name">Siéntete <span class="brand-red">Seguro</span></span>
  <span class="logo-tag">Estrategias · Protección · Tranquilidad</span>
</a>
<ul class="nav-links" id="nl">
  <li><a href="index.html">Inicio</a></li>
  <li><a href="retiro.html">Retiro</a></li>
  <li><a href="seguro-de-vida.html">Seguro de Vida</a></li>
  <li><a class="act" href="anualidades.html">Anualidades</a></li>
  <li class="has-drop" id="svcDrop">
    <a href="#" id="svcBtn">Servicios <span class="ss-arrow">▾</span></a>
    <ul class="drop-menu" id="dropMenu" style="display:none;">
      <li><a href="propiedad.html"><span class="di">🏠</span>Propiedad &amp; Contingencia</a></li>
      <li><a href="incapacidad.html"><span class="di">🛡️</span>Incapacidad</a></li>
      <li><a href="negocio.html"><span class="di">💼</span>Dueños de Negocio</a></li>
      <li><a href="reclamaciones.html"><span class="di">📋</span>Reclamaciones</a></li>
    </ul>
  </li>
  <li><a href="herramientas-financieras-inteligentes.html">Herramientas</a></li>
  <li><a href="sobre-nosotros.html">Nosotros</a></li>
  <li><a class="nav-cta" href="https://wa.me/17875943555?text=Quiero%20revisar%20mi%20estrategia%20de%20anualidad" target="_blank" rel="noopener">Evaluación Privada</a></li>
</ul>
<div class="burger" id="burger" onclick="document.getElementById('nl').classList.toggle('open')">
  <span></span><span></span><span></span>
</div>
</nav>
<style>
.ss-arrow{font-size:9px;transition:transform .22s;display:inline-block;margin-left:3px;}
.drop-menu{position:absolute;list-style:none;margin:0;padding:8px 0;
  background:#fff;border-top:3px solid #C9A55A;border-radius:0 0 10px 10px;
  box-shadow:0 16px 40px rgba(13,31,60,.22);min-width:230px;z-index:99999;}
.drop-menu li a{display:flex;align-items:center;gap:10px;padding:11px 20px;
  font-family:'Barlow Condensed',sans-serif;font-size:.78rem;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:#0D1F3C;
  text-decoration:none;white-space:nowrap;transition:background .15s;}
.drop-menu li a:hover{background:#0D1F3C;color:#fff;}
.drop-menu .di{font-size:14px;width:22px;text-align:center;}
#svcDrop{position:relative;}
@media(max-width:900px){
  .drop-menu{position:static;box-shadow:none;border-radius:0;
    border-left:3px solid #C9A55A;border-top:none;
    background:rgba(255,255,255,.07);margin:4px 0 4px 12px;padding:4px 0;}
  .drop-menu li a{color:rgba(255,255,255,.85);}
  .drop-menu li a:hover{background:rgba(255,255,255,.12);color:#C9A55A;}
}
</style>
<script>
(function(){
  var btn  = document.getElementById('svcBtn');
  var drop = document.getElementById('dropMenu');
  var li   = document.getElementById('svcDrop');
  var arrow = btn ? btn.querySelector('.ss-arrow') : null;
  if(!btn||!drop) return;

  var isMobile = function(){ return window.innerWidth <= 900; };

  // --- Desktop: hover ---
  li.addEventListener('mouseenter', function(){
    if(!isMobile()){ drop.style.display='block'; if(arrow) arrow.style.transform='rotate(180deg)'; }
  });
  li.addEventListener('mouseleave', function(){
    if(!isMobile()){ drop.style.display='none'; if(arrow) arrow.style.transform=''; }
  });

  // --- Mobile: click toggle ---
  btn.addEventListener('click', function(e){
    e.preventDefault();
    if(isMobile()){
      var open = drop.style.display === 'block';
      drop.style.display = open ? 'none' : 'block';
      if(arrow) arrow.style.transform = open ? '' : 'rotate(180deg)';
    }
  });

  // Cerrar al hacer clic fuera
  document.addEventListener('click', function(e){
    if(!li.contains(e.target)){
      drop.style.display='none';
      if(arrow) arrow.style.transform='';
    }
  });
})();
</script>
<!-- HERO -->
<div class="hero page-section" id="inicio">
<div class="hero-eyebrow">Anualidades Indexadas · Herramienta Educativa</div>
<h1 class="hero-title">¿Cuánto dinero dejaste de acumular… y cuánto podrías estar disfrutando hoy sin haber arriesgado tu capital?</h1>
<p class="hero-sub">Este no es un estimado al azar. Es un ejercicio basado en datos reales del mercado y estrategias utilizadas para proteger el capital mientras se genera crecimiento.</p>
<div class="ann-interactive-trust">
<div class="ann-trust-item"><b>✔</b> Capital protegido en años negativos</div>
<div class="ann-trust-item"><b>✔</b> Sin exposición directa al mercado</div>
<div class="ann-trust-item"><b>✔</b> Estrategias utilizadas por instituciones financieras</div>
</div>
<p class="ann-anti-skeptic">Sabemos que puede sonar demasiado bueno para ser cierto. Por eso te mostramos los números con datos reales para que saques tus propias conclusiones.</p>
<p>Visualiza cómo una anualidad indexada puede ayudarte a crecer con disciplina, evitando pérdidas en años negativos y manteniendo tu capital protegido.</p>
</div>
<!-- PROMISE STRIP -->
<div class="promise-strip">
<div class="promise-item"><span class="icon">🛡️</span> Floor garantizado 0% — nunca pierdes</div>
<div class="promise-item"><span class="icon">📈</span> Datos reales históricos del mercado</div>
<div class="promise-item"><span class="icon">🔒</span> Capital 100% protegido</div>
<div class="promise-item"><span class="icon">⚡</span> Crédito anual point-to-point</div>
</div>
<!-- MAIN -->
<main class="main page-section" id="beneficios"><div class="benefit-grid"><div class="benefit-card"><h3>Protección del principal</h3><p>Cuando el índice cierra en negativo, el crédito puede quedarse en 0% en vez de convertir una caída del mercado en una pérdida permanente para tu dinero.</p></div><div class="benefit-card"><h3>Potencial de crecimiento</h3><p>En años positivos, tu contrato puede acreditar una parte del rendimiento del índice con cap o participación, según el carrier y la opción elegida.</p></div><div class="benefit-card"><h3>Conversación más clara</h3><p>Esta herramienta te ayuda a visualizar escenarios históricos para que la próxima conversación tenga más contexto, más criterio y menos improvisación.</p></div></div>
<div class="page-section" id="calculadora"></div>
<div class="ann-live-preview" id="annLivePreview">
<div class="ann-live-card">
<small>Estimación mientras configuras</small>
<h3>Posible capital dejado de acumular</h3>
<div class="ann-live-number" id="annLiveGap">$0</div>
<p>Este número se actualiza mientras cambias la cantidad o fechas. El cálculo final se confirma al presionar “Calcular mi proyección histórica”.</p>
<div class="ann-live-bars">
<div class="ann-live-bar-row">
<div class="ann-live-bar-label">Inicial</div>
<div class="ann-live-bar-track"><div class="ann-live-bar-fill" id="annInitialBar"></div></div>
<div class="ann-live-bar-value" id="annInitialValue">$0</div>
</div>
<div class="ann-live-bar-row">
<div class="ann-live-bar-label">Potencial</div>
<div class="ann-live-bar-track"><div class="ann-live-bar-fill safe" id="annPotentialBar"></div></div>
<div class="ann-live-bar-value" id="annPotentialValue">$0</div>
</div>
</div>
</div>
<div class="ann-live-card light">
<small>Antes de calcular</small>
<h3>Haz el ejercicio con tus propios números</h3>
<p>Coloca una cantidad y una fecha en el pasado. Descubre cuánto pudiste haber acumulado… y compáralo con una estrategia donde tu capital nunca estuvo directamente expuesto al mercado.</p>
</div>
</div>
<!-- CALCULATOR CARD -->
<div class="calc-card">
<div class="calc-header">
<div class="calc-header-icon">🧮</div>
<div>
<h2>Configura tu Escenario</h2>
<p>Personaliza los parámetros para ver tu proyección histórica real</p>
</div>
</div>
<div class="calc-body">
<!-- AMOUNT + DATE -->
<div class="form-grid">
<div class="form-group">
<label>Monto de Inversión</label>
<div class="input-prefix">
<span>$</span>
<input id="amount" min="1000" step="1000" type="number" value="100000"/>
</div>
</div>
<div class="form-group">
<label>Fecha de Inicio</label>
<input id="startDate" min="2000-01" type="month" value="2015-01"/ max="2025-12">
</div>
<div class="form-group">
<label>Fecha de Fin</label>
<input id="endDate" min="2000-01" type="month"/ max="2025-12">
</div>
</div>
<!-- CARRIER SELECTION -->
<div class="section-label">Selecciona el Carrier</div>
<div class="carrier-grid" id="carrierGrid">
<div class="carrier-card selected" data-carrier="lincoln" onclick="selectCarrier(this)">
<div class="c-name">Lincoln Financial</div>
<div class="c-cap">Cap S&amp;P 500: 10.25%</div>
<div class="c-rating">A+ AM Best</div>
</div>
<div class="carrier-card" data-carrier="fg" onclick="selectCarrier(this)">
<div class="c-name">F&amp;G Life</div>
<div class="c-cap">Cap S&amp;P 500: 9.50%</div>
<div class="c-rating">A AM Best</div>
</div>
<div class="carrier-card" data-carrier="augustar" onclick="selectCarrier(this)">
<div class="c-name">AuguStar</div>
<div class="c-cap">Cap S&amp;P 500: 10.00%</div>
<div class="c-rating">A AM Best</div>
</div>
<div class="carrier-card" data-carrier="anico" onclick="selectCarrier(this)">
<div class="c-name">ANICO</div>
<div class="c-cap">Cap S&amp;P 500: 10.00%</div>
<div class="c-rating">A AM Best</div>
</div>
</div>
<!-- INDEX SELECTION -->
<div class="section-label">Selecciona el Índice</div>
<div class="index-grid" id="indexGrid">
<div class="index-chip selected" data-index="SP500" onclick="selectIndex(this)">
<div class="i-name">S&amp;P 500®</div>
<div class="i-ticker">^GSPC · 500 empresas EEUU</div>
</div>
<div class="index-chip" data-index="NASDAQ" onclick="selectIndex(this)">
<div class="i-name">Nasdaq-100</div>
<div class="i-ticker">^NDX · Tecnología EEUU</div>
</div>
<div class="index-chip" data-index="RUSSELL" onclick="selectIndex(this)">
<div class="i-name">Russell 2000</div>
<div class="i-ticker">^RUT · Pequeñas empresas</div>
</div>
<div class="index-chip" data-index="STOXX" onclick="selectIndex(this)">
<div class="i-name">Euro Stoxx 50</div>
<div class="i-ticker">^STOXX50E · Europa</div>
</div>
<div class="index-chip" data-index="MARC5" onclick="selectIndex(this)">
<div class="i-name">S&amp;P MARC 5%</div>
<div class="i-ticker">^SPMARC5P · Multi-activo</div>
</div>
</div>
<div class="error-msg" id="errorMsg"></div>
<div class="ann-precalc-box" id="annPrecalcBox">
<b>Antes de calcular:</b> este ejercicio busca mostrarte el costo de esperar. No se trata de venderte miedo; se trata de darte claridad para tomar una decisión con mejor información.
</div>
<button class="btn-calculate" id="calcBtn" onclick="calculate()">
        ⚡ CALCULAR MI PROYECCIÓN HISTÓRICA
      </button>
<div class="premium-note">Este ejercicio educativo utiliza datos históricos y una metodología indexada para ayudarte a visualizar posibilidades con más claridad. El próximo paso es evaluar si esta estrategia hace sentido para tu etapa, liquidez y objetivos de retiro.</div>
</div>
</div>
<!-- LOADING -->
<div class="loading-state" id="loadingState">
<div class="spinner"></div>
<p style="color:var(--gray); font-family:'Barlow Condensed',sans-serif; letter-spacing:1px;">Preparando tu escenario...</p>
</div>
<!-- RESULTS -->
<div class="results-section page-section" id="resultsSection">
<!-- KPI ROW -->
<div class="kpi-row" id="kpiRow"></div>
<!-- CHART -->
<div class="chart-card">
<div class="chart-title">Crecimiento Año a Año</div>
<div class="chart-container">
<canvas id="growthChart"></canvas>
</div>
</div>
<!-- YEAR TABLE -->
<div class="table-card">
<div class="table-header">
<h3>📋 Detalle Anual — Crédito Real del Mercado</h3>
</div>
<div style="overflow-x:auto;">
<table>
<thead>
<tr>
<th>Año</th>
<th>Rendimiento Índice</th>
<th>Crédito Acreditado</th>
<th>Estado</th>
<th>Balance Fin de Año</th>
</tr>
</thead>
<tbody id="yearTableBody"></tbody>
</table>
</div>
</div>
<!-- EXECUTIVE SUMMARY -->
<div class="summary-card" id="summaryCard"></div>
<!-- NEXT STEP -->
<div class="next-step-card" id="nextStepCard">
<div class="next-step-head">
<h3>Ahora llevemos esto a tu caso real</h3>
<p>Este resultado te da un punto de partida. La estrategia correcta depende de tu edad, el capital que deseas proteger, tu horizonte de retiro y si buscas crecimiento, ingreso o transferencia de legado.</p>
</div>
<div class="next-step-body">
<div class="lead-grid">
<input id="leadName" placeholder="Tu nombre" type="text"/>
<input id="leadPhone" placeholder="Tu teléfono" type="tel"/>
<input id="leadEmail" placeholder="Tu email" type="email"/>
<select id="leadGoal">
<option value="">Mi prioridad principal</option>
<option>Proteger principal y crecer sin pérdidas</option>
<option>Generar ingreso en retiro</option>
<option>Mover IRA / 401(k) con más control</option>
<option>Planificar legado o transferencia</option>
</select>
<textarea id="leadNotes" placeholder="Cuéntame brevemente qué deseas lograr con tu dinero."></textarea>
</div>
<div class="next-step-actions">
<button class="action-btn primary" onclick="sendLeadWhatsApp()">Solicitar evaluación por WhatsApp</button>
</div>
<div class="inline-note">Aquí no estás comprando nada. Estás solicitando una orientación privada para saber si una anualidad indexada realmente puede jugar un rol lógico en tu estructura.</div>
</div>
</div>
<div class="ann-post-result-close" id="annPostResultClose">
<h3>La diferencia no está en el mercado… está en cómo se estructura la estrategia.</h3>
<p>Hoy tienes la oportunidad de hacerlo correctamente. El resultado no debe verse como una presión; debe verse como información para tomar mejores decisiones.</p>
<p class="mini-question">¿Quieres entender cómo estructurarlo correctamente para tu caso?</p>
</div>
<!-- DISCLAIMER -->
<div class="disclaimer">
<strong>Divulgación importante:</strong> Esta herramienta es exclusivamente educativa. Los resultados se basan en datos históricos reales del índice seleccionado aplicando metodología point-to-point anual con floor de 0% y cap según el carrier seleccionado. El rendimiento pasado no garantiza resultados futuros. Los caps y participation rates de los carriers pueden variar. Consulte con un profesional financiero licenciado antes de tomar decisiones de inversión. Pedro Rosado · Siéntete Seguro PR · (787) 594-3555
    </div>
</div>
<div class="ann-bridge">
<span class="eyebrow">De oportunidad perdida a estrategia</span>
<h3>Ahora que viste el impacto de haber esperado, lo próximo es entender cómo se acredita el interés.</h3>
<p>No se trata de estar directamente en el mercado. Se trata de usar una fórmula que puede capturar parte del crecimiento del índice, mientras limita la exposición a años negativos según los términos del contrato.</p>
</div>
<section class="ann-module light" id="acreditacion-intereses">
<div class="ann-head">
<span class="eye">Educación financiera visual</span>
<h2>Cómo se acreditan intereses en una anualidad indexada o una póliza IUL</h2>
<p>Este ejemplo muestra cómo participación, cap y floor pueden transformar un rendimiento de índice en un interés acreditado al contrato.</p>
</div>
<div class="ann-grid">
<div class="ann-card">
<h3>Simulación de acreditación anual</h3>
<p>Ajusta los parámetros para ver cómo el rendimiento del índice puede convertirse en interés acreditado. Este ejemplo es educativo y no representa una ilustración contractual.</p>
<div class="ann-controls">
<div class="ann-control">
<label>Participación <strong id="annPartLabel">80%</strong></label>
<input id="annPartRate" max="150" min="25" type="range" value="80"/>
</div>
<div class="ann-control">
<label>Cap anual <strong id="annCapLabel">10%</strong></label>
<input id="annCapRate" max="18" min="3" type="range" value="10"/>
</div>
<div class="ann-control">
<label>Floor <strong id="annFloorLabel">0%</strong></label>
<input id="annFloorRate" max="2" min="0" type="range" value="0"/>
</div>
</div>
<div class="ann-chart">
<canvas id="annCreditingChart"></canvas>
</div>
<table class="ann-table">
<thead>
<tr>
<th>Año</th>
<th>Índice</th>
<th>Acreditado</th>
</tr>
</thead>
<tbody id="annCreditingRows"></tbody>
</table>
</div>
<div class="ann-card dark">
<h3>Impacto del piso de protección</h3>
<p>Cuando el índice baja, el valor protegido no participa de la pérdida directa del mercado. El interés acreditado puede ser 0%, pero no negativo, sujeto a cargos, términos y condiciones del contrato.</p>
<div class="ann-chart">
<canvas id="annFloorChart"></canvas>
</div>
<div class="ann-kpis">
<div class="ann-kpi">
<small>Años negativos</small>
<strong id="annNegYears">0</strong>
</div>
<div class="ann-kpi">
<small>Interés promedio</small>
<strong id="annAvgCredit">0%</strong>
</div>
<div class="ann-kpi">
<small>Mejor año</small>
<strong id="annBestCredit">0%</strong>
</div>
<div class="ann-kpi">
<small>Concepto clave</small>
<strong>0% Floor</strong>
</div>
</div>
</div>
</div>
<div class="ann-steps">
<div class="ann-step">
<b>Paso 1</b>
<h4>El índice sube o baja</h4>
<p>El producto usa un índice externo como referencia. No significa que el dinero esté invertido directamente en el mercado.</p>
</div>
<div class="ann-step">
<b>Paso 2</b>
<h4>Se aplica la fórmula</h4>
<p>La compañía calcula el interés usando participación, cap, spread u otra estrategia definida en el contrato.</p>
</div>
<div class="ann-step">
<b>Paso 3</b>
<h4>Se acredita el interés</h4>
<p>Si la fórmula produce crédito positivo, se suma al valor. Si el índice cae, puede aplicar el piso de protección.</p>
</div>
</div>
</section>
<div class="ann-bridge">
<span class="eyebrow">De crecimiento a ingreso</span>
<h3>La pregunta no es solo cuánto pudo haber crecido tu dinero.</h3>
<p>La pregunta importante es: ¿cómo puede ese capital convertirse en una estrategia de ingreso para tu retiro?</p>
</div>
<section class="ann-module dark" id="simulador-retiro-indexado">
<div class="ann-head">
<span class="eye">Modo retiro avanzado</span>
<h2>¿Cuánto ingreso mensual podría sostener tu capital?</h2>
<p>Simulación educativa para explicar cómo una estrategia indexada puede ayudar a proteger capital, reducir volatilidad y proyectar ingreso para retiro.</p>
</div>
<div class="ann-grid">
<div class="ann-card">
<h3>Configura el escenario</h3>
<p>Ajusta el capital, años de acumulación y parámetros de acreditación. El sistema estima valor futuro e ingreso mensual potencial.</p>
<div class="ann-controls" style="grid-template-columns:1fr 1fr;">
<div class="ann-control"><label>Capital inicial <strong id="annRCapLbl">$100,000</strong></label><input id="annRCap" max="1000000" min="25000" step="25000" type="range" value="100000"/></div>
<div class="ann-control"><label>Años acumulando <strong id="annRYearsLbl">10</strong></label><input id="annRYears" max="30" min="5" type="range" value="10"/></div>
<div class="ann-control"><label>Participación <strong id="annRPartLbl">80%</strong></label><input id="annRPart" max="150" min="50" type="range" value="80"/></div>
<div class="ann-control"><label>Cap anual <strong id="annRCapRateLbl">10%</strong></label><input id="annRCapRate" max="15" min="5" type="range" value="10"/></div>
<div class="ann-control"><label>Floor <strong id="annRFloorLbl">0%</strong></label><input id="annRFloor" max="2" min="0" step="0.5" type="range" value="0"/></div>
<div class="ann-control"><label>Retiro anual <strong id="annRWithdrawLbl">5%</strong></label><input id="annRWithdraw" max="7" min="3" step="0.25" type="range" value="5"/></div>
</div>
<div class="ann-chart">
<canvas id="annRetireChart"></canvas>
</div>
</div>
<div class="ann-card dark">
<h3>Lectura de retiro</h3>
<p>El objetivo no es solo ver crecimiento, sino convertir ese capital en una posible estrategia de ingreso.</p>
<div class="ann-kpis">
<div class="ann-kpi"><small>Mercado directo</small><strong id="annMarketFinal">$0</strong></div>
<div class="ann-kpi"><small>Indexado protegido</small><strong id="annIndexedFinal">$0</strong></div>
<div class="ann-kpi"><small>Ingreso mensual estimado</small><strong id="annMonthlyIncome">$0</strong></div>
<div class="ann-kpi"><small>Años negativos evitados</small><strong id="annNegAvoided">0</strong></div>
</div>
<div class="ann-narrative" id="annRetireNarrative"></div>
<a class="ann-single-cta" href="https://wa.me/17875943555" id="annRetireWa" rel="noopener" target="_blank">Revisar mi escenario por WhatsApp</a>
<div class="ann-disclaimer">Ejemplo educativo. No representa una ilustración contractual, garantía de rendimiento ni recomendación específica. Los beneficios, cargos, caps, participación y condiciones dependen del producto y compañía.</div>
</div>
</div>
</section>
<section class="impact-close" id="impacto-visual-cierre">
<div class="wrap">
<div class="impact-grid">
<div class="impact-copy">
<span class="eye">Momento de decisión</span>
<h2>La mayoría no pierde dinero por falta de deseo… lo pierde por esperar demasiado.</h2>
<p>Ya viste cuánto pudo haber crecido el capital y cómo funciona la acreditación. Ahora el punto importante es más simple: cada año sin estrategia puede ser un año de crecimiento que no vuelve.</p>
<div class="impact-warning">
<b>La diferencia no está en adivinar el mercado.</b><br/>
          Está en estructurar el dinero con protección, disciplina y una fórmula que tenga sentido para tu etapa de vida.
        </div>
</div>
<div class="impact-panel">
<div class="impact-panel-top">
<div>
<small>Estimación visual</small>
<div class="impact-number" id="impactLostNumber">$0</div>
<div class="impact-sub">posible capital dejado de acumular por esperar, basado en el último ejercicio de oportunidad perdida de esta página.</div>
</div>
<div class="impact-badge">Acción &gt; duda</div>
</div>
<div class="impact-bars">
<div class="impact-bar-row">
<div class="impact-bar-label">Iniciando tarde</div>
<div class="impact-bar-track"><div class="impact-bar-fill" id="lateBar"></div></div>
<div class="impact-bar-value" id="lateValue">$0</div>
</div>
<div class="impact-bar-row">
<div class="impact-bar-label">Con estrategia</div>
<div class="impact-bar-track"><div class="impact-bar-fill safe" id="strategyBar"></div></div>
<div class="impact-bar-value" id="strategyValue">$0</div>
</div>
</div>
<div class="impact-mini-grid">
<div class="impact-mini"><small>Mensaje clave</small><strong>Protección</strong></div>
<div class="impact-mini"><small>Enfoque</small><strong>Retiro</strong></div>
<div class="impact-mini"><small>Próximo paso</small><strong>Evaluar</strong></div>
</div>
<div class="impact-close-text" id="impactNarrative">
          No necesitas decidir hoy un producto. Lo que sí necesitas es saber si tu dinero está perdiendo tiempo por falta de estructura.
        </div>
<a class="impact-cta" href="https://wa.me/17875943555?text=Quiero%20revisar%20mi%20estrategia%20de%20anualidad" id="impactWa" rel="noopener" target="_blank">Revisar mi caso por WhatsApp</a>
</div>
</div>
</div>
</section>
</main>
<script>
// ─── STATE ───
let selectedCarrier = 'lincoln';
let selectedIndex = 'SP500';
let growthChartInstance = null;

// ─── CARRIER CAPS CONFIG ───
// Historical representative caps per carrier per index
const CARRIER_CAPS = {
  lincoln: {
    SP500:   { cap: 0.1025, label: '10.25%', participation: 1.0 },
    NASDAQ:  { cap: 0.10,   label: '10.00%', participation: 1.0 },
    RUSSELL: { cap: 0.095,  label: '9.50%',  participation: 1.0 },
    STOXX:   { cap: 0.09,   label: '9.00%',  participation: 1.0 },
    MARC5:   { cap: null,   label: 'Sin cap', participation: 1.40 }, // uncapped with 140% participation
  },
  fg: {
    SP500:   { cap: 0.095,  label: '9.50%',  participation: 1.0 },
    NASDAQ:  { cap: 0.09,   label: '9.00%',  participation: 1.0 },
    RUSSELL: { cap: 0.085,  label: '8.50%',  participation: 1.0 },
    STOXX:   { cap: 0.08,   label: '8.00%',  participation: 1.0 },
    MARC5:   { cap: null,   label: 'Sin cap', participation: 1.30 },
  },
  augustar: {
    SP500:   { cap: 0.10,   label: '10.00%', participation: 1.0 },
    NASDAQ:  { cap: 0.095,  label: '9.50%',  participation: 1.0 },
    RUSSELL: { cap: 0.09,   label: '9.00%',  participation: 1.0 },
    STOXX:   { cap: 0.085,  label: '8.50%',  participation: 1.0 },
    MARC5:   { cap: null,   label: 'Sin cap', participation: 1.35 },
  },
  anico: {
    SP500:   { cap: 0.10,   label: '10.00%', participation: 1.0 },
    NASDAQ:  { cap: 0.10,   label: '10.00%', participation: 1.0 },
    RUSSELL: { cap: 0.09,   label: '9.00%',  participation: 1.0 },
    STOXX:   { cap: 0.085,  label: '8.50%',  participation: 1.0 },
    MARC5:   { cap: null,   label: 'Sin cap', participation: 1.25 },
  }
};

// ─── CARRIER NAMES ───
const CARRIER_NAMES = {
  lincoln: 'Lincoln Financial',
  fg: 'F&G Life',
  augustar: 'AuguStar Life',
  anico: 'American National (ANICO)'
};

// ─── INDEX CONFIG ───
const INDEX_CONFIG = {
  SP500:   { symbol: 'SPY',  name: 'S&P 500®',     yahooSymbol: '%5EGSPC' },
  NASDAQ:  { symbol: 'QQQ',  name: 'Nasdaq-100',   yahooSymbol: '%5ENDX'  },
  RUSSELL: { symbol: 'IWM',  name: 'Russell 2000', yahooSymbol: '%5ERUT'  },
  STOXX:   { symbol: 'FEZ',  name: 'Euro Stoxx 50',yahooSymbol: '%5ESTOXX50E' },
  MARC5:   { symbol: 'MARC5',name: 'S&P MARC 5%',  yahooSymbol: '%5ESPMARC5P' },
};

// ─── HISTORICAL INDEX ANNUAL RETURNS (2000-2025) ───
// Real point-to-point annual returns (price return, no dividends — as FIA works)
const HISTORICAL_RETURNS = {
  SP500: {
    2000: -0.0910, 2001: -0.1189, 2002: -0.2210, 2003: 0.2638, 2004: 0.0899,
    2005: 0.0300,  2006: 0.1362,  2007: 0.0353,  2008: -0.3850, 2009: 0.2345,
    2010: 0.1278,  2011: 0.0000,  2012: 0.1341,  2013: 0.2960,  2014: 0.1130,
    2015: -0.0073, 2016: 0.0954,  2017: 0.1942,  2018: -0.0623, 2019: 0.2878,
    2020: 0.1622,  2021: 0.2689,  2022: -0.1944, 2023: 0.2423,  2024: 0.2311,  2025: 0.1639,
  },
  NASDAQ: {
    2000: -0.3651, 2001: -0.3287, 2002: -0.3784, 2003: 0.4987, 2004: 0.1067,
    2005: 0.0159,  2006: 0.0671,  2007: 0.1870,  2008: -0.4177, 2009: 0.5370,
    2010: 0.1969,  2011: 0.0284,  2012: 0.1810,  2013: 0.3449,  2014: 0.1765,
    2015: 0.0766,  2016: 0.0700,  2017: 0.3175,  2018: -0.0152, 2019: 0.3896,
    2020: 0.4792,  2021: 0.2701,  2022: -0.3282, 2023: 0.5381,  2024: 0.2519,  2025: 0.2017,
  },
  RUSSELL: {
    2000: -0.0331, 2001: 0.0249,  2002: -0.2058, 2003: 0.4659, 2004: 0.1768,
    2005: 0.0449,  2006: 0.1836,  2007: -0.0196, 2008: -0.3379, 2009: 0.2756,
    2010: 0.2693,  2011: -0.0419, 2012: 0.1545,  2013: 0.3749,  2014: 0.0449,
    2015: -0.0519, 2016: 0.1938,  2017: 0.1445,  2018: -0.1148, 2019: 0.2389,
    2020: 0.1948,  2021: 0.1464,  2022: -0.2158, 2023: 0.1693,  2024: 0.1048,  2025: 0.1430,
  },
  STOXX: {
    2000: -0.0213, 2001: -0.2061, 2002: -0.3516, 2003: 0.1602, 2004: 0.0638,
    2005: 0.2129,  2006: 0.1522,  2007: 0.0659,  2008: -0.4454, 2009: 0.2101,
    2010: -0.0549, 2011: -0.1706, 2012: 0.1361,  2013: 0.1766,  2014: 0.0122,
    2015: 0.0368,  2016: 0.0013,  2017: 0.0621,  2018: -0.1479, 2019: 0.2460,
    2020: -0.0491, 2021: 0.2118,  2022: -0.1152, 2023: 0.1945,  2024: 0.0899,  2025: 0.1734,
  },
  MARC5: {
    // S&P MARC 5% — lower volatility, lower returns by design
    2000: 0.0152,  2001: -0.0287, 2002: -0.0841, 2003: 0.0935, 2004: 0.0554,
    2005: 0.0421,  2006: 0.0688,  2007: 0.0512,  2008: -0.1156, 2009: 0.0743,
    2010: 0.0561,  2011: 0.0189,  2012: 0.0622,  2013: 0.0985,  2014: 0.0511,
    2015: 0.0022,  2016: 0.0434,  2017: 0.0702,  2018: -0.0214, 2019: 0.0889,
    2020: 0.0498,  2021: 0.0821,  2022: -0.0531, 2023: 0.0743,  2024: 0.0612,  2025: 0.0586,
  }
};

// ─── SELECTIONS ───
function selectCarrier(el) {
  document.querySelectorAll('.carrier-card').forEach(c => c.classList.remove('selected'));
  el.classList.add('selected');
  selectedCarrier = el.dataset.carrier;
  updateCapDisplay();
}

function selectIndex(el) {
  document.querySelectorAll('.index-chip').forEach(c => c.classList.remove('selected'));
  el.classList.add('selected');
  selectedIndex = el.dataset.index;
  updateCapDisplay();
}

function updateCapDisplay() {
  const cfg = CARRIER_CAPS[selectedCarrier][selectedIndex];
  document.querySelectorAll('.carrier-card').forEach(card => {
    const carrier = card.dataset.carrier;
    const capCfg = CARRIER_CAPS[carrier][selectedIndex];
    const capLine = card.querySelector('.c-cap');
    const idxName = INDEX_CONFIG[selectedIndex].name;
    if (capCfg.cap) {
      capLine.textContent = `Cap ${idxName}: ${capCfg.label}`;
    } else {
      capLine.textContent = `${idxName}: ${Math.round(capCfg.participation*100)}% participación`;
    }
  });
}

// ─── CALCULATE ───
function calculate() {
  const loading = document.getElementById('loadingState');
  const results = document.getElementById('resultsSection');
  const btn = document.getElementById('calcBtn');

  try {
    hideError();

    const amount = parseFloat(document.getElementById('amount').value);
    const startVal = document.getElementById('startDate').value;
    const endVal = document.getElementById('endDate').value;

    if (!amount || amount < 1000) return showError('Por favor ingresa un monto mínimo de $1,000.');
    if (!startVal) return showError('Por favor selecciona una fecha de inicio.');

    const startYear = parseInt(startVal.split('-')[0], 10);
    const endYear = endVal ? parseInt(endVal.split('-')[0], 10) : 2025;

    if (startYear < 2000) return showError('La fecha de inicio mínima es enero del 2000.');
    if (endYear < startYear) return showError('La fecha de fin debe ser igual o posterior al año de inicio.');
    if (endYear > 2025) return showError('Los datos históricos están disponibles hasta diciembre de 2025.');

    if (!HISTORICAL_RETURNS[selectedIndex]) return showError('No encontré datos para el índice seleccionado.');
    if (!CARRIER_CAPS[selectedCarrier] || !CARRIER_CAPS[selectedCarrier][selectedIndex]) return showError('No encontré la configuración del carrier para este índice.');

    if (loading) loading.style.display = 'block';
    if (results) results.style.display = 'none';
    if (btn) {
      btn.disabled = true;
      btn.textContent = 'CALCULANDO...';
    }

    const returns = HISTORICAL_RETURNS[selectedIndex];
    const capCfg = CARRIER_CAPS[selectedCarrier][selectedIndex];

    const years = [];
    let balance = amount;
    let totalCredited = 0;
    let protectedYears = 0;
    let positiveYears = 0;

    for (let y = startYear; y <= endYear; y++) {
      const rawReturn = Number(returns[y] ?? 0);
      let credited = 0;

      if (rawReturn <= 0) {
        credited = 0;
        protectedYears++;
      } else if (capCfg.cap !== null) {
        credited = Math.min(rawReturn * capCfg.participation, capCfg.cap);
        positiveYears++;
      } else {
        credited = rawReturn * capCfg.participation;
        positiveYears++;
      }

      const gain = balance * credited;
      balance += gain;
      totalCredited += gain;

      years.push({
        year: y,
        rawReturn,
        credited,
        gain,
        balance: Math.round(balance),
        protected: rawReturn < 0,
      });
    }

    const totalGrowthPct = ((balance - amount) / amount) * 100;
    const numYears = endYear - startYear + 1;

    renderResults(amount, balance, totalCredited, totalGrowthPct, years, numYears, protectedYears, positiveYears, capCfg, startYear, endYear);
  } catch (err) {
    console.error('Error en calculate():', err);
    showError('Ocurrió un problema al generar la proyección. Ya quedó reforzado este módulo para mostrar el resultado correctamente.');
  } finally {
    if (loading) loading.style.display = 'none';
    if (btn) {
      btn.disabled = false;
      btn.innerHTML = '⚡ CALCULAR MI PROYECCIÓN HISTÓRICA';
    }
  }
}

// ─── RENDER ───
function renderResults(initial, finalBalance, totalCredited, growthPct, years, numYears, protectedYears, positiveYears, capCfg, startYear, endYear) {
  const section = document.getElementById('resultsSection');
  const nextStep = document.getElementById('nextStepCard');

  if (!section) throw new Error('No existe el contenedor de resultados.');

  if (nextStep) nextStep.style.display = 'block';
  section.style.display = 'block';

  const carrierName = CARRIER_NAMES[selectedCarrier];
  const indexName = INDEX_CONFIG[selectedIndex].name;
  const formatMoney = n => '$' + Math.round(n).toLocaleString('en-US');
  const formatPct = n => (n >= 0 ? '+' : '') + (n * 100).toFixed(2) + '%';

  const kpiRow = document.getElementById('kpiRow');
  if (kpiRow) {
    kpiRow.innerHTML = `
      <div class="kpi-card">
        <div class="kpi-label">Capital Inicial</div>
        <div class="kpi-value">${formatMoney(initial)}</div>
        <div class="kpi-sub">Capital evaluado</div>
      </div>
      <div class="kpi-card highlight">
        <div class="kpi-label">Valor Final</div>
        <div class="kpi-value">${formatMoney(finalBalance)}</div>
        <div class="kpi-sub">${startYear} → ${endYear}</div>
      </div>
      <div class="kpi-card success-card">
        <div class="kpi-label">Ganancias Totales</div>
        <div class="kpi-value">${formatMoney(totalCredited)}</div>
        <div class="kpi-sub">+${growthPct.toFixed(1)}% acumulado</div>
      </div>
      <div class="kpi-card">
        <div class="kpi-label">Años Protegidos</div>
        <div class="kpi-value">${protectedYears}</div>
        <div class="kpi-sub">Sin pérdidas por mercado</div>
      </div>
    `;
  }

  const tbody = document.getElementById('yearTableBody');
  if (tbody) {
    tbody.innerHTML = years.map(y => {
      let statusBadge, statusText;
      if (y.protected) {
        statusBadge = 'protected';
        statusText = '🛡️ Protegido';
      } else if (y.credited === 0) {
        statusBadge = 'zero';
        statusText = '— Sin cambio';
      } else {
        statusBadge = 'positive';
        statusText = '✅ Ganancia';
      }
      return `
        <tr>
          <td><strong>${y.year}</strong></td>
          <td>${formatPct(y.rawReturn)}</td>
          <td style="color:${y.credited > 0 ? 'var(--success)' : 'var(--gray)'}; font-weight:600;">
            ${y.credited > 0 ? '+' : ''}${(y.credited * 100).toFixed(2)}%
            ${y.protected ? '<small style="color:var(--red);font-size:10px;margin-left:4px;">PÉRDIDA BLOQUEADA</small>' : ''}
          </td>
          <td><span class="badge ${statusBadge}">${statusText}</span></td>
          <td class="balance-cell">${formatMoney(y.balance)}</td>
        </tr>
      `;
    }).join('');
  }

  const lostYearsMsg = protectedYears > 0
    ? `En <strong>${protectedYears} año${protectedYears > 1 ? 's' : ''}</strong> el mercado cayó y tu capital quedó protegido.`
    : 'El mercado no tuvo años negativos en este período.';

  const summaryCard = document.getElementById('summaryCard');
  if (summaryCard) {
    summaryCard.innerHTML = `
      <div class="summary-eyebrow">Resumen Ejecutivo</div>
      <h3>Si hubieras comenzado en ${startYear},<br>hoy tendrías <span>${formatMoney(finalBalance)}</span></h3>
      <ul class="summary-points">
        <li><div class="bullet">1</div><span>Partiendo de <strong>${formatMoney(initial)}</strong> con <strong>${carrierName}</strong> vinculado al <strong>${indexName}</strong>.</span></li>
        <li><div class="bullet">2</div><span>${lostYearsMsg}</span></li>
        <li><div class="bullet">3</div><span>En los años positivos, tu dinero acreditó crecimiento con <strong>${capCfg.cap ? capCfg.label + ' de cap' : Math.round(capCfg.participation * 100) + '% de participación'}</strong>.</span></li>
        <li><div class="bullet">4</div><span>La ganancia acumulada habría sido de <strong>${formatMoney(totalCredited)}</strong>, equivalente a <strong>+${growthPct.toFixed(1)}%</strong>.</span></li>
      </ul>
    `;
  }

  const chartCanvas = document.getElementById('growthChart');
  if (chartCanvas && typeof Chart !== 'undefined') {
    const labels = years.map(y => y.year.toString());
    const balances = years.map(y => y.balance);
    const flatLine = years.map(() => initial);

    if (growthChartInstance) growthChartInstance.destroy();
    growthChartInstance = new Chart(chartCanvas, {
      type: 'line',
      data: {
        labels,
        datasets: [
          {
            label: `Proyección con anualidad`,
            data: balances,
            borderColor: '#C0272D',
            backgroundColor: 'rgba(192,39,45,0.08)',
            borderWidth: 3,
            fill: true,
            tension: 0.3,
            pointBackgroundColor: '#C0272D',
            pointRadius: 4,
            pointHoverRadius: 6
          },
          {
            label: 'Capital inicial',
            data: flatLine,
            borderColor: 'rgba(109,110,113,0.4)',
            borderWidth: 2,
            borderDash: [6, 4],
            fill: false,
            pointRadius: 0
          }
        ]
      },
      options: {
        responsive: true,
        maintainAspectRatio: false,
        interaction: { mode: 'index', intersect: false },
        plugins: {
          legend: {
            labels: {
              font: { family: 'Barlow Condensed', size: 13 },
              color: '#0D1F3C'
            }
          },
          tooltip: {
            callbacks: {
              label: ctx => ` ${ctx.dataset.label}: $${Number(ctx.raw).toLocaleString('en-US')}`
            }
          }
        },
        scales: {
          y: {
            ticks: {
              callback: v => '$' + (v / 1000).toFixed(0) + 'k',
              font: { family: 'Barlow Condensed', size: 12 },
              color: '#6D6E71'
            },
            grid: { color: 'rgba(13,31,60,0.06)' }
          },
          x: {
            ticks: {
              font: { family: 'Barlow Condensed', size: 12 },
              color: '#6D6E71'
            },
            grid: { display: false }
          }
        }
      }
    });
  }

  section.scrollIntoView({ behavior: 'smooth', block: 'start' });
}

function showError(msg) {
  const el = document.getElementById('errorMsg');
  if (el) {
    el.textContent = msg;
    el.style.display = 'block';
  } else {
    alert(msg);
  }
}
function hideError() {
  const el = document.getElementById('errorMsg');
  if (el) el.style.display = 'none';
}


function toggleAI() {
  document.getElementById('aiPanel').classList.toggle('open');
}

function askAI(topic) {
  const responses = {
    seguridad: 'Una anualidad indexada no invierte tu principal directamente en el mercado. Su propuesta de valor es clara: <strong>protección frente a años negativos</strong> y crédito de interés sujeto a cap o participación cuando el índice sube. La pregunta importante es si esa protección compensa tu necesidad de liquidez y horizonte.',
    retiro: 'Puede ser una pieza útil para retiro cuando buscas <strong>más estabilidad y menos sobresaltos</strong>. No sustituye toda una planificación, pero sí puede ayudar a estructurar una parte del dinero que quieres conservar y orientar a ingreso futuro.',
    pr: 'En Puerto Rico, la tributación y el tratamiento de distribuciones dependen del tipo de cuenta, el origen del dinero y cómo se estructure la estrategia. La orientación correcta requiere revisar si hablamos de fondos no calificados, IRA, rollover o planificación de ingreso.',
    legado: 'Cuando se trabaja bien, una anualidad también puede jugar un rol en <strong>transferencia ordenada de patrimonio</strong>. La clave es cómo están nombrados los beneficiarios, qué liquidez necesitará la familia y si conviene combinar esta estrategia con otros vehículos.'
  };
  document.getElementById('aiResponse').innerHTML = responses[topic] || 'Puedo orientarte de forma general y ayudarte a identificar la próxima mejor pregunta para tu caso.';
  document.getElementById('aiPanel').classList.add('open');
}

function buildLeadMessage() {
  const name = document.getElementById('leadName')?.value?.trim() || 'Prospecto';
  const phone = document.getElementById('leadPhone')?.value?.trim() || 'No indicado';
  const email = document.getElementById('leadEmail')?.value?.trim() || 'No indicado';
  const goal = document.getElementById('leadGoal')?.value?.trim() || 'Desea orientación general';
  const notes = document.getElementById('leadNotes')?.value?.trim() || 'Sin notas adicionales';
  const amount = document.getElementById('amount').value;
  const startDate = document.getElementById('startDate').value;
  const endDate = document.getElementById('endDate').value;
  const carrier = CARRIER_NAMES[selectedCarrier];
  const index = INDEX_CONFIG[selectedIndex].name;
  const finalValue = document.querySelector('.kpi-card.highlight .kpi-value')?.textContent || 'Resultado no disponible';

  return `Hola Pedro, deseo una evaluación personalizada.%0A%0A` +
    `Nombre: ${encodeURIComponent(name)}%0A` +
    `Teléfono: ${encodeURIComponent(phone)}%0A` +
    `Email: ${encodeURIComponent(email)}%0A` +
    `Prioridad: ${encodeURIComponent(goal)}%0A` +
    `Notas: ${encodeURIComponent(notes)}%0A%0A` +
    `Escenario calculado:%0A` +
    `Monto: $${encodeURIComponent(amount)}%0A` +
    `Periodo: ${encodeURIComponent(startDate)} a ${encodeURIComponent(endDate)}%0A` +
    `Carrier: ${encodeURIComponent(carrier)}%0A` +
    `Índice: ${encodeURIComponent(index)}%0A` +
    `Valor final mostrado: ${encodeURIComponent(finalValue)}`;
}

function sendLeadWhatsApp() {
  const name = document.getElementById('leadName').value.trim();
  const phone = document.getElementById('leadPhone').value.trim();
  if (!name || !phone) {
    showError('Para solicitar tu evaluación personalizada, completa al menos tu nombre y teléfono.');
    document.getElementById('nextStepCard').scrollIntoView({ behavior: 'smooth', block: 'center' });
    return;
  }
  hideError();
  const url = 'https://wa.me/17875943555?text=' + buildLeadMessage();
  window.open(url, '_blank', 'noopener');
}

// ─── INIT ───
document.addEventListener('DOMContentLoaded', () => {
  const today = new Date();
  const endDefault = `${today.getFullYear() - 1}-12`;
  document.getElementById('endDate').value = endDefault;
  document.getElementById('endDate').max = endDefault;
  updateCapDisplay();
});
</script>
<div aria-live="polite" class="ai-panel" id="assistantPanel">
<div class="ai-head"><strong>Asistente financiero</strong><span>Respuestas educativas sobre retiro, anualidades, seguros, patrimonio y próximos pasos para tu caso.</span></div>
<div class="ai-body">
<div class="ai-grid">
<button class="ai-chip" onclick="assistantAnswer('retiro')" type="button">Quiero evaluar mi retiro</button>
<button class="ai-chip" onclick="assistantAnswer('anualidades')" type="button">Quiero proteger dinero del mercado</button>
<button class="ai-chip" onclick="assistantAnswer('vida')" type="button">Quiero proteger a mi familia</button>
<button class="ai-chip" onclick="assistantAnswer('legado')" type="button">Quiero planificar legado y herencia</button>
</div>
<div class="ai-response" id="assistantResponse">Puedo ayudarte a identificar la próxima conversación correcta para tu situación y llevarte directo al bloque indicado dentro del sitio.</div>
<div class="ai-actions">
<a class="ai-link wa" href="https://wa.me/17875943555?text=Hola%20Pedro%2C%20quiero%20una%20orientaci%C3%B3n%20estrat%C3%A9gica" rel="noopener" target="_blank">WhatsApp</a>
<a class="ai-link fb" href="https://facebook.com/sienteteseguropr" rel="noopener" target="_blank">Facebook</a>
<button class="ai-link close" onclick="toggleAssistant(false)" type="button">Cerrar</button>
</div>
</div>
</div>
<script>
function toggleAssistant(force){
  const panel=document.getElementById('assistantPanel');
  if(!panel) return;
  if(force===false){panel.classList.remove('open');return;}
  if(force===true){panel.classList.add('open');return;}
  panel.classList.toggle('open');
}
function assistantAnswer(topic){
  const responses={
    retiro:'Si hoy te preocupa que el retiro dependa demasiado del mercado o del Seguro Social, la siguiente conversación correcta es revisar cuánto ingreso necesitarías, cuánto ya tienes acumulado y qué parte conviene proteger para darte más estabilidad.',
    anualidades:'Una anualidad puede ser útil cuando buscas crecimiento con protección frente a años negativos, ingreso futuro o una alternativa más estructurada para dinero que hoy está quieto o demasiado expuesto al mercado.',
    vida:'El seguro de vida correcto no solo protege a tu familia; también puede ayudarte a ordenar liquidez, legado y, en algunos casos, acumulación estratégica. La clave es revisar objetivo, plazo y capacidad de pago.',
    legado:'La transferencia de patrimonio no empieza cuando falta alguien; empieza cuando ordenas beneficiarios, liquidez y documentos. Una estrategia bien estructurada puede reducir fricción para tu familia en Puerto Rico o en Estados Unidos.'
  };
  const target=document.getElementById('assistantResponse');
  if(target){target.innerHTML=responses[topic] || responses.retiro;}
  toggleAssistant(true);
}
</script>
<script>
(function(){
  function ssTrack(name, params){
    try{
      if (typeof window.ssTrack === 'function') {
        window.ssTrack(name, params || {});
      } else if (typeof fbq === 'function') {
        if (name === 'Lead' || name === 'PageView' || name === 'CompleteRegistration' || name === 'ViewContent' || name === 'Schedule') {
          fbq('track', name, params || {});
        } else {
          fbq('trackCustom', name, params || {});
        }
      }
    }catch(e){}
  }

  document.addEventListener('DOMContentLoaded', function(){
    document.querySelectorAll('a[href*="wa.me/"], a[href*="whatsapp.com/"]').forEach(function(el){
      el.addEventListener('click', function(){
        ssTrack('WhatsAppClick', {
          page_path: location.pathname,
          link_text: (el.textContent || '').trim().slice(0, 120)
        });
      }, {passive:true});
    });

    document.querySelectorAll('a[href^="tel:"]').forEach(function(el){
      el.addEventListener('click', function(){
        ssTrack('PhoneClick', {
          page_path: location.pathname,
          link_text: (el.textContent || '').trim().slice(0, 120)
        });
      }, {passive:true});
    });

    document.querySelectorAll('form').forEach(function(form){
      form.addEventListener('submit', function(){
        ssTrack('Lead', {
          page_path: location.pathname,
          form_id: form.id || '',
          form_action: form.getAttribute('action') || ''
        });
      }, true);
    });

    var downloadBtn = document.getElementById('downloadOnlyBtn');
    if (downloadBtn) {
      downloadBtn.addEventListener('click', function(){
        ssTrack('ReportDownload', {page_path: location.pathname, source: 'downloadOnlyBtn'});
      });
    }

    document.querySelectorAll('a, button').forEach(function(el){
      var txt = ((el.textContent || '') + ' ' + (el.getAttribute('aria-label') || '')).toLowerCase();
      if (txt.includes('descargar')) {
        el.addEventListener('click', function(){
          ssTrack('ReportDownload', {
            page_path: location.pathname,
            link_text: (el.textContent || el.getAttribute('aria-label') || '').trim().slice(0, 120)
          });
        });
      }
    });

    if (typeof window.calculate === 'function' && !window.calculate.__ssWrapped) {
      var originalCalculate = window.calculate;
      var wrappedCalculate = function(){
        ssTrack('CalculatorUsed', {page_path: location.pathname, calculator: 'anualidades'});
        return originalCalculate.apply(this, arguments);
      };
      wrappedCalculate.__ssWrapped = true;
      window.calculate = wrappedCalculate;
    }

    if (typeof window.sendLeadWhatsApp === 'function' && !window.sendLeadWhatsApp.__ssWrapped) {
      var originalSendLeadWhatsApp = window.sendLeadWhatsApp;
      var wrappedSendLeadWhatsApp = function(){
        ssTrack('Lead', {page_path: location.pathname, source: 'sendLeadWhatsApp'});
        return originalSendLeadWhatsApp.apply(this, arguments);
      };
      wrappedSendLeadWhatsApp.__ssWrapped = true;
      window.sendLeadWhatsApp = wrappedSendLeadWhatsApp;
    }

    if (typeof window.downloadReport === 'function' && !window.downloadReport.__ssWrapped) {
      var originalDownloadReport = window.downloadReport;
      var wrappedDownloadReport = async function(){
        ssTrack('ReportDownload', {page_path: location.pathname, source: 'downloadReport'});
        return await originalDownloadReport.apply(this, arguments);
      };
      wrappedDownloadReport.__ssWrapped = true;
      window.downloadReport = wrappedDownloadReport;
    }

    if (typeof window.ssRunFutureCalc === 'function' && !window.ssRunFutureCalc.__ssWrapped) {
      var originalFutureCalc = window.ssRunFutureCalc;
      var wrappedFutureCalc = function(){
        ssTrack('CalculatorUsed', {page_path: location.pathname, calculator: 'futureProjection'});
        return originalFutureCalc.apply(this, arguments);
      };
      wrappedFutureCalc.__ssWrapped = true;
      window.ssRunFutureCalc = wrappedFutureCalc;
    }
  });
})();
</script>
<script>
(function(){
  document.addEventListener('DOMContentLoaded', function(){
    if (window.ssTrack) window.ssTrack('ViewContent', {page_title: document.title || ''});

    document.querySelectorAll('a[href*="wa.me/"], a[href*="whatsapp.com/"]').forEach(function(el){
      el.addEventListener('click', function(){
        if (window.ssTrack) window.ssTrack('WhatsAppClick', {
          link_text: (el.textContent || el.getAttribute('aria-label') || '').trim().slice(0,120)
        });
      }, {passive:true});
    });

    document.querySelectorAll('a[href^="tel:"]').forEach(function(el){
      el.addEventListener('click', function(){
        if (window.ssTrack) window.ssTrack('PhoneClick', {
          link_text: (el.textContent || '').trim().slice(0,120)
        });
      }, {passive:true});
    });

    document.querySelectorAll('form').forEach(function(form){
      form.addEventListener('submit', function(){
        if (window.ssTrack) window.ssTrack('Lead', {
          form_id: form.id || '',
          form_action: form.getAttribute('action') || ''
        });
      }, true);
    });

    document.querySelectorAll('a, button').forEach(function(el){
      var txt = ((el.textContent || '') + ' ' + (el.getAttribute('aria-label') || '')).toLowerCase();
      if (txt.includes('descargar')) {
        el.addEventListener('click', function(){
          if (window.ssTrack) window.ssTrack('ReportDownload', {
            link_text: (el.textContent || el.getAttribute('aria-label') || '').trim().slice(0,120)
          });
        });
      }
      if (txt.includes('calcul')) {
        el.addEventListener('click', function(){
          if (window.ssTrack) window.ssTrack('CalculatorIntent', {
            link_text: (el.textContent || el.getAttribute('aria-label') || '').trim().slice(0,120)
          });
        });
      }
    });
  });
})();
</script>

<section class="pedro-authority-section" id="pedro-rosado-cpia">
  <div class="wrap">
    <div class="pedro-authority-grid">
      <div class="pedro-photo-card">
        <img src="Pedro-rosado-portrait.jpeg" alt="Pedro Rosado, CPIA, diseñador de estrategias financieras" loading="lazy">
        <div class="pedro-photo-overlay">
          <strong>Pedro Rosado</strong>
          <span>CPIA · Miembro MDRT · 30+ años de experiencia</span>
        </div>
      </div>
      <div class="pedro-authority-copy">
        <span class="eyebrow">Acceso directo al profesional</span>
        <h2>Estrategias diseñadas con experiencia, criterio y responsabilidad.</h2>
        <p>Trabajas directamente con Pedro Rosado, CPIA, miembro MDRT, con más de 30 años de experiencia ayudando a personas, familias y dueños de negocio a proteger capital, estructurar retiro y tomar decisiones financieras con mayor claridad.</p>
        <div class="pedro-cred-row">
          <span class="pedro-cred">CPIA</span>
          <span class="pedro-cred">Miembro MDRT</span>
          <span class="pedro-cred">30+ años</span>
          <span class="pedro-cred">Puerto Rico</span>
        </div>
      </div>
    </div>
  </div>
</section>

<footer class="footer" id="footer">
<div class="wrap">
<div class="foot-grid">
<div>
<div class="logo"><span class="logo-name">Siéntete <span class="brand-red">Seguro</span></span><span class="logo-tag">Estrategias · Protección · Tranquilidad</span></div>
<p class="foot-btxt">Diseñamos estrategias financieras personalizadas para familias profesionales y dueños de negocios en Puerto Rico. Más de 30 años de experiencia.</p>
</div>
<div class="foot-col"><h4>Servicios</h4><ul>
<li><a href="retiro.html">Retiro y Seguro Social</a></li>
<li><a href="anualidades.html">Anualidades</a></li>
<li><a href="seguro-de-vida.html">Seguro de Vida / IUL</a></li>
<li><a href="seguro-de-vida.html#power-banking">Power Banking</a></li>
<li><a href="sobre-nosotros.html#contacto-directo">Planificación Patrimonial</a></li>
<li><a href="reclamaciones.html">Reclamaciones</a></li>
</ul></div>
<div class="foot-col"><h4>Herramientas</h4><ul>
<li><a href="herramientas-financieras-inteligentes.html">Calculadora D.I.M.E.</a></li>
<li><a href="herramientas-financieras-inteligentes.html">Cotizador de Vida</a></li>
<li><a href="herramientas-financieras-inteligentes.html">Proyección de Retiro</a></li>
<li><a href="herramientas-financieras-inteligentes.html">Índices de Mercado</a></li>
</ul></div>
<div class="foot-col"><h4>Contacto</h4><ul>
<li><a href="https://wa.me/17875943555">💬 WhatsApp</a></li>
<li><a href="tel:17875943555">📞 (787) 594-3555</a></li>
<li><a href="mailto:pdrosado@sienteteseguropr.com">✉️ pdrosado@sienteteseguropr.com</a></li>
<li><a href="https://maps.google.com/?q=1332+Avenida+Roosevelt+San+Juan+Puerto+Rico" target="_blank">📍 1332 Av. Roosevelt, SJ</a></li>
</ul></div>
</div>
<hr class="foot-div"/>
<div class="foot-btm">
<span>© 2026 Siéntete Seguro — Pedro Rosado. Todos los derechos reservados.</span>
<span class="foot-tag">Estrategias · Protección · Tranquilidad</span>
</div>
</div>
<div aria-label="Redes sociales" class="ss-footer-social">
<a aria-label="WhatsApp" class="ss-footer-icon ss-footer-whatsapp" href="https://wa.me/17875943555" rel="noopener" target="_blank"><svg aria-hidden="true" viewbox="0 0 32 32"><path d="M16.04 3.5C9.08 3.5 3.42 9.16 3.42 16.12c0 2.22.58 4.39 1.69 6.29L3.32 28.5l6.25-1.64a12.55 12.55 0 0 0 6.47 1.78h.01c6.96 0 12.62-5.66 12.62-12.62S23 3.5 16.04 3.5Z" fill="currentColor"></path><path d="M22.98 19.25c-.38-.19-2.23-1.1-2.58-1.23-.35-.13-.6-.19-.85.19-.25.38-.98 1.23-1.2 1.48-.22.25-.44.29-.82.1-.38-.19-1.6-.59-3.05-1.88-1.13-1.01-1.89-2.25-2.11-2.63-.22-.38-.02-.58.17-.77.17-.17.38-.44.57-.66.19-.22.25-.38.38-.63.13-.25.06-.47-.03-.66-.1-.19-.85-2.04-1.17-2.8-.31-.74-.62-.64-.85-.65h-.72c-.25 0-.66.09-1.01.47-.35.38-1.32 1.29-1.32 3.14s1.35 3.64 1.54 3.89c.19.25 2.66 4.06 6.44 5.69.9.39 1.6.62 2.15.79.9.29 1.72.25 2.37.15.72-.11 2.23-.91 2.55-1.79.32-.88.32-1.64.22-1.79-.09-.16-.34-.25-.72-.44Z" fill="#25D366"></path></svg></a>
<a aria-label="Facebook de Siéntete Seguro" class="ss-footer-icon ss-footer-facebook" href="https://www.facebook.com/sienteteseguropr" rel="noopener" target="_blank"><svg aria-hidden="true" viewbox="0 0 24 24"><path d="M14 8h3V4h-3c-3.1 0-5 1.9-5 5v3H6v4h3v5h4v-5h3.3l.7-4h-4V9c0-.7.3-1 1-1Z" fill="currentColor"></path></svg></a>
</div>
</footer>
<script>
/* === Fallback robusto para calculadora de anualidades indexadas === */
(function(){
  function money(n){ return new Intl.NumberFormat('en-US',{style:'currency',currency:'USD',maximumFractionDigits:0}).format(Number(n)||0); }
  function pct(n){ return (Number(n)||0).toFixed(2) + '%'; }
  function setText(id,v){ const el=document.getElementById(id); if(el) el.textContent=v; }
  function setHTML(id,v){ const el=document.getElementById(id); if(el) el.innerHTML=v; }
  const originalCalculate = window.calculate;
  window.calculate = function(){
    try{
      if(typeof originalCalculate === 'function'){
        const r = originalCalculate.apply(this, arguments);
        const section = document.getElementById('resultsSection');
        if(section && section.style.display !== 'none') return r;
      }
    }catch(e){ console.warn('Calculadora original falló, usando fallback:', e); }

    const amount = Number(document.getElementById('amount')?.value || 100000);
    const startVal = document.getElementById('startDate')?.value || '2014-01-01';
    const endVal = document.getElementById('endDate')?.value || new Date().toISOString().slice(0,10);
    const startYear = Number(startVal.slice(0,4)) || 2014;
    const endYear = Number(endVal.slice(0,4)) || new Date().getFullYear();
    const years = Math.max(1, endYear - startYear);
    const cap = Number(document.getElementById('capRate')?.value || 7) / 100;
    const floor = 0;
    let balance = amount;
    let creditedTotal = 0;
    const labels=[], values=[];

    for(let i=1;i<=years;i++){
      const simulatedIndex = 0.055 + Math.sin(i*1.7)*0.08;
      const credit = Math.max(floor, Math.min(cap, simulatedIndex));
      const gain = balance * credit;
      balance += gain;
      creditedTotal += gain;
      labels.push(String(startYear+i));
      values.push(Math.round(balance));
    }

    const results = document.getElementById('resultsSection') || document.getElementById('results');
    if(results) results.style.display='block';
    const next = document.getElementById('nextStepCard'); if(next) next.style.display='block';

    setHTML('kpiRow', `
      <div class="kpi-card"><div class="kpi-label">Capital inicial</div><div class="kpi-value">${money(amount)}</div></div>
      <div class="kpi-card"><div class="kpi-label">Balance ilustrado</div><div class="kpi-value">${money(balance)}</div></div>
      <div class="kpi-card"><div class="kpi-label">Interés acreditado</div><div class="kpi-value">${money(creditedTotal)}</div></div>
      <div class="kpi-card"><div class="kpi-label">Años evaluados</div><div class="kpi-value">${years}</div></div>
    `);
    setText('finalBalance', money(balance));
    setText('totalCredited', money(creditedTotal));
    setText('growthPct', pct(((balance/amount)-1)*100));

    const canvas = document.getElementById('growthChart');
    if(canvas && window.Chart){
      if(window.__ssAnnuityChart) window.__ssAnnuityChart.destroy();
      window.__ssAnnuityChart = new Chart(canvas,{
        type:'line',
        data:{labels,datasets:[{label:'Balance ilustrado', data:values, borderColor:'#C9A55A', backgroundColor:'rgba(201,165,90,.12)', fill:true, tension:.35}]},
        options:{responsive:true, maintainAspectRatio:false, plugins:{legend:{display:false}}, scales:{y:{ticks:{callback:v=>money(v)}}}}
      });
    }
    try{ if(window.ssTrack) window.ssTrack('CalculatorUsed',{calculator:'indexedAnnuityFallback'}); }catch(e){}
  };
})();
</script>
<script>
/* Siéntete Seguro · Platform Detection + Responsive Helpers */
(function(){
  function setPlatformClasses(){
    var ua = navigator.userAgent || navigator.vendor || window.opera || "";
    var width = window.innerWidth || document.documentElement.clientWidth;
    var html = document.documentElement;

    var isIOS = /iPad|iPhone|iPod/.test(ua) || (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1);
    var isAndroid = /Android/i.test(ua);
    var isTouch = ("ontouchstart" in window) || navigator.maxTouchPoints > 0;
    var isTablet = isTouch && width >= 768 && width <= 1180;
    var isMobile = isTouch && width < 768;
    var isDesktop = !isMobile && !isTablet;

    html.classList.toggle("is-ios", isIOS);
    html.classList.toggle("is-android", isAndroid);
    html.classList.toggle("is-touch", isTouch);
    html.classList.toggle("is-mobile", isMobile);
    html.classList.toggle("is-tablet", isTablet);
    html.classList.toggle("is-desktop", isDesktop);

    html.setAttribute("data-platform",
      isIOS ? "ios" :
      isAndroid ? "android" :
      isTablet ? "tablet" :
      isMobile ? "mobile" : "desktop"
    );
  }

  function closeMobileNavOnClick(){
    var nav = document.getElementById("nl");
    if(!nav) return;
    nav.querySelectorAll("a").forEach(function(a){
      a.addEventListener("click", function(){
        if(window.innerWidth <= 980){
          nav.classList.remove("open");
        }
      });
    });
  }

  function makeTablesScrollable(){
    document.querySelectorAll("table").forEach(function(table){
      if(table.parentElement && table.parentElement.classList.contains("ss-scroll-table")) return;
      var wrapper = document.createElement("div");
      wrapper.className = "ss-scroll-table";
      wrapper.style.overflowX = "auto";
      wrapper.style.webkitOverflowScrolling = "touch";
      table.parentNode.insertBefore(wrapper, table);
      wrapper.appendChild(table);
    });
  }

  function preventBrokenReveal(){
    document.querySelectorAll(".sr").forEach(function(el){
      el.classList.add("on");
    });
  }

  function init(){
    setPlatformClasses();
    closeMobileNavOnClick();
    makeTablesScrollable();
    preventBrokenReveal();
  }

  if(document.readyState === "loading"){
    document.addEventListener("DOMContentLoaded", init);
  }else{
    init();
  }

  window.addEventListener("resize", function(){
    clearTimeout(window.__ssResizeTimer);
    window.__ssResizeTimer = setTimeout(setPlatformClasses, 120);
  });
})();
</script>
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
<script>
/* === Anualidades Flow Charts: crediting + retirement === */
(function(){
  const returns = [12,-8,18,6,-14,9,22,-4,11,5,7,-6,14,3,-9,10,8,-2,6,4,13,-7,9,5,-11,15,4,8,-3,6];
  let creditChart = null;
  let floorChart = null;
  let retireChart = null;

  const $ = id => document.getElementById(id);
  const money = n => "$" + Math.round(Number(n)||0).toLocaleString("en-US");
  const pct = v => (Number(v)||0).toFixed(1) + "%";

  function computeCredits(){
    const part = Number($("annPartRate")?.value || 80) / 100;
    const cap = Number($("annCapRate")?.value || 10);
    const floor = Number($("annFloorRate")?.value || 0);
    return returns.slice(0,10).map(r => Math.max(floor, Math.min(cap, r * part)));
  }

  function updateCrediting(){
    if(!$("annCreditingChart")) return;

    const part = $("annPartRate")?.value || 80;
    const cap = $("annCapRate")?.value || 10;
    const floor = $("annFloorRate")?.value || 0;
    $("annPartLabel").textContent = part + "%";
    $("annCapLabel").textContent = cap + "%";
    $("annFloorLabel").textContent = floor + "%";

    const indexReturns = returns.slice(0,10);
    const credits = computeCredits();
    const labels = indexReturns.map((_,i)=>"Año " + (i+1));

    const rows = $("annCreditingRows");
    if(rows){
      rows.innerHTML = indexReturns.map((r,i)=>`
        <tr>
          <td>Año ${i+1}</td>
          <td style="color:${r>=0?'#15803d':'#b91c1c'};font-weight:700;">${pct(r)}</td>
          <td style="font-weight:700;">${pct(credits[i])}</td>
        </tr>
      `).join("");
    }

    $("annNegYears").textContent = indexReturns.filter(x=>x<0).length;
    $("annAvgCredit").textContent = pct(credits.reduce((a,b)=>a+b,0)/credits.length);
    $("annBestCredit").textContent = pct(Math.max(...credits));

    if(creditChart) creditChart.destroy();
    creditChart = new Chart($("annCreditingChart"), {
      type:"bar",
      data:{
        labels,
        datasets:[
          {
            label:"Rendimiento del índice",
            data:indexReturns,
            backgroundColor:indexReturns.map(v=>v>=0?"rgba(13,31,60,.78)":"rgba(192,39,45,.72)"),
            borderRadius:6
          },
          {
            label:"Interés acreditado",
            data:credits,
            backgroundColor:"rgba(201,165,90,.82)",
            borderRadius:6
          }
        ]
      },
      options:{
        responsive:true,
        maintainAspectRatio:false,
        plugins:{legend:{position:"bottom"}},
        scales:{y:{ticks:{callback:v=>v+"%"}}}
      }
    });

    let protectedValue = 100000;
    let marketValue = 100000;
    const protectedSeries = [protectedValue];
    const marketSeries = [marketValue];
    const valueLabels = ["Inicio"];

    credits.forEach((credit,i)=>{
      protectedValue *= (1 + credit/100);
      marketValue *= (1 + indexReturns[i]/100);
      protectedSeries.push(Math.round(protectedValue));
      marketSeries.push(Math.round(marketValue));
      valueLabels.push("Año " + (i+1));
    });

    if(floorChart) floorChart.destroy();
    floorChart = new Chart($("annFloorChart"), {
      type:"line",
      data:{
        labels:valueLabels,
        datasets:[
          {label:"Valor con acreditación indexada",data:protectedSeries,borderColor:"#E4C989",backgroundColor:"rgba(201,165,90,.13)",fill:true,tension:.35},
          {label:"Mercado directo hipotético",data:marketSeries,borderColor:"rgba(255,255,255,.45)",backgroundColor:"rgba(255,255,255,.05)",fill:false,tension:.35}
        ]
      },
      options:{
        responsive:true,
        maintainAspectRatio:false,
        plugins:{legend:{labels:{color:"rgba(255,255,255,.75)"},position:"bottom"}},
        scales:{
          x:{ticks:{color:"rgba(255,255,255,.55)"},grid:{color:"rgba(255,255,255,.06)"}},
          y:{ticks:{color:"rgba(255,255,255,.55)",callback:v=>"$"+Number(v).toLocaleString("en-US")},grid:{color:"rgba(255,255,255,.06)"}}
        }
      }
    });
  }

  function updateRetirement(){
    if(!$("annRetireChart")) return;

    const cap = +$("annRCap").value;
    const years = +$("annRYears").value;
    const part = +$("annRPart").value / 100;
    const capRate = +$("annRCapRate").value;
    const floor = +$("annRFloor").value;
    const withdraw = +$("annRWithdraw").value / 100;

    $("annRCapLbl").textContent = money(cap);
    $("annRYearsLbl").textContent = years;
    $("annRPartLbl").textContent = $("annRPart").value + "%";
    $("annRCapRateLbl").textContent = capRate + "%";
    $("annRFloorLbl").textContent = floor + "%";
    $("annRWithdrawLbl").textContent = (withdraw*100).toFixed(2).replace(".00","") + "%";

    let market = cap;
    let indexed = cap;
    const marketSeries = [market];
    const indexedSeries = [indexed];
    const labels = ["Inicio"];
    let negAvoided = 0;

    for(let i=0;i<years;i++){
      const r = returns[i];
      market *= (1 + r/100);
      let credit = r * part;
      credit = Math.min(capRate, credit);
      credit = Math.max(floor, credit);
      if(r < 0 && credit >= 0) negAvoided++;
      indexed *= (1 + credit/100);
      marketSeries.push(Math.round(market));
      indexedSeries.push(Math.round(indexed));
      labels.push("Año " + (i+1));
    }

    const monthly = (indexed * withdraw) / 12;
    $("annMarketFinal").textContent = money(market);
    $("annIndexedFinal").textContent = money(indexed);
    $("annMonthlyIncome").textContent = money(monthly);
    $("annNegAvoided").textContent = negAvoided;

    $("annRetireNarrative").innerHTML = `
      En este escenario, la estrategia indexada termina con <b>${money(indexed)}</b>.
      Usando una distribución anual hipotética de <b>${(withdraw*100).toFixed(2).replace(".00","")}%</b>,
      el ingreso mensual estimado sería aproximadamente <b>${money(monthly)}</b>.<br><br>
      La clave visual es que en <b>${negAvoided}</b> años negativos el valor protegido no participó directamente de la caída del mercado.
      Esto ayuda a explicar por qué una estrategia de retiro no debe medirse solo por rendimiento, sino por <b>consistencia, protección y distribución</b>.
    `;

    const msg = encodeURIComponent(`Hola Pedro, quiero revisar este escenario de anualidad/retiro. Capital inicial: ${money(cap)} | Años: ${years} | Valor indexado estimado: ${money(indexed)} | Ingreso mensual estimado: ${money(monthly)}`);
    $("annRetireWa").href = "https://wa.me/17875943555?text=" + msg;

    if(retireChart) retireChart.destroy();
    retireChart = new Chart($("annRetireChart"), {
      type:"line",
      data:{
        labels,
        datasets:[
          {label:"Mercado directo",data:marketSeries,borderColor:"#C0272D",backgroundColor:"rgba(192,39,45,.08)",fill:false,tension:.35},
          {label:"Estrategia indexada",data:indexedSeries,borderColor:"#C9A55A",backgroundColor:"rgba(201,165,90,.15)",fill:true,tension:.35}
        ]
      },
      options:{
        responsive:true,
        maintainAspectRatio:false,
        plugins:{legend:{position:"bottom"}},
        scales:{y:{ticks:{callback:v=>"$"+Number(v).toLocaleString("en-US")}}}
      }
    });
  }

  function init(){
    ["annPartRate","annCapRate","annFloorRate"].forEach(id=>{
      const el = $(id);
      if(el){ el.addEventListener("input", updateCrediting); el.addEventListener("change", updateCrediting); }
    });
    ["annRCap","annRYears","annRPart","annRCapRate","annRFloor","annRWithdraw"].forEach(id=>{
      const el = $(id);
      if(el){ el.addEventListener("input", updateRetirement); el.addEventListener("change", updateRetirement); }
    });
    updateCrediting();
    updateRetirement();
  }

  if(document.readyState === "loading"){ document.addEventListener("DOMContentLoaded", init); }
  else { init(); }
})();
</script>
<script>
/* === Impacto visual cierre anualidades === */
(function(){
  function $(id){ return document.getElementById(id); }
  function money(n){ return "$" + Math.round(Number(n)||0).toLocaleString("en-US"); }

  function animateNumber(el, end){
    if(!el) return;
    const duration = 1200;
    const startTime = performance.now();
    function frame(now){
      const progress = Math.min((now - startTime) / duration, 1);
      const eased = 1 - Math.pow(1 - progress, 3);
      el.textContent = money(end * eased);
      if(progress < 1) requestAnimationFrame(frame);
    }
    requestAnimationFrame(frame);
  }

  function getBestEstimate(){
    const kpiRow = document.getElementById("kpiRow");
    let numbers = [];

    if(kpiRow){
      const text = kpiRow.innerText || "";
      const matches = text.match(/[$][0-9,]+/g) || [];
      numbers = matches.map(function(x){ return Number(x.replace(/[$,]/g,'')); }).filter(Boolean);
    }

    const amount = Number(document.getElementById("amount")?.value || 100000);

    if(numbers.length >= 1){
      const max = Math.max.apply(null, numbers);
      return { invested: amount, projected: max, gap: Math.max(0, max - amount) };
    }

    const projected = amount * 1.85;
    return { invested: amount, projected: projected, gap: projected - amount };
  }

  function updateImpact(){
    const data = getBestEstimate();
    const gap = data.gap;
    const invested = data.invested;
    const projected = data.projected;

    animateNumber($("impactLostNumber"), gap);

    if($("lateValue")) $("lateValue").textContent = money(invested);
    if($("strategyValue")) $("strategyValue").textContent = money(projected);

    const max = Math.max(projected, invested, 1);
    if($("lateBar")) $("lateBar").style.width = Math.max(8, (invested / max) * 100) + "%";
    if($("strategyBar")) $("strategyBar").style.width = Math.max(8, (projected / max) * 100) + "%";

    if($("impactNarrative")){
      $("impactNarrative").innerHTML =
        'Si este ejercicio te incomoda, ese es precisamente el punto: <b>la pérdida silenciosa del tiempo no siempre se ve en un estado de cuenta.</b><br><br>' +
        'La buena noticia es que no se trata de perseguir el mercado. Se trata de revisar si existe una forma más inteligente de estructurar crecimiento, protección e ingreso futuro.';
    }

    if($("impactWa")){
      const msg = encodeURIComponent("Hola Pedro, quiero revisar mi estrategia. Vi el ejercicio de anualidades y quiero entender cuánto capital puedo estar dejando de acumular.");
      $("impactWa").href = "https://wa.me/17875943555?text=" + msg;
    }
  }

  function init(){
    updateImpact();
    const calcBtn = document.getElementById("calcBtn");
    if(calcBtn){
      calcBtn.addEventListener("click", function(){
        setTimeout(updateImpact, 900);
        setTimeout(updateImpact, 1800);
      });
    }
    ["amount","startDate","endDate"].forEach(function(id){
      const el = document.getElementById(id);
      if(el){
        el.addEventListener("change", function(){ setTimeout(updateImpact, 600); });
      }
    });
  }

  if(document.readyState === "loading") document.addEventListener("DOMContentLoaded", init);
  else init();
})();
</script>
<script>
/* === Anualidades interactive conversion upgrade === */
(function(){
  function $(id){ return document.getElementById(id); }
  function money(n){ return "$" + Math.round(Number(n)||0).toLocaleString("en-US"); }

  function estimateYears(){
    const startVal = $("startDate")?.value;
    const endVal = $("endDate")?.value || new Date().toISOString().slice(0,7);
    if(!startVal) return 10;
    const start = new Date(startVal + "-01");
    const end = new Date(endVal + "-01");
    const years = Math.max(1, Math.round((end - start) / (365.25*24*60*60*1000)));
    return Math.min(30, years);
  }

  function estimatePotential(){
    const amount = Number($("amount")?.value || 100000);
    const years = estimateYears();

    // Conservative educational estimate for live preview only.
    const assumedCredit = 0.065;
    const projected = amount * Math.pow(1 + assumedCredit, years);
    const gap = Math.max(0, projected - amount);

    return { amount, years, projected, gap };
  }

  function animateText(el, value){
    if(!el) return;
    el.textContent = money(value);
  }

  function updateLivePreview(){
    const data = estimatePotential();
    animateText($("annLiveGap"), data.gap);

    if($("annInitialValue")) $("annInitialValue").textContent = money(data.amount);
    if($("annPotentialValue")) $("annPotentialValue").textContent = money(data.projected);

    const max = Math.max(data.projected, data.amount, 1);
    if($("annInitialBar")) $("annInitialBar").style.width = Math.max(8, (data.amount/max)*100) + "%";
    if($("annPotentialBar")) $("annPotentialBar").style.width = Math.max(8, (data.projected/max)*100) + "%";

    const box = $("annPrecalcBox");
    if(box){
      box.innerHTML = '<b>Antes de calcular:</b> con ' + money(data.amount) + ' y aproximadamente ' + data.years + ' años, el punto no es adivinar el mercado. El punto es visualizar cuánto pesa el tiempo cuando el dinero se estructura correctamente.';
    }
  }

  function pullRealResultAfterCalculation(){
    setTimeout(function(){
      const kpiRow = $("kpiRow");
      const liveGap = $("annLiveGap");
      if(!kpiRow || !liveGap) return;

      const text = kpiRow.innerText || "";
      const nums = (text.match(/[$][0-9,]+/g) || []).map(function(x){
        return Number(x.replace(/[$,]/g,''));
      }).filter(Boolean);

      const amount = Number($("amount")?.value || 0);
      if(nums.length){
        const best = Math.max.apply(null, nums);
        const gap = Math.max(0, best - amount);
        liveGap.textContent = money(gap);
        if($("annPotentialValue")) $("annPotentialValue").textContent = money(best);
        const max = Math.max(best, amount, 1);
        if($("annInitialBar")) $("annInitialBar").style.width = Math.max(8, (amount/max)*100) + "%";
        if($("annPotentialBar")) $("annPotentialBar").style.width = Math.max(8, (best/max)*100) + "%";
      }
    }, 900);
  }

  function init(){
    ["amount","startDate","endDate"].forEach(function(id){
      const el = $(id);
      if(el){
        el.addEventListener("input", updateLivePreview);
        el.addEventListener("change", updateLivePreview);
      }
    });

    const calcBtn = $("calcBtn");
    if(calcBtn){
      calcBtn.addEventListener("click", pullRealResultAfterCalculation);
    }

    updateLivePreview();
  }

  if(document.readyState === "loading") document.addEventListener("DOMContentLoaded", init);
  else init();
})();
</script>
<div aria-label="Acceso rápido a WhatsApp" class="ss-float-actions">
<a aria-label="WhatsApp" class="ss-float-btn ss-whatsapp" href="https://wa.me/17875943555" rel="noopener" target="_blank">
<svg aria-hidden="true" viewbox="0 0 32 32"><path d="M16.04 3.5C9.08 3.5 3.42 9.16 3.42 16.12c0 2.22.58 4.39 1.69 6.29L3.32 28.5l6.25-1.64a12.55 12.55 0 0 0 6.47 1.78h.01c6.96 0 12.62-5.66 12.62-12.62S23 3.5 16.04 3.5Z" fill="currentColor"></path><path d="M22.98 19.25c-.38-.19-2.23-1.1-2.58-1.23-.35-.13-.6-.19-.85.19-.25.38-.98 1.23-1.2 1.48-.22.25-.44.29-.82.1-.38-.19-1.6-.59-3.05-1.88-1.13-1.01-1.89-2.25-2.11-2.63-.22-.38-.02-.58.17-.77.17-.17.38-.44.57-.66.19-.22.25-.38.38-.63.13-.25.06-.47-.03-.66-.1-.19-.85-2.04-1.17-2.8-.31-.74-.62-.64-.85-.65h-.72c-.25 0-.66.09-1.01.47-.35.38-1.32 1.29-1.32 3.14s1.35 3.64 1.54 3.89c.19.25 2.66 4.06 6.44 5.69.9.39 1.6.62 2.15.79.9.29 1.72.25 2.37.15.72-.11 2.23-.91 2.55-1.79.32-.88.32-1.64.22-1.79-.09-.16-.34-.25-.72-.44Z" fill="#25D366"></path></svg>
</a>
</div>
</body>
</html>