{"id":746,"date":"2026-05-07T16:11:58","date_gmt":"2026-05-07T14:11:58","guid":{"rendered":"https:\/\/www.metodosommelierdevida.com\/?page_id=746"},"modified":"2026-05-10T10:09:11","modified_gmt":"2026-05-10T08:09:11","slug":"tu-uva-emocional","status":"publish","type":"page","link":"https:\/\/www.metodosommelierdevida.com\/en\/tu-uva-emocional\/","title":{"rendered":"tu uva emocional"},"content":{"rendered":"<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Tu Uva Emocional \u2014 M\u00e9todo Sommelier de Vida<\/title>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400;1,700&#038;family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400;1,600&#038;family=IBM+Plex+Mono:wght@300;400;500&#038;display=swap\" rel=\"stylesheet\">\n<style>\n*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }\n:root {\n  --wine:#4a1018; --wine2:#6b1f2a; --wine3:#8b2a3a;\n  --gold:#c09b4a; --gold2:#d4b46a;\n  --parch:#f0e8d8; --ink:#1a1008; --faded:#7a6e5e;\n}\nhtml,body{background:#080604;color:#f0e8d8;font-family:'IBM Plex Mono',monospace;min-height:100%;overflow-x:hidden;}\n#app{position:fixed;inset:0;background:#080604;overflow-y:auto;overflow-x:hidden;color:#f0e8d8;font-family:'IBM Plex Mono',monospace;}\n.screen{display:none;min-height:100%;background:#080604;}\n.screen.active{display:flex;flex-direction:column;align-items:center;animation:fadeUp .6s cubic-bezier(.16,1,.3,1) both;}\n@keyframes fadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}\n.eyebrow{font-size:9px;letter-spacing:.5em;text-transform:uppercase;color:var(--gold);display:inline-flex;align-items:center;gap:12px;margin-bottom:32px;}\n.eyebrow::before,.eyebrow::after{content:'';display:block;width:28px;height:1px;background:var(--gold);opacity:.4;}\n.page-title{font-family:'Playfair Display',serif;font-size:clamp(44px,9vw,96px);font-weight:900;line-height:.95;color:var(--parch);margin-bottom:12px;text-align:center;}\n.page-title em{font-style:italic;color:var(--gold2);}\n.page-sub{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(16px,2.5vw,22px);color:var(--faded);max-width:500px;line-height:1.7;text-align:center;margin-bottom:48px;}\n.btn-gold{background:transparent;border:1px solid var(--gold);color:var(--gold);font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:500;letter-spacing:.25em;text-transform:uppercase;padding:18px 48px;cursor:pointer;transition:all .3s;position:relative;overflow:hidden;}\n.btn-gold::before{content:'';position:absolute;inset:0;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.16,1,.3,1);}\n.btn-gold:hover{color:var(--ink);}\n.btn-gold:hover::before{transform:scaleX(1);}\n.btn-gold span{position:relative;}\n.btn-gold:disabled{opacity:.5;cursor:not-allowed;}\n.btn-wine{background:var(--wine);color:var(--parch);border:1px solid var(--wine2);font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;padding:18px 48px;cursor:pointer;transition:background .2s;}\n.btn-wine:hover{background:var(--wine2);}\n.prog-wrap{width:100%;max-width:560px;margin-bottom:48px;}\n.prog-track{height:1px;background:rgba(255,255,255,.07);position:relative;overflow:hidden;}\n.prog-fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--wine2),var(--gold));transition:width .5s cubic-bezier(.16,1,.3,1);}\n.prog-label{font-size:9px;letter-spacing:.25em;color:var(--gold);text-align:right;margin-top:8px;}\n.qblock{width:100%;max-width:560px;margin-bottom:44px;padding-left:24px;border-left:1px solid rgba(192,155,74,.12);transition:border-color .3s;}\n.qblock.done{border-color:var(--gold);}\n.q-num{font-size:9px;letter-spacing:.4em;color:var(--wine3);text-transform:uppercase;margin-bottom:8px;}\n.q-text{font-family:'Playfair Display',serif;font-size:clamp(17px,3vw,23px);color:var(--parch);margin-bottom:18px;line-height:1.3;}\n.q-opts{display:flex;flex-wrap:wrap;gap:8px;}\n.qopt{background:transparent;border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.45);font-family:'IBM Plex Mono',monospace;font-size:10.5px;padding:9px 16px;cursor:pointer;transition:all .15s;letter-spacing:.04em;}\n.qopt:hover{border-color:rgba(192,155,74,.5);color:var(--gold2);}\n.qopt.on{background:var(--wine);border-color:var(--wine3);color:var(--parch);}\n#s1{padding:80px 24px 100px;text-align:center;position:relative;}\n#s1::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 30%,rgba(74,16,24,.45) 0%,transparent 65%);}\n#s1>*{position:relative;z-index:1;}\n.grape-preview{display:flex;gap:8px;justify-content:center;margin-bottom:48px;flex-wrap:wrap;}\n.gp-pill{background:var(--wine);border:1px solid var(--wine2);font-family:'Cormorant Garamond',serif;font-style:italic;font-size:13px;color:var(--parch);padding:6px 14px;border-radius:0;}\n.gp-pill:nth-child(2){background:rgba(74,16,24,.4);opacity:.7;}\n.gp-pill:nth-child(3){background:rgba(74,16,24,.25);opacity:.5;}\n.gp-pill:nth-child(4){background:rgba(74,16,24,.15);opacity:.35;}\n.gp-pill:nth-child(5){background:rgba(74,16,24,.08);opacity:.2;}\n.landing-hook{font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(17px,2.8vw,24px);color:var(--gold2);max-width:560px;line-height:1.6;margin:0 auto 48px;}\n.footnote{margin-top:24px;font-size:9px;color:rgba(255,255,255,.2);letter-spacing:.15em;}\n#s2{padding:72px 24px 100px;}\n.form-block{width:100%;max-width:480px;}\n.form-label{font-size:9px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:10px;display:block;}\n.form-input{width:100%;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);color:var(--parch);font-family:'IBM Plex Mono',monospace;font-size:13px;padding:14px 18px;outline:none;transition:border-color .2s;margin-bottom:28px;-webkit-appearance:none;border-radius:0;}\n.form-input:focus{border-color:var(--gold);}\n.form-input::placeholder{color:rgba(255,255,255,.2);}\n.country-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin-bottom:32px;}\n.country-btn{background:transparent;border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.45);font-family:'IBM Plex Mono',monospace;font-size:10px;padding:10px 12px;cursor:pointer;transition:all .15s;letter-spacing:.05em;text-align:center;}\n.country-btn:hover{border-color:rgba(192,155,74,.5);color:var(--gold2);}\n.country-btn.on{background:var(--wine);border-color:var(--wine2);color:var(--parch);}\n.form-sep{border:none;border-top:1px solid rgba(255,255,255,.07);margin:28px 0;}\n.privacy-note{font-size:9px;color:rgba(255,255,255,.2);letter-spacing:.1em;line-height:1.7;margin-top:16px;}\n\n\/* Saving state message *\/\n.saving-msg{display:none;text-align:center;margin-top:16px;font-size:10px;letter-spacing:.15em;color:var(--gold2);}\n.saving-msg.on{display:block;}\n\n#s3{padding:60px 24px 100px;}\n#s4{justify-content:center;align-items:center;text-align:center;gap:32px;min-height:100vh;padding:40px;}\n.vine-anim{font-size:48px;animation:sway 2s ease-in-out infinite;display:block;}\n@keyframes sway{0%,100%{transform:rotate(-5deg);}50%{transform:rotate(5deg);}}\n.loading-h{font-family:'Playfair Display',serif;font-style:italic;font-size:22px;color:var(--parch);}\n.dots span{display:inline-block;animation:bd 1.4s infinite;color:var(--gold);}\n.dots span:nth-child(2){animation-delay:.2s;}\n.dots span:nth-child(3){animation-delay:.4s;}\n@keyframes bd{0%,80%,100%{opacity:0}40%{opacity:1}}\n.loading-sub{font-size:9px;letter-spacing:.3em;color:rgba(255,255,255,.2);text-transform:uppercase;}\n#s5{padding:60px 24px 100px;}\n.result-intro{max-width:560px;text-align:center;margin-bottom:52px;}\n.result-intro p{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:16px;color:rgba(255,255,255,.4);line-height:1.8;}\n.grape-list{width:100%;max-width:600px;display:flex;flex-direction:column;gap:20px;margin-bottom:52px;}\n.grape-card{background:rgba(255,255,255,.025);border:1px solid rgba(192,155,74,.15);position:relative;overflow:hidden;transition:border-color .2s;}\n.grape-card:hover{border-color:rgba(192,155,74,.35);}\n.gc-rank{position:absolute;top:0;left:0;width:36px;height:100%;display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:rgba(192,155,74,.15);border-right:1px solid rgba(192,155,74,.08);}\n.grape-card:nth-child(1) .gc-rank{color:var(--gold);font-size:28px;}\n.grape-card:nth-child(1){border-color:rgba(192,155,74,.4);background:rgba(192,155,74,.04);}\n.gc-body{padding:20px 20px 20px 52px;}\n.gc-top{display:flex;align-items:baseline;gap:12px;margin-bottom:6px;flex-wrap:wrap;}\n.gc-name{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:var(--parch);}\n.gc-why{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:13px;color:var(--gold2);}\n.gc-archetype{display:inline-block;font-size:8px;letter-spacing:.3em;text-transform:uppercase;background:var(--wine);color:rgba(255,255,255,.7);padding:3px 10px;margin-bottom:12px;}\n.gc-desc{font-size:11px;color:rgba(255,255,255,.5);line-height:1.7;margin-bottom:14px;}\n.gc-chars{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;}\n.gc-char{font-size:9px;letter-spacing:.1em;border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.35);padding:4px 10px;}\n.gc-wines{font-size:10px;color:var(--gold2);line-height:1.7;}\n.gc-wines strong{color:rgba(255,255,255,.3);font-size:8px;letter-spacing:.3em;text-transform:uppercase;display:block;margin-bottom:4px;font-weight:400;}\n.result-cta{max-width:560px;width:100%;border:1px solid rgba(192,155,74,.15);padding:32px;text-align:center;margin-bottom:32px;}\n.result-cta p{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:16px;line-height:1.8;color:rgba(255,255,255,.4);margin-bottom:24px;}\n.result-actions{display:flex;flex-direction:column;gap:10px;max-width:560px;width:100%;margin-bottom:16px;}\n.ra{display:block;width:100%;padding:14px 24px;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;border:1px solid;transition:all .2s;text-align:center;text-decoration:none;}\n.ra.light{background:var(--parch);color:var(--ink);border-color:var(--parch);}\n.ra.light:hover{background:var(--gold2);}\n.ra.w{background:var(--wine);color:var(--parch);border-color:var(--wine2);}\n.ra.w:hover{background:var(--wine2);}\n.ra.o{background:transparent;color:rgba(255,255,255,.3);border-color:rgba(255,255,255,.1);}\n.ra.o:hover{border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.6);}\n.btn-restart{background:none;border:none;color:rgba(255,255,255,.2);font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.15em;text-decoration:underline;cursor:pointer;margin-top:16px;}\n.err{display:none;max-width:560px;width:100%;border:1px solid rgba(192,155,74,.2);padding:14px;margin-bottom:16px;font-size:10px;line-height:1.7;color:var(--gold2);text-align:center;}\n.err.on{display:block;}\n@media(max-width:480px){.page-title{font-size:40px;}.gc-name{font-size:18px;}.country-grid{grid-template-columns:repeat(2,1fr);}}\n<\/style>\n<\/head>\n\n<body style=\"margin:0;padding:0;background:#080604;\">\n<div id=\"app\">\n\n<section class=\"screen active\" id=\"s1\">\n  <div class=\"eyebrow\">The Life Sommelier Method<\/div>\n  <h1 class=\"page-title\">Tu <em>Uva<\/em><br>Emocional<\/h1>\n  <p class=\"page-sub\">Responde 6 preguntas y descubre las 5 uvas que mejor definen c\u00f3mo est\u00e1s viviendo ahora mismo.<\/p>\n  <div class=\"grape-preview\">\n    <span class=\"gp-pill\">\u2460 Tu uva<\/span>\n    <span class=\"gp-pill\">\u2461 Segunda<\/span>\n    <span class=\"gp-pill\">\u2462 Tercera<\/span>\n    <span class=\"gp-pill\">\u2463 Cuarta<\/span>\n    <span class=\"gp-pill\">\u2464 Quinta<\/span>\n  <\/div>\n  <p class=\"landing-hook\">\u00abElegimos el vino por lo que queremos vivir.<br>Primero descubre qu\u00e9 uva eres t\u00fa.\u00bb<\/p>\n  <button class=\"btn-gold\" onclick=\"goTo('s2')\"><span>Descubrir mis uvas<\/span><\/button>\n  <p class=\"footnote\">Gratis \u00b7 Personalizado \u00b7 Con vinos de tu pa\u00eds<\/p>\n<\/section>\n\n<section class=\"screen\" id=\"s2\">\n  <div class=\"eyebrow\">Antes de empezar<\/div>\n  <h2 class=\"page-title\" style=\"font-size:clamp(32px,5vw,52px);margin-bottom:40px;\">Dos datos r\u00e1pidos<\/h2>\n  <div class=\"form-block\">\n    <label class=\"form-label\">\u00bfDe qu\u00e9 pa\u00eds eres?<\/label>\n    <p style=\"font-family:'Cormorant Garamond',serif;font-style:italic;font-size:13px;color:var(--faded);margin-bottom:16px;\">Lo usaremos para recomendarte vinos accesibles de tu zona.<\/p>\n    <div class=\"country-grid\" id=\"country-grid\"><\/div>\n    <div style=\"margin-bottom:12px;\">\n      <label class=\"form-label\">\u00bfTu pa\u00eds no est\u00e1? Escr\u00edbelo:<\/label>\n      <input class=\"form-input\" type=\"text\" id=\"country-custom\" placeholder=\"Escribe tu pa\u00eds...\" oninput=\"setCustomCountry(this.value)\">\n    <\/div>\n    <hr class=\"form-sep\">\n    <label class=\"form-label\">Tu nombre<\/label>\n    <input class=\"form-input\" type=\"text\" id=\"name-input\" placeholder=\"\u00bfC\u00f3mo te llamas?\">\n    <label class=\"form-label\">Tu email<\/label>\n    <p style=\"font-family:'Cormorant Garamond',serif;font-style:italic;font-size:13px;color:var(--faded);margin-bottom:16px;\">Te enviamos tu perfil de uva emocional completo y gratuito.<\/p>\n    <input class=\"form-input\" type=\"email\" id=\"email-input\" placeholder=\"tucorreo@ejemplo.com\">\n    <p class=\"privacy-note\">Sin spam. Puedes darte de baja cuando quieras.<br>Al continuar aceptas recibir contenido del M\u00e9todo Sommelier de Vida.<\/p>\n    <br>\n    <button class=\"btn-gold\" id=\"btn-s2\" onclick=\"submitS2()\" style=\"width:100%;margin-top:8px;\"><span id=\"btn-s2-txt\">Continuar al test \u2192<\/span><\/button>\n    <p class=\"saving-msg\" id=\"saving-msg\">\u23f3 Guardando tu email&#8230;<\/p>\n  <\/div>\n<\/section>\n\n<section class=\"screen\" id=\"s3\">\n  <div class=\"prog-wrap\">\n    <div class=\"prog-track\"><div class=\"prog-fill\" id=\"prog-fill\" style=\"width:0%\"><\/div><\/div>\n    <div class=\"prog-label\" id=\"prog-label\">0 \/ 6 respondidas<\/div>\n  <\/div>\n  <p style=\"font-family:'Playfair Display',serif;font-style:italic;font-size:18px;color:rgba(255,255,255,.4);margin-bottom:40px;max-width:480px;text-align:center;\">Responde con lo primero que sientas. No hay respuestas correctas.<\/p>\n  <div id=\"q-container\"><\/div>\n  <button class=\"btn-wine\" id=\"btn-gen\" onclick=\"generate()\" style=\"opacity:.25;pointer-events:none;margin-top:16px;\">Revelar mis uvas<\/button>\n<\/section>\n\n<section class=\"screen\" id=\"s4\">\n  <span class=\"vine-anim\">\ud83c\udf47<\/span>\n  <p class=\"loading-h\">Analizando tu cosecha<span class=\"dots\"><span>.<\/span><span>.<\/span><span>.<\/span><\/span><\/p>\n  <p class=\"loading-sub\">Identificando tus uvas emocionales<\/p>\n<\/section>\n\n<section class=\"screen\" id=\"s5\">\n  <div class=\"eyebrow\">Tu perfil de uva emocional<\/div>\n  <div class=\"result-intro\"><p id=\"result-intro-text\"><\/p><\/div>\n  <div class=\"err\" id=\"err-box\"><\/div>\n  <div class=\"grape-list\" id=\"grape-list\"><\/div>\n  <div class=\"result-cta\">\n    <p>\u00abEl vino que eliges no es casualidad.<br>Es una conversaci\u00f3n entre lo que eres<br>y lo que quieres vivir.\u00bb<br><br><em style=\"font-size:12px;letter-spacing:.1em;\">\u2014 M\u00e9todo Sommelier de Vida<\/em><\/p>\n    <a class=\"ra w\" href=\"#\" id=\"btn-libro\" target=\"_blank\">\u25c6 Descubrir el M\u00e9todo Sommelier de Vida<\/a>\n  <\/div>\n  <div class=\"result-actions\">\n    <button class=\"ra w\" id=\"btn-send-pdf\" onclick=\"sendPDFByEmail()\">\u2709 Enviarme el resultado por email<\/button>\n    <button class=\"ra light\" onclick=\"shareResult()\">\u2197 Compartir mi perfil completo<\/button>\n    <button class=\"ra o\" onclick=\"downloadPDF()\">\u2193 Descargar como archivo<\/button>\n    <button class=\"ra o\" onclick=\"resetAll()\">Hacer el test de nuevo<\/button>\n  <\/div>\n  <button class=\"btn-restart\" onclick=\"resetAll()\">Empezar de nuevo<\/button>\n<\/section>\n\n<\/div>\n\n<script>\n\/* \u2550\u2550 CONFIG \u2550\u2550 *\/\nconst ANTHROPIC_KEY       = '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';\nconst SYSTEME_API_KEY     = 'ghiwuvw9oeky2t48vfwiootrizw3xjs6w24vr8yu710crknvf3xm1fqn3k7kzfrx';\nconst LIBRO_URL           = 'https:\/\/amzn.to\/48rAFZi';\nconst PROXY_URL           = 'https:\/\/yellow-field-7369.masqueunacata.workers.dev';\nconst EMAILJS_SERVICE_ID  = 'service_gx9epem';\nconst EMAILJS_TEMPLATE_ID = 'template_9t5fgtr';\nconst EMAILJS_PUBLIC_KEY  = '6N6GiR_wZQGTMSSky';\n\nconst COUNTRIES = ['Espa\u00f1a','Francia','Italia','Portugal','Argentina','Chile','M\u00e9xico','Estados Unidos','Alemania','Austria','Australia','Sud\u00e1frica','Uruguay','Grecia','Hungr\u00eda'];\n\nconst QS = [\n  { id:'q1', n:'01', q:'\u00bfQu\u00e9 buscas sentir m\u00e1s en tu vida ahora mismo?', opts:['Calma y silencio','Intensidad y pasi\u00f3n','Claridad y verdad','Ligereza y juego','Profundidad y sentido','Conexi\u00f3n con otros','Libertad','Renacimiento'] },\n  { id:'q2', n:'02', q:'\u00bfC\u00f3mo describir\u00edas tu energ\u00eda estos d\u00edas?', opts:['Densa y pesada','Fina y delicada','Vibrante y activa','Agotada pero resistente','Contenida y reflexiva','Impulsiva y viva','Serena y estable'] },\n  { id:'q3', n:'03', q:'\u00bfQu\u00e9 lado tuyo predomina ahora?', opts:['El que cuida a otros','El que necesita cuidarse','El que crea y produce','El que observa y piensa','El que se deja llevar','El que lucha y persiste','El que disfruta sin m\u00e1s'] },\n  { id:'q4', n:'04', q:'\u00bfQu\u00e9 emoci\u00f3n est\u00e1 m\u00e1s presente en ti?', opts:['Melancol\u00eda suave','Alegr\u00eda contenida','Rabia transformadora','Nostalgia','Esperanza','Inquietud','Gratitud','Deseo sin nombre'] },\n  { id:'q5', n:'05', q:'\u00bfQu\u00e9 tipo de experiencia te nutre m\u00e1s ahora?', opts:['Silencio y naturaleza','Conversaciones profundas','Arte y belleza','Movimiento y aventura','Rutina y estructura','Sorpresa e imprevistos','Soledad creativa'] },\n  { id:'q6', n:'06', q:'Si tu vida fuera un vino, \u00bfqu\u00e9 le falta ahora mismo?', opts:['M\u00e1s cuerpo y presencia','M\u00e1s frescura y ligereza','M\u00e1s complejidad y matices','M\u00e1s equilibrio','M\u00e1s tiempo para abrirse','M\u00e1s car\u00e1cter propio','M\u00e1s final largo'] }\n];\n\nvar answers = {};\nvar selectedCountry = '';\nvar userEmail = '';\nvar userName = '';\nvar generatedGrapes = null;\n\n\/* \u2550\u2550 NAV \u2550\u2550 *\/\nfunction goTo(id) {\n  document.querySelectorAll('.screen').forEach(function(s) { s.classList.remove('active'); });\n  document.getElementById(id).classList.add('active');\n  document.getElementById('app').scrollTo(0, 0);\n}\n\n\/* \u2550\u2550 PA\u00cdSES \u2550\u2550 *\/\nfunction buildCountries() {\n  var grid = document.getElementById('country-grid');\n  grid.innerHTML = '';\n  COUNTRIES.forEach(function(c) {\n    var b = document.createElement('button');\n    b.className = 'country-btn';\n    b.textContent = c;\n    b.dataset.country = c;\n    grid.appendChild(b);\n  });\n  grid.addEventListener('click', function(e) {\n    var btn = e.target.closest('.country-btn');\n    if (!btn) return;\n    document.querySelectorAll('.country-btn').forEach(function(b) { b.classList.remove('on'); });\n    btn.classList.add('on');\n    selectedCountry = btn.dataset.country;\n    document.getElementById('country-custom').value = '';\n  });\n}\n\nfunction setCustomCountry(val) {\n  selectedCountry = val.trim();\n  document.querySelectorAll('.country-btn').forEach(function(b) { b.classList.remove('on'); });\n}\n\n\/* \u2550\u2550 SUBMIT S2 \u2014 ESPERA A QUE EL EMAIL SE GUARDE \u2550\u2550 *\/\nasync function submitS2() {\n  var email = document.getElementById('email-input').value.trim();\n  var name  = document.getElementById('name-input').value.trim();\n  if (!selectedCountry) { alert('Por favor selecciona o escribe tu pa\u00eds.'); return; }\n  if (!email || !email.includes('@')) { alert('Por favor introduce un email v\u00e1lido.'); return; }\n\n  \/\/ Bloquear bot\u00f3n y mostrar estado\n  var btn = document.getElementById('btn-s2');\n  var btnTxt = document.getElementById('btn-s2-txt');\n  var savingMsg = document.getElementById('saving-msg');\n  btn.disabled = true;\n  btnTxt.textContent = 'Guardando...';\n  savingMsg.classList.add('on');\n\n  userEmail = email;\n  userName  = name;\n\n  \/\/ GUARDAR EMAIL \u2014 esperamos la respuesta antes de continuar\n  var saved = await saveToSysteme(email, name, selectedCountry);\n\n  \/\/ Si falla, intentamos una segunda vez\n  if (!saved) {\n    await new Promise(function(r) { setTimeout(r, 1500); });\n    saved = await saveToSysteme(email, name, selectedCountry);\n  }\n\n  \/\/ Tanto si guard\u00f3 como si no (no bloqueamos al usuario),\n  \/\/ pero el email queda en localStorage como red de seguridad\n  try {\n    var pending = JSON.parse(localStorage.getItem('pending_emails') || '[]');\n    if (!saved) {\n      pending.push({ email: email, country: selectedCountry, ts: Date.now() });\n      localStorage.setItem('pending_emails', JSON.stringify(pending));\n    }\n  } catch(e) {}\n\n  \/\/ Restaurar bot\u00f3n y avanzar\n  btn.disabled = false;\n  btnTxt.textContent = 'Continuar al test \u2192';\n  savingMsg.classList.remove('on');\n  goTo('s3');\n}\n\n\/* \u2550\u2550 MAPA DE PA\u00cdSES A C\u00d3DIGO ISO \u2550\u2550 *\/\nvar COUNTRY_ISO = {\n  'Espa\u00f1a':'ES','Francia':'FR','Italia':'IT','Portugal':'PT',\n  'Argentina':'AR','Chile':'CL','M\u00e9xico':'MX','Estados Unidos':'US',\n  'Alemania':'DE','Austria':'AT','Australia':'AU','Sud\u00e1frica':'ZA',\n  'Uruguay':'UY','Grecia':'GR','Hungr\u00eda':'HU'\n};\n\n\/* \u2550\u2550 GUARDAR EN SYSTEME.IO \u2014 devuelve true\/false \u2550\u2550 *\/\nasync function saveToSysteme(email, name, country) {\n  try {\n    var isoCode = COUNTRY_ISO[country] || '';\n    var nameParts = (name || '').trim().split(' ');\n    var firstName = nameParts[0] || '';\n    var lastName  = nameParts.slice(1).join(' ') || '';\n\n    var body = {\n      email:     email,\n      firstName: firstName,\n      lastName:  lastName,\n      tags: [\n        { name: 'App-Tu-uva-Emocional' },\n        { name: 'uva-emocional' },\n        { name: 'pais-' + country.toLowerCase().replace(\/\\s\/g,'-').replace(\/[^a-z0-9-]\/g,'') }\n      ]\n    };\n\n    \/\/ A\u00f1adir pa\u00eds como campo nativo si tenemos c\u00f3digo ISO\n    if (isoCode) {\n      body.fields = [{ slug: 'country', value: isoCode }];\n    }\n\n    var res = await fetch(PROXY_URL, {\n      method: 'POST',\n      headers: { 'Content-Type': 'application\/json', 'X-API-Key': SYSTEME_API_KEY },\n      body: JSON.stringify(body)\n    });\n\n    \/\/ Si falla el campo country (422 por fields), reintentar sin fields\n    if (res.status === 422) {\n      var txt = await res.text();\n      if (txt.indexOf('fields') !== -1 || txt.indexOf('country') !== -1) {\n        var bodySimple = {\n          email:     email,\n          firstName: firstName,\n          lastName:  lastName,\n          tags: [\n            { name: 'App-Tu-uva-Emocional' },\n            { name: 'uva-emocional' },\n            { name: 'pais-' + country.toLowerCase().replace(\/\\s\/g,'-').replace(\/[^a-z0-9-]\/g,'') }\n          ]\n        };\n        res = await fetch(PROXY_URL, {\n          method: 'POST',\n          headers: { 'Content-Type': 'application\/json', 'X-API-Key': SYSTEME_API_KEY },\n          body: JSON.stringify(bodySimple)\n        });\n      }\n    }\n\n    return res.ok || res.status === 422;\n  } catch(e) {\n    console.warn('saveToSysteme error:', e.message);\n    return false;\n  }\n}\n\n\/* \u2550\u2550 ACTUALIZAR CON LAS UVAS (sin bloquear) \u2550\u2550 *\/\nfunction updateSystemeWithGrapes(email, grapes) {\n  if (!email || !grapes || !grapes[0]) return;\n  var topGrape  = grapes[0].name || '';\n  var isoCode   = COUNTRY_ISO[selectedCountry] || '';\n  var nameParts = (userName || '').trim().split(' ');\n  var firstName = nameParts[0] || '';\n  var lastName  = nameParts.slice(1).join(' ') || '';\n\n  var body = {\n    email:     email,\n    firstName: firstName,\n    lastName:  lastName,\n    tags: [\n      { name: 'App-Tu-uva-Emocional' },\n      { name: 'uva-emocional' },\n      { name: 'uva-' + topGrape.toLowerCase().replace(\/\\s\/g,'-').replace(\/[^a-z0-9-]\/g,'') },\n      { name: 'pais-' + selectedCountry.toLowerCase().replace(\/\\s\/g,'-').replace(\/[^a-z0-9-]\/g,'') }\n    ]\n  };\n  if (isoCode) { body.fields = [{ slug: 'country', value: isoCode }]; }\n\n  fetch(PROXY_URL, {\n    method: 'POST',\n    headers: { 'Content-Type': 'application\/json', 'X-API-Key': SYSTEME_API_KEY },\n    body: JSON.stringify(body)\n  }).catch(function() {});\n}\n\n\/* \u2550\u2550 PREGUNTAS \u2550\u2550 *\/\nfunction buildQs() {\n  var c = document.getElementById('q-container');\n  c.innerHTML = '';\n  QS.forEach(function(q) {\n    var d = document.createElement('div');\n    d.className = 'qblock';\n    d.id = 'qb-' + q.id;\n    var optsHTML = q.opts.map(function(o) {\n      return '<button class=\"qopt\" data-q=\"' + q.id + '\" data-val=\"' + o.replace(\/\"\/g,'&quot;') + '\">' + o + '<\/button>';\n    }).join('');\n    d.innerHTML = '<p class=\"q-num\">Pregunta ' + q.n + '<\/p><p class=\"q-text\">' + q.q + '<\/p><div class=\"q-opts\">' + optsHTML + '<\/div>';\n    c.appendChild(d);\n  });\n}\n\ndocument.getElementById('q-container').addEventListener('click', function(e) {\n  var btn = e.target.closest('.qopt');\n  if (!btn) return;\n  var qId = btn.dataset.q;\n  var val  = btn.dataset.val;\n  document.querySelectorAll('.qopt[data-q=\"' + qId + '\"]').forEach(function(b) { b.classList.remove('on'); });\n  btn.classList.add('on');\n  answers[qId] = val;\n  document.getElementById('qb-' + qId).classList.add('done');\n  var done = Object.keys(answers).length;\n  document.getElementById('prog-fill').style.width = (done \/ QS.length * 100) + '%';\n  document.getElementById('prog-label').textContent = done + ' \/ ' + QS.length + ' respondidas';\n  if (done === QS.length) {\n    document.getElementById('btn-gen').style.opacity = '1';\n    document.getElementById('btn-gen').style.pointerEvents = 'all';\n  }\n});\n\n\/* \u2550\u2550 GENERAR CON IA \u2550\u2550 *\/\nasync function generate() {\n  if (Object.keys(answers).length < QS.length) return;\n  goTo('s4');\n\n  var prompt = 'Eres el M\u00e9todo Sommelier de Vida. Tu filosof\u00eda: elegimos el vino por lo que queremos vivir. Cada uva tiene un arquetipo emocional.\\n\\n' +\n    'El usuario es de ' + selectedCountry + ' y ha respondido:\\n' +\n    '- Busca sentir: ' + answers.q1 + '\\n' +\n    '- Energ\u00eda: ' + answers.q2 + '\\n' +\n    '- Lado predominante: ' + answers.q3 + '\\n' +\n    '- Emoci\u00f3n presente: ' + answers.q4 + '\\n' +\n    '- Le nutre: ' + answers.q5 + '\\n' +\n    '- Le falta a su vida-vino: ' + answers.q6 + '\\n\\n' +\n    'Arquetipos: Pinot Noir=sensibilidad y b\u00fasqueda de belleza, Cabernet Sauvignon=estructura y liderazgo, Tempranillo=tradici\u00f3n y calidez, Garnacha=generosidad y alegr\u00eda, Riesling=precisi\u00f3n y frescura, Chardonnay=adaptabilidad y sofisticaci\u00f3n, Syrah=pasi\u00f3n e intensidad, Nebbiolo=melancol\u00eda y elegancia, Malbec=car\u00e1cter y transformaci\u00f3n, Sangiovese=vitalidad y autenticidad, Albari\u00f1o=ligereza y presencia, Verdejo=honestidad y frescura, Moscatel=placer y gratitud, Monastrell=resistencia y profundidad, Menc\u00eda=introversi\u00f3n creativa.\\n\\n' +\n    'Devuelve SOLO JSON sin markdown:\\n' +\n    '{\"intro\":\"frase personal\",\"grapes\":[{\"rank\":1,\"name\":\"uva\",\"archetype\":\"arquetipo\",\"why\":\"por qu\u00e9 en 1-2 frases\",\"description\":\"caracter\u00edsticas en 2-3 frases\",\"traits\":[\"r1\",\"r2\",\"r3\",\"r4\"],\"wines_country\":\"vinos de ' + selectedCountry + ' con precio\"},{\"rank\":2,\"name\":\"\"},{\"rank\":3,\"name\":\"\"},{\"rank\":4,\"name\":\"\"},{\"rank\":5,\"name\":\"\"}]}';\n\n  try {\n    var res = await fetch('https:\/\/api.anthropic.com\/v1\/messages', {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application\/json',\n        'x-api-key': ANTHROPIC_KEY,\n        'anthropic-version': '2023-06-01',\n        'anthropic-dangerous-direct-browser-access': 'true'\n      },\n      body: JSON.stringify({\n        model: 'claude-haiku-4-5-20251001',\n        max_tokens: 1800,\n        messages: [{ role: 'user', content: prompt }]\n      })\n    });\n\n    if (!res.ok) {\n      var errData = await res.json().catch(function() { return {}; });\n      throw new Error('API ' + res.status + ': ' + (errData.error ? errData.error.message : 'error'));\n    }\n\n    var data   = await res.json();\n    var raw    = data.content[0].text.trim();\n    var match  = raw.match(\/\\{[\\s\\S]*\\}\/);\n    var parsed = JSON.parse(match ? match[0] : raw);\n\n    generatedGrapes = parsed;\n    updateSystemeWithGrapes(userEmail, parsed.grapes);\n    renderResult(parsed);\n    goTo('s5');\n\n  } catch(err) {\n    console.error(err);\n    var fb = buildFallback();\n    generatedGrapes = fb;\n    renderResult(fb);\n    goTo('s5');\n    var eb = document.getElementById('err-box');\n    eb.innerHTML = 'Resultado de ejemplo (error temporal IA).<br><small style=\"opacity:.5\">' + err.message + '<\/small>';\n    eb.classList.add('on');\n  }\n}\n\n\/* \u2550\u2550 FALLBACK \u2550\u2550 *\/\nfunction buildFallback() {\n  return {\n    intro: 'Tu perfil emocional se acerca a las uvas de mayor car\u00e1cter y sensibilidad. Buscas vinos que te cuenten algo.',\n    grapes: [\n      { rank:1, name:'Pinot Noir', archetype:'Sensibilidad y b\u00fasqueda de belleza', why:'Tu b\u00fasqueda de profundidad resuena con la delicadeza compleja del Pinot Noir.', description:'Cuerpo ligero-medio, elegante, aromas de fruta roja, tierra y especias. Sedoso, acidez viva, final largo.', traits:['Elegante','Sensible','Complejo','Evocador'], wines_country:'Borgo\u00f1a (Francia). Espa\u00f1a: Catalu\u00f1a. Argentina: Patagonia. Precio: 12-25\u20ac.' },\n      { rank:2, name:'Tempranillo', archetype:'Tradici\u00f3n, calidez y autenticidad', why:'Tu necesidad de conexi\u00f3n encuentra eco en el Tempranillo, uva del equilibrio.', description:'Cuerpo medio-alto, ciruela, cuero y vainilla. C\u00e1lido, estructurado, taninos maduros.', traits:['C\u00e1lido','Equilibrado','Aut\u00e9ntico','Familiar'], wines_country:'Espa\u00f1a: Rioja, Ribera del Duero. Precio: 8-20\u20ac.' },\n      { rank:3, name:'Garnacha', archetype:'Generosidad y alegr\u00eda expansiva', why:'Tu energ\u00eda conecta con la Garnacha, uva del placer sin culpa.', description:'Cuerpo medio, frutas rojas maduras, especias. Generoso, suave en taninos.', traits:['Generosa','Festiva','Accesible','C\u00e1lida'], wines_country:'Espa\u00f1a: Priorat, Campo de Borja. Precio: 6-18\u20ac.' },\n      { rank:4, name:'Syrah', archetype:'Pasi\u00f3n, intensidad y transformaci\u00f3n', why:'Tu energ\u00eda densa tiene la huella de la Syrah: intensa y transformadora.', description:'Vinos oscuros, mora, pimienta negra. Taninos firmes, largo final.', traits:['Intensa','Apasionada','Oscura','Transformadora'], wines_country:'Espa\u00f1a: Jumilla. Francia: R\u00f3dano. Precio: 10-22\u20ac.' },\n      { rank:5, name:'Albari\u00f1o', archetype:'Ligereza, presencia y frescura', why:'Tambi\u00e9n tienes una cara luminosa, representada por el Albari\u00f1o.', description:'Blancos frescos, melocot\u00f3n, c\u00edtricos. Acidez vibrante, muy expresivo.', traits:['Fresco','Expresivo','Luminoso','Presente'], wines_country:'Espa\u00f1a: R\u00edas Baixas. Portugal: Vinho Verde. Precio: 9-16\u20ac.' }\n    ]\n  };\n}\n\n\/* \u2550\u2550 RENDER \u2550\u2550 *\/\nfunction renderResult(data) {\n  document.getElementById('result-intro-text').textContent = data.intro || '';\n  document.getElementById('btn-libro').href = LIBRO_URL;\n  var list = document.getElementById('grape-list');\n  list.innerHTML = '';\n  (data.grapes || []).forEach(function(g) {\n    var card = document.createElement('div');\n    card.className = 'grape-card';\n    var traitsHTML = (g.traits || []).map(function(t) { return '<span class=\"gc-char\">' + t + '<\/span>'; }).join('');\n    card.innerHTML =\n      '<div class=\"gc-rank\">' + g.rank + '<\/div>' +\n      '<div class=\"gc-body\">' +\n        '<div class=\"gc-top\">' +\n          '<span class=\"gc-name\">' + (g.name||'') + '<\/span>' +\n          '<span class=\"gc-why\">' + (g.why ? '\u2014 ' + g.why : '') + '<\/span>' +\n        '<\/div>' +\n        '<span class=\"gc-archetype\">' + (g.archetype||'') + '<\/span>' +\n        '<p class=\"gc-desc\">' + (g.description||'') + '<\/p>' +\n        '<div class=\"gc-chars\">' + traitsHTML + '<\/div>' +\n        '<div class=\"gc-wines\"><strong>Vinos de ' + (selectedCountry||'tu zona') + '<\/strong>' + (g.wines_country||'') + '<\/div>' +\n      '<\/div>';\n    list.appendChild(card);\n  });\n}\n\n\/* \u2550\u2550 COMPARTIR \u2550\u2550 *\/\nfunction shareResult() {\n  if (!generatedGrapes || !generatedGrapes.grapes) return;\n  var g = generatedGrapes.grapes;\n  var date = new Date().toLocaleDateString('es-ES');\n  var txt =\n    '\ud83c\udf47 Mi Perfil de Uva Emocional\\n' +\n    'M\u00e9todo Sommelier de Vida \u00b7 ' + date + '\\n\\n' +\n    (generatedGrapes.intro||'') + '\\n\\n' +\n    '\u2501\u2501\u2501 MIS 5 UVAS \u2501\u2501\u2501\\n\\n' +\n    '\u2460 ' + (g[0]&&g[0].name||'') + ' \u2014 ' + (g[0]&&g[0].archetype||'') + '\\n\"' + (g[0]&&g[0].why||'') + '\"\\n\\n' +\n    '\u2461 ' + (g[1]&&g[1].name||'') + ' \u2014 ' + (g[1]&&g[1].archetype||'') + '\\n\"' + (g[1]&&g[1].why||'') + '\"\\n\\n' +\n    '\u2462 ' + (g[2]&&g[2].name||'') + ' \u2014 ' + (g[2]&&g[2].archetype||'') + '\\n\"' + (g[2]&&g[2].why||'') + '\"\\n\\n' +\n    '\u2463 ' + (g[3]&&g[3].name||'') + ' \u2014 ' + (g[3]&&g[3].archetype||'') + '\\n' +\n    '\u2464 ' + (g[4]&&g[4].name||'') + ' \u2014 ' + (g[4]&&g[4].archetype||'') + '\\n\\n' +\n    'Vinos en ' + selectedCountry + ':\\n' +\n    '\ud83c\udf77 ' + (g[0]&&g[0].name||'') + ': ' + (g[0]&&g[0].wines_country||'') + '\\n' +\n    '\ud83c\udf77 ' + (g[1]&&g[1].name||'') + ': ' + (g[1]&&g[1].wines_country||'') + '\\n\\n' +\n    '\"Elegimos el vino por lo que queremos vivir.\"\\n\u2014 M\u00e9todo Sommelier de Vida\\n\\n' +\n    '\u00bfCu\u00e1les son las tuyas? \u2192 ' + window.location.href;\n\n  if (navigator.share) {\n    navigator.share({ title:'\ud83c\udf47 Mi Perfil de Uva Emocional', text:txt, url:window.location.href }).catch(function(){});\n  } else {\n    navigator.clipboard.writeText(txt).then(function() { alert('\u2713 Copiado. P\u00e9galo donde quieras.'); });\n  }\n}\n\n\/* \u2550\u2550 EMAIL \u2550\u2550 *\/\nasync function sendPDFByEmail() {\n  if (!generatedGrapes || !userEmail) { alert('Completa el test primero.'); return; }\n  var btn = document.getElementById('btn-send-pdf');\n  if (btn) { btn.textContent = 'Enviando...'; btn.style.opacity = '.6'; btn.style.pointerEvents = 'none'; }\n  try {\n    await sendViaEmailJS(userEmail, generatedGrapes);\n    if (btn) { btn.textContent = '\u2713 Enviado a ' + userEmail; btn.style.background = '#2a5a2a'; }\n  } catch(err) {\n    console.error('Email error:', err);\n    if (btn) { btn.textContent = 'Error \u2014 descargando archivo'; btn.style.pointerEvents = 'all'; btn.style.opacity = '1'; btn.onclick = downloadPDF; }\n    downloadPDF();\n  }\n}\n\nasync function sendViaEmailJS(toEmail, data) {\n  var g = data.grapes || [];\n  var grapesSummary = g.map(function(grape) {\n    return grape.rank + '. ' + grape.name + ' (' + grape.archetype + ')\\n' + grape.why + '\\nVinos: ' + grape.wines_country;\n  }).join('\\n\\n');\n  var res = await fetch('https:\/\/api.emailjs.com\/api\/v1.0\/email\/send', {\n    method: 'POST',\n    headers: { 'Content-Type': 'application\/json' },\n    body: JSON.stringify({\n      service_id: EMAILJS_SERVICE_ID,\n      template_id: EMAILJS_TEMPLATE_ID,\n      user_id: EMAILJS_PUBLIC_KEY,\n      template_params: {\n        to_email:    toEmail,\n        to_name:     toEmail.split('@')[0],\n        country:     selectedCountry,\n        intro:       data.intro,\n        uva_1:       (g[0]?g[0].name:'') + ' \u2014 ' + (g[0]?g[0].archetype:''),\n        uva_1_why:   g[0]?g[0].why:'',\n        uva_1_desc:  g[0]?g[0].description:'',\n        uva_1_vinos: g[0]?g[0].wines_country:'',\n        uva_2:       (g[1]?g[1].name:'') + ' \u2014 ' + (g[1]?g[1].archetype:''),\n        uva_2_why:   g[1]?g[1].why:'',\n        uva_2_desc:  g[1]?g[1].description:'',\n        uva_2_vinos: g[1]?g[1].wines_country:'',\n        uva_3:       (g[2]?g[2].name:'') + ' \u2014 ' + (g[2]?g[2].archetype:''),\n        uva_3_why:   g[2]?g[2].why:'',\n        uva_3_desc:  g[2]?g[2].description:'',\n        uva_4:       (g[3]?g[3].name:'') + ' \u2014 ' + (g[3]?g[3].archetype:''),\n        uva_4_why:   g[3]?g[3].why:'',\n        uva_5:       (g[4]?g[4].name:'') + ' \u2014 ' + (g[4]?g[4].archetype:''),\n        uva_5_why:   g[4]?g[4].why:'',\n        grapes_full: grapesSummary,\n        libro_url:   LIBRO_URL,\n        date:        new Date().toLocaleDateString('es-ES',{day:'2-digit',month:'long',year:'numeric'})\n      }\n    })\n  });\n  if (!res.ok) { var t = await res.text(); throw new Error('EmailJS: ' + t); }\n}\n\n\/* \u2550\u2550 DESCARGA \u2550\u2550 *\/\nfunction downloadPDF() {\n  if (!generatedGrapes) return;\n  var g = generatedGrapes.grapes || [];\n  var date = new Date().toLocaleDateString('es-ES',{day:'2-digit',month:'long',year:'numeric'});\n  var sections = g.map(function(grape) {\n    return '<div style=\"margin-bottom:28px;padding:20px;border-left:3px solid #c09b4a;background:#0f0c08;\">' +\n      '<div style=\"display:flex;align-items:baseline;gap:12px;margin-bottom:6px;\"><span style=\"font-size:28px;font-weight:900;color:#c09b4a;font-family:Georgia,serif;\">' + grape.rank + '<\/span>' +\n      '<span style=\"font-size:20px;font-weight:700;color:#f0e8d8;font-family:Georgia,serif;\">' + grape.name + '<\/span><\/div>' +\n      '<p style=\"font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#6b1f2a;margin-bottom:10px;\">' + grape.archetype + '<\/p>' +\n      '<p style=\"font-size:13px;color:#c09b4a;font-style:italic;margin-bottom:10px;\">\"' + grape.why + '\"<\/p>' +\n      '<p style=\"font-size:12px;color:#a09080;line-height:1.7;margin-bottom:12px;\">' + grape.description + '<\/p>' +\n      '<div style=\"background:#0a0806;padding:12px;border-top:1px solid #2a2018;\">' +\n      '<p style=\"font-size:9px;letter-spacing:2px;text-transform:uppercase;color:#6b1f2a;margin-bottom:6px;\">Vinos en ' + selectedCountry + '<\/p>' +\n      '<p style=\"font-size:12px;color:#d4b46a;line-height:1.6;\">' + grape.wines_country + '<\/p><\/div><\/div>';\n  }).join('');\n  var html = '<!DOCTYPE html><html><head><meta charset=\"UTF-8\"><title>Mi Uva Emocional<\/title><\/head>' +\n    '<body style=\"margin:0;padding:0;background:#080604;font-family:Georgia,serif;\">' +\n    '<div style=\"max-width:600px;margin:0 auto;background:#080604;padding:40px 32px;\">' +\n    '<div style=\"text-align:center;border-bottom:1px solid #c09b4a;padding-bottom:24px;margin-bottom:32px;\">' +\n    '<p style=\"font-size:9px;letter-spacing:4px;text-transform:uppercase;color:#c09b4a;margin-bottom:12px;\">M\u00c9TODO SOMMELIER DE VIDA<\/p>' +\n    '<h1 style=\"font-size:36px;font-weight:900;color:#f0e8d8;margin-bottom:8px;line-height:1;\">Tu Perfil de<br><em style=\"color:#d4b46a;\">Uva Emocional<\/em><\/h1>' +\n    '<p style=\"font-size:11px;color:#7a6e5e;\">' + date + ' \u00b7 ' + selectedCountry + '<\/p><\/div>' +\n    '<div style=\"text-align:center;margin-bottom:36px;padding:20px;border:1px solid rgba(192,155,74,.2);\">' +\n    '<p style=\"font-size:15px;font-style:italic;color:#d4b46a;line-height:1.8;\">' + generatedGrapes.intro + '<\/p><\/div>' +\n    sections +\n    '<div style=\"text-align:center;margin-top:40px;padding-top:24px;border-top:1px solid rgba(192,155,74,.2);\">' +\n    '<p style=\"font-size:13px;font-style:italic;color:#7a6e5e;line-height:1.8;\">\"Elegimos el vino por lo que queremos vivir.<br>Ahora ya sabes qu\u00e9 uva eres t\u00fa.\"<\/p>' +\n    '<p style=\"font-size:9px;letter-spacing:2px;text-transform:uppercase;color:#3a3228;margin-top:12px;\">M\u00e9todo Sommelier de Vida<\/p><\/div>' +\n    '<\/div><\/body><\/html>';\n  var blob = new Blob([html], {type:'text\/html;charset=utf-8'});\n  var url = URL.createObjectURL(blob);\n  var a = document.createElement('a');\n  a.href = url; a.download = 'mi-uva-emocional.html'; a.click();\n  URL.revokeObjectURL(url);\n}\n\n\/* \u2550\u2550 RESET \u2550\u2550 *\/\nfunction resetAll() {\n  answers = {};\n  selectedCountry = '';\n  userEmail = '';\n  userName = '';\n  generatedGrapes = null;\n  document.getElementById('prog-fill').style.width = '0%';\n  document.getElementById('prog-label').textContent = '0 \/ 6 respondidas';\n  document.getElementById('btn-gen').style.opacity = '.25';\n  document.getElementById('btn-gen').style.pointerEvents = 'none';\n  document.getElementById('email-input').value = '';\n  document.getElementById('name-input').value = '';\n  document.getElementById('country-custom').value = '';\n  document.getElementById('btn-s2-txt').textContent = 'Continuar al test \u2192';\n  document.getElementById('btn-s2').disabled = false;\n  document.getElementById('saving-msg').classList.remove('on');\n  document.querySelectorAll('.country-btn').forEach(function(b) { b.classList.remove('on'); });\n  document.getElementById('err-box').classList.remove('on');\n  var btn = document.getElementById('btn-send-pdf');\n  if (btn) { btn.textContent = '\u2709 Enviarme el resultado por email'; btn.style.opacity='1'; btn.style.pointerEvents='all'; btn.style.background=''; btn.onclick = sendPDFByEmail; }\n  buildQs();\n  goTo('s1');\n}\n\n\/* \u2550\u2550 INIT \u2550\u2550 *\/\nbuildCountries();\nbuildQs();\ndocument.getElementById('btn-libro').href = LIBRO_URL;\n<\/script>\n<\/body>\n<\/html>\n\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>","protected":false},"excerpt":{"rendered":"<p>Tu Uva Emocional \u2014 M\u00e9todo Sommelier de Vida M\u00e9todo Sommelier de Vida Tu UvaEmocional Responde 6 preguntas y descubre las 5 uvas que mejor definen c\u00f3mo est\u00e1s viviendo ahora mismo. \u2460 Tu uva \u2461 Segunda \u2462 Tercera \u2463 Cuarta \u2464 Quinta \u00abElegimos el vino por lo que queremos vivir.Primero descubre qu\u00e9 uva eres t\u00fa.\u00bb Descubrir &#8230; <a title=\"tu uva emocional\" class=\"read-more\" href=\"https:\/\/www.metodosommelierdevida.com\/en\/tu-uva-emocional\/\" aria-label=\"Read more about tu uva emocional\">Read more<\/a><\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-746","page","type-page","status-publish"],"_links":{"self":[{"href":"https:\/\/www.metodosommelierdevida.com\/en\/wp-json\/wp\/v2\/pages\/746","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.metodosommelierdevida.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.metodosommelierdevida.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.metodosommelierdevida.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.metodosommelierdevida.com\/en\/wp-json\/wp\/v2\/comments?post=746"}],"version-history":[{"count":19,"href":"https:\/\/www.metodosommelierdevida.com\/en\/wp-json\/wp\/v2\/pages\/746\/revisions"}],"predecessor-version":[{"id":771,"href":"https:\/\/www.metodosommelierdevida.com\/en\/wp-json\/wp\/v2\/pages\/746\/revisions\/771"}],"wp:attachment":[{"href":"https:\/\/www.metodosommelierdevida.com\/en\/wp-json\/wp\/v2\/media?parent=746"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}