{"id":604,"date":"2026-01-10T02:54:45","date_gmt":"2026-01-10T02:54:45","guid":{"rendered":"https:\/\/i-cte.org\/robot\/?p=604"},"modified":"2026-01-10T04:08:57","modified_gmt":"2026-01-10T04:08:57","slug":"ielts-reading-test-2","status":"publish","type":"post","link":"https:\/\/i-cte.org\/robot\/ielts-reading-test-2\/","title":{"rendered":"IELTs &#8211; Reading &#8211; Test 2"},"content":{"rendered":"\n<!-- \u2705 WordPress-friendly (paste into a Custom HTML block) -->\n<div id=\"icte-reading-test2\">\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 2 (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 risks agriculture faces in developing countries<\/strong>. Questions 1\u20133 (Matching information), 4\u20139 (Match statements to people), 10\u201313 (Choose TWO letters).\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          <!-- \u2705 Passage shows by default, but user may still hide if desired -->\n          <button class=\"icte-btn icte-btn--dark\" type=\"button\" data-action=\"toggle-passage\">Hide Passage<\/button>\n        <\/div>\n      <\/div>\n      <!-- \u2705 SHOW ON SCREEN BY DEFAULT -->\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\u20133 -->\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 1\u20133 (Which paragraph contains the following information?)<\/div>\n          <div class=\"icte-note\">Choose the correct letter, <strong>A\u2013I<\/strong>.<\/div>\n\n          <div class=\"icte-grid2\">\n            <div class=\"icte-day\">\n              <div><strong>1.<\/strong> a reference to characteristics that only apply to food production<\/div>\n              <select data-q=\"1\" data-type=\"select\">\n                <option value=\"\">Select A\u2013I<\/option>\n                <option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option><option>H<\/option><option>I<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"1\"><\/div>\n            <\/div>\n\n            <div class=\"icte-day\">\n              <div><strong>2.<\/strong> a reference to challenges faced only by farmers in certain parts of the world<\/div>\n              <select data-q=\"2\" data-type=\"select\">\n                <option value=\"\">Select A\u2013I<\/option>\n                <option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option><option>H<\/option><option>I<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"2\"><\/div>\n            <\/div>\n\n            <div class=\"icte-day\">\n              <div><strong>3.<\/strong> a reference to difficulties in bringing about co-operation between farmers<\/div>\n              <select data-q=\"3\" data-type=\"select\">\n                <option value=\"\">Select A\u2013I<\/option>\n                <option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option><option>H<\/option><option>I<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"3\"><\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <!-- Q4\u20139 -->\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 4\u20139 (Match statements with the correct person)<\/div>\n          <div class=\"icte-note\">\n            Select the correct letter, <strong>A\u2013G<\/strong>. You may use any letter more than once.\n            <div style=\"margin-top:.5rem;\">\n              <strong>List of People<\/strong>: A Kanayo F. Nwanze \u2022 B Sophia Murphy \u2022 C Shengen Fan \u2022 D Rokeya Kabir \u2022 E Pat Mooney \u2022 F Gil Teon \u2022 G Sonali Bisht\n            <\/div>\n          <\/div>\n\n          <div class=\"icte-grid2\">\n            <div class=\"icte-day\">\n              <div><strong>4.<\/strong> Financial assistance from the government does not always go to the farmers who most need it.<\/div>\n              <select data-q=\"4\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option>\n                <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=\"4\"><\/div>\n            <\/div>\n\n            <div class=\"icte-day\">\n              <div><strong>5.<\/strong> Farmers can benefit from collaborating as a group.<\/div>\n              <select data-q=\"5\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option>\n                <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=\"5\"><\/div>\n            <\/div>\n\n            <div class=\"icte-day\">\n              <div><strong>6.<\/strong> Financial assistance from the government can improve the standard of living of farmers.<\/div>\n              <select data-q=\"6\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option>\n                <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=\"6\"><\/div>\n            <\/div>\n\n            <div class=\"icte-day\">\n              <div><strong>7.<\/strong> Farmers may be helped if there is a financial input by the same individuals who buy from them.<\/div>\n              <select data-q=\"7\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option>\n                <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=\"7\"><\/div>\n            <\/div>\n\n            <div class=\"icte-day\">\n              <div><strong>8.<\/strong> Governments can help to reduce variation in prices.<\/div>\n              <select data-q=\"8\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option>\n                <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=\"8\"><\/div>\n            <\/div>\n\n            <div class=\"icte-day\">\n              <div><strong>9.<\/strong> Improvements to infrastructure can have a major impact on risk for farmers.<\/div>\n              <select data-q=\"9\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option>\n                <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=\"9\"><\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <!-- \u2705 Q10\u201311 (Choose TWO letters overall; answers can be in either order) -->\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 10\u201311 (Choose TWO letters, A\u2013E)<\/div>\n          <div class=\"icte-note\">\n            Choose <strong>one letter for Q10<\/strong> and <strong>one letter for Q11<\/strong>. (The two answers can be in either order.)\n          <\/div>\n          <div class=\"icte-grid2\">\n            <div class=\"icte-day\">\n              <div><strong>10.<\/strong> First answer<\/div>\n              <select data-q=\"10\" data-type=\"select\">\n                <option value=\"\">Select A\u2013E<\/option>\n                <option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"10\"><\/div>\n            <\/div>\n            <div class=\"icte-day\">\n              <div><strong>11.<\/strong> Second answer<\/div>\n              <select data-q=\"11\" data-type=\"select\">\n                <option value=\"\">Select A\u2013E<\/option>\n                <option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"11\"><\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <!-- \u2705 Q12\u201313 (Choose TWO letters overall; answers can be in either order) -->\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 12\u201313 (Choose TWO letters, A\u2013E)<\/div>\n          <div class=\"icte-note\">\n            Choose <strong>one letter for Q12<\/strong> and <strong>one letter for Q13<\/strong>. (The two answers can be in either order.)\n          <\/div>\n          <div class=\"icte-grid2\">\n            <div class=\"icte-day\">\n              <div><strong>12.<\/strong> First answer<\/div>\n              <select data-q=\"12\" data-type=\"select\">\n                <option value=\"\">Select A\u2013E<\/option>\n                <option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"12\"><\/div>\n            <\/div>\n            <div class=\"icte-day\">\n              <div><strong>13.<\/strong> Second answer<\/div>\n              <select data-q=\"13\" data-type=\"select\">\n                <option value=\"\">Select A\u2013E<\/option>\n                <option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"13\"><\/div>\n            <\/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>The Lost City<\/strong>. Questions 14\u201320 (Matching headings i\u2013viii), 21\u201324 (T\/F\/NG), 25\u201326 (ONE WORD ONLY).\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        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 14\u201320 (Choose the correct heading for each paragraph, i\u2013viii)<\/div>\n          <div class=\"icte-note\">\n            <strong>List of Headings<\/strong>: i Different accounts of the same journey \u2022 ii Bingham gains support \u2022 iii A common belief \u2022 iv The aim of the trip \u2022 v A dramatic description \u2022 vi A new route \u2022 vii Bingham publishes his theory \u2022 viii Bingham\u2019s lack of enthusiasm\n          <\/div>\n\n          <div class=\"icte-grid2\">\n            <div class=\"icte-day\">\n              <div><strong>14.<\/strong> Paragraph A<\/div>\n              <select data-q=\"14\" data-type=\"select\">\n                <option value=\"\">Select i\u2013viii<\/option>\n                <option>i<\/option><option>ii<\/option><option>iii<\/option><option>iv<\/option><option>v<\/option><option>vi<\/option><option>vii<\/option><option>viii<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"14\"><\/div>\n            <\/div>\n\n            <div class=\"icte-day\">\n              <div><strong>15.<\/strong> Paragraph B<\/div>\n              <select data-q=\"15\" data-type=\"select\">\n                <option value=\"\">Select i\u2013viii<\/option>\n                <option>i<\/option><option>ii<\/option><option>iii<\/option><option>iv<\/option><option>v<\/option><option>vi<\/option><option>vii<\/option><option>viii<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"15\"><\/div>\n            <\/div>\n\n            <div class=\"icte-day\">\n              <div><strong>16.<\/strong> Paragraph C<\/div>\n              <select data-q=\"16\" data-type=\"select\">\n                <option value=\"\">Select i\u2013viii<\/option>\n                <option>i<\/option><option>ii<\/option><option>iii<\/option><option>iv<\/option><option>v<\/option><option>vi<\/option><option>vii<\/option><option>viii<\/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> Paragraph D<\/div>\n              <select data-q=\"17\" data-type=\"select\">\n                <option value=\"\">Select i\u2013viii<\/option>\n                <option>i<\/option><option>ii<\/option><option>iii<\/option><option>iv<\/option><option>v<\/option><option>vi<\/option><option>vii<\/option><option>viii<\/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> Paragraph E<\/div>\n              <select data-q=\"18\" data-type=\"select\">\n                <option value=\"\">Select i\u2013viii<\/option>\n                <option>i<\/option><option>ii<\/option><option>iii<\/option><option>iv<\/option><option>v<\/option><option>vi<\/option><option>vii<\/option><option>viii<\/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> Paragraph F<\/div>\n              <select data-q=\"19\" data-type=\"select\">\n                <option value=\"\">Select i\u2013viii<\/option>\n                <option>i<\/option><option>ii<\/option><option>iii<\/option><option>iv<\/option><option>v<\/option><option>vi<\/option><option>vii<\/option><option>viii<\/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> Paragraph G<\/div>\n              <select data-q=\"20\" data-type=\"select\">\n                <option value=\"\">Select i\u2013viii<\/option>\n                <option>i<\/option><option>ii<\/option><option>iii<\/option><option>iv<\/option><option>v<\/option><option>vi<\/option><option>vii<\/option><option>viii<\/option>\n              <\/select>\n              <div class=\"icte-q__fb\" data-fb=\"20\"><\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 21\u201324 (TRUE \/ FALSE \/ NOT GIVEN)<\/div>\n          <div class=\"icte-note\">Choose the correct answer.<\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>21.<\/strong> Bingham went to South America in search of an Inca city.<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q21\" data-q=\"21\" data-type=\"radio\" value=\"TRUE\"> TRUE<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q21\" data-q=\"21\" data-type=\"radio\" value=\"FALSE\"> FALSE<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q21\" data-q=\"21\" data-type=\"radio\" value=\"NG\"> NOT GIVEN<\/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> Bingham chose a particular route down the Urubamba valley because it was the most common route used by travellers.<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q22\" data-q=\"22\" data-type=\"radio\" value=\"TRUE\"> TRUE<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q22\" data-q=\"22\" data-type=\"radio\" value=\"FALSE\"> FALSE<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q22\" data-q=\"22\" data-type=\"radio\" value=\"NG\"> NOT GIVEN<\/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> Bingham understood the significance of Machu Picchu as soon as he saw it.<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q23\" data-q=\"23\" data-type=\"radio\" value=\"TRUE\"> TRUE<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q23\" data-q=\"23\" data-type=\"radio\" value=\"FALSE\"> FALSE<\/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> Bingham returned to Machu Picchu in order to find evidence to support his theory.<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q24\" data-q=\"24\" data-type=\"radio\" value=\"TRUE\"> TRUE<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q24\" data-q=\"24\" data-type=\"radio\" value=\"FALSE\"> FALSE<\/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        <\/div>\n\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 25\u201326 (ONE WORD ONLY)<\/div>\n          <div class=\"icte-note\">Complete the sentences. Choose <strong>ONE WORD ONLY<\/strong> from the passage.<\/div>\n\n          <div class=\"icte-note\">\n            <div>25. The track that took Bingham down the Urubamba valley had been created for the transportation of\n              <span class=\"blank\"> <input type=\"text\" data-q=\"25\" data-type=\"word\" data-max=\"1\" placeholder=\"ONE WORD\" \/> <\/span>\n            <\/div>\n            <div class=\"icte-q__fb\" data-fb=\"25\"><\/div>\n\n            <div style=\"margin-top:.55rem;\">26. Bingham found out about the ruins of Machu Picchu from a\n              <span class=\"blank\"> <input type=\"text\" data-q=\"26\" data-type=\"word\" data-max=\"1\" placeholder=\"ONE WORD\" \/> <\/span>\n              in the Urubamba valley.\n            <\/div>\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>The Benefits of Being Bilingual<\/strong>. Questions 27\u201331 (Table completion, \u2264 TWO WORDS), 32\u201336 (YES\/NO\/NG), 37\u201340 (Paragraph matching A\u2013G).\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        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 27\u201331 (NO MORE THAN TWO WORDS)<\/div>\n          <div class=\"icte-note\">Complete the table. Choose <strong>NO MORE THAN TWO WORDS<\/strong> from the passage for each answer.<\/div>\n\n          <div class=\"icte-note\">\n            <div><strong>27.<\/strong> Observing the\n              <span class=\"blank\"><input type=\"text\" data-q=\"27\" data-type=\"text\" data-max=\"2\" placeholder=\"\u2264 TWO WORDS\" \/><\/span>\n              of Russian-English bilingual people when asked to select certain objects\n            <\/div>\n            <div class=\"icte-q__fb\" data-fb=\"27\"><\/div>\n\n            <div style=\"margin-top:.55rem;\"><strong>28.<\/strong> Bilingual people engage both languages simultaneously: a mechanism known as\n              <span class=\"blank\"><input type=\"text\" data-q=\"28\" data-type=\"text\" data-max=\"2\" placeholder=\"\u2264 TWO WORDS\" \/><\/span>\n            <\/div>\n            <div class=\"icte-q__fb\" data-fb=\"28\"><\/div>\n\n            <div style=\"margin-top:.55rem;\"><strong>29.<\/strong> A test called the\n              <span class=\"blank\"><input type=\"text\" data-q=\"29\" data-type=\"text\" data-max=\"2\" placeholder=\"\u2264 TWO WORDS\" \/><\/span>\n              focusing on naming colours\n            <\/div>\n            <div class=\"icte-q__fb\" data-fb=\"29\"><\/div>\n\n            <div style=\"margin-top:.55rem;\"><strong>30.<\/strong> Bilingual people are more able to handle tasks involving skill called\n              <span class=\"blank\"><input type=\"text\" data-q=\"30\" data-type=\"text\" data-max=\"2\" placeholder=\"\u2264 TWO WORDS\" \/><\/span>\n            <\/div>\n            <div class=\"icte-q__fb\" data-fb=\"30\"><\/div>\n\n            <div style=\"margin-top:.55rem;\"><strong>31.<\/strong> When changing strategies, bilingual people have superior\n              <span class=\"blank\"><input type=\"text\" data-q=\"31\" data-type=\"text\" data-max=\"2\" placeholder=\"\u2264 TWO WORDS\" \/><\/span>\n            <\/div>\n            <div class=\"icte-q__fb\" data-fb=\"31\"><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 32\u201336 (YES \/ NO \/ NOT GIVEN)<\/div>\n          <div class=\"icte-note\">\n            Do the following statements agree with the claims of the writer? Choose <strong>YES<\/strong>, <strong>NO<\/strong>, or <strong>NOT GIVEN<\/strong>.\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>32.<\/strong> Attitudes towards bilingualism have changed in recent years.<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q32\" data-q=\"32\" data-type=\"radio\" value=\"YES\"> YES<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q32\" data-q=\"32\" data-type=\"radio\" value=\"NO\"> NO<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q32\" data-q=\"32\" data-type=\"radio\" value=\"NG\"> NOT GIVEN<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"32\"><\/div>\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>33.<\/strong> Bilingual people are better than monolingual people at guessing correctly what words are before they are finished.<\/div>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q33\" data-q=\"33\" data-type=\"radio\" value=\"YES\"> YES<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q33\" data-q=\"33\" data-type=\"radio\" value=\"NO\"> NO<\/label>\n            <label class=\"icte-opt\"><input type=\"radio\" name=\"q33\" data-q=\"33\" data-type=\"radio\" value=\"NG\"> NOT GIVEN<\/label>\n            <div class=\"icte-q__fb\" data-fb=\"33\"><\/div>\n          <\/div>\n\n          <div class=\"icte-mcq\">\n            <div class=\"icte-mcq__q\"><strong>34.<\/strong> Bilingual people consistently name images faster than monolingual people.<\/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> Bilingual people&#8217;s brains process single sounds more efficiently than monolingual people&#8217;s in all situations.<\/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> Fewer bilingual people than monolingual people suffer from brain disease in old age.<\/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        <\/div>\n\n        <div class=\"icte-q\">\n          <div class=\"icte-q__label\">Questions 37\u201340 (Which paragraph contains the following information?)<\/div>\n          <div class=\"icte-note\">Choose the correct letter, <strong>A\u2013G<\/strong>.<\/div>\n\n          <div class=\"icte-grid2\">\n            <div class=\"icte-day\">\n              <div><strong>37.<\/strong> an example of how bilingual and monolingual people\u2019s brains respond differently to a certain type of non-verbal auditory input<\/div>\n              <select data-q=\"37\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option>\n                <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=\"37\"><\/div>\n            <\/div>\n\n            <div class=\"icte-day\">\n              <div><strong>38.<\/strong> a demonstration of how a bilingual upbringing has benefits even before we learn to speak<\/div>\n              <select data-q=\"38\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option>\n                <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=\"38\"><\/div>\n            <\/div>\n\n            <div class=\"icte-day\">\n              <div><strong>39.<\/strong> a description of the process by which people identify words that they hear<\/div>\n              <select data-q=\"39\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option>\n                <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=\"39\"><\/div>\n            <\/div>\n\n            <div class=\"icte-day\">\n              <div><strong>40.<\/strong> reference to some negative consequences of being bilingual<\/div>\n              <select data-q=\"40\" data-type=\"select\">\n                <option value=\"\">Select A\u2013G<\/option>\n                <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=\"40\"><\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/section>\n  <\/section>\n\n  <!-- \u2705 STYLES (scoped) -->\n  <style>\n    #icte-reading-test2, #icte-reading-test2 *{ box-sizing:border-box; }\n    #icte-reading-test2{ width:100%; max-width:100%; margin:0; }\n\n    #icte-reading-test2 .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-test2 .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-test2 .icte-menu a.is-current{ background:#fff; color:#16a34a; border-color:#fff; }\n    @media (max-width:600px){\n      #icte-reading-test2 .icte-menu{ justify-content:flex-start; }\n      #icte-reading-test2 .icte-menu a{ width:100%; text-align:center; }\n    }\n\n    #icte-reading-test2 .icte-ielts{ width:100%; margin:1rem 0; }\n    #icte-reading-test2 .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-test2 .icte-ielts__title{ margin:0 0 .35rem; font-size:1.2rem; font-weight:900; }\n    #icte-reading-test2 .icte-ielts__sub{ margin:0; opacity:.85; }\n\n    #icte-reading-test2 .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-test2 .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-test2 .icte-ielts__h3{ margin:0; font-size:1.03rem; font-weight:900; }\n    #icte-reading-test2 .icte-ielts__headRight{ display:flex; gap:.55rem; align-items:center; }\n\n    #icte-reading-test2 .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-test2 .icte-ielts__row{\n      display:flex; justify-content:space-between; gap:.75rem;\n      padding:.85rem 1rem .25rem;\n    }\n    #icte-reading-test2 .icte-ielts__control label{ display:block; margin-bottom:.35rem; }\n    #icte-reading-test2 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-test2 .icte-ielts__score{\n      font-weight:900; font-size:.95rem; opacity:.9; white-space:nowrap;\n      margin-top:.25rem;\n    }\n\n    #icte-reading-test2 .icte-ielts__btnRow{\n      padding:.75rem 1rem 1rem; display:flex; gap:.6rem; flex-wrap:wrap; align-items:center;\n    }\n    #icte-reading-test2 .icte-ielts__btnRow--tight{ padding-top:0; }\n    #icte-reading-test2 .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-test2 .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-test2 .icte-ielts__qArea{ padding:.9rem 1rem 1rem; }\n    #icte-reading-test2 .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-test2 .icte-q__label{ font-weight:900; display:block; margin-bottom:.4rem; }\n    #icte-reading-test2 .icte-note{ line-height:1.7; opacity:.95; }\n\n    #icte-reading-test2 .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-test2 input[type=\"text\"]{\n      width:200px; 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-test2 .icte-q__fb{ margin-top:.35rem; font-size:.95rem; font-weight:800; }\n\n    #icte-reading-test2 .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-test2 .icte-btn--primary{ background:#16a34a; color:#fff; }\n    #icte-reading-test2 .icte-btn--info{ background:#0ea5e9; color:#fff; }\n    #icte-reading-test2 .icte-btn--danger{ background:#dc2626; color:#fff; }\n    #icte-reading-test2 .icte-btn--dark{ background:#334155; color:#fff; }\n    #icte-reading-test2 .icte-btn--ghost{ background:transparent; border-color:rgba(0,0,0,.20); color:inherit; }\n\n    #icte-reading-test2 .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-test2 .icte-ielts__helper{\n      padding:.95rem 1rem 1.05rem; line-height:1.7; overflow-wrap:anywhere; word-break:break-word;\n    }\n    #icte-reading-test2 .icte-ielts__helper ul{ margin:.4rem 0 0 1.1rem; }\n    #icte-reading-test2 .icte-ielts__helper li{ margin:.35rem 0; }\n    #icte-reading-test2 .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-test2 .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-test2 .icte-mcq__q{ font-weight:900; margin-bottom:.45rem; }\n    #icte-reading-test2 .icte-opt{ display:block; margin:.35rem 0; font-weight:700; }\n    #icte-reading-test2 .icte-opt input{ margin-right:.5rem; }\n\n    #icte-reading-test2 .icte-grid2{ display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:.75rem; }\n    #icte-reading-test2 .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-test2 .icte-day select{ max-width:100%; }\n\n    @media (max-width: 900px){\n      #icte-reading-test2 .icte-ielts__btnGrid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }\n      #icte-reading-test2 .icte-grid2{ grid-template-columns: 1fr; }\n    }\n    @media (max-width: 600px){\n      #icte-reading-test2 .icte-ielts__row{ flex-direction:column; align-items:stretch; }\n      #icte-reading-test2 .icte-ielts__btnGrid{ grid-template-columns: 1fr; }\n      #icte-reading-test2 input[type=\"text\"]{ width:100%; }\n    }\n  <\/style>\n\n  <!-- \u2705 SCRIPT -->\n  <script>\n    (function(){\n      const root = document.getElementById(\"icte-reading-test2\");\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, \" \")               \/\/ \u2705 allow co-activation \/ co activation\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 (already in your code) =====\n      const passages = {\n        p1: `READING PASSAGE 1\nThe risks agriculture faces in developing countries\n\u201cSynthesis of an online debate\u201d\n\nA  Two things distinguish food production from all other productive activities: first, every single person needs food each day and has a right to it; and second, it is hugely dependent on nature. These two unique aspects, one political, the other natural, make food production highly vulnerable and different from any other business. At the same time, cultural values are highly entrenched in food and agricultural systems worldwide.\n\nB  Farmers everywhere face major risks, including extreme weather, long-term climate change, and price volatility in input and product markets. However, small-scale farmers in developing countries must adapt to deal with adverse environments, both natural (soil quality, rainfall, etc.) and human (infrastructure, financial systems, markets, knowledge and technology). Constraints can be very severe, often marking many smallholder farmers in the developing world.\n\nC  Participants in the online debate argued that our biggest challenge is to address the underlying causes of agricultural system\u2019s inability to ensure sufficient food for all, and they identified a drivers of this problem: our dependency on fossil fuels and unsupportive government policies.\n\nD  On the question of mitigating the risks farmers face, most essayists called for greater international fund for agricultural development, arguing that government can significantly reduce risks for farmers by providing better services like roads to get produce more efficiently to markets, or water and food storage facilities to reduce loss. Sophia Murphy, senior advisor to the Institute for Agriculture and Trade Policy, suggested that the procurement and holding of stocks by governments can also help mitigate wild swings in food prices by alleviating uncertainties about market supply.\n\nE  Shengen Fan, Director General of the International Food Policy Research Institute, had all social safety nets and public welfare programmes in Ethiopia, Brazil and Mexico as valuable ways to address poverty among farming families and reduce vulnerability to agricultural shocks. However, some commentators responded that cash transfers to poor families do not necessarily translate into increased food security, as those programmes do not always strengthen food production or raise incomes.\n\nF  Regarding state subsidies for agriculture, Rokeya Kabir, Executive Director of Bangladesh Nari Progati Sangha in Bangladesh, wrote that prices \u201chave not compensated for the strengthened exercise by private traders. In fact, traders now that sixty percent of beneficiaries of subsidies are not poor, but rich and mostly non non-farmer traders\u201d.\n\nG  Kanayo Nwanze, President of the International Fund for Agricultural Development, argued that private risk management tools, like private insurance and commodity futures markets, and rural finance can help small-scale producers mitigate risk and allow for investment in improvements. Kabir warned that financial support schemes often encourage the adoption of high-input agricultural practices, which in turn may put production costs beyond the value of their harvest. Murphy noted that the sharpest shocks for markets become more excessive when financially they can continue to short-term price volatility, which in turn increases farmers\u2019 food insecurity. Many participants and commentators emphasised the importance of greater transparency in markets needed to mitigate the impact of volatility, and make evident whether adequate stocks and supplies are available. Others contended that agribusiness companies should be held responsible for paying for negative side effects of industrial agriculture.\n\nH  Many essayists mentioned climate change and its consequences for small-scale agriculture. Fan explained that \u201cin addition to reducing crop yields, climate change increases the magnitude and the frequency of extreme weather events, which in turn increase smallholder vulnerability.\u201d Yet growing unpredictability of weather patterns increases farmers\u2019 difficulty in managing weather-related risks. According to this author, one solution would be to develop crop varieties that are more resilient to new climate trends and extreme weather patterns.\n\nI  According to Pat Mooney, co-founder and executive director of the ETC Group, to survive climate change, we must adopt policies that maximum diversity in plant and animal species and varieties and replace crop monocultures that operate within an industrial model. Some participating authors argued in favour of community-based and autonomous risk management strategies through collective action groups, co-operatives or producers\u2019 groups. Such groups can enhance market opportunities for small-scale producers, reduce marketing costs and synchronise buying and selling with prices fluctuations. According to Murphy, collective action offers an important way for farmers to strengthen their political and economic bargaining power, and to reduce their business risks. One commentator, Gil Teon, warned that collective action does not come as a free good. It takes time, effort and money to organise, build trust and experiment. Others, like Marcel Warouw and Marcel Bellekkom, suggested that in order to \u201capply what we already know\u201d, all stakeholders, including business, governments, scientists and civil society, must work together, starting at the beginning of the value chain.\n\nJ  Participants explained that market price volatility is often worsened by the presence of intermediary purchasers, who taking advantage of farmers\u2019 vulnerability, dictate prices. One commentator suggested farmers can gain greater control over prices and minimise price volatility by selling directly to consumers. Himalayan Environment and Education (INHERE) and Sonali Bisht argued that the idea of local food systems supported agriculture, where consumers finance a price, is a risk-sharing model worth more attention. Direct food distribution systems can not only encourage small-scale agriculture but also give consumers more control over the food they consume.\n\n(End of Passage 1)`,\n        p2: `READING PASSAGE 2\nThe Lost City\nAn explorer\u2019s encounter with the ruined city of Machu Picchu, the most famous icon of the Inca civilisation\n\nA  When the US explorer and academic Hiram Bingham arrived in South America in 1911, he was ready for what was to be the greatest archaeological find of his life: the exploration of the remote Andes that led to the rediscovery of the capital of the Inca empire in the hinterlands on the Spur. His goal was to locate the remains of a city called Vitcos, the last capital of the Inca civilisation. Cusco lies on a high plateau at an elevation of more than 3,000 metres, and Bingham\u2019s plan was to descend from this plateau along the valley of the Urubamba river, with lakes of torpid water down to the Amazon and passes through an area of dramatic canyons and mountain ranges.\n\nB  When Bingham and his team set off down the Urubamba in late July, they had an advantage over travellers who had preceded them: a track had recently been blasted down the valley canyon to enable rubber to be brought up by mules from the jungle. Almost all previous travellers had left the river at Ollantaytambo and taken a high pass across the mountains to rejoin the river lower down, thereby cutting a substantial corner, but also therefore never passing through the area around Machu Picchu.\n\nC  On 24 July there was a few days into their descent of the valley. The day began slowly, with Bingham trying to arrange sufficient mules for the next stage of the trek. His companions showed no interest in archaeological remains of the nearby hill to see some ruins that local farmers, Melchor Arteaga, had told them about the night before. The morning was dull and damp, and Bingham also seems to have been less than keen on the prospect of climbing the hill. In his book Lost City of the Incas, he relates that he made the ascent without having the least expectation that he would find anything at the top.\n\nD  Bingham writes about the approach in vivid style in his book. First, as he climbs up the hill, he describes the ever-present possibility of deadly snakes, \u201ccapable of making considerable springs when in pursuit of their prey\u201d, not to mention that \u201cthe slopes and the precipitous rocks\u2026 are so steep and swampy that there are cases, when a man climbing, followed by monumental staircases and, finally, the grand ceremonial buildings of Machu Picchu. It seemed like an unbelievable dream \u2026 the sight held me spellbound \u2026\u201d\n\nE  We should remember, however, that Lost City of the Incas is a work of hindsight, not written until 1948, many years after his journey. His journal entries of the time reveal a much more gradual appreciation of his achievement. He spent the afternoon at the ruins noting down the dimensions of some of the buildings, then descended and rejoined his companions, to whom he seems to have said little about his discovery. At this stage, Bingham didn\u2019t realise the extent or the importance of the site, nor did he realise what he could make of the discovery.\n\nF  However, soon after returning it occurred to him that he could make a name for himself from this discovery. When he came to write the National Geographic article that broke the story to the world in April 1913, he knew he had to produce a big idea. He wondered whether Vitcos could perhaps have been very near, and after careful study he decided his discovery was the most chronicle described as \u2018the last city of the Incas\u2019. This term refers to Vilcabamba, the settlement where the Incas had fled from Spanish invaders in the 1530s. Bingham made desperate attempts to prove this belief nearly 40 years. Sadly, his vision of the site as both the beginning and end of the Inca civilisation, while a magnificent one, is inaccurate. The royal Inca dynasty had abandoned Machu Picchu only in the 80s (numbers vary in the depth of the Judge).\n\nG  One question that has perplexed visitors, historians and archaeologists over the years: Bingham is, why the site seems to have been abandoned before the Spanish Conquest. There are no references to it by any of the Spanish chroniclers - and if they had known of its existence so close to Cusco they would certainly have come in search of gold. An idea which has gained wide acceptance over the past few years is that Machu Picchu was a maya, a country estate built by an Inca emperor to escape the cold winters of Cusco, where the elite could enjoy monumental architecture and spectacular views. Furthermore, the particular architecture of Machu Picchu suggests that it was constructed during the brief but intensive period of the 15th century. Pachacuti (c. 1438\u201371), by using Pachacuti\u2019s descendants built other similar estates for their own use, and so Machu Picchu would have been abandoned after his death, some 50 years before the Spanish Conquest.\n\n(End of Passage 2)`,\n        p3: `READING PASSAGE 3\nThe Benefits of Being Bilingual\n\nA  According to the latest figures, the majority of the world\u2019s population is now bilingual or multilingual, having grown up speaking two or more languages. In the past, such children were considered to be at a disadvantage compared to their monolingual peers. Over the past few decades, however, technological advances have allowed researchers to look more deeply at how bilingualism interacts with and changes the cognitive and neurological systems, thereby identifying several clear benefits of being bilingual.\n\nB  Research shows that when a bilingual person uses one language, the other is active at the same time. When we hear a word, we don\u2019t hear the entire word all at once; the sounds arrive sequentially. Long before the word is finished, the brain\u2019s language system begins to guess what that word might be. If you hear \u2018can\u2019, you will likely activate words like \u2018candy\u2019 and \u2018candle\u2019, as well, at least during the earlier stages of word recognition. For bilingual people, this activation is not limited to a single language; auditioning input activates ongoing word candidates in other languages too, which they belong. Some of the most compelling evidence for this phenomenon, called \u2018language co-activation\u2019, comes from studying eye movements. A Russian-English bilingual asked to \u2018pick up a marker\u2019 from a set of objects would look more at a stamp than some other object, because the Russian word for \u2018stamp\u2019, marka, sounds like the English word for marker. In cases like this, language co-activation occurs because what the listener hears could be, and now, a word in either language.\n\nC  Having to deal with this persistent linguistic competition can result in difficulties, however. For instance, knowing more than one language sometimes makes you name pictures more slowly, and can increase \u2018tip-of-the-tongue\u2019 states, when you can almost, but not quite, bring a word to mind. As a result, the constant juggling of two languages creates a need to control attention. In one classic Stoop task, people see a word and are asked to name the colour of the word\u2019s font. When the colour and the word match (i.e., the word \u2018red\u2019 printed in red), people correctly name the colour more quickly than when the colour and the word don\u2019t match (i.e., the word \u2018red\u2019 printed in blue). This occurs because the word itself (\u2018red\u2019) is not relevant (blue). Bilingual people excel at tasks such as this, which tap into the ability to ignore competing perceptual information and focus on the relevant aspects of the input. Bilinguals are also better at switching between tasks, for example, when bilinguals have to switch from categorizing objects by colour (red, green) to categorizing them by shape (circle or triangle), they do so more quickly than monolingual people, reflecting better cognitive control when having to make rapid changes of strategy.\n\nD  It also seems that the neurological roots of the bilingual advantage extend to brain areas more traditionally associated with sensory processing. When monolingual and bilingual adolescents listen to simple speech sounds without any intervening background noise, they show high similar brain stem responses. When background noise is present, however, the bilingual listeners\u2019 neural responses to speech become larger, reflecting better encoding of the sound\u2019s fundamental frequency, a feature closely related to pitch perception.\n\nE  Such improvements in cognitive and sensory processing may help bilingual person to process information in the environment, and help explain why bilingual adults acquire a third language better than monolingual adults master a second language. This advantage may be rooted in the skill of focusing information about the new language while reducing interference from the languages they already know.\n\nF  Research also indicates that bilingual experience may help to keep the cognitive mechanisms sharp by recruiting alternate brain networks to compensate for those that become damaged during aging. Older bilinguals experience improved memory relative to monolingual people, which can lead to real-world health benefits. In a study of over 200 patients with Alzheimer\u2019s disease, a degenerative brain disease, bilingual patients reported showing initial symptoms of the disease an average of five years later than monolingual patients. In a follow-up study, researchers compared the brain of bilingual and monolingual patients matched on the severity of Alzheimer\u2019s symptoms. Surprisingly, the bilingual brains had more physical signs of disease than their monolingual counterparts, even though their outward behaviour and abilities were the same. If the brain is an engine, bilinguals may help it to go farther on the same amount of fuel.\n\nG  Furthermore, the benefits associated with bilingual experience seem to start very early. In one study, researchers taught seven-month-old babies growing up in monolingual or bilingual homes that when they heard a tinkling sound, a puppet appeared on one side of a screen. Halfway through the study, the puppet began appearing on the opposite side of the screen. It was tested in order to get a reward; the infants had to adjust the rule they\u2019d learned. Only the bilingual babies were able to successfully learn the new rule. This suggests that for very young children, as well as for older people, navigating a multilingual environment impacts advantages that transfer far beyond language.\n\n(End of Passage 3)`\n      };\n\n      \/\/ ===== Sections model + \u2705 ANSWER KEYS ADDED (from your Answer key T2.pdf) =====\n      const sections = {\n        p1: {\n          title: \"Passage 1\",\n          qList: Array.from({length:13}, (_,i)=>i+1),\n          summary: \"This passage discusses why food production is uniquely vulnerable, the risks small-scale farmers face in developing countries, and solutions proposed by different experts (policy, finance, cooperation, biodiversity, and transparency).\",\n          mainIdeas: [\n            { tag:\"Scan\", text:\"Read questions first, then scan for keywords (names, policy terms, risk types).\" },\n            { tag:\"Match\", text:\"For paragraph matching, don\u2019t match a word\u2014match the idea.\" },\n            { tag:\"People\", text:\"For Q4\u20139, focus on who supports which solution or criticism.\" },\n            { tag:\"Choose TWO\", text:\"For Q10\u201311 and Q12\u201313, choose two different letters in any order.\" }\n          ],\n          keywords: [\n            { term:\"volatility\", def:\"frequent change\/instability (e.g., prices)\" },\n            { term:\"subsidy\", def:\"money from government to support an activity\" },\n            { term:\"smallholder\", def:\"farmer with a small farm\" },\n            { term:\"transparency\", def:\"openness\/clear information\" },\n            { term:\"monoculture\", def:\"growing one crop only\" }\n          ],\n          passage: passages.p1,\n          answers: {\n            1:[\"A\"], 2:[\"B\"], 3:[\"H\"],\n            4:[\"D\"], 5:[\"B\"], 6:[\"C\"], 7:[\"G\"], 8:[\"B\"], 9:[\"A\"],\n            10:[\"D\",\"E\"], 11:[\"D\",\"E\"],           \/\/ \u2705 in either order\n            12:[\"C\",\"D\"], 13:[\"C\",\"D\"]            \/\/ \u2705 in either order\n          }\n        },\n        p2: {\n          title: \"Passage 2\",\n          qList: Array.from({length:13}, (_,i)=>i+14),\n          summary: \"The passage recounts Bingham\u2019s journey and discovery of Machu Picchu, contrasts his later writing with his immediate reaction, and discusses theories about the site\u2019s purpose and abandonment.\",\n          mainIdeas: [\n            { tag:\"Headings\", text:\"For headings, choose the best summary of the whole paragraph.\" },\n            { tag:\"T\/F\/NG\", text:\"TRUE = agrees, FALSE = contradicts, NG = not mentioned.\" },\n            { tag:\"ONE WORD\", text:\"Copy the exact word from the passage for sentence completion.\" }\n          ],\n          keywords: [\n            { term:\"hindsight\", def:\"understanding after an event has happened\" },\n            { term:\"dynasty\", def:\"family line of rulers\" },\n            { term:\"estate\", def:\"large property\/land owned by someone\" },\n            { term:\"chroniclers\", def:\"people who write historical records\" }\n          ],\n          passage: passages.p2,\n          answers: {\n            14:[\"iv\"], 15:[\"vi\"], 16:[\"viii\"], 17:[\"v\"], 18:[\"i\"], 19:[\"vii\"], 20:[\"iii\"],\n            21:[\"TRUE\"], 22:[\"FALSE\"], 23:[\"FALSE\"], 24:[\"NG\"],\n            25:[\"rubber\"], 26:[\"farmer\"]\n          }\n        },\n        p3: {\n          title: \"Passage 3\",\n          qList: Array.from({length:14}, (_,i)=>i+27),\n          summary: \"The passage explains how bilingualism affects word recognition, attention control, sensory processing, and brain aging, and shows benefits that appear even in infancy.\",\n          mainIdeas: [\n            { tag:\"\u2264 TWO WORDS\", text:\"For table completion, keep answers short and copy from the passage.\" },\n            { tag:\"YES\/NO\/NG\", text:\"YES = writer agrees, NO = writer disagrees, NG = not stated.\" },\n            { tag:\"Paragraph match\", text:\"Use unique details (infants, Alzheimer\u2019s, brainstem responses) to locate paragraphs.\" }\n          ],\n          keywords: [\n            { term:\"co-activation\", def:\"both languages become active at the same time\" },\n            { term:\"cognitive control\", def:\"ability to manage attention and ignore distractions\" },\n            { term:\"encoding\", def:\"processing information into a usable form\" },\n            { term:\"degenerative\", def:\"getting worse over time\" }\n          ],\n          passage: passages.p3,\n          answers: {\n            27:[\"eye movements\"],\n            28:[\"language co-activation\",\"language co activation\"],\n            29:[\"stroop task\"],\n            30:[\"conflict management\"],\n            31:[\"cognitive control\"],\n            32:[\"YES\"], 33:[\"NG\"], 34:[\"NO\"], 35:[\"NO\"], 36:[\"NG\"],\n            37:[\"D\"], 38:[\"G\"], 39:[\"B\"], 40:[\"C\"]\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          \/\/ \u2705 For paired \"choose two\" (10\u201311 and 12\u201313), ensure they don't pick the same letter\n          if (sectionKey === \"p1\" && (q === 10 || q === 11)){\n            const a10 = String(getUserAnswer(secEl, 10).value || \"\").trim().toUpperCase();\n            const a11 = String(getUserAnswer(secEl, 11).value || \"\").trim().toUpperCase();\n            if (a10 && a11 && a10 === a11){\n              setFB(secEl, 10, \"\u26a0\ufe0f Choose TWO different letters for Q10\u201311.\", \"#8a5a00\");\n              setFB(secEl, 11, \"\u26a0\ufe0f Choose TWO different letters for Q10\u201311.\", \"#8a5a00\");\n              return;\n            }\n          }\n          if (sectionKey === \"p1\" && (q === 12 || q === 13)){\n            const a12 = String(getUserAnswer(secEl, 12).value || \"\").trim().toUpperCase();\n            const a13 = String(getUserAnswer(secEl, 13).value || \"\").trim().toUpperCase();\n            if (a12 && a13 && a12 === a13){\n              setFB(secEl, 12, \"\u26a0\ufe0f Choose TWO different letters for Q12\u201313.\", \"#8a5a00\");\n              setFB(secEl, 13, \"\u26a0\ufe0f Choose TWO different letters for Q12\u201313.\", \"#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            \/\/ For paired questions, show both possible letters\n            if (sectionKey === \"p1\" && (q === 10 || q === 11)){\n              setFB(secEl, q, `Correct answers for Q10\u201311: D and E (either order)`, \"#0f172a\");\n            } else if (sectionKey === \"p1\" && (q === 12 || q === 13)){\n              setFB(secEl, q, `Correct answers for Q12\u201313: C and D (either order)`, \"#0f172a\");\n            } else {\n              setFB(secEl, q, `Correct answer: ${String(keyArr[0]).toUpperCase()}`, \"#0f172a\");\n            }\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        \/\/ \u2705 Make sure passages are visible by default, and buttons show \"Hide\"\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 2 (Passages 1\u20133) Practice<\/p>\n","protected":false},"author":1,"featured_media":594,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_layout":"default_layout","footnotes":""},"categories":[25,26,31],"tags":[],"class_list":["post-604","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ielts","category-reading","category-test-2-ielts"],"_links":{"self":[{"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/posts\/604","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=604"}],"version-history":[{"count":4,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/posts\/604\/revisions"}],"predecessor-version":[{"id":616,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/posts\/604\/revisions\/616"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/media\/594"}],"wp:attachment":[{"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/media?parent=604"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/categories?post=604"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i-cte.org\/robot\/wp-json\/wp\/v2\/tags?post=604"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}