@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@500;600;700&family=Inter:wght@400;500;600&display=swap');

  :root{
    --purple: #3D1064;
    --purple-dark: #270A42;
    --magenta: #C41E78;
    --teal: #04AA7C;
    --bg: #FBFAFD;
    --card: #FFFFFF;
    --text: #1A1023;
    --muted: #675F72;
    --border: #EAE5F0;
    --radius: 18px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  body{
    font-family:'Inter', sans-serif;
    color:var(--text);
    background:var(--bg);
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{ font-family:'Poppins', sans-serif; font-weight:600; letter-spacing:-0.01em; }
  a{ text-decoration:none; color:inherit; }
  img{ max-width:100%; display:block; }
  .wrap{ max-width:1120px; margin:0 auto; padding:0 24px; }
  .btn{
    display:inline-flex; align-items:center; justify-content:center;
    padding:14px 28px; border-radius:999px; font-weight:600; font-size:15px;
    cursor:pointer; border:none; transition:transform .15s ease, box-shadow .15s ease;
  }
  .btn-primary{
    background:linear-gradient(120deg, var(--magenta), var(--purple));
    color:#fff; box-shadow:0 10px 24px -8px rgba(61,16,100,.55);
  }
  .btn-primary:hover{ transform:translateY(-2px); }
  .btn-ghost{
    background:transparent; color:var(--purple); border:1.5px solid var(--border);
  }
  .btn-ghost:hover{ border-color:var(--purple); }

  /* Header */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(251,250,253,.85); backdrop-filter:blur(8px);
    border-bottom:1px solid var(--border);
  }
  .nav{ display:flex; align-items:center; justify-content:space-between; padding:14px 24px; }
  .brand{ display:flex; align-items:center; gap:10px; }
  .brand img{ height:40px; width:auto; }
  .brand .by{ font-size:12px; color:var(--muted); padding-left:8px; border-left:1px solid var(--border); margin-left:2px; }
  nav.links{ display:flex; gap:32px; font-size:15px; font-weight:500; color:var(--muted); }
  nav.links a:hover{ color:var(--purple); }
  .nav-cta{ display:flex; align-items:center; gap:20px; }

  /* Hero */
  .hero{ position:relative; overflow:hidden; padding:96px 0 80px; }
  .hero::before{
    content:''; position:absolute; top:-200px; right:-220px; width:640px; height:640px;
    background:radial-gradient(circle, rgba(196,30,120,.16), rgba(4,170,124,.10) 55%, transparent 70%);
    border-radius:50%; pointer-events:none;
  }
  .hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center; position:relative; }
  .eyebrow{
    display:inline-block; font-size:13px; font-weight:600; color:var(--magenta);
    background:rgba(196,30,120,.08); padding:6px 14px; border-radius:999px; margin-bottom:20px;
  }
  .hero h1{ font-size:48px; line-height:1.12; margin-bottom:20px; }
  .hero h1 .accent{
    background:linear-gradient(120deg, var(--magenta), var(--purple));
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }
  .hero p.lead{ font-size:18px; color:var(--muted); max-width:520px; margin-bottom:32px; }
  .hero-actions{ display:flex; gap:16px; flex-wrap:wrap; margin-bottom:28px; }
  .backed-by{ display:flex; align-items:center; gap:10px; font-size:14px; color:var(--muted); }
  .backed-by strong{ color:var(--text); }
  .hero-visual{ display:flex; justify-content:center; align-items:center; }
  .hero-visual img{ width:100%; max-width:420px; filter:drop-shadow(0 24px 40px rgba(61,16,100,.18)); }

  /* Section shared */
  section{ padding:76px 0; }
  .section-head{ max-width:640px; margin-bottom:48px; }
  .section-head .eyebrow{ margin-bottom:14px; }
  .section-head h2{ font-size:32px; margin-bottom:14px; }
  .section-head p{ color:var(--muted); font-size:16px; }

  /* Para quién */
  .for-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
  .for-card{
    background:var(--card); border:1px solid var(--border); border-radius:var(--radius);
    padding:32px; position:relative; overflow:hidden;
  }
  .for-card .tag{
    display:inline-block; font-size:12px; font-weight:600; color:var(--teal);
    background:rgba(4,170,124,.09); padding:5px 12px; border-radius:999px; margin-bottom:16px;
  }
  .for-card h3{ font-size:20px; margin-bottom:10px; }
  .for-card p{ color:var(--muted); font-size:15px; }

  /* Proceso */
  .steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; counter-reset:step; }
  .step{ background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:28px 22px; position:relative; }
  .step .num{
    width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    background:linear-gradient(120deg, var(--magenta), var(--purple)); color:#fff; font-weight:700; font-size:15px;
    margin-bottom:18px;
  }
  .step h3{ font-size:17px; margin-bottom:8px; }
  .step p{ color:var(--muted); font-size:14px; }

  /* Paquetes */
  .pkg-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .pkg{
    background:var(--card); border:1px solid var(--border); border-radius:var(--radius);
    padding:32px 28px; display:flex; flex-direction:column; position:relative;
  }
  .pkg.featured{ border:2px solid var(--purple); box-shadow:0 20px 40px -20px rgba(61,16,100,.35); }
  .pkg .ribbon{
    position:absolute; top:-13px; left:28px; background:var(--purple); color:#fff;
    font-size:12px; font-weight:600; padding:5px 12px; border-radius:999px;
  }
  .pkg .top-bar{ height:6px; border-radius:6px; margin-bottom:22px; }
  .pkg:nth-child(1) .top-bar{ background:var(--teal); }
  .pkg:nth-child(2) .top-bar{ background:linear-gradient(120deg, var(--magenta), var(--purple)); }
  .pkg:nth-child(3) .top-bar{ background:var(--purple); }
  .pkg h3{ font-size:22px; margin-bottom:6px; }
  .pkg .price{ font-size:15px; color:var(--muted); margin-bottom:18px; }
  .pkg .price strong{ color:var(--text); font-size:17px; }
  .pkg ul{ list-style:none; margin-bottom:28px; flex-grow:1; }
  .pkg ul li{ font-size:14.5px; color:var(--muted); padding-left:22px; position:relative; margin-bottom:10px; }
  .pkg ul li::before{ content:'✓'; position:absolute; left:0; color:var(--teal); font-weight:700; }

  /* Respaldo MEDVE */
  .backing{
    background:linear-gradient(120deg, var(--purple-dark), var(--purple));
    border-radius:24px; padding:56px 48px; color:#fff; display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center;
  }
  .backing h2{ font-size:28px; margin-bottom:14px; }
  .backing p{ color:rgba(255,255,255,.82); font-size:15.5px; }
  .backing .stats{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
  .backing .stat b{ display:block; font-size:32px; font-family:'Poppins',sans-serif; }
  .backing .stat span{ font-size:13px; color:rgba(255,255,255,.7); }

  /* CTA / Form */
  .cta-section{ padding-top:76px; padding-bottom:96px; }
  .cta-box{
    background:var(--card); border:1px solid var(--border); border-radius:24px;
    padding:48px; display:grid; grid-template-columns:1fr 1fr; gap:48px;
  }
  .cta-box h2{ font-size:28px; margin-bottom:14px; }
  .cta-box p{ color:var(--muted); font-size:15.5px; margin-bottom:20px; }
  .cta-list{ list-style:none; }
  .cta-list li{ font-size:14.5px; color:var(--muted); padding-left:22px; position:relative; margin-bottom:10px; }
  .cta-list li::before{ content:'→'; position:absolute; left:0; color:var(--magenta); }
  form{ display:flex; flex-direction:column; gap:14px; }
  label{ font-size:13px; font-weight:600; color:var(--muted); margin-bottom:-8px; }
  input, select, textarea{
    padding:12px 14px; border-radius:10px; border:1.5px solid var(--border);
    font-family:'Inter',sans-serif; font-size:14.5px; color:var(--text); background:#fff;
  }
  input:focus, select:focus, textarea:focus{ outline:none; border-color:var(--purple); }
  textarea{ resize:vertical; min-height:80px; }
  form .btn-primary{ margin-top:6px; }

  footer{ border-top:1px solid var(--border); padding:40px 0; }
  .footer-row{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; }
  .footer-row .brand img{ height:32px; }
  .footer-links{ display:flex; gap:24px; font-size:14px; color:var(--muted); }
  .footer-note{ font-size:13px; color:var(--muted); margin-top:20px; }

  @media (max-width:900px){
    .hero-grid, .for-grid, .steps, .pkg-grid, .backing, .cta-box{ grid-template-columns:1fr; }
    .hero-visual{ order:-1; }
    nav.links{ display:none; }
    .hero h1{ font-size:36px; }
  }

/* ===== Cotizador ===== */
.quote-layout{ display:grid; grid-template-columns:1.4fr 1fr; gap:28px; align-items:start; }
.module-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.module-card{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  background:var(--card); border:1.5px solid var(--border); border-radius:14px;
  padding:16px 18px; cursor:pointer; transition:border-color .15s ease, background .15s ease, transform .1s ease;
  user-select:none;
}
.module-card:hover{ border-color:var(--magenta); transform:translateY(-1px); }
.module-card.active{
  border-color:var(--purple);
  background:linear-gradient(120deg, rgba(196,30,120,.06), rgba(61,16,100,.06));
}
.module-card input{ display:none; }
.module-card .m-name{ font-size:14.5px; font-weight:600; color:var(--text); display:flex; align-items:center; gap:10px; }
.module-card .m-check{
  width:20px; height:20px; border-radius:6px; border:1.5px solid var(--border);
  display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:12px; color:#fff;
  transition:background .15s ease, border-color .15s ease;
}
.module-card.active .m-check{ background:linear-gradient(120deg, var(--magenta), var(--purple)); border-color:transparent; }
.module-card .m-points{
  font-size:12px; font-weight:700; color:var(--muted); background:var(--bg);
  border:1px solid var(--border); padding:3px 9px; border-radius:999px; white-space:nowrap;
}
.module-card.active .m-points{ color:var(--purple); border-color:var(--purple); }

.quote-result{
  position:sticky; top:96px; background:var(--card); border:1px solid var(--border);
  border-radius:var(--radius); padding:28px; text-align:center;
}
.quote-result .qr-label{ font-size:13px; color:var(--muted); font-weight:600; margin-bottom:6px; }
.quote-result .qr-points{ font-family:'Poppins',sans-serif; font-size:44px; font-weight:700; color:var(--text); line-height:1; }
.quote-result .qr-points span{ font-size:16px; color:var(--muted); font-weight:500; }
.quote-bar{ height:10px; border-radius:999px; background:var(--bg); border:1px solid var(--border); overflow:hidden; margin:18px 0; }
.quote-bar-fill{ height:100%; border-radius:999px; background:linear-gradient(120deg, var(--teal), var(--magenta), var(--purple)); width:5%; transition:width .3s ease; }
.quote-category{
  border-radius:14px; padding:16px; margin-bottom:18px; transition:background .2s ease;
}
.quote-category .qc-title{ font-family:'Poppins',sans-serif; font-size:20px; font-weight:600; margin-bottom:4px; }
.quote-category .qc-desc{ font-size:13.5px; color:var(--muted); }
.quote-category .qc-price{ font-size:15px; font-weight:700; margin-top:8px; }
.quote-result .btn{ width:100%; }
.quote-hint{ font-size:12.5px; color:var(--muted); margin-top:12px; }

@media (max-width:900px){
  .quote-layout{ grid-template-columns:1fr; }
  .module-grid{ grid-template-columns:1fr; }
  .quote-result{ position:static; }
}
