{"id":613,"date":"2026-01-10T04:00:20","date_gmt":"2026-01-10T04:00:20","guid":{"rendered":"https:\/\/i-cte.org\/robot\/?p=613"},"modified":"2026-01-10T04:05:03","modified_gmt":"2026-01-10T04:05:03","slug":"ielts-reading-test-4","status":"publish","type":"post","link":"https:\/\/i-cte.org\/robot\/ielts-reading-test-4\/","title":{"rendered":"IELTs &#8211; Reading &#8211; Test 4"},"content":{"rendered":"\n<!-- \u2705 WordPress-friendly (paste into a Custom HTML block) -->\n<div id=\"icte-reading-test4\">\n\n  <!-- \u2705 TOP GREEN MENU -->\n  <nav class=\"icte-menu\" aria-label=\"ICTE Reading menu\">\n    <a href=\"https:\/\/i-cte.org\/robot\/ielts-reading-overview\/\">Overview<\/a>\n    <a href=\"https:\/\/i-cte.org\/robot\/ielts-cork\/\">Test 1<\/a>\n    <a href=\"https:\/\/i-cte.org\/robot\/ielts-reading-test-2\/\">Test 2<\/a>\n    <a href=\"https:\/\/i-cte.org\/robot\/ielts-reading-test-3\/\">Test 3<\/a>\n    <a href=\"https:\/\/i-cte.org\/robot\/ielts-reading-test-4\/\">Test 4<\/a>\n    <a href=\"https:\/\/i-cte.org\/robot\/ielts-listening-overview\/\">Listening<\/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 -->\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 Reading \u2013 Test 4 (Passages 1\u20133)<\/h2>\n      <p class=\"icte-ielts__sub\">\n        Practice all 3 passages on one page. Use <strong>Check Answers<\/strong> in each passage 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\">Read Aloud (optional)<\/h3>\n        <div class=\"icte-ielts__headRight\">\n          <button class=\"icte-btn icte-btn--danger\" type=\"button\" data-action=\"stop-audio\">\u23f9 Stop<\/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<\/strong> (Narrator)<\/label>\n          <select data-el=\"voice-a\" aria-label=\"Select narrator voice\">\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-p1\">Go to Passage 1<\/button>\n        <button class=\"icte-btn icte-btn--ghost\" type=\"button\" data-action=\"scroll-p2\">Go to Passage 2<\/button>\n        <button class=\"icte-btn icte-btn--ghost\" type=\"button\" data-action=\"scroll-p3\">Go to Passage 3<\/button>\n      <\/div>\n    <\/section>\n  <\/section>\n\n  <!-- =========================\n       PASSAGE 1 (Q1\u201313)\n  ========================== -->\n  <section class=\"icte-ielts\" id=\"p1\" data-section=\"p1\" aria-label=\"Reading Passage 1\">\n    <header class=\"icte-ielts__intro\">\n      <h2 class=\"icte-ielts__title\">Reading Passage 1 (Questions 1\u201313)<\/h2>\n      <p class=\"icte-ielts__sub\">\n        Passage: <strong>The History of Glass<\/strong>. Questions 1\u20138 (Notes completion, <strong>ONE WORD ONLY<\/strong>), 9\u201313 (TRUE\/FALSE\/NOT GIVEN).\n      <\/p>\n    <\/header>\n\n    <section class=\"icte-ielts__panel\" aria-label=\"Passage 1 text\">\n      <div class=\"icte-ielts__panelHead\">\n        <h3 class=\"icte-ielts__h3\">Reading Passage 1<\/h3>\n        <div class=\"icte-ielts__headRight\">\n          <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"toggle-passage\">Hide Passage<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"icte-ielts__reading\" data-el=\"passage-area\"><\/div>\n\n      <div class=\"icte-ielts__btnRow icte-ielts__btnRow--tight\">\n        <button class=\"icte-btn icte-btn--info\" type=\"button\" data-action=\"read-aloud\">\ud83d\udd0a Read Aloud (Passage 1)<\/button>\n        <a class=\"icte-link\" href=\"#q-p1\">Jump to questions \u2193<\/a>\n      <\/div>\n    <\/section>\n\n    <section class=\"icte-ielts__panel\" aria-label=\"Support P1\">\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    <section class=\"icte-ielts__panel\" aria-label=\"Controls P1\">\n      <div class=\"icte-ielts__btnGrid\">\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    <section class=\"icte-ielts__panel\" id=\"q-p1\" aria-label=\"Questions 1-13\">\n      <div class=\"icte-ielts__panelHead\">\n        <h3 class=\"icte-ielts__h3\">Questions 1\u201313<\/h3>\n      <\/div>\n\n      <div class=\"icte-ielts__qArea\">\n\n        <!-- Q1\u20138 Notes completion -->\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 1\u20138 (ONE WORD ONLY)<\/div>\n          <div class=\"icte-note\">Complete the notes below. Choose <strong>ONE WORD ONLY<\/strong> from the passage for each answer.<\/div>\n\n          <div class=\"icte-note\" style=\"margin-top:.5rem;\">\n            <div><strong>\u2022<\/strong> Early humans used a material called\n              <span class=\"blank\"><input type=\"text\" data-q=\"1\" data-type=\"word\" data-max=\"1\" placeholder=\"ONE WORD\" \/><\/span>\n              to make the sharp point of their\n              <span class=\"blank\"><input type=\"text\" data-q=\"2\" data-type=\"word\" data-max=\"1\" placeholder=\"ONE WORD\" \/><\/span>\n            <\/div>\n            <div class=\"icte-q__fb\" data-fb=\"1\"><\/div>\n            <div class=\"icte-q__fb\" data-fb=\"2\"><\/div>\n\n            <div style=\"margin-top:.55rem;\"><strong>\u2022<\/strong> 400 BC: the\n              <span class=\"blank\"><input type=\"text\" data-q=\"3\" data-type=\"word\" data-max=\"1\" placeholder=\"ONE WORD\" \/><\/span>\n              made of stone were covered in a coating of man-made glass.\n            <\/div>\n            <div class=\"icte-q__fb\" data-fb=\"3\"><\/div>\n\n            <div style=\"margin-top:.55rem;\"><strong>\u2022<\/strong> First century BC: glass was coloured because of the\n              <span class=\"blank\"><input type=\"text\" data-q=\"4\" data-type=\"word\" data-max=\"1\" placeholder=\"ONE WORD\" \/><\/span>\n              in the metal.\n            <\/div>\n            <div class=\"icte-q__fb\" data-fb=\"4\"><\/div>\n\n            <div style=\"margin-top:.55rem;\"><strong>\u2022<\/strong> Until 476 AD: Only the\n              <span class=\"blank\"><input type=\"text\" data-q=\"5\" data-type=\"word\" data-max=\"1\" placeholder=\"ONE WORD\" \/><\/span>\n              knew how to make glass.\n            <\/div>\n            <div class=\"icte-q__fb\" data-fb=\"5\"><\/div>\n\n            <div style=\"margin-top:.55rem;\"><strong>\u2022<\/strong> 17th century: George Ravenscroft developed a process using\n              <span class=\"blank\"><input type=\"text\" data-q=\"6\" data-type=\"word\" data-max=\"1\" placeholder=\"ONE WORD\" \/><\/span>\n              to avoid the occurrence of\n              <span class=\"blank\"><input type=\"text\" data-q=\"7\" data-type=\"word\" data-max=\"1\" placeholder=\"ONE WORD\" \/><\/span>\n              in blown glass.\n            <\/div>\n            <div class=\"icte-q__fb\" data-fb=\"6\"><\/div>\n            <div class=\"icte-q__fb\" data-fb=\"7\"><\/div>\n\n            <div style=\"margin-top:.55rem;\"><strong>\u2022<\/strong> Mid-19th century: British glass production developed after changes to\n              <span class=\"blank\"><input type=\"text\" data-q=\"8\" data-type=\"word\" data-max=\"1\" placeholder=\"ONE WORD\" \/><\/span>\n              concessions.\n            <\/div>\n            <div class=\"icte-q__fb\" data-fb=\"8\"><\/div>\n          <\/div>\n        <\/div>\n\n        <!-- Q9\u201313 TFNG -->\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 9\u201313 (TRUE \/ FALSE \/ NOT GIVEN)<\/div>\n          <div class=\"icte-note\">Do the following statements agree with the information in Reading Passage 1?<\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>9.<\/strong> In 1887, M. Ashley had the fastest bottle-producing machine that existed at the time.<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q9\" data-q=\"9\" data-type=\"radio\" value=\"TRUE\"> TRUE<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q9\" data-q=\"9\" data-type=\"radio\" value=\"FALSE\"> FALSE<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q9\" data-q=\"9\" data-type=\"radio\" value=\"NG\"> NOT GIVEN<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"9\"><\/div>\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>10.<\/strong> Michael Owens was hired by a large US company to design a fully-automated bottle manufacturing machine for them.<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q10\" data-q=\"10\" data-type=\"radio\" value=\"TRUE\"> TRUE<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q10\" data-q=\"10\" data-type=\"radio\" value=\"FALSE\"> FALSE<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q10\" data-q=\"10\" data-type=\"radio\" value=\"NG\"> NOT GIVEN<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"10\"><\/div>\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>11.<\/strong> Nowadays, most glass is produced by large international manufacturers.<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q11\" data-q=\"11\" data-type=\"radio\" value=\"TRUE\"> TRUE<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q11\" data-q=\"11\" data-type=\"radio\" value=\"FALSE\"> FALSE<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q11\" data-q=\"11\" data-type=\"radio\" value=\"NG\"> NOT GIVEN<\/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> Concern for the environment is leading to an increased demand for glass containers.<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q12\" data-q=\"12\" data-type=\"radio\" value=\"TRUE\"> TRUE<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q12\" data-q=\"12\" data-type=\"radio\" value=\"FALSE\"> FALSE<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q12\" data-q=\"12\" data-type=\"radio\" value=\"NG\"> NOT GIVEN<\/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> It is more expensive to produce recycled glass than to manufacture new products.<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q13\" data-q=\"13\" data-type=\"radio\" value=\"TRUE\"> TRUE<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q13\" data-q=\"13\" data-type=\"radio\" value=\"FALSE\"> FALSE<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q13\" data-q=\"13\" data-type=\"radio\" value=\"NG\"> NOT GIVEN<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"13\"><\/div>\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/section>\n  <\/section>\n\n  <!-- =========================\n       PASSAGE 2 (Q14\u201326)\n  ========================== -->\n  <section class=\"icte-ielts\" id=\"p2\" data-section=\"p2\" aria-label=\"Reading Passage 2\">\n    <header class=\"icte-ielts__intro\">\n      <h2 class=\"icte-ielts__title\">Reading Passage 2 (Questions 14\u201326)<\/h2>\n      <p class=\"icte-ielts__sub\">\n        Passage: <strong>Bring back the big cats<\/strong>. Questions 14\u201318 (Multiple choice A\u2013D), 19\u201322 (Summary completion A\u2013F), 23\u201326 (YES\/NO\/NOT GIVEN).\n      <\/p>\n    <\/header>\n\n    <section class=\"icte-ielts__panel\" aria-label=\"Passage 2 text\">\n      <div class=\"icte-ielts__panelHead\">\n        <h3 class=\"icte-ielts__h3\">Reading Passage 2<\/h3>\n        <div class=\"icte-ielts__headRight\">\n          <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"toggle-passage\">Hide Passage<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"icte-ielts__reading\" data-el=\"passage-area\"><\/div>\n\n      <div class=\"icte-ielts__btnRow icte-ielts__btnRow--tight\">\n        <button class=\"icte-btn icte-btn--info\" type=\"button\" data-action=\"read-aloud\">\ud83d\udd0a Read Aloud (Passage 2)<\/button>\n        <a class=\"icte-link\" href=\"#q-p2\">Jump to questions \u2193<\/a>\n      <\/div>\n    <\/section>\n\n    <section class=\"icte-ielts__panel\" aria-label=\"Support P2\">\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    <section class=\"icte-ielts__panel\" aria-label=\"Controls P2\">\n      <div class=\"icte-ielts__btnGrid\">\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    <section class=\"icte-ielts__panel\" id=\"q-p2\" aria-label=\"Questions 14-26\">\n      <div class=\"icte-ielts__panelHead\">\n        <h3 class=\"icte-ielts__h3\">Questions 14\u201326<\/h3>\n      <\/div>\n\n      <div class=\"icte-ielts__qArea\">\n\n        <!-- Q14\u201318 MCQ A-D -->\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 14\u201318 (Multiple choice)<\/div>\n          <div class=\"icte-note\">Choose the correct letter, <strong>A, B, C<\/strong> or <strong>D<\/strong>.<\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>14.<\/strong> What did the 2006 discovery of the animal bone reveal about the lynx?<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q14\" data-q=\"14\" data-type=\"radio\" value=\"A\"> A. Its physical appearance was very distinctive.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q14\" data-q=\"14\" data-type=\"radio\" value=\"B\"> B. Its extinction was linked to the spread of farming.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q14\" data-q=\"14\" data-type=\"radio\" value=\"C\"> C. It vanished from Britain several thousand years ago.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q14\" data-q=\"14\" data-type=\"radio\" value=\"D\"> D. It survived in Britain longer than was previously thought.<\/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> What point does the writer make about large predators in the third paragraph?<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q15\" data-q=\"15\" data-type=\"radio\" value=\"A\"> A. Their presence can increase biodiversity.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q15\" data-q=\"15\" data-type=\"radio\" value=\"B\"> B. They may cause damage to local ecosystems.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q15\" data-q=\"15\" data-type=\"radio\" value=\"C\"> C. Their behaviour can alter according to the environment.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q15\" data-q=\"15\" data-type=\"radio\" value=\"D\"> D. They should be reintroduced only to areas where they were native.<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"15\"><\/div>\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>16.<\/strong> What does the writer suggest about British conservation in paragraph 4?<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q16\" data-q=\"16\" data-type=\"radio\" value=\"A\"> A. It has failed to achieve its aims.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q16\" data-q=\"16\" data-type=\"radio\" value=\"B\"> B. It is beginning to change direction.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q16\" data-q=\"16\" data-type=\"radio\" value=\"C\"> C. It has taken a misguided approach.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q16\" data-q=\"16\" data-type=\"radio\" value=\"D\"> D. It has focused on the most widespread species.<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"16\"><\/div>\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>17.<\/strong> Protecting large areas of the sea from commercial fishing would result in<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q17\" data-q=\"17\" data-type=\"radio\" value=\"A\"> A. certain benefits to the fishing industry.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q17\" data-q=\"17\" data-type=\"radio\" value=\"B\"> B. some short-term losses for the fishing industry.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q17\" data-q=\"17\" data-type=\"radio\" value=\"C\"> C. widespread opposition from the fishing industry.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q17\" data-q=\"17\" data-type=\"radio\" value=\"D\"> D. certain changes to techniques within the fishing industry.<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"17\"><\/div>\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>18.<\/strong> According to the author, what distinguishes rewilding from other environmental campaigns?<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q18\" data-q=\"18\" data-type=\"radio\" value=\"A\"> A. Its objective is more achievable.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q18\" data-q=\"18\" data-type=\"radio\" value=\"B\"> B. Its supporters are more articulate.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q18\" data-q=\"18\" data-type=\"radio\" value=\"C\"> C. Its positive message is more appealing.<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q18\" data-q=\"18\" data-type=\"radio\" value=\"D\"> D. It is based on sounder scientific principles.<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"18\"><\/div>\n          <\/div>\n        <\/div>\n\n        <!-- Q19\u201322 Summary completion A-F -->\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 19\u201322 (Complete the summary)<\/div>\n          <div class=\"icte-note\">\n            Complete the summary using the list of words and phrases <strong>A\u2013F<\/strong> below.\n            <div style=\"margin-top:.45rem;\">\n              <strong>A<\/strong> trees \u2022 <strong>B<\/strong> endangered species \u2022 <strong>C<\/strong> hillsides \u2022\n              <strong>D<\/strong> wild animals \u2022 <strong>E<\/strong> humans \u2022 <strong>F<\/strong> farm animals\n            <\/div>\n          <\/div>\n\n          <div class=\"icte-note\" style=\"margin-top:.6rem;\">\n            <div style=\"font-weight:900; margin-bottom:.35rem;\">Reintroducing the lynx to Britain<\/div>\n\n            <div>\n              There would be many advantages to reintroducing the lynx to Britain. While there is no evidence that the lynx has ever put\n              <span class=\"blank\">\n                <select data-q=\"19\" data-type=\"select\" aria-label=\"Question 19\">\n                  <option value=\"\">Select A\u2013F<\/option>\n                  <option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option>\n                <\/select>\n              <\/span>\n              in danger, it would reduce the numbers of certain\n              <span class=\"blank\">\n                <select data-q=\"20\" data-type=\"select\" aria-label=\"Question 20\">\n                  <option value=\"\">Select A\u2013F<\/option>\n                  <option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option>\n                <\/select>\n              <\/span>\n              whose populations have increased enormously in recent decades.\n            <\/div>\n            <div class=\"icte-q__fb\" data-fb=\"19\"><\/div>\n            <div class=\"icte-q__fb\" data-fb=\"20\"><\/div>\n\n            <div style=\"margin-top:.55rem;\">\n              It would present only a minimal threat to\n              <span class=\"blank\">\n                <select data-q=\"21\" data-type=\"select\" aria-label=\"Question 21\">\n                  <option value=\"\">Select A\u2013F<\/option>\n                  <option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option>\n                <\/select>\n              <\/span>\n              provided these were kept away from lynx habitats.\n            <\/div>\n            <div class=\"icte-q__fb\" data-fb=\"21\"><\/div>\n\n            <div style=\"margin-top:.55rem;\">\n              Furthermore, the reintroduction programme would also link efficiently with initiatives to return nature\n              <span class=\"blank\">\n                <select data-q=\"22\" data-type=\"select\" aria-label=\"Question 22\">\n                  <option value=\"\">Select A\u2013F<\/option>\n                  <option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option>\n                <\/select>\n              <\/span>\n              to certain areas of the country.\n            <\/div>\n            <div class=\"icte-q__fb\" data-fb=\"22\"><\/div>\n          <\/div>\n        <\/div>\n\n        <!-- Q23\u201326 YES\/NO\/NG -->\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 23\u201326 (YES \/ NO \/ NOT GIVEN)<\/div>\n          <div class=\"icte-note\">Do the following statements agree with the claims of the writer in Reading Passage 2?<\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>23.<\/strong> Britain could become the first European country to reintroduce the lynx.<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q23\" data-q=\"23\" data-type=\"radio\" value=\"YES\"> YES<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q23\" data-q=\"23\" data-type=\"radio\" value=\"NO\"> NO<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q23\" data-q=\"23\" data-type=\"radio\" value=\"NG\"> NOT GIVEN<\/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> The large growth in the European lynx population since 1970 has exceeded conservationists\u2019 expectations.<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q24\" data-q=\"24\" data-type=\"radio\" value=\"YES\"> YES<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q24\" data-q=\"24\" data-type=\"radio\" value=\"NO\"> NO<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q24\" data-q=\"24\" data-type=\"radio\" value=\"NG\"> NOT GIVEN<\/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> Changes in agricultural practices have extended the habitat of the lynx in Europe.<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q25\" data-q=\"25\" data-type=\"radio\" value=\"YES\"> YES<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q25\" data-q=\"25\" data-type=\"radio\" value=\"NO\"> NO<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q25\" data-q=\"25\" data-type=\"radio\" value=\"NG\"> NOT GIVEN<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"25\"><\/div>\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>26.<\/strong> It has become apparent that species reintroduction has commercial advantages.<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q26\" data-q=\"26\" data-type=\"radio\" value=\"YES\"> YES<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q26\" data-q=\"26\" data-type=\"radio\" value=\"NO\"> NO<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q26\" data-q=\"26\" data-type=\"radio\" value=\"NG\"> NOT GIVEN<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"26\"><\/div>\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/section>\n  <\/section>\n\n  <!-- =========================\n       PASSAGE 3 (Q27\u201340)\n  ========================== -->\n  <section class=\"icte-ielts\" id=\"p3\" data-section=\"p3\" aria-label=\"Reading Passage 3\">\n    <header class=\"icte-ielts__intro\">\n      <h2 class=\"icte-ielts__title\">Reading Passage 3 (Questions 27\u201340)<\/h2>\n      <p class=\"icte-ielts__sub\">\n        Passage: <strong>UK companies need more effective boards of directors<\/strong>.\n        Questions 27\u201333 (Matching headings i\u2013viii), 34\u201337 (YES\/NO\/NOT GIVEN), 38\u201340 (ONE WORD ONLY).\n      <\/p>\n    <\/header>\n\n    <section class=\"icte-ielts__panel\" aria-label=\"Passage 3 text\">\n      <div class=\"icte-ielts__panelHead\">\n        <h3 class=\"icte-ielts__h3\">Reading Passage 3<\/h3>\n        <div class=\"icte-ielts__headRight\">\n          <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"toggle-passage\">Hide Passage<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"icte-ielts__reading\" data-el=\"passage-area\"><\/div>\n\n      <div class=\"icte-ielts__btnRow icte-ielts__btnRow--tight\">\n        <button class=\"icte-btn icte-btn--info\" type=\"button\" data-action=\"read-aloud\">\ud83d\udd0a Read Aloud (Passage 3)<\/button>\n        <a class=\"icte-link\" href=\"#q-p3\">Jump to questions \u2193<\/a>\n      <\/div>\n    <\/section>\n\n    <section class=\"icte-ielts__panel\" aria-label=\"Support P3\">\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    <section class=\"icte-ielts__panel\" aria-label=\"Controls P3\">\n      <div class=\"icte-ielts__btnGrid\">\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    <section class=\"icte-ielts__panel\" id=\"q-p3\" aria-label=\"Questions 27-40\">\n      <div class=\"icte-ielts__panelHead\">\n        <h3 class=\"icte-ielts__h3\">Questions 27\u201340<\/h3>\n      <\/div>\n\n      <div class=\"icte-ielts__qArea\">\n\n        <!-- Q27\u201333 headings -->\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 27\u201333 (Matching headings)<\/div>\n          <div class=\"icte-note\">\n            Choose the correct heading for each paragraph from the list of headings below.\n            <div style=\"margin-top:.45rem;\">\n              <strong>List of Headings<\/strong><br\/>\n              i Disputes over financial arrangements regarding senior managers<br\/>\n              ii The impact on companies of being subjected to close examination<br\/>\n              iii The possible need for fundamental change in every area of business<br\/>\n              iv Many external bodies being held responsible for problems<br\/>\n              v The failing number of board members with broad enough experience<br\/>\n              vi A risk that not all directors take part in solving major problems<br\/>\n              vii Boards not looking far enough ahead<br\/>\n              viii A proposal to change the way the board operates\n            <\/div>\n          <\/div>\n\n          <div class=\"icte-grid2\" style=\"margin-top:.65rem;\">\n            <div class=\"icte-day\">\n              <div><strong>27.<\/strong> Paragraph A<\/div>\n              <select data-q=\"27\" data-type=\"select\">\n                <option value=\"\">Select i\u2013viii<\/option>\n                <option>i<\/option><option>ii<\/option><option>iii<\/option><option>iv<\/option>\n                <option>v<\/option><option>vi<\/option><option>vii<\/option><option>viii<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"27\"><\/div>\n            <\/div>\n            <div class=\"icte-day\">\n              <div><strong>28.<\/strong> Paragraph B<\/div>\n              <select data-q=\"28\" data-type=\"select\">\n                <option value=\"\">Select i\u2013viii<\/option>\n                <option>i<\/option><option>ii<\/option><option>iii<\/option><option>iv<\/option>\n                <option>v<\/option><option>vi<\/option><option>vii<\/option><option>viii<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"28\"><\/div>\n            <\/div>\n            <div class=\"icte-day\">\n              <div><strong>29.<\/strong> Paragraph C<\/div>\n              <select data-q=\"29\" data-type=\"select\">\n                <option value=\"\">Select i\u2013viii<\/option>\n                <option>i<\/option><option>ii<\/option><option>iii<\/option><option>iv<\/option>\n                <option>v<\/option><option>vi<\/option><option>vii<\/option><option>viii<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"29\"><\/div>\n            <\/div>\n            <div class=\"icte-day\">\n              <div><strong>30.<\/strong> Paragraph D<\/div>\n              <select data-q=\"30\" data-type=\"select\">\n                <option value=\"\">Select i\u2013viii<\/option>\n                <option>i<\/option><option>ii<\/option><option>iii<\/option><option>iv<\/option>\n                <option>v<\/option><option>vi<\/option><option>vii<\/option><option>viii<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"30\"><\/div>\n            <\/div>\n            <div class=\"icte-day\">\n              <div><strong>31.<\/strong> Paragraph E<\/div>\n              <select data-q=\"31\" data-type=\"select\">\n                <option value=\"\">Select i\u2013viii<\/option>\n                <option>i<\/option><option>ii<\/option><option>iii<\/option><option>iv<\/option>\n                <option>v<\/option><option>vi<\/option><option>vii<\/option><option>viii<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"31\"><\/div>\n            <\/div>\n            <div class=\"icte-day\">\n              <div><strong>32.<\/strong> Paragraph F<\/div>\n              <select data-q=\"32\" data-type=\"select\">\n                <option value=\"\">Select i\u2013viii<\/option>\n                <option>i<\/option><option>ii<\/option><option>iii<\/option><option>iv<\/option>\n                <option>v<\/option><option>vi<\/option><option>vii<\/option><option>viii<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"32\"><\/div>\n            <\/div>\n            <div class=\"icte-day\">\n              <div><strong>33.<\/strong> Paragraph G<\/div>\n              <select data-q=\"33\" data-type=\"select\">\n                <option value=\"\">Select i\u2013viii<\/option>\n                <option>i<\/option><option>ii<\/option><option>iii<\/option><option>iv<\/option>\n                <option>v<\/option><option>vi<\/option><option>vii<\/option><option>viii<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"33\"><\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <!-- Q34\u201337 YES\/NO\/NG -->\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 34\u201337 (YES \/ NO \/ NOT GIVEN)<\/div>\n          <div class=\"icte-note\">Do the following statements agree with the claims of the writer in Reading Passage 3?<\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>34.<\/strong> Close scrutiny of the behaviour of boards has increased since the economic downturn.<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q34\" data-q=\"34\" data-type=\"radio\" value=\"YES\"> YES<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q34\" data-q=\"34\" data-type=\"radio\" value=\"NO\"> NO<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q34\" data-q=\"34\" data-type=\"radio\" value=\"NG\"> NOT GIVEN<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"34\"><\/div>\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>35.<\/strong> Banks have been mismanaged to a greater extent than other businesses.<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q35\" data-q=\"35\" data-type=\"radio\" value=\"YES\"> YES<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q35\" data-q=\"35\" data-type=\"radio\" value=\"NO\"> NO<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q35\" data-q=\"35\" data-type=\"radio\" value=\"NG\"> NOT GIVEN<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"35\"><\/div>\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>36.<\/strong> Board meetings normally continue for as long as necessary to debate matters in full.<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q36\" data-q=\"36\" data-type=\"radio\" value=\"YES\"> YES<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q36\" data-q=\"36\" data-type=\"radio\" value=\"NO\"> NO<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q36\" data-q=\"36\" data-type=\"radio\" value=\"NG\"> NOT GIVEN<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"36\"><\/div>\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>37.<\/strong> Using a committee structure would ensure that board members are fully informed about all significant issues.<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q37\" data-q=\"37\" data-type=\"radio\" value=\"YES\"> YES<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q37\" data-q=\"37\" data-type=\"radio\" value=\"NO\"> NO<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q37\" data-q=\"37\" data-type=\"radio\" value=\"NG\"> NOT GIVEN<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"37\"><\/div>\n          <\/div>\n        <\/div>\n\n        <!-- Q38\u201340 ONE WORD ONLY -->\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 38\u201340 (ONE WORD ONLY)<\/div>\n          <div class=\"icte-note\">Complete the sentences below. Choose <strong>ONE WORD ONLY<\/strong> from the passage for each answer.<\/div>\n\n          <div class=\"icte-note\" style=\"margin-top:.55rem;\">\n            <div><strong>38.<\/strong> Before 2008, non-executive directors were at a disadvantage because of their lack of\n              <span class=\"blank\"><input type=\"text\" data-q=\"38\" data-type=\"word\" data-max=\"1\" placeholder=\"ONE WORD\" \/><\/span>.\n            <\/div>\n            <div class=\"icte-q__fb\" data-fb=\"38\"><\/div>\n\n            <div style=\"margin-top:.55rem;\"><strong>39.<\/strong> Boards tend to place too much emphasis on\n              <span class=\"blank\"><input type=\"text\" data-q=\"39\" data-type=\"word\" data-max=\"1\" placeholder=\"ONE WORD\" \/><\/span>\n              considerations that are only of short-term relevance.\n            <\/div>\n            <div class=\"icte-q__fb\" data-fb=\"39\"><\/div>\n\n            <div style=\"margin-top:.55rem;\"><strong>40.<\/strong> On certain matters, such as pay, the board may have to accept the views of\n              <span class=\"blank\"><input type=\"text\" data-q=\"40\" data-type=\"word\" data-max=\"1\" placeholder=\"ONE WORD\" \/><\/span>.\n            <\/div>\n            <div class=\"icte-q__fb\" data-fb=\"40\"><\/div>\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/section>\n  <\/section>\n\n  <!-- \u2705 STYLES (scoped) -->\n  <style>\n    #icte-reading-test4, #icte-reading-test4 *{ box-sizing:border-box; }\n    #icte-reading-test4{ width:100%; max-width:100%; margin:0; }\n\n    #icte-reading-test4 .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-reading-test4 .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-reading-test4 .icte-menu a.is-current{ background:#fff; color:#16a34a; border-color:#fff; }\n    @media (max-width:600px){\n      #icte-reading-test4 .icte-menu{ justify-content:flex-start; }\n      #icte-reading-test4 .icte-menu a{ width:100%; text-align:center; }\n    }\n\n    #icte-reading-test4 .icte-ielts{ width:100%; margin:1rem 0; }\n    #icte-reading-test4 .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-reading-test4 .icte-ielts__title{ margin:0 0 .35rem; font-size:1.2rem; font-weight:900; }\n    #icte-reading-test4 .icte-ielts__sub{ margin:0; opacity:.85; }\n\n    #icte-reading-test4 .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-reading-test4 .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-reading-test4 .icte-ielts__h3{ margin:0; font-size:1.03rem; font-weight:900; }\n    #icte-reading-test4 .icte-ielts__headRight{ display:flex; gap:.55rem; align-items:center; }\n\n    #icte-reading-test4 .icte-ielts__reading{\n      padding:.95rem 1rem 1.05rem; line-height:1.75; max-height:520px; overflow:auto;\n      white-space:pre-wrap;\n    }\n\n    #icte-reading-test4 .icte-ielts__row{\n      display:flex; justify-content:space-between; gap:.75rem;\n      padding:.85rem 1rem .25rem;\n    }\n    #icte-reading-test4 .icte-ielts__control label{ display:block; margin-bottom:.35rem; }\n    #icte-reading-test4 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-reading-test4 .icte-ielts__score{\n      font-weight:900; font-size:.95rem; opacity:.9; white-space:nowrap;\n      margin-top:.25rem;\n    }\n\n    #icte-reading-test4 .icte-ielts__btnRow{\n      padding:.75rem 1rem 1rem; display:flex; gap:.6rem; flex-wrap:wrap; align-items:center;\n    }\n    #icte-reading-test4 .icte-ielts__btnRow--tight{ padding-top:0; }\n    #icte-reading-test4 .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-reading-test4 .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-reading-test4 .icte-ielts__qArea{ padding:.9rem 1rem 1rem; }\n    #icte-reading-test4 .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-reading-test4 .icte-q__label{ font-weight:900; display:block; margin-bottom:.4rem; }\n    #icte-reading-test4 .icte-note{ line-height:1.7; opacity:.95; }\n\n    #icte-reading-test4 .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-reading-test4 input[type=\"text\"]{\n      width:220px; max-width:100%;\n      padding:.55rem .65rem; border-radius:12px;\n      border:1px solid rgba(0,0,0,.18); font:inherit;\n    }\n    #icte-reading-test4 .icte-q__fb{ margin-top:.35rem; font-size:.95rem; font-weight:800; }\n\n    #icte-reading-test4 .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-reading-test4 .icte-btn--primary{ background:#16a34a; color:#fff; }\n    #icte-reading-test4 .icte-btn--info{ background:#0ea5e9; color:#fff; }\n    #icte-reading-test4 .icte-btn--danger{ background:#dc2626; color:#fff; }\n    #icte-reading-test4 .icte-btn--dark{ background:#334155; color:#fff; }\n    #icte-reading-test4 .icte-btn--ghost{ background:transparent; border-color:rgba(0,0,0,.20); color:inherit; }\n\n    #icte-reading-test4 .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-reading-test4 .icte-ielts__helper{\n      padding:.95rem 1rem 1.05rem; line-height:1.7; overflow-wrap:anywhere; word-break:break-word;\n    }\n    #icte-reading-test4 .icte-ielts__helper ul{ margin:.4rem 0 0 1.1rem; }\n    #icte-reading-test4 .icte-ielts__helper li{ margin:.35rem 0; }\n    #icte-reading-test4 .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-reading-test4 .icte-mcq{\n      margin:.75rem 0 1rem; padding:.7rem .75rem;\n      border:1px solid rgba(0,0,0,.10); border-radius:12px; background:rgba(255,255,255,.65);\n    }\n    #icte-reading-test4 .icte-mcq__q{ font-weight:900; margin-bottom:.45rem; }\n    #icte-reading-test4 .icte-opt{ display:block; margin:.35rem 0; font-weight:700; }\n    #icte-reading-test4 .icte-opt input{ margin-right:.5rem; }\n\n    #icte-reading-test4 .icte-grid2{ display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:.75rem; }\n    #icte-reading-test4 .icte-day{\n      border:1px solid rgba(0,0,0,.10); border-radius:12px; background:rgba(255,255,255,.65);\n      padding:.7rem;\n    }\n    #icte-reading-test4 .icte-day select{ max-width:100%; }\n\n    @media (max-width: 900px){\n      #icte-reading-test4 .icte-ielts__btnGrid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }\n      #icte-reading-test4 .icte-grid2{ grid-template-columns: 1fr; }\n    }\n    @media (max-width: 600px){\n      #icte-reading-test4 .icte-ielts__row{ flex-direction:column; align-items:stretch; }\n      #icte-reading-test4 .icte-ielts__btnGrid{ grid-template-columns: 1fr; }\n      #icte-reading-test4 input[type=\"text\"]{ width:100%; }\n    }\n  <\/style>\n\n  <!-- \u2705 SCRIPT -->\n  <script>\n    (function(){\n      const root = document.getElementById(\"icte-reading-test4\");\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      const speechOk = (\"speechSynthesis\" in window);\n      let voicesAll = [];\n      let voiceA = 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 say(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        voicesAll = window.speechSynthesis.getVoices() || [];\n        \/\/ \u2705 Keep ONLY Google voices + English US\/UK\nconst googleEnUSUK = voicesAll.filter(v => {\n  const name = (v.name || \"\").toLowerCase();\n  const lang = (v.lang || \"\").toLowerCase();\n\n  const isGoogle = name.includes(\"google\");\n  const isUSorUK = lang === \"en-us\" || lang === \"en-gb\";\n\n  return isGoogle && isUSorUK;\n});\n\n\/\/ fallback (in case user browser has no Google voices)\nconst usable = googleEnUSUK.length ? googleEnUSUK : voicesAll;\n\n\n        const selA = $('[data-el=\"voice-a\"]');\n        if (!selA) return;\n\n        selA.innerHTML = \"\";\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\n        voiceA = usable[0] || null;\n        if (voiceA){\n          const idx = usable.findIndex(v => v.name === voiceA.name && v.lang === voiceA.lang);\n          if (idx >= 0) selA.value = String(idx);\n        }\n        selA.onchange = () => { voiceA = usable[Number(selA.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      function norm(x){\n        return String(x || \"\")\n          .trim()\n          .toLowerCase()\n          .replace(\/[-]\/g, \" \")\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\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      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}\"][type=\"text\"]`);\n        if (txt) return { value: String(txt.value || \"\"), kind: \"text\", el: txt };\n\n        const sel = sectionEl.querySelector(`select[data-q=\"${q}\"]`);\n        if (sel) return { value: String(sel.value || \"\"), kind: \"select\", el: sel };\n\n        const checked = sectionEl.querySelector(`input[type=\"radio\"][data-q=\"${q}\"]:checked`);\n        if (checked) return { value: String(checked.value || \"\"), kind: \"radio\", el: checked };\n\n        const anyRadio = sectionEl.querySelector(`input[type=\"radio\"][data-q=\"${q}\"]`);\n        if (anyRadio) return { value: \"\", kind: \"radio\", el: null };\n\n        return { value: \"\", kind: \"unknown\", el: null };\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 togglePassage(sectionEl){\n        const area = $('[data-el=\"passage-area\"]', sectionEl);\n        const btn = sectionEl.querySelector('button[data-action=\"toggle-passage\"]');\n        if (!area || !btn) return;\n\n        const isHidden = (area.style.display === \"none\");\n        area.style.display = isHidden ? \"block\" : \"none\";\n        btn.textContent = isHidden ? \"Hide Passage\" : \"Show Passage\";\n        if (isHidden) area.scrollIntoView({ behavior:\"smooth\", block:\"start\" });\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      \/\/ ===== PASSAGES (Test 4) =====\n      const passages = {\n        p1: `READING PASSAGE 1\nThe History of Glass\n\nFrom our earliest origins, man has been making use of glass. Historians have discovered that this type of natural glass \u2013 obsidian \u2013 formed in places such as the mouth of a volcano as a result of intense heat of an eruption melting sand \u2013 was first used as tips for spear. Archaeologists have even found evidence of man-made glass which dates back to 400 BC; this too, the form of glass used for coating stone beads. It was not until 1500 BC, however, that the first hollow glass container was made by covering a sand core with a layer of molten glass.\n\nGlass blowing became the most common way to make glass containers from the first century BC. The glass blowing process was highly refined due to the impurities of the raw material. In the first century AD, methods of creating colourless glass were developed, which was then tinted by the addition of colouring materials. The secret of glass making was taken across Europe by the Romans during this century. However, they guarded the skills and technology required to make glass very closely, and it was not until their empire collapsed in 476 AD that glass-making knowledge became widespread throughout Europe and the Middle East. From the 10th century onwards, the Venetians gained a reputation for technical skill and artistic ability in the making of glass bottles, and many of the city\u2019s craftsmen left Italy to set up glassworks throughout Europe.\n\nA major milestone in the history of glass occurred with the invention of lead crystal glass by the English glass manufacturer George Ravenscroft (1632\u20131683). He attempted to counter the effect of clouding that sometimes occurred in blown glass by introducing lead to the raw materials used in the process. The new glass he created was softer and easier to decorate, and had a higher refractive index, adding to its brilliance and beauty, and it proved invaluable to the optical industry. It is thanks to Ravenscroft\u2019s invention that optical lenses, astronomical telescopes, microscopes and the like became possible.\n\nIn Britain, the modern glass industry only really started to develop after the repeal of the Excise Act in 1845. Before that time, heavy tax had been placed on the amount of glass melted in a glasshouse, and were levied continuously from 1745 to 1845. Joseph Paxton\u2019s Crystal Palace at London\u2019s Great Exhibition of 1851 marked the beginning of glass as a material used in the building industry. This revolutionary new building encouraged the use of glass in public, domestic and horticultural architecture. Glass manufacturing techniques also improved with the advancement of science, and the development of better technology.\n\nFrom 1887 onwards, glass making developed from traditional mouth-blowing to a semi-automatic process, after factory-owner HM Ashley introduced a machine capable of producing 200 bottles per hour in Castleford, Yorkshire, England \u2013 more than three times quicker than any previous production method. Then in 1907, the first fully automated machine was developed in the USA by Michael Owens \u2013 founder of the Owens Bottle Machine Company (later to become Owens-Illinois). Based on his factory owner\u2019s invention, Owens\u2019 machine could produce an impressive 2,500 bottles per hour. Other developments followed rapidly, but it was not until the First World War that glass came out of from essential glass suppliers, that glass became part of the specific science. Previous to this, glass had been seen as a craft rather than a precise science.\n\nToday, glass making is big business. It has become a modern, hi-tech industry operating in a fiercely competitive global market where quality, design and service levels are critical to maintaining market share. Modern glass plants are capable of making millions of glass containers a day in many different colours, with green, brown and clear remaining the most popular. Few of us can imagine modern life without glass; it features in almost every aspect of our lives: in our homes, our cars and whenever we sit down to eat or drink. Glass packaging is used for many products, many beverages and food glass, as are numerous other products, as well as medicines and cosmetics.\n\nGlass is an ideal material for recycling, and with growing consumer concern for green issues, glass bottles and jars are becoming ever more popular. Glass recycling is good news for the environment. It saves used glass containers being sent to landfill. As less energy is needed to melt recycled glass than to melt down raw materials, it also saves fuel and production costs. Recycled glass reduces the need for raw materials to be quarried, thus saving precious resources.\n(End of Passage 1)`,\n\n        p2: `READING PASSAGE 2\nBring back the big cats\nIt\u2019s time to start returning vanished native animals to Britain, says John Vesty\n\nThere is a poem, written around 598 AD, which describes hunting a mysterious animal (a new one). But what was it? Nothing seemed to fit, until 2006, when an animal bone, dating from around the same period, was found in the Kentish Cave in northern England. Until this discovery, it was largely accepted that the last lynx was presumed to have died out in Britain at least 6,000 years ago, before the inhabitants of these islands took up farming. But the 2006 find, together with three others in Yorkshire and Scotland, is compelling evidence that the lynx and the mysterious feline were once in fact one and the same animal. If this is so, it would bring forward the tassel-eared cat\u2019s estimated extinction date by roughly 5,000 years.\n\nHowever, this is not quite the last glimpse of the animal in British culture. An old country notion puts it in the Isle of Man, alongside the deer, boar and aurochs pursued by a mounted hunter, a speckled cat with tasselled ears, above it not far the animal\u2019s backside trailing over a wa(y\/1). But even we could not have been certain, as the lynx\u2019s stubby tail is unmistakable. But even without this key feature, it\u2019s hard to see what else the creature could have been. The lynx is now becoming the totemic animal of a movement that is transforming British environmentalism: rewilding.\n\nRewilding means the mass restoration of damaged ecosystems. It involves letting trees return to places that have been denuded, allowing parts of the sea to act as cover from trawling and dredging, permitting rivers to flow freely again. Above all, it means bringing back missing, top-of-the-food-chain predators of modern ecology is that ecosystems without large predators behave in completely different ways from those that retain them. Some of the dynamic processes that resonate through the whole food chain, creating niches for hundreds of species that might otherwise struggle to survive, the killers turn out to be bringers of life.\n\nSuch findings present a big challenge to British conservation, which has often selected arbitrary assemblages of plants and animals and sought, at great effort and expense, to prevent them from changing. It has tried to preserve the living world as if it were a jar of pickles, letting nothing in and not letting anything out, keeping nature in a state of arrested development. But are not merely collections of species; they are also the dynamic and ever-shifting relationships between them. And this dynamicism often depends on large predators.\n\nAt sea the potential is even greater: by protecting large areas from commercial fishing, we could once more see what 18th-century literature describes: vast shoals of fish being chased by fin and sperm whales, with night on the sea shivering and blue by a churn of phosphorescence. Predators\u2019 existence on the ocean\u2019s surface greatly out of the seabed, leaving no breeding reserves, could not be an over dramatic, we own invertebrates.\n\nRewilding is a rare example of an environmental movement that is expanding. It appeals articulate what they are for rather than only what they are against. One of the reasons why the enthusiasm for rewilding is spreading so quickly in Britain is that it helps to create a more inspiring vision than the green movement\u2019s usual promise of \u2018Follow us\u2019 and the world will be slightly less awful than it would otherwise have been.\u2019\n\nThe lynx presents no threat to human beings; there is no known instance of one preying on people. It is a specialist predator of roe deer, a species that has exploded in Britain in recent decades, holding back by intensive browsing, attempts to re-establish forests. It will also tackle deer, an exotic species that is almost impossible for humans beings to control, as it hides in impenetrable plantations of young trees. The attempt to reintroduce this predator marries well with the aim of bringing forests back to parts of our bare and uplands. The lynx requires deep cover, and as such presents little risk to deer and other livestock, which are supposed, as a condition of farm subsidies, to be kept out of the woods.\n\nOn a recent trip to the Cairngorm Mountains, I heard several conservationists suggest that the lynx could be introduced there within 20 years. If there is to be that possibility then Britain, the big cats could soon follow. There is nothing extraordinarily about these proposals, seen from the perspective of anywhere else in Europe. The lynx has now been reintroduced to the Jura Mountains, the Alps, the Vosges in eastern France and the Harz mountains in Germany, and has re-established itself in many more places. The European population has tripled since 1970 to roughly 10,000. As with wolves, bears, beavers, boar, bison, moose and many other species, the lynx has been able to spread as farming has left the hills and people discover that it is more lucrative to protect charismatic wildlife than to hunt it, as tourists will pay for the chance to see it. Large-scale rewilding is happening almost everywhere \u2013 except Britain. Here, attitudes are just beginning to change. Conservationists are starting to accept that the old preservation-jar model is failing, and on its own terms already, projects such as Trees for Life in the Highlands provide a hint of what might be achieved.\n(End of Passage 2)`,\n\n        p3: `READING PASSAGE 3\nUK companies need more effective boards of directors\n\nA. After a number of serious failures of governance (that is, how they are managed) at the highest level, companies in Britain, as well as elsewhere, should consider radical changes to their directors\u2019 roles. It is clear that the role of a non-executive director is not an easy one. Following the 2008 financial meltdown, which resulted in a deep and more prolonged period of economic downturn than anyone expected, the search for explanations in the many post-mortems of the crisis has meant blame has been spread far and wide. Governments, regulators, central banks and auditors have all been criticised. Then, too, banks and businesses have had their widely publicised failures been extensively picked over and examined in reports, inquiries and commentaries.\n\nB. The knock-on effect of this scrutiny has been to make the governance of companies in general an issue of intense public debate and has significantly increased the pressure on, and the responsibilities of directors. At the simplest and most practical level, the time involved in fulfilling the demands of a board directorship has increased significantly, calling into question the effectiveness of the classic model of corporate governance by part-time independent non-executive directors. Where once a board schedule may have consisted of eight meetings a year, it can now comprise the number of executive directors and their relationships and has risen dramatically. Furthermore, the amount of reading and preparation required for each meeting is increasing. Agendas have become overloaded and this can mean the time for constructive debate must necessarily be restricted in favour of getting through the business.\n\nC. Often, board business is devolved to committees in order to cope with the workload, which may be more efficient but can mean that the board as a whole is less involved in fully addressing some of the most important issues. It is not uncommon for the audit committee to meet to last issues than the main board meeting itself. Process may take the place of discussion and be at the expense of real collaboration, so that boxes are ticked rather than issues tackled.\n\nD. A radical solution, which may work for some very large companies whose businesses are extensive and complex, is the professional board, whose members would work up to three or four days a week, supported by their own dedicated staff and advisers. There are obvious risks to this and it would be important to establish clear guidelines for sharing of the work and to set a limit. But it would be clear that this would reduce the time of management by becoming too engaged in the day-to-day running of the company. Problems of recruitment, remuneration and independence could also arise and this structure would not be appropriate for all companies. However, more professional and better-informed boards would have been particularly appropriate for banks where the executives had access to information that part-time non-executive directors lacked, leaving the latter vulnerable to complacency or ignorance.\n\nE. One of the main criticisms of boards and their directors is that they do not focus sufficiently on long-term matters of strategy, sustainability and governance, but instead concentrate too much on short-term financial metrics. Regulatory requirements and the structure of the market encourage this behaviour. The tyranny of quarterly reporting can distort board decision-making, as directors have to \u2018make the numbers\u2019 every few months to meet the insatiable appetite of the market for more data. This serves to encourage the trading methodology of a certain kind of investor who moves in and out of a stock without engaging in constructive dialogue with the company about strategy or performance, and is simply seeking a short-term financial gain. Thus the effect of consumer to be the changing profile of investors due to the globalisation of capital and the increasing use of automated trading systems. Corporate culture adopts and management teams are largely incentivised to meet financial goals.\n\nF. Compensation for chief executives has become a hot topic where debate battles between investors, management and board members are fought, often behind closed doors but increasingly frequently in the full glare of press attention. Many would argue that this is in the interest of transparency and good governance as it removes further some of the nature of the area of pay to pressure boards to remove underperforming chief executives. Their powers to vote down executive remuneration policies in annual general meetings increased when binding votes came into force. The chair of the remuneration committee can be an exposed and lonely role, as Alison Carnwath, chair of Barclays Bank\u2019s remuneration committee, found when she had to resign, having been roundly criticised for trying to defend the enormous bonuses to bankers shortly exercised to being put of the proceedings as would understood to be the power on against it, in the giving of the war widely.\n\nG. The financial crisis stimulated a debate about the corporate purpose of the company and a heightened awareness of corporate and ethical issues in the corporation has been eroded and academics such as Michael Sandel, in his thoughtful and bestselling book What Money Can\u2019t Buy, are questioning the morality of capitalism and the market economy. Boards of companies in all sectors will need to widen their perspective to encompass these issues and this may involve a realignment of corporate goals. We live in challenging times.\n(End of Passage 3)`\n      };\n\n      \/\/ ===== Sections model + \u2705 ANSWER KEYS (Test 4 Answer Key) =====\n      const sections = {\n        p1: {\n          title: \"Passage 1\",\n          qList: Array.from({length:13}, (_,i)=>i+1),\n          summary: \"This passage traces how glass developed from natural obsidian and early tools to modern industrial production, including key innovations like glassblowing and lead crystal, and the importance of recycling.\",\n          mainIdeas: [\n            { tag:\"Dates\", text:\"Use dates (400 BC, 1st century BC\/AD, 476 AD, 17th century, 1845, 1887, 1907) to locate details fast.\" },\n            { tag:\"ONE WORD\", text:\"For Q1\u20138, copy exactly ONE word from the passage.\" },\n            { tag:\"TFNG\", text:\"TRUE = agrees, FALSE = contradicts, NOT GIVEN = not stated.\" }\n          ],\n          keywords: [\n            { term:\"obsidian\", def:\"natural volcanic glass\" },\n            { term:\"glassblowing\", def:\"shaping glass by blowing air into molten glass\" },\n            { term:\"refractive index\", def:\"how much light bends in a material\" },\n            { term:\"recycling\", def:\"processing used materials into new products\" }\n          ],\n          passage: passages.p1,\n          answers: {\n            1:[\"obsidian\"], 2:[\"spears\"], 3:[\"beads\"], 4:[\"impurities\"],\n            5:[\"romans\"], 6:[\"lead\"], 7:[\"clouding\"], 8:[\"taxes\"],\n            9:[\"TRUE\"], 10:[\"FALSE\"], 11:[\"NG\",\"NOT GIVEN\"], 12:[\"TRUE\"], 13:[\"FALSE\"]\n          }\n        },\n        p2: {\n          title: \"Passage 2\",\n          qList: Array.from({length:13}, (_,i)=>i+14),\n          summary: \"The passage argues for rewilding in Britain and discusses evidence and benefits of reintroducing the lynx, including ecosystem impacts and changing public attitudes.\",\n          mainIdeas: [\n            { tag:\"MCQ\", text:\"Underline the key phrase in the question, then locate the matching idea in the passage.\" },\n            { tag:\"Summary\", text:\"For Q19\u201322, choose the best option A\u2013F that fits meaning + grammar.\" },\n            { tag:\"Y\/N\/NG\", text:\"YES = writer agrees, NO = writer disagrees, NG = not stated.\" }\n          ],\n          keywords: [\n            { term:\"rewilding\", def:\"restoring damaged ecosystems, including bringing back missing predators\" },\n            { term:\"predator\", def:\"animal that hunts other animals\" },\n            { term:\"biodiversity\", def:\"variety of living species in an area\" }\n          ],\n          passage: passages.p2,\n          answers: {\n            14:[\"D\"], 15:[\"A\"], 16:[\"C\"], 17:[\"A\"], 18:[\"C\"],\n            19:[\"E\"], 20:[\"D\"], 21:[\"F\"], 22:[\"A\"],\n            23:[\"NO\"], 24:[\"NG\",\"NOT GIVEN\"], 25:[\"YES\"], 26:[\"YES\"]\n          }\n        },\n        p3: {\n          title: \"Passage 3\",\n          qList: Array.from({length:14}, (_,i)=>i+27),\n          summary: \"The passage explains how board governance in UK companies has faced intense scrutiny after the financial crisis and suggests structural and cultural changes to improve oversight, long-term strategy, and accountability.\",\n          mainIdeas: [\n            { tag:\"Headings\", text:\"Match each heading to the MAIN idea of the whole paragraph, not a detail.\" },\n            { tag:\"Y\/N\/NG\", text:\"YES = agrees, NO = contradicts, NG = not stated.\" },\n            { tag:\"ONE WORD\", text:\"For Q38\u201340, use ONE word taken directly from the passage.\" }\n          ],\n          keywords: [\n            { term:\"non-executive\", def:\"board member not involved in daily management\" },\n            { term:\"governance\", def:\"how an organisation is directed\/controlled\" },\n            { term:\"scrutiny\", def:\"close examination\" }\n          ],\n          passage: passages.p3,\n          answers: {\n            27:[\"iv\"], 28:[\"ii\"], 29:[\"vi\"], 30:[\"viii\"], 31:[\"vii\"], 32:[\"i\"], 33:[\"iii\"],\n            34:[\"YES\"], 35:[\"NG\",\"NOT GIVEN\"], 36:[\"NO\"], 37:[\"NO\"],\n            38:[\"information\"],\n            39:[\"financial\"],\n            40:[\"shareholders\",\"investors\",\"shareholder\",\"investor\",\"shareholders\/investors\"]\n          }\n        }\n      };\n\n      function renderPassages(){\n        Object.keys(sections).forEach(key => {\n          const secEl = root.querySelector(`[data-section=\"${key}\"]`);\n          if (!secEl) return;\n          const area = $('[data-el=\"passage-area\"]', secEl);\n          if (area) area.textContent = sections[key].passage || \"\";\n        });\n      }\n\n      async function readAloud(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 say(\"Now read the passage.\", voiceA || null, { lang:\"en-US\" });\n        if (playRunId !== myRun) { showLoader(false); return; }\n\n        const text = String(sec.passage || \"\").replace(\/\\s+\/g,\" \").trim();\n        const chunks = [];\n        const max = 850;\n        for (let i=0; i<text.length; i+=max) chunks.push(text.slice(i, i+max));\n        for (const ch of chunks){\n          if (playRunId !== myRun) { showLoader(false); return; }\n          await say(ch, voiceA || null, { lang:\"en-US\", rate:1.0, pitch:1.0 });\n        }\n        showLoader(false);\n      }\n\n      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          say(\"Summary. \" + sec.summary, voiceA || null, { lang:\"en-US\" }).then(()=>showLoader(false));\n        }\n      }\n\n      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\n      function showKeywords(sectionKey){\n        const secEl = root.querySelector(`[data-section=\"${sectionKey}\"]`);\n        const sec = sections[sectionKey];\n        if (!secEl || !sec) return;\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 for this passage:\");\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\n      function enforceTextMaxTokens(el, raw){\n        const maxAttr = el && el.getAttribute && el.getAttribute(\"data-max\");\n        const max = maxAttr ? Number(maxAttr) : 0;\n        if (max > 0){\n          return tokenCount(raw) <= max;\n        }\n        return true;\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        let graded = 0;\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.el){\n            if (!enforceTextMaxTokens(got.el, raw)){\n              const mx = got.el.getAttribute(\"data-max\");\n              setFB(secEl, q, `\u26a0\ufe0f NO MORE THAN ${mx} WORD(S).`, \"#8a5a00\");\n              return;\n            }\n          }\n\n          const keyArr = (sec.answers && sec.answers[q]) ? sec.answers[q] : null;\n          if (!keyArr || !Array.isArray(keyArr) || keyArr.length === 0){\n            setFB(secEl, q, \"\u26a0\ufe0f Answer key not set yet.\", \"#8a5a00\");\n            return;\n          }\n\n          graded++;\n\n          const userNorm = norm(raw);\n          const ok = keyArr.some(a => norm(a) === userNorm);\n\n          if (ok){\n            correct++;\n            setFB(secEl, q, `\u2705 Correct`, \"#065f46\");\n          } else {\n            setFB(secEl, q, `\u274c Not correct. Correct answer: ${String(keyArr[0]).toUpperCase()}`, \"#991b1b\");\n          }\n        });\n\n        secEl.dataset.correct = String(correct);\n        secEl.dataset.total = String(graded);\n        setSectionScore(secEl, graded ? `Score: ${correct}\/${graded}` : \"Score: 0\/0\");\n\n        if (speechOk && graded){\n          showLoader(true);\n          say(`Your score for ${sec.title} is ${correct} out of ${graded}.`, 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          const keyArr = (sec.answers && sec.answers[q]) ? sec.answers[q] : null;\n          if (!keyArr || !Array.isArray(keyArr) || !keyArr.length){\n            setFB(secEl, q, \"Answer key not set.\", \"#8a5a00\");\n          } else {\n            setFB(secEl, q, `Correct answer: ${String(keyArr[0]).toUpperCase()}`, \"#0f172a\");\n          }\n        });\n\n        setSectionScore(secEl, \"Answers 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 = \"0\";\n        setSectionScore(secEl, \"\");\n        clearSupport(secEl);\n        stopSpeaking();\n      }\n\n      function updateOverallScore(){\n        let totalC = 0, totalT = 0;\n        [\"p1\",\"p2\",\"p3\"].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){\n          box.textContent = totalT ? `Overall: ${totalC}\/${totalT}` : \"\";\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-p1\") return document.getElementById(\"p1\")?.scrollIntoView({behavior:\"smooth\"});\n          if (action === \"scroll-p2\") return document.getElementById(\"p2\")?.scrollIntoView({behavior:\"smooth\"});\n          if (action === \"scroll-p3\") return document.getElementById(\"p3\")?.scrollIntoView({behavior:\"smooth\"});\n\n          if (!sectionKey) return;\n\n          if (action === \"toggle-passage\") return togglePassage(secEl);\n          if (action === \"read-aloud\") return readAloud(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        renderPassages();\n        wire();\n        markCurrentMenu();\n\n        [\"p1\",\"p2\",\"p3\"].forEach(k => {\n          const el = root.querySelector(`[data-section=\"${k}\"]`);\n          if (!el) return;\n          el.dataset.correct = \"0\";\n          el.dataset.total = \"0\";\n          clearSupport(el);\n          const area = $('[data-el=\"passage-area\"]', el);\n          const btn  = el.querySelector('button[data-action=\"toggle-passage\"]');\n          if (area) area.style.display = \"block\";\n          if (btn) btn.textContent = \"Hide Passage\";\n        });\n\n        updateOverallScore();\n      }\n\n      if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", init);\n      else init();\n    })();\n  <\/script>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Overview Test 1 Test 2 Test 3 Test 4 Listening Speaking Writing IELTS Reading \u2013 Test 4 (Passages 1\u20133) Practice<\/p>\n","protected":false},"author":1,"featured_media":596,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_layout":"default_layout","footnotes":""},"categories":[25,26,33],"tags":[],"class_list":["post-613","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ielts","category-reading","category-test-4"],"_links":{"self":[{"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/posts\/613","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=613"}],"version-history":[{"count":2,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/posts\/613\/revisions"}],"predecessor-version":[{"id":615,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/posts\/613\/revisions\/615"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/media\/596"}],"wp:attachment":[{"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/media?parent=613"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/categories?post=613"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/tags?post=613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}