/* IMPACTO PROJECT · estilos */
@font-face { font-family: "Lora"; src: url(fonts/Lora-Variable.woff) format("woff"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Lora"; src: url(fonts/Lora-Italic-Variable.woff) format("woff"); font-weight: 400 700; font-style: italic; font-display: swap; }
@font-face { font-family: "Poppins"; src: url(fonts/Poppins-Regular.woff) format("woff"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Poppins"; src: url(fonts/Poppins-Medium.woff) format("woff"); font-weight: 500 600; font-display: swap; }
@font-face { font-family: "Poppins"; src: url(fonts/Poppins-Bold.woff) format("woff"); font-weight: 700 800; font-display: swap; }
:root {
  --g: #890149; --g2: #A3155F; --g3: #5E0032; --g-ink: #3A0420;
  --rosa: #F7DCE4; --rosa2: #FBEEF2; --crema: #F8F6EF; --blanco: #fff;
  --teal: #2E6B69; --gris: #6B5A61; --linea: #EEDFE5;
  --serif: "Lora", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;
  --sans: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --r: 20px; --sh: 0 24px 60px -28px rgba(94, 0, 50, .45);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--blanco); color: var(--g-ink); font: 17px/1.65 var(--sans); overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--g); }
h1, h2, h3, h4 { font-family: var(--serif); color: var(--g); line-height: 1.12; margin: 0 0 .5em; letter-spacing: -.01em; }
h1 { font-size: clamp(2.3rem, 6.4vw, 4.6rem); }
h2 { font-size: clamp(1.8rem, 4vw, 2.9rem); }
h3 { font-size: 1.35rem; }
p { margin: 0 0 1em; }
.wrap { max-width: 1140px; margin: 0 auto; padding: 0 20px; }
.narrow { max-width: 760px; }
.center { text-align: center; }
.eyebrow { display: inline-block; font: 700 .76rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--g); margin-bottom: 1em; }
.muted { color: var(--gris); }
.skip { position: absolute; left: -999px; } .skip:focus { left: 12px; top: 12px; z-index: 99; background: #fff; padding: 8px 12px; }

/* ---------- botones ---------- */
.btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .55em; border: 0; cursor: pointer; overflow: hidden;
  font: 700 1rem/1 var(--sans); padding: 1.05em 1.8em; border-radius: 999px; text-decoration: none; background: var(--g); color: #fff;
  box-shadow: 0 12px 30px -12px rgba(137, 1, 73, .7); transition: transform .2s, box-shadow .2s, background .2s; }
.btn:hover { transform: translateY(-2px); background: var(--g2); box-shadow: 0 18px 36px -12px rgba(137, 1, 73, .75); }
.btn::after { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%); transform: translateX(-120%); animation: shine 3.8s ease-in-out infinite; }
@keyframes shine { 0%, 60% { transform: translateX(-120%); } 100% { transform: translateX(120%); } }
.btn-ghost { background: transparent; color: var(--g); border: 2px solid var(--g); box-shadow: none; }
.btn-ghost:hover { background: var(--g); color: #fff; }
.btn-ghost::after { display: none; }
.btn-white { background: #fff; color: var(--g); }
.btn-white:hover { background: var(--rosa); }
.btn-sm { padding: .75em 1.2em; font-size: .9rem; }
.arrow { transition: transform .2s; } .btn:hover .arrow { transform: translateX(4px); }

/* ---------- cabecera ---------- */
.bar { background: var(--g); color: #fff; font-size: .82rem; overflow: hidden; white-space: nowrap; }
.bar-track { display: inline-flex; gap: 48px; padding: .55em 0; animation: marquee 28s linear infinite; }
.bar-track span::before { content: "✦ "; color: var(--rosa); }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.nav { position: sticky; top: 0; z-index: 40; background: rgba(255,255,255,.88); backdrop-filter: saturate(1.4) blur(12px); -webkit-backdrop-filter: saturate(1.4) blur(12px); border-bottom: 1px solid transparent; transition: border-color .3s, box-shadow .3s; }
.nav.scrolled { border-color: var(--linea); box-shadow: 0 6px 24px -18px rgba(94,0,50,.5); }
.nav-in { display: flex; align-items: center; justify-content: space-between; gap: 18px; height: 68px; }
.logo { font: 800 1.12rem/1 var(--sans); letter-spacing: .14em; text-decoration: none; color: var(--g); white-space: nowrap; }
.logo b { font-weight: 400; letter-spacing: .32em; font-size: .7em; margin-left: .45em; }
.menu { display: flex; align-items: center; gap: 24px; }
.menu a { text-decoration: none; color: var(--g-ink); font-size: .95rem; font-weight: 500; position: relative; }
.menu a:not(.btn)::after { content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px; background: var(--g); transform: scaleX(0); transition: transform .25s; transform-origin: left; }
.menu a:not(.btn):hover::after, .menu a[aria-current="page"]::after { transform: scaleX(1); }
.menu .btn { color: #fff; }
.burger { display: none; background: none; border: 0; width: 44px; height: 44px; cursor: pointer; padding: 10px; }
.burger span { display: block; height: 2px; background: var(--g); margin: 6px 0; transition: transform .3s, opacity .3s; }
.nav.open .burger span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.nav.open .burger span:nth-child(2) { opacity: 0; }
.nav.open .burger span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* ---------- hero ---------- */
.hero { position: relative; padding: 84px 0 70px; overflow: hidden; background: radial-gradient(90% 70% at 85% 10%, var(--rosa2), transparent 60%), #fff; }
.blob { position: absolute; border-radius: 50%; filter: blur(60px); opacity: .55; animation: float 14s ease-in-out infinite; pointer-events: none; }
.blob.b1 { width: 420px; height: 420px; background: var(--rosa); right: -120px; top: -80px; }
.blob.b2 { width: 300px; height: 300px; background: #F3C3D4; left: -120px; bottom: -60px; animation-delay: -5s; }
.blob.b3 { width: 180px; height: 180px; background: rgba(137,1,73,.18); right: 30%; bottom: 10%; animation-delay: -9s; }
@keyframes float { 0%, 100% { transform: translate(0, 0) scale(1); } 33% { transform: translate(30px, -24px) scale(1.06); } 66% { transform: translate(-20px, 18px) scale(.96); } }
.hero-grid { position: relative; display: grid; grid-template-columns: 1.25fr .75fr; gap: 40px; align-items: center; }
.hero h1 .rot { display: inline-block; color: var(--g2); font-style: italic; min-width: 6ch; }
.hero h1 .rot span { display: inline-block; animation: wordin .6s cubic-bezier(.2,.8,.2,1) both; }
@keyframes wordin { from { opacity: 0; transform: translateY(.4em) rotateX(-60deg); } to { opacity: 1; transform: none; } }
.hero .lead { font-size: 1.18rem; color: var(--gris); max-width: 600px; }
.hero-cta { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 26px; }
.trust { display: flex; flex-wrap: wrap; gap: 10px 22px; list-style: none; padding: 0; margin: 0; font-size: .9rem; color: var(--gris); }
.trust li::before { content: "✓"; display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--rosa); color: var(--g); font-weight: 800; font-size: .72rem; margin-right: 7px; }
.hero-stack { position: relative; height: 380px; perspective: 1200px; }
.hero-stack .cv { position: absolute; width: 190px; border-radius: 10px; box-shadow: var(--sh); transition: transform .5s cubic-bezier(.2,.8,.2,1); }
.hero-stack .cv1 { left: 8%; top: 40px; transform: rotate(-8deg) translateZ(0); animation: bob 6s ease-in-out infinite; }
.hero-stack .cv2 { right: 6%; top: 0; transform: rotate(7deg); animation: bob 6s ease-in-out infinite -3s; }
.hero-stack:hover .cv1 { transform: rotate(-12deg) translateX(-10px); }
.hero-stack:hover .cv2 { transform: rotate(10deg) translateX(10px); }
@keyframes bob { 0%, 100% { translate: 0 0; } 50% { translate: 0 -14px; } }
.badge-float { position: absolute; background: #fff; border-radius: 14px; padding: 10px 14px; box-shadow: var(--sh); font-size: .82rem; font-weight: 700; color: var(--g); animation: bob 5s ease-in-out infinite -1s; white-space: nowrap; }
.badge-float small { display: block; font-weight: 500; color: var(--gris); }
.bf1 { left: 0; bottom: 40px; } .bf2 { right: 0; bottom: 0; animation-delay: -2.5s; }

/* ---------- secciones ---------- */
section { padding: 90px 0; }
.sec-head { max-width: 720px; margin: 0 auto 44px; text-align: center; }
.sec-head p { color: var(--gris); font-size: 1.08rem; }
.bg-crema { background: var(--crema); }
.bg-rosa { background: var(--rosa2); }
.bg-g { background: var(--g); color: #fff; }
.bg-g h2, .bg-g h3, .bg-g .eyebrow { color: #fff; }
.bg-g .muted, .bg-g p { color: #f6dbe6; }

/* dolor */
.pains { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.pain { background: #fff; border: 1px solid var(--linea); border-radius: var(--r); padding: 26px; transition: transform .3s, box-shadow .3s; }
.pain:hover { transform: translateY(-6px); box-shadow: var(--sh); }
.pain .q { font: italic 600 1.15rem/1.35 var(--serif); color: var(--g); margin-bottom: .5em; }
.pain p { color: var(--gris); margin: 0; font-size: .96rem; }
.turn { margin-top: 40px; text-align: center; font: 600 clamp(1.3rem, 2.6vw, 1.8rem)/1.35 var(--serif); color: var(--g); }

/* método */
.pillars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; counter-reset: p; }
.pillar { position: relative; padding: 28px 22px; border-radius: var(--r); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.2); transition: background .3s, transform .3s; }
.pillar:hover { background: rgba(255,255,255,.14); transform: translateY(-4px); }
.pillar::before { counter-increment: p; content: "0" counter(p); display: block; font: 700 2.4rem/1 var(--serif); color: var(--rosa); opacity: .9; margin-bottom: 14px; }
.pillar h3 { font-size: 1.2rem; }
.pillar p { font-size: .95rem; margin: 0; }

/* línea temporal */
.timeline { position: relative; max-width: 860px; margin: 0 auto; }
.timeline::before { content: ""; position: absolute; left: 22px; top: 8px; bottom: 8px; width: 2px; background: linear-gradient(var(--g), var(--rosa)); }
.tl { position: relative; padding: 0 0 30px 70px; }
.tl::before { content: ""; position: absolute; left: 13px; top: 4px; width: 20px; height: 20px; border-radius: 50%; background: #fff; border: 4px solid var(--g); box-shadow: 0 0 0 6px var(--rosa2); }
.tl h3 { margin-bottom: .2em; }
.tl p { color: var(--gris); margin: 0; }

/* programas */
.programs { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; align-items: stretch; }
.prog { position: relative; display: flex; flex-direction: column; border-radius: 26px; padding: 34px; background: #fff; border: 1px solid var(--linea); box-shadow: var(--sh); transition: transform .35s; }
.prog:hover { transform: translateY(-6px); }
.prog.star { background: linear-gradient(160deg, var(--g) 0%, var(--g3) 100%); color: #fff; border: 0; }
.prog.star h3, .prog.star .price { color: #fff; }
.prog.star p, .prog.star li { color: #f8dfe9; }
.ribbon { position: absolute; top: -13px; right: 24px; border-radius: 999px !important; background: var(--rosa); color: var(--g); font: 800 .72rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; padding: 8px 14px; border-radius: 6px 0 0 6px; }
.prog-top { display: flex; gap: 20px; align-items: center; margin-bottom: 18px; }
.prog-top img { width: 104px; border-radius: 8px; box-shadow: 0 14px 30px -12px rgba(0,0,0,.45); transform: rotate(-4deg); transition: transform .35s; }
.prog:hover .prog-top img { transform: rotate(0) scale(1.04); }
.prog .lvl { font: 700 .74rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--g2); }
.prog.star .lvl { color: var(--rosa); }
.prog h3 { font-size: 1.9rem; margin: .25em 0 .15em; }
.prog .for { font-style: italic; font-family: var(--serif); font-size: 1.05rem; margin: 0; }
.prog ul { list-style: none; padding: 0; margin: 6px 0 22px; flex: 1; }
.prog li { position: relative; padding-left: 28px; margin-bottom: .55em; font-size: .97rem; color: var(--gris); }
.prog li::before { content: "✓"; position: absolute; left: 0; top: 1px; width: 19px; height: 19px; display: grid; place-items: center; border-radius: 50%; background: var(--rosa); color: var(--g); font-size: .7rem; font-weight: 800; }
.price-row { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 14px; }
.price { font: 700 2.6rem/1 var(--serif); color: var(--g); }
.price small { display: block; font: 500 .8rem/1.4 var(--sans); opacity: .85; margin-top: 6px; }
.prog .btn { width: 100%; margin-top: 18px; }
.prog.star .btn { background: #fff; color: var(--g); }
.pay { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 12px; font-size: .78rem; opacity: .85; }
.pay svg { width: 40px; height: 25px; }

/* experiencia incluida */
.exp { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 34px; }
.exp div { text-align: center; padding: 20px 14px; border-radius: 16px; background: #fff; border: 1px solid var(--linea); }
.exp b { display: block; font-family: var(--serif); color: var(--g); font-size: 1.1rem; }
.exp span { font-size: .88rem; color: var(--gris); }

/* números */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; text-align: center; }
.stat b { display: block; font: 700 clamp(2.4rem, 5vw, 3.6rem)/1 var(--serif); color: var(--g); }
.stat span { color: var(--gris); font-size: .92rem; }

/* comunidad */
.community-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 40px; align-items: center; }
.join-steps { list-style: none; padding: 0; margin: 0 0 26px; }
.join-steps li { display: flex; gap: 14px; margin-bottom: 16px; }
.join-steps li b { flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--g); font-family: var(--serif); }
.socials { display: flex; flex-wrap: wrap; gap: 10px; }
.chat { background: #fff; border-radius: 24px; padding: 22px; box-shadow: 0 30px 60px -30px rgba(0,0,0,.5); color: var(--g-ink); }
.msg { max-width: 85%; padding: 10px 14px; border-radius: 16px; margin-bottom: 10px; font-size: .92rem; opacity: 0; transform: translateY(10px); transition: opacity .5s, transform .5s; }
.chat.in .msg { opacity: 1; transform: none; }
.chat.in .msg:nth-child(2) { transition-delay: .5s; } .chat.in .msg:nth-child(3) { transition-delay: 1s; } .chat.in .msg:nth-child(4) { transition-delay: 1.5s; }
.msg.me { margin-left: auto; background: var(--g); color: #fff; border-bottom-right-radius: 4px; }
.chat .msg.them { background: var(--rosa2); color: var(--g-ink); border-bottom-left-radius: 4px; }
.chat .msg.me { color: #fff; }
.chat .chat-h { color: var(--gris); }
.chat-h { font-size: .8rem; color: var(--gris); text-align: center; margin-bottom: 12px; }

/* cita */
.quote { text-align: center; }
.quote blockquote { margin: 0 auto; max-width: 880px; font: italic 600 clamp(1.6rem, 3.6vw, 2.6rem)/1.3 var(--serif); color: var(--g); }
.quote blockquote::before { content: "“"; display: block; font-size: 3em; line-height: .5; color: var(--rosa); }
.quote p { max-width: 560px; margin: 18px auto 0; color: var(--gris); }

/* faq */
.faq details { border-bottom: 1px solid var(--linea); }
.faq summary { cursor: pointer; list-style: none; padding: 20px 4px; font-weight: 700; display: flex; justify-content: space-between; gap: 16px; color: var(--g-ink); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; color: var(--g); font-size: 1.5rem; line-height: 1; transition: transform .3s; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { color: var(--gris); padding: 0 4px 20px; margin: 0; }

/* cta final */
.final { text-align: center; position: relative; overflow: hidden; }
.final .btn { margin: 6px; }

/* ---------- blog ---------- */
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.card { display: flex; flex-direction: column; text-decoration: none; color: inherit; border-radius: var(--r); overflow: hidden; background: #fff; border: 1px solid var(--linea); transition: transform .3s, box-shadow .3s; }
.card:hover { transform: translateY(-6px); box-shadow: var(--sh); }
.card-top { height: 120px; padding: 18px; display: flex; align-items: flex-end; font: 700 .74rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: #fff; position: relative; overflow: hidden; }
.card-top::after { content: attr(data-k); position: absolute; right: -6px; top: -18px; font: italic 700 6rem/1 var(--serif); color: rgba(255,255,255,.14); }
.t1 { background: linear-gradient(135deg, var(--g), #B23A78); } .t2 { background: linear-gradient(135deg, var(--g3), var(--g)); }
.t3 { background: linear-gradient(135deg, #B2457A, #E58FB0); } .t4 { background: linear-gradient(135deg, var(--teal), #4E918E); }
.card-body { padding: 20px 22px 24px; flex: 1; display: flex; flex-direction: column; }
.card h3 { font-size: 1.22rem; color: var(--g); }
.card p { color: var(--gris); font-size: .95rem; flex: 1; }
.card .meta { font-size: .8rem; color: var(--gris); }
.filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 30px; }
.filters button { border: 1px solid var(--linea); background: #fff; color: var(--g-ink); padding: .6em 1.1em; border-radius: 999px; font: 600 .88rem var(--sans); cursor: pointer; }
.filters button[aria-pressed="true"] { background: var(--g); color: #fff; border-color: var(--g); }

/* artículo */
.post-hero { padding: 64px 0 34px; background: linear-gradient(180deg, var(--rosa2), #fff); }
.crumbs { font-size: .85rem; color: var(--gris); margin-bottom: 18px; }
.crumbs a { color: var(--gris); }
.post-hero h1 { font-size: clamp(2rem, 5vw, 3.3rem); }
.post-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: .88rem; color: var(--gris); }
.post-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 48px; padding-top: 30px; padding-bottom: 70px; }
.prose { font-size: 1.08rem; }
.prose h2 { font-size: 1.75rem; margin-top: 1.6em; }
.prose h3 { font-size: 1.3rem; margin-top: 1.3em; }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose li { margin-bottom: .45em; }
.prose li::marker { color: var(--g); }
.prose table { width: 100%; border-collapse: collapse; margin: 1.2em 0; font-size: .95rem; display: block; overflow-x: auto; }
.prose th, .prose td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--linea); vertical-align: top; }
.prose th { color: var(--g); font-family: var(--serif); }
.tldr { background: var(--rosa2); border-left: 4px solid var(--g); border-radius: 0 16px 16px 0; padding: 18px 22px; margin: 0 0 1.6em; }
.tldr b { color: var(--g); }
.tip { background: var(--crema); border-radius: 16px; padding: 16px 20px; margin: 1.4em 0; }
.toc { position: sticky; top: 90px; }
.toc-box { border: 1px solid var(--linea); border-radius: var(--r); padding: 20px; margin-bottom: 20px; }
.toc-box h4 { font-size: 1rem; margin-bottom: .6em; }
.toc-box ol { padding-left: 1.1em; margin: 0; font-size: .9rem; }
.toc-box a { color: var(--g-ink); text-decoration: none; }
.toc-box a:hover { color: var(--g); }
.promo { border-radius: var(--r); padding: 22px; background: linear-gradient(160deg, var(--g), var(--g3)); color: #fff; }
.promo h4 { color: #fff; font-size: 1.2rem; }
.promo p { color: #f6dbe6; font-size: .92rem; }
.promo .btn { background: #fff; color: var(--g); width: 100%; }
.inline-cta { display: flex; gap: 18px; align-items: center; border: 2px solid var(--rosa); border-radius: var(--r); padding: 20px; margin: 2em 0; }
.inline-cta img { width: 74px; border-radius: 6px; transform: rotate(-4deg); }
.inline-cta p { margin: 0 0 .6em; font-size: .98rem; }
.author { display: flex; gap: 14px; align-items: center; border-top: 1px solid var(--linea); padding-top: 24px; margin-top: 40px; font-size: .92rem; color: var(--gris); }
.author .av { flex: none; width: 52px; height: 52px; border-radius: 50%; background: var(--g); color: #fff; display: grid; place-items: center; font: 700 1.1rem var(--serif); }
.related { padding: 60px 0; background: var(--crema); }
.disclosure { font-size: .82rem; color: var(--gris); background: var(--crema); border-radius: 12px; padding: 10px 14px; margin: 0 0 1.4em; }

/* diccionario */
.dict-tools { position: sticky; top: 68px; z-index: 20; background: rgba(255,255,255,.95); backdrop-filter: blur(8px); padding: 14px 0; border-bottom: 1px solid var(--linea); }
.dict-tools input { width: 100%; max-width: 460px; display: block; margin: 0 auto 12px; padding: 13px 18px; border-radius: 999px; border: 1px solid var(--linea); font: 16px var(--sans); }
.dict-tools input:focus { outline: 2px solid var(--g); outline-offset: 1px; }
.dict { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; padding-top: 30px; padding-bottom: 60px; }
.ex { border: 1px solid var(--linea); border-radius: var(--r); padding: 22px; background: #fff; scroll-margin-top: 160px; }
.ex h3 { margin-bottom: .2em; }
.ex .tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.ex .tags span { font-size: .74rem; font-weight: 700; padding: .3em .7em; border-radius: 999px; background: var(--rosa2); color: var(--g); }
.ex .tags span.casa { background: #E6F0EF; color: var(--teal); }
.ex dl { margin: 0; font-size: .94rem; }
.ex dt { font-weight: 700; color: var(--g); margin-top: .5em; }
.ex dd { margin: 0; color: var(--gris); }

/* material */
.gear { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.gear-item { border: 1px solid var(--linea); border-radius: var(--r); padding: 22px; display: flex; flex-direction: column; background: #fff; }
.gear-item .lvl { font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--g2); }
.gear-item p { color: var(--gris); font-size: .94rem; flex: 1; }
.gear-item .btn { margin-top: 8px; }

/* publicidad */
.ad-slot { display: none; margin: 34px auto; text-align: center; max-width: 100%; }
.ads-on .ad-slot { display: block; }
.ad-slot::before { content: "Publicidad"; display: block; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: #9b8b92; margin-bottom: 6px; }
.ad-slot.side { position: sticky; top: 100px; }
.ad-inner { min-height: 280px; background: var(--crema); border-radius: 12px; overflow: hidden; }
.ad-slot.banner .ad-inner { min-height: 100px; }
@media (min-width: 900px) { .ad-slot.banner .ad-inner { min-height: 90px; } }

/* ---------- pie ---------- */
footer { background: var(--g-ink); color: #e9d5dd; padding: 64px 0 30px; font-size: .92rem; }
.foot { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 30px; }
footer h4 { color: #fff; font-family: var(--sans); font-size: .82rem; letter-spacing: .14em; text-transform: uppercase; }
footer ul { list-style: none; margin: 0; padding: 0; }
footer li { margin-bottom: .5em; }
footer a { color: #e9d5dd; text-decoration: none; }
footer a:hover { color: #fff; }
footer .logo { color: #fff; }
.foot-bottom { border-top: 1px solid rgba(255,255,255,.12); margin-top: 40px; padding-top: 20px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; font-size: .8rem; color: #bfa6b0; }
.wa { position: fixed; right: 18px; bottom: 18px; z-index: 50; width: 58px; height: 58px; border-radius: 50%; background: #25D366; display: grid; place-items: center; box-shadow: 0 12px 28px rgba(0,0,0,.25); animation: pulse 2.8s infinite; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(37,211,102,.55), 0 12px 28px rgba(0,0,0,.25); } 70% { box-shadow: 0 0 0 16px rgba(37,211,102,0), 0 12px 28px rgba(0,0,0,.25); } 100% { box-shadow: 0 0 0 0 rgba(37,211,102,0), 0 12px 28px rgba(0,0,0,.25); } }

/* ---------- animación al hacer scroll ---------- */
.js .reveal { opacity: 0; transform: translateY(34px); transition: opacity .8s cubic-bezier(.2,.8,.2,1), transform .8s cubic-bezier(.2,.8,.2,1); }
.js .reveal.in { opacity: 1; transform: none; }
.js .stagger > * { opacity: 0; transform: translateY(26px); transition: opacity .7s, transform .7s; }
.js .stagger.in > * { opacity: 1; transform: none; }
.stagger.in > *:nth-child(2) { transition-delay: .1s; } .stagger.in > *:nth-child(3) { transition-delay: .2s; }
.stagger.in > *:nth-child(4) { transition-delay: .3s; } .stagger.in > *:nth-child(5) { transition-delay: .4s; } .stagger.in > *:nth-child(6) { transition-delay: .5s; }
.progress { position: fixed; left: 0; top: 0; height: 3px; background: var(--g); z-index: 60; width: 0; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .js .reveal, .js .stagger > * { opacity: 1; transform: none; }
  .msg { opacity: 1; transform: none; }
}

/* ---------- responsive ---------- */
@media (max-width: 980px) {
  .pillars, .exp, .stats { grid-template-columns: repeat(2, 1fr); }
  .cards, .gear { grid-template-columns: repeat(2, 1fr); }
  .foot { grid-template-columns: 1fr 1fr; }
  .post-layout { grid-template-columns: 1fr; }
  .toc { position: static; }
}
@media (max-width: 820px) {
  body { font-size: 16px; }
  section { padding: 64px 0; }
  .burger { display: block; }
  .menu { position: fixed; inset: 68px 0 auto 0; flex-direction: column; align-items: stretch; gap: 0; background: #fff; padding: 8px 20px 24px; border-bottom: 1px solid var(--linea);
    transform: translateY(-120%); visibility: hidden; transition: transform .35s cubic-bezier(.2,.8,.2,1), visibility 0s .35s; box-shadow: 0 20px 40px -20px rgba(0,0,0,.25); }
  .nav.open .menu { transform: none; visibility: visible; transition: transform .35s cubic-bezier(.2,.8,.2,1); }
  .menu a { padding: 14px 0; border-bottom: 1px solid var(--linea); font-size: 1.05rem; }
  .menu a::after { display: none; }
  .menu .btn { margin-top: 14px; border: 0; }
  .hero { padding: 48px 0 40px; }
  .hero-grid, .community-grid, .programs { grid-template-columns: 1fr; }
  .hero-stack { height: 270px; max-width: 340px; margin: 0 auto; }
  .hero-stack .cv { width: 140px; }
  .pains { grid-template-columns: 1fr; }
  .dict { grid-template-columns: 1fr; }
  .prog { padding: 26px 22px; }
  .hero-cta .btn { flex: 1 1 100%; }
}
@media (max-width: 560px) {
  .cards, .gear, .exp { grid-template-columns: 1fr; }
  .foot { grid-template-columns: 1fr; }
  .pillars { grid-template-columns: 1fr; }
  .stats { grid-template-columns: 1fr 1fr; }
  .bf1, .bf2 { font-size: .74rem; }
  .inline-cta { flex-direction: column; text-align: center; }
}

/* ---------- ilustraciones de ejercicios ---------- */
.fig { margin: 0; }
.fig-stage { position: relative; aspect-ratio: 32 / 23; border-radius: 16px; overflow: hidden;
  background: radial-gradient(70% 20% at 50% 93%, rgba(94,0,50,.14), transparent 70%), linear-gradient(180deg, #fff, var(--rosa2)); }
.fig-stage img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 8px 6px rgba(94,0,50,.2)); }
.fig-stage .f1 { animation: figA 3.4s ease-in-out infinite; }
.fig-stage .f2 { animation: figB 3.4s ease-in-out infinite; }
@keyframes figA { 0%, 35% { opacity: 1; } 50%, 85% { opacity: 0; } 100% { opacity: 1; } }
@keyframes figB { 0%, 35% { opacity: 0; } 50%, 85% { opacity: 1; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .fig-stage .f1 { opacity: 0; } .fig-stage .f2 { opacity: 1; } }
.fig figcaption { text-align: center; font-size: .85rem; color: var(--gris); margin-top: 6px; font-weight: 600; }
.figs { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px; margin: 1.4em 0; }
.hero-fig { max-width: 420px; margin-top: 22px; }
.hero-fig .fig-stage { background: radial-gradient(70% 20% at 50% 93%, rgba(94,0,50,.14), transparent 70%), #fff; box-shadow: var(--sh); }
.ex-fig { margin: -6px -6px 14px; }
.card-top { height: 170px; }
.card-img { position: absolute; inset: 8px 8px 26px; width: calc(100% - 16px); height: calc(100% - 34px); object-fit: contain; z-index: 1;
  filter: brightness(0) invert(1) drop-shadow(0 6px 8px rgba(0,0,0,.18)); opacity: .95; transition: transform .4s; }
.card:hover .card-img { transform: scale(1.06) translateY(-4px); }
.card-top span { position: relative; z-index: 2; }
.lead-p { font-size: 1.2rem; color: var(--g-ink); font-weight: 500; }
.source { font-size: .88rem; color: var(--gris); border-top: 1px solid var(--linea); padding-top: 14px; margin-top: 26px; }
/* grupo privado */
.vip { background: #fff; color: var(--g-ink); border-radius: 26px; padding: 30px; box-shadow: 0 30px 60px -30px rgba(0,0,0,.5); position: relative; overflow: hidden; }
.vip::after { content: ""; position: absolute; right: -60px; top: -60px; width: 180px; height: 180px; border-radius: 50%; background: var(--rosa2); }
.vip-icon { position: relative; z-index: 1; width: 64px; height: 64px; border-radius: 18px; background: #25D366; display: grid; place-items: center; margin-bottom: 16px; animation: bob 5s ease-in-out infinite; }
.vip-k { position: relative; z-index: 1; font: 700 .75rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--g2) !important; margin-bottom: .4em; }
.bg-g .vip h3 { color: var(--g); font-size: 1.7rem; position: relative; z-index: 1; }
.vip ul { list-style: none; padding: 0; margin: 0 0 18px; position: relative; z-index: 1; }
.vip li { padding-left: 28px; position: relative; margin-bottom: .6em; }
.vip li::before { content: "✓"; position: absolute; left: 0; top: 1px; width: 19px; height: 19px; display: grid; place-items: center; border-radius: 50%; background: var(--rosa); color: var(--g); font-size: .7rem; font-weight: 800; }
.bg-g .vip p.vip-lock { color: var(--g) !important; font-weight: 700; font-size: .9rem; margin: 0; position: relative; z-index: 1; }
.menu { gap: 20px; }
@media (max-width: 1100px) and (min-width: 821px) { .menu { gap: 14px; } .menu a { font-size: .88rem; } .menu .btn { padding: .65em 1em; } }
