{"title":"Crea tu pack","description":"\u003cdiv class=\"astp-root\"\u003e\n\u003cstyle\u003e\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Bebas+Neue\u0026display=swap');\n.astp-root,.astp-root *{font-family:'Bebas Neue',sans-serif !important;letter-spacing:.03em}\n.astp-root #astp-app{max-width:900px;margin:0 auto;color:#0b0b0b;--metal:#0b0b0b;--mtext:#fff}\n.astp-root #astp-app *{box-sizing:border-box}\n.astp-root .astp-h{text-align:center;margin:0 0 6px;font-size:38px;letter-spacing:.04em;text-transform:uppercase}\n.astp-root .astp-sub-h{text-align:center;color:#666;margin:0 0 22px;font-size:18px;letter-spacing:.04em}\n.astp-root #astp-levels{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:22px}\n.astp-root .astp-lv{position:relative;border:2px solid #ddd;background:#fff;padding:18px 10px;cursor:pointer;text-align:center;display:flex;flex-direction:column;gap:2px;transition:.15s}\n.astp-root .astp-lv:hover{transform:translateY(-2px)}\n.astp-root .astp-lv.on{box-shadow:0 8px 22px rgba(0,0,0,.22)}\n.astp-root .astp-lv-k{font-size:26px;text-transform:uppercase;letter-spacing:.05em;line-height:1}\n.astp-root .astp-lv-n{font-size:16px;opacity:.85;letter-spacing:.06em}\n.astp-root .astp-badge{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:#d4af37;color:#2a2200;font-size:13px;letter-spacing:.1em;padding:3px 10px;white-space:nowrap}\n.astp-root #astp-slots{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}\n.astp-root .astp-slot{display:flex;gap:14px;align-items:center;border:1px solid #eee;padding:10px;background:#fafafa}\n.astp-root .astp-thumb{width:64px;height:64px;flex:0 0 64px;background:#e8e8e8 center\/cover no-repeat;display:flex;align-items:center;justify-content:center;color:#aaa;font-size:24px}\n.astp-root .astp-fields{flex:1;display:flex;gap:10px;align-items:center;flex-wrap:wrap}\n.astp-root .astp-slot-n{font-size:15px;text-transform:uppercase;letter-spacing:.1em;color:#888;flex:0 0 100%}\n.astp-root .astp-sel{flex:1;min-width:120px;padding:11px;border:1px solid #ccc;background:#fff;font-size:18px;color:#0b0b0b;letter-spacing:.04em}\n.astp-root .astp-size{flex:0 0 95px;min-width:80px}\n.astp-root .astp-summary{border-top:2px solid #0b0b0b;padding-top:16px}\n.astp-root .astp-row{display:flex;justify-content:space-between;font-size:20px;margin:6px 0;color:#555;letter-spacing:.04em}\n.astp-root .astp-orig{text-decoration:line-through;color:#999}\n.astp-root .astp-row.tot{font-size:30px;color:#0b0b0b;margin-top:8px}\n.astp-root #astp-cta{width:100%;padding:18px;background:var(--metal);color:var(--mtext);border:0;font-size:24px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;margin-top:14px;transition:.15s}\n.astp-root #astp-cta:hover:not(:disabled){filter:brightness(1.08)}\n.astp-root #astp-cta:disabled{background:#bbb;color:#fff;cursor:not-allowed}\n.astp-root .astp-hint{text-align:center;font-size:15px;color:#888;margin-top:10px;letter-spacing:.05em}\n.astp-root .astp-copy{max-width:900px;margin:40px auto 0;border-top:1px solid #eee;padding-top:24px}\n.astp-root .astp-copy h2{font-size:32px;letter-spacing:.04em}\n.astp-root .astp-copy p,.astp-root .astp-copy li{font-size:19px;letter-spacing:.04em;line-height:1.3}\n@media(max-width:600px){.astp-root #astp-levels{gap:6px}.astp-root .astp-lv-k{font-size:21px}.astp-root .astp-thumb{display:none}}\n\u003c\/style\u003e\n\n\u003cdiv id=\"astp-app\"\u003e\n  \u003ch2 class=\"astp-h\"\u003eCrea tu pack\u003c\/h2\u003e\n  \u003cp class=\"astp-sub-h\"\u003eElige tu nivel, escoge tus boardshorts y ahorra. Descuento aplicado automáticamente al finalizar.\u003c\/p\u003e\n  \u003cdiv id=\"astp-levels\"\u003e\u003c\/div\u003e\n  \u003cdiv id=\"astp-slots\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"astp-summary\"\u003e\n    \u003cdiv class=\"astp-row\"\u003e\n\u003cspan\u003ePrecio normal\u003c\/span\u003e\u003cspan id=\"astp-sub\" class=\"astp-orig\"\u003e0,00 €\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"astp-row tot\"\u003e\n\u003cspan\u003ePrecio del pack\u003c\/span\u003e\u003cspan id=\"astp-tot\"\u003e0,00 €\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cbutton type=\"button\" id=\"astp-cta\" disabled\u003eAñadir pack al carrito\u003c\/button\u003e\n    \u003cp class=\"astp-hint\" id=\"astp-hint\"\u003eElige modelo y talla en todos los boardshorts.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n  var C=[\n    {t:\"Time to Conquer\",p:74.90,img:\"https:\/\/cdn.shopify.com\/s\/files\/1\/1053\/9669\/9466\/files\/B9F86F34-F560-496B-94BC-D2F32FB88FD7.jpg?v=1782675822\",v:{\"26\":62379223023946,\"28\":62379223056714,\"30\":62379223089482}},\n    {t:\"Inferno Legacy\",p:74.90,img:\"https:\/\/cdn.shopify.com\/s\/files\/1\/1053\/9669\/9466\/files\/9748A43D-626A-412B-B07F-1A094C62FBBF.jpg?v=1782675822\",v:{\"26\":62379223122250,\"28\":62379223155018,\"30\":62379223187786}},\n    {t:\"Crok Luxe\",p:74.90,img:\"https:\/\/cdn.shopify.com\/s\/files\/1\/1053\/9669\/9466\/files\/E6281D8A-6E3C-4B1A-82D7-A2C1DBE0B254.jpg?v=1782675652\",v:{\"26\":62379223220554,\"28\":62379223253322,\"30\":62379223286090}},\n    {t:\"California Vibes\",p:69.90,img:\"https:\/\/cdn.shopify.com\/s\/files\/1\/1053\/9669\/9466\/files\/3AD08B7A-0DD8-4C13-A621-DB9E157E9065.jpg?v=1782675081\",v:{\"26\":62379223318858,\"28\":62379223351626,\"30\":62379223384394}},\n    {t:\"Lollipop Flux\",p:69.90,img:\"https:\/\/cdn.shopify.com\/s\/files\/1\/1053\/9669\/9466\/files\/F09F1A32-8A76-40DF-BA8F-10A3538EE2FC.jpg?v=1782674924\",v:{\"26\":62379223417162,\"28\":62379223449930,\"30\":62379223482698}},\n    {t:\"Blackout Fluor\",p:69.90,img:\"https:\/\/cdn.shopify.com\/s\/files\/1\/1053\/9669\/9466\/files\/852A81AC-B81B-4A74-BB0B-B7877DCE93E0.jpg?v=1782674854\",v:{\"26\":62379223515466,\"28\":62379223548234,\"30\":62379223581002}},\n    {t:\"Be a Hero\",p:69.90,img:\"https:\/\/cdn.shopify.com\/s\/files\/1\/1053\/9669\/9466\/files\/BBFD5756-34F4-4D8C-BB2C-3F3BD61B645B.jpg?v=1782674782\",v:{\"26\":62379223613770,\"28\":62379223646538,\"30\":62379223679306}}\n  ];\n  var L=[\n    {k:\"Basic\",n:2,d:8,code:\"PACKBASIC\"},\n    {k:\"Silver\",n:3,d:10,code:\"PACKSILVER\"},\n    {k:\"Premium\",n:4,d:11,code:\"PACKCOMP\"}\n  ];\n  var M=[\n    {g:\"linear-gradient(135deg,#7a4d24,#cd7f32,#e6ad6e)\",t:\"#fff\",b:\"#cd7f32\"},\n    {g:\"linear-gradient(135deg,#9a9a9a,#d6d6d6,#f4f4f4)\",t:\"#1a1a1a\",b:\"#b3b3b3\"},\n    {g:\"linear-gradient(135deg,#b8860b,#d4af37,#f3df8e)\",t:\"#2a2200\",b:\"#d4af37\"}\n  ];\n  var SZ=[\"26\",\"28\",\"30\"];\n  var sel=2, pick=[];\n  function fmt(n){return n.toFixed(2).replace(\".\",\",\")+\" €\";}\n  function resetPick(){pick=[];for(var i=0;i\u003cL[sel].n;i++)pick.push({pi:null,sz:null});}\n  function slotHtml(i){\n    var s=pick[i]||{pi:null,sz:null};\n    var img=(s.pi!=null)?C[s.pi].img:\"\";\n    var opts='\u003coption value=\"\"\u003eElige boardshort…\u003c\/option\u003e'+C.map(function(p,pi){return '\u003coption value=\"'+pi+'\"'+(s.pi==pi?' selected':'')+'\u003e'+p.t+\" — \"+fmt(p.p)+'\u003c\/option\u003e';}).join(\"\");\n    var sz='\u003coption value=\"\"\u003eTalla\u003c\/option\u003e'+SZ.map(function(z){return '\u003coption value=\"'+z+'\"'+(s.sz==z?' selected':'')+'\u003e'+z+'\u003c\/option\u003e';}).join(\"\");\n    return '\u003cdiv class=\"astp-slot\"\u003e'\n      +'\u003cdiv class=\"astp-thumb\"'+(img?' style=\"background-image:url('+img+')\"':'')+'\u003e'+(img?'':(i+1))+'\u003c\/div\u003e'\n      +'\u003cdiv class=\"astp-fields\"\u003e\u003cspan class=\"astp-slot-n\"\u003eBoardshort '+(i+1)+'\u003c\/span\u003e'\n      +'\u003cselect class=\"astp-sel\" onchange=\"ASTP.setProd('+i+',this.value)\"\u003e'+opts+'\u003c\/select\u003e'\n      +'\u003cselect class=\"astp-sel astp-size\" onchange=\"ASTP.setSize('+i+',this.value)\"\u003e'+sz+'\u003c\/select\u003e'\n      +'\u003c\/div\u003e\u003c\/div\u003e';\n  }\n  function totals(){\n    var sub=0;pick.forEach(function(s){if(s.pi!=null)sub+=C[s.pi].p;});\n    var d=L[sel].d, tot=sub-sub*d\/100;\n    document.getElementById(\"astp-sub\").textContent=fmt(sub);\n    document.getElementById(\"astp-tot\").textContent=fmt(tot);\n    var full=pick.every(function(s){return s.pi!=null\u0026\u0026s.sz;});\n    document.getElementById(\"astp-cta\").disabled=!full;\n    document.getElementById(\"astp-hint\").textContent=full?\"Descuento aplicado automáticamente al finalizar.\":(\"Elige modelo y talla en los \"+L[sel].n+\" boardshorts.\");\n  }\n  function render(){\n    var app=document.getElementById(\"astp-app\");\n    app.style.setProperty(\"--metal\",M[sel].g);\n    app.style.setProperty(\"--mtext\",M[sel].t);\n    document.getElementById(\"astp-levels\").innerHTML=L.map(function(l,i){\n      var m=M[i],on=(i===sel);\n      var st=on?(\"background:\"+m.g+\";color:\"+m.t+\";border-color:transparent\"):(\"background:#fff;color:\"+m.b+\";border-color:\"+m.b);\n      return '\u003cbutton type=\"button\" class=\"astp-lv'+(on?' on':'')+'\" style=\"'+st+'\" onclick=\"ASTP.setLevel('+i+')\"\u003e'\n        +'\u003cspan class=\"astp-lv-k\"\u003ePack '+l.k+'\u003c\/span\u003e'\n        +'\u003cspan class=\"astp-lv-n\"\u003e'+l.n+' boardshorts\u003c\/span\u003e'\n        +(i===2?'\u003cspan class=\"astp-badge\"\u003eMEJOR PRECIO\u003c\/span\u003e':'')\n        +'\u003c\/button\u003e';\n    }).join(\"\");\n    var sh=\"\";for(var i=0;i\u003cL[sel].n;i++)sh+=slotHtml(i);\n    document.getElementById(\"astp-slots\").innerHTML=sh;\n    totals();\n  }\n  window.ASTP={\n    setLevel:function(i){sel=Number(i);resetPick();render();},\n    setProd:function(i,v){pick[i].pi=(v===\"\"?null:Number(v));render();},\n    setSize:function(i,v){pick[i].sz=(v||null);totals();},\n    addPack:function(){\n      var lv=L[sel],items=[],ok=true;\n      pick.forEach(function(s){if(s.pi==null||!s.sz){ok=false;return;}items.push({id:C[s.pi].v[s.sz],quantity:1});});\n      if(!ok||items.length!==lv.n){alert(\"Completa los \"+lv.n+\" boardshorts (modelo y talla).\");return;}\n      var btn=document.getElementById(\"astp-cta\");btn.disabled=true;btn.textContent=\"Añadiendo…\";\n      fetch(\"\/cart\/clear.js\",{method:\"POST\"}).then(function(){\n        return fetch(\"\/cart\/add.js\",{method:\"POST\",headers:{\"Content-Type\":\"application\/json\"},body:JSON.stringify({items:items})});\n      }).then(function(r){if(!r.ok)throw 0;window.location.href=\"\/discount\/\"+lv.code+\"?redirect=\/cart\";})\n      .catch(function(){btn.disabled=false;btn.textContent=\"Añadir pack al carrito\";alert(\"No se pudo añadir el pack. Inténtalo de nuevo.\");});\n    }\n  };\n  document.getElementById(\"astp-cta\").addEventListener(\"click\",function(){ASTP.addPack();});\n  resetPick();render();\n})();\n\u003c\/script\u003e\n\n\u003cdiv class=\"astp-copy\"\u003e\n\u003ch2\u003eCompite más. Gasta menos.\u003c\/h2\u003e\n\u003cp\u003eSi te tomas en serio el \u003cstrong\u003eculturismo\u003c\/strong\u003e y el \u003cstrong\u003emen's physique\u003c\/strong\u003e, sabes que una sola competición no es suficiente. Nuestros packs están diseñados para que tengas siempre un boardshort de competición listo, sin que tu bolsillo lo note.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eAhorro real:\u003c\/strong\u003e Consigue varios boardshorts de competición al mejor precio.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSiempre preparado:\u003c\/strong\u003e Rota entre competiciones sin preocuparte por el desgaste.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCalidad sin compromiso:\u003c\/strong\u003e Los mismos materiales premium y el mismo ajuste perfecto, ahora en pack.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eIdeal para temporadas largas:\u003c\/strong\u003e Cuantas más competiciones, más sentido tiene un pack.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eElige tu pack, ahorra en cada competición y centra tu energía en lo que importa: subir a la tarima y ganar.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","products":[],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1053\/9669\/9466\/collections\/zyro-image.jpg?v=1782678712","url":"https:\/\/astrogym.es\/collections\/packs.oembed","provider":"Astrogym","version":"1.0","type":"link"}