{
  "version": 3,
  "sources": ["/cdn/shop/files/ruut-calculadora-v23.js?t=1792168421268"],
  "sourcesContent": ["/* Calculadora de tamanhos ruut \u2014 v4\n   Ficheiro gerado automaticamente (build.py). Para alterar tabelas de tamanhos ou modelos,\n   editar data_raw.txt / rules e voltar a gerar. */\n(function () {\n  'use strict';\n  if (window.__ruutCalcLoaded) return;\n  window.__ruutCalcLoaded = true;\n\n  /* ---------- DADOS ---------- */\n  var PFX = [\"blanditos-\", \"chetto-\", \"mtng-free-\", \"mtng-\", \"igor-\", \"victoria-\", \"tip-toey-joey-\", \"attipas-\", \"froddo-\", \"muris-\", \"galochas-\", \"sandalias-\", \"botas-\", \"sapatilhas-\"];\n  var HANDLES = \"anatomic-starter-canvas Hajolote Hanimais Haqua-x-caranguejo Hbombeiros-cinza Hcool-summer Hdog-coco-grey Hgirafa Hpolicia Hpop Hskin Hskin-denim Hsummer-bear Hunicornio Hwoodland Hzootopia Hzootopia-capivara Hzootopia-guaxinim babyfree-desportivas-bege-rosa bar3foot-elf-denver bar3foot-elf-denver-vegan bar3foot-elf-walker bar3foot-sandalias-elf-denver Aares-azafata Aares-branco Aares-marino Aares-nube Aares-rosa Aazores-azul Aazores-rosa Aborneo-azul Aborneo-limon Aborneo-rosa Abota-waterproof-hera-berenje Abota-waterproof-hera-navy Abota-waterproof-hera-verde Abotas-waterproof-hefesto-azul Abotas-waterproof-hefesto-verde Acaicos-marino Acaicos-print Acaicos-verde Acrono Adelfin-adulto-branco-azul Adelfin-adulto-branco-rosa Aguppy Ahercules-azul Ahercules-talco Ahielo Akauai-marino Akauai-print Alisboa Alisboa-bege Alisboa-mar Alisboa-rosa Alonas-goldfish-amarelo Amolly-kaki Amolly-yellow Aolimpo-rosa Aolimpo-verde Aorlando Aplaty-marino Aplaty-negro Aplaty-rosa Aplaty-verde Aporto-rosa Aporto-vison Aquito-vison Ario-1 Asabrina-delhi-branco Asabrinas-ballet Asandalias-capri Asandalias-caspio Asandalias-costa-bege Asandalias-saona Asandalias-timon-1 Asandalias-timon-navy Aulisses-marinho Aulisses-rosa Aulisses-verde Avegan-poseidon-jeans Avenus-orange bobux-iw-dawn bobux-kp-evo bobux-xp-chase-vintage-indigo bobux-xp-critters-rummage bobux-xp-go-punch bobux-xp-maris-wax-yellow bobux-xp-marvel-artic bobux-xp-sport-25 Bbabyfree-com-luzes-azul Bbabyfree-com-luzes-basket Bbabyfree-com-luzes-futebol Bbabyfree-com-luzes-morado Bbota-waterproof-verde Bbotas-waterproof-azul Bchicago-azul-rosa Bchicago-azul-rosa-1 Bchicago-celeste Bchicago-celeste-1 Bchicago-dourado Bchicago-leopardo Bchicago-leopardo-1 Bchicago-prata Bchicago-prata-1 Bchicago-verde-1 Bchicago-verde-adulto Bdesportivos-azul Bdesportivos-verde Blonas-azul Blonas-bege Blonas-rosa Bsandalias-azul Bsandalias-bege Bsandalias-brancas Bsandalias-caqui Bsandalias-castanho Bsandalias-coracoes Bsandalias-rose-gold coqueflex-4389 coqueflex-4389-branco-cereza coucoucava-botas coucoucava-sandalias coucoucava-sandalias-cookie coucoucava-sandalias-lilou coucoucava-sapatilhas-dot coucoucava-sapatilhas-duplo-velcro coucoucava-sapatilhas-duplo-velcro-1 coucoucava-sapatilhas-elastico coucoucava-sapatilhas-sponge d-d-step-botas-foguetao d-d-step-botas-forradas-azuis d-d-step-sapatilhas-azul-2025 d-d-step-sapatilhas-caranguejo d-d-step-sapatilhas-carro d-d-step-sapatilhas-lona d-d-step-sapatilhas-rosa-2025 Ibase Ibase-duplo-velcro-2025 Ibotas-chelsea-preto Icanvas Iflexy-w Ilaces-2025 Iprewalkers-classic Iprewalkers-sandals Isandalias-duplo-velcro Iwooly Izeru-spring Kbareboo-yellow Kigor-yogi-borreguito Kkoel-wellie-bare-bear Kkoel-wellie-bare-flowers Kkoel-wellie-white-flowers garvalin-botas-bluey-fucsia garvalin-botas-bluey-ocean garvalin-pantufas-bluey-azul garvalin-pantufas-bluey-coral garvalin-urban-branco garvalin-urban-ocean Eberlin Eberlin-white-mostaza Eberlin-white-rosa Eberlin-white-verde Egalochas-alex-ash Egalochas-alex-petroleo Egalochas-mendi-amarillo Egalochas-mendi-elefante-oceano Egalochas-mendi-girafa-mostaza Egalochas-mendi-kaki Egalochas-mendi-unicornio-rosa Egalochas-yogi-amarillo Egalochas-yogi-rosa Ehomie-elefante-azul Ehomie-ovelha-maquillage Ehomie-unicornio-malva Elona-5-1-dijon Elona-5-1-kaki Elona-5-1-terracota Elona-berri-matcha Elona-berri-rosa Elona-mercedes-menta Elona-pepito-dijon Elona-pepito-oceano Elona-v-dijon Elona-v-petroleo Elona-v-terracota Elonas-mercedes-dijon Emerceditas-viena-gloss-beige Enemo-arena Enemo-azul Enemo-dijon Enemo-maquillage Enemo-menta Epantufas-homie Epantufas-homie-1 Esandalias-piel-dijon Etennis Etennis-branco Etennis-fresh-amarillo Etennis-jeans Etennis-leo Etennis-mostaza Etennis-musgo Etennis-suede Etennis-suede-burdeos koel-galochas-wellie-trator-v2 lejan-melrose-burgundy lejan-melrose-chocolate-1 lejan-melrose-noir lejan-melrose-pink lejan-melrose-skyblue lejan-one-adulto lejan-one-black lejan-one-dark-beige lejan-one-kids-dark-beige lejan-one-nylon-bege-adulto lejan-one-nylon-navy-adulto lejan-one-nylon-skyblue-adulto Dalask Dalask-bordeaux Dalask-botas-chelsea-negro Dalask-botas-fivelas-negro Dalask-botas-militares-mocha Dalask-wonderly-arena Dbotas-alask-castanho Dbotas-alask-padrao Dbotas-unicornio Dbotas-unicornio-1 Dbotim-forrado-castanho Ddesportivas Ddesportivas-rosa Calask-branco Capolo-gris Capolo-morado Capolo-preto Caria-1 Caria-bege Cbaby-botas-marron Cbaby-botas-nude Cbaby-branco-e-dourado Cbaby-orbit-bege Cbaby-orbit-navy Cbege Cbotas-alask-negro Cbotas-nude Ccleo-castanho Ccleo-kaki Cdesportivas-branco-e-marinho Cevacare-branco Cmiami-kaky Corbit-bege Corbit-bege-1 Corbit-branco Corbit-burdeos Corbit-kaky-violeta Corbit-marinho Corbit-navy Criver-kaky Criver-nude Csandalias-coracoes Csandalias-dino Csandalias-kaki Csandalias-nude Csandalias-nylon-rosa-aguamarina Csapatilhas Csuede-branco Cusain Djym-branco Dlonas-duplo-velcro Dlonas-elastico Dmiami-branco Dmiami-lanni-tan Dorbit-beige Dsandalias-free-cleo-bege Dsandalias-free-cleo-tachas Dsandalias-free-nylon-castanho Dsandalias-free-nylon-kaki Dsandalias-free-nylon-nude Dusain mum-barefoot-atlas-latte mum-barefoot-ines-blood-more mum-barefoot-ines-more mum-barefoot-ines-ocean-more mum-barefoot-sabrinas-sara-coal mum-barefoot-sabrinas-sara-star mum-ines-dusk mum-ines-saffron Jbotas-bansko-mini-camel Jbotas-bansko-mini-navy Jbotas-basel-taupe Jbotas-sintra-mini Jmajorca-malva Jnuuk Jnuuk-junior Jnuuk-taupe Jpetra-junior-malva Jpetra-junior-ruby-red Jpetra-junior-steel Jpetra-mini-pink Jpetra-mini-steel Jsandalias-fiji-mini-taupe Jsandalias-rio-junior-dusty-pink Jsandalias-rio-junior-taupe Jverona-aubergine petra-junior-pink pre-venda-blanditos-berlin pre-venda-bobux-iw-trek pre-venda-chetto-doha pre-venda-froddo-botas-g3110263 pre-venda-froddo-laces pre-venda-mtng-suede pre-venda-victoria-oliver Lblanditos-creta Lfroddo-duplo-velcro Ligor-piel-azul Ligor-piel-verde Ligor-ura-dijon Ligor-ura-dusty-pink Ligor-ura-verde Nfroddo-base Gbossy-brave Gbossy-candy-dream Gbossy-olive Gbotas-alley-metalic Gbotas-landy-high-top-blue-tangerine Gdash-lona-rosa-quartzo Gdash-lona-rosa-quartzo-1 Gfunky-champagne Gground-candy-dream-rose-gold Gground-salsa-tomate Gground-white-black Ghopper-white-caja-salsa Ghopper-white-rose-gold Glandy-2 Glandy-high-top Glonas-dash-azul-klein Glove4all Gollie Gollie-1 Gollie-candy-dream Gollie-navy-tangerine Gramp-worm Gsandalias-criss-cross Gsandalias-explorer Gsandalias-toucan Fbosco-botim-marino Fbosco-botim-taupe Fbosco-cuero Fbosco-malva Fbotim-bosco Fbotim-oliver-burdeos Fbotim-oliver-camel Fdesportivas-kai-azul Fdesportivas-kai-rosa Fduna-serrage-marron Fhalo-marron Fkai-burdeos Fkai-taupe Foliver-burdeos Foliver-marron Folmo-1 Folmo-amarillo Folmo-botim-camurca-marron Folmo-fantasia-kaki Folmo-glitter-camurca-marron Folmo-jade Folmo-lona-hielo Folmo-nylon-camurca-kaki Folmo-nylon-melocoton Folmo-nylon-vainilla Folmo-serrage-bege Folmo-serrage-chocolate Folmo-serrage-oliva Folmo-serrage-terra Atorino-champanhe Atorino-marino Bgalochas-flamingo Bgalochas-tubarao Bgalochas-girafa\";\n  var MODELS = [[\"Blanditos Platy\",\"p\",\"22,132,59;23,140,62;24,146,63;25,151,65;26,159,66;27,164,69;28,172,70;29,180,72;30,187,73\",\"1q,1p,1r,1o\"],[\"Blanditos Delhi e Quito\",\"p\",\"20,129,52;21,135,54;22,140,55;23,146,57;24,151,58;25,159,59;26,166,60;27,173,63\",\"1u,1w\"],[\"Blanditos Galochas\",\"m\",\"22,145,68;23,151,70;24,158,72;25,163,74;26,171,75;27,178,77;28,183,79;29,187,80;30,198,82\",\"43\"],[\"Blanditos Porto / Torino / Caicos / Lisboa\",\"p\",\"20,128,61;21,134,62;22,141,63;23,147,64;24,154,66;25,160,67;26,166,69;27,173,72\",\"1f,1h,13,1t,ad,1g,12,ae,1s,14,1e\"],[\"Blanditos Kauai\",\"m\",\"26,167,70;27,173,72;28,180,74;29,187,75;30,194,77;31,200,78;32,207,80;33,213,82;34,220,83\",\"1d,1c\"],[\"MTNG Apolo Homem\",\"t\",\"40,260,95;41,267,97;42,273,99;43,280,101;44,287,103;45,293,105\",\"6h,6f,6g\"],[\"MTNG Jovem Orbit\",\"m\",\"35,226,85;36,233,87;37,239,88;38,246,90;39,253,92\",\"73,72,6y,70,71,7j,6z,6x\"],[\"Blanditos Delfin Adulto\",\"b\",\"35,226,83;36,233,84;37,240,86;38,245,87;39,253,89;40,259,91\",\"16,17\"],[\"Blanditos Crono\",\"m\",\"24,157,62;25,164,65\",\"15\"],[\"Blanditos Ulisses, Hercules e Hefesto\",\"m\",\"27,173,72;28,180,74;29,189,75;30,194,76;31,201,79;32,209,81;33,214,83;34,222,84;35,228,86;36,236,87;37,241,90;38,249,91;39,255,92;40,262,95\",\"10,11,1a,19,25,24,26\"],[\"Blanditos Ares/ Venus\",\"m\",\"24,157,64;25,164,65;26,170,66;27,177,68;28,184,70;29,191,71;30,196,73;31,204,76;32,210,77;33,217,78;34,224,79;35,232,80\",\"p,r,o,q,28,n\"],[\"Blanditos Olimpo\",\"m\",\"24,154,64;25,160,65;27,174,68;28,181,70;29,187,71;30,193,72;31,201,75;32,208,77\",\"1l,1m\"],[\"Blanditos Hera\",\"m\",\"26,167,69;27,174,70;28,180,72;29,187,74;30,193,75;31,198,78;32,205,80;33,213,81;34,219,82;35,225,82\",\"x,z,y\"],[\"Blanditos Creta\",\"m\",\"33,217;34,221\",\"8n\"],[\"Blanditos Ballet\",\"b\",\"40,269\",\"1x\"],[\"Blanditos Caspio\",\"m\",\"28,217\",\"1z\"],[\"Blanditos Poseidon\",\"b\",\"36,233,84;37,245,87;38,251,88;39,260,89;40,264,91\",\"27\"],[\"Blanditos Azores\",\"p\",\"20,128,61;21,135,62;22,142,63;23,148,65;24,155,67;25,162,68;26,168,70\",\"s,t\"],[\"Blanditos Guppy/ Molly/ GOldfish\",\"p\",\"22,133,60;23,141,61;24,146,62;25,153,64;26,160,67;27,167,69;28,174,70;29,180,71;30,188,72\",\"1i,1j,1k,18\"],[\"Blanditos Capri\",\"m\",\"27,174;28,179;29,191;30,198;31,205;32,212;33,217;34,224\",\"1y\"],[\"Blanditos Saona\",\"m\",\"22,140,62;23,146,64;24,153,66;25,160,68;26,166,70;27,172,72;28,180,74;29,186,76\",\"21\"],[\"Blanditos Costa\",\"p\",\"20,126,60;21,133,61;22,141,62;23,147,64;24,156,66;25,165,68;26,170,70;27,179,72\",\"20\"],[\"Blanditos Timon\",\"m\",\"26,167;27,173;28,179;29,187;30,193;31,200;32,207;33,215;34,221\",\"23,22\"],[\"Chetto Chicago Pequenos\",\"p\",\"20,125,60;21,130,61;22,138,62;23,143,62;24,152,64;25,159,66;26,164,67;27,169,67\",\"2q,2v,2u,2t,2s,2r,2p,2w,2o,2n,8i\"],[\"Chetto Chicago Grandes\",\"m\",\"28,185,72;29,194,73;30,199,75;31,205,76;32,212,78;33,220,79;34,224,80;35,232,80\",\"2q,2v,2u,2t,2s,2r,2p,2w,2o,2n,8i\"],[\"Chetto Baby Free\",\"p\",\"21,135,62;22,140,63;23,145,64;24,150,67;25,155,68;26,160,70;27,170,71;28,175,73;29,180,75;30,185,76;31,195,78\",\"2j,2h,2i,2k,i\"],[\"Chetto Chicago Adulto\",\"b\",\"36,235,83;37,245,85;38,247,85;39,257,86;40,260,86;41,265,88\",\"2q,2v,2u,2t,2s,2r,2p,2x,2w,2o,2n\"],[\"Sand\u00E1lias Chetto Fechadas\",\"p\",\"20,125,60;21,130,61;22,138,62;23,143,62;24,152,64;25,159,66;26,164,67;27,169,67\",\"39,38,35,34\"],[\"Chetto Desportivo\",\"m\",\"22,134,60;23,141,61;24,147,63;25,151,65;26,160,66;27,166,68;28,172,70;29,180,72\",\"2y,2z\"],[\"Chetto Botas Waterproof\",\"m\",\"28,173,70;29,178,71;30,185,74;31,190,75;32,198,77;33,204,79;34,210,80\",\"2l,2m\"],[\"Chetto Lonas\",\"p\",\"20,125,58;21,128,59;22,136,61;23,142,62;24,149,64;25,158,65;26,165,66;27,173,68;28,180,70;29,187,71\",\"31,32,30\"],[\"Sand\u00E1lias Chetto Abertas\",\"m\",\"24,154,66;25,161,67;26,167,68;27,175,69;28,182,70;29,189,72;30,196,74\",\"39,38,35,34\"],[\"Victoria Bosco\",\"p\",\"19,123,58;20,130,60;21,136,61;22,142,64;23,149,65;24,155,67;25,160,68;26,168,72;27,175,74;28,180,76;29,188,77;30,196,79\",\"9l,9k,9n,9m,9o\"],[\"Victoria Oliver\",\"m\",\"22,148,65;23,153,66;24,161,67;25,168,69;26,175,70;27,181,71;28,187,73;29,192,76;30,199,77;31,207,79;32,212,81\",\"9q,9p,9y,9x,8m\"],[\"Victoria Halo\",\"m\",\"22,145,62;23,150,64;24,156,66;25,160,67;26,165,69;27,170,70\",\"9u\"],[\"Victoria Kai\",\"m\",\"22,140,62;23,145,64;24,153,65;25,160,66;26,165,69;27,171,70;28,178,72;29,185,73;30,190,75;31,197,76;32,204,79;33,210,80;34,220,80;35,227,80\",\"9w,9v,9s,9r\"],[\"Victoria Olmo\",\"t\",\"36,236,93;37,242,94;38,249,96;39,255,97;40,260,98;41,266,99;42,271,101;43,276,102;44,282,103;45,289,104\",\"a6,aa,ab,ac,a9,a1,a3,a0,a4,a2,a5,a7,a8,9z\"],[\"Victoria Duna\",\"t\",\"40,255,90;41,261,92;42,271,95;43,276,96;44,280,97;45,290,100\",\"9t\"],[\"Coqueflex 4389\",\"m\",\"28,182,71;30,196,75\",\"3a,3b\"],[\"Coqueflex 4389\",\"b\",\"35,234,89;36,240,90;37,247,92;40,267,96\",\"3a,3b\"],[\"Attipas Skin\",\"m\",\"23,145,64;25,155,66;26,165,68;28,175,70;29,185,72;31,195,74;32,205,76\",\"h,g,8,7,4,6,1,e,d,b,3,2,9,f,c,a,5\"],[\"MTNG River\",\"m\",\"27,177,69;28,183,71;29,189,72;30,196,73;31,203,73;32,209,74;33,216,75;34,223,77;35,229,79;36,235,81\",\"75,74\"],[\"MTNG Botas Alask\",\"m\",\"27,169,70;28,177,72;29,183,73;30,189,76;31,196,77;32,202,78;33,210,80;34,215,81;35,224,83;36,228,86\",\"68,65,64,63,6q,67,6e,62,66,61\"],[\"MTNG\",\"p\",\"20,128,57;21,135,58;22,141,59;23,148,60;24,150,62;25,162,64;26,169,65\",\"6b,68,65,64,63,6l,6k,6q,67,6a,6o,6n,75,6r,74,6w,7i,7c,73,6h,72,6y,70,6i,6e,6f,71,7j,6g,6z,6v,78,79,77,76,7n,7o,7l,6t,6s,6j,7m,7a,7k,6u,6m,6d,7e,62,7h,66,6x,61,69,8l,7d,7p,6p,6c,7f,7g,7b\"],[\"MTNG\",\"m\",\"27,171,67;28,179,70;29,185,71;30,193,73;31,199,74;32,204,75;33,211,76;34,219,79;35,224,81;36,231,82\",\"6b,68,65,64,63,6l,6k,6q,67,6a,6o,6n,75,6r,74,6w,7i,7c,73,6h,72,6y,70,6i,6e,6f,71,7j,6g,6z,6v,78,79,77,76,7n,7o,7l,6t,6s,6j,7m,7a,7k,6u,6m,6d,7e,62,7h,66,6x,61,69,8l,7d,7p,6p,6c,7f,7g,7b\"],[\"MTNG Luzes\",\"m\",\"27,168,67;28,177,68;29,183,70;30,189,72;31,196,73;32,201,75;33,210,77;34,215,78\",\"6a,69\"],[\"MTNG Chuteiras\",\"m\",\"31,201,74;32,211,76;33,217,77;34,224,79;35,232,80;36,237,81;37,244,84;38,251,86\",\"\"],[\"MTNG Desportivos\",\"m\",\"27,178,68;28,185,70;29,190,71;30,197,72;31,204,74;32,211,75;33,215,76;34,223,79;35,231,81;36,237,82\",\"6u,6d,7d,7p,6c,7b\"],[\"MTNG Sand\u00E1lias\",\"p\",\"19,123,52;20,131,53;21,137,55;22,144,56;23,153,58;24,158,60;25,164,61;26,173,63\",\"78,79,77,76,7n,7o,7l,7m,7a,7k\"],[\"MTNG Alask Botas\",\"t\",\"36,238,81;37,244,82;38,251,84;39,257,85;40,264,86;41,270,88\",\"68,65,64,63,6q,67,6e,62,66,61,6b\"],[\"MTNG Orbit\",\"t\",\"36,230,85;37,235,88;38,240,89;39,252,91;40,260,92;40,265,90;41,265,94;41,270,92;42,277,94;43,285,95;44,291,97;45,297,98;46,305,100\",\"6o,6n,73,72,6y,70,71,7j,6z,6x\"],[\"MTNG Aria\",\"t\",\"36,234,84;37,242,86;38,247,87;39,254,89;40,259,91;41,267,94\",\"6i,6j\"],[\"MTNG Miami\",\"t\",\"40,262,93;41,265,94;42,270,95;43,280,97;44,289,98;45,295,100\",\"6w,7i,7h\"],[\"MTNG Suede\",\"t\",\"36,237,82;37,243,84;38,250,86;39,256,87;40,260,91;40,262,88;41,267,93;41,270,90;42,273,94;43,283,97;44,287,98;45,294,99\",\"7c,8l\"],[\"MTNG Botim Suede\",\"t\",\"40,263,93;41,270,94;42,277,95;43,283,97;44,286,98;45,296,101\",\"\"],[\"MTNG Apolo\",\"t\",\"36,234,84;37,242,85;38,247,89;39,254,91;40,259,93;40,264,93;41,267,94;41,271,94;42,277,95;43,285,96;44,290,99;45,297,100\",\"6h,6f,6g\"],[\"MTNG Alask\",\"t\",\"36,230,85;37,235,86;38,240,90;39,245,91;40,250,92;41,255,94\",\"68,65,64,63,6q,67,6e,62,66,61\"],[\"MTNG Jym\",\"t\",\"40,253,92;41,260,93;42,266,95;43,275,97;44,283,99;45,290,101\",\"7e\"],[\"MTNG Sand\u00E1lias Nylon\",\"m\",\"28,177,71;29,184,72;30,191,73;31,198,74;32,204,75;33,210,76;34,216,78;35,223,80;36,228,81;37,236,82\",\"7n,7o,7m,7a\"],[\"MTNG Cleo\",\"b\",\"36,239,98;37,245,100;38,252,102;39,258,103;40,265,104;41,272,105\",\"7l,6t,6s,7k\"],[\"Igor Mendi\",\"m\",\"20,129,57;21,136,59;22,142,60;23,149,62;24,155,63;25,161,65;26,168,66;27,175,68;28,181,69;29,188,71;30,195,72;31,201,74;32,207,75\",\"4o,4l,4m,4n,4k\"],[\"Igor Yogi\",\"m\",\"27,175,69;28,182,70;29,194,72;30,196,72;31,201,73;32,209,75;33,216,81;34,223,81;35,230,83\",\"4q,4p,44\"],[\"Igor Homie\",\"m\",\"20,126,58;21,132,59;22,139,61;23,146,62;24,152,64;25,158,65;26,165,67;27,171,68;28,178,70\",\"4t,4r,4s,5d,5c\"],[\"Igor\",\"m\",\"19,120,56;20,126,58;21,132,59;22,139,61;23,146,62;24,152,64;25,158,65;26,165,67;27,171,68;28,178,70;29,184,71;30,191,73;31,197,74;32,204,76;33,210,77;34,217,79\",\"4o,56,4i,4j,4q,4p,4l,4m,4n,4k,4t,4r,4s,5n,4f,4g,5k,4h,51,4u,4v,55,50,52,53,54,4x,4y,4w,4z,8p,8q,5e,5g,5i,5l,5h,5a,57,5b,58,59,8s,8r,8t,4e,44,5j,5m,5d,5c,5f\"],[\"Igor Nemo\",\"m\",\"19,118,58;20,125,59;21,131,60;22,137,61;23,143,62;24,150,63;25,157,65;26,163,67;27,169,68;28,176,70;29,182,71;30,189,73;31,196,74;32,202,76\",\"5a,57,5b,58,59\"],[\"Igor Ura\",\"b\",\"36,226,88;37,235,90;38,240,92;39,248,93;40,253,95;41,261,96\",\"8s,8r,8t\"],[\"Igor Malibu\",\"m\",\"22,140,63;23,147,64;24,153,66;25,159,67;26,167,68\",\"\"],[\"Igor Berri\",\"m\",\"20,129,60;21,134,61;22,141,64;23,148,65;24,154,67;25,161,68;26,168,70;27,174,71;28,181,73;29,187,74;30,193,75;31,200,76;32,207,78\",\"4x,4y\"],[\"Anatomic Starter\",\"t\",\"37,240,93;38,247,95;41,267,101\",\"0\"],[\"Bar3foot Elf\",\"m\",\"24,155,66;26,164,71;27,171,74;29,180,78;32,209,82\",\"m,j,k,l\"],[\"Bobux XP\",\"p\",\"18,115;19,119;20,127;21,136;22,144\",\"2b,2e,2c,2f,2g,2d\"],[\"Bobux IW\",\"m\",\"23,156,69;24,165,70;25,168,71\",\"8h,29\"],[\"Bobux KP\",\"m\",\"28,189,74;32,219,78;33,224,80\",\"2a\"],[\"D. D. Step 063\",\"m\",\"26,169,57;28,182,64;29,189,65\",\"3n,3r,3o,3m,3p,3l,3q\"],[\"D. D. Step 070\",\"p\",\"20,128,57;21,134,58;24,155,63\",\"3n,3r,3o,3m,3p,3l,3q\"],[\"D. D. Step 073\",\"p\",\"20,128,57;21,134,58;24,155,63\",\"3n,3r,3o,3m,3p,3l,3q\"],[\"D. D. Step 073\",\"m\",\"26,167,66;28,178,70;29,185,71\",\"3n,3r,3o,3m,3p,3l,3q\"],[\"D. D. Step 086\",\"p\",\"20,130,58;21,134,60;24,155,64\",\"3n,3r,3o,3m,3p,3l,3q\"],[\"Froddo Prewalkers\",\"p\",\"17,111;18,118;22,142\",\"3z,3y\"],[\"Froddo Base\",\"m\",\"22,146,62;23,152,64;24,159,65;26,172,67;27,178,70;28,184,71;30,198,75;31,205,77;32,212,78\",\"3s,3t,8u\"],[\"Froddo Zeru\",\"m\",\"20,129,54;21,136,56;22,143,57\",\"42\"],[\"Froddo Splash\",\"m\",\"31,205,77\",\"\"],[\"Froddo Sandals\",\"m\",\"32,205;33,212;34,218;35,225\",\"3w,8o,40\"],[\"Froddo Flexy W\",\"b\",\"39,264\",\"3w\"],[\"Froddo Flexy F\",\"p\",\"20,126\",\"\"],[\"Froddo Botas\",\"m\",\"30,198;32,212\",\"3u,8j\"],[\"Froddo Canvas\",\"b\",\"40,269\",\"3v\"],[\"Froddo Laces\",\"b\",\"42,278,96\",\"8k,3x\"],[\"Froddo Wooly\",\"m\",\"26,167;27,175;28,185\",\"41\"],[\"Coucou\u00E7ava\",\"p\",\"19,121,54;20,127,55;21,134,57;22,140,58;24,152,61;26,168,70\",\"3g,3e,3k,3f,3i,3d,3c,3h,3j\"],[\"Coucou\u00E7ava Nova Sola\",\"m\",\"26,176,73;27,184,74;30,202,79;31,218,80;32,212,81\",\"3g,3e,3k,3f,3i,3d,3c,3h,3j\"],[\"Muris\",\"p\",\"20,126,53;21,132,55;22,139,56;23,147,58;24,152,60;25,159,62;26,165,63;27,171,64;28,178,68;29,184,71;30,190,72;31,196,73;32,203,75;33,210,76;34,215,78;35,224,79\",\"8e,80,7z,7y,88,8f,8a,89,8d,8c,8b,85,82,86,87,81,83,84\"],[\"Muris Verona\",\"b\",\"36,227,78;37,232,79;38,240,80;39,246,82;40,252,83;41,257,84\",\"8e\"],[\"Muris\",\"b\",\"36,232,81;37,238,82;38,244,85;39,251,86;40,261,88;41,267,89;42,273,98;43,279,99;44,289,102\",\"8e,80,7z,7y,88,8f,8a,89,8d,8c,8b,85,82,86,87,81,83,84\"],[\"Muris Rio Adulto\",\"b\",\"36,237,75;37,242,77;38,250,79;39,256,80;40,264,82;41,269,84\",\"\"],[\"Muris Fiji Mini\",\"p\",\"20,127,58;21,133,61;22,140,62;23,147,63;24,153,66;25,160,67;26,167,69;27,172,71\",\"8b\"],[\"Muris Rio Junior\",\"m\",\"28,180,70;29,187,72;30,194,73;31,200,75;32,207,77;33,213,79;34,220,81;35,227,82\",\"8d,8c\"],[\"Mum In\u00E9s More\",\"t\",\"36,235,89;37,240,92;38,250,92;39,255,94;40,260,96;41,269,100;42,275,100;43,282,102;44,288,103;45,293,105\",\"7t,7r,7s\"],[\"Mum In\u00E9s Dusk\",\"t\",\"36,235,88\",\"7w\"],[\"Mum In\u00E9s Saffron\",\"t\",\"42,274,97\",\"7x\"],[\"Mum Atlas\",\"t\",\"36,227,85;37,232,86;38,237,89;39,245,90;40,252,94;41,260,95;42,265,96\",\"7q\"],[\"Mum Sabrinas N\u00FAria\",\"t\",\"36,236,84;37,243,90;38,249,92;39,257,94;40,264,95\",\"7v,7u\"],[\"Garvalin Bluey\",\"m\",\"22,137,58;23,143,58;24,150,60;25,159,62;26,163,63;27,170,66;28,176,66;29,183,67;30,190,70\",\"49,48\"],[\"Garvalin Urban\",\"m\",\"19,121,58;20,128,60;21,135,61;22,142,63;23,148,64;24,154,67;25,162,68;26,168,70\",\"4c,4d,4b,4a\"],[\"Lejan One\",\"m\",\"21,131,57;22,139,58;23,143,60;24,151,63;25,159,64;26,164,65;27,173,66;28,179,68;29,185,70;30,194,72\",\"5x,5w,5v,5z,60,5y,5u\"],[\"Lejan One\",\"t\",\"36,227,81;37,236,82;38,242,83;39,250,84;40,257,86;41,263,89;42,267,90\",\"5x,5w,5v,5z,60,5y,5u\"],[\"Lejan Melrose\",\"b\",\"36,239,88;37,240,93;38,245,94;39,254,96;40,262,97;41,266,100;42,273,101;43,289,101\",\"5q,5p,5r,5t,5s\"],[\"Chetto Galochas\",\"m\",\"23,145,68;24,154,68;25,163,71;26,170,71;27,180,75;28,189,75;29,196,76;30,205,78\",\"af,ag,ah\"],[\"Tip Toey Joey\",\"p\",\"16,84,93;17.5,94,103;19,104,110;20,111,117;21,118,124;22,125,130;23,131,137;24,138,144;25,145,151\",\"96,97,92,95,9g,9b,8v,9f,9e,8w,8x,8z,8y,93,94,9a,9h,9i,9j,91,90,99,9d,9c,98\",\"f\"],[\"Tip Toey Joey\",\"m\",\"24,138,144;25,145,151;26,152,158;27,159,164;28,165,171;29,172,178;30,179,185;31,186,191;32,192,198;33,199,205;34,206,211\",\"96,97,92,95,9g,9b,8v,9f,9e,8w,8x,8z,8y,93,94,9a,9h,9i,9j,91,90,99,9d,9c,98\",\"f\"],[\"Galochas Koel\",\"p\",\"20,128,55;21,137,56;22,144,57;23,150,59;24,156,61\",\"5o,47,45,46\"],[\"Galochas Koel\",\"m\",\"25,167,69;26,174,70;27,181,72;28,186,74;29,193,76;30,200,78;31,207,80;32,213,82;33,220,84;34,226,85;35,232,87\",\"5o,47,45,46\"],[\"Attipas\",\"p\",\"S,98,108;M,109,115;L,116,125;XL,126,135;XXL,136,145;XXXL,146,155\",\"h,g,8,7,4,6,1,e,d,b,3,2,9,f,c,a,5\",\"f\"],[\"Igor Galochas Alex\",\"t\",\"36,225,88;37,242,90;38,249,91;39,255,93;40,262,94;41,268,96\",\"4i,4j\"],[\"Igor Berlin\",\"m\",\"20,129,60;21,134,61;22,141,64;23,148,65;24,154,67;25,161,68;26,168,70;27,174,71;28,181,73;29,187,74;30,193,75;31,200,76;32,207,78\",\"4f,4g,4h,4e\"],[\"Muris Nuuk / Basel\",\"b\",\"36,232,81;37,238,82;38,244,85;39,251,86;40,261,88;41,267,89;42,273,98;43,279,99;44,289,102\",\"80,85,83\"],[\"Muris Bansko Mini / Petra Mini\",\"p\",\"20,126,53;21,132,55;22,139,56;23,147,58;24,152,60;25,159,62;26,165,63;27,171,64\",\"7z,7y,8a,89\"],[\"Muris Bansko Mini / Petra Mini\",\"m\",\"20,126,53;21,132,55;22,139,56;23,147,58;24,152,60;25,159,62;26,165,63;27,171,64\",\"7z,7y,8a,89\"],[\"Muris Petra Junior\",\"m\",\"28,178,68;29,184,71;30,190,72;31,196,73;32,203,75;33,210,76;34,215,78;35,224,79\",\"88,8f,86,87\"],[\"MTNG Baby\",\"p\",\"20,128,57;21,135,58;22,141,59;23,148,60;24,150,62;25,162,64;26,169,65\",\"6l,6k,6o,6n,6m\"],[\"MTNG Free Botas\",\"m\",\"27,175,68;28,184,69;29,191,70;30,198,71;31,204,73;32,210,74;33,216,76;34,223,77\",\"6r\"],[\"Igor Tennis / Merceditas Viena\",\"m\",\"19,120,56.5;20,126,58;21,132,59.5;22,139,61;23,146,62.5;24,152,64;25,158,65.5;26,165,67;27,171,68.5;28,178,70;29,184,71.5;30,191,73;31,197,74.5;32,204,76;33,210,77.5;34,217,79\",\"56,5n,5k,5g,5i,5l,5h,5j,5m,5f\"],[\"Chetto Dupla Fivela\",\"m\",\"25,163;26,171;27,177;28,184;29,189;30,195;31,203;32,210;33,218;34,224\",\"33,36,37\"]]; // [nome, categoria, \"tam,comp,larg;...\", \"idx,idx,...\"]\n  var RULES = {\"Tip Toey Joey\":[\"Tip Toey Joey\",[]],\"Blanditos Platy\":[\"Blanditos\",[\"platy\"]],\"Blanditos Delhi e Quito\":[\"Blanditos\",[\"delhi\",\"quito\"]],\"Blanditos Galochas\":[\"Blanditos\",[\"galocha\"]],\"Blanditos Kauai\":[\"Blanditos\",[\"kauai\"]],\"MTNG Apolo Homem\":[\"MTNG\",[\"apolo\"]],\"MTNG Jovem Orbit\":[\"MTNG\",[\"orbit\"],[\"baby\"]],\"Blanditos Delfin Adulto\":[\"Blanditos\",[\"delfin adulto\"]],\"Blanditos Crono\":[\"Blanditos\",[\"crono\"]],\"Blanditos Ulisses, Hercules e Hefesto\":[\"Blanditos\",[\"ulisses\",\"hercules\",\"hefesto\"]],\"Blanditos Ares/ Venus\":[\"Blanditos\",[\"ares\",\"venus\"]],\"Blanditos Olimpo\":[\"Blanditos\",[\"olimpo\"]],\"Blanditos Hera\":[\"Blanditos\",[\"hera\"],[\"herc\"]],\"Blanditos Creta\":[\"Blanditos\",[\"creta\"]],\"Blanditos Ballet\":[\"Blanditos\",[\"ballet\"]],\"Blanditos Caspio\":[\"Blanditos\",[\"caspio\"]],\"Blanditos Poseidon\":[\"Blanditos\",[\"poseidon\"]],\"Blanditos Azores\":[\"Blanditos\",[\"azores\"]],\"Blanditos Guppy/ Molly/ GOldfish\":[\"Blanditos\",[\"guppy\",\"molly\",\"goldfish\"]],\"Blanditos Capri\":[\"Blanditos\",[\"capri\"]],\"Blanditos Saona\":[\"Blanditos\",[\"saona\"]],\"Blanditos Costa\":[\"Blanditos\",[\"costa\"]],\"Blanditos Timon\":[\"Blanditos\",[\"timon\"]],\"Chetto Chicago Pequenos\":[\"Chetto\",[\"chicago\",\"doha\"],[\"adulto\"]],\"Chetto Chicago Grandes\":[\"Chetto\",[\"chicago\",\"doha\"],[\"adulto\"]],\"Chetto Baby Free\":[\"Chetto\",[\"babyfree\",\"baby free\"]],\"Chetto Chicago Adulto\":[\"Chetto\",[\"chicago\"]],\"Sand\u00E1lias Chetto Fechadas\":[\"Chetto\",[\"sandalias\"],[\"azul\",\"caqui\",\"castanho\"]],\"Sand\u00E1lias Chetto Abertas\":[\"Chetto\",[\"sandalias\"],[\"azul\",\"caqui\",\"castanho\"]],\"Chetto Desportivo\":[\"Chetto\",[\"desportiv\"],[\"babyfree\"]],\"Chetto Botas Waterproof\":[\"Chetto\",[\"waterproof\"]],\"Chetto Lonas\":[\"Chetto\",[\"lonas\"]],\"Chetto Dupla Fivela\":[\"Chetto\",[\"fivela\"]],\"Victoria Bosco\":[\"Victoria\",[\"bosco\"]],\"Victoria Oliver\":[\"Victoria\",[\"oliver\"]],\"Victoria Halo\":[\"Victoria\",[\"halo\"]],\"Victoria Kai\":[\"Victoria\",[\"kai\"]],\"Victoria Olmo\":[\"Victoria\",[\"olmo\"]],\"Victoria Duna\":[\"Victoria\",[\"duna\"]],\"Coqueflex 4389\":[\"Coqueflex\",[\"4389\"]],\"Attipas Skin\":[\"Joykids\",[\"attipas\"]],\"MTNG River\":[\"MTNG\",[\"river\"]],\"MTNG Botas Alask\":[\"MTNG\",[\"alask\"]],\"MTNG\":[\"MTNG\",[]],\"MTNG Luzes\":[\"MTNG\",[\"luzes\",\"unicornio\"]],\"MTNG Chuteiras\":[\"MTNG\",[\"chuteira\"]],\"MTNG Desportivos\":[\"MTNG\",[\"desportiv\",\"usain\",\"sapatilhas\"]],\"MTNG Sand\u00E1lias\":[\"MTNG\",[\"sandalias\"]],\"MTNG Alask Botas\":[\"MTNG\",[\"alask\",\"forrado\"]],\"MTNG Orbit\":[\"MTNG\",[\"orbit\"]],\"MTNG Aria\":[\"MTNG\",[\"aria\"]],\"MTNG Miami\":[\"MTNG\",[\"miami\"]],\"MTNG Suede\":[\"MTNG\",[\"suede\"]],\"MTNG Botim Suede\":[\"MTNG\",[\"botim\"],[\"forrado\"]],\"MTNG Apolo\":[\"MTNG\",[\"apolo\"]],\"MTNG Alask\":[\"MTNG\",[\"alask\"]],\"MTNG Jym\":[\"MTNG\",[\"jym\"]],\"MTNG Sand\u00E1lias Nylon\":[\"MTNG\",[\"nylon\"]],\"MTNG Cleo\":[\"MTNG\",[\"cleo\"]],\"Igor Mendi\":[\"Igor\",[\"mendi\"]],\"Igor Yogi\":[\"Igor\",[\"yogi\"]],\"Igor Homie\":[\"Igor\",[\"homie\"]],\"Igor\":[\"Igor\",[]],\"Igor Nemo\":[\"Igor\",[\"nemo\"]],\"Igor Ura\":[\"Igor\",[\"ura\"]],\"Igor Malibu\":[\"Igor\",[\"malibu\"]],\"Igor Berri\":[\"Igor\",[\"berri\"]],\"Galochas Koel\":[\"Koel\",[\"galocha\"]],\"Anatomic Starter\":[\"Anatomic4All\",[]],\"Bar3foot Elf\":[\"Bar3foot\",[\"elf\"]],\"Bobux XP\":[\"Bobux\",[\"xp\"]],\"Bobux IW\":[\"Bobux\",[\"iw\"]],\"Bobux KP\":[\"Bobux\",[\"kp\"]],\"D. D. Step 063\":[\"D D Step\",[]],\"D. D. Step 070\":[\"D D Step\",[]],\"D. D. Step 073\":[\"D D Step\",[]],\"D. D. Step 086\":[\"D D Step\",[]],\"Froddo Prewalkers\":[\"Froddo\",[\"prewalkers\"]],\"Froddo Base\":[\"Froddo\",[\"base\"]],\"Froddo Zeru\":[\"Froddo\",[\"zeru\"]],\"Froddo Splash\":[\"Froddo\",[\"splash\"]],\"Froddo Sandals\":[\"Froddo\",[\"sandalias\",\"sandals\"],[\"prewalkers\"]],\"Froddo Flexy W\":[\"Froddo\",[\"flexy w\"]],\"Froddo Flexy F\":[\"Froddo\",[\"flexy f\"]],\"Froddo Botas\":[\"Froddo\",[\"botas\"]],\"Froddo Canvas\":[\"Froddo\",[\"canvas\"]],\"Froddo Laces\":[\"Froddo\",[\"laces\"]],\"Froddo Wooly\":[\"Froddo\",[\"wooly\"]],\"Coucou\u00E7ava\":[\"Coucou\u00E7ava\",[]],\"Coucou\u00E7ava Nova Sola\":[\"Coucou\u00E7ava\",[]],\"Muris\":[\"Muris\",[]],\"Muris Verona\":[\"Muris\",[\"verona\"]],\"Muris Rio Adulto\":[\"Muris\",[\"rio\"],[\"junior\",\"mini\"]],\"Muris Fiji Mini\":[\"Muris\",[\"fiji\"]],\"Muris Rio Junior\":[\"Muris\",[\"rio\"],[\"adulto\"]],\"Mum In\u00E9s More\":[\"Mum Barefoot\",[\"more\"]],\"Mum In\u00E9s Dusk\":[\"Mum Barefoot\",[\"dusk\"]],\"Mum In\u00E9s Saffron\":[\"Mum Barefoot\",[\"saffron\"]],\"Mum Atlas\":[\"Mum Barefoot\",[\"atlas\"]],\"Mum Sabrinas N\u00FAria\":[\"Mum Barefoot\",[\"sabrina\",\"nuria\"]],\"Garvalin Bluey\":[\"Garvalin\",[\"bluey\"],[\"pantufas\"]],\"Garvalin Urban\":[\"Garvalin\",[\"urban\",\"pantufas\"]],\"Lejan One\":[\"Lejan\",[\"one\"]],\"Lejan Melrose\":[\"Lejan\",[\"melrose\"]],\"Blanditos Porto / Torino / Caicos / Lisboa\":[\"Blanditos\",[\"porto\",\"torino\",\"caicos\",\"lisboa\"]],\"Chetto Galochas\":[\"Chetto\",[\"galocha\"]],\"Igor Galochas Alex\":[\"Igor\",[\"galochas alex\"]],\"Igor Berlin\":[\"Igor\",[\"berlin\"]],\"Muris Nuuk / Basel\":[\"Muris\",[\"nuuk\",\"basel\"],[\"junior\"]],\"Muris Bansko Mini / Petra Mini\":[\"Muris\",[\"bansko mini\",\"petra mini\"]],\"Muris Petra Junior\":[\"Muris\",[\"petra junior\"]],\"MTNG Baby\":[\"MTNG\",[\"baby\"]],\"Igor Tennis / Merceditas Viena\":[\"Igor\",[\"tennis\",\"merceditas\"]],\"MTNG Free Botas\":[\"MTNG\",[\"free botas\"],[\"alask\"]],\"Attipas\":[\"Joykids\",[\"attipas\"]]};   // nome -> [vendor, [palavras], [excluir]]\n\n  var MIN_GAP = 8, MAX_GAP = 12, IDEAL_GAP = 10;\n  var MAX_THUMBS = 8;\n\n  function decHandle(s) {\n    var c = s.charCodeAt(0);\n    return (c >= 65 && c <= 90) ? PFX[c - 65] + s.slice(1) : s;\n  }\n  HANDLES = HANDLES.split(' ').map(decHandle);\n\n  var DB = [];\n  MODELS.forEach(function (m) {\n    var handles = m[3] ? m[3].split(',').map(function (i) { return HANDLES[parseInt(i, 36)]; }) : [];\n    var foot = m[4] === 'f'; // tabela da marca por medida do p\u00E9 (a folga j\u00E1 est\u00E1 inclu\u00EDda)\n    m[2].split(';').forEach(function (row) {\n      var p = row.split(',');\n      var size = isNaN(+p[0]) ? String(p[0]).toUpperCase() : +p[0];\n      if (foot) DB.push({ name: m[0], cat: m[1], size: size, fmin: +p[1], fmax: +p[2], width: 0, foot: true, handles: handles });\n      else DB.push({ name: m[0], cat: m[1], size: size, length: +p[1], width: +(p[2] || 0), handles: handles });\n    });\n  });\n\n  /* ---------- UTIL ---------- */\n  function norm(s) {\n    return ' ' + String(s || '').normalize('NFD').replace(/[\u0300-\u036F]/g, '').toLowerCase()\n      .replace(/[^a-z0-9]+/g, ' ').trim() + ' ';\n  }\n  function esc(s) {\n    return String(s == null ? '' : s).replace(/[&<>\"']/g, function (c) {\n      return { '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;', \"'\": '&#39;' }[c];\n    });\n  }\n  function dn(n) {\n    return String(n).replace(/\\s*\\/\\s*/g, ' / ').replace('GOldfish', 'Goldfish');\n  }\n  function money(cents) {\n    return '\u20AC' + (cents / 100).toFixed(2).replace('.', ',');\n  }\n  function img(src, w) {\n    if (!src) return '';\n    if (src.indexOf('//') === 0) src = 'https:' + src;\n    return src + (src.indexOf('?') > -1 ? '&' : '?') + 'width=' + w;\n  }\n  function el(html) {\n    var d = document.createElement('div');\n    d.innerHTML = html.trim();\n    return d.firstChild;\n  }\n\n  /* medida do p\u00E9 guardada neste navegador (para n\u00E3o ter de medir em cada produto) */\n  function saveFoot(L, W, ctx) {\n    try {\n      var prev = JSON.parse(localStorage.getItem('ruutFoot') || 'null') || {};\n      var o = { L: L, W: W || 0, t: Date.now() };\n      var c = ctx || (prev.L === L ? { para: prev.para, fase: prev.fase } : null);\n      if (c && c.para) { o.para = c.para; o.fase = c.fase; }\n      localStorage.setItem('ruutFoot', JSON.stringify(o));\n    } catch (e) {}\n  }\n  function calcURL(f) {\n    return '/pages/calculadora-v3?pe=' + f.L + (f.W ? '&largura=' + f.W : '') +\n      (f.para ? '&para=' + f.para + '&fase=' + f.fase : '');\n  }\n  function loadFoot() {\n    try {\n      var f = JSON.parse(localStorage.getItem('ruutFoot') || 'null');\n      // medidas com mais de 4 meses j\u00E1 n\u00E3o servem (os p\u00E9s crescem)\n      if (f && f.L && Date.now() - f.t < 1000 * 60 * 60 * 24 * 120) return f;\n    } catch (e) {}\n    return null;\n  }\n\n  /* ---------- STOCK (pedidos aos produtos) ---------- */\n  var cache = {};\n  var queue = [], active = 0, LIMIT = 6;\n  function pump() {\n    while (active < LIMIT && queue.length) {\n      var job = queue.shift();\n      active++;\n      fetch('/products/' + job.h + '.js', { credentials: 'same-origin' })\n        .then(function (r) { return r.ok ? r.json() : null; })\n        .catch(function () { return null; })\n        .then((function (j) { return function (p) { active--; j.resolve(p); pump(); }; })(job));\n    }\n  }\n  function getProduct(h) {\n    if (!cache[h]) {\n      cache[h] = new Promise(function (resolve) { queue.push({ h: h, resolve: resolve }); pump(); });\n    }\n    return cache[h];\n  }\n  function sizeIndex(p) {\n    var i;\n    for (i = 0; i < p.options.length; i++) {\n      if (norm(p.options[i].name || p.options[i]).indexOf('tamanho') > -1) return i;\n    }\n    for (i = 0; i < p.options.length; i++) {\n      var vals = p.options[i].values || [];\n      if (vals.length && vals.every(function (v) { return !isNaN(parseFloat(String(v).replace(',', '.'))); })) return i;\n    }\n    return -1;\n  }\n  function variantFor(p, size) {\n    var idx = sizeIndex(p);\n    if (idx < 0) return null;\n    var found = null;\n    p.variants.forEach(function (v) {\n      var raw = String(v.options[idx]).trim();\n      var ok = typeof size === 'string' ? raw.toUpperCase() === size\n        : parseFloat(raw.replace('\u00BD', '.5').replace(',', '.')) === size;\n      if (ok && v.available && !found) found = v;\n    });\n    return found;\n  }\n\n  /* Procura produtos novos do mesmo modelo (ex.: cores acabadas de chegar) */\n  var discoverCache = {};\n  function discover(name) {\n    var r = RULES[name];\n    if (!r) return Promise.resolve([]);\n    var vendor = r[0], words = r[1], excl = r[2] || [];\n    var terms = words.length ? words : [vendor];\n    var key = name;\n    if (discoverCache[key]) return discoverCache[key];\n    discoverCache[key] = Promise.all(terms.map(function (t) {\n      var url = '/search/suggest.json?q=' + encodeURIComponent(t) +\n        '&resources[type]=product&resources[limit]=10&resources[options][unavailable_products]=hide&resources[options][fields]=title,vendor';\n      return fetch(url).then(function (x) { return x.ok ? x.json() : null; }).catch(function () { return null; });\n    })).then(function (res) {\n      var out = [];\n      res.forEach(function (j) {\n        var ps = j && j.resources && j.resources.results && j.resources.results.products || [];\n        ps.forEach(function (p) {\n          var t = norm(p.title);\n          if (p.vendor !== vendor) return;\n          if (words.length && !words.some(function (w) { return t.indexOf(' ' + w) > -1; })) return;\n          if (excl.some(function (w) { return t.indexOf(' ' + w) > -1; })) return;\n          if (out.indexOf(p.handle) < 0) out.push(p.handle);\n        });\n      });\n      return out;\n    });\n    return discoverCache[key];\n  }\n\n  /* ---------- ESTILOS ---------- */\n  var CSS = [\n    '.rcalc{--rc-ink:#1a1a1a;--rc-muted:#6b6b6b;--rc-line:#e6e2dc;--rc-soft:#f7f5f2;--rc-ok:#1f7a4d;--rc-okbg:#e8f4ee;--rc-warn:#9a5b00;--rc-warnbg:#fff4e0;--rc-bad:#b42318;--rc-badbg:#fdecea;color:var(--rc-ink);max-width:960px;margin:0 auto;font-size:16px;line-height:1.45}',\n    '.rcalc *{box-sizing:border-box}',\n    '.rcalc-card{background:#fff;border:1px solid var(--rc-line);border-radius:14px;padding:20px;box-shadow:0 2px 10px rgba(0,0,0,.04)}',\n    '.rcalc h3{font-size:1.15em;margin:0 0 4px}',\n    '.rcalc-intro{color:var(--rc-muted);margin:0 0 16px}',\n    '.rcalc-field{margin:0 0 16px}',\n    '.rcalc-label{display:block;font-weight:600;margin:0 0 6px}',\n    '.rcalc-hint{display:block;color:var(--rc-muted);font-size:.85em;margin-top:4px}',\n    '.rcalc-seg{display:flex;flex-wrap:wrap;gap:8px}',\n    '.rcalc-seg button{flex:1 1 140px;min-height:46px;padding:10px 12px;border:1.5px solid var(--rc-line);background:#fff;border-radius:10px;font:inherit;color:inherit;cursor:pointer;text-align:center}',\n    '.rcalc-seg button[aria-pressed=\"true\"]{border-color:var(--rc-ink);background:var(--rc-ink);color:#fff}',\n    '.rcalc-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}',\n    '@media (max-width:560px){.rcalc-row{grid-template-columns:1fr}}',\n    '.rcalc-input{position:relative}',\n    '.rcalc-input input{width:100%;min-height:48px;padding:10px 48px 10px 14px;border:1.5px solid var(--rc-line);border-radius:10px;font:inherit;font-size:16px;background:#fff;color:inherit}',\n    '.rcalc-input input:focus{outline:none;border-color:var(--rc-ink)}',\n    '.rcalc-input span{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--rc-muted);pointer-events:none}',\n    '.rcalc-how{margin:0 0 16px;border:1px solid var(--rc-line);border-radius:10px;background:var(--rc-soft)}',\n    '.rcalc-how summary{cursor:pointer;padding:12px 14px;font-weight:600;list-style:none}',\n    '.rcalc-how summary::-webkit-details-marker{display:none}',\n    '.rcalc-how summary:before{content:\"+\";display:inline-block;width:1.2em}',\n    '.rcalc-how[open] summary:before{content:\"\u2013\"}',\n    '.rcalc-how ol{margin:0;padding:0 18px 14px 36px}',\n    '.rcalc-how li{margin:0 0 6px}',\n    '.rcalc-btn{display:block;width:100%;min-height:52px;border:0;border-radius:10px;background:var(--rc-ink);color:#fff;font:inherit;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}',\n    '.rcalc-btn:hover{opacity:.9}',\n    '.rcalc-err{color:var(--rc-bad);margin:10px 0 0;font-weight:600}',\n    '.rcalc-res{margin-top:24px}',\n    '.rcalc-sum{background:var(--rc-soft);border-radius:12px;padding:16px 18px;margin:0 0 18px}',\n    '.rcalc-sum strong{font-size:1.05em}',\n    '.rcalc-sum p{margin:4px 0 0;color:var(--rc-muted)}',\n    '.rcalc-loading{display:flex;align-items:center;gap:10px;color:var(--rc-muted);padding:12px 2px}',\n    '.rcalc-spin{width:18px;height:18px;border:2px solid var(--rc-line);border-top-color:var(--rc-ink);border-radius:50%;animation:rcspin .8s linear infinite}',\n    '@keyframes rcspin{to{transform:rotate(360deg)}}',\n    '.rcalc-model{border:1px solid var(--rc-line);border-radius:14px;padding:16px;margin:0 0 16px;background:#fff}',\n    '.rcalc-mh{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 12px;margin:0 0 6px}',\n    '.rcalc-mname{font-weight:700;font-size:1.05em}',\n    '.rcalc-size{font-weight:700;background:var(--rc-ink);color:#fff;border-radius:999px;padding:3px 12px;font-size:.9em;white-space:nowrap}',\n    '.rcalc-meta{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px;font-size:.85em}',\n    '.rcalc-tag{border-radius:999px;padding:3px 10px;background:var(--rc-soft);color:var(--rc-ink)}',\n    '.rcalc-tag.ok{background:var(--rc-okbg);color:var(--rc-ok)}',\n    '.rcalc-tag.warn{background:var(--rc-warnbg);color:var(--rc-warn)}',\n    '.rcalc-tag.bad{background:var(--rc-badbg);color:var(--rc-bad)}',\n    '.rcalc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}',\n    '@media (max-width:749px){.rcalc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}',\n    '.rcalc a{color:var(--rc-ink)}',\n    '.rcalc-p{display:flex;flex-direction:column;text-decoration:none;color:var(--rc-ink)!important;border-radius:10px;overflow:hidden;border:1px solid var(--rc-line);background:#fff;transition:box-shadow .15s}',\n    '.rcalc-p:hover{box-shadow:0 4px 14px rgba(0,0,0,.08)}',\n    '.rcalc-p .im{aspect-ratio:1/1;background:var(--rc-soft);display:flex;align-items:center;justify-content:center;overflow:hidden}',\n    '.rcalc-p img{width:100%;height:100%;object-fit:contain}',\n    '.rcalc-p .tx{padding:8px 10px 10px;display:flex;flex-direction:column;gap:4px;flex:1}',\n    '.rcalc-p .nm{font-size:.85em;line-height:1.3;color:var(--rc-ink)}',\n    '.rcalc-p .pr{font-weight:700;font-size:.9em}',\n    '.rcalc-p .pr s{font-weight:400;color:var(--rc-muted);margin-right:6px}',\n    '.rcalc-p .go{margin-top:auto;font-size:.8em;font-weight:700;text-decoration:underline}',\n    '.rcalc-more{margin-top:10px;background:none;border:0;padding:6px 0;font:inherit;font-weight:600;text-decoration:underline;cursor:pointer;color:inherit}',\n    '.rcalc-nostock{margin-top:8px;border:1px dashed var(--rc-line);border-radius:12px;padding:0}',\n    '.rcalc-nostock summary{cursor:pointer;padding:12px 14px;font-weight:600}',\n    '.rcalc-nostock ul{margin:0;padding:0 14px 14px 32px}',\n    '.rcalc-nostock li{margin:0 0 4px}',\n    '.rcalc-empty{background:var(--rc-warnbg);border-radius:12px;padding:16px 18px;color:var(--rc-warn)}',\n    '.rcalc-foot{color:var(--rc-muted);font-size:.85em;margin-top:18px}'\n  ].join('\\n');\n\n  /* ---------- INTERFACE ---------- */\n  var FORM =\n    '<div class=\"rcalc\">' +\n    '<div class=\"rcalc-card\">' +\n    '<h3>Descobre o tamanho certo</h3>' +\n    '<p class=\"rcalc-intro\">Indica a medida do p\u00E9 e mostramos-te os modelos que servem, j\u00E1 com o tamanho certo e s\u00F3 o que temos em stock.</p>' +\n    '<div class=\"rcalc-field\"><span class=\"rcalc-label\" id=\"rc-l-who\">Para quem \u00E9 o cal\u00E7ado?</span>' +\n    '<div class=\"rcalc-seg\" role=\"group\" aria-labelledby=\"rc-l-who\" data-k=\"who\">' +\n    '<button type=\"button\" data-v=\"child\" aria-pressed=\"true\">Crian\u00E7a</button>' +\n    '<button type=\"button\" data-v=\"adult\" aria-pressed=\"false\">Adulto</button></div></div>' +\n    '<div class=\"rcalc-field\" data-show=\"child\"><span class=\"rcalc-label\" id=\"rc-l-march\">H\u00E1 quanto tempo caminha?</span>' +\n    '<div class=\"rcalc-seg\" role=\"group\" aria-labelledby=\"rc-l-march\" data-k=\"march\">' +\n    '<button type=\"button\" data-v=\"recent\" aria-pressed=\"true\">Menos de 6 meses<br><small>Primeiros passos</small></button>' +\n    '<button type=\"button\" data-v=\"acquired\" aria-pressed=\"false\">Mais de 6 meses<br><small>Marcha adquirida</small></button></div></div>' +\n    '<div class=\"rcalc-field\" data-show=\"adult\" hidden><span class=\"rcalc-label\" id=\"rc-l-exp\">J\u00E1 usaste cal\u00E7ado barefoot?</span>' +\n    '<div class=\"rcalc-seg\" role=\"group\" aria-labelledby=\"rc-l-exp\" data-k=\"exp\">' +\n    '<button type=\"button\" data-v=\"beginner\" aria-pressed=\"true\">\u00C9 a primeira vez<br><small>Transi\u00E7\u00E3o, sola com mais prote\u00E7\u00E3o</small></button>' +\n    '<button type=\"button\" data-v=\"experienced\" aria-pressed=\"false\">J\u00E1 uso barefoot<br><small>Sola fina</small></button></div></div>' +\n    '<div class=\"rcalc-row\">' +\n    '<div class=\"rcalc-field\"><label class=\"rcalc-label\" for=\"rc-len\">Comprimento do p\u00E9</label>' +\n    '<div class=\"rcalc-input\"><input id=\"rc-len\" type=\"number\" inputmode=\"decimal\" min=\"80\" max=\"330\" step=\"0.5\" placeholder=\"Ex.: 155\"><span>mm</span></div>' +\n    '<span class=\"rcalc-hint\">Do calcanhar \u00E0 ponta do dedo mais comprido.</span></div>' +\n    '<div class=\"rcalc-field\"><label class=\"rcalc-label\" for=\"rc-wid\">Largura do p\u00E9 <small>(opcional)</small></label>' +\n    '<div class=\"rcalc-input\"><input id=\"rc-wid\" type=\"number\" inputmode=\"decimal\" min=\"30\" max=\"140\" step=\"0.5\" placeholder=\"Ex.: 65\"><span>mm</span></div>' +\n    '<span class=\"rcalc-hint\">Na zona mais larga, junto aos dedos.</span></div>' +\n    '</div>' +\n    '<details class=\"rcalc-how\"><summary>Como medir o p\u00E9 em casa</summary><ol>' +\n    '<li>Coloca uma folha de papel no ch\u00E3o, encostada a uma parede.</li>' +\n    '<li>Com a pessoa de p\u00E9 (peso nos dois p\u00E9s) e o calcanhar encostado \u00E0 parede, marca a ponta do dedo mais comprido.</li>' +\n    '<li>Mede com uma r\u00E9gua da parede at\u00E9 \u00E0 marca, em mil\u00EDmetros.</li>' +\n    '<li>Para a largura, marca os dois lados da zona mais larga do p\u00E9 e mede a dist\u00E2ncia.</li>' +\n    '<li>Mede os dois p\u00E9s e usa a medida do maior. O ideal \u00E9 medir ao fim do dia.</li>' +\n    '</ol></details>' +\n    '<button type=\"button\" class=\"rcalc-btn\">Ver tamanhos e modelos</button>' +\n    '<div class=\"rcalc-err\" role=\"alert\" hidden></div>' +\n    '</div>' +\n    '<div class=\"rcalc-res\" aria-live=\"polite\"></div>' +\n    '</div>';\n\n  function mount() {\n    var root = document.getElementById('ruut-calc-root');\n    var old = document.querySelector('.ruut-calc-container');\n    if (!root && !old) return; // s\u00F3 na p\u00E1gina da calculadora\n    if (!root) {\n      root = document.createElement('div');\n      root.id = 'ruut-calc-root';\n      if (old && old.parentNode) old.parentNode.insertBefore(root, old);\n      else {\n        var host = document.querySelector('main .rte') || document.querySelector('main') || document.body;\n        host.appendChild(root);\n      }\n    }\n    if (old && old.parentNode) old.parentNode.removeChild(old);\n    var oldRes = document.getElementById('result');\n    if (oldRes && !root.contains(oldRes)) oldRes.parentNode.removeChild(oldRes);\n\n    var st = document.createElement('style');\n    st.textContent = CSS;\n    document.head.appendChild(st);\n    root.innerHTML = FORM;\n    init(root.querySelector('.rcalc'));\n  }\n\n  function init(box) {\n    var state = { who: 'child', march: 'recent', exp: 'beginner' };\n    box.querySelectorAll('.rcalc-seg').forEach(function (seg) {\n      seg.addEventListener('click', function (e) {\n        var b = e.target.closest('button');\n        if (!b) return;\n        seg.querySelectorAll('button').forEach(function (x) { x.setAttribute('aria-pressed', x === b ? 'true' : 'false'); });\n        state[seg.getAttribute('data-k')] = b.getAttribute('data-v');\n        if (seg.getAttribute('data-k') === 'who') {\n          box.querySelectorAll('[data-show]').forEach(function (f) { f.hidden = f.getAttribute('data-show') !== state.who; });\n        }\n      });\n    });\n    var len = box.querySelector('#rc-len'), wid = box.querySelector('#rc-wid');\n    var err = box.querySelector('.rcalc-err'), res = box.querySelector('.rcalc-res');\n    function go() {\n      err.hidden = true;\n      var L = parseFloat(String(len.value).replace(',', '.'));\n      var W = parseFloat(String(wid.value).replace(',', '.'));\n      if (!L) { err.textContent = 'Indica o comprimento do p\u00E9.'; err.hidden = false; len.focus(); return; }\n      // medida em cm por engano (ex.: 15,5) -> converte para mm\n      if (L < 40) { L = Math.round(L * 100) / 10; len.value = L; }\n      if (W && W < 15) { W = Math.round(W * 100) / 10; wid.value = W; }\n      if (L < 80 || L > 330) { err.textContent = 'Confirma a medida: o comprimento deve estar em mil\u00EDmetros (ex.: 155).'; err.hidden = false; len.focus(); return; }\n      var para = state.who === 'adult' ? 'adulto' : 'crianca';\n      var fase = state.who === 'adult' ? (state.exp === 'experienced' ? 'experiente' : 'iniciante')\n        : (state.march === 'acquired' ? 'adquirida' : 'recente');\n      saveFoot(L, W || 0, { para: para, fase: fase });\n      run(L, W || 0, state, res);\n    }\n    function pick(k, v) {\n      var b = box.querySelector('[data-k=\"' + k + '\"] [data-v=\"' + v + '\"]');\n      if (b) b.click();\n    }\n    box.querySelector('.rcalc-btn').addEventListener('click', go);\n    // medidas vindas da mini calculadora (link) ou guardadas neste navegador\n    var qs = {};\n    location.search.replace(/^\\?/, '').split('&').forEach(function (kv) {\n      var p = kv.split('='); if (p[0]) qs[decodeURIComponent(p[0])] = decodeURIComponent(p[1] || '');\n    });\n    if (qs.para === 'adulto') pick('who', 'adult');\n    if (qs.fase === 'adquirida') pick('march', 'acquired');\n    if (qs.fase === 'experiente') pick('exp', 'experienced');\n    var saved = loadFoot();\n    var qL = parseFloat(qs.pe), qW = parseFloat(qs.largura);\n    if (qL) { len.value = qL; if (qW) wid.value = qW; go(); }\n    else if (saved) {\n      if (saved.para === 'adulto') pick('who', 'adult');\n      if (saved.fase === 'adquirida') pick('march', 'acquired');\n      if (saved.fase === 'experiente') pick('exp', 'experienced');\n      len.value = saved.L; if (saved.W) wid.value = saved.W;\n    }\n    [len, wid].forEach(function (i) { i.addEventListener('keydown', function (e) { if (e.key === 'Enter') go(); }); });\n  }\n\n  /* ---------- C\u00C1LCULO ---------- */\n  // marcha adquirida tamb\u00E9m v\u00EA primeiros passos (n\u00E3o o contr\u00E1rio);\n  // barefoot total tamb\u00E9m v\u00EA transi\u00E7\u00E3o (n\u00E3o o contr\u00E1rio)\n  function catOk(row, s) {\n    if (s.who === 'child') return s.march === 'recent' ? row.cat === 'p' : (row.cat === 'm' || row.cat === 'p');\n    return s.exp === 'beginner' ? row.cat === 't' : (row.cat === 'b' || row.cat === 't');\n  }\n  function mainCat(s) {\n    if (s.who === 'child') return s.march === 'recent' ? 'p' : 'm';\n    return s.exp === 'beginner' ? 't' : 'b';\n  }\n  function widthInfo(row, W) {\n    if (!W || !row.width) return { score: 2, tag: '' };\n    var d = Math.round((row.width - W) * 10) / 10;\n    if (d >= 0 && d <= 10) return { score: 3, tag: '<span class=\"rcalc-tag ok\">Largura ideal (+' + d + ' mm)</span>' };\n    if (d > 10) return { score: 1, tag: '<span class=\"rcalc-tag warn\">Largo, com folga extra (+' + d + ' mm)</span>' };\n    return { score: 0, tag: '<span class=\"rcalc-tag bad\">Pode ficar apertado (' + d + ' mm)</span>' };\n  }\n\n  // ordem: primeiro a maior folga, depois vai diminuindo (a largura s\u00F3 desempata)\n  // tabelas por medida do p\u00E9 (Tip Toey Joey, Attipas): p\u00E9 no in\u00EDcio do intervalo = mais espa\u00E7o\n  function footRoom(r, L) {\n    var span = r.fmax - r.fmin;\n    var pos = span > 0 ? (L - r.fmin) / span : 0.5;\n    pos = Math.max(0, Math.min(1, pos));\n    return Math.round((MAX_GAP - pos * (MAX_GAP - MIN_GAP)) * 10) / 10;\n  }\n  function rank(a, b) {\n    var ga = a.sortGap != null ? a.sortGap : (a.gap == null ? IDEAL_GAP : a.gap);\n    var gb = b.sortGap != null ? b.sortGap : (b.gap == null ? IDEAL_GAP : b.gap);\n    if (gb !== ga) return gb - ga;\n    return b.w.score - a.w.score;\n  }\n\n  function run(L, W, s, res) {\n    var minL = L + MIN_GAP, maxL = L + MAX_GAP;\n    var rows = DB.filter(function (r) {\n      if (!catOk(r, s)) return false;\n      if (r.foot) return L >= r.fmin - 0.5 && L <= r.fmax + 0.5;\n      return r.length >= minL && r.length <= maxL;\n    });\n\n    // agrupar por modelo; cada modelo pode ter 1 ou 2 tamanhos que servem\n    var models = {}, order = [];\n    rows.forEach(function (r) {\n      var m = models[r.name];\n      if (!m) {\n        m = models[r.name] = { name: r.name, sizes: [], handles: [], cats: [], generic: !!(RULES[r.name] && !RULES[r.name][1].length) };\n        order.push(m);\n      }\n      if (m.cats.indexOf(r.cat) < 0) m.cats.push(r.cat);\n      if (m.sizes.some(function (x) { return x.size === r.size; })) return;\n      m.sizes.push(r.foot\n        ? { size: r.size, foot: true, fmin: r.fmin, fmax: r.fmax, w: widthInfo(r, W), gap: IDEAL_GAP, sortGap: footRoom(r, L) }\n        : { size: r.size, length: r.length, w: widthInfo(r, W), gap: Math.round((r.length - L) * 10) / 10 });\n      r.handles.forEach(function (h) { if (m.handles.indexOf(h) < 0) m.handles.push(h); });\n    });\n    order.forEach(function (m) { m.sizes.sort(rank); m.best = m.sizes[0]; });\n    order.sort(function (a, b) { return rank(a.best, b.best); });\n\n    var who = s.who === 'child' ? 'o p\u00E9 da crian\u00E7a' : 'o teu p\u00E9';\n    var sum = '<div class=\"rcalc-sum\"><strong>Para ' + who + ' com ' + String(L).replace('.', ',') + ' mm</strong>' +\n      '<p>Procur\u00E1mos cal\u00E7ado com ' + String(minL).replace('.', ',') + ' a ' + String(maxL).replace('.', ',') +\n      ' mm de comprimento interior: a folga de 8 a 12 mm deixa os dedos mexer' +\n      (s.who === 'child' ? ' e d\u00E1 margem para o p\u00E9 crescer.' : ' \u00E0 vontade.') + '</p></div>';\n\n    if (!order.length) {\n      res.innerHTML = sum + '<div class=\"rcalc-empty\"><strong>N\u00E3o encontr\u00E1mos modelos com a folga ideal para esta medida.</strong>' +\n        '<p>Confirma a medida ou fala connosco: ajudamos-te a escolher.</p></div>';\n      return;\n    }\n    res.innerHTML = sum + '<div class=\"rcalc-loading\"><span class=\"rcalc-spin\"></span>A verificar o stock no teu tamanho\u2026</div>';\n    if (res.scrollIntoView) res.scrollIntoView({ behavior: 'smooth', block: 'start' });\n    var token = {};\n    res.__token = token;\n\n    Promise.all(order.map(function (m) {\n      return discover(m.name).then(function (extra) {\n        extra.forEach(function (h) { if (m.handles.indexOf(h) < 0) m.handles.push(h); });\n        return Promise.all(m.handles.map(function (h) {\n          return getProduct(h).then(function (p) {\n            if (!p) return null;\n            for (var i = 0; i < m.sizes.length; i++) {\n              var v = variantFor(p, m.sizes[i].size);\n              if (v) return { h: h, p: p, v: v, size: m.sizes[i].size };\n            }\n            return null;\n          });\n        }));\n      }).then(function (items) { m.items = items.filter(Boolean); });\n    })).then(function () {\n      if (res.__token !== token) return;\n      // cada produto aparece uma s\u00F3 vez: primeiro nos modelos espec\u00EDficos, depois nos gerais da marca\n      var claimed = {};\n      [false, true].forEach(function (gen) {\n        order.forEach(function (m) {\n          if (m.generic !== gen) return;\n          m.items = m.items.filter(function (x) { if (claimed[x.h]) return false; claimed[x.h] = 1; return true; });\n        });\n      });\n      var ld = res.querySelector('.rcalc-loading');\n      if (ld) ld.parentNode.removeChild(ld);\n      var list = el('<div class=\"rcalc-list\"></div>');\n      res.appendChild(list);\n      var noStock = [];\n      order.forEach(function (m) {\n        if (m.items.length) list.appendChild(renderGroup(m));\n        else if (!m.generic) noStock.push(m);\n      });\n      if (!list.children.length) {\n        list.appendChild(el('<div class=\"rcalc-empty\"><strong>Neste momento n\u00E3o temos stock nos modelos que servem a esta medida.</strong>' +\n          '<p>Fala connosco: podemos encomendar ou avisar-te quando chegarem.</p></div>'));\n      }\n      if (noStock.length) {\n        var lis = noStock.map(function (m) {\n          return '<li><a href=\"/search?type=product&q=' + encodeURIComponent(dn(m.name).replace(' / ', ' ')) + '\">' + esc(dn(m.name)) + '</a> \u2014 tamanho ' +\n            m.sizes.map(function (x) { return x.size; }).join(' ou ') + '</li>';\n        }).join('');\n        res.appendChild(el('<details class=\"rcalc-nostock\"><summary>Tamb\u00E9m servem, mas est\u00E3o sem stock no teu tamanho (' + noStock.length + ')</summary><ul>' + lis + '</ul></details>'));\n      }\n      res.appendChild(el('<p class=\"rcalc-foot\">As medidas indicadas s\u00E3o do interior de cada modelo. Se ficares entre dois tamanhos, escolhe o maior. Tens d\u00FAvidas? Fala connosco, ajudamos-te a escolher.</p>'));\n    });\n  }\n\n  function renderGroup(m) {\n    var sizes = m.sizes.filter(function (x) { return m.items.some(function (it) { return it.size === x.size; }); });\n    var head = '<div class=\"rcalc-mh\"><span class=\"rcalc-mname\">' + esc(dn(m.name)) + '</span><span class=\"rcalc-size\">Tamanho ' +\n      sizes.map(function (x) { return x.size; }).join(' ou ') + '</span></div>' +\n      '<div class=\"rcalc-meta\">' + sizes.map(function (x) {\n        if (x.foot) return '<span class=\"rcalc-tag\">Tam. ' + x.size + ': para p\u00E9s de ' + x.fmin + ' a ' + x.fmax + ' mm (tabela da marca)</span>';\n        return '<span class=\"rcalc-tag\">Tam. ' + x.size + ': interior ' + x.length + ' mm (+' + String(x.gap).replace('.', ',') + ' mm)</span>' + x.w.tag;\n      }).join('') + '</div>';\n    var cards = m.items.map(function (x, i) {\n      var v = x.v, p = x.p;\n      var im = (v.featured_image && v.featured_image.src) || p.featured_image || (p.images && p.images[0]) || '';\n      var cmp = v.compare_at_price && v.compare_at_price > v.price ? '<s>' + money(v.compare_at_price) + '</s>' : '';\n      return '<a class=\"rcalc-p\"' + (i >= MAX_THUMBS ? ' hidden' : '') + ' href=\"/products/' + x.h + '?variant=' + v.id + '\">' +\n        '<span class=\"im\">' + (im ? '<img loading=\"lazy\" src=\"' + esc(img(im, 360)) + '\" alt=\"' + esc(p.title) + '\">' : '') + '</span>' +\n        '<span class=\"tx\"><span class=\"nm\">' + esc(p.title) + '</span><span class=\"pr\">' + cmp + money(v.price) + '</span>' +\n        '<span class=\"go\">Ver tamanho ' + x.size + '</span></span></a>';\n    }).join('');\n    var node = el('<div class=\"rcalc-model\">' + head + '<div class=\"rcalc-grid\">' + cards + '</div></div>');\n    if (m.items.length > MAX_THUMBS) {\n      var more = el('<button type=\"button\" class=\"rcalc-more\">Ver mais ' + (m.items.length - MAX_THUMBS) + '</button>');\n      more.addEventListener('click', function () {\n        node.querySelectorAll('.rcalc-p[hidden]').forEach(function (a) { a.hidden = false; });\n        more.parentNode.removeChild(more);\n      });\n      node.appendChild(more);\n    }\n    return node;\n  }\n\n  /* =====================================================================\n     MINI CALCULADORA (p\u00E1gina de produto)\n     Usa as mesmas tabelas da calculadora geral. Deteta o modelo pelo\n     produto, recomenda o tamanho, mostra o stock e escolhe o tamanho.\n     ===================================================================== */\n  var MCSS = [\n    '.rmc{--rc-ink:#1a1a1a;--rc-muted:#6b6b6b;--rc-line:#e6e2dc;--rc-soft:#f7f5f2;--rc-ok:#1f7a4d;--rc-okbg:#e8f4ee;--rc-warn:#9a5b00;--rc-warnbg:#fff4e0;--rc-bad:#b42318;--rc-badbg:#fdecea;color:var(--rc-ink);font-size:15px;line-height:1.45;padding:4px 0 8px}',\n    '.rmc *{box-sizing:border-box}',\n    '.rmc-intro{color:var(--rc-muted);margin:0 0 12px;font-size:.92em}',\n    '.rmc-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}',\n    '.rmc-f label{display:block;font-weight:600;font-size:.82em;margin:0 0 4px}',\n    '.rmc-in{position:relative}',\n    '.rmc-in input{width:100%;min-height:44px;padding:8px 40px 8px 12px;border:1.5px solid var(--rc-line);border-radius:10px;font:inherit;font-size:16px;background:#fff;color:inherit}',\n    '.rmc-in input:focus{outline:none;border-color:var(--rc-ink)}',\n    '.rmc-in span{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--rc-muted);font-size:.85em;pointer-events:none}',\n    '.rmc-how{font-size:.85em;margin:8px 0 0}',\n    '.rmc-how summary{cursor:pointer;color:var(--rc-muted);text-decoration:underline;list-style:none}',\n    '.rmc-how summary::-webkit-details-marker{display:none}',\n    '.rmc-how ol{margin:6px 0 0;padding-left:18px;color:var(--rc-muted)}',\n    '.rmc-res{margin-top:14px;border:1px solid var(--rc-line);border-radius:12px;padding:14px;background:#fff}',\n    '.rmc-res.ok{border-color:#bfe3cf;background:#f6fbf8}',\n    '.rmc-res.warn{border-color:#f3d9a8;background:#fffaf0}',\n    '.rmc-top{display:flex;align-items:center;justify-content:space-between;gap:12px}',\n    '.rmc-lbl{font-size:.75em;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--rc-muted)}',\n    '.rmc-size{flex:0 0 auto;white-space:nowrap;word-break:keep-all;font-size:2.1em;font-weight:700;line-height:1;color:var(--rc-ok);text-align:right}',\n    '.rmc-top>div:first-child{flex:1 1 auto;min-width:0}',\n    '.rmc-res.warn .rmc-size{color:var(--rc-warn)}',\n    '.rmc-txt{margin:6px 0 0;font-size:.92em}',\n    '.rmc-tag{display:inline-block;border-radius:999px;padding:2px 10px;font-size:.8em;margin:8px 6px 0 0;background:var(--rc-soft)}',\n    '.rmc-tag.ok{background:var(--rc-okbg);color:var(--rc-ok)}',\n    '.rmc-tag.warn{background:var(--rc-warnbg);color:var(--rc-warn)}',\n    '.rmc-tag.bad{background:var(--rc-badbg);color:var(--rc-bad)}',\n    '.rmc-bar{position:relative;height:10px;border-radius:999px;margin:16px 0 4px;background:linear-gradient(90deg,#f2b8b5 0%,#f6d58e 30%,#9fd8b5 40%,#9fd8b5 60%,#f6d58e 70%,#f2b8b5 100%)}',\n    '.rmc-bar i{position:absolute;top:-4px;width:4px;height:18px;border-radius:2px;background:var(--rc-ink);transform:translateX(-50%)}',\n    '.rmc-scale{display:flex;justify-content:space-between;font-size:.72em;color:var(--rc-muted)}',\n    '.rmc-btn{display:block;width:100%;margin-top:12px;min-height:46px;border:0;border-radius:10px;background:var(--rc-ink);color:#fff;font:inherit;font-weight:700;cursor:pointer}',\n    '.rmc-btn:hover{opacity:.9}',\n    '.rmc-alt{margin-top:8px;font-size:.88em}',\n    '.rmc-btn.rmc-ghost{background:transparent;color:var(--rc-ink);border:1.5px solid var(--rc-ink)}',\n    '.rmc-swap{margin-top:10px;font-size:.88em;color:#3d6b4f;font-weight:600}',\n    '.rmc-alt button{background:none;border:0;padding:0;font:inherit;text-decoration:underline;cursor:pointer;color:inherit}',\n    '.rmc-more{display:inline-block;margin-top:12px;font-size:.88em;color:var(--rc-ink)!important;text-decoration:underline}',\n    '.rmc a{color:var(--rc-ink)}'\n  ].join('\\n');\n\n  function productHandle() {\n    var m = location.pathname.match(/\\/products\\/([^\\/?#]+)/);\n    return m ? decodeURIComponent(m[1]) : null;\n  }\n\n  /* linhas de tabela que servem para este produto */\n  function rowsForProduct(p) {\n    var h = p.handle, t = norm(p.title);\n    function ruleHit(name) {\n      var r = RULES[name];\n      if (!r || r[0] !== p.vendor) return false;\n      var kw = r[1], ex = r[2] || [];\n      if (ex.some(function (w) { return t.indexOf(' ' + w) > -1; })) return false;\n      return !kw.length || kw.some(function (w) { return t.indexOf(' ' + w) > -1; });\n    }\n    function isGeneric(name) { return !!(RULES[name] && !RULES[name][1].length); }\n    // acess\u00F3rios que t\u00EAm op\u00E7\u00E3o \"Tamanho\" mas n\u00E3o s\u00E3o cal\u00E7ado\n    if (/ (meia|meias|collant|collants|kit|spray|palmilha|palmilhas|mochila|limpeza|cleaner|pantufas? de bebe) /.test(t)) return [];\n    var byHandle = DB.filter(function (r) { return r.handles.indexOf(h) > -1; });\n    var pickFrom = byHandle.length ? byHandle : DB.filter(function (r) { return ruleHit(r.name); });\n    var specific = pickFrom.filter(function (r) { return !isGeneric(r.name); });\n    var rows = specific.length ? specific : pickFrom;\n\n    var fullRows = rows.slice();\n    // s\u00F3 os tamanhos que o produto tem\n    var idx = sizeIndex(p);\n    if (idx < 0) return [];\n    var sold = {};\n    p.variants.forEach(function (v) {\n      var raw = String(v.options[idx]).trim();\n      var k = isNaN(parseFloat(raw)) ? raw.toUpperCase() : parseFloat(raw.replace('\u00BD', '.5').replace(',', '.'));\n      sold[k] = sold[k] || { variants: [], available: false };\n      sold[k].variants.push(v);\n      if (v.available) sold[k].available = true;\n    });\n    rows = rows.filter(function (r) { return sold[r.size]; });\n\n    // o mesmo tamanho pode ter duas medidas (ex.: linha de senhora e de homem): escolher a coerente\n    var bySize = {};\n    rows.forEach(function (r) { (bySize[r.size] = bySize[r.size] || []).push(r); });\n    var sizes = Object.keys(bySize).map(function (k) { return bySize[k][0].size; });\n    var single = {};\n    sizes.forEach(function (s) { if (bySize[s].length === 1) single[s] = bySize[s][0]; });\n    var out = [];\n    sizes.forEach(function (s) {\n      var c = bySize[s];\n      if (c.length === 1) { out.push(c[0]); return; }\n      var near = Object.keys(single).map(function (k) { return single[k]; })\n        .filter(function (r) { return typeof r.size === 'number' && typeof s === 'number'; })\n        .sort(function (a, b) { return Math.abs(a.size - s) - Math.abs(b.size - s); })[0];\n      if (!near || near.foot) { out.push(c[0]); return; }\n      var expected = near.length + (s - near.size) * 6.5;\n      c.sort(function (a, b) { return Math.abs((a.length || 0) - expected) - Math.abs((b.length || 0) - expected); });\n      out.push(c[0]);\n    });\n    out.forEach(function (r) { r.stock = sold[r.size]; });\n    out.sort(function (a, b) {\n      var la = a.foot ? a.fmin : a.length, lb = b.foot ? b.fmin : b.length;\n      return la - lb;\n    });\n    out.full = fullRows;\n    return out;\n  }\n\n  function evaluate(rows, L, W) {\n    var fits = [], all = [];\n    rows.forEach(function (r) {\n      var gap = r.foot ? null : Math.round((r.length - L) * 10) / 10;\n      var ok = r.foot ? (L >= r.fmin - 0.5 && L <= r.fmax + 0.5) : (gap >= MIN_GAP && gap <= MAX_GAP);\n      var w = widthInfo(r, W);\n      var item = { r: r, gap: gap, ok: ok, w: w, sortGap: r.foot ? footRoom(r, L) : null };\n      all.push(item);\n      if (ok) fits.push(item);\n    });\n    fits.sort(rank);\n    if (fits.length) return { kind: 'ok', best: fits[0], others: fits.slice(1) };\n    // nenhum tamanho com a folga ideal\n    var first = rows[0], last = rows[rows.length - 1];\n    var maxOf = function (r) { return r.foot ? r.fmax : r.length - MIN_GAP; };\n    var minOf = function (r) { return r.foot ? r.fmin : r.length - MAX_GAP; };\n    if (L < minOf(first)) return { kind: 'small', best: all[0] };\n    if (L > maxOf(last)) return { kind: 'big', best: all[all.length - 1] };\n    // entre dois tamanhos: recomendar o maior\n    var bigger = all.filter(function (i) { return i.r.foot ? i.r.fmin > L : i.gap > MAX_GAP; })[0];\n    return { kind: 'between', best: bigger || all[all.length - 1] };\n  }\n\n  function selectSize(size) {\n    var target = String(size).toUpperCase();\n    var pickers = document.querySelectorAll('variant-selects, variant-radios');\n    for (var n = 0; n < pickers.length; n++) {\n      var groups = pickers[n].querySelectorAll('fieldset, .product-form__input');\n      if (!groups.length) groups = [pickers[n]];\n      for (var g = 0; g < groups.length; g++) {\n        var grp = groups[g];\n        var lbl = grp.querySelector('legend, label.form__label');\n        if (groups.length > 1 && lbl && norm(lbl.textContent).indexOf('tamanho') < 0) continue;\n        var radios = grp.querySelectorAll('input[type=radio]');\n        for (var i = 0; i < radios.length; i++) {\n          if (String(radios[i].value).trim().toUpperCase() === target) {\n            var lab = grp.querySelector('label[for=\"' + radios[i].id + '\"]');\n            (lab || radios[i]).click();\n            return true;\n          }\n        }\n        var sel = grp.querySelector('select');\n        if (sel) {\n          for (var k = 0; k < sel.options.length; k++) {\n            if (String(sel.options[k].value).trim().toUpperCase() === target) {\n              sel.value = sel.options[k].value;\n              sel.dispatchEvent(new Event('change', { bubbles: true }));\n              return true;\n            }\n          }\n        }\n      }\n    }\n    return false;\n  }\n\n  function miniUI(box, p, rows) {\n    var cats = rows.map(function (r) { return r.cat; });\n    var child = cats.some(function (c) { return c === 'p' || c === 'm'; });\n    var anyFoot = rows.some(function (r) { return r.foot; });\n    var hasWidth = rows.some(function (r) { return r.width; });\n    var sizes = rows.map(function (r) { return r.size; });\n    box.innerHTML =\n      '<div class=\"rmc\">' +\n      '<p class=\"rmc-intro\">Indica a medida do ' + (child ? 'p\u00E9 da crian\u00E7a' : 'teu p\u00E9') + ' e dizemos-te o tamanho certo neste modelo' +\n      (anyFoot ? ' (segundo a tabela da marca).' : ', com 8 a 12 mm de folga.') + '</p>' +\n      '<div class=\"rmc-row\">' +\n      '<div class=\"rmc-f\"><label for=\"rmc-len\">Comprimento do p\u00E9</label><div class=\"rmc-in\"><input id=\"rmc-len\" type=\"number\" inputmode=\"decimal\" placeholder=\"Ex.: 155\" step=\"0.5\"><span>mm</span></div></div>' +\n      '<div class=\"rmc-f\"><label for=\"rmc-wid\">Largura <small>(opcional)</small></label><div class=\"rmc-in\"><input id=\"rmc-wid\" type=\"number\" inputmode=\"decimal\" placeholder=\"Ex.: 65\" step=\"0.5\"' + (hasWidth ? '' : ' disabled title=\"Este modelo n\u00E3o tem medida de largura\"') + '><span>mm</span></div></div>' +\n      '</div>' +\n      '<details class=\"rmc-how\"><summary>Como medir o p\u00E9</summary><ol>' +\n      '<li>P\u00E9 apoiado numa folha, com o calcanhar encostado \u00E0 parede.</li>' +\n      '<li>Marca a ponta do dedo mais comprido e mede em mil\u00EDmetros.</li>' +\n      '<li>Mede os dois p\u00E9s e usa o maior, de prefer\u00EAncia ao fim do dia.</li></ol></details>' +\n      '<div class=\"rmc-out\" aria-live=\"polite\"></div>' +\n      '</div>';\n    var len = box.querySelector('#rmc-len'), wid = box.querySelector('#rmc-wid'), out = box.querySelector('.rmc-out');\n\n    var stage = child ? (cats.indexOf('p') > -1 && cats.indexOf('m') < 0 ? 'recente' : 'adquirida')\n      : (cats.indexOf('b') > -1 && cats.indexOf('t') < 0 ? 'experiente' : 'iniciante');\n    var ctx = { para: child ? 'crianca' : 'adulto', fase: stage };\n    function calcLink(L, W) {\n      return calcURL({ L: L, W: W, para: ctx.para, fase: ctx.fase });\n    }\n\n    /* registo no carrinho: \"Calculadora ruut\" fica na linha da encomenda quando o tamanho\n       escolhido \u00E9 o recomendado (serve para validar a 1\u00AA troca gr\u00E1tis) */\n    var rec = null;\n    function sizeOfVariant(id) {\n      var idx = sizeIndex(p);\n      if (idx < 0) return null;\n      var v = p.variants.filter(function (x) { return String(x.id) === String(id); })[0];\n      return v ? String(v.options[idx]).trim().toUpperCase() : null;\n    }\n    function syncProp() {\n      var forms = document.querySelectorAll('form[action*=\"/cart/add\"]');\n      for (var i = 0; i < forms.length; i++) {\n        var f = forms[i], idI = f.querySelector('[name=\"id\"]');\n        if (!idI) continue;\n        var s = sizeOfVariant(idI.value);\n        if (s === null) continue; // formul\u00E1rio de outro produto\n        var inp = f.querySelector('input[data-ruut-prop]');\n        if (rec && rec.sizes.indexOf(s) > -1) {\n          if (!inp) {\n            inp = document.createElement('input');\n            inp.type = 'hidden';\n            inp.setAttribute('data-ruut-prop', '1');\n            inp.name = 'properties[Calculadora ruut]';\n            f.appendChild(inp);\n          }\n          inp.value = 'p\u00E9 de ' + String(rec.L).replace('.', ',') + ' mm, tamanho ' + s + ' confirmado';\n        } else if (inp) {\n          inp.parentNode.removeChild(inp);\n        }\n      }\n    }\n    document.addEventListener('submit', syncProp, true);\n    document.addEventListener('click', function (ev) {\n      if (ev.target.closest && ev.target.closest('[name=\"add\"], .product-form__submit')) syncProp();\n    }, true);\n    document.addEventListener('change', function () { setTimeout(syncProp, 400); setTimeout(syncProp, 1500); });\n\n    function render(auto) {\n      var L = parseFloat(String(len.value).replace(',', '.'));\n      var W = parseFloat(String(wid.value).replace(',', '.')) || 0;\n      if (L && L < 40) L = Math.round(L * 100) / 10;\n      if (W && W < 15) W = Math.round(W * 100) / 10;\n      if (!L || L < 80 || L > 330) { out.innerHTML = ''; rec = null; syncProp(); return; }\n      saveFoot(L, W, ctx);\n      var e = evaluate(rows, L, W), b = e.best, r = b.r;\n      // tamanho ideal na tabela completa do modelo (pode n\u00E3o estar \u00E0 venda neste produto)\n      var ideal = null;\n      if (e.kind !== 'ok' && rows.full) {\n        rows.full.forEach(function (x) {\n          var fit = x.foot ? (L >= x.fmin - 0.5 && L <= x.fmax + 0.5) : (x.length - L >= MIN_GAP && x.length - L <= MAX_GAP);\n          if (fit && !ideal) ideal = x;\n        });\n      }\n      var noIdeal = ideal ? 'O tamanho ideal seria o <strong>' + esc(ideal.size) + '</strong>, que n\u00E3o temos neste modelo. ' : '';\n      var cls = e.kind === 'ok' ? 'ok' : 'warn';\n      var head, txt;\n      var minS = sizes[0], maxS = sizes[sizes.length - 1];\n      var label = 'Tamanho recomendado';\n      if (e.kind === 'small') {\n        head = '\u2014'; label = 'Neste modelo';\n        txt = noIdeal + 'O p\u00E9 ainda \u00E9 pequeno para este modelo: o tamanho mais pequeno que temos \u00E9 o <strong>' + esc(minS) + '</strong> e ficaria com folga a mais.';\n      } else if (e.kind === 'big') {\n        head = '\u2014'; label = 'Neste modelo';\n        txt = noIdeal + 'Este modelo n\u00E3o chega a esta medida: o maior tamanho que temos \u00E9 o <strong>' + esc(maxS) + '</strong>.';\n      } else if (e.kind === 'between' && r.foot) {\n        head = '\u2014'; label = 'Neste modelo';\n        txt = noIdeal + 'O tamanho dispon\u00EDvel mais pr\u00F3ximo \u00E9 o ' + esc(r.size) + ', para p\u00E9s de ' + r.fmin + ' a ' + r.fmax + ' mm.';\n      } else {\n        head = r.size;\n        if (r.foot) txt = 'Segundo a tabela da marca, o tamanho ' + esc(r.size) + ' \u00E9 para p\u00E9s de ' + r.fmin + ' a ' + r.fmax + ' mm.';\n        else if (e.kind === 'ok') txt = 'Fica com <strong>+' + String(b.gap).replace('.', ',') + ' mm</strong> de folga no comprimento.';\n        else if (ideal) txt = noIdeal + 'O mais pr\u00F3ximo \u00E9 o ' + esc(r.size) + ', com <strong>+' + String(b.gap).replace('.', ',') + ' mm</strong> de folga (um pouco acima do ideal).';\n        else txt = 'Est\u00E1s entre dois tamanhos: recomendamos o maior, com <strong>+' + String(b.gap).replace('.', ',') + ' mm</strong> de folga (um pouco acima do ideal).';\n      }\n      var tags = '';\n      if (head !== '\u2014') {\n        tags += b.w.tag.replace(/rcalc-tag/g, 'rmc-tag');\n        tags += r.stock.available ? '<span class=\"rmc-tag ok\">Em stock</span>' : '<span class=\"rmc-tag bad\">Esgotado neste tamanho</span>';\n      }\n      var bar = '';\n      if (head !== '\u2014' && !r.foot) {\n        var pos = Math.max(0, Math.min(100, b.gap / 20 * 100));\n        bar = '<div class=\"rmc-bar\"><i style=\"left:' + pos + '%\"></i></div><div class=\"rmc-scale\"><span>Apertado</span><span>Ideal 8\u201312 mm</span><span>Largo</span></div>';\n      }\n      var action = '', pick = null;\n      rec = null;\n      if (head !== '\u2014') {\n        rec = { L: L, sizes: [String(r.size).toUpperCase()] };\n        if (e.kind === 'ok') (e.others || []).forEach(function (o) { rec.sizes.push(String(o.r.size).toUpperCase()); });\n        if (r.stock.available) pick = r.size;\n        if (r.stock.available) action = '<button type=\"button\" class=\"rmc-btn\" data-size=\"' + esc(r.size) + '\">Escolher tamanho ' + esc(r.size) + '</button>';\n        var alt = e.others && e.others.filter(function (o) { return o.r.stock.available; })[0];\n        if (!r.stock.available && alt) {\n          pick = alt.r.size;\n          action += '<div class=\"rmc-alt\">O tamanho ' + esc(alt.r.size) + ' tamb\u00E9m serve' + (alt.gap != null ? ' (+' + String(alt.gap).replace('.', ',') + ' mm)' : '') +\n            ' e est\u00E1 em stock. <button type=\"button\" data-size=\"' + esc(alt.r.size) + '\">Escolher tamanho ' + esc(alt.r.size) + '</button></div>';\n        } else if (!r.stock.available) {\n          action += '<button type=\"button\" class=\"rmc-btn rmc-ghost\" data-size=\"' + esc(r.size) + '\" data-notify=\"1\">Quero ser avisada(o) do tamanho ' + esc(r.size) + '</button>' +\n            '<div class=\"rmc-alt\">Escolhemos o tamanho e mostramos-te onde deixar o email: avisamos-te assim que voltar a haver.</div>';\n        }\n        if (pick != null) action += '<div class=\"rmc-swap\">\u2713 Com o tamanho recomendado, a 1\u00AA troca de tamanho \u00E9 por nossa conta.</div>';\n      }\n      out.innerHTML = '<div class=\"rmc-res ' + cls + '\">' +\n        '<div class=\"rmc-top\"><div><div class=\"rmc-lbl\">' + label + '</div><p class=\"rmc-txt\">' + txt + '</p></div><div class=\"rmc-size\">' + esc(head) + '</div></div>' +\n        tags + bar + action + '</div>' +\n        '<a class=\"rmc-more\" href=\"' + calcLink(L, W) + '\">Ver outros modelos que servem nesta medida \u2192</a>';\n      out.querySelectorAll('[data-size]').forEach(function (btn) {\n        btn.addEventListener('click', function () {\n          var sz = btn.getAttribute('data-size');\n          var ok = selectSize(isNaN(+sz) ? sz : +sz);\n          if (btn.getAttribute('data-notify')) {\n            var pf = document.querySelector('.product-form__buttons, product-form');\n            if (ok && pf) setTimeout(function () { pf.scrollIntoView({ behavior: 'smooth', block: 'center' }); }, 600);\n            return;\n          }\n          btn.textContent = ok ? 'Tamanho ' + sz + ' escolhido \u2713' : 'Escolhe o tamanho ' + sz + ' acima';\n          if (ok) setTimeout(function () { btn.textContent = 'Escolher tamanho ' + sz; }, 2500);\n          setTimeout(syncProp, 400); setTimeout(syncProp, 1500);\n        });\n      });\n      // medida j\u00E1 guardada: deixar logo escolhido o tamanho recomendado\n      // (s\u00F3 ao abrir a p\u00E1gina e se o link n\u00E3o trouxer j\u00E1 uma variante escolhida)\n      if (auto && pick != null && !/[?&]variant=/.test(location.search)) {\n        selectSize(isNaN(+pick) ? String(pick).toUpperCase() : +pick);\n      }\n      syncProp();\n      setTimeout(syncProp, 1500);\n    }\n    var tmr;\n    [len, wid].forEach(function (i) {\n      i.addEventListener('input', function () { clearTimeout(tmr); tmr = setTimeout(render, 250); });\n    });\n    var saved = loadFoot();\n    if (saved) { len.value = saved.L; if (saved.W && hasWidth) wid.value = saved.W; render(true); }\n  }\n\n  function accordionHTML(title) {\n    var ruler = '<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" aria-hidden=\"true\" class=\"icon icon-accordion\" viewBox=\"0 0 20 20\" width=\"20\" height=\"20\"><path fill=\"currentColor\" d=\"M2.2 13.3 13.3 2.2a1 1 0 0 1 1.4 0l3.1 3.1a1 1 0 0 1 0 1.4L6.7 17.8a1 1 0 0 1-1.4 0l-3.1-3.1a1 1 0 0 1 0-1.4Zm.9.7 2.9 2.9L16.9 6 14 3.1 3.1 14Zm2.5-2.6.7-.7 1.4 1.4-.7.7-1.4-1.4Zm2-2 .7-.7 1.4 1.4-.7.7-1.4-1.4Zm2-2 .7-.7 1.4 1.4-.7.7-1.4-1.4Z\"/></svg>';\n    var caret = '<svg aria-hidden=\"true\" focusable=\"false\" class=\"icon icon-caret\" viewBox=\"0 0 10 6\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z\" fill=\"currentColor\"/></svg>';\n    return '<div class=\"product__accordion accordion quick-add-hidden ruut-mc-acc\"><details id=\"ruut-mc-details\"><summary>' +\n      '<div class=\"summary__title\">' + ruler + '<h2 class=\"h4 accordion__title inline-richtext\">' + esc(title) + '</h2></div>' + caret +\n      '</summary><div class=\"accordion__content rte\" id=\"ruut-minicalc-root\"></div></details></div>';\n  }\n\n  function miniBoot() {\n    var h = productHandle();\n    if (!h || document.getElementById('ruut-calc-root')) return;\n    var info = document.querySelector('.product__info-container, product-info, .product__info-wrapper');\n    if (!info) return;\n    getProduct(h).then(function (p) {\n      if (!p) return;\n      var rows = rowsForProduct(p);\n      if (!rows.length) return;\n      var st = document.createElement('style');\n      st.textContent = MCSS;\n      document.head.appendChild(st);\n\n      // substituir a mini calculadora antiga (p\u00E1gina dentro do separador), se existir\n      var oldInput = document.getElementById('foot-length');\n      var oldAcc = oldInput && oldInput.closest('.product__accordion, details');\n      var acc = el(accordionHTML('Confirma o tamanho ideal'));\n      if (oldAcc) {\n        var wrap = oldAcc.classList.contains('product__accordion') ? oldAcc : (oldAcc.closest('.product__accordion') || oldAcc);\n        wrap.parentNode.replaceChild(acc, wrap);\n      } else {\n        var anchor = info.querySelector('variant-selects, variant-radios');\n        anchor = anchor ? (anchor.closest('.product-form__input') || anchor) : info.querySelector('.product-form__quantity, product-form');\n        if (anchor && anchor.parentNode) anchor.parentNode.insertBefore(acc, anchor);\n        else info.appendChild(acc);\n      }\n      var details = acc.querySelector('details');\n      if (loadFoot()) details.open = true; // j\u00E1 mediu noutro produto: mostrar logo o resultado\n      miniUI(acc.querySelector('#ruut-minicalc-root'), p, rows);\n    });\n  }\n\n  /* COLE\u00C7\u00D5ES: quem j\u00E1 mediu o p\u00E9 v\u00EA um atalho para os modelos que servem */\n  function collBoot() {\n    if (!/^\\/collections\\/[^\\/]+\\/?$/.test(location.pathname)) return;\n    var f = loadFoot();\n    if (!f) return;\n    try { if (sessionStorage.getItem('ruutCollOff')) return; } catch (e) {}\n    var anchor = document.querySelector('.facets-container') || document.getElementById('ProductGridContainer');\n    if (!anchor || !anchor.parentNode) return;\n    // s\u00F3 em cole\u00E7\u00F5es com cal\u00E7ado (produtos com op\u00E7\u00E3o de tamanho)\n    fetch(location.pathname.replace(/\\/$/, '') + '/products.json?limit=12').then(function (r) { return r.ok ? r.json() : null; })\n      .then(function (j) {\n        if (!j || !j.products) return;\n        var shoes = j.products.some(function (p) {\n          return (p.options || []).some(function (o) { return norm(o.name || '').indexOf('tamanho') > -1; }) &&\n            !/ (meia|meias|collant|kit|spray|palmilha) /.test(norm(p.title));\n        });\n        if (!shoes) return;\n        var st = document.createElement('style');\n        st.textContent = '.rcb{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 18px;padding:12px 14px;border-radius:12px;background:#e8f4ee;color:#1a1a1a;font-size:14px;line-height:1.4}' +\n          '.rcb a{font-weight:700;color:#1f7a4d;text-decoration:underline}.rcb button{margin-left:auto;background:none;border:0;font-size:18px;line-height:1;cursor:pointer;color:#6b6b6b;padding:2px 4px}';\n        document.head.appendChild(st);\n        var who = f.para === 'adulto' ? ' (adulto)' : f.para === 'crianca' ? ' (crian\u00E7a)' : '';\n        var bar = el('<div class=\"rcb page-width\" role=\"note\"><span>\uD83D\uDC63 Guard\u00E1mos a medida do p\u00E9: <strong>' +\n          String(f.L).replace('.', ',') + ' mm</strong>' + who + '.</span><a href=\"' + calcURL(f) + '\">Ver s\u00F3 os modelos que servem \u2192</a>' +\n          '<button type=\"button\" aria-label=\"Fechar\">\u00D7</button></div>');\n        bar.querySelector('button').addEventListener('click', function () {\n          bar.parentNode.removeChild(bar);\n          try { sessionStorage.setItem('ruutCollOff', '1'); } catch (e) {}\n        });\n        anchor.parentNode.insertBefore(bar, anchor);\n      }).catch(function () {});\n  }\n\n  function boot() { mount(); miniBoot(); collBoot(); }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', boot);\n  else boot();\n})();\n"],
  "mappings": "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",
  "names": []
}
