/* ============ hero cinematográfico ============ */
.buy-hero{position:relative;min-height:92svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;background:radial-gradient(120% 90% at 70% 10%,#145e45 0%,#0d3f2e 45%,#0a2d1f 100%);color:var(--white);padding:calc(var(--header-h) + var(--sp-10)) 0 var(--sp-24)}
@media(max-height:760px){.buy-hero__scroll{display:none}}
#configurador,#como-funciona,#how-it-works{scroll-margin-top:calc(var(--header-h) + var(--sp-4))}
.buy-hero__aurora{position:absolute;inset:0;pointer-events:none;filter:blur(70px);opacity:.55}
.buy-hero__aurora i{position:absolute;border-radius:50%;will-change:transform}
.buy-hero__aurora i:nth-child(1){width:44vw;height:44vw;left:-10vw;top:-12vw;background:#9fe7cc44;animation:vkFloatA 16s var(--ease-std) infinite alternate}
.buy-hero__aurora i:nth-child(2){width:36vw;height:36vw;right:-8vw;top:20%;background:#ff8e7233;animation:vkFloatB 20s var(--ease-std) infinite alternate}
.buy-hero__aurora i:nth-child(3){width:30vw;height:30vw;left:30%;bottom:-14vw;background:#1b7a5a66;animation:vkFloatA 24s var(--ease-std) infinite alternate-reverse}
@keyframes vkFloatA{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(6vw,4vh,0) scale(1.15)}}
@keyframes vkFloatB{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(-5vw,-5vh,0) scale(1.1)}}
.buy-hero__grain{position:absolute;inset:0;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.buy-hero__inner{position:relative;display:grid;gap:var(--sp-10);align-items:center;grid-template-columns:1fr}
@media(min-width:900px){.buy-hero__inner{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}
.buy-hero__eyebrow{font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--vk-mint);margin:0 0 var(--sp-4)}
.buy-hero__title{font-family:var(--font-display);font-weight:var(--fw-black);font-size:clamp(40px,6.4vw,76px);line-height:1.02;letter-spacing:-.02em;margin:0 0 var(--sp-5)}
.buy-hero__title em{font-family:"Fraunces",Georgia,serif;font-style:italic;font-weight:600;color:var(--vk-mint);letter-spacing:0}
.buy-hero__sub{font-size:clamp(17px,2vw,21px);line-height:1.55;color:#d9efe6;max-width:52ch;margin:0 0 var(--sp-8)}
.buy-hero__ctas{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center;margin-bottom:var(--sp-6)}
.buy-hero__chips{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);padding:0;margin:0;list-style:none}
.buy-hero__chips li{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-small);font-weight:var(--fw-bold);color:var(--vk-mint);border:1px solid #9fe7cc3d;border-radius:var(--r-pill);padding:6px 14px;background:#ffffff0a;backdrop-filter:blur(4px)}
.buy-hero__figure{position:relative;margin:0;display:flex;justify-content:center}
.buy-hero__figure img{width:min(420px,78vw);height:auto;border-radius:var(--r-xl);box-shadow:0 40px 90px #00000059,0 0 0 10px #ffffff14;animation:vkLevitate 7s var(--ease-std) infinite alternate;will-change:transform}
@keyframes vkLevitate{from{transform:translateY(-8px) rotate(-1.2deg)}to{transform:translateY(14px) rotate(1.2deg)}}
.buy-hero__halo{position:absolute;inset:auto;width:min(460px,80vw);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#9fe7cc2e 0%,transparent 65%);align-self:center}
.buy-hero__scroll{position:absolute;left:50%;bottom:var(--sp-5);transform:translateX(-50%);color:#d9efe6;font-size:var(--fs-caption);letter-spacing:.18em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:6px;text-decoration:none}
.buy-hero__scroll:after{content:"";width:1px;height:34px;background:linear-gradient(#9fe7cc,#9fe7cc00);animation:vkDrip 1.8s var(--ease-std) infinite}
@keyframes vkDrip{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
/* entrada escalonada */
.buy-stage{opacity:0;transform:translateY(22px);animation:vkStage .8s var(--ease-out) forwards}
.buy-stage--1{animation-delay:.05s}.buy-stage--2{animation-delay:.18s}.buy-stage--3{animation-delay:.32s}.buy-stage--4{animation-delay:.46s}.buy-stage--5{animation-delay:.6s}
@keyframes vkStage{to{opacity:1;transform:none}}
/* ============ tira de pasos ============ */
.buy-steps{display:grid;gap:var(--sp-6);grid-template-columns:1fr}
@media(min-width:820px){.buy-steps{grid-template-columns:repeat(3,1fr)}}
.buy-step{position:relative;background:var(--white);border:1px solid var(--border);border-radius:var(--r-xl);padding:var(--sp-8) var(--sp-6) var(--sp-6);box-shadow:var(--shadow-1);transition:transform var(--dur-slow) var(--ease-out),box-shadow var(--dur-slow) var(--ease-out)}
.buy-step:hover{transform:translateY(-6px);box-shadow:var(--shadow-4)}
.buy-step__num{font-family:"Fraunces",Georgia,serif;font-style:italic;font-weight:600;font-size:64px;line-height:1;color:var(--vk-emerald-50);-webkit-text-stroke:1.5px var(--vk-emerald);position:absolute;top:var(--sp-4);right:var(--sp-5)}
.buy-step img{width:112px;height:112px;object-fit:contain;margin-bottom:var(--sp-4)}
.buy-step h3{font-family:var(--font-display);color:var(--fg-heading);font-size:var(--fs-h4);margin:0 0 var(--sp-2)}
.buy-step p{color:var(--fg-2);margin:0;font-size:var(--fs-body);line-height:1.55}
/* ============ configurador ============ */
.buy-config{display:grid;gap:var(--sp-8);grid-template-columns:1fr;align-items:start}
@media(min-width:960px){.buy-config{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}
.buy-modes{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-6)}
.buy-mode{border:1.5px solid var(--border);background:var(--white);border-radius:var(--r-pill);padding:10px 18px;font-weight:var(--fw-bold);font-size:var(--fs-small);color:var(--fg-2);cursor:pointer;transition:all var(--dur-base) var(--ease-out);font-family:var(--font-sans)}
.buy-mode[aria-pressed="true"]{background:var(--vk-emerald);border-color:var(--vk-emerald);color:var(--white);box-shadow:var(--shadow-2)}
.buy-product{display:flex;gap:var(--sp-5);align-items:center;background:var(--white);border:1px solid var(--border);border-radius:var(--r-xl);padding:var(--sp-5) var(--sp-6);box-shadow:var(--shadow-1);margin-bottom:var(--sp-4);transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}
.buy-product.is-active{border-color:var(--vk-emerald);box-shadow:var(--shadow-3)}
.buy-product__img{width:96px;height:96px;object-fit:contain;flex-shrink:0;background:var(--gray-50);border-radius:var(--r-lg);padding:var(--sp-2)}
.buy-product__info{flex:1;min-width:0}
.buy-product__info h3{font-family:var(--font-display);font-size:var(--fs-h4);color:var(--fg-heading);margin:0 0 2px}
.buy-product__info .sku{font-family:var(--font-mono);font-size:var(--fs-caption);letter-spacing:.06em;color:var(--fg-3);display:block;margin-bottom:4px}
.buy-product__info p{margin:0;color:var(--fg-2);font-size:var(--fs-small);line-height:1.45}
.buy-product__price{font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--vk-emerald-900);font-size:20px;white-space:nowrap}
.buy-product__price small{display:block;font-family:var(--font-sans);font-size:var(--fs-caption);color:var(--fg-3);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em}
.buy-stepper{display:flex;align-items:center;gap:var(--sp-3);flex-shrink:0}
.buy-stepper button{width:42px;height:42px;border:none;border-radius:var(--r-lg);background:var(--vk-emerald-50);color:var(--vk-emerald-700);font-size:22px;font-weight:var(--fw-bold);cursor:pointer;line-height:1;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);font-family:var(--font-sans)}
.buy-stepper button:hover{background:var(--vk-emerald-100)}
.buy-stepper button:active{transform:scale(.92)}
.buy-stepper button:disabled{opacity:.35;cursor:not-allowed}
.buy-stepper .qty{min-width:26px;text-align:center;font-size:20px;font-weight:var(--fw-black);color:var(--fg-heading);font-family:var(--font-display)}
.buy-sub{border:1.5px solid var(--vk-emerald);background:linear-gradient(135deg,#f2fbf7,var(--white));border-radius:var(--r-xl);padding:var(--sp-6);box-shadow:var(--shadow-2);position:relative;overflow:hidden}
.buy-sub__badge{position:absolute;top:14px;right:-40px;transform:rotate(38deg);background:var(--vk-coral);color:var(--white);font-size:var(--fs-caption);font-weight:var(--fw-black);letter-spacing:.06em;padding:5px 46px;text-transform:uppercase}
.buy-sub h3{font-family:var(--font-display);font-size:var(--fs-h4);color:var(--fg-heading);margin:0 0 var(--sp-1)}
.buy-sub p{color:var(--fg-2);font-size:var(--fs-small);margin:0 0 var(--sp-3);max-width:52ch}
.buy-sub__price{font-family:var(--font-display);font-weight:var(--fw-black);color:var(--vk-emerald-900);font-size:28px}
.buy-sub__price small{font-size:var(--fs-small);color:var(--fg-3);font-weight:var(--fw-bold)}
.buy-sub__hint{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);background:var(--vk-emerald-50);color:var(--vk-emerald-700);border-radius:var(--r-lg);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-small);font-weight:var(--fw-bold)}
/* resumen pegajoso */
.buy-summary{position:sticky;top:calc(var(--header-h) + var(--sp-4));background:var(--white);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-4);padding:var(--sp-8);overflow:hidden}
.buy-summary:before{content:"";position:absolute;inset:0 0 auto;height:6px;background:linear-gradient(90deg,var(--vk-emerald),var(--vk-mint),var(--vk-coral))}
.buy-summary h3{font-family:var(--font-display);font-size:var(--fs-h3);color:var(--fg-heading);margin:0 0 var(--sp-5)}
.buy-summary__rows{border-bottom:1px solid var(--border);margin-bottom:var(--sp-4);padding-bottom:var(--sp-2)}
.buy-row{display:flex;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-2) 0;font-size:var(--fs-body);color:var(--fg-2)}
.buy-row strong{color:var(--fg-1);font-weight:var(--fw-bold)}
.buy-row--total{font-size:var(--fs-body-lg);color:var(--fg-heading)}
.buy-row--total .amount{font-family:var(--font-display);font-weight:var(--fw-black);font-size:28px;color:var(--vk-emerald-900)}
.buy-row--monthly{color:var(--vk-emerald-700);font-weight:var(--fw-bold)}
.buy-summary label{display:block;font-size:var(--fs-small);color:var(--fg-2);font-weight:var(--fw-bold);margin:var(--sp-4) 0 var(--sp-1)}
.buy-summary input[type=email]{width:100%;height:52px;padding:0 var(--sp-4);border:1.5px solid var(--border);border-radius:var(--r-lg);background:var(--gray-50);font-size:var(--fs-body);font-family:var(--font-sans);outline:none;transition:border-color var(--dur-base) var(--ease-out)}
.buy-summary input[type=email]:focus{border-color:var(--vk-emerald);background:var(--white);box-shadow:var(--shadow-focus)}
.buy-consent{display:flex;align-items:flex-start;gap:var(--sp-2);margin-top:var(--sp-4);font-size:var(--fs-caption);color:var(--fg-3);line-height:1.5}
.buy-consent input{margin-top:2px;accent-color:var(--vk-emerald)}
.buy-consent a{color:var(--fg-link);font-weight:var(--fw-bold)}
.buy-pay{width:100%;margin-top:var(--sp-5);height:58px;border:none;border-radius:var(--r-pill);background:var(--vk-emerald);color:var(--white);font-family:var(--font-display);font-size:18px;font-weight:var(--fw-bold);cursor:pointer;box-shadow:0 10px 24px #145e4547;transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),background var(--dur-base) var(--ease-out);display:flex;align-items:center;justify-content:center;gap:var(--sp-2)}
.buy-pay:hover:not(:disabled){background:var(--vk-emerald-light);transform:translateY(-2px);box-shadow:0 14px 30px #145e4559}
.buy-pay:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
.buy-pay .spinner{width:18px;height:18px;border:2.5px solid #ffffff59;border-top-color:var(--white);border-radius:50%;animation:vkSpin .7s linear infinite;display:none}
.buy-pay.is-loading .spinner{display:block}
@keyframes vkSpin{to{transform:rotate(360deg)}}
.buy-error{display:none;margin-top:var(--sp-3);background:#fdeceb;color:var(--danger-dark);border:1px solid #f3c2bf;border-radius:var(--r-lg);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-small);font-weight:var(--fw-bold)}
.buy-secure{text-align:center;font-size:var(--fs-caption);color:var(--fg-3);margin-top:var(--sp-3)}
.buy-cancel-note{display:none;background:var(--vk-coral-50);border:1px solid var(--vk-coral-light);color:var(--ink);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-6);font-size:var(--fs-small)}
/* fila de confianza */
.buy-trust{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-3) var(--sp-6);padding:0;margin:0;list-style:none}
.buy-trust li{display:flex;align-items:center;gap:var(--sp-2);color:var(--fg-2);font-size:var(--fs-small);font-weight:var(--fw-bold)}
.buy-trust svg{color:var(--vk-emerald);flex-shrink:0}
/* faq compacta */
.vk-faq__list{display:flex;flex-direction:column;gap:var(--sp-3)}
.vk-faq__item{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--white);padding:0;transition:border-color var(--dur-base) var(--ease-out)}
.vk-faq__item[open]{border-color:var(--vk-emerald)}
.vk-faq__item summary{cursor:pointer;list-style:none;padding:var(--sp-5) var(--sp-6);font-weight:var(--fw-bold);color:var(--vk-emerald-900);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}
.vk-faq__item summary::-webkit-details-marker{display:none}
.vk-faq__icon{font-size:24px;color:var(--vk-emerald);transition:transform var(--dur-base) var(--ease-out);flex-shrink:0}
.vk-faq__item[open] .vk-faq__icon{transform:rotate(45deg)}
.vk-faq__item p{margin:0;padding:0 var(--sp-6) var(--sp-5);color:var(--fg-2);line-height:1.6}
/* fondos de sección (definidos por página en este sitio) */
.section-bg-page{background:var(--bg-page);color:var(--fg-1)}
.section-bg-wash{background:var(--bg-wash);color:var(--fg-1)}
.section-bg-emerald{background:var(--vk-emerald);color:var(--fg-on-emerald)}
.section-bg-emerald a:not(.btn){color:var(--vk-mint);text-decoration:underline}
/* cta final */
.vk-final{text-align:center}
.vk-final__title{font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--white);font-size:clamp(32px,5vw,48px);line-height:1.15;margin:0 0 var(--sp-4)}
.vk-final__body{color:var(--vk-mint);font-size:var(--fs-body-lg);margin:0 0 var(--sp-8)}
.vk-final__ctas{display:flex;justify-content:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-5)}
.vk-final__ghost.btn--ghost{color:var(--white);border-color:var(--white)}
.vk-final__ghost.btn--ghost:hover{background:var(--white);color:var(--vk-emerald)}
.vk-final__note{color:var(--vk-mint);font-size:var(--fs-small);margin:0}
@media (prefers-reduced-motion: reduce){
  .buy-hero__aurora i,.buy-hero__figure img,.buy-hero__scroll:after{animation:none}
  .buy-stage{opacity:1;transform:none;animation:none}
}
