{"id":699,"date":"2026-01-28T02:56:55","date_gmt":"2026-01-28T02:56:55","guid":{"rendered":"https:\/\/i-cte.org\/robot\/?p=699"},"modified":"2026-01-28T06:20:03","modified_gmt":"2026-01-28T06:20:03","slug":"ielts-listening-test-6","status":"publish","type":"post","link":"https:\/\/i-cte.org\/robot\/ielts-listening-test-6\/","title":{"rendered":"IELTs &#8211; Listening &#8211; Test 6"},"content":{"rendered":"\n<!-- \u2705 IELTS LISTENING \u2013 TEST 6 (WP-SAFE SINGLE BLOCK, ColorMag-safe) -->\n<div id=\"icte-listening-test6\">\n\n  <!-- \u2705 TOP NAV MENU (GREEN, STICKY, SCROLLABLE) -->\n  <nav class=\"icte-menu\" aria-label=\"ICTE Listening menu\">\n    <a href=\"https:\/\/i-cte.org\/robot\/ielts-listening-overview\/\">Overview<\/a>\n    <a href=\"https:\/\/i-cte.org\/robot\/ielts-listening-test-1\/\">Test 1<\/a>\n    <a href=\"https:\/\/i-cte.org\/robot\/ielts-listening-test-2\/\">Test 2<\/a>\n    <a href=\"https:\/\/i-cte.org\/robot\/ielts-listening-test-3\/\">Test 3<\/a>\n    <a href=\"https:\/\/i-cte.org\/robot\/ielts-listening-test-4\/\">Test 4<\/a>\n    <a href=\"https:\/\/i-cte.org\/robot\/ielts-listening-test-5\/\">Test 5<\/a>\n    <a href=\"https:\/\/i-cte.org\/robot\/ielts-listening-test-6\/\" class=\"is-current\">Test 6<\/a>\n    <a href=\"https:\/\/i-cte.org\/robot\/ielts-reading-overview\/\">Reading<\/a>\n    <a href=\"https:\/\/i-cte.org\/robot\/ielts-speaking-overview\/\">Speaking<\/a>\n    <a href=\"https:\/\/i-cte.org\/robot\/ielts-writing-overview\/\">Writing<\/a>\n  <\/nav>\n\n  <style>\n    \/* =========================\n       \u2705 THEME-SAFE CSS (scoped)\n       ========================= *\/\n    #icte-listening-test6{ --green:#28a745; --ink:#222; --muted:#667085; --bg:#f6f8fb; --card:#fff; --line:#e6eaf0; --shadow:0 8px 22px rgba(16,24,40,.08); }\n    #icte-listening-test6, #icte-listening-test6 *{ box-sizing:border-box; }\n    #icte-listening-test6{ font-family: Arial, sans-serif; color:var(--ink); background:var(--bg); padding:16px; border-radius:16px; }\n    #icte-listening-test6 a{ text-decoration:none; }\n    #icte-listening-test6 h2, #icte-listening-test6 h3, #icte-listening-test6 h4{ margin:0; }\n    #icte-listening-test6 .small{ color:var(--muted); font-size:13px; line-height:1.45; }\n    #icte-listening-test6 code{ background:#f1f5f9; padding:2px 6px; border-radius:6px; }\n    #icte-listening-test6 hr{ border:none; border-top:1px solid var(--line); margin:12px 0; }\n\n    \/* top menu *\/\n    #icte-listening-test6 .icte-menu{\n      width:100%;\n      background:var(--green);\n      padding:10px 12px;\n      text-align:center;\n      box-shadow:0 2px 8px rgba(0,0,0,.14);\n      overflow-x:auto;\n      white-space:nowrap;\n      position:sticky;\n      top:0;\n      z-index:999;\n      border-radius:14px;\n      margin-bottom:14px;\n    }\n    #icte-listening-test6 .icte-menu a{\n      display:inline-block;\n      color:#fff;\n      padding:8px 12px;\n      margin:0 4px;\n      border-radius:999px;\n      font-weight:700;\n      font-size:14px;\n      opacity:.95;\n    }\n    #icte-listening-test6 .icte-menu a:hover{ background:rgba(255,255,255,.14); }\n    #icte-listening-test6 .icte-menu a.is-current{ background:rgba(255,255,255,.22); }\n\n    \/* layout *\/\n    #icte-listening-test6 .wrap{ max-width:1200px; margin:0 auto; }\n    #icte-listening-test6 .hero{\n      background:linear-gradient(135deg, rgba(40,167,69,.12), rgba(40,167,69,.04));\n      border:1px solid rgba(40,167,69,.18);\n      border-radius:18px;\n      padding:16px 16px 12px;\n      margin-bottom:14px;\n    }\n    #icte-listening-test6 .hero .title{ font-size:22px; font-weight:800; margin-bottom:6px; }\n    #icte-listening-test6 .hero .sub{ color:var(--muted); font-size:14px; line-height:1.5; }\n\n    #icte-listening-test6 .grid{\n      display:grid;\n      grid-template-columns: 1.05fr .95fr;\n      gap:14px;\n      align-items:start;\n    }\n    @media (max-width: 980px){\n      #icte-listening-test6{ padding:12px; }\n      #icte-listening-test6 .grid{ grid-template-columns:1fr; }\n    }\n\n    \/* cards *\/\n    #icte-listening-test6 .card{\n      background:var(--card);\n      border:1px solid var(--line);\n      border-radius:18px;\n      box-shadow:var(--shadow);\n      overflow:hidden;\n    }\n    #icte-listening-test6 .hd{\n      padding:12px 14px;\n      background:#fff;\n      border-bottom:1px solid var(--line);\n      display:flex;\n      align-items:center;\n      justify-content:space-between;\n      gap:10px;\n      flex-wrap:wrap;\n    }\n    #icte-listening-test6 .tag{\n      font-weight:800;\n      color:#0f172a;\n      background:#f1f5f9;\n      border:1px solid #e5e7eb;\n      padding:6px 10px;\n      border-radius:999px;\n      font-size:13px;\n      white-space:nowrap;\n    }\n    #icte-listening-test6 .body{ padding:14px; }\n\n    \/* buttons *\/\n    #icte-listening-test6 button{\n      appearance:none;\n      border:1px solid #cfd8e3;\n      background:#fff;\n      color:#0f172a;\n      font-weight:800;\n      border-radius:12px;\n      padding:9px 12px;\n      cursor:pointer;\n      font-size:13px;\n      line-height:1;\n      box-shadow:0 2px 0 rgba(16,24,40,.05);\n    }\n    #icte-listening-test6 button:hover{ background:#f8fafc; }\n    #icte-listening-test6 button:active{ transform:translateY(1px); }\n    #icte-listening-test6 button.secondary{ background:#f8fafc; }\n    #icte-listening-test6 button.danger{ border-color:#fda29b; background:#fff5f5; color:#b42318; }\n    #icte-listening-test6 .btns{ display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }\n\n    \/* transcript boxes *\/\n    #icte-listening-test6 .tbox{\n      border:1px solid var(--line);\n      border-radius:14px;\n      padding:12px;\n      background:#fbfdff;\n      max-height:320px;\n      overflow:auto;\n      line-height:1.6;\n      font-size:14px;\n    }\n    #icte-listening-test6 .speaker{\n      font-weight:800;\n      margin-right:6px;\n      color:#0f172a;\n    }\n    #icte-listening-test6 .mono{ color:#111827; }\n\n    \/* study output *\/\n    #icte-listening-test6 .studybox{\n      border:1px dashed #cfd8e3;\n      border-radius:14px;\n      padding:12px;\n      background:#fcfcff;\n      line-height:1.55;\n    }\n    #icte-listening-test6 .k-pill{\n      display:inline-block;\n      padding:6px 10px;\n      margin:4px 6px 0 0;\n      border-radius:999px;\n      border:1px solid #e5e7eb;\n      background:#f8fafc;\n      font-size:12px;\n      font-weight:800;\n      color:#0f172a;\n    }\n\n    \/* questions *\/\n    #icte-listening-test6 .sec{ margin-top:12px; }\n    #icte-listening-test6 .sec h3{ font-size:16px; font-weight:900; margin-bottom:6px; color:#0f172a; }\n    #icte-listening-test6 .qbox{\n      border:1px solid var(--line);\n      border-radius:16px;\n      padding:12px;\n      margin-top:10px;\n      background:#fff;\n    }\n    #icte-listening-test6 .qt{ font-weight:800; margin-bottom:8px; }\n    #icte-listening-test6 .inline{\n      display:grid;\n      grid-template-columns: 1fr 240px;\n      gap:10px;\n      align-items:center;\n      margin:8px 0;\n    }\n    @media (max-width: 560px){\n      #icte-listening-test6 .inline{ grid-template-columns:1fr; }\n    }\n    #icte-listening-test6 input[type=\"text\"], #icte-listening-test6 select{\n      width:100%;\n      border:1px solid #cfd8e3;\n      border-radius:12px;\n      padding:10px 10px;\n      font-size:14px;\n      outline:none;\n      background:#fff;\n    }\n    #icte-listening-test6 input[type=\"text\"]:focus, #icte-listening-test6 select:focus{\n      border-color:#84c5ff;\n      box-shadow:0 0 0 3px rgba(132,197,255,.22);\n    }\n    #icte-listening-test6 .opts{ display:grid; gap:8px; }\n    #icte-listening-test6 .opt{\n      display:flex;\n      gap:10px;\n      align-items:flex-start;\n      border:1px solid #eef2f6;\n      border-radius:12px;\n      padding:10px;\n      background:#fbfdff;\n      cursor:pointer;\n      user-select:none;\n    }\n    #icte-listening-test6 .opt:hover{ background:#f8fafc; }\n    #icte-listening-test6 .opt input{ margin-top:2px; }\n\n    \/* scoring pills *\/\n    #icte-listening-test6 .checkline{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px; }\n    #icte-listening-test6 .pill{\n      display:inline-block;\n      padding:7px 10px;\n      border-radius:999px;\n      border:1px solid #e5e7eb;\n      background:#f8fafc;\n      font-weight:900;\n      font-size:13px;\n      color:#0f172a;\n    }\n    #icte-listening-test6 .pill.ok{ border-color:#abefc6; background:#ecfdf3; }\n    #icte-listening-test6 .pill.bad{ border-color:#fecdca; background:#fef3f2; }\n\n    \/* input correctness *\/\n    #icte-listening-test6 input.ok{ border-color:#12b76a !important; background:#ecfdf3 !important; }\n    #icte-listening-test6 input.bad{ border-color:#f04438 !important; background:#fff5f5 !important; }\n\n    \/* answer reveal *\/\n    #icte-listening-test6 .answer-reveal{\n      display:none;\n      margin-top:10px;\n      padding:10px;\n      border-radius:14px;\n      border:1px dashed #cfd8e3;\n      background:#fbfdff;\n      color:#0f172a;\n      font-size:13px;\n      line-height:1.6;\n    }\n  <\/style>\n\n  <div class=\"wrap\">\n\n    <div class=\"hero\">\n      <div class=\"title\">IELTS Listening \u2013 Test 6<\/div>\n      <div class=\"sub\">\n        Use the buttons to play each section (Transcript + Audio). Answer Questions 1\u201340, then click <b>Check Answers<\/b>.\n        You can also <b>Show\/Hide Answers<\/b> after you finish.\n      <\/div>\n    <\/div>\n\n    <div class=\"grid\">\n\n      <!-- \u2705 LEFT: Transcript + Audio + Study tools -->\n      <section class=\"card\" aria-label=\"Transcript &#038; Audio\">\n        <div class=\"hd\">\n          <div class=\"tag\">\ud83c\udfa7 Transcript + Audio<\/div>\n          <div class=\"btns\">\n            <button type=\"button\" data-act=\"playS1\">Play S1<\/button>\n            <button type=\"button\" data-act=\"playS2\">Play S2<\/button>\n            <button type=\"button\" data-act=\"playS3\">Play S3<\/button>\n            <button type=\"button\" data-act=\"playS4\">Play S4<\/button>\n            <button class=\"secondary\" type=\"button\" data-act=\"stop\">Stop<\/button>\n          <\/div>\n        <\/div>\n\n        <div class=\"body\">\n          <div class=\"small\" style=\"margin-bottom:10px;\">\n            <b>Voice (Narrator):<\/b>\n            <select id=\"icteVoiceNarr6\" aria-label=\"Narrator voice\"><\/select>\n            <div style=\"height:8px\"><\/div>\n            <b>Voice (Dialogue):<\/b>\n            <select id=\"icteVoiceA6\" aria-label=\"Dialogue voice\"><\/select>\n            <div class=\"small\">This will prioritize Google US\/UK voices if your browser provides them.<\/div>\n          <\/div>\n\n          <div class=\"sec\" aria-label=\"Section 1 Transcript\">\n            <h3>SECTION 1 Transcript<\/h3>\n            <div id=\"tS1\" class=\"tbox\"><\/div>\n          <\/div>\n\n          <div class=\"sec\" aria-label=\"Section 2 Transcript\">\n            <h3>SECTION 2 Transcript<\/h3>\n            <div id=\"tS2\" class=\"tbox\"><\/div>\n          <\/div>\n\n          <div class=\"sec\" aria-label=\"Section 3 Transcript\">\n            <h3>SECTION 3 Transcript<\/h3>\n            <div id=\"tS3\" class=\"tbox\"><\/div>\n          <\/div>\n\n          <div class=\"sec\" aria-label=\"Section 4 Transcript\">\n            <h3>SECTION 4 Transcript<\/h3>\n            <div id=\"tS4\" class=\"tbox\"><\/div>\n          <\/div>\n\n          <hr>\n\n          <div class=\"sec\" aria-label=\"Study tools\">\n            <h3>Study tools<\/h3>\n\n            <div class=\"inline\">\n              <div><b>Choose section<\/b><\/div>\n              <select id=\"icteNoteSection6\" aria-label=\"Select section\">\n                <option value=\"1\">Section 1<\/option>\n                <option value=\"2\">Section 2<\/option>\n                <option value=\"3\">Section 3<\/option>\n                <option value=\"4\">Section 4<\/option>\n              <\/select>\n            <\/div>\n\n            <div class=\"btns\" style=\"justify-content:flex-start; margin-top:8px;\">\n              <button class=\"secondary\" type=\"button\" data-act=\"showMain\">Main ideas<\/button>\n              <button class=\"secondary\" type=\"button\" data-act=\"showKeys\">Keywords<\/button>\n              <button class=\"secondary\" type=\"button\" data-act=\"showSum\">Summary<\/button>\n              <button class=\"danger\" type=\"button\" data-act=\"clearStudy\">Clear<\/button>\n            <\/div>\n\n            <div id=\"studyHint6\" class=\"small\" style=\"margin-top:10px;\">\n              Choose a section, then click a study button.\n            <\/div>\n            <div id=\"studyOut6\" class=\"studybox\" style=\"margin-top:10px;\"><\/div>\n          <\/div>\n        <\/div>\n      <\/section>\n\n      <!-- \u2705 RIGHT: Questions -->\n      <section class=\"card\" aria-label=\"Questions\">\n        <div class=\"hd\">\n          <div class=\"tag\">\ud83d\udcdd Questions (1\u201340)<\/div>\n          <div class=\"btns\">\n            <button class=\"secondary\" type=\"button\" data-act=\"toggleAnswers\">Show\/Hide Answers<\/button>\n            <button class=\"danger\" type=\"button\" data-act=\"reset\">Clear All<\/button>\n            <button type=\"button\" data-act=\"check\">Check Answers<\/button>\n          <\/div>\n        <\/div>\n\n        <div class=\"body\">\n          <div class=\"checkline\">\n            <span class=\"pill\" id=\"scorePill\">Score: \u2014 \/ 40<\/span>\n            <span class=\"pill\" id=\"bandPill\">Band estimate: \u2014<\/span>\n          <\/div>\n\n          <!-- SECTION 1 -->\n          <div class=\"sec\" aria-label=\"Section 1\">\n            <h3>SECTION 1 (Questions 1\u201310) \u2014 Alex\u2019s Training<\/h3>\n            <div class=\"small\">Complete the notes. Write <b>ONE WORD AND\/OR A NUMBER<\/b> for each answer.<\/div>\n\n            <div class=\"qbox\" data-qbox=\"s1\">\n              <p class=\"qt\">Example: Alex completed his training in <b>2014<\/b>.<\/p>\n\n              <div class=\"inline\"><div>1) At first, Alex did his training in the ______ department.<\/div><input type=\"text\" data-q=\"1\" placeholder=\"Your answer\"><\/div>\n              <div class=\"inline\"><div>2) Alex didn\u2019t have a qualification from school in ______.<\/div><input type=\"text\" data-q=\"2\" placeholder=\"Your answer\"><\/div>\n              <div class=\"inline\"><div>3) Alex thinks he should have done the diploma in ______ skills.<\/div><input type=\"text\" data-q=\"3\" placeholder=\"Your answer\"><\/div>\n              <div class=\"inline\"><div>4) Age of other trainees: the youngest was ______.<\/div><input type=\"text\" data-q=\"4\" placeholder=\"Your answer\"><\/div>\n\n              <hr>\n\n              <div class=\"inline\"><div>5) Trainees receive the same amount of ______ as permanent staff.<\/div><input type=\"text\" data-q=\"5\" placeholder=\"Your answer\"><\/div>\n              <div class=\"inline\"><div>6) Trainees go to ______ one day per month.<\/div><input type=\"text\" data-q=\"6\" placeholder=\"Your answer\"><\/div>\n              <div class=\"inline\"><div>7) The company is in a convenient ______.<\/div><input type=\"text\" data-q=\"7\" placeholder=\"Your answer\"><\/div>\n\n              <hr>\n\n              <div class=\"inline\"><div>8) Advice: Don\u2019t wear ______.<\/div><input type=\"text\" data-q=\"8\" placeholder=\"Your answer\"><\/div>\n              <div class=\"inline\"><div>9) Advice: Don\u2019t be ______.<\/div><input type=\"text\" data-q=\"9\" placeholder=\"Your answer\"><\/div>\n              <div class=\"inline\"><div>10) Advice: Make sure you ______.<\/div><input type=\"text\" data-q=\"10\" placeholder=\"Your answer\"><\/div>\n\n              <div class=\"answer-reveal\" data-ans=\"s1\"><\/div>\n            <\/div>\n          <\/div>\n\n          <!-- SECTION 2 -->\n          <div class=\"sec\" aria-label=\"Section 2\">\n            <h3>SECTION 2 (Questions 11\u201320) \u2014 The Snow Centre<\/h3>\n\n            <div class=\"qbox\" data-qbox=\"s2a\">\n              <p class=\"qt\">Questions 11\u201316: Choose the correct letter, A, B, or C.<\/p>\n\n              <div class=\"qbox\" data-qbox=\"q11\">\n                <div class=\"qt\">11) Annie recommends that when cross-country skiing, the visitors should \u2026<\/div>\n                <div class=\"opts\">\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q11\" value=\"A\"> A) Get away from the regular trails.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q11\" value=\"B\"> B) Stop to enjoy views of the scenery.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q11\" value=\"C\"> C) Go at a slow speed at the beginning.<\/label>\n                <\/div>\n              <\/div>\n\n              <div class=\"qbox\" data-qbox=\"q12\">\n                <div class=\"qt\">12) What does Annie tell the group about this afternoon\u2019s dog-sled trip?<\/div>\n                <div class=\"opts\">\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q12\" value=\"A\"> A) Those who want to can take part in a race.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q12\" value=\"B\"> B) Anyone has the chance to drive a team of dogs.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q12\" value=\"C\"> C) One group member will be chosen to lead the trail.<\/label>\n                <\/div>\n              <\/div>\n\n              <div class=\"qbox\" data-qbox=\"q13\">\n                <div class=\"qt\">13) What does Annie say about the team relay event?<\/div>\n                <div class=\"opts\">\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q13\" value=\"A\"> A) All participants receive a medal.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q13\" value=\"B\"> B) The course is 4 km long.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q13\" value=\"C\"> C) Each team is led by a teacher.<\/label>\n                <\/div>\n              <\/div>\n\n              <div class=\"qbox\" data-qbox=\"q14\">\n                <div class=\"qt\">14) On the snow-shoe trip, the visitors will \u2026<\/div>\n                <div class=\"opts\">\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q14\" value=\"A\"> A) Visit an old gold mine.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q14\" value=\"B\"> B) Learn about unusual flowers.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q14\" value=\"C\"> C) Climb to the top of a mountain.<\/label>\n                <\/div>\n              <\/div>\n\n              <div class=\"qbox\" data-qbox=\"q15\">\n                <div class=\"qt\">15) The cost of accommodation in the mountain hut includes \u2026<\/div>\n                <div class=\"opts\">\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q15\" value=\"A\"> A) A supply of drinking water.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q15\" value=\"B\"> B) Transport of visitors\u2019 luggage.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q15\" value=\"C\"> C) Cooked meals.<\/label>\n                <\/div>\n              <\/div>\n\n              <div class=\"qbox\" data-qbox=\"q16\">\n                <div class=\"qt\">16) If there is a storm while the visitors are in the hut, they should \u2026<\/div>\n                <div class=\"opts\">\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q16\" value=\"A\"> A) Contact the bus driver.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q16\" value=\"B\"> B) Wait until the weather improves.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q16\" value=\"C\"> C) Use the emergency locator beacon.<\/label>\n                <\/div>\n              <\/div>\n\n              <div class=\"answer-reveal\" data-ans=\"s2a\"><\/div>\n            <\/div>\n\n            <div class=\"qbox\" data-qbox=\"s2b\">\n              <p class=\"qt\">Questions 17\u201320: Choose FOUR answers from the box and write the correct letter, A\u2013F, next to Questions 17\u201320.<\/p>\n\n              <div class=\"match\" style=\"display:grid; grid-template-columns:1fr 1fr; gap:12px;\">\n                <div class=\"box\" style=\"border:1px solid var(--line); border-radius:14px; padding:12px; background:#fbfdff;\">\n                  <div class=\"btitle\" style=\"font-weight:900; margin-bottom:6px;\">Information<\/div>\n                  <ul style=\"margin:0; padding-left:18px;\">\n                    <li><b>A<\/b> It has a good place to stop and rest.<\/li>\n                    <li><b>B<\/b> It is suitable for all abilities.<\/li>\n                    <li><b>C<\/b> It involves crossing a river.<\/li>\n                    <li><b>D<\/b> It demands a lot of skill.<\/li>\n                    <li><b>E<\/b> It may be closed in bad weather.<\/li>\n                    <li><b>F<\/b> It has some very narrow sections.<\/li>\n                  <\/ul>\n                <\/div>\n\n                <div>\n                  <div class=\"inline\"><div>17) Highland Trail<\/div><input type=\"text\" data-q=\"17\" placeholder=\"A\u2013F\"><\/div>\n                  <div class=\"inline\"><div>18) Pine Trail<\/div><input type=\"text\" data-q=\"18\" placeholder=\"A\u2013F\"><\/div>\n                  <div class=\"inline\"><div>19) Stony Trail<\/div><input type=\"text\" data-q=\"19\" placeholder=\"A\u2013F\"><\/div>\n                  <div class=\"inline\"><div>20) Loser\u2019s Trail<\/div><input type=\"text\" data-q=\"20\" placeholder=\"A\u2013F\"><\/div>\n                <\/div>\n              <\/div>\n\n              <div class=\"answer-reveal\" data-ans=\"s2b\"><\/div>\n            <\/div>\n          <\/div>\n\n          <!-- SECTION 3 -->\n          <div class=\"sec\" aria-label=\"Section 3\">\n            <h3>SECTION 3 (Questions 21\u201330) \u2014 Nutritional labels<\/h3>\n\n            <div class=\"qbox\" data-qbox=\"s3a\">\n              <p class=\"qt\">Questions 21\u201326: Choose the correct letter, A, B, or C.<\/p>\n\n              <div class=\"qbox\" data-qbox=\"q21\">\n                <div class=\"qt\">21) What was Jack\u2019s attitude to nutritional food labels before this project?<\/div>\n                <div class=\"opts\">\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q21\" value=\"A\"> A) He didn\u2019t read everything on them.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q21\" value=\"B\"> B) He didn\u2019t think they were important.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q21\" value=\"C\"> C) He thought they were too complicated.<\/label>\n                <\/div>\n              <\/div>\n\n              <div class=\"qbox\" data-qbox=\"q22\">\n                <div class=\"qt\">22) Alice says that before doing this project, \u2026<\/div>\n                <div class=\"opts\">\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q22\" value=\"A\"> A) She was unaware of what certain foods contained.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q22\" value=\"B\"> B) She was too lazy to read food labels.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q22\" value=\"C\"> C) She was only interested in the number of calories.<\/label>\n                <\/div>\n              <\/div>\n\n              <div class=\"qbox\" data-qbox=\"q23\">\n                <div class=\"qt\">23) When discussing supermarket brands of pizza, Jack agrees with Alice that \u2026<\/div>\n                <div class=\"opts\">\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q23\" value=\"A\"> A) The list of ingredients is shocking.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q23\" value=\"B\"> B) They will hesitate before buying pizza again.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q23\" value=\"C\"> C) The nutritional label is misleading.<\/label>\n                <\/div>\n              <\/div>\n\n              <div class=\"qbox\" data-qbox=\"q24\">\n                <div class=\"qt\">24) Jack prefers the daily value system to other labelling systems because it is \u2026<\/div>\n                <div class=\"opts\">\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q24\" value=\"A\"> A) More accessible.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q24\" value=\"B\"> B) More logical.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q24\" value=\"C\"> C) More comprehensive.<\/label>\n                <\/div>\n              <\/div>\n\n              <div class=\"qbox\" data-qbox=\"q25\">\n                <div class=\"qt\">25) What surprised both students about one flavour of crisps?<\/div>\n                <div class=\"opts\">\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q25\" value=\"A\"> A) The percentage of artificial additives given was incorrect.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q25\" value=\"B\"> B) The products did not contain any meat.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q25\" value=\"C\"> C) The labels did not list all the ingredients.<\/label>\n                <\/div>\n              <\/div>\n\n              <div class=\"qbox\" data-qbox=\"q26\">\n                <div class=\"qt\">26) What do the students think about research into the impact of nutritional food labelling?<\/div>\n                <div class=\"opts\">\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q26\" value=\"A\"> A) It did not produce clear results.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q26\" value=\"B\"> B) It focused on the wrong people.<\/label>\n                  <label class=\"opt\"><input type=\"radio\" name=\"icte-listening-test6_q26\" value=\"C\"> C) It made unrealistic recommendations.<\/label>\n                <\/div>\n              <\/div>\n\n              <div class=\"answer-reveal\" data-ans=\"s3a\"><\/div>\n            <\/div>\n\n            <div class=\"qbox\" data-qbox=\"s3b\">\n              <p class=\"qt\">Questions 27 and 28: Choose TWO letters, A\u2013E.<\/p>\n              <div class=\"qt\">Which TWO things surprised the students about the traffic-light system for nutritional labels?<\/div>\n              <div class=\"opts\">\n                <label class=\"opt\"><input type=\"checkbox\" data-q=\"27_28\" value=\"A\"> A) Its widespread use<\/label>\n                <label class=\"opt\"><input type=\"checkbox\" data-q=\"27_28\" value=\"B\"> B) The fact that it is voluntary for supermarkets<\/label>\n                <label class=\"opt\"><input type=\"checkbox\" data-q=\"27_28\" value=\"C\"> C) How little research was done before its introduction<\/label>\n                <label class=\"opt\"><input type=\"checkbox\" data-q=\"27_28\" value=\"D\"> D) Its unpopularity with food manufacturers<\/label>\n                <label class=\"opt\"><input type=\"checkbox\" data-q=\"27_28\" value=\"E\"> E) The way that certain colours are used<\/label>\n              <\/div>\n              <div class=\"answer-reveal\" data-ans=\"s3b\"><\/div>\n            <\/div>\n\n            <div class=\"qbox\" data-qbox=\"s3c\">\n              <p class=\"qt\">Questions 29 and 30: Choose TWO letters, A\u2013E.<\/p>\n              <div class=\"qt\">Which TWO things are true about the participants in the study on the traffic-light system?<\/div>\n              <div class=\"opts\">\n                <label class=\"opt\"><input type=\"checkbox\" data-q=\"29_30\" value=\"A\"> A) They had low literacy levels.<\/label>\n                <label class=\"opt\"><input type=\"checkbox\" data-q=\"29_30\" value=\"B\"> B) They were regular consumers of packaged food.<\/label>\n                <label class=\"opt\"><input type=\"checkbox\" data-q=\"29_30\" value=\"C\"> C) They were selected randomly.<\/label>\n                <label class=\"opt\"><input type=\"checkbox\" data-q=\"29_30\" value=\"D\"> D) They were from all socio-economic groups.<\/label>\n                <label class=\"opt\"><input type=\"checkbox\" data-q=\"29_30\" value=\"E\"> E) They were interviewed face-to-face.<\/label>\n              <\/div>\n              <div class=\"answer-reveal\" data-ans=\"s3c\"><\/div>\n            <\/div>\n          <\/div>\n\n          <!-- SECTION 4 -->\n          <div class=\"sec\" aria-label=\"Section 4\">\n            <h3>SECTION 4 (Questions 31\u201340) \u2014 The history of coffee<\/h3>\n            <div class=\"small\">Complete the notes below. Write <b>ONE WORD ONLY<\/b> for each answer.<\/div>\n\n            <div class=\"qbox\" data-qbox=\"s4\">\n              <div class=\"qt\">Coffee in the Arab world<\/div>\n              <div class=\"inline\"><div>31) 1623: In Constantinople, the ruler ordered the ______ of every coffee house.<\/div><input type=\"text\" data-q=\"31\" placeholder=\"Your answer\"><\/div>\n\n              <hr>\n\n              <div class=\"qt\">Coffee arrives in Europe (17th century)<\/div>\n              <div class=\"inline\"><div>32) Coffee shops were compared to ______.<\/div><input type=\"text\" data-q=\"32\" placeholder=\"Your answer\"><\/div>\n              <div class=\"inline\"><div>33) They played an important part in social and ______ changes.<\/div><input type=\"text\" data-q=\"33\" placeholder=\"Your answer\"><\/div>\n\n              <hr>\n\n              <div class=\"qt\">Coffee and European colonisation<\/div>\n              <div class=\"inline\"><div>34) Types of coffee were often named according to the ______ they came from.<\/div><input type=\"text\" data-q=\"34\" placeholder=\"Your answer\"><\/div>\n              <div class=\"inline\"><div>35) In Brazil and the Caribbean, most cultivation depended on ______.<\/div><input type=\"text\" data-q=\"35\" placeholder=\"Your answer\"><\/div>\n              <div class=\"inline\"><div>36) In Java, coffee was used as a form of ______.<\/div><input type=\"text\" data-q=\"36\" placeholder=\"Your answer\"><\/div>\n              <div class=\"inline\"><div>37) Coffee became almost as important as ______.<\/div><input type=\"text\" data-q=\"37\" placeholder=\"Your answer\"><\/div>\n              <div class=\"inline\"><div>38) The move towards the consumption of ______ in Britain did not also take place in the USA.<\/div><input type=\"text\" data-q=\"38\" placeholder=\"Your answer\"><\/div>\n\n              <hr>\n\n              <div class=\"qt\">Coffee in the 19th century<\/div>\n              <div class=\"inline\"><div>39) Prices dropped because of improvements in ______.<\/div><input type=\"text\" data-q=\"39\" placeholder=\"Your answer\"><\/div>\n              <div class=\"inline\"><div>40) Industrial workers found coffee helped them to work at ______.<\/div><input type=\"text\" data-q=\"40\" placeholder=\"Your answer\"><\/div>\n\n              <div class=\"answer-reveal\" data-ans=\"s4\"><\/div>\n            <\/div>\n          <\/div>\n\n        <\/div>\n      <\/section>\n\n    <\/div>\n  <\/div>\n\n  <script>\n  (function(){\n    const ROOT = document.getElementById('icte-listening-test6');\n    if(!ROOT) return;\n\n    \/\/ IMPORTANT: prefix radio name with container id to avoid conflicts\n    const RNAME = (ROOT.id || \"icte\") + \"_q\";\n\n    \/\/ ===== helpers =====\n    function escapeHtml(s){\n      return String(s).replace(\/[&<>\"']\/g, m => ({'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[m]));\n    }\n    function normText(s){\n      return String(s||\"\")\n        .trim()\n        .toLowerCase()\n        .replace(\/[\u2019']\/g,\"'\")\n        .replace(\/[^a-z0-9\\s-]\/g,\"\")\n        .replace(\/\\s+\/g,\" \");\n    }\n    function normLetter(s){\n      const t = String(s||\"\").trim().toUpperCase();\n      return t ? t[0] : \"\";\n    }\n\n    \/\/ ===== Transcript data =====\n    const S1_DIALOGUE = [\n      {spk:\"Martha\", txt:\"Hi Alex. It\u2019s Martha Clines here. James White gave me your number. I hope you don\u2019t mind me calling you.\"},\n      {spk:\"Alex\", txt:\"Of course not. How are you, Martha?\"},\n      {spk:\"Martha\", txt:\"Good thanks. I\u2019m ringing because I need a bit of advice.\"},\n      {spk:\"Alex\", txt:\"Oh yeah. What about?\"},\n      {spk:\"Martha\", txt:\"The training you did at JPNW a few years ago. I\u2019m applying for the same thing.\"},\n      {spk:\"Alex\", txt:\"Oh right. Yes, I did mine in 2014. Best thing I ever did. I\u2019m still working there.\"},\n      {spk:\"Martha\", txt:\"Really? What are you doing?\"},\n      {spk:\"Alex\", txt:\"Well, now I work in the customer services department but I did my initial training in Finance. I stayed there for the first two years and then moved to where I am now.\"},\n      {spk:\"Martha\", txt:\"That\u2019s the same department I\u2019m applying for. Did you enjoy it?\"},\n      {spk:\"Alex\", txt:\"I was pretty nervous to begin with. I didn\u2019t do well in my exams at school and I was really worried because I failed Maths. But it didn\u2019t actually matter because I did lots of courses on the job.\"},\n      {spk:\"Martha\", txt:\"Did you get a diploma at the end of your trainee period? I\u2019m hoping to do the one in business skills.\"},\n      {spk:\"Alex\", txt:\"Yes. That sounds good. I took the one on IT skills but I wish I\u2019d done that one instead.\"},\n      {spk:\"Martha\", txt:\"OK, that\u2019s good to know. What about the other trainees? How did you get on with them?\"},\n      {spk:\"Alex\", txt:\"There were about 20 of us who started at the same time and we were all around the same age. I was 18 and there was only one person younger than me, who was 17. The rest were between 18 and 20. I made some good friends.\"},\n      {spk:\"Martha\", txt:\"I\u2019ve heard lots of good things about the training at JPNW. It seems like there are a lot of opportunities there.\"},\n      {spk:\"Alex\", txt:\"Yeah, definitely. Because of its size you can work in loads of different areas within the organisation.\"},\n      {spk:\"Martha\", txt:\"What about pay? I know you get a lower minimum wage than regular employees.\"},\n      {spk:\"Alex\", txt:\"That\u2019s right \u2014 which isn\u2019t great. But you get the same number of days holiday as everyone else. And the pay goes up massively if they offer you a job at the end of the training period.\"},\n      {spk:\"Martha\", txt:\"Yeah, but I\u2019m not doing it for the money \u2014 it\u2019s the experience I think will be really useful. Everyone says by the end of the year you gain so much confidence.\"},\n      {spk:\"Alex\", txt:\"You\u2019re right. That\u2019s the most useful part about it. There\u2019s a lot of variety too. You\u2019re given lots of different things to do. I enjoyed it all \u2014 I didn\u2019t even mind the studying.\"},\n      {spk:\"Martha\", txt:\"Do you have to spend any time in college?\"},\n      {spk:\"Alex\", txt:\"Yes, one day each month. So you get lots of support from both your tutor and your manager.\"},\n      {spk:\"Martha\", txt:\"That\u2019s good. And the company is easy to get to, isn\u2019t it?\"},\n      {spk:\"Alex\", txt:\"Yes, it\u2019s very close to the train station so the location\u2019s a real advantage.\"},\n      {spk:\"Alex\", txt:\"Have you got a date for your interview yet?\"},\n      {spk:\"Martha\", txt:\"Yes, it\u2019s on the 23rd of this month.\"},\n      {spk:\"Alex\", txt:\"So long as you\u2019re well prepared there\u2019s nothing to worry about. Everyone\u2019s very friendly.\"},\n      {spk:\"Martha\", txt:\"I am not sure what I should wear. What do you think?\"},\n      {spk:\"Alex\", txt:\"Nothing too casual \u2014 like jeans for example. If you\u2019ve got a nice jacket wear that with a skirt or trousers.\"},\n      {spk:\"Martha\", txt:\"OK. Thanks. Any other tips?\"},\n      {spk:\"Alex\", txt:\"Well I know it\u2019s really obvious but arrive in plenty of time. They hate people who are late. So make sure you know exactly where you have to get to. And one other useful piece of advice my manager told me before I had the interview for this job \u2014 is to smile. Even if you feel terrified. It makes people respond better to you.\"},\n      {spk:\"Martha\", txt:\"I\u2019ll have to practise doing that in the mirror!\"},\n      {spk:\"Alex\", txt:\"Yeah \u2014 well, good luck. Let me know if you need any more information.\"},\n      {spk:\"Martha\", txt:\"Thanks very much.\"}\n    ];\n\n    const S2_MONO = [\n      \"Hi everyone, welcome to the Snow Centre. My name\u2019s Annie. I hope you enjoyed the bus trip from the airport \u2014 we\u2019ve certainly got plenty of snow today!\",\n      \"Most visitors come here for the cross-country skiing, where you\u2019re on fairly flat ground for most of the time. There are marked trails, but you can also leave these and go off on your own.\",\n      \"This afternoon, you\u2019ll be going on a dog-sled trip. If you want, you can have your own team for the afternoon and learn how to drive them, following behind our leader on the trail.\",\n      \"At the weekend, we have the team relay event. Participation is the main focus, and there\u2019s a medal for everyone who takes part.\",\n      \"For your final expedition, you\u2019ll head off to Mount Frenner wearing special snow shoes. It\u2019s a long ascent though not too steep.\",\n      \"You\u2019ll spend the night in our hut half-way up the mountain. It\u2019s got cooking facilities, firewood and water for drinking.\",\n      \"The weather on Mount Frenner can be very stormy. In that case stay in the hut \u2014 generally the storms don\u2019t last long.\",\n      \"Now, let me tell you something about the different ski trails you can follow during your stay here. Highland Trail is designed to give first-timers an experience they\u2019ll enjoy regardless of age or skill.\",\n      \"Pine Trail follows a steep valley and involves crossing a river.\",\n      \"Stony Trail has a shelter half-way where you can sit and take a break and enjoy the sunshine.\",\n      \"Loser\u2019s Trail can be challenging; if it\u2019s snowing or windy, check with us before you set out to make sure the trail\u2019s open that day.\"\n    ];\n\n    const S3_DIALOGUE = [\n      {spk:\"Jack\", txt:\"I\u2019ve still got loads to do for our report on nutritional food labels.\"},\n      {spk:\"Alice\", txt:\"Me too. What did you learn from doing the project about your own shopping habits?\"},\n      {spk:\"Jack\", txt:\"Well. I\u2019ve always had to check labels for traces of peanuts in everything I eat because of my allergy. But beyond that I\u2019ve never really been concerned enough to check how healthy a product is.\"},\n      {spk:\"Alice\", txt:\"This project has actually taught me to read labels much more carefully. I tended to believe claims on packaging like low in fat. But I now realise that the healthy yoghurt I\u2019ve bought for years is full of sugar and that it\u2019s actually quite high in calories.\"},\n      {spk:\"Jack\", txt:\"Ready meals are the worst. Comparing the labels on supermarket pizzas was a real eye-opener. Did you have any idea how many calories they contain? I was amazed.\"},\n      {spk:\"Alice\", txt:\"Yes because unless you read the label really carefully you wouldn\u2019t know that the nutritional values given are for half a pizza.\"},\n      {spk:\"Jack\", txt:\"When most people eat the whole pizza. Not exactly transparent is it?\"},\n      {spk:\"Alice\", txt:\"Not at all. But I expect it won\u2019t stop you from buying pizza.\"},\n      {spk:\"Jack\", txt:\"Probably not, no. I thought comparing the different labelling systems used by food manufacturers was interesting. I think the kind of labelling system used makes a big difference.\"},\n      {spk:\"Alice\", txt:\"Which one did you prefer?\"},\n      {spk:\"Jack\", txt:\"I liked the traditional daily value system best \u2014 the one which tells you what proportion of your required daily intake of each ingredient the product contains. I\u2019m not sure it\u2019s the easiest for people to use but at least you get the full story. I like to know all the ingredients in a product \u2014 not just how much fat, salt and sugar they contain.\"},\n      {spk:\"Alice\", txt:\"But it\u2019s good supermarkets have been making an effort to provide reliable information for customers.\"},\n      {spk:\"Jack\", txt:\"Yes. There just needs to be more consistency between labelling systems used by different supermarkets, in terms of portion sizes, etc.\"},\n      {spk:\"Alice\", txt:\"The labels on the different brands of chicken flavour crisps were quite revealing too, weren\u2019t they?\"},\n      {spk:\"Jack\", txt:\"Yeah. I don\u2019t understand how they can get away with calling them chicken flavour when they only contain artificial additives.\"},\n      {spk:\"Alice\", txt:\"I know. I\u2019d at least have expected them to contain a small percentage of real chicken.\"},\n      {spk:\"Jack\", txt:\"Absolutely.\"},\n      {spk:\"Alice\", txt:\"I think having nutritional food labelling has been a good idea, don\u2019t you? I think it will change people\u2019s behaviour and stop mothers, in particular, buying the wrong things.\"},\n      {spk:\"Jack\", txt:\"But didn\u2019t that study kind of prove the opposite? People didn\u2019t necessarily stop buying unhealthy products.\"},\n      {spk:\"Alice\", txt:\"They only said that might be the case. Those findings weren\u2019t that conclusive and it was quite a small-scale study. I think more research has to be done.\"},\n      {spk:\"Jack\", txt:\"Yes. I think you\u2019re probably right.\"},\n      {spk:\"Jack\", txt:\"What do you think of the traffic-light system?\"},\n      {spk:\"Alice\", txt:\"I think supermarkets like the idea of having a colour-coded system \u2014 red, orange or green \u2014 for levels of fat, sugar and salt in a product.\"},\n      {spk:\"Jack\", txt:\"But it\u2019s not been adopted universally. And not on all products. Why do you suppose that is?\"},\n      {spk:\"Alice\", txt:\"Pressure from the food manufacturers. Hardly surprising that some of them are opposed to flagging up how unhealthy their products are.\"},\n      {spk:\"Jack\", txt:\"I\u2019d have thought it would have been compulsory. It seems ridiculous it isn\u2019t.\"},\n      {spk:\"Alice\", txt:\"I know. And what I couldn\u2019t get over is the fact that it was brought in without enough consultation \u2014 a lot of experts had deep reservations about it.\"},\n      {spk:\"Jack\", txt:\"That is a bit weird. I suppose there\u2019s an argument for doing the research now when consumers are familiar with this system.\"},\n      {spk:\"Alice\", txt:\"Yeah, maybe.\"},\n      {spk:\"Jack\", txt:\"The participants in the survey were quite positive about the traffic-light system.\"},\n      {spk:\"Alice\", txt:\"But I don\u2019t think they targeted the right people. They should have focused on people with low literacy levels because these labels are designed to be accessible to them.\"},\n      {spk:\"Jack\", txt:\"Yeah. But it\u2019s good to get feedback from all socio-economic groups. And there wasn\u2019t much variation in their responses.\"},\n      {spk:\"Alice\", txt:\"No. But if they hadn\u2019t interviewed participants face-to-face, they could have used a much bigger sample size. I wonder why they chose that method?\"},\n      {spk:\"Jack\", txt:\"Dunno. How were they selected? Did they volunteer or were they approached?\"},\n      {spk:\"Alice\", txt:\"I think they volunteered. The thing that wasn\u2019t stated was how often they bought packaged food \u2014 all we know is how frequently they used the supermarket.\"}\n    ];\n\n    const S4_MONO = [\n      \"In my presentation, I\u2019m going to talk about coffee, and its importance both in economic and social terms.\",\n      \"There is evidence that coffee was originally gathered from bushes growing wild in Ethiopia, in the northeast of Africa.\",\n      \"It\u2019s also known that in 1522, in the Turkish city of Constantinople, the court physician approved its use as a medicine.\",\n      \"In 1623 the ruler of Constantinople demanded the destruction of all the coffee houses in the city, although after his death many new ones opened and coffee consumption continued.\",\n      \"In the seventeenth century coffee drinking spread to Europe, and coffee shops became places where ordinary people could meet to exchange ideas; some said these places performed a similar function to universities.\",\n      \"They had an enormous impact on social life and many social movements and political developments had their origins in coffee house discussions.\",\n      \"Different types of coffee were produced in different areas and names like Mocha or Java coffee were often taken from the port they were shipped from.\",\n      \"In Brazil and the Caribbean colonies coffee was grown in huge plantations and the workers there were almost all slaves.\",\n      \"In Java, which had been colonised by the Dutch, peasants grew coffee and passed a proportion to the Dutch so it was used as a means of taxation.\",\n      \"Coffee became nearly as important as sugar production.\",\n      \"In Britain, a new drink was introduced from China and started to become popular, gradually taking over from coffee: tea.\",\n      \"In the nineteenth century production boomed and coffee prices started to fall, partly because new types of transportation had been developed.\",\n      \"Industrial workers found coffee helped them to work at night.\"\n    ];\n\n    \/\/ ===== Render transcripts =====\n    const tS1 = ROOT.querySelector('#tS1');\n    const tS2 = ROOT.querySelector('#tS2');\n    const tS3 = ROOT.querySelector('#tS3');\n    const tS4 = ROOT.querySelector('#tS4');\n\n    function renderDialogue(el, arr){\n      if(!el) return;\n      el.innerHTML = arr.map(x => (\n        `<div><span class=\"speaker\">${escapeHtml(x.spk)}:<\/span><span class=\"mono\">${escapeHtml(x.txt)}<\/span><\/div>`\n      )).join('');\n    }\n    function renderMono(el, arr){\n      if(!el) return;\n      el.innerHTML = arr.map(p => `<div class=\"mono\">${escapeHtml(p)}<\/div>`).join('<div style=\"height:10px\"><\/div>');\n    }\n    renderDialogue(tS1, S1_DIALOGUE);\n    renderMono(tS2, S2_MONO);\n    renderDialogue(tS3, S3_DIALOGUE);\n    renderMono(tS4, S4_MONO);\n\n    \/\/ ===== Voices =====\n    const selNarr = ROOT.querySelector('#icteVoiceNarr6');\n    const selA = ROOT.querySelector('#icteVoiceA6');\n\n    let allVoices = [];\n    let googleUSUK = [];\n\n    function isEN(v){ return \/^en(-|_)\/i.test(v.lang); }\n    function isUSUK(v){ return \/en[-_]us|en[-_]gb\/i.test(v.lang); }\n    function isGoogle(v){ return \/google\/i.test(v.name); }\n\n    function preferredOrder(list){\n      const us = list.filter(v => \/en[-_]us\/i.test(v.lang));\n      const uk = list.filter(v => \/en[-_]gb\/i.test(v.lang));\n      const rest = list.filter(v => !\/en[-_]us|en[-_]gb\/i.test(v.lang));\n      return [...us, ...uk, ...rest];\n    }\n    function fillSelect(sel, list){\n      if(!sel) return;\n      sel.innerHTML = \"\";\n      list.forEach(v => {\n        const opt = document.createElement('option');\n        opt.value = v.name + \"||\" + v.lang;\n        opt.textContent = `${v.name} (${v.lang})`;\n        sel.appendChild(opt);\n      });\n    }\n    function loadVoices(){\n      allVoices = window.speechSynthesis ? window.speechSynthesis.getVoices() : [];\n      googleUSUK = allVoices.filter(v => isGoogle(v) && isEN(v) && isUSUK(v));\n      const fallbackEN = allVoices.filter(isEN);\n      const narrList = preferredOrder(googleUSUK.length ? googleUSUK : fallbackEN);\n      const diaList  = preferredOrder(googleUSUK.length ? googleUSUK : fallbackEN);\n      fillSelect(selNarr, narrList);\n      fillSelect(selA, diaList);\n      if(selNarr && selNarr.options.length) selNarr.selectedIndex = 0;\n      if(selA && selA.options.length) selA.selectedIndex = 0;\n    }\n    function getVoiceByValue(val){\n      const [name, lang] = String(val||\"\").split(\"||\");\n      return allVoices.find(v => v.name === name && v.lang === lang) || allVoices.find(v => v.name === name) || null;\n    }\n    function pickSpeakerB(){\n      const a = getVoiceByValue(selA ? selA.value : \"\");\n      const pool = (googleUSUK.length ? googleUSUK : allVoices.filter(isEN));\n      let b = pool.find(v => a && v.name !== a.name && \/en[-_]gb\/i.test(v.lang));\n      if(!b) b = pool.find(v => a && v.name !== a.name);\n      if(!b) b = a;\n      return b;\n    }\n\n    if(window.speechSynthesis){\n      loadVoices();\n      window.speechSynthesis.onvoiceschanged = loadVoices;\n    }\n\n    \/\/ ===== Speech helpers =====\n    function stopAll(){\n      if(window.speechSynthesis) window.speechSynthesis.cancel();\n    }\n    function speakMono(paragraphs, voice){\n      stopAll();\n      if(!window.speechSynthesis) return;\n      const rate = 1.0, pitch = 1.0, vol = 1.0;\n      paragraphs.forEach(txt => {\n        const u = new SpeechSynthesisUtterance(txt);\n        if(voice) u.voice = voice;\n        u.rate = rate; u.pitch = pitch; u.volume = vol;\n        window.speechSynthesis.speak(u);\n      });\n    }\n    function speakDialogue(lines, voiceA, voiceB){\n      stopAll();\n      if(!window.speechSynthesis) return;\n      const rate = 1.0, pitch = 1.0, vol = 1.0;\n      lines.forEach(x => {\n        const u = new SpeechSynthesisUtterance(x.txt);\n        const useB = (x.spk && \/alex|jack\/i.test(x.spk)) ? true : false;\n        u.voice = useB ? voiceB : voiceA;\n        u.rate = rate; u.pitch = pitch; u.volume = vol;\n        window.speechSynthesis.speak(u);\n      });\n    }\n\n    \/\/ ===== Answers =====\n    const ANSWERS = {\n      1:[\"finance\"],\n      2:[\"maths\",\"math\",\"mathematics\"],\n      3:[\"business\"],\n      4:[\"17\",\"seventeen\"],\n      5:[\"holiday\",\"holidays\",\"vacation\",\"vacations\"],\n      6:[\"college\"],\n      7:[\"location\"],\n      8:[\"jeans\"],\n      9:[\"late\"],\n      10:[\"smile\"],\n\n      11:[\"A\"], 12:[\"B\"], 13:[\"A\"], 14:[\"C\"], 15:[\"A\"], 16:[\"B\"],\n      17:[\"B\"], 18:[\"C\"], 19:[\"A\"], 20:[\"E\"],\n\n      21:[\"A\"], 22:[\"A\"], 23:[\"C\"], 24:[\"C\"], 25:[\"B\"], 26:[\"A\"],\n      \"27_28\":[\"B\",\"C\"],\n      \"29_30\":[\"D\",\"E\"],\n\n      31:[\"destruction\"],\n      32:[\"university\",\"universities\"],\n      33:[\"political\"],\n      34:[\"port\",\"ports\"],\n      35:[\"slaves\",\"slavery\"],\n      36:[\"taxation\"],\n      37:[\"sugar\"],\n      38:[\"tea\"],\n      39:[\"transportation\"],\n      40:[\"night\"]\n    };\n\n    \/\/ RADIO READ: uses prefixed names\n    function getRadio(qNum){\n      const name = RNAME + String(qNum);\n      const checked = ROOT.querySelector(`input[type=\"radio\"][name=\"${name}\"]:checked`);\n      return checked ? checked.value : \"\";\n    }\n    function getCheckboxVals(key){\n      return Array.from(ROOT.querySelectorAll(`input[type=\"checkbox\"][data-q=\"${key}\"]:checked`))\n        .map(x => x.value)\n        .sort();\n    }\n\n    function setPill(el, kind, text){\n      if(!el) return;\n      el.classList.remove('ok','bad');\n      if(kind) el.classList.add(kind);\n      el.textContent = text;\n    }\n    function bandEstimate(score){\n      if(score >= 39) return \"9.0\";\n      if(score >= 37) return \"8.5\";\n      if(score >= 35) return \"8.0\";\n      if(score >= 32) return \"7.5\";\n      if(score >= 30) return \"7.0\";\n      if(score >= 26) return \"6.5\";\n      if(score >= 23) return \"6.0\";\n      if(score >= 18) return \"5.5\";\n      if(score >= 16) return \"5.0\";\n      if(score >= 13) return \"4.5\";\n      if(score >= 10) return \"4.0\";\n      if(score >= 8)  return \"3.5\";\n      if(score >= 6)  return \"3.0\";\n      if(score >= 4)  return \"2.5\";\n      return \"\u2014\";\n    }\n    function markBox(box, isCorrect){\n      if(!box) return;\n      box.style.borderColor = isCorrect ? \"#abefc6\" : \"#fecdca\";\n      box.style.background  = isCorrect ? \"#ecfdf3\" : \"#fef3f2\";\n    }\n\n    function checkAll(){\n      let correct = 0;\n\n      ROOT.querySelectorAll('.qbox').forEach(b => { b.style.borderColor=\"\"; b.style.background=\"\"; });\n      ROOT.querySelectorAll('input[type=\"text\"]').forEach(i => { i.classList.remove('ok','bad'); i.style.borderColor=\"\"; });\n\n      for(let i=1;i<=10;i++){\n        const inp = ROOT.querySelector(`input[type=\"text\"][data-q=\"${i}\"]`);\n        if(!inp) continue;\n        const user = normText(inp.value);\n        const ok = (ANSWERS[i] || []).some(a => normText(a) === user);\n        if(ok) correct++;\n        inp.classList.add(ok ? \"ok\" : \"bad\");\n      }\n\n      for(let i=11;i<=16;i++){\n        const val = getRadio(i);\n        const ok = (val === (ANSWERS[i] ? ANSWERS[i][0] : \"\"));\n        if(ok) correct++;\n        const box = ROOT.querySelector(`[data-qbox=\"q${i}\"]`);\n        markBox(box, ok);\n      }\n\n      for(let i=17;i<=20;i++){\n        const inp = ROOT.querySelector(`input[type=\"text\"][data-q=\"${i}\"]`);\n        if(!inp) continue;\n        const user = normLetter(inp.value);\n        const ok = (ANSWERS[i] || []).includes(user);\n        if(ok) correct++;\n        inp.classList.add(ok ? \"ok\" : \"bad\");\n      }\n\n      for(let i=21;i<=26;i++){\n        const val = getRadio(i);\n        const ok = (val === (ANSWERS[i] ? ANSWERS[i][0] : \"\"));\n        if(ok) correct++;\n        const box = ROOT.querySelector(`[data-qbox=\"q${i}\"]`);\n        markBox(box, ok);\n      }\n\n      {\n        const user = getCheckboxVals(\"27_28\");\n        const target = (ANSWERS[\"27_28\"]||[]).slice().sort();\n        const ok = user.length===2 &#038;&#038; user[0]===target[0] &#038;&#038; user[1]===target[1];\n        if(ok) correct += 2;\n        const box = ROOT.querySelector(`[data-qbox=\"s3b\"]`);\n        markBox(box, ok);\n      }\n\n      {\n        const user = getCheckboxVals(\"29_30\");\n        const target = (ANSWERS[\"29_30\"]||[]).slice().sort();\n        const ok = user.length===2 &#038;&#038; user[0]===target[0] &#038;&#038; user[1]===target[1];\n        if(ok) correct += 2;\n        const box = ROOT.querySelector(`[data-qbox=\"s3c\"]`);\n        markBox(box, ok);\n      }\n\n      for(let i=31;i<=40;i++){\n        const inp = ROOT.querySelector(`input[type=\"text\"][data-q=\"${i}\"]`);\n        if(!inp) continue;\n        const user = normText(inp.value);\n        const ok = (ANSWERS[i] || []).some(a => normText(a) === user);\n        if(ok) correct++;\n        inp.classList.add(ok ? \"ok\" : \"bad\");\n      }\n\n      const scorePill = ROOT.querySelector('#scorePill');\n      const bandPill  = ROOT.querySelector('#bandPill');\n\n      setPill(scorePill, (correct>=30 ? \"ok\" : (correct>=16 ? \"\" : \"bad\")), `Score: ${correct} \/ 40`);\n      const band = bandEstimate(correct);\n      if(bandPill) bandPill.textContent = `Band estimate: ${band} (approx)`;\n    }\n\n    \/\/ ===== Show answers toggle =====\n    let answersShown = false;\n\n    function setAnswerBlocks(){\n      const blocks = ROOT.querySelectorAll('.answer-reveal');\n      blocks.forEach(b => { b.style.display = answersShown ? \"block\" : \"none\"; });\n\n      const s1 = ROOT.querySelector('.answer-reveal[data-ans=\"s1\"]');\n      if(s1 && !s1.dataset.filled){\n        s1.innerHTML =\n          `Answers:`+\n          `<br>1 <code>finance<\/code>`+\n          `<br>2 <code>maths \/ math \/ mathematics<\/code>`+\n          `<br>3 <code>business<\/code>`+\n          `<br>4 <code>17 \/ seventeen<\/code>`+\n          `<br>5 <code>holiday(s) \/ vacation(s)<\/code>`+\n          `<br>6 <code>college<\/code>`+\n          `<br>7 <code>location<\/code>`+\n          `<br>8 <code>jeans<\/code>`+\n          `<br>9 <code>late<\/code>`+\n          `<br>10 <code>smile<\/code>`;\n        s1.dataset.filled=\"1\";\n      }\n\n      const s2a = ROOT.querySelector('.answer-reveal[data-ans=\"s2a\"]');\n      if(s2a && !s2a.dataset.filled){\n        s2a.innerHTML = `Answers: <br>11 <code>A<\/code> \u00b7 12 <code>B<\/code> \u00b7 13 <code>A<\/code> \u00b7 14 <code>C<\/code> \u00b7 15 <code>A<\/code> \u00b7 16 <code>B<\/code>`;\n        s2a.dataset.filled=\"1\";\n      }\n      const s2b = ROOT.querySelector('.answer-reveal[data-ans=\"s2b\"]');\n      if(s2b && !s2b.dataset.filled){\n        s2b.innerHTML = `Answers: <br>17 <code>B<\/code> \u00b7 18 <code>C<\/code> \u00b7 19 <code>A<\/code> \u00b7 20 <code>E<\/code>`;\n        s2b.dataset.filled=\"1\";\n      }\n\n      const s3a = ROOT.querySelector('.answer-reveal[data-ans=\"s3a\"]');\n      if(s3a && !s3a.dataset.filled){\n        s3a.innerHTML = `Answers: <br>21 <code>A<\/code> \u00b7 22 <code>A<\/code> \u00b7 23 <code>C<\/code> \u00b7 24 <code>C<\/code> \u00b7 25 <code>B<\/code> \u00b7 26 <code>A<\/code>`;\n        s3a.dataset.filled=\"1\";\n      }\n      const s3b = ROOT.querySelector('.answer-reveal[data-ans=\"s3b\"]');\n      if(s3b && !s3b.dataset.filled){\n        s3b.innerHTML = `Answers (either order): <code>B<\/code> and <code>C<\/code>`;\n        s3b.dataset.filled=\"1\";\n      }\n      const s3c = ROOT.querySelector('.answer-reveal[data-ans=\"s3c\"]');\n      if(s3c && !s3c.dataset.filled){\n        s3c.innerHTML = `Answers (either order): <code>D<\/code> and <code>E<\/code>`;\n        s3c.dataset.filled=\"1\";\n      }\n\n      const s4 = ROOT.querySelector('.answer-reveal[data-ans=\"s4\"]');\n      if(s4 && !s4.dataset.filled){\n        s4.innerHTML =\n          `Answers:`+\n          `<br>31 <code>destruction<\/code>`+\n          `<br>32 <code>university \/ universities<\/code>`+\n          `<br>33 <code>political<\/code>`+\n          `<br>34 <code>port \/ ports<\/code>`+\n          `<br>35 <code>slaves \/ slavery<\/code>`+\n          `<br>36 <code>taxation<\/code>`+\n          `<br>37 <code>sugar<\/code>`+\n          `<br>38 <code>tea<\/code>`+\n          `<br>39 <code>transportation<\/code>`+\n          `<br>40 <code>night<\/code>`;\n        s4.dataset.filled=\"1\";\n      }\n    }\n\n    \/\/ ===== Reset =====\n    function resetAll(){\n      stopAll();\n      ROOT.querySelectorAll('input[type=\"text\"]').forEach(i => { i.value=\"\"; i.classList.remove('ok','bad'); i.style.borderColor=\"\"; });\n      ROOT.querySelectorAll('input[type=\"radio\"]').forEach(r => { r.checked=false; });\n      ROOT.querySelectorAll('input[type=\"checkbox\"]').forEach(c => { c.checked=false; });\n      const sp = ROOT.querySelector('#scorePill');\n      const bp = ROOT.querySelector('#bandPill');\n      if(sp){ sp.textContent=\"Score: \u2014 \/ 40\"; sp.classList.remove('ok','bad'); }\n      if(bp){ bp.textContent=\"Band estimate: \u2014\"; }\n      ROOT.querySelectorAll('.qbox').forEach(b => { b.style.borderColor=\"\"; b.style.background=\"\"; });\n      clearStudy();\n    }\n\n    \/\/ ===== Study tools content =====\n    const STUDY = {\n      1:{\n        main:[\n          \"Alex explains his trainee programme at JPNW and why he recommends it.\",\n          \"Key features: departments, qualifications, trainee age range, benefits and support.\",\n          \"Interview advice: dress smartly, arrive early, and smile.\"\n        ],\n        keywords:[\"trainee\",\"finance\",\"customer services\",\"qualification\",\"maths\",\"diploma\",\"college\",\"holiday\",\"train station\",\"interview\"],\n        summary:\"Martha calls Alex for advice about the JPNW trainee programme. Alex describes his training path, the support and benefits available, and gives practical interview tips such as dressing appropriately, arriving early, and smiling.\"\n      },\n      2:{\n        main:[\n          \"Annie introduces the Snow Centre activities and safety guidance.\",\n          \"Highlights: skiing, dog-sled trip, relay event, expedition and hut procedures.\",\n          \"Trail information helps visitors choose routes appropriately.\"\n        ],\n        keywords:[\"Snow Centre\",\"cross-country skiing\",\"dog-sled\",\"relay\",\"snow shoes\",\"hut\",\"storm\",\"Highland Trail\",\"Pine Trail\",\"Stony Trail\",\"Loser\u2019s Trail\"],\n        summary:\"Annie welcomes visitors to the Snow Centre, outlines scheduled activities, explains what to do in bad weather, and describes several ski trails so visitors can choose routes that match their abilities and conditions.\"\n      },\n      3:{\n        main:[\n          \"Students evaluate how nutritional labels influence consumer understanding.\",\n          \"They compare labelling systems and discuss transparency and consistency.\",\n          \"They debate the traffic-light system and research methods\/participants.\"\n        ],\n        keywords:[\"nutritional label\",\"daily value\",\"traffic-light system\",\"portion size\",\"calories\",\"additives\",\"manufacturers\",\"consultation\",\"low literacy\",\"face-to-face\"],\n        summary:\"Jack and Alice discuss what they learned from analysing food labels. They critique portion-size practices, compare labelling systems, and consider the strengths and limitations of research on the traffic-light approach to nutritional information.\"\n      },\n      4:{\n        main:[\n          \"Coffee\u2019s origins and early use in the Arab world and Constantinople.\",\n          \"Coffee houses shape European social and political life.\",\n          \"Colonisation, labour systems, and economic expansion drive coffee\u2019s global rise.\"\n        ],\n        keywords:[\"Ethiopia\",\"Constantinople\",\"coffee houses\",\"universities\",\"colonisation\",\"plantations\",\"slaves\",\"taxation\",\"tea\",\"transportation\"],\n        summary:\"The lecture traces coffee from its African origins to its spread through Constantinople and Europe. It highlights coffee houses as centres of social and political change, and shows how colonisation and improved transportation expanded production and consumption.\"\n      }\n    };\n\n    const noteSel = ROOT.querySelector('#icteNoteSection6');\n    const studyOut = ROOT.querySelector('#studyOut6');\n    const studyHint = ROOT.querySelector('#studyHint6');\n\n    function sectionNum(){\n      const n = parseInt(noteSel ? noteSel.value : \"1\", 10);\n      return [1,2,3,4].includes(n) ? n : 1;\n    }\n    function renderMainIdeas(sec){\n      const data = STUDY[sec]; if(!data) return \"\";\n      const items = data.main.map(x => `<li>${escapeHtml(x)}<\/li>`).join(\"\");\n      return `<h4>Main ideas (Section ${sec})<\/h4><ul>${items}<\/ul>`;\n    }\n    function renderKeywords(sec){\n      const data = STUDY[sec]; if(!data) return \"\";\n      const pills = data.keywords.map(k => `<span class=\"k-pill\">${escapeHtml(k)}<\/span>`).join(\"\");\n      return `<h4>Keywords (Section ${sec})<\/h4><div>${pills}<\/div>`;\n    }\n    function renderSummary(sec){\n      const data = STUDY[sec]; if(!data) return \"\";\n      return `<h4>Summary (Section ${sec})<\/h4><div>${escapeHtml(data.summary)}<\/div>`;\n    }\n    function setStudy(html){\n      if(studyHint) studyHint.style.display = html ? \"none\" : \"block\";\n      if(studyOut) studyOut.innerHTML = html || \"\";\n    }\n    function clearStudy(){ setStudy(\"\"); }\n\n    \/\/ ===== Button actions =====\n    ROOT.addEventListener('click', (e) => {\n      const btn = e.target.closest('button');\n      if(!btn) return;\n      const act = btn.getAttribute('data-act');\n      if(!act) return;\n\n      if(act === \"stop\"){ stopAll(); }\n\n      if(act === \"playS1\"){\n        if(noteSel) noteSel.value = \"1\";\n        const vA = getVoiceByValue(selA ? selA.value : \"\");\n        const vB = pickSpeakerB();\n        speakDialogue(S1_DIALOGUE, vA, vB);\n      }\n      if(act === \"playS2\"){\n        if(noteSel) noteSel.value = \"2\";\n        const v = getVoiceByValue(selNarr ? selNarr.value : \"\");\n        speakMono(S2_MONO, v);\n      }\n      if(act === \"playS3\"){\n        if(noteSel) noteSel.value = \"3\";\n        const vA = getVoiceByValue(selA ? selA.value : \"\");\n        const vB = pickSpeakerB();\n        speakDialogue(S3_DIALOGUE, vA, vB);\n      }\n      if(act === \"playS4\"){\n        if(noteSel) noteSel.value = \"4\";\n        const v = getVoiceByValue(selNarr ? selNarr.value : \"\");\n        speakMono(S4_MONO, v);\n      }\n\n      if(act === \"check\"){ checkAll(); }\n      if(act === \"reset\"){ resetAll(); }\n\n      if(act === \"toggleAnswers\"){\n        answersShown = !answersShown;\n        setAnswerBlocks();\n      }\n\n      if(act === \"showMain\"){ setStudy(renderMainIdeas(sectionNum())); }\n      if(act === \"showKeys\"){ setStudy(renderKeywords(sectionNum())); }\n      if(act === \"showSum\"){ setStudy(renderSummary(sectionNum())); }\n      if(act === \"clearStudy\"){ clearStudy(); }\n    });\n\n    \/\/ init\n    setAnswerBlocks();\n    clearStudy();\n  })();\n  <\/script>\n\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Overview Test 1 Test 2 Test 3 Test 4 Test 5 Test 6 Reading Speaking Writing IELTS Listening \u2013 Test<\/p>\n","protected":false},"author":1,"featured_media":302,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_layout":"default_layout","footnotes":""},"categories":[25,28,36],"tags":[],"class_list":["post-699","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ielts","category-listening","category-test-6"],"_links":{"self":[{"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/posts\/699","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/comments?post=699"}],"version-history":[{"count":6,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/posts\/699\/revisions"}],"predecessor-version":[{"id":707,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/posts\/699\/revisions\/707"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/media\/302"}],"wp:attachment":[{"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/media?parent=699"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/categories?post=699"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/tags?post=699"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}