{"id":11540,"date":"2026-08-22T16:30:33","date_gmt":"2026-08-22T13:30:33","guid":{"rendered":"https:\/\/lingualand.gr\/new\/exercises\/b-junior-listening-02-numbers\/"},"modified":"2026-08-22T17:02:52","modified_gmt":"2026-08-22T14:02:52","slug":"b-junior-listening-02-numbers","status":"publish","type":"page","link":"https:\/\/lingualand.gr\/new\/exercises\/b-junior-listening-02-numbers\/","title":{"rendered":"B Junior Listening 2 \u2013 Numbers"},"content":{"rendered":"<!-- lingualand-listening-access:bj:lesson:start -->\n<div id=\"accessGate-lesson-bj\" class=\"lingualand-listening-access-gate\" style=\"min-height:320px;display:grid;place-items:center;padding:20px;background:#eef3f8;color:#172033;font-family:Arial,sans-serif\"><form id=\"accessForm-lesson-bj\" style=\"width:min(420px,100%);background:#fff;border-radius:14px;padding:24px;box-shadow:0 4px 16px #243a8f22\"><h4 style=\"margin:0 0 10px;color:#243a8f;font-size:1.45rem\">B Junior Listening Access<\/h4><p style=\"margin:0 0 16px\">Enter your access key to open the exercises.<\/p><input id=\"accessKey-lesson-bj\" type=\"password\" autocomplete=\"off\" style=\"width:100%;padding:12px;border:1px solid #aab3c2;border-radius:9px;font-size:1rem\" aria-label=\"Access key\"><button type=\"submit\" style=\"margin-top:14px;width:100%;padding:12px;border:0;border-radius:9px;background:#243a8f;color:white;font-weight:bold;cursor:pointer\">Open exercises<\/button><div id=\"accessMessage-lesson-bj\" style=\"min-height:22px;margin-top:12px;color:#b91c1c;font-weight:bold\" aria-live=\"polite\"><\/div><\/form><\/div><div id=\"exerciseApp-lesson-bj\" hidden><!-- lingualand-listening-exercise:bj:2:start -->\n<div class=\"lingualand-bj-listening-exercise-page\" style=\"max-width:1100px;margin:20px auto;\"><iframe title=\"B Junior Listening 2 \u2013 Numbers\" srcdoc=\"&lt;!doctype html&gt;\n&lt;html lang=&quot;en&quot;&gt;\n&lt;head&gt;\n  &lt;meta charset=&quot;utf-8&quot;&gt;\n  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width,initial-scale=1&quot;&gt;\n  &lt;title&gt;B Junior Listening 2 \u2013 Numbers&lt;\/title&gt;\n  &lt;style&gt;\n    :root{--navy:#20385f;--blue:#3678bd;--gold:#f4bd43;--bg:#eef6ff;--ink:#26344a;--green:#27864a;--red:#c43d3d}\n    *{box-sizing:border-box}\n    body{margin:0;min-height:100vh;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:linear-gradient(145deg,#eaf5ff,#fff7e6);padding:24px}\n    .page{width:min(880px,100%);margin:auto;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 16px 45px #20385f22}\n    header{padding:25px 28px;text-align:center;color:white;background:var(--navy)}\n    .brand{margin:0 0 6px;color:var(--gold);font-weight:800;letter-spacing:1.5px;text-transform:uppercase;font-size:.84rem}\n    h1{margin:0;font-size:clamp(1.55rem,4vw,2.25rem)}\n    header p{margin:8px 0 0;opacity:.9}\n    main{padding:28px}\n    .instructions{margin-bottom:22px;padding:15px 18px;border-left:5px solid var(--blue);border-radius:10px;background:var(--bg);line-height:1.5}\n    .questions{display:grid;gap:14px}\n    .question{display:grid;grid-template-columns:46px 130px 1fr 30px;gap:12px;align-items:center;padding:15px;border:2px solid #e5ebf3;border-radius:15px;transition:.2s}\n    .number{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--gold);color:var(--navy);font-weight:900}\n    .listen{border:0;border-radius:10px;padding:11px 14px;background:var(--blue);color:#fff;font-weight:800;font-size:.96rem;cursor:pointer}\n    .listen:hover{filter:brightness(.95)}\n    .listen.playing{background:#7457c7}\n    .options{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}\n    label{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px;border:2px solid #d7dfeb;border-radius:10px;background:#fff;font-weight:700;cursor:pointer}\n    label:hover{border-color:#8cb5de;background:#f6faff}\n    input{accent-color:var(--blue);transform:scale(1.12)}\n    .mark{font-size:1.3rem;font-weight:900;text-align:center}\n    .question.correct{border-color:var(--green);background:#effbf3}\n    .question.wrong{border-color:var(--red);background:#fff2f2}\n    .question.correct .mark{color:var(--green)}\n    .question.wrong .mark{color:var(--red)}\n    .actions{display:flex;justify-content:center;gap:11px;margin-top:25px}\n    button.action{border:0;border-radius:11px;padding:13px 21px;font-size:1rem;font-weight:800;cursor:pointer}\n    #check{background:var(--green);color:#fff}\n    #reset{background:#e7edf4;color:var(--navy)}\n    #result{min-height:34px;margin:18px 0 0;text-align:center;font-size:1.17rem;font-weight:900}\n    footer{text-align:center;padding:0 20px 22px;color:#748096;font-size:.83rem}\n    @media(max-width:670px){main{padding:19px}.question{grid-template-columns:42px 1fr 28px}.listen{grid-column:2}.options{grid-column:2;grid-template-columns:1fr}.mark{grid-column:3;grid-row:1\/4}.actions{flex-direction:column}.action{width:100%}}\n  &lt;\/style&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n  &lt;section class=&quot;page&quot;&gt;\n    &lt;header&gt;\n      &lt;p class=&quot;brand&quot;&gt;Lingualand \u00b7 Est. 1972&lt;\/p&gt;\n      &lt;h1&gt;Which Number Did You Hear?&lt;\/h1&gt;\n      &lt;p&gt;B Junior \u00b7 Listening Exercise 2&lt;\/p&gt;\n    &lt;\/header&gt;\n    &lt;main&gt;\n      &lt;div class=&quot;instructions&quot;&gt;&lt;strong&gt;Listen carefully.&lt;\/strong&gt; Press the listening button and choose the number you hear. You can listen again.&lt;\/div&gt;\n      &lt;div class=&quot;questions&quot; id=&quot;questions&quot;&gt;&lt;\/div&gt;\n      &lt;div class=&quot;actions&quot;&gt;\n        &lt;button class=&quot;action&quot; id=&quot;check&quot; type=&quot;button&quot;&gt;Check answers&lt;\/button&gt;\n        &lt;button class=&quot;action&quot; id=&quot;reset&quot; type=&quot;button&quot;&gt;Try again&lt;\/button&gt;\n      &lt;\/div&gt;\n      &lt;p id=&quot;result&quot; aria-live=&quot;polite&quot;&gt;&lt;\/p&gt;\n    &lt;\/main&gt;\n    &lt;footer&gt;The correct numbers remain hidden until the answers are checked.&lt;\/footer&gt;\n  &lt;\/section&gt;\n  &lt;script&gt;\n    const items=[\n      {say:&quot;twenty&quot;,answer:&quot;20&quot;,options:[&quot;12&quot;,&quot;20&quot;,&quot;22&quot;]},\n      {say:&quot;thirteen&quot;,answer:&quot;13&quot;,options:[&quot;30&quot;,&quot;14&quot;,&quot;13&quot;]},\n      {say:&quot;fifty&quot;,answer:&quot;50&quot;,options:[&quot;50&quot;,&quot;15&quot;,&quot;40&quot;]},\n      {say:&quot;eighty&quot;,answer:&quot;80&quot;,options:[&quot;18&quot;,&quot;80&quot;,&quot;8&quot;]},\n      {say:&quot;twelve&quot;,answer:&quot;12&quot;,options:[&quot;20&quot;,&quot;2&quot;,&quot;12&quot;]},\n      {say:&quot;thirty&quot;,answer:&quot;30&quot;,options:[&quot;30&quot;,&quot;13&quot;,&quot;33&quot;]},\n      {say:&quot;nineteen&quot;,answer:&quot;19&quot;,options:[&quot;90&quot;,&quot;19&quot;,&quot;9&quot;]},\n      {say:&quot;eighteen&quot;,answer:&quot;18&quot;,options:[&quot;80&quot;,&quot;8&quot;,&quot;18&quot;]},\n      {say:&quot;sixteen&quot;,answer:&quot;16&quot;,options:[&quot;16&quot;,&quot;60&quot;,&quot;6&quot;]},\n      {say:&quot;eleven&quot;,answer:&quot;11&quot;,options:[&quot;1&quot;,&quot;11&quot;,&quot;10&quot;]}\n    ];\n    const questions=document.getElementById(&quot;questions&quot;);\n    const result=document.getElementById(&quot;result&quot;);\n\n    items.forEach((item,index)=&gt;{\n      const row=document.createElement(&quot;section&quot;);\n      row.className=&quot;question&quot;;\n      row.dataset.answer=item.answer;\n      row.innerHTML=`&lt;span class=&quot;number&quot;&gt;${index+1}&lt;\/span&gt;\n        &lt;button class=&quot;listen&quot; type=&quot;button&quot; data-say=&quot;${item.say}&quot; aria-label=&quot;Listen to question ${index+1}&quot;&gt;\u25b6 Listen&lt;\/button&gt;\n        &lt;div class=&quot;options&quot;&gt;${item.options.map((option,i)=&gt;`&lt;label&gt;&lt;input type=&quot;radio&quot; name=&quot;q${index}&quot; value=&quot;${option}&quot;&gt;&lt;span&gt;${String.fromCharCode(65+i)}. ${option}&lt;\/span&gt;&lt;\/label&gt;`).join(&quot;&quot;)}&lt;\/div&gt;\n        &lt;span class=&quot;mark&quot; aria-live=&quot;polite&quot;&gt;&lt;\/span&gt;`;\n      questions.appendChild(row);\n    });\n\n    function chooseEnglishVoice(){\n      const voices=speechSynthesis.getVoices();\n      return voices.find(v=&gt;\/^en-GB\/i.test(v.lang)&amp;&amp;\/Samantha|Serena|Daniel|Karen|Moira\/i.test(v.name))\n        || voices.find(v=&gt;\/^en-GB\/i.test(v.lang))\n        || voices.find(v=&gt;\/^en\/i.test(v.lang));\n    }\n\n    document.addEventListener(&quot;click&quot;,event=&gt;{\n      const button=event.target.closest(&quot;.listen&quot;);\n      if(!button)return;\n      if(!(&quot;speechSynthesis&quot; in window)){\n        result.textContent=&quot;Audio is not supported in this browser.&quot;;\n        result.style.color=varColor(&quot;red&quot;);\n        return;\n      }\n      speechSynthesis.cancel();\n      document.querySelectorAll(&quot;.listen&quot;).forEach(b=&gt;b.classList.remove(&quot;playing&quot;));\n      const voiceLine=new SpeechSynthesisUtterance(button.dataset.say);\n      const voice=chooseEnglishVoice();\n      if(voice){voiceLine.voice=voice;voiceLine.lang=voice.lang}else{voiceLine.lang=&quot;en-GB&quot;}\n      voiceLine.rate=.78;\n      voiceLine.pitch=1;\n      voiceLine.onstart=()=&gt;button.classList.add(&quot;playing&quot;);\n      voiceLine.onend=voiceLine.onerror=()=&gt;button.classList.remove(&quot;playing&quot;);\n      speechSynthesis.speak(voiceLine);\n    });\n\n    function varColor(name){return getComputedStyle(document.documentElement).getPropertyValue(`--${name}`).trim()}\n\n    document.getElementById(&quot;check&quot;).addEventListener(&quot;click&quot;,()=&gt;{\n      let score=0,unanswered=0;\n      document.querySelectorAll(&quot;.question&quot;).forEach(row=&gt;{\n        const chosen=row.querySelector(&quot;input:checked&quot;);\n        const mark=row.querySelector(&quot;.mark&quot;);\n        row.classList.remove(&quot;correct&quot;,&quot;wrong&quot;);\n        if(!chosen){unanswered++;mark.textContent=&quot;?&quot;;return}\n        const correct=chosen.value===row.dataset.answer;\n        row.classList.add(correct?&quot;correct&quot;:&quot;wrong&quot;);\n        mark.textContent=correct?&quot;\u2713&quot;:&quot;\u2717&quot;;\n        if(correct)score++;\n      });\n      if(unanswered){result.textContent=`Please answer all the questions. (${unanswered} left)`;result.style.color=&quot;#b86f00&quot;}\n      else if(score===items.length){result.textContent=&quot;Excellent! 10 \/ 10 \u2b50&quot;;result.style.color=varColor(&quot;green&quot;)}\n      else{result.textContent=`Your score: ${score} \/ 10. Listen again and try once more!`;result.style.color=varColor(&quot;navy&quot;)}\n    });\n\n    document.getElementById(&quot;reset&quot;).addEventListener(&quot;click&quot;,()=&gt;{\n      speechSynthesis.cancel();\n      document.querySelectorAll(&quot;input&quot;).forEach(input=&gt;input.checked=false);\n      document.querySelectorAll(&quot;.question&quot;).forEach(row=&gt;{\n        row.classList.remove(&quot;correct&quot;,&quot;wrong&quot;);\n        row.querySelector(&quot;.mark&quot;).textContent=&quot;&quot;;\n      });\n      document.querySelectorAll(&quot;.listen&quot;).forEach(b=&gt;b.classList.remove(&quot;playing&quot;));\n      result.textContent=&quot;&quot;;\n      window.scrollTo({top:0,behavior:&quot;smooth&quot;});\n    });\n    window.addEventListener(&quot;beforeunload&quot;,()=&gt;speechSynthesis.cancel());\n  &lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;\n\" style=\"width:100%;min-height:1850px;border:0;border-radius:8px;background:#f8fafc;display:block;\" loading=\"eager\" allow=\"autoplay\"><\/iframe><\/div>\n<!-- lingualand-listening-exercise:bj:2:end --><\/div><script>(function(){const expectedHash=\"54c6e6001970489b11bc97cf0986b7b9f1684d10c293be936a975466a86f94b1\";const storageKey=\"lingualandListeningAccess:bj\";const form=document.getElementById(\"accessForm-lesson-bj\"),keyInput=document.getElementById(\"accessKey-lesson-bj\"),msg=document.getElementById(\"accessMessage-lesson-bj\"),gate=document.getElementById(\"accessGate-lesson-bj\"),app=document.getElementById(\"exerciseApp-lesson-bj\");async function sha256(text){const bytes=new TextEncoder().encode(text);const digest=await crypto.subtle.digest(\"SHA-256\",bytes);return Array.from(new Uint8Array(digest)).map(b=>b.toString(16).padStart(2,\"0\")).join(\"\");}function deny(text){msg.textContent=text;app.hidden=true;gate.style.display=\"grid\";}function allow(){try{sessionStorage.setItem(storageKey,\"1\");}catch(e){} gate.style.display=\"none\";app.hidden=false;keyInput.value=\"\";}try{if(sessionStorage.getItem(storageKey)===\"1\") allow();}catch(e){}form.addEventListener(\"submit\",async function(e){e.preventDefault();const entered=keyInput.value.trim();if(!entered){deny(\"Please enter the access key.\");return;}try{const hash=await sha256(entered);if(hash===expectedHash){allow();}else{deny(\"Incorrect access key.\");}}catch(err){deny(\"Access check is unavailable in this browser.\");}});})();<\/script>\n<!-- lingualand-listening-access:bj:lesson:end -->","protected":false},"excerpt":{"rendered":"<p>B Junior Listening Access Enter your access key to open the exercises. Open exercises<\/p>\n","protected":false},"author":7,"featured_media":0,"parent":9619,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"ngg_post_thumbnail":0,"footnotes":""},"class_list":["post-11540","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/pages\/11540","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/comments?post=11540"}],"version-history":[{"count":1,"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/pages\/11540\/revisions"}],"predecessor-version":[{"id":11571,"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/pages\/11540\/revisions\/11571"}],"up":[{"embeddable":true,"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/pages\/9619"}],"wp:attachment":[{"href":"https:\/\/lingualand.gr\/new\/wp-json\/wp\/v2\/media?parent=11540"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}