{"title":"Página de inicio","description":null,"products":[{"product_id":"shilajit","title":"Shilajit","description":"\u003cbody\u003e{% stylesheet %}\n  .shopify-section-header-wrapper,\n  header,\n  #shopify-section-header,\n  [data-section-type=\"header\"] {\n    display: none !important;\n  }\n\n  body {\n    padding-top: 0 !important;\n    margin-top: 0 !important;\n  }\n{% endstylesheet %}\n\n\u003cstyle\u003e\n  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\n  :root {\n    --green: #0D5C3A;\n    --green-light: #12704a;\n    --gold: #B8860B;\n    --gold-light: #d4a017;\n    --black: #0a0a08;\n    --off-white: #f5f2ec;\n    --gray: #8a8780;\n    --font-display: 'Bebas Neue', sans-serif;\n    --font-body: 'Barlow', sans-serif;\n  }\n\n  html { scroll-behavior: smooth; }\n\n  body {\n    background: var(--black);\n    color: var(--off-white);\n    font-family: var(--font-body);\n    font-weight: 300;\n    line-height: 1.6;\n    overflow-x: hidden;\n  }\n\n  \/* ── HERO ── *\/\n  .hero {\n    min-height: 100vh;\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    position: relative;\n    overflow: hidden;\n  }\n\n  .hero::before {\n    content: '';\n    position: absolute;\n    inset: 0;\n    background:\n      radial-gradient(ellipse 60% 80% at 70% 50%, rgba(13,92,58,0.18) 0%, transparent 70%),\n      radial-gradient(ellipse 40% 40% at 30% 80%, rgba(184,134,11,0.10) 0%, transparent 60%);\n    pointer-events: none;\n  }\n\n  .hero-text {\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    padding: 80px 60px 80px 80px;\n    position: relative;\n    z-index: 2;\n  }\n\n  .hero-eyebrow {\n    font-family: var(--font-body);\n    font-size: 11px;\n    font-weight: 600;\n    letter-spacing: 0.3em;\n    text-transform: uppercase;\n    color: var(--gold);\n    margin-bottom: 24px;\n    opacity: 0;\n    animation: fadeUp 0.8s ease 0.2s forwards;\n  }\n\n  .hero-title {\n    font-family: var(--font-display);\n    font-size: clamp(64px, 8vw, 110px);\n    line-height: 0.92;\n    color: var(--off-white);\n    margin-bottom: 8px;\n    opacity: 0;\n    animation: fadeUp 0.8s ease 0.35s forwards;\n  }\n\n  .hero-title span {\n    color: var(--gold);\n    display: block;\n  }\n\n  .hero-subtitle {\n    font-family: var(--font-display);\n    font-size: clamp(28px, 3.5vw, 48px);\n    color: var(--green-light);\n    letter-spacing: 0.05em;\n    margin-bottom: 32px;\n    opacity: 0;\n    animation: fadeUp 0.8s ease 0.5s forwards;\n  }\n\n  .hero-desc {\n    font-size: 15px;\n    color: rgba(245,242,236,0.6);\n    max-width: 420px;\n    line-height: 1.8;\n    margin-bottom: 48px;\n    opacity: 0;\n    animation: fadeUp 0.8s ease 0.65s forwards;\n  }\n\n  .hero-cta {\n    display: flex;\n    gap: 16px;\n    flex-wrap: wrap;\n    opacity: 0;\n    animation: fadeUp 0.8s ease 0.8s forwards;\n  }\n\n  .btn-primary {\n    display: inline-block;\n    background: var(--gold);\n    color: var(--black);\n    font-family: var(--font-display);\n    font-size: 18px;\n    letter-spacing: 0.1em;\n    padding: 16px 40px;\n    text-decoration: none;\n    transition: background 0.2s, transform 0.15s;\n    clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 12px 100%, 0 calc(100% - 12px));\n  }\n\n  .btn-primary:hover {\n    background: var(--gold-light);\n    transform: translateY(-2px);\n  }\n\n  .btn-secondary {\n    display: inline-block;\n    color: var(--off-white);\n    font-family: var(--font-body);\n    font-size: 13px;\n    font-weight: 600;\n    letter-spacing: 0.2em;\n    text-transform: uppercase;\n    padding: 16px 0;\n    text-decoration: none;\n    border-bottom: 1px solid rgba(245,242,236,0.3);\n    transition: border-color 0.2s, color 0.2s;\n  }\n\n  .btn-secondary:hover {\n    color: var(--gold);\n    border-color: var(--gold);\n  }\n\n  .hero-image {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    position: relative;\n    padding: 60px 80px 60px 40px;\n    z-index: 2;\n  }\n\n  .hero-image::before {\n    content: '';\n    position: absolute;\n    width: 500px;\n    height: 500px;\n    border-radius: 50%;\n    border: 1px solid rgba(184,134,11,0.15);\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    animation: pulse 4s ease-in-out infinite;\n  }\n\n  .hero-image::after {\n    content: '';\n    position: absolute;\n    width: 380px;\n    height: 380px;\n    border-radius: 50%;\n    border: 1px solid rgba(13,92,58,0.2);\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    animation: pulse 4s ease-in-out 1s infinite;\n  }\n\n  .product-img {\n    width: 100%;\n    max-width: 460px;\n    position: relative;\n    z-index: 3;\n    opacity: 0;\n    animation: fadeIn 1.2s ease 0.4s forwards;\n    filter: drop-shadow(0 40px 80px rgba(0,0,0,0.8));\n    border-radius: 8px;\n  }\n\n  .hero-badge {\n    position: absolute;\n    bottom: 80px;\n    right: 60px;\n    width: 90px;\n    height: 90px;\n    border-radius: 50%;\n    background: var(--green);\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    z-index: 4;\n    border: 1px solid rgba(184,134,11,0.3);\n  }\n\n  .hero-badge span:first-child {\n    font-family: var(--font-display);\n    font-size: 22px;\n    color: var(--gold);\n    line-height: 1;\n  }\n\n  .hero-badge span:last-child {\n    font-size: 9px;\n    letter-spacing: 0.1em;\n    text-transform: uppercase;\n    color: rgba(245,242,236,0.6);\n    text-align: center;\n    line-height: 1.3;\n    padding: 0 8px;\n  }\n\n  \/* ── STATS BAR ── *\/\n  .stats-bar {\n    border-top: 1px solid rgba(255,255,255,0.06);\n    border-bottom: 1px solid rgba(255,255,255,0.06);\n    background: rgba(13,92,58,0.06);\n    display: grid;\n    grid-template-columns: repeat(4, 1fr);\n  }\n\n  .stat-item {\n    padding: 32px 40px;\n    border-right: 1px solid rgba(255,255,255,0.06);\n    text-align: center;\n  }\n\n  .stat-item:last-child { border-right: none; }\n\n  .stat-num {\n    font-family: var(--font-display);\n    font-size: 42px;\n    color: var(--gold);\n    line-height: 1;\n    display: block;\n  }\n\n  .stat-label {\n    font-size: 11px;\n    letter-spacing: 0.2em;\n    text-transform: uppercase;\n    color: rgba(245,242,236,0.45);\n    margin-top: 6px;\n    display: block;\n  }\n\n  \/* ── SECTION BASE ── *\/\n  section { padding: 100px 80px; }\n\n  .section-tag {\n    font-size: 10px;\n    letter-spacing: 0.4em;\n    text-transform: uppercase;\n    color: var(--gold);\n    display: block;\n    margin-bottom: 16px;\n  }\n\n  .section-title {\n    font-family: var(--font-display);\n    font-size: clamp(42px, 5vw, 72px);\n    line-height: 0.95;\n    color: var(--off-white);\n    margin-bottom: 24px;\n  }\n\n  .section-body {\n    font-size: 15px;\n    color: rgba(245,242,236,0.55);\n    max-width: 480px;\n    line-height: 1.9;\n  }\n\n  \/* ── BENEFITS ── *\/\n  .benefits {\n    background: rgba(13,92,58,0.04);\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 0;\n    padding: 0;\n  }\n\n  .benefits-header {\n    padding: 100px 80px;\n    border-right: 1px solid rgba(255,255,255,0.06);\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n  }\n\n  .benefits-grid {\n    padding: 60px 80px;\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 1px;\n    background: rgba(255,255,255,0.06);\n    align-content: start;\n  }\n\n  .benefit-card {\n    background: var(--black);\n    padding: 36px 32px;\n    transition: background 0.2s;\n  }\n\n  .benefit-card:hover { background: rgba(13,92,58,0.12); }\n\n  .benefit-icon {\n    font-size: 28px;\n    margin-bottom: 14px;\n    display: block;\n  }\n\n  .benefit-title {\n    font-family: var(--font-display);\n    font-size: 22px;\n    color: var(--off-white);\n    letter-spacing: 0.03em;\n    margin-bottom: 8px;\n  }\n\n  .benefit-desc {\n    font-size: 13px;\n    color: rgba(245,242,236,0.45);\n    line-height: 1.7;\n  }\n\n  \/* ── HOW TO USE ── *\/\n  .howto {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 80px;\n    align-items: center;\n  }\n\n  .steps { margin-top: 40px; }\n\n  .step {\n    display: flex;\n    gap: 24px;\n    margin-bottom: 40px;\n    opacity: 0;\n    transform: translateX(-20px);\n    transition: opacity 0.5s, transform 0.5s;\n  }\n\n  .step.visible { opacity: 1; transform: translateX(0); }\n\n  .step-num {\n    font-family: var(--font-display);\n    font-size: 48px;\n    color: rgba(184,134,11,0.2);\n    line-height: 1;\n    flex-shrink: 0;\n    width: 52px;\n  }\n\n  .step-content h4 {\n    font-family: var(--font-display);\n    font-size: 20px;\n    color: var(--off-white);\n    letter-spacing: 0.05em;\n    margin-bottom: 6px;\n  }\n\n  .step-content p {\n    font-size: 13px;\n    color: rgba(245,242,236,0.45);\n    line-height: 1.7;\n  }\n\n  .howto-visual {\n    position: relative;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n\n  .jar-bg {\n    width: 100%;\n    max-width: 400px;\n    aspect-ratio: 1;\n    background: radial-gradient(ellipse at center, rgba(13,92,58,0.2) 0%, transparent 70%);\n    border-radius: 50%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n\n  .jar-img {\n    width: 85%;\n    border-radius: 8px;\n    filter: drop-shadow(0 20px 60px rgba(0,0,0,0.9));\n  }\n\n  \/* ── INGREDIENTS ── *\/\n  .ingredients {\n    background: linear-gradient(180deg, rgba(13,92,58,0.08) 0%, transparent 100%);\n    text-align: center;\n  }\n\n  .ingredients .section-title,\n  .ingredients .section-body { margin-left: auto; margin-right: auto; text-align: center; }\n\n  .minerals-grid {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    gap: 12px;\n    margin-top: 60px;\n    max-width: 800px;\n    margin-left: auto;\n    margin-right: auto;\n  }\n\n  .mineral-pill {\n    font-size: 12px;\n    letter-spacing: 0.1em;\n    text-transform: uppercase;\n    color: var(--gold);\n    border: 1px solid rgba(184,134,11,0.3);\n    padding: 8px 20px;\n    transition: background 0.2s, border-color 0.2s;\n  }\n\n  .mineral-pill:hover {\n    background: rgba(184,134,11,0.08);\n    border-color: var(--gold);\n  }\n\n  \/* ── TESTIMONIALS ── *\/\n  .testimonials { padding: 100px 80px; }\n\n  .testimonials-grid {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 1px;\n    background: rgba(255,255,255,0.06);\n    margin-top: 60px;\n  }\n\n  .testimonial {\n    background: var(--black);\n    padding: 40px 36px;\n    transition: background 0.2s;\n  }\n\n  .testimonial:hover { background: rgba(13,92,58,0.08); }\n\n  .stars {\n    color: var(--gold);\n    font-size: 14px;\n    letter-spacing: 3px;\n    margin-bottom: 20px;\n    display: block;\n  }\n\n  .testimonial-text {\n    font-size: 14px;\n    color: rgba(245,242,236,0.65);\n    line-height: 1.85;\n    font-style: italic;\n    margin-bottom: 24px;\n  }\n\n  .testimonial-author {\n    font-size: 11px;\n    letter-spacing: 0.2em;\n    text-transform: uppercase;\n    color: rgba(245,242,236,0.3);\n  }\n\n  \/* ── PURCHASE ── *\/\n  .purchase {\n    background: var(--green);\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 0;\n    padding: 0;\n  }\n\n  .purchase-info {\n    padding: 100px 80px;\n    border-right: 1px solid rgba(255,255,255,0.1);\n  }\n\n  .purchase-info .section-title { color: var(--off-white); }\n\n  .price-block {\n    margin: 40px 0;\n    display: flex;\n    align-items: baseline;\n    gap: 12px;\n  }\n\n  .price-main {\n    font-family: var(--font-display);\n    font-size: 72px;\n    color: var(--gold-light);\n    line-height: 1;\n  }\n\n  .price-currency {\n    font-family: var(--font-display);\n    font-size: 28px;\n    color: var(--gold-light);\n  }\n\n  .price-unit {\n    font-size: 12px;\n    color: rgba(245,242,236,0.5);\n    letter-spacing: 0.1em;\n    text-transform: uppercase;\n  }\n\n  .includes-list {\n    list-style: none;\n    margin: 32px 0 40px;\n  }\n\n  .includes-list li {\n    font-size: 14px;\n    color: rgba(245,242,236,0.7);\n    padding: 10px 0;\n    border-bottom: 1px solid rgba(255,255,255,0.08);\n    display: flex;\n    align-items: center;\n    gap: 12px;\n  }\n\n  .includes-list li::before {\n    content: '';\n    width: 6px;\n    height: 6px;\n    background: var(--gold);\n    flex-shrink: 0;\n    clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);\n  }\n\n  .purchase-action {\n    padding: 100px 80px;\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n  }\n\n  .add-cart-btn {\n    display: block;\n    width: 100%;\n    background: var(--black);\n    color: var(--gold);\n    font-family: var(--font-display);\n    font-size: 22px;\n    letter-spacing: 0.15em;\n    padding: 22px 40px;\n    text-decoration: none;\n    text-align: center;\n    border: 1px solid rgba(184,134,11,0.4);\n    transition: background 0.2s, border-color 0.2s;\n    margin-bottom: 16px;\n    cursor: pointer;\n  }\n\n  .add-cart-btn:hover {\n    background: rgba(184,134,11,0.08);\n    border-color: var(--gold);\n  }\n\n  .buy-now-btn {\n    display: block;\n    width: 100%;\n    background: var(--gold);\n    color: var(--black);\n    font-family: var(--font-display);\n    font-size: 22px;\n    letter-spacing: 0.15em;\n    padding: 22px 40px;\n    text-decoration: none;\n    text-align: center;\n    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 14px 100%, 0 calc(100% - 14px));\n    transition: background 0.2s, transform 0.15s;\n    cursor: pointer;\n    border: none;\n  }\n\n  .buy-now-btn:hover {\n    background: var(--gold-light);\n    transform: translateY(-2px);\n  }\n\n  .guarantees {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 16px;\n    margin-top: 32px;\n  }\n\n  .guarantee {\n    display: flex;\n    align-items: flex-start;\n    gap: 10px;\n  }\n\n  .guarantee-icon {\n    font-size: 20px;\n    flex-shrink: 0;\n    margin-top: 2px;\n  }\n\n  .guarantee-text {\n    font-size: 12px;\n    color: rgba(245,242,236,0.45);\n    line-height: 1.5;\n  }\n\n  .guarantee-text strong {\n    display: block;\n    color: rgba(245,242,236,0.7);\n    font-weight: 600;\n    font-size: 12px;\n    margin-bottom: 2px;\n  }\n\n  \/* ── FOOTER ── *\/\n  .footer {\n    padding: 40px 80px;\n    border-top: 1px solid rgba(255,255,255,0.06);\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n  }\n\n  .footer-brand {\n    font-family: var(--font-display);\n    font-size: 22px;\n    letter-spacing: 0.15em;\n    color: var(--green-light);\n  }\n\n  .footer-brand span { color: var(--gold); }\n\n  .footer-note {\n    font-size: 11px;\n    color: rgba(245,242,236,0.25);\n    letter-spacing: 0.05em;\n  }\n\n  \/* ── ANIMATIONS ── *\/\n  @keyframes fadeUp {\n    from { opacity: 0; transform: translateY(30px); }\n    to { opacity: 1; transform: translateY(0); }\n  }\n\n  @keyframes fadeIn {\n    from { opacity: 0; }\n    to { opacity: 1; }\n  }\n\n  @keyframes pulse {\n    0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.5; }\n    50% { transform: translate(-50%, -50%) scale(1.06); opacity: 1; }\n  }\n\n  \/* ── MOBILE ── *\/\n  @media (max-width: 900px) {\n    .hero { grid-template-columns: 1fr; min-height: auto; }\n    .hero-text { padding: 80px 32px 40px; }\n    .hero-image { padding: 20px 32px 60px; }\n    .hero-badge { bottom: 20px; right: 20px; }\n    .stats-bar { grid-template-columns: 1fr 1fr; }\n    .stat-item { border-bottom: 1px solid rgba(255,255,255,0.06); }\n    section { padding: 70px 32px; }\n    .benefits { grid-template-columns: 1fr; }\n    .benefits-header { padding: 60px 32px; border-right: none; border-bottom: 1px solid rgba(255,255,255,0.06); }\n    .benefits-grid { padding: 32px; grid-template-columns: 1fr; }\n    .howto { grid-template-columns: 1fr; gap: 40px; }\n    .howto-visual { order: -1; }\n    .testimonials-grid { grid-template-columns: 1fr; }\n    .purchase { grid-template-columns: 1fr; }\n    .purchase-info { padding: 60px 32px; border-right: none; border-bottom: 1px solid rgba(255,255,255,0.1); }\n    .purchase-action { padding: 60px 32px; }\n    .footer { flex-direction: column; gap: 12px; text-align: center; padding: 32px; }\n  }\n\u003c\/style\u003e\n\n\n\n\u003c!-- HERO --\u003e\n\u003csection class=\"hero\"\u003e\n  \u003cdiv class=\"hero-text\"\u003e\n    \u003cspan class=\"hero-eyebrow\"\u003eTop Vital RD — Suplementos Premium\u003c\/span\u003e\n    \u003ch1 class=\"hero-title\"\u003e100%\u003cbr\u003ePURO\u003cbr\u003e\u003cspan\u003eSHILAJIT\u003c\/span\u003e\n\u003c\/h1\u003e\n    \u003cp class=\"hero-subtitle\"\u003ePremium Quality\u003c\/p\u003e\n    \u003cp class=\"hero-desc\"\u003eLa resina ancestral del Himalaya. Más de 85 minerales en su forma más pura. Lo que los guerreros de las montañas conocían hace siglos — ahora en tus manos.\u003c\/p\u003e\n    \u003cdiv class=\"hero-cta\"\u003e\n      \u003ca href=\"#comprar\" class=\"btn-primary\"\u003eORDENAR AHORA\u003c\/a\u003e\n      \u003ca href=\"#beneficios\" class=\"btn-secondary\"\u003eVer beneficios →\u003c\/a\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"hero-image\"\u003e\n    \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1019\/7326\/2705\/files\/quiero_que_le_agregues_un_202606121951.jpg?v=1781308804\" alt=\"Shilajit 100% Puro Top Vital RD – frasco premium 30g\" class=\"product-img\" id=\"product-photo\"\u003e\n    \u003cdiv class=\"hero-badge\"\u003e\n      \u003cspan\u003e30g\u003c\/span\u003e\n      \u003cspan\u003eNet Weight\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- STATS BAR --\u003e\n\u003cdiv class=\"stats-bar\"\u003e\n  \u003cdiv class=\"stat-item\"\u003e\n    \u003cspan class=\"stat-num\"\u003e85+\u003c\/span\u003e\n    \u003cspan class=\"stat-label\"\u003eMinerales naturales\u003c\/span\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"stat-item\"\u003e\n    \u003cspan class=\"stat-num\"\u003e100%\u003c\/span\u003e\n    \u003cspan class=\"stat-label\"\u003ePuro sin aditivos\u003c\/span\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"stat-item\"\u003e\n    \u003cspan class=\"stat-num\"\u003e500mg\u003c\/span\u003e\n    \u003cspan class=\"stat-label\"\u003eDosis diaria recomendada\u003c\/span\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"stat-item\"\u003e\n    \u003cspan class=\"stat-num\"\u003e30g\u003c\/span\u003e\n    \u003cspan class=\"stat-label\"\u003e60 a 90 días de suministro\u003c\/span\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- BENEFITS --\u003e\n\u003csection class=\"benefits\" id=\"beneficios\"\u003e\n  \u003cdiv class=\"benefits-header\"\u003e\n    \u003cspan class=\"section-tag\"\u003ePor qué funciona\u003c\/span\u003e\n    \u003ch2 class=\"section-title\"\u003ePOTENCIA\u003cbr\u003eTOTAL\u003c\/h2\u003e\n    \u003cp class=\"section-body\"\u003eUsado por civilizaciones del Himalaya durante siglos. El Shilajit se forma naturalmente durante millones de años y concentra lo mejor de la naturaleza en una sola resina.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"benefits-grid\"\u003e\n    \u003cdiv class=\"benefit-card\"\u003e\n      \u003cspan class=\"benefit-icon\"\u003e⚡\u003c\/span\u003e\n      \u003ch3 class=\"benefit-title\"\u003eEnergía sostenida\u003c\/h3\u003e\n      \u003cp class=\"benefit-desc\"\u003eAumenta la producción de ATP a nivel celular. Sin picos, sin crashes.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"benefit-card\"\u003e\n      \u003cspan class=\"benefit-icon\"\u003e🧠\u003c\/span\u003e\n      \u003ch3 class=\"benefit-title\"\u003eClaridad mental\u003c\/h3\u003e\n      \u003cp class=\"benefit-desc\"\u003eMejora el enfoque y la memoria. Foco limpio todo el día.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"benefit-card\"\u003e\n      \u003cspan class=\"benefit-icon\"\u003e💪\u003c\/span\u003e\n      \u003ch3 class=\"benefit-title\"\u003eFuerza muscular\u003c\/h3\u003e\n      \u003cp class=\"benefit-desc\"\u003eAcelera la recuperación y potencia el rendimiento físico.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"benefit-card\"\u003e\n      \u003cspan class=\"benefit-icon\"\u003e🔥\u003c\/span\u003e\n      \u003ch3 class=\"benefit-title\"\u003eTestosterona natural\u003c\/h3\u003e\n      \u003cp class=\"benefit-desc\"\u003eApoya los niveles hormonales naturales en hombres activos.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"benefit-card\"\u003e\n      \u003cspan class=\"benefit-icon\"\u003e🛡️\u003c\/span\u003e\n      \u003ch3 class=\"benefit-title\"\u003eSistema inmune\u003c\/h3\u003e\n      \u003cp class=\"benefit-desc\"\u003e85+ minerales y ácido fúlvico para defensas a pleno rendimiento.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"benefit-card\"\u003e\n      \u003cspan class=\"benefit-icon\"\u003e🌿\u003c\/span\u003e\n      \u003ch3 class=\"benefit-title\"\u003eAntienvejecimiento\u003c\/h3\u003e\n      \u003cp class=\"benefit-desc\"\u003eAntioxidantes naturales. Cuida las células desde adentro.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- HOW TO USE --\u003e\n\u003csection style=\"padding: 100px 80px;\"\u003e\n  \u003cdiv class=\"howto\"\u003e\n    \u003cdiv\u003e\n      \u003cspan class=\"section-tag\"\u003eModo de uso\u003c\/span\u003e\n      \u003ch2 class=\"section-title\"\u003eSIMPLE.\u003cbr\u003eEFECTIVO.\u003c\/h2\u003e\n      \u003cp class=\"section-body\"\u003eSolo necesitas 3 pasos para sentir la diferencia en 2 a 4 semanas.\u003c\/p\u003e\n      \u003cdiv class=\"steps\"\u003e\n        \u003cdiv class=\"step\"\u003e\n          \u003cspan class=\"step-num\"\u003e01\u003c\/span\u003e\n          \u003cdiv class=\"step-content\"\u003e\n            \u003ch4\u003eTOMA 500MG\u003c\/h4\u003e\n            \u003cp\u003eUsa la espátula incluida para medir una porción del tamaño de un garbanzo (aprox. 500mg).\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"step\"\u003e\n          \u003cspan class=\"step-num\"\u003e02\u003c\/span\u003e\n          \u003cdiv class=\"step-content\"\u003e\n            \u003ch4\u003eDISUELVE\u003c\/h4\u003e\n            \u003cp\u003eEn un vaso de agua tibia, leche o té. El Shilajit se disuelve completamente en segundos.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"step\"\u003e\n          \u003cspan class=\"step-num\"\u003e03\u003c\/span\u003e\n          \u003cdiv class=\"step-content\"\u003e\n            \u003ch4\u003eCONSTANCIA\u003c\/h4\u003e\n            \u003cp\u003eTómalo diariamente. Los mejores resultados se notan entre la semana 2 y 4 de uso.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"howto-visual\"\u003e\n      \u003cdiv class=\"jar-bg\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1019\/7326\/2705\/files\/cambia_la_cuchara_por_la_202606121946.jpg?v=1781308805\" alt=\"Frasco de Shilajit con espátula\" class=\"jar-img\"\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- MINERALS --\u003e\n\u003csection class=\"ingredients\"\u003e\n  \u003cspan class=\"section-tag\"\u003eComposición natural\u003c\/span\u003e\n  \u003ch2 class=\"section-title\"\u003eMÁS DE 85 MINERALES\u003c\/h2\u003e\n  \u003cp class=\"section-body\"\u003eEl Shilajit contiene una concentración única de compuestos bioactivos formados durante millones de años.\u003c\/p\u003e\n  \u003cdiv class=\"minerals-grid\"\u003e\n    \u003cspan class=\"mineral-pill\"\u003eÁcido fúlvico\u003c\/span\u003e\n    \u003cspan class=\"mineral-pill\"\u003eHierro\u003c\/span\u003e\n    \u003cspan class=\"mineral-pill\"\u003eZinc\u003c\/span\u003e\n    \u003cspan class=\"mineral-pill\"\u003eMagnesio\u003c\/span\u003e\n    \u003cspan class=\"mineral-pill\"\u003ePotasio\u003c\/span\u003e\n    \u003cspan class=\"mineral-pill\"\u003eCalcio\u003c\/span\u003e\n    \u003cspan class=\"mineral-pill\"\u003eSelenio\u003c\/span\u003e\n    \u003cspan class=\"mineral-pill\"\u003eManganeso\u003c\/span\u003e\n    \u003cspan class=\"mineral-pill\"\u003eCobre\u003c\/span\u003e\n    \u003cspan class=\"mineral-pill\"\u003eSilicio\u003c\/span\u003e\n    \u003cspan class=\"mineral-pill\"\u003eÁcido húmico\u003c\/span\u003e\n    \u003cspan class=\"mineral-pill\"\u003eDibenzofuranos\u003c\/span\u003e\n    \u003cspan class=\"mineral-pill\"\u003eTriterpenos\u003c\/span\u003e\n    \u003cspan class=\"mineral-pill\"\u003eRetinol\u003c\/span\u003e\n    \u003cspan class=\"mineral-pill\"\u003eVitamina B12\u003c\/span\u003e\n    \u003cspan class=\"mineral-pill\"\u003eFosfato\u003c\/span\u003e\n    \u003cspan class=\"mineral-pill\"\u003e+ 69 más\u003c\/span\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- TESTIMONIALS --\u003e\n\u003csection class=\"testimonials\"\u003e\n  \u003cspan class=\"section-tag\"\u003eLo que dicen nuestros clientes\u003c\/span\u003e\n  \u003ch2 class=\"section-title\"\u003eRESULTADOS\u003cbr\u003eREALES\u003c\/h2\u003e\n  \u003cdiv class=\"testimonials-grid\"\u003e\n    \u003cdiv class=\"testimonial\"\u003e\n      \u003cspan class=\"stars\"\u003e★★★★★\u003c\/span\u003e\n      \u003cp class=\"testimonial-text\"\u003e\"Llevo 3 semanas usándolo y la diferencia en mi energía es brutal. Me levanto sin sentir ese cansancio de siempre. Lo recomiendo a todos.\"\u003c\/p\u003e\n      \u003cspan class=\"testimonial-author\"\u003e— Carlos M., Santo Domingo\u003c\/span\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"testimonial\"\u003e\n      \u003cspan class=\"stars\"\u003e★★★★★\u003c\/span\u003e\n      \u003cp class=\"testimonial-text\"\u003e\"Empecé a tomarlo para mejorar mi rendimiento en el gym y en 2 semanas ya sentía más resistencia. El producto es 100% legítimo.\"\u003c\/p\u003e\n      \u003cspan class=\"testimonial-author\"\u003e— Rafael A., Santiago\u003c\/span\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"testimonial\"\u003e\n      \u003cspan class=\"stars\"\u003e★★★★★\u003c\/span\u003e\n      \u003cp class=\"testimonial-text\"\u003e\"Mi esposo y yo lo tomamos juntos. Él dice que se siente más enfocado en el trabajo y yo noto que duermo mucho mejor. Calidad de primera.\"\u003c\/p\u003e\n      \u003cspan class=\"testimonial-author\"\u003e— Ana L., La Romana\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- PURCHASE --\u003e\n\u003csection class=\"purchase\" id=\"comprar\"\u003e\n  \u003cdiv class=\"purchase-info\"\u003e\n    \u003cspan class=\"section-tag\"\u003eOrdena hoy\u003c\/span\u003e\n    \u003ch2 class=\"section-title\"\u003eSHILAJIT\u003cbr\u003e100% REAL\u003c\/h2\u003e\n    \u003cdiv class=\"price-block\"\u003e\n      \u003cspan class=\"price-currency\"\u003eRD$\u003c\/span\u003e\n      \u003cspan class=\"price-main\"\u003e2,300\u003c\/span\u003e\n      \u003cspan class=\"price-unit\"\u003e\/ Con Envío Gratis.\u003c\/span\u003e\n    \u003c\/div\u003e\n    \u003cul class=\"includes-list\"\u003e\n      \u003cli\u003e30g de resina pura del Himalaya\u003c\/li\u003e\n      \u003cli\u003eEspátula medidora incluida\u003c\/li\u003e\n      \u003cli\u003eCertificado por Amesa Exporters Pvt. Limited\u003c\/li\u003e\n      \u003cli\u003eEnvío a todo el territorio nacional\u003c\/li\u003e\n      \u003cli\u003eSin aditivos, rellenos ni conservantes\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"purchase-action\"\u003e\n    \u003cbutton onclick=\"openModal()\" class=\"buy-now-btn\" style=\"width:100%; font-size:22px;\"\u003eORDENAR AHORA\u003c\/button\u003e\n    \u003cdiv class=\"guarantees\"\u003e\n      \u003cdiv class=\"guarantee\"\u003e\n        \u003cspan class=\"guarantee-icon\"\u003e🔒\u003c\/span\u003e\n        \u003cdiv class=\"guarantee-text\"\u003e\n\u003cstrong\u003ePago seguro\u003c\/strong\u003eTarjeta, transferencia o efectivo\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"guarantee\"\u003e\n        \u003cspan class=\"guarantee-icon\"\u003e🚚\u003c\/span\u003e\n        \u003cdiv class=\"guarantee-text\"\u003e\n\u003cstrong\u003eEnvío rápido\u003c\/strong\u003e48–72 horas a domicilio\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"guarantee\"\u003e\n        \u003cspan class=\"guarantee-icon\"\u003e✅\u003c\/span\u003e\n        \u003cdiv class=\"guarantee-text\"\u003e\n\u003cstrong\u003e100% original\u003c\/strong\u003eProducto certificado y sellado\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"guarantee\"\u003e\n        \u003cspan class=\"guarantee-icon\"\u003e💬\u003c\/span\u003e\n        \u003cdiv class=\"guarantee-text\"\u003e\n\u003cstrong\u003eSoporte directo\u003c\/strong\u003eEscríbenos por WhatsApp\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- FOOTER --\u003e\n\u003cfooter class=\"footer\"\u003e\n  \u003cdiv class=\"footer-brand\"\u003eTOP VITAL \u003cspan\u003eRD\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cp class=\"footer-note\"\u003eEste producto no está destinado a diagnosticar, tratar, curar o prevenir enfermedades. Consúltese con un profesional de salud antes de usar.\u003c\/p\u003e\n\u003c\/footer\u003e\n\n\u003c!-- ═══════════════════════════════════════════\n     MODAL DE ORDEN\n═══════════════════════════════════════════ --\u003e\n\u003cdiv id=\"order-modal\" style=\"display:none; position:fixed; inset:0; z-index:9999; align-items:center; justify-content:center; padding:16px;\"\u003e\n  \u003c!-- Backdrop --\u003e\n  \u003cdiv onclick=\"closeModal()\" style=\"position:absolute; inset:0; background:rgba(0,0,0,0.85); backdrop-filter:blur(6px);\"\u003e\u003c\/div\u003e\n\n  \u003c!-- Modal box --\u003e\n  \u003cdiv style=\"position:relative; width:100%; max-width:560px; background:#111210; border:1px solid rgba(184,134,11,0.25); max-height:90vh; overflow-y:auto; z-index:1;\"\u003e\n\n    \u003c!-- Header --\u003e\n    \u003cdiv style=\"padding:28px 32px 24px; border-bottom:1px solid rgba(255,255,255,0.07); display:flex; align-items:center; justify-content:space-between;\"\u003e\n      \u003cdiv\u003e\n        \u003cp style=\"font-size:10px; letter-spacing:0.35em; text-transform:uppercase; color:var(--gold); margin-bottom:4px;\"\u003eTop Vital RD\u003c\/p\u003e\n        \u003ch3 style=\"font-family:var(--font-display); font-size:26px; color:var(--off-white); letter-spacing:0.05em;\"\u003eCOMPLETAR ORDEN\u003c\/h3\u003e\n      \u003c\/div\u003e\n      \u003cbutton onclick=\"closeModal()\" style=\"background:none; border:none; color:rgba(245,242,236,0.4); font-size:24px; cursor:pointer; line-height:1; padding:4px 8px;\"\u003e×\u003c\/button\u003e\n    \u003c\/div\u003e\n\n    \u003c!-- SCRIPT INTERCEPTOR GLOBAL DE NAVEGACIÓN --\u003e\n\u003cscript\u003e\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n  const inputTel = document.getElementById(\"f-tel\");\n  \n  \/\/ Creamos el mensaje de error visual si no existe en tu HTML\n  let errorMsg = document.getElementById(\"error-tel-msg\");\n  if (!errorMsg \u0026\u0026 inputTel) {\n    errorMsg = document.createElement(\"span\");\n    errorMsg.id = \"error-tel-msg\";\n    errorMsg.style.cssText = \"color: #ff4a4a; font-size: 13px; margin-top: 6px; display: none; font-family: var(--font-body);\";\n    errorMsg.innerText = \"⚠ Debe ingresar un número válido.\";\n    inputTel.parentNode.appendChild(errorMsg);\n  }\n\n  \/\/ 1. Limpieza automática mientras escriben (evita espacios o guiones)\n  if (inputTel) {\n    inputTel.setAttribute(\"maxlength\", \"11\"); \/\/ Límite físico en el teclado\n    inputTel.addEventListener(\"input\", function() {\n      this.value = this.value.replace(\/[^0-9]\/g, '');\n      if (errorMsg) {\n        errorMsg.style.display = \"none\";\n        inputTel.style.borderColor = \"\";\n      }\n    });\n  }\n\n  \/\/ 2. SECUESTRO INTELIGENTE DE GOSTEP\n  \/\/ Si tu página ya tiene una función goStep definida, la guardamos para no romperla\n  if (typeof window.goStep === \"function\") {\n    const originalGoStep = window.goStep;\n\n    \/\/ Reemplazamos la función original con nuestro validador\n    window.goStep = function(stepNumber) {\n      if (inputTel) {\n        const numeroLimpio = inputTel.value.trim();\n        const longitud = numeroLimpio.length;\n\n        \/\/ Si el usuario está en el paso 1 e intenta avanzar al paso 2 o 3\n        if (stepNumber \u003e 1) {\n          if (longitud \u003c 10 || longitud \u003e 11) {\n            \/\/ Ponemos la casilla roja y mostramos el texto de advertencia\n            if (errorMsg) {\n              errorMsg.style.display = \"block\";\n            }\n            inputTel.style.borderColor = \"#ff4a4a\";\n            inputTel.focus();\n            \n            \/\/ FRENAMOS AQUÍ: Evitamos que se ejecute la navegación original\n            return false;\n          }\n        }\n      }\n\n      \/\/ SI TODO ESTÁ BIEN: Le permitimos a la función original cambiar el paso y actualizar los indicadores\n      return originalGoStep(stepNumber);\n    };\n  }\n});\n\u003c\/script\u003e\n\n\n    \u003c!-- STEP 1: Datos personales --\u003e\n    \u003cdiv id=\"step1\" class=\"modal-step\" style=\"padding:32px;\"\u003e\n      \u003cdiv style=\"display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px;\"\u003e\n        \u003cdiv class=\"form-group\"\u003e\n          \u003clabel class=\"form-label\"\u003eNombre *\u003c\/label\u003e\n          \u003cinput type=\"text\" id=\"f-nombre\" class=\"form-input\" placeholder=\"Juan\"\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"form-group\"\u003e\n          \u003clabel class=\"form-label\"\u003eApellido *\u003c\/label\u003e\n          \u003cinput type=\"text\" id=\"f-apellido\" class=\"form-input\" placeholder=\"Pérez\"\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n     \u003cdiv class=\"form-group\" style=\"margin-bottom:16px;\"\u003e\n  \u003clabel class=\"form-label\"\u003eTeléfono \/ WhatsApp *\u003c\/label\u003e\n  \u003cinput type=\"tel\" id=\"f-tel\" class=\"form-input\" placeholder=\"Ingresa un número con WhatsApp\" pattern=\"^[0-9]{10,11}$\" required maxlength=\"10\" title=\"Debe ingresar un número válido.\"\u003e\n  \u003c!-- Alerta visual integrada con la estética de tu diseño --\u003e\n  \u003cspan id=\"error-tel-msg\" style=\"color: #ff4a4a; font-size: 13px; margin-top: 6px; display: none;\"\u003e\n    ⚠ Debe ingresar un número válido de WhatsApp.\n  \u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n  const inputTel = document.getElementById(\"f-tel\");\n  const errorMsg = document.getElementById(\"error-tel-msg\");\n\n  if (inputTel) {\n    \/\/ 1. LIMPIEZA EN TIEMPO REAL: Borra letras, espacios, guiones y el \"+\" mientras escriben\n    inputTel.addEventListener(\"input\", function() {\n      \/\/ Reemplaza cualquier cosa que NO sea un número del 0 al 9 por nada\n      this.value = this.value.replace(\/[^0-9]\/g, '');\n      \n      \/\/ Oculta el mensaje de error mientras el usuario corrige el número\n      if (errorMsg) {\n        errorMsg.style.display = \"none\";\n        inputTel.style.borderColor = \"rgba(255,255,255,0.1)\"; \/\/ Tu borde original\n      }\n    });\n\n    \/\/ 2. INTERCEPTOR DEL FORMULARIO: Valida la longitud exacta antes de dejar pasar de paso\n    const form = inputTel.closest(\"form\");\n    if (form) {\n      form.addEventListener(\"submit\", function(event) {\n        const longitud = inputTel.value.trim().length;\n\n        \/\/ Si no tiene exactamente 10 ni 11 dígitos, bloqueamos el envío\n        if (longitud \u003c 10 || longitud \u003e 11) {\n          event.preventDefault();\n          event.stopPropagation();\n          event.stopImmediatePropagation();\n\n          \/\/ Activamos la alerta visual roja\n          if (errorMsg) {\n            errorMsg.style.display = \"block\";\n            inputTel.style.borderColor = \"#ff4a4a\";\n            inputTel.focus();\n          }\n        }\n      }, true); \/\/ Prioridad alta (fase de captura) para ganarle a los scripts de Shopify\n    }\n  }\n});\n\u003c\/script\u003e\n\n      \u003cdiv class=\"form-group\" style=\"margin-bottom:16px;\"\u003e\n        \u003clabel class=\"form-label\"\u003eCorreo electrónico\u003c\/label\u003e\n        \u003cinput type=\"email\" id=\"f-email\" class=\"form-input\" placeholder=\"juan@correo.com\"\u003e\n      \u003c\/div\u003e\n      \n     \u003c!-- 1. CAMPO DE PROVINCIA (Tu código original con atributos \"value\") --\u003e\n\u003cdiv class=\"form-group\" style=\"margin-bottom:16px;\"\u003e\n  \u003clabel class=\"form-label\"\u003eProvincia *\u003c\/label\u003e\n  \u003cselect id=\"f-provincia\" class=\"form-input form-select\" required\u003e\n    \u003coption value=\"\"\u003eSelecciona tu provincia\u003c\/option\u003e\n    \u003coption value=\"Distrito Nacional\"\u003eDistrito Nacional\u003c\/option\u003e\n    \u003coption value=\"Santo Domingo\"\u003eSanto Domingo\u003c\/option\u003e\n    \u003coption value=\"Azua\"\u003eAzua\u003c\/option\u003e\n    \u003coption value=\"Bahoruco\"\u003eBahoruco\u003c\/option\u003e\n    \u003coption value=\"Barahona\"\u003eBarahona\u003c\/option\u003e\n    \u003coption value=\"Dajabón\"\u003eDajabón\u003c\/option\u003e\n    \u003coption value=\"Duarte\"\u003eDuarte\u003c\/option\u003e\n    \u003coption value=\"El Seibo\"\u003eEl Seibo\u003c\/option\u003e\n    \u003coption value=\"Espaillat\"\u003eEspaillat\u003c\/option\u003e\n    \u003coption value=\"Hato Mayor\"\u003eHato Mayor\u003c\/option\u003e\n    \u003coption value=\"Hermanas Mirabal\"\u003eHermanas Mirabal\u003c\/option\u003e\n    \u003coption value=\"Independencia\"\u003eIndependencia\u003c\/option\u003e\n    \u003coption value=\"La Altagracia\"\u003eLa Altagracia\u003c\/option\u003e\n    \u003coption value=\"La Romana\"\u003eLa Romana\u003c\/option\u003e\n    \u003coption value=\"La Vega\"\u003eLa Vega\u003c\/option\u003e\n    \u003coption value=\"María Trinidad Sánchez\"\u003eMaría Trinidad Sánchez\u003c\/option\u003e\n    \u003coption value=\"Monseñor Nouel\"\u003eMonseñor Nouel\u003c\/option\u003e\n    \u003coption value=\"Monte Cristi\"\u003eMonte Cristi\u003c\/option\u003e\n    \u003coption value=\"Monte Plata\"\u003eMonte Plata\u003c\/option\u003e\n    \u003coption value=\"Pedernales\"\u003ePedernales\u003c\/option\u003e\n    \u003coption value=\"Peravia\"\u003ePeravia\u003c\/option\u003e\n    \u003coption value=\"Puerto Plata\"\u003ePuerto Plata\u003c\/option\u003e\n    \u003coption value=\"Samaná\"\u003eSamaná\u003c\/option\u003e\n    \u003coption value=\"San Cristóbal\"\u003eSan Cristóbal\u003c\/option\u003e\n    \u003coption value=\"San José de Ocoa\"\u003eSan José de Ocoa\u003c\/option\u003e\n    \u003coption value=\"San Juan\"\u003eSan Juan\u003c\/option\u003e\n    \u003coption value=\"San Pedro de Macorís\"\u003eSan Pedro de Macorís\u003c\/option\u003e\n    \u003coption value=\"Sánchez Ramírez\"\u003eSánchez Ramírez\u003c\/option\u003e\n    \u003coption value=\"Santiago\"\u003eSantiago\u003c\/option\u003e\n    \u003coption value=\"Santiago Rodríguez\"\u003eSantiago Rodríguez\u003c\/option\u003e\n    \u003coption value=\"Valverde\"\u003eValverde\u003c\/option\u003e\n  \u003c\/select\u003e\n\u003c\/div\u003e\n\n\u003c!-- 2. NUEVO: CAMPO DE MUNICIPIO (Se actualiza según la provincia) --\u003e\n\u003cdiv class=\"form-group\" style=\"margin-bottom:16px;\"\u003e\n  \u003clabel class=\"form-label\"\u003eMunicipio *\u003c\/label\u003e\n  \u003cselect id=\"f-municipio\" class=\"form-input form-select\" disabled required\u003e\n    \u003coption value=\"\"\u003ePrimero selecciona una provincia\u003c\/option\u003e\n  \u003c\/select\u003e\n\u003c\/div\u003e\n\n\u003c!-- 3. EL SCRIPT CON LA BASE DE DATOS DE MUNICIPIOS --\u003e\n\u003cscript\u003e\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n  \/\/ Diccionario de Provincias y sus Municipios correspondientes\n  const municipiosPorProvincia = {\n    \"Distrito Nacional\": [\"Santo Domingo de Guzmán\"],\n    \"Santo Domingo\": [\"Santo Domingo Este\", \"Santo Domingo Oeste\", \"Santo Domingo Norte\", \"Boca Chica\", \"San Antonio de Guerra\", \"Los Alcarrizos\", \"Pedro Brand\"],\n    \"Azua\": [\"Azua de Compostela\", \"Las Charcas\", \"Las Yayas de Viajama\", \"Padre Las Casas\", \"Peralta\", \"Sabana Yegua\", \"Tábara Arriba\", \"Guayabal\", \"Estebanía\", \"Pueblo Viejo\"],\n    \"Bahoruco\": [\"Neiba\", \"Galván\", \"Tamayo\", \"Villa Jaragua\", \"Los Ríos\"],\n    \"Barahona\": [\"Barahona\", \"Cabral\", \"El Peñón\", \"Enriquillo\", \"Fundación\", \"Jaquimeyes\", \"La Ciénaga\", \"Las Salinas\", \"Paraíso\", \"Vicente Noble\", \"Polo\"],\n    \"Dajabón\": [\"Dajabón\", \"Loma de Cabrera\", \"Partición\", \"Restauración\", \"El Pino\"],\n    \"Duarte\": [\"San Francisco de Macorís\", \"Arenoso\", \"Castillo\", \"Pimentel\", \"Villa Riva\", \"Las Guáranas\", \"Hostos\"],\n    \"El Seibo\": [\"Santa Cruz de El Seibo\", \"Miches\"],\n    \"Espaillat\": [\"Moca\", \"Cayetano Germosén\", \"Gaspar Hernández\", \"San Víctor\"],\n    \"Hato Mayor\": [\"Hato Mayor del Rey\", \"Sabana de la Mar\", \"El Valle\"],\n    \"Hermanas Mirabal\": [\"Salcedo\", \"Tenares\", \"Villa Tapia\"],\n    \"Independencia\": [\"Jimaní\", \"Duvergé\", \"La Descubierta\", \"Mella\", \"Postrer Río\", \"Cristóbal\"],\n    \"La Altagracia\": [\"Higüey\", \"San Rafael del Yuma\"],\n    \"La Romana\": [\"La Romana\", \"Guaymate\", \"Villa Hermosa\"],\n    \"La Vega\": [\"Concepción de La Vega\", \"Constanza\", \"Jarabacoa\", \"Jima Abajo\"],\n    \"María Trinidad Sánchez\": [\"Nagua\", \"Cabrera\", \"El Factor\", \"Río San Juan\"],\n    \"Monseñor Nouel\": [\"Bonao\", \"Maimón\", \"Piedra Blanca\"],\n    \"Monte Cristi\": [\"San Fernando de Monte Cristi\", \"Castañuelas\", \"Guayubín\", \"Las Matas de Santa Cruz\", \"Pepillo Salcedo\", \"Villa Vásquez\"],\n    \"Monte Plata\": [\"Monte Plata\", \"Bayaguana\", \"Sabana Grande de Boyá\", \"Yamasá\", \"Peralvillo\"],\n    \"Pedernales\": [\"Pedernales\", \"Oviedo\"],\n    \"Peravia\": [\"Baní\", \"Nizao\"],\n    \"Puerto Plata\": [\"San Felipe de Puerto Plata\", \"Altamira\", \"Guananico\", \"Imbert\", \"Los Hidalgos\", \"Luperón\", \"Sosúa\", \"Villa Isabela\", \"Villa Montellano\"],\n    \"Samaná\": [\"Santa Bárbara de Samaná\", \"Las Terrenas\", \"Sánchez\"],\n    \"San Cristóbal\": [\"San Cristóbal\", \"Sabana Grande de Palenque\", \"Bajos de Haina\", \"Cambita Garabitos\", \"Villa Altagracia\", \"Yaguate\", \"San Gregorio de Nigua\", \"Los Cacaos\"],\n    \"San José de Ocoa\": [\"San José de Ocoa\", \"Sabana Larga\", \"Rancho Arriba\"],\n    \"San Juan\": [\"San Juan de la Maguana\", \"Bohechío\", \"El Cercado\", \"Juan de Herrera\", \"Las Matas de Farfán\", \"Valle Juelo\"],\n    \"San Pedro de Macorís\": [\"San Pedro de Macorís\", \"Consuelo\", \"Guayacanes\", \"San José de los Llanos\", \"Quisqueya\", \"Ramón Santana\"],\n    \"Sánchez Ramírez\": [\"Cotuí\", \"Cevicos\", \"Fantino\", \"Villa La Mata\"],\n    \"Santiago\": [\"Santiago de los Caballeros\", \"Bisonó\", \"Jánico\", \"Licey al Medio\", \"San José de las Matas\", \"Tamboril\", \"Villa González\", \"Puñal\", \"Sabana Iglesia\"],\n    \"Santiago Rodríguez\": [\"San Ignacio de Sabaneta\", \"Villa Los Almácigos\", \"Monción\"],\n    \"Valverde\": [\"Mao\", \"Esperanza\", \"Laguna Salada\"]\n  };\n\n  const selectProvincia = document.getElementById(\"f-provincia\");\n  const selectMunicipio = document.getElementById(\"f-municipio\");\n\n  if (selectProvincia \u0026\u0026 selectMunicipio) {\n    selectProvincia.addEventListener(\"change\", function() {\n      const provinciaSeleccionada = this.value;\n\n      \/\/ Reseteamos el select de municipios\n      selectMunicipio.innerHTML = '\u003coption value=\"\"\u003eSelecciona tu municipio\u003c\/option\u003e';\n\n      if (provinciaSeleccionada \u0026\u0026 municipiosPorProvincia[provinciaSeleccionada]) {\n        \/\/ Habilitamos el menú si hay datos\n        selectMunicipio.disabled = false;\n\n        \/\/ Obtenemos e insertamos los municipios correspondientes\n        const listaMunicipios = municipiosPorProvincia[provinciaSeleccionada];\n        listaMunicipios.forEach(function(municipio) {\n          const option = document.createElement(\"option\");\n          option.value = municipio;\n          option.textContent = municipio;\n          selectMunicipio.appendChild(option);\n        });\n      } else {\n        \/\/ Si vuelven a la opción en blanco, bloqueamos el municipio\n        selectMunicipio.disabled = true;\n        selectMunicipio.innerHTML = '\u003coption value=\"\"\u003ePrimero selecciona una provincia\u003c\/option\u003e';\n      }\n    });\n  }\n});\n\u003c\/script\u003e\n\n\n      \u003cdiv class=\"form-group\" style=\"margin-bottom:24px;\"\u003e\n        \u003clabel class=\"form-label\"\u003eDirección de entrega *\u003c\/label\u003e\n        \u003ctextarea id=\"f-direccion\" class=\"form-input\" rows=\"3\" placeholder=\"Calle, número, sector, referencias útiles para el delivery...\"\u003e\u003c\/textarea\u003e\n      \u003c\/div\u003e\n      \u003cp id=\"err1\" style=\"color:#ec1818; font-size:13px; margin-bottom:16px; display:none;\"\u003e⚠ Por favor completa los campos obligatorios.\u003c\/p\u003e\n      \u003cbutton onclick=\"goStep(2)\" class=\"modal-btn-primary\"\u003eCONTINUAR →\u003c\/button\u003e\n    \u003c\/div\u003e\n\n  \u003c!-- ====================================================\n     STEP 2: Pedido (Contenedor Correctamente Cerrado al Final)\n     ==================================================== --\u003e\n\u003cdiv id=\"step2\" class=\"modal-step\" style=\"padding:32px; display:none;\"\u003e\n  \n  \u003c!-- Producto --\u003e\n  \u003cdiv style=\"background:rgba(13,92,58,0.08); border:1px solid rgba(13,92,58,0.2); padding:20px; margin-bottom:20px; display:flex; gap:20px; align-items:center;\"\u003e\n    \u003cdiv style=\"width:64px; height:64px; background:rgba(255,255,255,0.04); border-radius:4px; display:flex; align-items:center; justify-content:center; font-size:28px; flex-shrink:0;\"\u003e🏔️\u003c\/div\u003e\n    \u003cdiv style=\"flex:1;\"\u003e\n      \u003cp style=\"font-family:var(--font-display); font-size:18px; color:var(--off-white); letter-spacing:0.05em;\"\u003eSHILAJIT 100% PURO\u003c\/p\u003e\n      \u003cp style=\"font-size:12px; color:rgba(245,242,236,0.45); margin-top:2px;\"\u003e30g · Premium Quality · Top Vital RD\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv style=\"text-align:right; flex-shrink:0;\"\u003e\n      \u003cp id=\"total-price\" style=\"font-family:var(--font-display); font-size:22px; color:var(--gold);\"\u003eRD$ 2,300\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- Cantidad --\u003e\n  \u003cdiv class=\"form-group\" style=\"margin-bottom:20px;\"\u003e\n    \u003clabel class=\"form-label\"\u003eCantidad\u003c\/label\u003e\n    \u003cdiv style=\"display:flex; align-items:center; gap:0; width:fit-content; border:1px solid rgba(255,255,255,0.12);\"\u003e\n      \u003cbutton type=\"button\" id=\"btn-qty-minus\" style=\"background:none; border:none; color:var(--off-white); font-size:20px; width:44px; height:44px; cursor:pointer; transition:background 0.15s;\" onmouseover=\"this.style.background='rgba(255,255,255,0.06)'\" onmouseout=\"this.style.background='none'\"\u003e−\u003c\/button\u003e\n      \u003cspan id=\"qty-display\" style=\"font-family:var(--font-display); font-size:20px; color:var(--off-white); width:44px; text-align:center;\"\u003e1\u003c\/span\u003e\n      \u003cbutton type=\"button\" id=\"btn-qty-plus\" style=\"background:none; border:none; color:var(--off-white); font-size:20px; width:44px; height:44px; cursor:pointer; transition:background 0.15s;\" onmouseover=\"this.style.background='rgba(255,255,255,0.06)'\" onmouseout=\"this.style.background='none'\"\u003e+\u003c\/button\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- Input oculto para Shopify --\u003e\n  \u003cinput type=\"hidden\" id=\"f-quantity\" name=\"quantity\" value=\"1\"\u003e\n\n  \u003c!-- Método de pago (CORREGIDOS los comentarios que rompían la estética) --\u003e\n  \u003cdiv class=\"form-group\" style=\"margin-bottom:20px;\"\u003e\n    \u003clabel class=\"form-label\"\u003eMétodo de pago *\u003c\/label\u003e\n    \u003cdiv style=\"display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:8px;\"\u003e\n      \n      \u003clabel class=\"pay-option\" id=\"pay-transferencia\"\u003e\n        \u003cinput type=\"radio\" name=\"pago\" value=\"Transferencia bancaria\" onchange=\"selectPay(this)\"\u003e \n        \u003cspan class=\"pay-icon\"\u003e🏦\u003c\/span\u003e\n        \u003cspan\u003eTransferencia\u003c\/span\u003e\n      \u003c\/label\u003e\n      \n      \u003c!-- Opción Tarjeta Ocultada Correctamente --\u003e\n      \u003c!-- \n      \u003clabel class=\"pay-option\" id=\"pay-tarjeta\"\u003e\n        \u003cinput type=\"radio\" name=\"pago\" value=\"Tarjeta de crédito\/débito\" onchange=\"selectPay(this)\"\u003e\n        \u003cspan class=\"pay-icon\"\u003e💳\u003c\/span\u003e\n        \u003cspan\u003eTarjeta\u003c\/span\u003e\n      \u003c\/label\u003e \n      --\u003e\n\n      \u003clabel class=\"pay-option\" id=\"pay-efectivo\"\u003e\n        \u003cinput type=\"radio\" name=\"pago\" value=\"Efectivo al recibir\" onchange=\"selectPay(this)\"\u003e\n        \u003cspan class=\"pay-icon\"\u003e💵\u003c\/span\u003e\n        \u003cspan\u003eEfectivo al recibir\u003c\/span\u003e\n      \u003c\/label\u003e\n\n      \u003c!-- Opción Pago Azul Ocultada Correctamente --\u003e\n      \u003c!-- \n      \u003clabel class=\"pay-option\" id=\"pay-azul\"\u003e\n        \u003cinput type=\"radio\" name=\"pago\" value=\"Pago en línea (Azul)\" onchange=\"selectPay(this)\"\u003e\n        \u003cspan class=\"pay-icon\"\u003e🔵\u003c\/span\u003e\n        \u003cspan\u003ePago en línea\u003c\/span\u003e\n      \u003c\/label\u003e \n      --\u003e\n      \n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- Nota opcional --\u003e\n  \u003cdiv class=\"form-group\" style=\"margin-bottom:24px;\"\u003e\n    \u003clabel class=\"form-label\"\u003eNota para tu pedido \u003cspan style=\"opacity:0.4;\"\u003e(opcional)\u003c\/span\u003e\u003c\/label\u003e\n    \u003ctextarea id=\"f-nota\" class=\"form-input\" rows=\"2\" placeholder=\"Instrucciones especiales, horario de entrega preferido...\"\u003e\u003c\/textarea\u003e\n  \u003c\/div\u003e\n\n  \u003cp id=\"err2\" style=\"color:#e05252; font-size:13px; margin-bottom:16px; display:none;\"\u003e⚠ Selecciona un método de pago.\u003c\/p\u003e\n\n  \u003cdiv style=\"display:flex; gap:12px;\"\u003e\n    \u003cbutton type=\"button\" onclick=\"goStep(1)\" class=\"modal-btn-secondary\"\u003e← Volver\u003c\/button\u003e\n    \u003cbutton type=\"button\" onclick=\"goStep(3)\" class=\"modal-btn-primary\" style=\"flex:1;\"\u003eVER RESUMEN →\u003c\/button\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e \u003c!-- EL CIERRE DEL STEP 2 AHORA SÍ ESTÁ EN SU LUGAR CORRECTO --\u003e\n\n\n\u003c!-- ====================================================\n     STEP 3: Resumen y confirmar (Limpio y Alineado)\n     ==================================================== --\u003e\n\u003cdiv id=\"step3\" class=\"modal-step\" style=\"padding:32px; display:none;\"\u003e\n  \u003cp style=\"font-size:11px; letter-spacing:0.25em; text-transform:uppercase; color:var(--gold); margin-bottom:20px;\"\u003eResumen de tu orden\u003c\/p\u003e\n\n  \u003cdiv id=\"summary-box\" style=\"background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.08); padding:20px; margin-bottom:24px; font-size:14px; line-height:2; color:rgba(245,242,236,0.75);\"\u003e\n    \u003c!-- filled by JS --\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv style=\"background:rgba(13,92,58,0.1); border:1px solid rgba(13,92,58,0.25); padding:16px 20px; margin-bottom:24px; display:flex; justify-content:space-between; align-items:center;\"\u003e\n    \u003cspan style=\"font-size:13px; color:rgba(245,242,236,0.6); letter-spacing:0.05em; text-transform:uppercase;\"\u003eTotal\u003c\/span\u003e\n    \u003c!-- Añadido ID \"total-display\" para sincronizarse con la suma automática --\u003e\n    \u003cspan id=\"total-display\" style=\"font-family:var(--font-display); font-size:28px; color:var(--gold-light);\"\u003eRD$ 2,300\u003c\/span\u003e\n  \u003c\/div\u003e\n\n  \u003cp style=\"font-size:12px; color:rgba(245,242,236,0.35); margin-bottom:24px; line-height:1.7;\"\u003e\"Al confirmar tu orden, un agente de TopVitalRD te contactará por WhatsApp en menos de 24 horas para coordinar el pago y la entrega. Por favor, realiza tu pedido únicamente si estás seguro de recibirlo, ya que cada solicitud activa nuestro proceso logístico y representa un compromiso de compra. Tu responsabilidad nos ayuda a mantener precios justos y un servicio eficiente para todos nuestros clientes.\"\u003c\/p\u003e\n\n  \u003cdiv style=\"display:flex; gap:12px;\"\u003e\n    \u003cbutton type=\"button\" onclick=\"goStep(2)\" class=\"modal-btn-secondary\"\u003e← Volver\u003c\/button\u003e\n    \u003cbutton type=\"button\" onclick=\"confirmOrder()\" class=\"modal-btn-primary\" style=\"flex:1;\"\u003e✓ CONFIRMAR ORDEN\u003c\/button\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e \u003c!-- CIERRE CORRECTO DEL STEP 3 --\u003e\n\n\n\u003c!-- ====================================================\n     SCRIPT DE CONTROL DE TOTALES (Ubicado fuera de los contenedores)\n     ==================================================== --\u003e\n\u003cscript\u003e\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n  const btnMinus = document.getElementById(\"btn-qty-minus\");\n  const btnPlus = document.getElementById(\"btn-qty-plus\");\n\n  \/\/ Usa la MISMA función y variable global \"qty\" que el resto del flujo\n  \/\/ (Paso 2, resumen del Paso 3 y el mensaje de WhatsApp), para que\n  \/\/ nunca queden desincronizados.\n  if (btnMinus) {\n    btnMinus.addEventListener(\"click\", function(e) {\n      e.preventDefault();\n      changeQty(-1);\n    });\n  }\n\n  if (btnPlus) {\n    btnPlus.addEventListener(\"click\", function(e) {\n      e.preventDefault();\n      changeQty(1);\n    });\n  }\n});\n\u003c\/script\u003e\n\n\n    \u003c!-- STEP 4: Éxito --\u003e\n    \u003cdiv id=\"step4\" class=\"modal-step\" style=\"padding:48px 32px; display:none; text-align:center;\"\u003e\n      \u003cdiv style=\"font-size:56px; margin-bottom:24px;\"\u003e🎉\u003c\/div\u003e\n      \u003ch3 style=\"font-family:var(--font-display); font-size:36px; color:var(--gold); letter-spacing:0.05em; margin-bottom:12px;\"\u003e¡ORDEN RECIBIDA!\u003c\/h3\u003e\n      \u003cp style=\"font-size:15px; color:rgba(245,242,236,0.65); line-height:1.8; max-width:380px; margin:0 auto 32px;\"\u003eGracias por tu compra. Un agente de \u003cstrong style=\"color:var(--off-white);\"\u003eTop Vital RD\u003c\/strong\u003e te escribirá por WhatsApp en los próximos minutos para confirmar tu entrega.\u003c\/p\u003e\n      \u003ca id=\"whatsapp-link\" href=\"#\" target=\"_blank\" style=\"display:inline-block; background:#25D366; color:#fff; font-family:var(--font-display); font-size:18px; letter-spacing:0.1em; padding:16px 36px; text-decoration:none; border-radius:2px; margin-bottom:16px;\"\u003e💬 ESCRIBIR POR WHATSAPP\u003c\/a\u003e\n      \u003cbr\u003e\n      \u003cbutton onclick=\"closeModal()\" style=\"background:none; border:none; color:rgba(245,242,236,0.35); font-size:13px; cursor:pointer; margin-top:8px; text-decoration:underline;\"\u003eCerrar\u003c\/button\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c!-- \/modal box --\u003e\n\u003c\/div\u003e\n\u003c!-- \/modal --\u003e\n\n\u003cstyle\u003e\n\/* ── MODAL STYLES ── *\/\n#order-modal.open { display:flex !important; }\n\n.modal-step { animation: fadeUp 0.3s ease; }\n\n.form-label {\n  display:block;\n  font-size:11px;\n  letter-spacing:0.2em;\n  text-transform:uppercase;\n  color:rgba(245,242,236,0.45);\n  margin-bottom:8px;\n}\n\n.form-input {\n  width:100%;\n  background:#1a1a18 !important;\n  color:#f5f2ec !important;\n}\n\n.form-input:focus { border-color:rgba(184,134,11,0.6); }\n.form-input::placeholder { color:rgba(245,242,236,0.7); }\n\n.form-select {\n  appearance:none;\n  background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23B8860B' stroke-width='1.5' fill='none'\/%3E%3C\/svg%3E\");\n  background-repeat:no-repeat;\n  background-position:right 14px center;\n  padding-right:40px;\n  cursor:pointer;\n}\n\n.form-select option { background:#111210; color:var(--off-white); }\n\n.pay-option {\n  display:flex;\n  align-items:center;\n  gap:10px;\n  padding:12px 16px;\n  border:1px solid rgba(255,255,255,0.1);\n  cursor:pointer;\n  font-size:13px;\n  color:rgba(245,242,236,0.6);\n  transition:border-color 0.2s, background 0.2s;\n  user-select:none;\n}\n\n.pay-option input { display:none; }\n.pay-option.selected { border-color:var(--gold); background:rgba(184,134,11,0.08); color:var(--off-white); }\n.pay-icon { font-size:18px; }\n\n.modal-btn-primary {\n  display:block;\n  width:100%;\n  background:var(--gold);\n  color:var(--black);\n  font-family:var(--font-display);\n  font-size:18px;\n  letter-spacing:0.12em;\n  padding:16px 24px;\n  border:none;\n  cursor:pointer;\n  clip-path:polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px));\n  transition:background 0.2s, transform 0.15s;\n}\n\n.modal-btn-primary:hover { background:var(--gold-light); transform:translateY(-1px); }\n\n.modal-btn-secondary {\n  background:none;\n  border:1px solid rgba(255,255,255,0.12);\n  color:rgba(245,242,236,0.5);\n  font-family:var(--font-body);\n  font-size:13px;\n  letter-spacing:0.1em;\n  padding:16px 20px;\n  cursor:pointer;\n  transition:border-color 0.2s, color 0.2s;\n  white-space:nowrap;\n}\n\n.modal-btn-secondary:hover { border-color:rgba(255,255,255,0.3); color:var(--off-white); }\n\n\/* Step indicator *\/\n.step-ind { display:flex; flex-direction:column; align-items:center; gap:6px; flex:1; }\n.step-dot {\n  width:30px; height:30px; border-radius:50%;\n  border:1px solid rgba(255,255,255,0.15);\n  color:rgba(245,242,236,0.3);\n  font-family:var(--font-display);\n  font-size:15px;\n  display:flex; align-items:center; justify-content:center;\n  transition:all 0.3s;\n}\n.step-ind.active .step-dot { border-color:var(--gold); color:var(--gold); background:rgba(184,134,11,0.1); }\n.step-ind.done .step-dot { border-color:var(--green); color:var(--green); background:rgba(13,92,58,0.15); }\n.step-ind-label { font-size:10px; letter-spacing:0.15em; text-transform:uppercase; color:rgba(245,242,236,0.3); }\n.step-ind.active .step-ind-label { color:rgba(245,242,236,0.7); }\n.step-line { flex:1; height:1px; background:rgba(255,255,255,0.1); margin-bottom:16px; }\n\n@media (max-width:600px) {\n  #order-modal \u003e div:last-of-type { max-height:95vh; }\n  #order-modal \u003e div:last-of-type \u003e div[style*=\"grid-template-columns:1fr 1fr\"] { grid-template-columns:1fr !important; }\n}\n\u003c\/style\u003e\n\n\u003cscript\u003e\n  \/\/ ── Scroll animation\n  const observer = new IntersectionObserver((entries) =\u003e {\n    entries.forEach((entry, i) =\u003e {\n      if (entry.isIntersecting) setTimeout(() =\u003e entry.target.classList.add('visible'), i * 150);\n    });\n  }, { threshold: 0.2 });\n  document.querySelectorAll('.step').forEach(el =\u003e observer.observe(el));\n\n  \/\/ ── MODAL\n  let qty = 1;\n  const PRICE = 2300; \/\/ ← CAMBIA ESTO por tu precio real (número sin RD$), ej: 1800\n  const WA_NUMBER = '18094196299'; \/\/ ← CAMBIA por tu número de WhatsApp (sin + ni espacios)\n\n  function openModal() {\n    document.getElementById('order-modal').classList.add('open');\n    document.body.style.overflow = 'hidden';\n    goStep(1);\n  }\n\n  function closeModal() {\n    document.getElementById('order-modal').classList.remove('open');\n    document.body.style.overflow = '';\n  }\n\n  function changeQty(delta) {\n    qty = Math.max(1, Math.min(10, qty + delta));\n\n    const qtyDisplay = document.getElementById('qty-display');\n    const qtyInput = document.getElementById('f-quantity');\n    const priceDisplay = document.getElementById('total-price');\n    const totalDisplay3 = document.getElementById('total-display');\n\n    if (qtyDisplay) qtyDisplay.textContent = qty;\n    if (qtyInput) qtyInput.value = qty;\n\n    const formatoMoneda = 'RD$ ' + (PRICE * qty).toLocaleString('en-US');\n    if (priceDisplay) priceDisplay.innerText = formatoMoneda;\n    if (totalDisplay3) totalDisplay3.innerText = formatoMoneda;\n  }\n\n  function selectPay(el) {\n    document.querySelectorAll('.pay-option').forEach(l =\u003e l.classList.remove('selected'));\n    el.closest('.pay-option').classList.add('selected');\n  }\n\n  function goStep(n) {\n    \/\/ Validate step 1\n    if (n === 2) {\n      const nombre = document.getElementById('f-nombre').value.trim();\n      const apellido = document.getElementById('f-apellido').value.trim();\n      const tel = document.getElementById('f-tel').value.trim();\n      const provincia = document.getElementById('f-provincia').value;\n      const dir = document.getElementById('f-direccion').value.trim();\n      if (!nombre || !apellido || !tel || !provincia || !dir) {\n        document.getElementById('err1').style.display = 'block';\n        return;\n      }\n      document.getElementById('err1').style.display = 'none';\n    }\n    \/\/ Validate step 2\n    if (n === 3) {\n      const pago = document.querySelector('input[name=\"pago\"]:checked');\n      if (!pago) {\n        document.getElementById('err2').style.display = 'block';\n        return;\n      }\n      document.getElementById('err2').style.display = 'none';\n      buildSummary();\n    }\n\n    \/\/ Show\/hide steps\n    [1,2,3,4].forEach(i =\u003e {\n      const el = document.getElementById('step' + i);\n      if (el) el.style.display = i === n ? 'block' : 'none';\n    });\n\n    \/\/ Update indicators\n    [1,2,3].forEach(i =\u003e {\n      const ind = document.getElementById('ind-' + i);\n      ind.className = 'step-ind' + (i === n ? ' active' : i \u003c n ? ' done' : '');\n    });\n\n    \/\/ Scroll modal to top\n    const box = document.querySelector('#order-modal \u003e div:last-of-type');\n    if (box) box.scrollTop = 0;\n  }\n\n  function buildSummary() {\n    const nombre = document.getElementById('f-nombre').value.trim();\n    const apellido = document.getElementById('f-apellido').value.trim();\n    const tel = document.getElementById('f-tel').value.trim();\n    const email = document.getElementById('f-email').value.trim();\n    const provincia = document.getElementById('f-provincia').value;\n    const dir = document.getElementById('f-direccion').value.trim();\n    const pago = document.querySelector('input[name=\"pago\"]:checked').value;\n    const nota = document.getElementById('f-nota').value.trim();\n    const total = PRICE \u003e 0 ? 'RD$ ' + (PRICE * qty).toLocaleString() : 'RD$ XXXX';\n\n    document.getElementById('summary-box').innerHTML = `\n      \u003cdiv style=\"display:grid; grid-template-columns:auto 1fr; gap:4px 16px;\"\u003e\n        \u003cspan style=\"color:rgba(255, 255, 255, 0.35); font-size:12px; text-transform:uppercase; letter-spacing:0.1em;\"\u003eCliente\u003c\/span\u003e\n        \u003cspan\u003e${nombre} ${apellido}\u003c\/span\u003e\n        \u003cspan style=\"color:rgba(255, 255, 255, 0.35); font-size:12px; text-transform:uppercase; letter-spacing:0.1em;\"\u003eTeléfono\u003c\/span\u003e\n        \u003cspan\u003e${tel}\u003c\/span\u003e\n        ${email ? `\u003cspan style=\"color:rgba(255, 255, 255, 0.35); font-size:12px; text-transform:uppercase; letter-spacing:0.1em;\"\u003eCorreo\u003c\/span\u003e\u003cspan\u003e${email}\u003c\/span\u003e` : ''}\n        \u003cspan style=\"color:rgba(255, 255, 255, 0.35); font-size:12px; text-transform:uppercase; letter-spacing:0.1em;\"\u003eProvincia\u003c\/span\u003e\n        \u003cspan\u003e${provincia}\u003c\/span\u003e\n        \u003cspan style=\"color:rgba(255, 255, 255, 0.35); font-size:12px; text-transform:uppercase; letter-spacing:0.1em;\"\u003eDirección\u003c\/span\u003e\n        \u003cspan\u003e${dir}\u003c\/span\u003e\n        \u003cspan style=\"color:rgba(255, 255, 255, 0.35); font-size:12px; text-transform:uppercase; letter-spacing:0.1em;\"\u003eProducto\u003c\/span\u003e\n        \u003cspan\u003eShilajit 100% Real × ${qty}\u003c\/span\u003e\n        \u003cspan style=\"color:rgba(255, 255, 255, 0.35); font-size:12px; text-transform:uppercase; letter-spacing:0.1em;\"\u003ePago\u003c\/span\u003e\n        \u003cspan\u003e${pago}\u003c\/span\u003e\n        ${nota ? `\u003cspan style=\"color:rgba(255, 255, 255, 0.35); font-size:12px; text-transform:uppercase; letter-spacing:0.1em;\"\u003eNota\u003c\/span\u003e\u003cspan\u003e${nota}\u003c\/span\u003e` : ''}\n      \u003c\/div\u003e`;\n\n    document.getElementById('total-display').textContent = total;\n  }\n\n  function confirmOrder() {\n    \/\/ 1. Recolección de datos de tus campos\n    const nombre = document.getElementById('f-nombre')?.value.trim() || '';\n    const apellido = document.getElementById('f-apellido')?.value.trim() || '';\n    const tel = document.getElementById('f-tel')?.value.trim() || '';\n    const provincia = document.getElementById('f-provincia')?.value || '';\n    \n    \/\/ NUEVO: Recolectamos el Municipio que agregamos en los pasos anteriores\n    const municipio = document.getElementById('f-municipio')?.value || '';\n    \n    const dir = document.getElementById('f-direccion')?.value.trim() || '';\n    \n    \/\/ Validamos de forma segura si seleccionó método de pago\n    const pagoElement = document.querySelector('input[name=\"pago\"]:checked');\n    const pago = pagoElement ? pagoElement.value : 'No especificado';\n    \n    const nota = document.getElementById('f-nota')?.value.trim() || '';\n    \n    \/\/ Cálculo del precio usando tus variables globales (PRICE y qty)\n    const total = (typeof PRICE !== 'undefined' \u0026\u0026 PRICE \u003e 0) \n                  ? 'RD$ ' + (PRICE * qty).toLocaleString('en-US') \n                  : 'RD$ 2,300';\n\n    \/\/ 2. Estructura premium del mensaje para tu WhatsApp\n    const msg = `🏔️ *NUEVO PEDIDO - DETALLES*\n\n*Nombre:* ${nombre} ${apellido}\n*Dirección:* ${dir}, ${provincia}, ${municipio}\n\n*Producto:* Shilajit 100% Puro × ${qty}\n*Total:* ${total}\n*Pago:* ${pago}${nota ? '\\n📝 *Nota:* ' + nota : ''}\n\n_Orden enviada._`;\n\n    \/\/ 3. Generación limpia de la URL sin mezclas ni parámetros duplicados\n    const waUrl = `https:\/\/wa.me\/18094196299?text=${encodeURIComponent(msg)}`;\n    \n    \/\/ Asignamos de forma segura el enlace al elemento HTML\n    const whatsappLink = document.getElementById('whatsapp-link');\n    if (whatsappLink) {\n        whatsappLink.href = waUrl;\n    }\n\n    \/\/ Avanzamos al paso de éxito (Paso 4)\n    goStep(4);\n}\n\n\n  \/\/ Close on Escape\n  document.addEventListener('keydown', e =\u003e { if (e.key === 'Escape') closeModal(); });\n\u003c\/script\u003e\n\u003c\/body\u003e","brand":"Mi tienda","offers":[{"title":"Default Title","offer_id":64144253682033,"sku":null,"price":0.0,"currency_code":"DOP","in_stock":false}]}],"url":"https:\/\/www.topvitalrd.pro\/collections\/frontpage.oembed","provider":"Mi tienda","version":"1.0","type":"link"}