/* ================================================================
   FINXIDIL FORTE – Elementor Widgets CSS
   Fonts: Inter / Poppins (via Google Fonts – cargar en el tema)
   Colors: --accent #2BB673  |  --second #2D8CFF
================================================================ */

/* ── Tokens globales ── */
:root {
  --fnx-radius:  14px;
  --fnx-shadow:  0 4px 24px rgba(0,0,0,.12);
  --fnx-shadow-lg: 0 8px 48px rgba(0,0,0,.18);
  --fnx-trans:   all .25s cubic-bezier(.4,0,.2,1);
  --fnx-font:    'Inter', 'Poppins', system-ui, sans-serif;
}

/* ── Helpers ── */
.fnx-fade-in { opacity:0; transform:translateY(20px); transition:var(--fnx-trans); }
.fnx-fade-in.visible { opacity:1; transform:translateY(0); }

/* ── Section header ── */
.fnx-section-header { text-align:center; margin-bottom:2.5rem; }
.fnx-section-title  {
  font-family: var(--fnx-font);
  font-size: clamp(1.6rem,3.5vw,2.4rem);
  font-weight:700; color:#111; margin:0 0 .6rem;
}
.fnx-section-subtitle { font-size:1.05rem; color:#555; margin:0; }

/* ── Buttons ── */
.fnx-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.4rem;
  padding:.85rem 2rem; border-radius:50px; font-family:var(--fnx-font);
  font-weight:600; font-size:1rem; cursor:pointer; border:none;
  text-decoration:none; transition:var(--fnx-trans); white-space:nowrap;
}
.fnx-btn--primary  { background:var(--accent,#2BB673); color:#fff; }
.fnx-btn--primary:hover { filter:brightness(1.1); transform:translateY(-2px); box-shadow:0 6px 20px rgba(43,182,115,.4); }
.fnx-btn--featured { background:var(--featured,#2D8CFF); color:#fff; }
.fnx-btn--featured:hover { filter:brightness(1.1); transform:translateY(-2px); box-shadow:0 6px 20px rgba(45,140,255,.4); }
.fnx-btn--ghost    { background:transparent; color:var(--accent,#2BB673); border:2px solid var(--accent,#2BB673); }
.fnx-btn--ghost:hover { background:var(--accent,#2BB673); color:#fff; }

/* ── Check icon ── */
.fnx-check { color:var(--accent,#2BB673); font-weight:700; margin-right:.4rem; }

/* ================================================================
   HERO PRODUCT
================================================================ */
.fnx-hero {
  display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center;
  background:var(--bg,#0D1117); padding:4rem clamp(1.5rem,5vw,5rem);
  border-radius:var(--fnx-radius); overflow:hidden; position:relative;
}
.fnx-hero::before {
  content:''; position:absolute; top:-100px; right:-100px;
  width:400px; height:400px; border-radius:50%;
  background:radial-gradient(circle, rgba(43,182,115,.18) 0%, transparent 70%);
  pointer-events:none;
}
@media(max-width:768px){ .fnx-hero { grid-template-columns:1fr; padding:2.5rem 1.5rem; } }

.fnx-badge {
  display:inline-block; background:rgba(43,182,115,.15);
  color:var(--accent,#2BB673); border:1px solid var(--accent,#2BB673);
  border-radius:50px; padding:.3rem 1rem; font-size:.82rem;
  font-weight:600; letter-spacing:.03em; margin-bottom:1rem;
}

.fnx-hero__headline {
  font-family:var(--fnx-font); font-size:clamp(1.8rem,3.5vw,2.8rem);
  font-weight:800; color:#fff; line-height:1.2; margin:0 0 1rem;
}
.fnx-hero__sub { font-size:1.1rem; color:rgba(255,255,255,.75); margin:0 0 1.5rem; line-height:1.6; }

.fnx-hero__benefits { list-style:none; padding:0; margin:0 0 1.8rem; display:flex; flex-direction:column; gap:.55rem; }
.fnx-hero__benefits li { color:rgba(255,255,255,.88); font-size:.97rem; }

.fnx-hero__ctas { display:flex; flex-wrap:wrap; gap:.8rem; margin-bottom:.8rem; }
.fnx-trust { font-size:.82rem; color:rgba(255,255,255,.5); margin:0; }

.fnx-hero__image { text-align:center; }
.fnx-hero__image img {
  max-width:100%; height:auto; border-radius:var(--fnx-radius);
  filter:drop-shadow(0 16px 40px rgba(43,182,115,.25));
  animation: fnx-float 4s ease-in-out infinite;
}
@keyframes fnx-float {
  0%,100% { transform:translateY(0); }
  50%      { transform:translateY(-10px); }
}

/* ================================================================
   BENEFICIOS
================================================================ */
.fnx-beneficios { padding:4rem clamp(1rem,4vw,3rem); }
.fnx-beneficios__grid {
  display:grid; gap:1.5rem;
  grid-template-columns:repeat(auto-fill, minmax(240px,1fr));
}
.fnx-cols-2 { grid-template-columns:repeat(2,1fr); }
.fnx-cols-3 { grid-template-columns:repeat(3,1fr); }
.fnx-cols-4 { grid-template-columns:repeat(4,1fr); }
@media(max-width:900px){ .fnx-cols-3,.fnx-cols-4 { grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .fnx-cols-2,.fnx-cols-3,.fnx-cols-4 { grid-template-columns:1fr; } }

.fnx-benefit-card {
  background:var(--card-bg,#fff); border-radius:var(--fnx-radius);
  padding:1.8rem 1.5rem; box-shadow:var(--fnx-shadow);
  border:1px solid rgba(0,0,0,.06); transition:var(--fnx-trans);
  display:flex; flex-direction:column; gap:.5rem;
}
.fnx-benefit-card:hover { transform:translateY(-4px); box-shadow:var(--fnx-shadow-lg); }

.fnx-benefit-card__icon { font-size:2.2rem; margin-bottom:.3rem; }
.fnx-benefit-card__title { font-family:var(--fnx-font); font-size:1.05rem; font-weight:700; color:#111; margin:0; }
.fnx-benefit-card__desc  { font-size:.92rem; color:#555; line-height:1.5; margin:0; flex:1; }
.fnx-benefit-card__badge {
  display:inline-block; background:rgba(43,182,115,.1);
  color:var(--accent,#2BB673); border-radius:50px;
  padding:.2rem .75rem; font-size:.78rem; font-weight:600;
  align-self:flex-start; margin-top:.3rem;
}

/* ================================================================
   TESTIMONIOS
================================================================ */
.fnx-testimonios { padding:4rem clamp(1rem,4vw,3rem); }
.fnx-testimonios__grid {
  display:grid; grid-template-columns:repeat(auto-fill, minmax(280px,1fr)); gap:1.5rem;
}
@media(max-width:600px){ .fnx-testimonios__grid { grid-template-columns:1fr; } }

.fnx-testimonial-card {
  background:#fff; border-radius:var(--fnx-radius);
  box-shadow:var(--fnx-shadow); padding:1.6rem;
  border:1px solid rgba(0,0,0,.06);
  display:flex; flex-direction:column; gap:.8rem;
  transition:var(--fnx-trans);
}
.fnx-testimonial-card:hover { transform:translateY(-3px); box-shadow:var(--fnx-shadow-lg); }

.fnx-testimonial-card__images { display:flex; gap:.75rem; }
.fnx-img-wrap { position:relative; flex:1; }
.fnx-img-wrap img { width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:10px; }
.fnx-img-label {
  position:absolute; bottom:6px; left:50%; transform:translateX(-50%);
  font-size:.68rem; font-weight:700; border-radius:4px; padding:.1rem .5rem;
  letter-spacing:.06em; text-transform:uppercase;
}
.fnx-label--before { background:rgba(0,0,0,.7); color:#fff; }
.fnx-label--after  { background:var(--accent,#2BB673); color:#fff; }

.fnx-resultado-badge {
  background:rgba(43,182,115,.1); color:var(--accent,#2BB673);
  border-radius:50px; padding:.3rem .9rem; font-size:.8rem; font-weight:700;
  align-self:flex-start;
}
.fnx-stars { color:#F59E0B; font-size:1.1rem; letter-spacing:.05em; }
.fnx-quote {
  font-size:.95rem; color:#444; line-height:1.55;
  margin:0; font-style:italic;
}
.fnx-testimonial-author { display:flex; flex-direction:column; gap:.1rem; }
.fnx-testimonial-author strong { font-size:.97rem; color:#111; font-weight:700; }
.fnx-testimonial-author span   { font-size:.82rem; color:#777; }
.fnx-tiempo { font-size:.78rem; color:var(--accent,#2BB673); font-weight:600; }

/* ================================================================
   PRICING
================================================================ */
.fnx-pricing { padding:4rem clamp(1rem,4vw,3rem); }
.fnx-pricing__grid {
  display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr));
  gap:1.5rem; align-items:start;
}
@media(max-width:600px){ .fnx-pricing__grid { grid-template-columns:1fr; } }

.fnx-plan-card {
  background:#fff; border-radius:var(--fnx-radius);
  box-shadow:var(--fnx-shadow); padding:2rem 1.6rem;
  border:2px solid transparent; position:relative;
  display:flex; flex-direction:column; gap:.8rem;
  transition:var(--fnx-trans);
}
.fnx-plan-card:hover { transform:translateY(-4px); box-shadow:var(--fnx-shadow-lg); }
.fnx-plan-card--featured {
  border-color:var(--featured,#2D8CFF);
  box-shadow:0 8px 40px rgba(45,140,255,.2);
  transform:scale(1.03);
}
.fnx-plan-card--featured:hover { transform:scale(1.05) translateY(-4px); }

.fnx-plan-badge {
  position:absolute; top:-14px; left:50%; transform:translateX(-50%);
  background:var(--featured,#2D8CFF); color:#fff;
  border-radius:50px; padding:.3rem 1.2rem; font-size:.8rem; font-weight:700;
  white-space:nowrap;
}
.fnx-plan-name { font-family:var(--fnx-font); font-size:1.25rem; font-weight:700; color:#111; margin:0; }
.fnx-plan-desc { font-size:.88rem; color:#666; margin:0; }

.fnx-plan-price { display:flex; align-items:baseline; gap:.3rem; flex-wrap:wrap; }
.fnx-plan-price__original { font-size:.95rem; color:#aaa; text-decoration:line-through; }
.fnx-plan-price__current   { font-size:2rem; font-weight:800; color:#111; font-family:var(--fnx-font); }
.fnx-plan-price__period    { font-size:.9rem; color:#777; }

.fnx-plan-features { list-style:none; padding:0; margin:.4rem 0; display:flex; flex-direction:column; gap:.45rem; }
.fnx-plan-features li { font-size:.9rem; color:#444; }
.fnx-guarantee { text-align:center; margin-top:2rem; font-size:.85rem; color:#888; }

/* ================================================================
   QUIZ
================================================================ */
.fnx-quiz {
  background:var(--bg,#0D1117);
  border-radius:var(--fnx-radius);
  padding:2.5rem clamp(1.2rem,4vw,2.5rem);
  font-family:var(--fnx-font); max-width:700px; margin:0 auto;
  box-shadow:var(--fnx-shadow-lg);
}

.fnx-quiz__header { text-align:center; margin-bottom:2rem; }
.fnx-quiz__title  { font-size:clamp(1.4rem,3vw,2rem); font-weight:800; color:#fff; margin:0 0 .5rem; }
.fnx-quiz__subtitle { font-size:1rem; color:rgba(255,255,255,.65); margin:0 0 1.2rem; }

.fnx-quiz__progress {
  height:6px; background:rgba(255,255,255,.12); border-radius:50px; overflow:hidden; margin-bottom:.5rem;
}
.fnx-quiz__progress-bar {
  height:100%; background:linear-gradient(90deg,var(--accent,#2BB673),var(--second,#2D8CFF));
  border-radius:50px; transition:width .4s ease;
}
.fnx-quiz__step-label { font-size:.82rem; color:rgba(255,255,255,.5); margin:0; }

/* Steps */
.fnx-quiz__step { display:none; }
.fnx-quiz__step.active { display:block; animation: fnx-slide-in .3s ease; }
@keyframes fnx-slide-in { from { opacity:0; transform:translateX(20px); } to { opacity:1; transform:translateX(0); } }

.fnx-quiz__q {
  font-size:1.15rem; font-weight:700; color:#fff;
  margin:0 0 1.2rem; text-align:center;
}
.fnx-quiz__options {
  display:grid; grid-template-columns:repeat(auto-fill, minmax(180px,1fr));
  gap:.75rem;
}
@media(max-width:480px){ .fnx-quiz__options { grid-template-columns:1fr; } }

.fnx-quiz__opt {
  background:rgba(255,255,255,.06); border:1.5px solid rgba(255,255,255,.12);
  color:#fff; border-radius:var(--fnx-radius); padding:1rem .8rem;
  font-family:var(--fnx-font); font-size:.92rem; cursor:pointer;
  transition:var(--fnx-trans); text-align:center; line-height:1.4;
}
.fnx-quiz__opt:hover,
.fnx-quiz__opt.selected {
  background:rgba(43,182,115,.18); border-color:var(--accent,#2BB673);
  transform:translateY(-2px);
}
.fnx-opt-icon { display:block; font-size:1.4rem; margin-bottom:.3rem; }

/* Result */
.fnx-quiz__result { text-align:center; padding:1.5rem 0; animation: fnx-slide-in .4s ease; }
.fnx-result__badge {
  display:inline-block; border-radius:50px; padding:.4rem 1.4rem;
  font-size:.85rem; font-weight:700; margin-bottom:1rem;
}
.fnx-result__title { font-size:1.3rem; font-weight:800; color:#fff; margin:0 0 .75rem; }
.fnx-result__desc  { font-size:.97rem; color:rgba(255,255,255,.75); margin:0 0 1.5rem; line-height:1.6; }
.fnx-result__cta-wrap { display:flex; flex-wrap:wrap; justify-content:center; gap:.75rem; margin-bottom:.8rem; }
.fnx-result__trust { font-size:.78rem; color:rgba(255,255,255,.4); margin:0 0 .8rem; }
.fnx-result__feedback { margin-top:.75rem; padding:.75rem; border-radius:10px; font-size:.9rem; }
.fnx-result__feedback.success { background:rgba(43,182,115,.15); color:#2BB673; }
.fnx-result__feedback.error   { background:rgba(239,68,68,.15);  color:#EF4444; }
