/* Shared styles for the per-plan pages (/planes/clutch, /planes/acelerador).
   Same design system as /que-hacemos and /canal-propio-oferta so the whole
   funnel reads as one product. Plain CSS, no build step. */
:root {
  --navy: #1a2332; --ink: #0f172a; --blue: #2563eb; --blue-soft: #93c5fd;
  --green: #10b981; --green-deep: #166534; --bg: #f8fafc; --card: #fff;
  --border: #e2e8f0; --muted: #64748b; --rule: #f1f5f9;
  --shadow: 0 1px 3px rgba(0,0,0,.04), 0 8px 24px -8px rgba(0,0,0,.08);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: "Inter", -apple-system, system-ui, sans-serif; font-size: 16px; line-height: 1.6;
  color: #334155; background: var(--bg); -webkit-font-smoothing: antialiased; }
.display { font-family: "DM Sans", sans-serif; font-weight: 700; color: var(--navy); letter-spacing: -.01em; }
.wrap { max-width: 900px; margin: 0 auto; padding: 0 24px; }
.wrap--narrow { max-width: 700px; }

/* nav + hero */
.hero { background: linear-gradient(180deg, var(--ink), var(--navy)); color: #fff; padding: 0 0 60px; }
.nav { display: flex; align-items: center; justify-content: space-between; padding: 22px 0; }
.logo { display: flex; align-items: center; gap: 9px; font-family: "DM Sans", sans-serif; font-weight: 700;
  font-size: 20px; color: #fff; text-decoration: none; }
.logo svg { width: 26px; height: 26px; }
.nav-links { display: flex; align-items: center; gap: 20px; font-size: 14px; }
.nav-links a { color: rgba(255,255,255,.72); text-decoration: none; }
.nav-links a:hover { color: #fff; }
@media (max-width: 640px) { .nav-links .hide-sm { display: none; } }
.hero-inner { padding-top: 44px; text-align: center; }
.plan-eyebrow { display: inline-block; font-size: 12.5px; font-weight: 600; letter-spacing: .14em;
  text-transform: uppercase; color: var(--blue-soft); margin-bottom: 16px; }
.hero h1 { font-family: "DM Sans", sans-serif; font-weight: 700; font-size: 44px; line-height: 1.12;
  letter-spacing: -.02em; color: #fff; }
.hero-sub { font-size: 17.5px; color: rgba(255,255,255,.75); max-width: 560px; margin: 18px auto 0; }
@media (max-width: 640px) { .hero h1 { font-size: 32px; } }

/* price card */
.buy-card { background: var(--card); border: 1px solid var(--border); border-radius: 20px;
  box-shadow: 0 2px 6px rgba(15,23,42,.06), 0 24px 60px -20px rgba(15,23,42,.25);
  padding: 36px 40px; margin-top: 36px; text-align: center; }
@media (max-width: 640px) { .buy-card { padding: 28px 22px; } }
.price { font-family: "DM Sans", sans-serif; font-weight: 700; font-size: 52px; color: var(--blue); letter-spacing: -.02em; }
.price .per { font-size: 17px; color: var(--muted); font-weight: 500; }
.price-extra { font-size: 15px; color: var(--navy); font-weight: 600; margin-top: 4px; }
.btn { display: inline-block; border: 0; cursor: pointer; padding: 15px 34px; border-radius: 10px;
  font-weight: 600; font-size: 16px; text-decoration: none; font-family: inherit; }
.btn--primary { background: var(--blue); color: #fff; }
.btn--primary:hover { background: #1d4ed8; }
.btn--primary:disabled { opacity: .6; cursor: progress; }
.btn--ghost { border: 1px solid var(--border); color: var(--navy); background: #fff; }
.buy-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 24px; }

/* The billing disclosure. Deliberately NOT fine print: Stripe charges the flat
   price only, so a buyer who misses this treats the charge as final and
   disputes the separate IVA / commission invoice. */
.billing-note { margin-top: 22px; background: #fffbeb; border: 1px solid #fde68a; border-radius: 12px;
  padding: 16px 18px; font-size: 14px; color: #78350f; line-height: 1.55; text-align: left; }
.billing-note strong { color: #713f12; }
.buy-err { display: none; margin-top: 16px; background: #fef2f2; border: 1px solid #fecaca;
  border-radius: 10px; padding: 12px 14px; font-size: 14px; color: #991b1b; }

/* sections */
.section { padding: 68px 0 0; }
.section-head { text-align: center; margin-bottom: 30px; }
.section-kicker { font-size: 12.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--blue); }
.section-title { font-size: 28px; margin-top: 8px; }
@media (max-width: 640px) { .section { padding-top: 52px; } .section-title { font-size: 23px; } }
.feat-grid { display: grid; gap: 10px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .feat-grid { grid-template-columns: repeat(2, 1fr); } }
.feat { background: var(--card); border: 1px solid var(--border); border-radius: 13px; padding: 15px 17px;
  box-shadow: var(--shadow); display: flex; gap: 11px; align-items: flex-start; }
.feat .ic { flex-shrink: 0; width: 30px; height: 30px; border-radius: 8px; background: #eff6ff;
  display: flex; align-items: center; justify-content: center; font-size: 15px; }
.feat strong { display: block; font-family: "DM Sans", sans-serif; font-size: 14.5px; color: var(--navy); }
.feat span { font-size: 12.5px; color: var(--muted); line-height: 1.45; display: block; margin-top: 1px; }

.fit { background: var(--card); border: 1px solid var(--border); border-radius: 16px; padding: 26px 28px; box-shadow: var(--shadow); }
.fit h3 { font-family: "DM Sans", sans-serif; font-size: 16px; color: var(--navy); margin-bottom: 10px; }
.fit ul { list-style: none; }
.fit li { font-size: 14.5px; padding: 6px 0 6px 24px; position: relative; color: #334155; }
.fit li::before { content: "✓"; position: absolute; left: 0; color: var(--green); font-weight: 700; }
.fit li.no::before { content: "—"; color: #cbd5e1; }
.fit li.no { color: #94a3b8; }
.fit-grid { display: grid; gap: 14px; grid-template-columns: 1fr; }
@media (min-width: 760px) { .fit-grid { grid-template-columns: repeat(2, 1fr); } }

.faq { max-width: 700px; margin: 0 auto; }
.faq-item { padding: 20px 0; border-bottom: 1px solid var(--border); }
.faq-item:first-child { border-top: 1px solid var(--border); }
.faq-item h3 { font-family: "DM Sans", sans-serif; font-weight: 700; font-size: 16.5px; color: var(--navy); margin-bottom: 7px; }
.faq-item p { font-size: 14.5px; color: #475569; line-height: 1.62; }
.faq-item a { color: var(--blue); font-weight: 600; text-decoration: none; }

.close-band { margin-top: 72px; background: linear-gradient(180deg, var(--navy), var(--ink)); color: #fff;
  text-align: center; padding: 60px 24px 68px; }
.close-band h2 { font-family: "DM Sans", sans-serif; font-weight: 700; font-size: 28px; color: #fff; }
.close-band p { font-size: 16px; color: rgba(255,255,255,.75); max-width: 500px; margin: 12px auto 0; }
.footer { text-align: center; font-size: 13px; color: #94a3b8; padding: 24px 0 32px; background: var(--ink); }
.footer a { color: #94a3b8; }
