{"id":577,"date":"2026-01-09T13:25:07","date_gmt":"2026-01-09T13:25:07","guid":{"rendered":"https:\/\/i-cte.org\/robot\/?p=577"},"modified":"2026-01-09T13:25:07","modified_gmt":"2026-01-09T13:25:07","slug":"ielts-listening-test-2","status":"publish","type":"post","link":"https:\/\/i-cte.org\/robot\/ielts-listening-test-2\/","title":{"rendered":"IELTs &#8211; Listening &#8211; Test 2"},"content":{"rendered":"\n<div id=\"icte-listening-test6\">\n\n  <!-- \u2705 TOP GREEN MENU (site links + internal section jumps) -->\n  <nav class=\"icte-menu\" aria-label=\"ICTE Listening menu\">\n        <a href=\"https:\/\/i-cte.org\/robot\/topics\/ielts\/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-overview\/\" class=\"is-current\">Listening<\/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  <!-- \u2705 GLOBAL CONTROLS (voices used by ALL sections) -->\n  <section class=\"icte-ielts icte-ielts--top\" aria-label=\"Global controls\">\n    <header class=\"icte-ielts__intro\">\n      <h2 class=\"icte-ielts__title\">IELTS Listening \u2013 Test 2 (Sections 1\u20134)<\/h2>\n      <p class=\"icte-ielts__sub\">\n        Practice all 4 sections on one page. Use <strong>Check Answers<\/strong> in each section for feedback.\n      <\/p>\n    <\/header>\n\n    <section class=\"icte-ielts__panel\" aria-label=\"Voice controls\">\n      <div class=\"icte-ielts__panelHead\">\n        <h3 class=\"icte-ielts__h3\">Voices (used for all sections)<\/h3>\n        <div class=\"icte-ielts__headRight\">\n          <button class=\"icte-btn icte-btn--danger\" type=\"button\" data-action=\"stop-audio\">\u23f9 Stop Audio<\/button>\n          <span class=\"icte-loader\" data-el=\"synthesis-loader\" aria-hidden=\"true\"><\/span>\n        <\/div>\n      <\/div>\n\n      <div class=\"icte-ielts__row\" style=\"align-items:flex-start;\">\n        <div class=\"icte-ielts__control\" style=\"flex:1; min-width:240px;\">\n          <label><strong>Voice A<\/strong> (Narrator \/ Speaker 1)<\/label>\n          <select data-el=\"voice-a\" aria-label=\"Select Voice A\">\n            <option value=\"\">Loading voices&#8230;<\/option>\n          <\/select>\n        <\/div>\n\n        <div class=\"icte-ielts__control\" style=\"flex:1; min-width:240px;\">\n          <label><strong>Voice B<\/strong> (Speaker 2)<\/label>\n          <select data-el=\"voice-b\" aria-label=\"Select Voice B\">\n            <option value=\"\">Loading voices&#8230;<\/option>\n          <\/select>\n        <\/div>\n\n        <div class=\"icte-ielts__score\" data-el=\"overallScoreBox\" aria-live=\"polite\"><\/div>\n      <\/div>\n\n      <div class=\"icte-ielts__btnRow\">\n        <button class=\"icte-btn icte-btn--ghost\" type=\"button\" data-action=\"scroll-sec1\">Go to Section 1<\/button>\n        <button class=\"icte-btn icte-btn--ghost\" type=\"button\" data-action=\"scroll-sec2\">Go to Section 2<\/button>\n        <button class=\"icte-btn icte-btn--ghost\" type=\"button\" data-action=\"scroll-sec3\">Go to Section 3<\/button>\n        <button class=\"icte-btn icte-btn--ghost\" type=\"button\" data-action=\"scroll-sec4\">Go to Section 4<\/button>\n      <\/div>\n    <\/section>\n  <\/section>\n\n  <!-- =========================\n       SECTION 1 (1\u201310)\n  ========================== -->\n  <section class=\"icte-ielts\" id=\"sec1\" data-section=\"s1\" aria-label=\"Section 1\">\n    <header class=\"icte-ielts__intro\">\n      <h2 class=\"icte-ielts__title\">Section 1 (Questions 1\u201310): Events during Kenton Festival<\/h2>\n      <p class=\"icte-ielts__sub\">\n        Complete the notes below. Write <strong>ONE WORD AND\/OR A NUMBER<\/strong> for each answer.\n      <\/p>\n    <\/header>\n\n    <!-- Transcript -->\n    <section class=\"icte-ielts__panel\" aria-label=\"Transcript S1\">\n      <div class=\"icte-ielts__panelHead\">\n        <h3 class=\"icte-ielts__h3\">Transcript (Section 1)<\/h3>\n        <div class=\"icte-ielts__headRight\">\n          <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"toggle-transcript\">Show Transcript<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"icte-ielts__reading\" data-el=\"transcript-area\" style=\"display:none;\"><\/div>\n\n      <div class=\"icte-ielts__btnRow icte-ielts__btnRow--tight\">\n        <button class=\"icte-btn icte-btn--info\" type=\"button\" data-action=\"play-audio\">\ud83d\udd0a Listen (Section 1)<\/button>\n        <a class=\"icte-link\" href=\"#q-s1\">Jump to questions \u2193<\/a>\n      <\/div>\n    <\/section>\n\n    <!-- Support -->\n    <section class=\"icte-ielts__panel\" aria-label=\"Support S1\">\n      <div class=\"icte-ielts__panelHead\">\n        <h3 class=\"icte-ielts__h3\">Support<\/h3>\n        <div class=\"icte-ielts__headRight\">\n          <button class=\"icte-btn icte-btn--ghost\" type=\"button\" data-action=\"clear-support\">Clear<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"icte-ielts__helper\" data-el=\"helper-area\" aria-live=\"polite\">\n        Click <strong>Summary<\/strong>, <strong>Main ideas<\/strong>, or <strong>Keywords<\/strong>.\n      <\/div>\n    <\/section>\n\n    <!-- Controls -->\n    <section class=\"icte-ielts__panel\" aria-label=\"Controls S1\">\n      <div class=\"icte-ielts__btnGrid\">\n        <button class=\"icte-btn icte-btn--info\" type=\"button\" data-action=\"play-instructions\">\ud83d\udd0a Read Instructions<\/button>\n        <button class=\"icte-btn icte-btn--info\" type=\"button\" data-action=\"read-questions\">\ud83d\udd0a Read Questions<\/button>\n        <button class=\"icte-btn icte-btn--primary\" type=\"button\" data-action=\"check\">Check Answers<\/button>\n        <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"show\">\ud83d\udc40 Show Answers<\/button>\n        <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"summary\">\ud83e\udde0 Summary<\/button>\n        <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"main-ideas\">\ud83d\udccc Main ideas<\/button>\n        <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"keywords\">\ud83d\udcda Keywords<\/button>\n        <button class=\"icte-btn icte-btn--ghost\" type=\"button\" data-action=\"reset\">Reset<\/button>\n      <\/div>\n      <div class=\"icte-ielts__row\" style=\"padding-top:0;\">\n        <div class=\"icte-ielts__score\" data-el=\"scoreBox\" aria-live=\"polite\"><\/div>\n      <\/div>\n    <\/section>\n\n    <!-- Questions -->\n    <section class=\"icte-ielts__panel\" id=\"q-s1\" aria-label=\"Questions 1-10\">\n      <div class=\"icte-ielts__panelHead\">\n        <h3 class=\"icte-ielts__h3\">Questions 1\u201310<\/h3>\n      <\/div>\n\n      <div class=\"icte-ielts__qArea\">\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">EVENTS DURING KENTON FESTIVAL<\/div>\n          <div class=\"icte-note\">\n            <div><strong>Example<\/strong> Start date: <strong>16th<\/strong> May<\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Opening ceremony (first day)<\/div>\n          <div class=\"icte-note\">\n            <div>\u2022 In town centre, starting at\n              <span class=\"blank\">1 <input type=\"text\" data-q=\"1\" data-type=\"text\" placeholder=\"NUMBER\" \/><\/span>\n            <\/div>\n            <div>\u2022 The mayor will make a speech<\/div>\n            <div>\u2022 A\n              <span class=\"blank\">2 <input type=\"text\" data-q=\"2\" data-type=\"text\" placeholder=\"ONE WORD\" \/><\/span>\n              will perform\n            <\/div>\n            <div>\u2022 Performance of a\n              <span class=\"blank\">3 <input type=\"text\" data-q=\"3\" data-type=\"text\" placeholder=\"ONE WORD\" \/><\/span>\n              about Helen Tungate (a\n              <span class=\"blank\">4 <input type=\"text\" data-q=\"4\" data-type=\"text\" placeholder=\"ONE WORD\" \/><\/span>)\n            <\/div>\n            <div>\u2022 Evening fireworks display situated across the\n              <span class=\"blank\">5 <input type=\"text\" data-q=\"5\" data-type=\"text\" placeholder=\"ONE WORD\" \/><\/span>\n            <\/div>\n          <\/div>\n          <div class=\"icte-q__fb\" data-fb=\"1\"><\/div>\n          <div class=\"icte-q__fb\" data-fb=\"2\"><\/div>\n          <div class=\"icte-q__fb\" data-fb=\"3\"><\/div>\n          <div class=\"icte-q__fb\" data-fb=\"4\"><\/div>\n          <div class=\"icte-q__fb\" data-fb=\"5\"><\/div>\n        <\/div>\n\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Other events<\/div>\n          <div class=\"icte-note\">\n            <div>\u2022 Videos about relationships that children have with their\n              <span class=\"blank\">6 <input type=\"text\" data-q=\"6\" data-type=\"text\" placeholder=\"ONE WORD\" \/><\/span>\n            <\/div>\n            <div>\u2022 Venue:\n              <span class=\"blank\">7 <input type=\"text\" data-q=\"7\" data-type=\"text\" placeholder=\"ONE WORD\" \/><\/span>\n              House\n            <\/div>\n            <div>\u2022 Performance of\n              <span class=\"blank\">8 <input type=\"text\" data-q=\"8\" data-type=\"text\" placeholder=\"ONE WORD\" \/><\/span>\n              dances\n            <\/div>\n            <div>\u2022 Venue: the\n              <span class=\"blank\">9 <input type=\"text\" data-q=\"9\" data-type=\"text\" placeholder=\"ONE WORD\" \/><\/span>\n              market in the town centre\n            <\/div>\n            <div>\u2022 Tickets available online and from shops which have the festival\n              <span class=\"blank\">10 <input type=\"text\" data-q=\"10\" data-type=\"text\" placeholder=\"ONE WORD\" \/><\/span>\n              in their windows\n            <\/div>\n          <\/div>\n          <div class=\"icte-q__fb\" data-fb=\"6\"><\/div>\n          <div class=\"icte-q__fb\" data-fb=\"7\"><\/div>\n          <div class=\"icte-q__fb\" data-fb=\"8\"><\/div>\n          <div class=\"icte-q__fb\" data-fb=\"9\"><\/div>\n          <div class=\"icte-q__fb\" data-fb=\"10\"><\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n  <\/section>\n\n  <!-- =========================\n       SECTION 2 (11\u201320)\n  ========================== -->\n  <section class=\"icte-ielts\" id=\"sec2\" data-section=\"s2\" aria-label=\"Section 2\">\n    <header class=\"icte-ielts__intro\">\n      <h2 class=\"icte-ielts__title\">Section 2 (Questions 11\u201320): Theatre trip to Munich<\/h2>\n      <p class=\"icte-ielts__sub\">\n        Questions 11\u201315: choose <strong>A, B or C<\/strong>. Questions 16\u201320: choose <strong>FIVE<\/strong> answers from the box.\n      <\/p>\n    <\/header>\n\n    <!-- Transcript -->\n    <section class=\"icte-ielts__panel\" aria-label=\"Transcript S2\">\n      <div class=\"icte-ielts__panelHead\">\n        <h3 class=\"icte-ielts__h3\">Transcript (Section 2)<\/h3>\n        <div class=\"icte-ielts__headRight\">\n          <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"toggle-transcript\">Show Transcript<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"icte-ielts__reading\" data-el=\"transcript-area\" style=\"display:none;\"><\/div>\n      <div class=\"icte-ielts__btnRow icte-ielts__btnRow--tight\">\n        <button class=\"icte-btn icte-btn--info\" type=\"button\" data-action=\"play-audio\">\ud83d\udd0a Listen (Section 2)<\/button>\n        <a class=\"icte-link\" href=\"#q-s2\">Jump to questions \u2193<\/a>\n      <\/div>\n    <\/section>\n\n    <!-- Support -->\n    <section class=\"icte-ielts__panel\" aria-label=\"Support S2\">\n      <div class=\"icte-ielts__panelHead\">\n        <h3 class=\"icte-ielts__h3\">Support<\/h3>\n        <div class=\"icte-ielts__headRight\">\n          <button class=\"icte-btn icte-btn--ghost\" type=\"button\" data-action=\"clear-support\">Clear<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"icte-ielts__helper\" data-el=\"helper-area\" aria-live=\"polite\">\n        Click <strong>Summary<\/strong>, <strong>Main ideas<\/strong>, or <strong>Keywords<\/strong>.\n      <\/div>\n    <\/section>\n\n    <!-- Controls -->\n    <section class=\"icte-ielts__panel\" aria-label=\"Controls S2\">\n      <div class=\"icte-ielts__btnGrid\">\n        <button class=\"icte-btn icte-btn--info\" type=\"button\" data-action=\"play-instructions\">\ud83d\udd0a Read Instructions<\/button>\n        <button class=\"icte-btn icte-btn--info\" type=\"button\" data-action=\"read-questions\">\ud83d\udd0a Read Questions<\/button>\n        <button class=\"icte-btn icte-btn--primary\" type=\"button\" data-action=\"check\">Check Answers<\/button>\n        <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"show\">\ud83d\udc40 Show Answers<\/button>\n        <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"summary\">\ud83e\udde0 Summary<\/button>\n        <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"main-ideas\">\ud83d\udccc Main ideas<\/button>\n        <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"keywords\">\ud83d\udcda Keywords<\/button>\n        <button class=\"icte-btn icte-btn--ghost\" type=\"button\" data-action=\"reset\">Reset<\/button>\n      <\/div>\n      <div class=\"icte-ielts__row\" style=\"padding-top:0;\">\n        <div class=\"icte-ielts__score\" data-el=\"scoreBox\" aria-live=\"polite\"><\/div>\n      <\/div>\n    <\/section>\n\n    <!-- Questions -->\n    <section class=\"icte-ielts__panel\" id=\"q-s2\" aria-label=\"Questions 11-20\">\n      <div class=\"icte-ielts__panelHead\">\n        <h3 class=\"icte-ielts__h3\">Questions 11\u201320<\/h3>\n      <\/div>\n\n      <div class=\"icte-ielts__qArea\">\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 11\u201315 (Choose A, B or C)<\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>11.<\/strong> When the group meet at the airport they will have<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q11\" data-q=\"11\" data-type=\"radio\" value=\"A\"> A. breakfast<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q11\" data-q=\"11\" data-type=\"radio\" value=\"B\"> B. coffee<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q11\" data-q=\"11\" data-type=\"radio\" value=\"C\"> C. lunch<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"11\"><\/div>\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>12.<\/strong> The group will be met at Munich Airport by<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q12\" data-q=\"12\" data-type=\"radio\" value=\"A\"> A. an employee at the National Theatre<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q12\" data-q=\"12\" data-type=\"radio\" value=\"B\"> B. a theatre manager<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q12\" data-q=\"12\" data-type=\"radio\" value=\"C\"> C. a tour operator<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"12\"><\/div>\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>13.<\/strong> How much will they pay per night for a double room at the hotel?<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q13\" data-q=\"13\" data-type=\"radio\" value=\"A\"> A. 110 euros<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q13\" data-q=\"13\" data-type=\"radio\" value=\"B\"> B. 120 euros<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q13\" data-q=\"13\" data-type=\"radio\" value=\"C\"> C. 150 euros<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"13\"><\/div>\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>14.<\/strong> What type of restaurant will they go to on Tuesday evening?<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q14\" data-q=\"14\" data-type=\"radio\" value=\"A\"> A. an Italian restaurant<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q14\" data-q=\"14\" data-type=\"radio\" value=\"B\"> B. a Lebanese restaurant<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q14\" data-q=\"14\" data-type=\"radio\" value=\"C\"> C. a typical restaurant of the region<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"14\"><\/div>\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>15.<\/strong> Who will they meet on Wednesday afternoon?<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q15\" data-q=\"15\" data-type=\"radio\" value=\"A\"> A. an actor<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q15\" data-q=\"15\" data-type=\"radio\" value=\"B\"> B. a playwright<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q15\" data-q=\"15\" data-type=\"radio\" value=\"C\"> C. a theatre director<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"15\"><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 16\u201320<\/div>\n          <div class=\"icte-note\">\n            <div><strong>What does the man say about the play on each of the following days?<\/strong><\/div>\n            <div>Choose <strong>FIVE<\/strong> answers from the box and write the correct letter, A\u2013G.<\/div>\n          <\/div>\n\n          <div class=\"icte-box\">\n            <div class=\"icte-box__title\">Comments<\/div>\n            <div class=\"icte-box__grid\">\n              <div><strong>A<\/strong>. The playwright will be present.<\/div>\n              <div><strong>B<\/strong>. The play was written to celebrate an anniversary.<\/div>\n              <div><strong>C<\/strong>. The play will be performed inside a historic building.<\/div>\n              <div><strong>D<\/strong>. The play will be accompanied by live music.<\/div>\n              <div><strong>E<\/strong>. The play will be performed outdoors.<\/div>\n              <div><strong>F<\/strong>. The play will be performed for the first time.<\/div>\n              <div><strong>G<\/strong>. The performance will be attended by officials from the town.<\/div>\n            <\/div>\n          <\/div>\n\n          <div class=\"icte-grid2\">\n            <div class=\"icte-day\">\n              <div><strong>16.<\/strong> Wednesday<\/div>\n              <select data-q=\"16\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"16\"><\/div>\n            <\/div>\n\n            <div class=\"icte-day\">\n              <div><strong>17.<\/strong> Thursday<\/div>\n              <select data-q=\"17\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"17\"><\/div>\n            <\/div>\n\n            <div class=\"icte-day\">\n              <div><strong>18.<\/strong> Friday<\/div>\n              <select data-q=\"18\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"18\"><\/div>\n            <\/div>\n\n            <div class=\"icte-day\">\n              <div><strong>19.<\/strong> Saturday<\/div>\n              <select data-q=\"19\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"19\"><\/div>\n            <\/div>\n\n            <div class=\"icte-day\">\n              <div><strong>20.<\/strong> Monday<\/div>\n              <select data-q=\"20\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"20\"><\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/section>\n  <\/section>\n\n  <!-- =========================\n       SECTION 3 (21\u201330)\n  ========================== -->\n  <section class=\"icte-ielts\" id=\"sec3\" data-section=\"s3\" aria-label=\"Section 3\">\n    <header class=\"icte-ielts__intro\">\n      <h2 class=\"icte-ielts__title\">Section 3 (Questions 21\u201330): Scandinavian Studies<\/h2>\n      <p class=\"icte-ielts__sub\">\n        Questions 21\u201325: choose <strong>A, B or C<\/strong>. Questions 26\u201330: choose from the box.\n      <\/p>\n    <\/header>\n\n    <!-- Transcript -->\n    <section class=\"icte-ielts__panel\" aria-label=\"Transcript S3\">\n      <div class=\"icte-ielts__panelHead\">\n        <h3 class=\"icte-ielts__h3\">Transcript (Section 3)<\/h3>\n        <div class=\"icte-ielts__headRight\">\n          <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"toggle-transcript\">Show Transcript<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"icte-ielts__reading\" data-el=\"transcript-area\" style=\"display:none;\"><\/div>\n      <div class=\"icte-ielts__btnRow icte-ielts__btnRow--tight\">\n        <button class=\"icte-btn icte-btn--info\" type=\"button\" data-action=\"play-audio\">\ud83d\udd0a Listen (Section 3)<\/button>\n        <a class=\"icte-link\" href=\"#q-s3\">Jump to questions \u2193<\/a>\n      <\/div>\n    <\/section>\n\n    <!-- Support -->\n    <section class=\"icte-ielts__panel\" aria-label=\"Support S3\">\n      <div class=\"icte-ielts__panelHead\">\n        <h3 class=\"icte-ielts__h3\">Support<\/h3>\n        <div class=\"icte-ielts__headRight\">\n          <button class=\"icte-btn icte-btn--ghost\" type=\"button\" data-action=\"clear-support\">Clear<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"icte-ielts__helper\" data-el=\"helper-area\" aria-live=\"polite\">\n        Click <strong>Summary<\/strong>, <strong>Main ideas<\/strong>, or <strong>Keywords<\/strong>.\n      <\/div>\n    <\/section>\n\n    <!-- Controls -->\n    <section class=\"icte-ielts__panel\" aria-label=\"Controls S3\">\n      <div class=\"icte-ielts__btnGrid\">\n        <button class=\"icte-btn icte-btn--info\" type=\"button\" data-action=\"play-instructions\">\ud83d\udd0a Read Instructions<\/button>\n        <button class=\"icte-btn icte-btn--info\" type=\"button\" data-action=\"read-questions\">\ud83d\udd0a Read Questions<\/button>\n        <button class=\"icte-btn icte-btn--primary\" type=\"button\" data-action=\"check\">Check Answers<\/button>\n        <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"show\">\ud83d\udc40 Show Answers<\/button>\n        <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"summary\">\ud83e\udde0 Summary<\/button>\n        <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"main-ideas\">\ud83d\udccc Main ideas<\/button>\n        <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"keywords\">\ud83d\udcda Keywords<\/button>\n        <button class=\"icte-btn icte-btn--ghost\" type=\"button\" data-action=\"reset\">Reset<\/button>\n      <\/div>\n      <div class=\"icte-ielts__row\" style=\"padding-top:0;\">\n        <div class=\"icte-ielts__score\" data-el=\"scoreBox\" aria-live=\"polite\"><\/div>\n      <\/div>\n    <\/section>\n\n    <!-- Questions -->\n    <section class=\"icte-ielts__panel\" id=\"q-s3\" aria-label=\"Questions 21-30\">\n      <div class=\"icte-ielts__panelHead\">\n        <h3 class=\"icte-ielts__h3\">Questions 21\u201330<\/h3>\n      <\/div>\n\n      <div class=\"icte-ielts__qArea\">\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 21\u201325 (Choose A, B or C)<\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>21.<\/strong> James chose to take Scandinavian Studies because when he was a child<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q21\" data-q=\"21\" data-type=\"radio\" value=\"A\"> A. he was often taken to Denmark.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q21\" data-q=\"21\" data-type=\"radio\" value=\"B\"> B. his mother spoke to him in Danish.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q21\" data-q=\"21\" data-type=\"radio\" value=\"C\"> C. a number of Danish people visited his family.<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"21\"><\/div>\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>22.<\/strong> When he graduates, James would like to<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q22\" data-q=\"22\" data-type=\"radio\" value=\"A\"> A. take a postgraduate course.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q22\" data-q=\"22\" data-type=\"radio\" value=\"B\"> B. work in the media.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q22\" data-q=\"22\" data-type=\"radio\" value=\"C\"> C. become a translator.<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"22\"><\/div>\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>23.<\/strong> Which course will end this term?<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q23\" data-q=\"23\" data-type=\"radio\" value=\"A\"> A. Swedish cinema<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q23\" data-q=\"23\" data-type=\"radio\" value=\"B\"> B. Danish television programmes<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q23\" data-q=\"23\" data-type=\"radio\" value=\"C\"> C. Scandinavian literature<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"23\"><\/div>\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>24.<\/strong> They agree that James\u2019s literature paper this term will be on<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q24\" data-q=\"24\" data-type=\"radio\" value=\"A\"> A. 19th century playwrights.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q24\" data-q=\"24\" data-type=\"radio\" value=\"B\"> B. the Icelandic sagas.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q24\" data-q=\"24\" data-type=\"radio\" value=\"C\"> C. modern Scandinavian novels.<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"24\"><\/div>\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>25.<\/strong> Beth recommends that James\u2019s paper should be<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q25\" data-q=\"25\" data-type=\"radio\" value=\"A\"> A. a historical overview of the genre.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q25\" data-q=\"25\" data-type=\"radio\" value=\"B\"> B. an in-depth analysis of a single writer.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q25\" data-q=\"25\" data-type=\"radio\" value=\"C\"> C. a study of the social background to the literature.<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"25\"><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 26\u201330 (Choose from the box)<\/div>\n\n          <div class=\"icte-box\">\n            <div class=\"icte-box__title\">Options<\/div>\n            <div class=\"icte-box__grid\">\n              <div><strong>A<\/strong>. bullet points<\/div>\n              <div><strong>B<\/strong>. film<\/div>\n              <div><strong>C<\/strong>. notes<\/div>\n              <div><strong>D<\/strong>. structure<\/div>\n              <div><strong>E<\/strong>. student paper<\/div>\n              <div><strong>F<\/strong>. textbook<\/div>\n              <div><strong>G<\/strong>. documentary<\/div>\n            <\/div>\n          <\/div>\n\n          <div class=\"icte-flow\">\n            <div class=\"icte-flow__title\"><strong>How James will write his paper on the Vikings<\/strong><\/div>\n\n            <div class=\"icte-flow__step\">\n              He\u2019ll read a <strong>26<\/strong>\n              <select data-q=\"26\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option>\n              <\/select>\n              and choose his topic.\n              <div class=\"icte-q__fb\" data-fb=\"26\"><\/div>\n            <\/div>\n\n            <div class=\"icte-flow__step\">\n              He\u2019ll borrow a <strong>27<\/strong>\n              <select data-q=\"27\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option>\n              <\/select>\n              from Beth.\n              <div class=\"icte-q__fb\" data-fb=\"27\"><\/div>\n            <\/div>\n\n            <div class=\"icte-flow__step\">\n              He\u2019ll plan the <strong>28<\/strong>\n              <select data-q=\"28\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option>\n              <\/select>\n              of the paper.\n              <div class=\"icte-q__fb\" data-fb=\"28\"><\/div>\n            <\/div>\n\n            <div class=\"icte-flow__step\">\n              He\u2019ll read some source material and write <strong>29<\/strong>\n              <select data-q=\"29\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option>\n              <\/select>.\n              <div class=\"icte-q__fb\" data-fb=\"29\"><\/div>\n            <\/div>\n\n            <div class=\"icte-flow__step\">\n              He\u2019ll write the paper using <strong>30<\/strong>\n              <select data-q=\"30\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option>\n              <\/select>.\n              <div class=\"icte-q__fb\" data-fb=\"30\"><\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/section>\n  <\/section>\n\n  <!-- =========================\n       SECTION 4 (31\u201340)\n  ========================== -->\n  <section class=\"icte-ielts\" id=\"sec4\" data-section=\"s4\" aria-label=\"Section 4\">\n    <header class=\"icte-ielts__intro\">\n      <h2 class=\"icte-ielts__title\">Section 4 (Questions 31\u201340): Conflict at work<\/h2>\n      <p class=\"icte-ielts__sub\">\n        Complete the notes below. Write <strong>ONE WORD ONLY<\/strong> for each answer.\n      <\/p>\n    <\/header>\n\n    <!-- Transcript -->\n    <section class=\"icte-ielts__panel\" aria-label=\"Transcript S4\">\n      <div class=\"icte-ielts__panelHead\">\n        <h3 class=\"icte-ielts__h3\">Transcript (Section 4)<\/h3>\n        <div class=\"icte-ielts__headRight\">\n          <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"toggle-transcript\">Show Transcript<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"icte-ielts__reading\" data-el=\"transcript-area\" style=\"display:none;\"><\/div>\n      <div class=\"icte-ielts__btnRow icte-ielts__btnRow--tight\">\n        <button class=\"icte-btn icte-btn--info\" type=\"button\" data-action=\"play-audio\">\ud83d\udd0a Listen (Section 4)<\/button>\n        <a class=\"icte-link\" href=\"#q-s4\">Jump to questions \u2193<\/a>\n      <\/div>\n    <\/section>\n\n    <!-- Support -->\n    <section class=\"icte-ielts__panel\" aria-label=\"Support S4\">\n      <div class=\"icte-ielts__panelHead\">\n        <h3 class=\"icte-ielts__h3\">Support<\/h3>\n        <div class=\"icte-ielts__headRight\">\n          <button class=\"icte-btn icte-btn--ghost\" type=\"button\" data-action=\"clear-support\">Clear<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"icte-ielts__helper\" data-el=\"helper-area\" aria-live=\"polite\">\n        Click <strong>Summary<\/strong>, <strong>Main ideas<\/strong>, or <strong>Keywords<\/strong>.\n      <\/div>\n    <\/section>\n\n    <!-- Controls -->\n    <section class=\"icte-ielts__panel\" aria-label=\"Controls S4\">\n      <div class=\"icte-ielts__btnGrid\">\n        <button class=\"icte-btn icte-btn--info\" type=\"button\" data-action=\"play-instructions\">\ud83d\udd0a Read Instructions<\/button>\n        <button class=\"icte-btn icte-btn--info\" type=\"button\" data-action=\"read-questions\">\ud83d\udd0a Read Questions<\/button>\n        <button class=\"icte-btn icte-btn--primary\" type=\"button\" data-action=\"check\">Check Answers<\/button>\n        <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"show\">\ud83d\udc40 Show Answers<\/button>\n        <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"summary\">\ud83e\udde0 Summary<\/button>\n        <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"main-ideas\">\ud83d\udccc Main ideas<\/button>\n        <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"keywords\">\ud83d\udcda Keywords<\/button>\n        <button class=\"icte-btn icte-btn--ghost\" type=\"button\" data-action=\"reset\">Reset<\/button>\n      <\/div>\n      <div class=\"icte-ielts__row\" style=\"padding-top:0;\">\n        <div class=\"icte-ielts__score\" data-el=\"scoreBox\" aria-live=\"polite\"><\/div>\n      <\/div>\n    <\/section>\n\n    <!-- Questions -->\n    <section class=\"icte-ielts__panel\" id=\"q-s4\" aria-label=\"Questions 31-40\">\n      <div class=\"icte-ielts__panelHead\">\n        <h3 class=\"icte-ielts__h3\">Questions 31\u201340<\/h3>\n      <\/div>\n\n      <div class=\"icte-ielts__qArea\">\n\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">CONFLICT AT WORK<\/div>\n          <div class=\"icte-note\">\n            <div>Conflict mostly consists of behaviour in the general category of\n              <span class=\"blank\">31 <input type=\"text\" data-q=\"31\" data-type=\"word\" placeholder=\"ONE WORD\" \/><\/span>\n            <\/div>\n            <div>Often a result of people wanting to prove their\n              <span class=\"blank\">32 <input type=\"text\" data-q=\"32\" data-type=\"word\" placeholder=\"ONE WORD\" \/><\/span>\n            <\/div>\n            <div>Also caused by differences in\n              <span class=\"blank\">33 <input type=\"text\" data-q=\"33\" data-type=\"word\" placeholder=\"ONE WORD\" \/><\/span>\n              between people\n            <\/div>\n            <div>\n              <span class=\"blank\">34 <input type=\"text\" data-q=\"34\" data-type=\"word\" placeholder=\"ONE WORD\" \/><\/span>\n              conflicts: people more concerned about own team than about company\n            <\/div>\n            <div>Conflict-related stress can cause\n              <span class=\"blank\">35 <input type=\"text\" data-q=\"35\" data-type=\"word\" placeholder=\"ONE WORD\" \/><\/span>\n              that may last for months\n            <\/div>\n\n            <div style=\"margin-top:.55rem;\"><strong>Chief Executives (CEOs)<\/strong><\/div>\n            <div>Many have both\n              <span class=\"blank\">36 <input type=\"text\" data-q=\"36\" data-type=\"word\" placeholder=\"ONE WORD\" \/><\/span>\n              and anxiety\n            <\/div>\n            <div>There may be conflict between people who have different\n              <span class=\"blank\">37 <input type=\"text\" data-q=\"37\" data-type=\"word\" placeholder=\"ONE WORD\" \/><\/span>\n            <\/div>\n\n            <div style=\"margin-top:.55rem;\"><strong>Other managers<\/strong><\/div>\n            <div>A structure that is more\n              <span class=\"blank\">38 <input type=\"text\" data-q=\"38\" data-type=\"word\" placeholder=\"ONE WORD\" \/><\/span>\n              may create uncertainty about who staff should report to.\n            <\/div>\n\n            <div style=\"margin-top:.55rem;\"><strong>Minimising conflict<\/strong><\/div>\n            <div>Bosses need to try hard to gain\n              <span class=\"blank\">39 <input type=\"text\" data-q=\"39\" data-type=\"word\" placeholder=\"ONE WORD\" \/><\/span>\n            <\/div>\n            <div>Someone from outside the company may be given the role of\n              <span class=\"blank\">40 <input type=\"text\" data-q=\"40\" data-type=\"word\" placeholder=\"ONE WORD\" \/><\/span>\n              in order to resolve conflicts.\n            <\/div>\n          <\/div>\n\n          <div class=\"icte-q__fb\" data-fb=\"31\"><\/div>\n          <div class=\"icte-q__fb\" data-fb=\"32\"><\/div>\n          <div class=\"icte-q__fb\" data-fb=\"33\"><\/div>\n          <div class=\"icte-q__fb\" data-fb=\"34\"><\/div>\n          <div class=\"icte-q__fb\" data-fb=\"35\"><\/div>\n          <div class=\"icte-q__fb\" data-fb=\"36\"><\/div>\n          <div class=\"icte-q__fb\" data-fb=\"37\"><\/div>\n          <div class=\"icte-q__fb\" data-fb=\"38\"><\/div>\n          <div class=\"icte-q__fb\" data-fb=\"39\"><\/div>\n          <div class=\"icte-q__fb\" data-fb=\"40\"><\/div>\n        <\/div>\n\n      <\/div>\n    <\/section>\n  <\/section>\n\n  <!-- \u2705 STYLES (scoped) -->\n  <style>\n    #icte-listening-test6, #icte-listening-test6 *{ box-sizing:border-box; }\n    #icte-listening-test6{ width:100%; max-width:100%; margin:0; }\n\n    #icte-listening-test6 .icte-menu{\n      width:100%; max-width:100%;\n      display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center; align-items:center;\n      padding:.75rem .9rem; margin:0 0 1rem 0;\n      background:#16a34a; border-radius:14px; box-shadow:0 2px 8px rgba(0,0,0,.10);\n    }\n    #icte-listening-test6 .icte-menu a{\n      display:inline-block; text-decoration:none; font-weight:900; font-size:.95rem; color:#fff;\n      padding:.55rem .85rem; border-radius:999px; border:1px solid rgba(255,255,255,.35);\n      background:rgba(255,255,255,.12);\n    }\n    #icte-listening-test6 .icte-menu a.is-current{ background:#fff; color:#16a34a; border-color:#fff; }\n    @media (max-width:600px){\n      #icte-listening-test6 .icte-menu{ justify-content:flex-start; }\n      #icte-listening-test6 .icte-menu a{ width:100%; text-align:center; }\n    }\n\n    #icte-listening-test6 .icte-ielts{ width:100%; margin:1rem 0; }\n    #icte-listening-test6 .icte-ielts__intro{\n      padding:.9rem 1rem; border:1px solid rgba(0,0,0,.10); border-radius:14px;\n      background:rgba(255,255,255,.7); margin-bottom:1rem;\n    }\n    #icte-listening-test6 .icte-ielts__title{ margin:0 0 .35rem; font-size:1.2rem; font-weight:900; }\n    #icte-listening-test6 .icte-ielts__sub{ margin:0; opacity:.85; }\n\n    #icte-listening-test6 .icte-ielts__panel{\n      border:1px solid rgba(0,0,0,.10); border-radius:14px; background:rgba(255,255,255,.85);\n      overflow:hidden; margin-bottom:1rem;\n    }\n    #icte-listening-test6 .icte-ielts__panelHead{\n      display:flex; align-items:center; justify-content:space-between; gap:.75rem;\n      padding:.85rem 1rem; border-bottom:1px solid rgba(0,0,0,.08); background:rgba(0,0,0,.03);\n    }\n    #icte-listening-test6 .icte-ielts__h3{ margin:0; font-size:1.03rem; font-weight:900; }\n    #icte-listening-test6 .icte-ielts__headRight{ display:flex; gap:.55rem; align-items:center; }\n\n    #icte-listening-test6 .icte-ielts__reading{\n      padding:.95rem 1rem 1.05rem; line-height:1.75; max-height:420px; overflow:auto;\n      white-space:pre-wrap;\n    }\n\n    #icte-listening-test6 .icte-ielts__row{\n      display:flex; justify-content:space-between; gap:.75rem;\n      padding:.85rem 1rem .25rem;\n    }\n    #icte-listening-test6 .icte-ielts__control label{ display:block; margin-bottom:.35rem; }\n    #icte-listening-test6 select{\n      width:100%; max-width:520px; padding:.6rem .7rem; border-radius:12px;\n      border:1px solid rgba(0,0,0,.18); background:#fff; font:inherit;\n    }\n    #icte-listening-test6 .icte-ielts__score{\n      font-weight:900; font-size:.95rem; opacity:.9; white-space:nowrap;\n      margin-top:.25rem;\n    }\n\n    #icte-listening-test6 .icte-ielts__btnRow{\n      padding:.75rem 1rem 1rem; display:flex; gap:.6rem; flex-wrap:wrap; align-items:center;\n    }\n    #icte-listening-test6 .icte-ielts__btnRow--tight{ padding-top:0; }\n    #icte-listening-test6 .icte-ielts__btnGrid{\n      padding:.75rem 1rem 1rem;\n      display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:.6rem;\n    }\n\n    #icte-listening-test6 .icte-link{\n      font-weight:900; text-decoration:none; border:1px solid rgba(0,0,0,.14);\n      border-radius:12px; padding:.55rem .75rem; color:inherit; background:rgba(255,255,255,.6);\n    }\n\n    #icte-listening-test6 .icte-ielts__qArea{ padding:.9rem 1rem 1rem; }\n    #icte-listening-test6 .icte-q{\n      padding:.75rem .8rem; border:1px solid rgba(0,0,0,.10); border-radius:12px;\n      background:rgba(255,255,255,.75); margin:0 0 .75rem;\n    }\n    #icte-listening-test6 .icte-q__label{ font-weight:900; display:block; margin-bottom:.4rem; }\n    #icte-listening-test6 .icte-note{ line-height:1.7; opacity:.95; }\n\n    #icte-listening-test6 .blank{\n      display:inline-flex; align-items:center; gap:.4rem;\n      padding:.15rem .35rem; border-radius:10px; border:1px dashed rgba(0,0,0,.25);\n      background:rgba(255,255,255,.6); margin:0 .25rem;\n    }\n    #icte-listening-test6 input[type=\"text\"]{\n      width:170px; max-width:100%;\n      padding:.55rem .65rem; border-radius:12px;\n      border:1px solid rgba(0,0,0,.18); font:inherit;\n    }\n    #icte-listening-test6 .icte-q__fb{ margin-top:.35rem; font-size:.95rem; font-weight:800; }\n\n    #icte-listening-test6 .icte-btn{\n      appearance:none; border:1px solid transparent; border-radius:12px;\n      padding:.65rem .85rem; font-weight:900; cursor:pointer; font:inherit;\n    }\n    #icte-listening-test6 .icte-btn--primary{ background:#16a34a; color:#fff; }\n    #icte-listening-test6 .icte-btn--info{ background:#0ea5e9; color:#fff; }\n    #icte-listening-test6 .icte-btn--danger{ background:#dc2626; color:#fff; }\n    #icte-listening-test6 .icte-btn--dark{ background:#334155; color:#fff; }\n    #icte-listening-test6 .icte-btn--ghost{ background:transparent; border-color:rgba(0,0,0,.20); color:inherit; }\n\n    #icte-listening-test6 .icte-loader{\n      width:18px; height:18px; border-radius:999px;\n      border:3px solid rgba(0,0,0,.15); border-top-color:#0ea5e9;\n      display:none; animation: icteSpin 1s linear infinite;\n    }\n    @keyframes icteSpin{ to{ transform: rotate(360deg); } }\n\n    #icte-listening-test6 .icte-ielts__helper{\n      padding:.95rem 1rem 1.05rem; line-height:1.7; overflow-wrap:anywhere; word-break:break-word;\n    }\n    #icte-listening-test6 .icte-ielts__helper ul{ margin:.4rem 0 0 1.1rem; }\n    #icte-listening-test6 .icte-ielts__helper li{ margin:.35rem 0; }\n    #icte-listening-test6 .icte-ielts__helper .tag{\n      display:inline-block; padding:.15rem .5rem; border-radius:999px;\n      border:1px solid rgba(0,0,0,.12); background:rgba(255,255,255,.7);\n      font-weight:900; font-size:.85rem; margin-right:.4rem;\n    }\n\n    #icte-listening-test6 .icte-mcq{ margin:.75rem 0 1rem; padding:.7rem .75rem; border:1px solid rgba(0,0,0,.10); border-radius:12px; background:rgba(255,255,255,.65); }\n    #icte-listening-test6 .icte-mcq__q{ font-weight:900; margin-bottom:.45rem; }\n    #icte-listening-test6 .icte-opt{ display:block; margin:.35rem 0; font-weight:700; }\n    #icte-listening-test6 .icte-opt input{ margin-right:.5rem; }\n\n    #icte-listening-test6 .icte-box{ border:1px solid rgba(0,0,0,.10); border-radius:12px; background:rgba(255,255,255,.75); padding:.75rem; margin:.65rem 0 1rem; }\n    #icte-listening-test6 .icte-box__title{ font-weight:900; margin-bottom:.5rem; }\n    #icte-listening-test6 .icte-box__grid{ display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:.45rem .9rem; }\n    @media (max-width: 700px){\n      #icte-listening-test6 .icte-box__grid{ grid-template-columns:1fr; }\n    }\n\n    #icte-listening-test6 .icte-grid2{ display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:.75rem; }\n    #icte-listening-test6 .icte-day{ border:1px solid rgba(0,0,0,.10); border-radius:12px; background:rgba(255,255,255,.65); padding:.7rem; }\n    #icte-listening-test6 .icte-day select{ max-width:100%; }\n\n    #icte-listening-test6 .icte-flow{ border:1px solid rgba(0,0,0,.10); border-radius:12px; background:rgba(255,255,255,.65); padding:.75rem; }\n    #icte-listening-test6 .icte-flow__title{ font-weight:900; margin-bottom:.6rem; }\n    #icte-listening-test6 .icte-flow__step{ padding:.6rem .6rem; border:1px dashed rgba(0,0,0,.20); border-radius:12px; background:rgba(255,255,255,.6); margin:.55rem 0; }\n    #icte-listening-test6 .icte-flow__step select{ display:inline-block; width:auto; min-width:140px; margin:0 .35rem; }\n\n    @media (max-width: 900px){\n      #icte-listening-test6 .icte-ielts__btnGrid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }\n      #icte-listening-test6 .icte-grid2{ grid-template-columns: 1fr; }\n    }\n    @media (max-width: 600px){\n      #icte-listening-test6 .icte-ielts__row{ flex-direction:column; align-items:stretch; }\n      #icte-listening-test6 .icte-ielts__btnGrid{ grid-template-columns: 1fr; }\n      #icte-listening-test6 input[type=\"text\"]{ width:100%; }\n      #icte-listening-test6 .icte-flow__step select{ width:100%; margin:.35rem 0; }\n    }\n  <\/style>\n\n  <!-- \u2705 SCRIPT (CLEAN) -->\n  <script>\n    (function(){\n      const root = document.getElementById(\"icte-listening-test6\");\n      if (!root) return;\n\n      const $  = (sel, base=root) => base.querySelector(sel);\n      const $$ = (sel, base=root) => Array.from(base.querySelectorAll(sel));\n\n      function showLoader(show){\n        const el = $('[data-el=\"synthesis-loader\"]');\n        if (el) el.style.display = show ? \"inline-block\" : \"none\";\n      }\n\n      \/* ===== Speech synthesis (robust stop) ===== *\/\n      const speechOk = (\"speechSynthesis\" in window);\n      let voicesAll = [];\n      let voiceA = null;\n      let voiceB = null;\n      let playRunId = 0;\n\n      function stopSpeaking(){\n        if (!speechOk) return;\n        playRunId++;\n        window.speechSynthesis.cancel();\n        showLoader(false);\n      }\n\n      function sayWithVoice(text, voice, opts){\n        const myRun = playRunId;\n        const options = opts || {};\n        return new Promise((resolve) => {\n          if (!speechOk) return resolve();\n\n          const u = new SpeechSynthesisUtterance(String(text || \"\"));\n          u.lang  = options.lang  || (voice && voice.lang) || \"en-US\";\n          u.rate  = (typeof options.rate === \"number\") ? options.rate : 1.0;\n          u.pitch = (typeof options.pitch === \"number\") ? options.pitch : 1.0;\n          if (voice) u.voice = voice;\n\n          let done = false;\n          const finish = () => {\n            if (done) return;\n            done = true;\n            clearInterval(timer);\n            u.onend = null;\n            u.onerror = null;\n            resolve();\n          };\n\n          u.onend = finish;\n          u.onerror = finish;\n\n          const timer = setInterval(() => {\n            if (done) return;\n            if (playRunId !== myRun) return finish();\n            const speaking = window.speechSynthesis.speaking;\n            const pending  = window.speechSynthesis.pending;\n            if (!speaking && !pending) finish();\n          }, 120);\n\n          window.speechSynthesis.speak(u);\n        });\n      }\n\n      function populateVoices(){\n        if (!speechOk) return;\n\n        voicesAll = window.speechSynthesis.getVoices() || [];\n        const en = voicesAll.filter(v => (v.lang || \"\").toLowerCase().startsWith(\"en\"));\n        const usable = en.length ? en : voicesAll;\n\n        const selA = $('[data-el=\"voice-a\"]');\n        const selB = $('[data-el=\"voice-b\"]');\n        if (!selA || !selB) return;\n\n        selA.innerHTML = \"\";\n        selB.innerHTML = \"\";\n\n        usable.forEach((v, idx) => {\n          const o1 = document.createElement(\"option\");\n          o1.value = String(idx);\n          o1.textContent = `${v.name} (${v.lang})`;\n          selA.appendChild(o1);\n\n          const o2 = document.createElement(\"option\");\n          o2.value = String(idx);\n          o2.textContent = `${v.name} (${v.lang})`;\n          selB.appendChild(o2);\n        });\n\n        voiceA = usable[0] || null;\n        voiceB = usable.find(v => v.name !== (voiceA && voiceA.name)) || usable[0] || null;\n\n        selA.value = \"0\";\n        selB.value = String(Math.min(1, usable.length - 1));\n\n        selA.onchange = () => { voiceA = usable[Number(selA.value)] || usable[0] || null; };\n        selB.onchange = () => { voiceB = usable[Number(selB.value)] || usable[0] || null; };\n      }\n\n      function loadVoices(){\n        if (!speechOk) return;\n        const got = window.speechSynthesis.getVoices();\n        if (got && got.length) populateVoices();\n        else window.speechSynthesis.onvoiceschanged = populateVoices;\n      }\n\n      \/* ===== Validation ===== *\/\n      function norm(x){\n        return String(x || \"\")\n          .trim()\n          .toLowerCase()\n          .replace(\/[.,!?;:()\"']\/g, \"\")\n          .replace(\/\\s+\/g, \" \");\n      }\n      function tokenCount(x){\n        const t = String(x || \"\").trim();\n        if (!t) return 0;\n        return t.split(\/\\s+\/).length;\n      }\n      function isLetterAnswer(a){\n        const s = String(a || \"\").trim();\n        return \/^[A-G]$\/i.test(s);\n      }\n      function formatAnswer(a){\n        const s = String(a ?? \"\").trim();\n        return isLetterAnswer(s) ? s.toUpperCase() : s;\n      }\n\n      function setFB(sectionEl, q, msg, color){\n        const fb = sectionEl.querySelector(`[data-fb=\"${q}\"]`);\n        if (!fb) return;\n        fb.textContent = msg || \"\";\n        fb.style.color = color || \"#0f172a\";\n      }\n\n      function setSectionScore(sectionEl, msg){\n        const box = $('[data-el=\"scoreBox\"]', sectionEl);\n        if (box) box.textContent = msg || \"\";\n        updateOverallScore();\n      }\n\n      function setHelper(sectionEl, builder){\n        const area = $('[data-el=\"helper-area\"]', sectionEl);\n        if (!area) return;\n        area.innerHTML = \"\";\n        builder(area);\n        area.scrollIntoView({ behavior:\"smooth\", block:\"start\" });\n      }\n\n      function clearSupport(sectionEl){\n        const area = $('[data-el=\"helper-area\"]', sectionEl);\n        if (area) area.innerHTML = 'Click <strong>Summary<\/strong>, <strong>Main ideas<\/strong>, or <strong>Keywords<\/strong>.';\n      }\n\n      function getUserAnswer(sectionEl, q){\n        const txt = sectionEl.querySelector(`input[data-q=\"${q}\"][data-type=\"text\"], input[data-q=\"${q}\"][data-type=\"word\"]`);\n        if (txt) return { value: String(txt.value || \"\"), kind: txt.getAttribute(\"data-type\") };\n\n        const sel = sectionEl.querySelector(`select[data-q=\"${q}\"]`);\n        if (sel) return { value: String(sel.value || \"\"), kind: \"select\" };\n\n        const checked = sectionEl.querySelector(`input[type=\"radio\"][data-q=\"${q}\"]:checked`);\n        if (checked) return { value: String(checked.value || \"\"), kind: \"radio\" };\n        const anyRadio = sectionEl.querySelector(`input[type=\"radio\"][data-q=\"${q}\"]`);\n        if (anyRadio) return { value: \"\", kind: \"radio\" };\n\n        return { value: \"\", kind: \"unknown\" };\n      }\n\n      function clearInputs(sectionEl){\n        $$('input[type=\"text\"][data-q]', sectionEl).forEach(i => i.value = \"\");\n        $$('input[type=\"radio\"][data-q]', sectionEl).forEach(r => r.checked = false);\n        $$('select[data-q]', sectionEl).forEach(s => s.value = \"\");\n      }\n\n      function toggleTranscript(sectionEl){\n        const area = $('[data-el=\"transcript-area\"]', sectionEl);\n        const btn = sectionEl.querySelector('button[data-action=\"toggle-transcript\"]');\n        if (!area || !btn) return;\n\n        const hidden = area.style.display === \"none\";\n        area.style.display = hidden ? \"block\" : \"none\";\n        btn.textContent = hidden ? \"Hide Transcript\" : \"Show Transcript\";\n        if (hidden) area.scrollIntoView({ behavior:\"smooth\", block:\"start\" });\n      }\n\n      \/* ===== Data (CLEAN: keywords are INSIDE each section) ===== *\/\n      const sections = {\n        s1: {\n          title: \"Section 1\",\n          rule: \"oneWordOrNumber\",\n          qList: Array.from({length:10}, (_,i)=>i+1),\n          instructionSpeak: \"Section one. Questions one to ten. Complete the notes. Write one word and or a number for each answer.\",\n          questionsSpeak:\n            \"Questions one to ten. Events during Kenton Festival. \" +\n            \"Question one: in town centre, starting at blank. \" +\n            \"Question two: a blank will perform. \" +\n            \"Question three: performance of a blank. \" +\n            \"Question four: Helen Tungate, a blank. \" +\n            \"Question five: fireworks display across the blank. \" +\n            \"Question six: relationships with their blank. \" +\n            \"Question seven: venue blank House. \" +\n            \"Question eight: performance of blank dances. \" +\n            \"Question nine: the blank market. \" +\n            \"Question ten: shops displaying the festival blank.\",\n          summary:\n            \"A woman phones the Kenton Festival box office to ask about events. The opening ceremony starts at 2.45 and includes a band and a play about Helen Tungate, a scientist. There are also videos about relationships with grandparents at Handsworth House, traditional dance demonstrations at the outdoor market, and concerts. Tickets can be bought online or from shops displaying the festival logo.\",\n          mainIdeas: [\n            { tag:\"Predict\", text:\"Read the note headings first and predict if the blank needs a time, place, or type of event.\" },\n            { tag:\"Numbers\", text:\"For times, write the number clearly (e.g., 2.45).\" },\n            { tag:\"ONE WORD\", text:\"Do not add extra words like 'the' or 'a'.\" },\n            { tag:\"Names\", text:\"Capital letters are not required, but spelling must be correct (e.g., Handsworth).\" },\n            { tag:\"Distractors\", text:\"You may hear extra details\u2014only write what fits the note.\" }\n          ],\n          keywords: [\n            { term:\"Box office\", def:\"The place where tickets are sold for a performance.\" },\n            { term:\"Opening ceremony\", def:\"A formal event to mark the beginning of a festival or competition.\" },\n            { term:\"Centenary\", def:\"The hundredth anniversary of an event.\" },\n            { term:\"Firework display\", def:\"An exhibition of effects created by shards of light and noise for entertainment.\" },\n            { term:\"Traditional dances\", def:\"Cultural dances passed down through generations.\" },\n            { term:\"Booking online\", def:\"Reserving tickets via the internet.\" }\n          ],\n          transcript: [\n            { speaker:\"A\", text:\"Good morning, Kenton Festival box office. How can I help you?\" },\n            { speaker:\"B\", text:\"Oh, good morning. I'm coming to Kenton for a few days' holiday next month and a friend told me there's a festival. She gave me this number to find out about it.\" },\n            { speaker:\"A\", text:\"That's right, the festival begins on the 16th of May and goes on till the 19th.\" },\n            { speaker:\"B\", text:\"Oh, that's great. I'll be there from the 15th till the 19th. So could you tell me the programme, please?\" },\n            { speaker:\"A\", text:\"Well, on the first day, there's the opening ceremony, in the town centre. People start gathering around 2 o'clock, to get a good place to see from, and the events will start at 2.45, and finish about 5.30.\" },\n            { speaker:\"A\", text:\"Then there'll be a performance by a band.\" },\n            { speaker:\"A\", text:\"After that, a community group from the town will perform a play they've written themselves. It's about Helen Tungate.\" },\n            { speaker:\"B\", text:\"I certainly have. She was a scientist years ago.\" },\n            { speaker:\"A\", text:\"Later, as the sun sets, there'll be a firework display... the display takes place on the opposite side of the river.\" },\n            { speaker:\"A\", text:\"Students have produced videos about relationships between children and their grandparents. The videos are being shown in Handsworth House.\" },\n            { speaker:\"A\", text:\"There isn't any ballet, but there'll be a demonstration of traditional dances.\" },\n            { speaker:\"A\", text:\"It's in the market in the town centre\u2014the outdoor one.\" },\n            { speaker:\"A\", text:\"Tickets can be bought online or from shops displaying our logo in the windows.\" }\n          ],\n          answers: {\n            1: [\"245\",\"2.45\",\"2:45\"],\n            2: [\"band\"],\n            3: [\"play\"],\n            4: [\"scientist\"],\n            5: [\"river\"],\n            6: [\"grandparents\"],\n            7: [\"handsworth\"],\n            8: [\"traditional\"],\n            9: [\"outdoor\"],\n            10:[\"logo\"]\n          }\n        },\n\n        s2: {\n          title: \"Section 2\",\n          rule: \"mixed\",\n          qList: Array.from({length:10}, (_,i)=>i+11),\n          instructionSpeak: \"Section two. Questions eleven to twenty. Choose the correct answers.\",\n          questionsSpeak: \"Questions eleven to fifteen: choose A, B or C. Questions sixteen to twenty: choose from A to G for each day.\",\n          summary:\n            \"A trip organiser gives details about a theatre tour to Munich, including meeting for coffee, being met by a tour operator, hotel prices, a Lebanese dinner, and a talk from the theatre director. He also describes the special features of plays on different days.\",\n          mainIdeas: [\n            { tag:\"MCQ\", text:\"Underline keywords (time, person, price) before you choose A\/B\/C.\" },\n            { tag:\"Paraphrase\", text:\"Listen for paraphrases (e.g., 'tour operator' may appear as a name and job).\" },\n            { tag:\"Box\", text:\"For 16\u201320, match each day to ONE clear comment from the list.\" },\n            { tag:\"Check\", text:\"Make sure each day has one letter selected.\" },\n            { tag:\"Focus\", text:\"Ignore extra details\u2014choose only what answers the question.\" }\n          ],\n          keywords: [\n            { term:\"Liaised with\", def:\"To work with someone in order to exchange information.\" },\n            { term:\"Negotiate a rate\", def:\"To discuss a price in order to reach an agreement.\" },\n            { term:\"Sit in on a rehearsal\", def:\"To attend a practice session without participating.\" },\n            { term:\"Meat-oriented\", def:\"A diet or menu focused primarily on meat.\" },\n            { term:\"Premiere\", def:\"The first public performance of a play or film.\" },\n            { term:\"Multimedia production\", def:\"A performance using lighting effects and electronic soundtracks.\" },\n            { term:\"Revival\", def:\"A new production of an old play.\" }\n          ],\n          transcript: [\n            { speaker:\"A\", text:\"Right. I've now almost succeeded in finalising plans for our tour, so I'll bring you up to date with what I know.\" },\n            { speaker:\"A\", text:\"We're flying first to Munich on Monday the 4th. The flight is at 11.30, so I suggest we meet at the airport for coffee at 10.\" },\n            { speaker:\"A\", text:\"When we arrive, we'll be met at the airport by Claus Bauer. Claus works for a tour operator.\" },\n            { speaker:\"A\", text:\"The normal rate at the hotel is 150 euros a night for a double room, but I've negotiated a rate of 110.\" },\n            { speaker:\"A\", text:\"On Tuesday evening we'll all have dinner together. I decided to book a Lebanese restaurant.\" },\n            { speaker:\"A\", text:\"On Wednesday afternoon, the director of the play we're going to see will talk to us at the theatre.\" },\n            { speaker:\"A\", text:\"On Wednesday evening we're going to the premiere.\" },\n            { speaker:\"A\", text:\"On Thursday we're seeing a play written to mark a hundred years since the birth of a well-known scientist in the town.\" },\n            { speaker:\"A\", text:\"Friday's play will be in the garden of a palace.\" },\n            { speaker:\"A\", text:\"On Saturday the mayor and other officials will be attending.\" },\n            { speaker:\"A\", text:\"Our final play is on Monday, in the old Town Hall which dates back to the 14th century.\" }\n          ],\n          answers: {\n            11:[\"B\"], 12:[\"C\"], 13:[\"A\"], 14:[\"B\"], 15:[\"C\"],\n            16:[\"F\"], 17:[\"B\"], 18:[\"E\"], 19:[\"G\"], 20:[\"C\"]\n          }\n        },\n\n        s3: {\n          title: \"Section 3\",\n          rule: \"mixed\",\n          qList: Array.from({length:10}, (_,i)=>i+21),\n          instructionSpeak: \"Section three. Questions twenty one to thirty. Choose A, B or C for questions twenty one to twenty five, then choose letters A to G for questions twenty six to thirty.\",\n          questionsSpeak: \"Questions twenty one to twenty five: choose A, B or C. Questions twenty six to thirty: choose the correct letter A to G for each step in the flow chart.\",\n          summary:\n            \"Beth meets James in his first Scandinavian Studies tutorial. They discuss his reasons for studying the subject, plans for the future, and his literature paper topic. Beth then advises him how to write his Vikings paper using a student paper, a documentary, a clear structure, notes, and bullet points.\",\n          mainIdeas: [\n            { tag:\"Signals\", text:\"Listen for reasons (because, so, that made me) in 21.\" },\n            { tag:\"Plans\", text:\"For 22, focus on what he wants after graduation.\" },\n            { tag:\"Course\", text:\"For 23, notice which course is replaced this term.\" },\n            { tag:\"Flow\", text:\"For 26\u201330, follow the sequence: read \u2192 watch \u2192 plan \u2192 notes \u2192 bullet points.\" },\n            { tag:\"Letters\", text:\"Only letters are needed in 26\u201330.\" }\n          ],\n          keywords: [\n            { term:\"Undergraduate \/ Graduate\", def:\"A student studying for a first degree versus one who has completed a degree.\" },\n            { term:\"Master's degree\", def:\"An advanced academic degree.\" },\n            { term:\"Icelandic sagas\", def:\"Historical and legendary stories from medieval Iceland.\" },\n            { term:\"Context of the society\", def:\"The social circumstances in which something is created.\" },\n            { term:\"History of the genre\", def:\"The development of a category of artistic composition.\" },\n            { term:\"Provocative points\", def:\"Ideas intended to make people think seriously or argue.\" },\n            { term:\"Skeleton (outline)\", def:\"The basic structural framework of a paper or essay.\" }\n          ],\n          transcript: [\n            { speaker:\"A\", text:\"Oh good morning. You must be James. I'm Beth Cartwright\u2014please call me Beth.\" },\n            { speaker:\"B\", text:\"Thank you.\" },\n            { speaker:\"A\", text:\"Why did you decide to take this course?\" },\n            { speaker:\"B\", text:\"My mother is Danish... whenever her relations or friends were in England they always came to see us.\" },\n            { speaker:\"A\", text:\"Any plans for when you graduate?\" },\n            { speaker:\"B\", text:\"I'm interested in journalism... writing for magazines.\" },\n            { speaker:\"A\", text:\"The one on Scandinavian literature that's running at the moment will be replaced.\" },\n            { speaker:\"A\", text:\"Read an assignment a student wrote last year.\" },\n            { speaker:\"A\", text:\"I've got a recording of a documentary that you should watch.\" },\n            { speaker:\"A\", text:\"Work out an outline... take notes... then put short phrases as bullet points.\" }\n          ],\n          answers: {\n            21:[\"C\"], 22:[\"B\"], 23:[\"C\"], 24:[\"A\"], 25:[\"C\"],\n            26:[\"E\"], 27:[\"G\"], 28:[\"D\"], 29:[\"C\"], 30:[\"A\"]\n          }\n        },\n\n        s4: {\n          title: \"Section 4\",\n          rule: \"oneWordOnly\",\n          qList: Array.from({length:10}, (_,i)=>i+31),\n          instructionSpeak: \"Section four. Questions thirty one to forty. Complete the notes. Write one word only for each answer.\",\n          questionsSpeak: \"Questions thirty one to forty. Conflict at work notes. Write one word only for each answer.\",\n          summary:\n            \"The lecturer explains workplace conflict, including bullying, personality differences, and structural conflicts. Stress can cause absence from work. CEOs often have confidence and anxiety, and conflicts can occur when people have different visions. In more democratic structures, reporting lines may be unclear. To minimise conflict, managers should gain respect, and an external mediator may be used.\",\n          mainIdeas: [\n            { tag:\"ONE WORD\", text:\"Do not write two-word phrases.\" },\n            { tag:\"Word form\", text:\"Check if the answer is a noun (e.g., respect) or adjective (e.g., democratic).\" },\n            { tag:\"Meaning\", text:\"Choose the word that matches the definition in the notes.\" },\n            { tag:\"Spelling\", text:\"Spelling matters (e.g., superiority, mediator).\" },\n            { tag:\"Context\", text:\"Follow the logic: causes \u2192 effects \u2192 CEOs \u2192 structures \u2192 solutions.\" }\n          ],\n          keywords: [\n            { term:\"Appalling conditions\", def:\"Very bad or poor working environments.\" },\n            { term:\"Conflict in the workplace\", def:\"Disagreements or friction between employees.\" },\n            { term:\"Bullying\", def:\"Aggressive behavior intended to hurt or intimidate someone in a weaker position.\" },\n            { term:\"Hierarchy\", def:\"A system in which members of an organization are ranked by status.\" },\n            { term:\"Incompatible personalities\", def:\"Characters or temperaments that cannot exist together harmoniously.\" },\n            { term:\"Autocratic vs. Democratic management\", def:\"Total power vs. shared decision-making leadership.\" },\n            { term:\"External mediator\", def:\"An independent person who helps two sides reach an agreement.\" }\n          ],\n          transcript: [\n            { speaker:\"A\", text:\"Conflict in the workplace is still common.\" },\n            { speaker:\"A\", text:\"Much of this is covered by the term bullying.\" },\n            { speaker:\"A\", text:\"It is often caused by someone wanting to show their superiority over someone else.\" },\n            { speaker:\"A\", text:\"Sometimes conflict happens because the personality of one person is incompatible with that of another.\" },\n            { speaker:\"A\", text:\"Some conflicts are called structural... people promoting their own team.\" },\n            { speaker:\"A\", text:\"Stress can result in their absence from work, possibly for months.\" },\n            { speaker:\"A\", text:\"Many CEOs combine confidence with anxiety.\" },\n            { speaker:\"A\", text:\"Conflict can occur when people have different visions.\" },\n            { speaker:\"A\", text:\"A more democratic business model can suffer when reporting lines are unclear.\" },\n            { speaker:\"A\", text:\"A good manager will gain the respect of the people they work with.\" },\n            { speaker:\"A\", text:\"An external mediator might be able to help.\" }\n          ],\n          answers: {\n            31:[\"bullying\"],\n            32:[\"superiority\"],\n            33:[\"personality\"],\n            34:[\"structural\"],\n            35:[\"absence\"],\n            36:[\"confidence\"],\n            37:[\"visions\"],\n            38:[\"democratic\"],\n            39:[\"respect\"],\n            40:[\"mediator\"]\n          }\n        }\n      };\n\n      function buildTranscriptText(sec){\n        return (sec.transcript || [])\n          .map(l => (l.speaker === \"A\" ? \"SPEAKER A: \" : \"SPEAKER B: \") + l.text)\n          .join(\"\\n\");\n      }\n\n      function renderTranscripts(){\n        Object.keys(sections).forEach(key => {\n          const secEl = root.querySelector(`[data-section=\"${key}\"]`);\n          if (!secEl) return;\n          const area = $('[data-el=\"transcript-area\"]', secEl);\n          if (area) area.textContent = buildTranscriptText(sections[key]);\n        });\n      }\n\n      async function playAudio(sectionKey){\n        if (!speechOk) return;\n        stopSpeaking();\n        const myRun = playRunId;\n        showLoader(true);\n\n        const sec = sections[sectionKey];\n        if (!sec) { showLoader(false); return; }\n\n        await sayWithVoice(\"Now listen.\", voiceA || null, { lang:\"en-US\" });\n        if (playRunId !== myRun) { showLoader(false); return; }\n\n        for (const l of (sec.transcript || [])){\n          if (playRunId !== myRun) { showLoader(false); return; }\n          const v = (l.speaker === \"B\") ? (voiceB || null) : (voiceA || null);\n          const opts = (l.speaker === \"B\")\n            ? { lang:\"en-US\", rate:1.02, pitch:1.05 }\n            : { lang:\"en-US\", rate:1.00, pitch:1.00 };\n          await sayWithVoice(l.text, v, opts);\n        }\n        showLoader(false);\n      }\n\n      async function playInstructions(sectionKey){\n        if (!speechOk) return;\n        stopSpeaking();\n        showLoader(true);\n        await sayWithVoice(sections[sectionKey].instructionSpeak, voiceA || null, { lang:\"en-US\" });\n        showLoader(false);\n      }\n\n      async function readQuestions(sectionKey){\n        if (!speechOk) return;\n        stopSpeaking();\n        showLoader(true);\n        await sayWithVoice(sections[sectionKey].questionsSpeak, voiceA || null, { lang:\"en-US\" });\n        showLoader(false);\n      }\n\n      async function showSummary(sectionKey){\n        const secEl = root.querySelector(`[data-section=\"${sectionKey}\"]`);\n        const sec = sections[sectionKey];\n        if (!secEl || !sec) return;\n\n        setHelper(secEl, (area) => {\n          const p = document.createElement(\"p\");\n          const tag = document.createElement(\"span\");\n          tag.className = \"tag\";\n          tag.textContent = \"Summary\";\n          p.appendChild(tag);\n          p.append(\" \" + sec.summary);\n          area.appendChild(p);\n        });\n\n        if (speechOk){\n          stopSpeaking();\n          showLoader(true);\n          await sayWithVoice(\"Summary. \" + sec.summary, voiceA || null, { lang:\"en-US\" });\n          showLoader(false);\n        }\n      }\n\n      async function showMainIdeas(sectionKey){\n        const secEl = root.querySelector(`[data-section=\"${sectionKey}\"]`);\n        const sec = sections[sectionKey];\n        if (!secEl || !sec) return;\n\n        setHelper(secEl, (area) => {\n          const p = document.createElement(\"p\");\n          const tag = document.createElement(\"span\");\n          tag.className = \"tag\";\n          tag.textContent = \"Main ideas\";\n          p.appendChild(tag);\n          p.append(\" Tips:\");\n          area.appendChild(p);\n\n          const ul = document.createElement(\"ul\");\n          (sec.mainIdeas || []).forEach(i => {\n            const li = document.createElement(\"li\");\n            const t = document.createElement(\"span\");\n            t.className = \"tag\";\n            t.textContent = i.tag;\n            li.appendChild(t);\n            li.append(i.text);\n            ul.appendChild(li);\n          });\n          area.appendChild(ul);\n        });\n\n        if (speechOk){\n          stopSpeaking();\n          showLoader(true);\n          const speakText = \"Main ideas. \" + (sec.mainIdeas || []).map(i => `${i.tag}. ${i.text}`).join(\" \");\n          await sayWithVoice(speakText, voiceA || null, { lang:\"en-US\" });\n          showLoader(false);\n        }\n      }\n\n      async function showKeywords(sectionKey){\n        const secEl = root.querySelector(`[data-section=\"${sectionKey}\"]`);\n        const sec = sections[sectionKey];\n        if (!secEl || !sec) return;\n\n        const items = Array.isArray(sec.keywords) ? sec.keywords : [];\n\n        setHelper(secEl, (area) => {\n          const p = document.createElement(\"p\");\n          const tag = document.createElement(\"span\");\n          tag.className = \"tag\";\n          tag.textContent = \"Keywords\";\n          p.appendChild(tag);\n          p.append(\" Key vocabulary from this section:\");\n          area.appendChild(p);\n\n          const ul = document.createElement(\"ul\");\n          items.forEach(k => {\n            const li = document.createElement(\"li\");\n            li.innerHTML = `<strong>${k.term}<\/strong>: ${k.def}`;\n            ul.appendChild(li);\n          });\n          area.appendChild(ul);\n        });\n\n        if (speechOk){\n          stopSpeaking();\n          showLoader(true);\n          const speakText = \"Keywords. \" + items.map(k => `${k.term}. ${k.def}`).join(\" \");\n          await sayWithVoice(speakText, voiceA || null, { lang:\"en-US\" });\n          showLoader(false);\n        }\n      }\n\n      function checkSection(sectionKey){\n        const secEl = root.querySelector(`[data-section=\"${sectionKey}\"]`);\n        const sec = sections[sectionKey];\n        if (!secEl || !sec) return;\n\n        let correct = 0;\n        const total = sec.qList.length;\n\n        sec.qList.forEach(q => setFB(secEl, q, \"\", \"\"));\n\n        sec.qList.forEach(q => {\n          const got = getUserAnswer(secEl, q);\n          const raw = String(got.value || \"\").trim();\n\n          if (!raw){\n            setFB(secEl, q, \"Please answer this question.\", \"#8a5a00\");\n            return;\n          }\n\n          if (got.kind === \"text\" || got.kind === \"word\"){\n            const tc = tokenCount(raw);\n            if (sec.rule === \"oneWordOnly\" && tc !== 1){\n              setFB(secEl, q, \"\u26a0\ufe0f ONE WORD ONLY.\", \"#8a5a00\");\n              return;\n            }\n            if (sec.rule === \"oneWordOrNumber\" && tc > 1){\n              setFB(secEl, q, \"\u26a0\ufe0f ONE WORD and\/or A NUMBER only.\", \"#8a5a00\");\n              return;\n            }\n          }\n\n          const user = norm(raw);\n          const ok = (sec.answers[q] || []).some(a => norm(a) === user);\n\n          if (ok){\n            correct++;\n            setFB(secEl, q, `\u2705 Correct (${formatAnswer(sec.answers[q][0])})`, \"#065f46\");\n          } else {\n            setFB(secEl, q, `\u274c Not correct. Correct answer: ${formatAnswer(sec.answers[q][0])}`, \"#991b1b\");\n          }\n        });\n\n        secEl.dataset.correct = String(correct);\n        secEl.dataset.total = String(total);\n\n        setSectionScore(secEl, `Score: ${correct}\/${total}`);\n\n        if (speechOk){\n          showLoader(true);\n          sayWithVoice(`Your score for ${sec.title} is ${correct} out of ${total}.`, voiceA || null, { lang:\"en-US\" })\n            .then(() => showLoader(false));\n        }\n      }\n\n      function showAnswers(sectionKey){\n        const secEl = root.querySelector(`[data-section=\"${sectionKey}\"]`);\n        const sec = sections[sectionKey];\n        if (!secEl || !sec) return;\n\n        sec.qList.forEach(q => {\n          setFB(secEl, q, `Correct answer: ${formatAnswer(sec.answers[q][0])}`, \"#0f172a\");\n        });\n        setSectionScore(secEl, \"Correct answers are shown.\");\n      }\n\n      function resetSection(sectionKey){\n        const secEl = root.querySelector(`[data-section=\"${sectionKey}\"]`);\n        const sec = sections[sectionKey];\n        if (!secEl || !sec) return;\n\n        clearInputs(secEl);\n        sec.qList.forEach(q => setFB(secEl, q, \"\", \"\"));\n        secEl.dataset.correct = \"0\";\n        secEl.dataset.total = String(sec.qList.length);\n        setSectionScore(secEl, \"\");\n        clearSupport(secEl);\n        stopSpeaking();\n      }\n\n      function updateOverallScore(){\n        let totalC = 0, totalT = 0;\n        [\"s1\",\"s2\",\"s3\",\"s4\"].forEach(k => {\n          const el = root.querySelector(`[data-section=\"${k}\"]`);\n          if (!el) return;\n          const c = Number(el.dataset.correct || 0);\n          const t = Number(el.dataset.total || 0);\n          if (t > 0){ totalC += c; totalT += t; }\n        });\n        const box = $('[data-el=\"overallScoreBox\"]');\n        if (box) box.textContent = totalT ? `Overall: ${totalC}\/${totalT}` : \"\";\n      }\n\n      function markCurrentMenu(){\n        const here = (location.href || \"\").replace(\/\\\/$\/, \"\");\n        root.querySelectorAll(\".icte-menu a\").forEach(a => {\n          const href = (a.href || \"\").replace(\/\\\/$\/, \"\");\n          if (href && (here === href || here.startsWith(href + \"\/\"))) a.classList.add(\"is-current\");\n        });\n      }\n\n      function wire(){\n        root.addEventListener(\"click\", (e) => {\n          const btn = e.target.closest(\"button[data-action]\");\n          if (!btn) return;\n\n          const action = btn.getAttribute(\"data-action\");\n          const secEl = btn.closest(\"[data-section]\");\n          const sectionKey = secEl ? secEl.getAttribute(\"data-section\") : null;\n\n          if (action === \"stop-audio\") return stopSpeaking();\n          if (action === \"scroll-sec1\") return document.getElementById(\"sec1\")?.scrollIntoView({behavior:\"smooth\"});\n          if (action === \"scroll-sec2\") return document.getElementById(\"sec2\")?.scrollIntoView({behavior:\"smooth\"});\n          if (action === \"scroll-sec3\") return document.getElementById(\"sec3\")?.scrollIntoView({behavior:\"smooth\"});\n          if (action === \"scroll-sec4\") return document.getElementById(\"sec4\")?.scrollIntoView({behavior:\"smooth\"});\n\n          if (!sectionKey) return;\n\n          if (action === \"toggle-transcript\") return toggleTranscript(secEl);\n          if (action === \"play-audio\") return playAudio(sectionKey);\n          if (action === \"play-instructions\") return playInstructions(sectionKey);\n          if (action === \"read-questions\") return readQuestions(sectionKey);\n          if (action === \"check\") return checkSection(sectionKey);\n          if (action === \"show\") return showAnswers(sectionKey);\n          if (action === \"summary\") return showSummary(sectionKey);\n          if (action === \"main-ideas\") return showMainIdeas(sectionKey);\n          if (action === \"keywords\") return showKeywords(sectionKey);\n          if (action === \"reset\") return resetSection(sectionKey);\n          if (action === \"clear-support\") return clearSupport(secEl);\n        });\n      }\n\n      function init(){\n        loadVoices();\n        renderTranscripts();\n        wire();\n        markCurrentMenu();\n\n        [\"s1\",\"s2\",\"s3\",\"s4\"].forEach(k => {\n          const el = root.querySelector(`[data-section=\"${k}\"]`);\n          if (!el) return;\n          el.dataset.correct = \"0\";\n          el.dataset.total = String(sections[k].qList.length);\n          clearSupport(el);\n        });\n        updateOverallScore();\n      }\n\n      if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", init);\n      else init();\n    })();\n  <\/script>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Test 1 Test 2 Listening Reading Speaking Writing IELTS Listening \u2013 Test 2 (Sections 1\u20134) Practice all 4 sections on<\/p>\n","protected":false},"author":1,"featured_media":578,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_layout":"default_layout","footnotes":""},"categories":[25,28,31],"tags":[],"class_list":["post-577","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ielts","category-listening","category-test-2-ielts"],"_links":{"self":[{"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/posts\/577","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=577"}],"version-history":[{"count":1,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/posts\/577\/revisions"}],"predecessor-version":[{"id":579,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/posts\/577\/revisions\/579"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/media\/578"}],"wp:attachment":[{"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/media?parent=577"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/categories?post=577"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/tags?post=577"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}