:root{
  --bg:#ffffff;
  --fg:#111111;
  --fg-soft:#333333;
  --muted:#666666;
  --tint:#f7f7f7;
  --primary:#22aa55; /* verde botones */
  --primary-pressed:#1a8a45;
  --primary-ghost:#e8f6ee;
  --border:#eaeaea;
  --radius:12px;
  --shadow:0 6px 24px rgba(0,0,0,.06);
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--fg);
  background:var(--bg);
  line-height:1.6;
  font-size:16px;
}

.container{
  width:min(1100px, 92%);
  margin-inline:auto;
}

h1,h2,h3{ line-height:1.15; color:var(--fg); margin:0 0 .6em; }
.h1{ font-size: clamp(1.8rem, 2.6vw + 1rem, 2.6rem); }
.lead{ font-size:1.15rem; color:var(--fg-soft); }

.hero{
  padding: 48px 0 24px;
  text-align:center;
}
.hero__title{
  font-size: clamp(2.2rem, 4vw + 1rem, 4rem);
  letter-spacing: .02em;
  font-weight:900;
  margin-bottom:.2em;
}
.hero__subtitle{
  color:var(--muted);
  font-size: clamp(1rem, 1.2vw + .6rem, 1.25rem);
  margin: 0 auto 24px;
  max-width: 800px;
}
.hero__cta{ margin-top: 14px; }
.secure-badges{ color:var(--muted); font-size:.95rem; margin-top:12px; }

.video-embed{
  position:relative;
  padding-bottom:56.25%;
  height:0;
  overflow:hidden;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  margin: 8px auto 16px;
  max-width: 980px;
}
.video-embed iframe{
  position:absolute; top:0; left:0; width:100%; height:100%;
}

.section{ padding:48px 0; }
.section--tint{ background:var(--tint); }

.grid{ display:grid; gap:24px; align-items:start; }
.grid-2{ grid-template-columns: repeat(2, minmax(0,1fr)); }
.grid-3{ grid-template-columns: repeat(3, minmax(0,1fr)); }
@media (max-width: 880px){
  .grid-2,.grid-3{ grid-template-columns: 1fr; }
}

.card{
  border:1px solid var(--border);
  border-radius: var(--radius);
  padding:20px;
  background:#fff;
  box-shadow: var(--shadow);
}

.checklist, .arrow-list, .feature-list{ padding-left: 1.1rem; }
.checklist li{ margin-bottom:.5rem; list-style: "✔️  "; }
.arrow-list li{ margin-bottom:.5rem; list-style: "➤  "; }
.feature-list li{ margin-bottom:.4rem; }

.cta-block{
  text-align:center;
  margin-top: 24px;
}
.cta-note{ color:var(--muted); margin-top:8px; }

/* Botones */
.btn{
  --pad-y:.8rem;
  --pad-x:1.1rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding: var(--pad-y) var(--pad-x);
  border-radius: 10px;
  border:1px solid var(--border);
  background:#fff;
  color:var(--fg);
  text-decoration:none;
  font-weight:600;
  transition:.2s ease;
  cursor:pointer;
  box-shadow: 0 2px 0 rgba(0,0,0,.02);
}
.btn:hover{ transform: translateY(-1px); }
.btn:active{ transform: translateY(0); }

.btn-lg{ --pad-y:1rem; --pad-x:1.2rem; font-size:1.05rem; }
.btn-xl{ --pad-y:1.1rem; --pad-x:1.4rem; font-size:1.1rem; }

.btn-primary{
  background: var(--primary);
  color:#fff;
  border-color: transparent;
}
.btn-primary:hover{ background: var(--primary-pressed); }
.btn-outline{
  background:#fff;
  color: var(--fg);
}
.btn-ghost{
  background: var(--primary-ghost);
  color: var(--primary-pressed);
  border-color: transparent;
}

/* Beneficios */
.benefits{
  display:grid; gap:18px;
  grid-template-columns: repeat(4, minmax(0,1fr));
}
.benefit{
  background:#fff;
  border:1px solid var(--border);
  border-radius: var(--radius);
  padding:18px;
  box-shadow: var(--shadow);
}
@media (max-width: 980px){
  .benefits{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px){
  .benefits{ grid-template-columns: 1fr; }
}

/* Testimonios */
.testimonials{
  display:grid; gap:18px;
  grid-template-columns: repeat(3, minmax(0,1fr));
}
.testimonial{
  border-left:4px solid var(--primary);
  background:#fff;
  border:1px solid var(--border);
  border-left-color: var(--primary);
  border-radius: var(--radius);
  padding:16px 18px;
  box-shadow: var(--shadow);
  font-style: italic;
  color: var(--fg-soft);
}
@media (max-width: 980px){
  .testimonials{ grid-template-columns:1fr; }
}

/* FAQ */
.faq details{
  background:#fff;
  border:1px solid var(--border);
  border-radius: var(--radius);
  padding:14px 16px;
  margin-bottom:12px;
  box-shadow: var(--shadow);
}
.faq summary{
  cursor:pointer;
  font-weight:600;
}

/* Pricing */
.pricing{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:20px;
}
.price-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius: var(--radius);
  padding:22px;
  box-shadow: var(--shadow);
  text-align:center;
}
.price{
  font-size:2.4rem;
  margin:.2rem 0 1rem;
  font-weight:900;
}
.price__currency{ font-size:1.1rem; vertical-align: super; }
.price__cents{ font-size:1.1rem; vertical-align: super; }
.guarantee{ color:var(--muted); margin-top:10px; }

/* Sticky CTA */
.sticky-cta{
  position: sticky;
  top:-1px;
  background: rgba(255,255,255,.9);
  backdrop-filter: saturate(120%) blur(6px);
  border-bottom: 1px solid var(--border);
  padding: 10px 0;
  z-index: 50;
  display:none; /* se mostrará con JS al hacer scroll */
}
.sticky-cta__inner{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.sticky-cta__text{ color:var(--fg-soft); font-weight:600; }

/* Footer */
.footer{
  padding:28px 0 10px;
  background:#fff;
  border-top:1px solid var(--border);
  margin-top: 24px;
}
.footer__inner{
  display:flex; align-items:flex-start; justify-content:space-between; gap:20px;
}
.footer__nav a{ color:var(--fg); text-decoration:none; margin-left:14px; }
.footer__legal{ margin-top:10px; color:var(--muted); }

@media (max-width:720px){
  .footer__inner{ flex-direction:column; }
}

/* Accesibilidad / estados de foco */
a:focus, button:focus, .btn:focus, summary:focus{
  outline: 3px solid var(--primary-pressed);
  outline-offset: 2px;
}

/* Tabla de contenidos */
.toc{ padding-left: 1.1rem; }
.toc > li{ margin-bottom: .6rem; }
.toc ol{ padding-left: 1.1rem; margin-top:.5rem; }
