{"id":1275,"date":"2026-06-03T14:45:19","date_gmt":"2026-06-03T14:45:19","guid":{"rendered":"https:\/\/allenglish4u.com\/cambridge-ket-1-test-1-rw\/"},"modified":"2026-07-05T02:44:39","modified_gmt":"2026-07-05T02:44:39","slug":"cambridge-ket-1-test-1-rw","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/cambridge-ket-1-test-1-rw\/","title":{"rendered":"KET 1 \u2014 Test 1 Reading &#038; Writing"},"content":{"rendered":"\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Fraunces:opsz,wght@9..144,700&display=swap');\n\n\/* escape WP wrapper *\/\n.entry-content,.wp-block-post-content,.is-layout-constrained{max-width:none !important;width:auto !important;margin-left:0 !important;margin-right:0 !important;padding-left:0 !important;padding-right:0 !important;}\n.wp-block-post-title{display:none !important;}\n\n:root{\n  --accent-1:#F97316;\n  --accent-2:#F43F5E;\n  --gold:#F9C74F;\n  --green:#10B981;\n  --red:#EF4444;\n  --light-1:#FFF7ED;\n  --light-2:#FFFBF5;\n  --white:#FFFFFF;\n  --text:#0F172A;\n  --muted:#475569;\n  --subtle:#64748B;\n  --border:#E2E8F0;\n  --dark-1:#1B0F02;\n  --dark-2:#2D1A06;\n  --r-10:10px; --r-16:16px; --r-22:22px;\n  --sh-card:0 2px 8px rgba(0,0,0,.06);\n  --sh-lg:0 12px 40px rgba(0,0,0,.12);\n}\n*{margin:0;padding:0;box-sizing:border-box}\nhtml{scroll-behavior:smooth}\nbody{\n  font-family:'Plus Jakarta Sans',system-ui,sans-serif;\n  color:var(--text);\n  background:var(--light-2);\n  -webkit-font-smoothing:antialiased;\n  overflow-x:hidden;\n}\n.serif{font-family:'Fraunces',Georgia,serif;font-weight:700;letter-spacing:-.01em}\n.wrap{max-width:1080px;margin:0 auto;padding:0 24px}\na{color:inherit;text-decoration:none}\nbutton{font-family:inherit;cursor:pointer;border:none;background:none}\n\n\/* HEADER (same pattern as cambridge index) *\/\n.header{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .28s ease,box-shadow .28s ease;border-bottom:1px solid transparent;}\n.header.solid{background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--border);box-shadow:0 1px 0 rgba(15,23,42,.02);}\n.header-inner{display:flex;align-items:center;gap:28px;height:72px;max-width:1200px;margin:0 auto;padding:0 24px}\n.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}\n.brand img{width:40px;height:40px;border-radius:11px;object-fit:cover;box-shadow:var(--sh-card)}\n.brand-name{font-weight:800;font-size:18px;letter-spacing:-.02em;color:#fff;transition:color .28s ease}\n.header.solid .brand-name{color:var(--text)}\n.nav{display:flex;align-items:center;gap:4px;margin-left:8px}\n.nav a{position:relative;padding:9px 13px;font-size:14.5px;font-weight:600;color:rgba(255,255,255,.82);border-radius:var(--r-10);transition:color .16s ease,background .16s ease;}\n.nav a:hover{color:#fff;background:rgba(255,255,255,.08)}\n.header.solid .nav a{color:var(--muted)}\n.header.solid .nav a:hover{color:var(--text);background:var(--light-1)}\n.header-right{margin-left:auto;display:flex;align-items:center;gap:10px}\n.btn-back{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:999px;font-weight:700;font-size:14px;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.22);transition:background .16s ease}\n.btn-back:hover{background:rgba(255,255,255,.22)}\n.header.solid .btn-back{background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;border-color:transparent}\n.hamburger{display:none;width:40px;height:40px;border-radius:50%;color:#fff;align-items:center;justify-content:center}\n.header.solid .hamburger{color:var(--text)}\n\n\/* HERO *\/\n.hero{\n  position:relative;min-height:380px;padding:120px 0 60px;\n  background:linear-gradient(135deg,#FB923C 0%,#F43F5E 55%,#7C2D12 100%);\n  color:#fff;overflow:hidden;\n}\n.hero::before{content:\"\";position:absolute;inset:0;background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.15) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(255,255,255,.10) 0%,transparent 50%);pointer-events:none}\n.hero .wrap{position:relative;z-index:1}\n.kicker{display:inline-block;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;opacity:.92;margin-bottom:14px}\n.hero h1{font-size:clamp(34px,5vw,52px);line-height:1.05;margin-bottom:14px}\n.hero h1 span{font-style:italic;color:var(--gold)}\n.hero p.sub{font-size:17px;line-height:1.6;max-width:680px;opacity:.95;margin-bottom:22px}\n.hero-meta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}\n.meta-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.18);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.24);font-size:13px;font-weight:600}\n.meta-pill .dot{width:6px;height:6px;border-radius:50%;background:var(--gold)}\n.cta-row{display:flex;gap:12px;flex-wrap:wrap}\n.btn-primary{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:999px;background:#fff;color:var(--text);font-weight:700;font-size:15px;box-shadow:0 10px 30px rgba(0,0,0,.2);transition:transform .16s ease}\n.btn-primary:hover{transform:translateY(-2px)}\n.btn-ghost{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-weight:700;font-size:15px;border:1px solid rgba(255,255,255,.32);transition:background .16s ease}\n.btn-ghost:hover{background:rgba(255,255,255,.22)}\n\n\/* SCORE BAR *\/\n.score-bar{\n  position:sticky;top:72px;z-index:50;\n  background:rgba(255,255,255,.96);backdrop-filter:blur(12px);\n  border-bottom:1px solid var(--border);\n  padding:14px 0;\n}\n.sb-inner{display:flex;align-items:center;gap:16px;flex-wrap:wrap}\n.sb-prog{flex:1;min-width:200px}\n.sb-prog-bar{height:8px;background:var(--light-1);border-radius:999px;overflow:hidden}\n.sb-prog-fill{height:100%;background:linear-gradient(90deg,var(--accent-1),var(--accent-2));border-radius:999px;transition:width .3s ease;width:0}\n.sb-prog-label{font-size:12px;color:var(--muted);margin-top:5px;font-weight:600}\n.sb-score{display:flex;align-items:center;gap:10px;font-weight:700;font-size:14.5px;color:var(--text)}\n.sb-score b{font-size:18px;color:var(--accent-1)}\n.btn-submit{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:999px;background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;font-weight:700;font-size:14px;box-shadow:0 6px 18px rgba(249,115,22,.32);transition:transform .15s ease,opacity .15s ease}\n.btn-submit:hover{transform:translateY(-1px)}\n.btn-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}\n.btn-reset{padding:10px 16px;border-radius:999px;background:#fff;color:var(--muted);font-weight:600;font-size:13px;border:1px solid var(--border);transition:background .15s ease}\n.btn-reset:hover{background:var(--light-1);color:var(--text)}\n\n\/* PARTS *\/\n.part-section{padding:48px 0;border-bottom:1px solid var(--border)}\n.part-section:nth-of-type(even){background:#fff}\n.part-head{display:flex;align-items:flex-start;gap:18px;margin-bottom:24px}\n.part-num{\n  flex-shrink:0;width:60px;height:60px;border-radius:18px;\n  background:linear-gradient(135deg,var(--accent-1),var(--accent-2));\n  color:#fff;display:grid;place-items:center;\n  font-family:'Fraunces',serif;font-weight:700;font-size:26px;\n  box-shadow:0 8px 22px rgba(249,115,22,.3);\n}\n.part-head-text h2{font-size:26px;line-height:1.15;margin-bottom:6px}\n.part-head-text .qrange{display:inline-block;font-size:12.5px;font-weight:700;color:var(--accent-1);background:var(--light-1);padding:4px 10px;border-radius:999px;letter-spacing:.04em;margin-bottom:8px}\n.part-head-text p{color:var(--muted);font-size:15px;line-height:1.55;max-width:740px}\n\n\/* PART 1 &#8212; notice match *\/\n.notices-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin:20px 0 28px}\n.notice{\n  background:#fff;border:2px solid var(--border);border-radius:14px;padding:18px 14px;text-align:center;\n  font-weight:700;letter-spacing:.02em;color:var(--text);min-height:88px;display:grid;place-items:center;\n  font-size:14.5px;line-height:1.35;\n  box-shadow:0 1px 3px rgba(0,0,0,.04);\n}\n.notice-letter{position:absolute;top:6px;left:8px;font-size:11px;font-weight:800;color:var(--accent-1);background:var(--light-1);width:22px;height:22px;border-radius:50%;display:grid;place-items:center;}\n.notice{position:relative}\n\n\/* questions list *\/\n.q-list{display:flex;flex-direction:column;gap:14px;margin-top:8px}\n.q-item{\n  background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px 20px;\n  display:flex;flex-direction:column;gap:12px;transition:border-color .2s ease,box-shadow .2s ease;\n}\n.q-item.correct{border-color:var(--green);box-shadow:0 0 0 3px rgba(16,185,129,.12)}\n.q-item.wrong{border-color:var(--red);box-shadow:0 0 0 3px rgba(239,68,68,.12)}\n.q-num{font-weight:800;color:var(--accent-1);font-size:14px;min-width:30px}\n.q-text{flex:1;font-size:15.5px;line-height:1.55;color:var(--text);display:flex;gap:10px;align-items:flex-start}\n.q-text b.qn{color:var(--accent-1);font-weight:800}\n.q-opts{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}\n.opt{\n  display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:10px;\n  background:#F8FAFF;border:1.5px solid var(--border);font-weight:600;font-size:14px;color:var(--text);\n  cursor:pointer;transition:all .15s ease;user-select:none;\n}\n.opt:hover{background:var(--light-1);border-color:var(--accent-1)}\n.opt input{display:none}\n.opt .opt-letter{font-weight:800;color:var(--accent-1);background:#fff;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:12.5px;border:1px solid var(--border)}\n.opt.selected{background:linear-gradient(100deg,rgba(249,115,22,.12),rgba(244,63,94,.12));border-color:var(--accent-1)}\n.opt.selected .opt-letter{background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;border-color:transparent}\n.opt.correct-opt{background:rgba(16,185,129,.12) !important;border-color:var(--green) !important}\n.opt.correct-opt .opt-letter{background:var(--green) !important;color:#fff !important;border-color:transparent !important}\n.opt.wrong-opt{background:rgba(239,68,68,.10) !important;border-color:var(--red) !important}\n.opt.wrong-opt .opt-letter{background:var(--red) !important;color:#fff !important;border-color:transparent !important}\n.feedback{font-size:13px;font-weight:600;display:none;padding:8px 12px;border-radius:8px;margin-top:4px}\n.q-item.answered .feedback{display:block}\n.q-item.correct .feedback{background:rgba(16,185,129,.12);color:#065F46}\n.q-item.wrong .feedback{background:rgba(239,68,68,.10);color:#991B1B}\n\n\/* PART 2 \/ cloze with input *\/\n.input-blank{\n  display:inline-block;min-width:90px;border:none;border-bottom:2px dashed var(--accent-1);\n  background:transparent;font-family:inherit;font-size:15.5px;color:var(--text);font-weight:600;\n  padding:2px 6px;margin:0 4px;text-align:center;outline:none;\n}\n.input-blank:focus{border-bottom-style:solid;background:var(--light-1)}\n.input-blank.correct{border-bottom-color:var(--green);color:#065F46;background:rgba(16,185,129,.10)}\n.input-blank.wrong{border-bottom-color:var(--red);color:#991B1B;background:rgba(239,68,68,.08)}\n\n\/* PART 4 &#8212; passage *\/\n.passage{\n  background:#fff;border:1px solid var(--border);border-radius:18px;\n  padding:24px 26px;margin:8px 0 20px;\n  font-size:15.5px;line-height:1.7;color:var(--text);\n  box-shadow:var(--sh-card);\n  position:relative;\n}\n.passage h3{font-family:'Fraunces',serif;font-size:22px;text-align:center;margin-bottom:14px;letter-spacing:.02em;color:var(--accent-2)}\n.passage p{margin-bottom:10px}\n\n\/* PART 5 &#8212; cloze passage *\/\n.cloze-passage{\n  background:#fff;border:1px solid var(--border);border-radius:18px;padding:22px 26px;\n  font-size:16px;line-height:1.8;color:var(--text);box-shadow:var(--sh-card);margin-bottom:24px;\n}\n.cloze-passage h3{font-family:'Fraunces',serif;font-size:24px;text-align:center;color:var(--accent-2);margin-bottom:14px}\n\n\/* PART 6 &#8212; single word with first letter *\/\n.word-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}\n.first-letter{font-weight:700;color:var(--accent-1);font-size:18px;font-family:'Fraunces',serif}\n.dashes{color:var(--muted);letter-spacing:6px;font-weight:600}\n\n\/* PART 8 &#8212; form *\/\n.form-card{background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:22px;margin-top:18px;max-width:560px}\n.form-card h4{font-family:'Fraunces',serif;font-size:20px;text-align:center;color:var(--accent-2);margin-bottom:6px;border-bottom:2px solid var(--accent-1);padding-bottom:8px;display:inline-block;width:100%}\n.form-row{display:flex;gap:12px;align-items:center;margin-top:14px;flex-wrap:wrap}\n.form-row label{flex:0 0 200px;font-weight:600;color:var(--text);font-size:14.5px}\n.form-row .input-blank{flex:1;min-width:200px;text-align:left;font-size:14.5px}\n\n\/* PART 9 &#8212; writing *\/\n.writing-card{background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:22px;margin-top:18px}\n.prompt-box{background:var(--light-1);border-left:4px solid var(--accent-1);padding:14px 18px;border-radius:0 12px 12px 0;margin-bottom:18px;font-size:15px;line-height:1.6}\n.prompt-box ul{margin:10px 0 4px 22px}\n.prompt-box li{margin-bottom:4px}\n.writing-area{width:100%;min-height:160px;padding:14px;font-family:inherit;font-size:15px;line-height:1.55;border:2px solid var(--border);border-radius:12px;background:#FAFBFC;color:var(--text);outline:none;resize:vertical;transition:border-color .2s ease}\n.writing-area:focus{border-color:var(--accent-1);background:#fff}\n.wc-counter{display:flex;justify-content:space-between;margin-top:8px;font-size:13px;color:var(--muted);font-weight:600}\n.wc-counter.ok{color:var(--green)}\n.wc-counter.over{color:var(--red)}\n.sample-toggle{margin-top:14px;display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:999px;background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;font-weight:700;font-size:13.5px;border:none;cursor:pointer}\n.sample-box{display:none;margin-top:14px;padding:14px 18px;background:#FEF3C7;border-left:4px solid var(--gold);border-radius:0 12px 12px 0;font-size:14.5px;line-height:1.6}\n.sample-box.show{display:block}\n.sample-box h5{font-family:'Fraunces',serif;font-size:16px;margin-bottom:8px;color:#92400E}\n\n\/* RESULTS BANNER *\/\n.results-banner{\n  display:none;margin:32px auto;padding:30px;border-radius:22px;\n  background:linear-gradient(135deg,#FB923C,#F43F5E);color:#fff;text-align:center;max-width:720px;\n  box-shadow:0 16px 50px rgba(249,115,22,.3);\n}\n.results-banner.show{display:block}\n.results-banner h3{font-size:30px;font-family:'Fraunces',serif;margin-bottom:10px}\n.results-banner .score-big{font-size:64px;font-weight:800;line-height:1;margin:14px 0;font-family:'Fraunces',serif}\n.results-banner p{opacity:.95;font-size:15px}\n\n\/* FOOTER *\/\n.footer{background:var(--dark-1);color:#9CA3AF;padding:36px 0;text-align:center;font-size:13.5px}\n.footer a{color:var(--gold);font-weight:600}\n\n\/* MOBILE *\/\n@media (max-width:820px){\n  .nav{display:none}\n  .hamburger{display:flex}\n  .hero{padding:110px 0 50px}\n  .part-head{flex-direction:column;gap:12px}\n  .part-num{width:50px;height:50px;font-size:22px}\n  .notices-grid{grid-template-columns:repeat(2,1fr)}\n  .form-row label{flex:1 1 100%}\n  .form-row .input-blank{width:100%}\n  .sb-inner{gap:10px}\n  .sb-prog{order:3;flex:1 1 100%}\n}\n\n\/* mobile drawer *\/\n.drawer{position:fixed;inset:0;background:rgba(15,23,42,.65);z-index:200;display:none;align-items:flex-start;justify-content:flex-end}\n.drawer.open{display:flex}\n.drawer-panel{width:280px;background:#fff;height:100%;padding:24px;display:flex;flex-direction:column;gap:8px}\n.drawer-panel a{padding:12px 14px;border-radius:10px;font-weight:600;color:var(--text)}\n.drawer-panel a:hover{background:var(--light-1)}\n.drawer-close{align-self:flex-end;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--muted)}\n<\/style>\n\n<!-- HEADER -->\n<header class=\"header\" id=\"hdr\">\n  <div class=\"header-inner\">\n    <a href=\"https:\/\/allenglish4u.com\" class=\"brand\">\n      <img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/04\/Transparent-background-MacBook-Pro-cua-Hang.png\" alt=\"AE4U\">\n      <span class=\"brand-name\">All English 4U<\/span>\n    <\/a>\n    <nav class=\"nav\">\n      <a href=\"https:\/\/allenglish4u.com\/grammar\/\">Grammar<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/ielts\/\">IELTS<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/toefl\/\">TOEFL<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/cambridge\/\" class=\"active\">Cambridge<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/celpip\/\">CELPIP<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/dictation\/\">Dictation<\/a>\n      <\/nav>\n    <div class=\"header-right\">\n      <a href=\"https:\/\/allenglish4u.com\/cambridge\/\" class=\"btn-back\">\n        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\"><path d=\"M19 12H5M11 18l-6-6 6-6\"\/><\/svg>\n        Back\n      <\/a>\n      <button class=\"hamburger\" id=\"hamb\" aria-label=\"Menu\">\n        <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\"><path d=\"M3 6h18M3 12h18M3 18h18\"\/><\/svg>\n      <\/button>\n    <\/div>\n  <\/div>\n<\/header>\n\n<div class=\"drawer\" id=\"drawer\">\n  <div class=\"drawer-panel\">\n    <button class=\"drawer-close\" id=\"drawerClose\" aria-label=\"Close\">\n      <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\"><path d=\"M18 6L6 18M6 6l12 12\"\/><\/svg>\n    <\/button>\n    <a href=\"https:\/\/allenglish4u.com\/grammar\/\">Grammar<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/ielts\/\">IELTS<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/toefl\/\">TOEFL<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/cambridge\/\">Cambridge<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/celpip\/\">CELPIP<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/dictation\/\">Dictation<\/a>\n    <\/div>\n<\/div>\n\n<!-- HERO -->\n<section class=\"hero\">\n  <div class=\"wrap\">\n    <span class=\"kicker\">Cambridge English &#183; Key (KET)<\/span>\n    <h1 class=\"serif\">KET 1 &#8212; Test 1<br><span>Reading &amp; Writing<\/span><\/h1>\n    <p class=\"sub\">Practise the full A2 Key Reading &amp; Writing paper &#8212; 9 parts, 56 questions, instant auto-grading. Test yourself like the real exam, then check answers and learn from instant feedback.<\/p>\n    <div class=\"hero-meta\">\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>1 hour 10 minutes<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>9 Parts<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>55 auto-graded<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>+ Writing prompt<\/span>\n    <\/div>\n    <div class=\"cta-row\">\n      <a href=\"#part1\" class=\"btn-primary\">\n        Start Test\n        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>\n      <\/a>\n      <a href=\"https:\/\/allenglish4u.com\/cambridge\/\" class=\"btn-ghost\">All Cambridge Tests<\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- SCORE BAR -->\n<div class=\"score-bar\" id=\"scoreBar\">\n  <div class=\"wrap sb-inner\">\n    <div class=\"sb-score\">Score <b><span id=\"scoreNow\">0<\/span>\/55<\/b><\/div>\n    <div class=\"sb-prog\">\n      <div class=\"sb-prog-bar\"><div class=\"sb-prog-fill\" id=\"progFill\"><\/div><\/div>\n      <div class=\"sb-prog-label\"><span id=\"answeredCount\">0<\/span> of 55 answered<\/div>\n    <\/div>\n    <button class=\"btn-submit\" id=\"submitBtn\">\n      <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg>\n      Submit &amp; Grade\n    <\/button>\n    <button class=\"btn-reset\" id=\"resetBtn\">Reset<\/button>\n  <\/div>\n<\/div>\n\n<!-- ============== PART 1 ============== -->\n<section class=\"part-section\" id=\"part1\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">1<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 1&#8211;5<\/span>\n        <h2 class=\"serif\">Match the notice<\/h2>\n        <p>Which notice (A&#8211;H) says this (1&#8211;5)? For questions 1&#8211;5, choose the correct letter A&#8211;H.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"notices-grid\">\n      <div class=\"notice\"><span class=\"notice-letter\">A<\/span>Adults &#163;2.50<br>Under 12s FREE<\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">B<\/span>Shoes repaired<br>while you wait<\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">C<\/span>MIND YOUR HEAD<\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">D<\/span>Open 24 hours a day<\/div>\n      <div class=\"notice\" style=\"opacity:.55\"><span class=\"notice-letter\">E<\/span>INFORMATION<br><sub style=\"font-size:10px;color:var(--muted);font-style:italic;font-weight:600\">(example)<\/sub><\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">F<\/span>Police Notice<br>Road Closed<\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">G<\/span>Open daily 10&#8211;6<br>(except Mondays)<\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">H<\/span>WAITING ROOM<\/div>\n    <\/div>\n\n    <div class=\"q-list\" id=\"part1List\">\n      <!-- Q1-5 -->\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 2 ============== -->\n<section class=\"part-section\" id=\"part2\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">2<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 6&#8211;10<\/span>\n        <h2 class=\"serif\">Nina&#8217;s birthday<\/h2>\n        <p>Read the sentences (6&#8211;10) about Nina&#8217;s birthday. Choose the best word (A, B or C) for each space.<\/p>\n      <\/div>\n    <\/div>\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px 18px;margin-bottom:18px;font-size:14.5px;color:var(--muted)\">\n      <b style=\"color:var(--accent-1)\">Example:<\/b> Nina <u>woke<\/u> up early that morning because it was her birthday. <b>(Answer: B)<\/b>\n    <\/div>\n    <div class=\"q-list\" id=\"part2List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 3a ============== -->\n<section class=\"part-section\" id=\"part3a\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">3<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 11&#8211;15<\/span>\n        <h2 class=\"serif\">Complete the conversations<\/h2>\n        <p>Complete the five conversations. Choose the correct answer (A, B or C).<\/p>\n      <\/div>\n    <\/div>\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px 18px;margin-bottom:18px;font-size:14.5px;color:var(--muted)\">\n      <b style=\"color:var(--accent-1)\">Example:<\/b> How are you? &#8212; <b>C<\/b> I&#8217;m fine.\n    <\/div>\n    <div class=\"q-list\" id=\"part3aList\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 3b ============== -->\n<section class=\"part-section\" id=\"part3b\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">3<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 16&#8211;20<\/span>\n        <h2 class=\"serif\">Conversation at a garage<\/h2>\n        <p>Complete the conversation between the woman and the mechanic. What does the woman say to the mechanic? For each blank, choose the correct letter A&#8211;H.<\/p>\n      <\/div>\n    <\/div>\n\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px 22px;margin-bottom:18px;font-size:14.5px;line-height:1.7\">\n      <p><b>Mechanic:<\/b> Good morning, Madam. What&#8217;s the problem?<\/p>\n      <p><b>Woman:<\/b> <span style=\"color:var(--accent-1);font-weight:700\">(Example: B)<\/span><\/p>\n      <p><b>Mechanic:<\/b> What do you mean?<\/p>\n      <p><b>Woman:<\/b> <select class=\"q-select\" data-qid=\"16\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Mechanic:<\/b> I see. We can probably repair that easily. Can you leave the car now?<\/p>\n      <p><b>Woman:<\/b> <select class=\"q-select\" data-qid=\"17\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Mechanic:<\/b> I&#8217;m sorry. We&#8217;re completely full on Saturday.<\/p>\n      <p><b>Woman:<\/b> <select class=\"q-select\" data-qid=\"18\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Mechanic:<\/b> Yes, all right. Could you come in the morning?<\/p>\n      <p><b>Woman:<\/b> <select class=\"q-select\" data-qid=\"19\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Mechanic:<\/b> OK.<\/p>\n      <p><b>Woman:<\/b> <select class=\"q-select\" data-qid=\"20\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>G<\/option><option>H<\/option><\/select><\/p>\n      <p><b>Mechanic:<\/b> I&#8217;m not sure, but probably about &#163;30.<\/p>\n      <p><b>Woman:<\/b> That&#8217;s fine. I&#8217;ll see you on Monday.<\/p>\n    <\/div>\n\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px 22px;font-size:14px;line-height:1.85\">\n      <b style=\"color:var(--accent-1);display:block;margin-bottom:6px\">Choices:<\/b>\n      <div><b>A<\/b> I&#8217;d prefer the afternoon.<\/div>\n      <div style=\"opacity:.5\"><b>B<\/b> I&#8217;m not sure. The brakes aren&#8217;t working very well. <i>(example)<\/i><\/div>\n      <div><b>C<\/b> Oh! One other thing, how much will it cost?<\/div>\n      <div><b>D<\/b> The engine is hard to start in the morning.<\/div>\n      <div><b>E<\/b> I work on Mondays.<\/div>\n      <div><b>F<\/b> I&#8217;m afraid I need it today. How about the weekend?<\/div>\n      <div><b>G<\/b> When I brake, the car goes to the left.<\/div>\n      <div><b>H<\/b> Oh. Could you do it on Monday?<\/div>\n    <\/div>\n\n    <div id=\"part3bFeedback\" style=\"margin-top:14px\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 4 ============== -->\n<section class=\"part-section\" id=\"part4\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">4<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 21&#8211;27<\/span>\n        <h2 class=\"serif\">New books this month<\/h2>\n        <p>Read the information about three books and then answer the questions. For each question (21&#8211;27), mark A (<i>The Long Night<\/i>), B (<i>Hard Work<\/i>) or C (<i>Hospital or Cinema?<\/i>).<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"passage\" style=\"padding:0\">\n      <h3 style=\"padding:24px 26px 0\">NEW BOOKS THIS MONTH<\/h3>\n      <div style=\"display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;margin-top:12px;border-top:1px solid var(--border)\">\n        <div style=\"padding:18px 20px;border-right:1px solid var(--border)\">\n          <h4 style=\"font-family:'Fraunces',serif;color:var(--accent-2);font-size:17px;margin-bottom:6px\">A &#183; The Long Night<\/h4>\n          <p style=\"font-size:14.5px;line-height:1.6\">This is David Reilly&#8217;s first book. David became a writer after teaching English for several years. Maha is a nurse in northern Australia, where she works in a small hospital. One day a baby is so ill that Maha has to drive at night to get her to the nearest big city. They have a lot of problems getting there and &#8230;<\/p>\n        <\/div>\n        <div style=\"padding:18px 20px;border-right:1px solid var(--border)\">\n          <h4 style=\"font-family:'Fraunces',serif;color:var(--accent-2);font-size:17px;margin-bottom:6px\">B &#183; Hard Work<\/h4>\n          <p style=\"font-size:14.5px;line-height:1.6\">This exciting story is Joanna Jones&#8217;s twentieth. <i>Hard Work<\/i> is about Sombat, who works with his father, a carpenter, in Thailand. They work long, hard hours making tables and chairs, but they do not have any money. One day a man dressed all in black buys the most beautiful table in the shop &#8230;<\/p>\n        <\/div>\n        <div style=\"padding:18px 20px\">\n          <h4 style=\"font-family:'Fraunces',serif;color:var(--accent-2);font-size:17px;margin-bottom:6px\">C &#183; Hospital or Cinema?<\/h4>\n          <p style=\"font-size:14.5px;line-height:1.6\">Marcie Jacome, who studies English in London, wrote this story this year. This is a young Brazilian woman whose dream is to become a doctor. She goes to London to study English and medicine but one day she meets a man who asks her to become a film star &#8230; What will Tina do?<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:12px 18px;margin-bottom:18px;font-size:14px;color:var(--muted)\">\n      <b style=\"color:var(--accent-1)\">Example (0):<\/b> Which book is about somebody who works with doctors? &#8594; <b>A (The Long Night)<\/b>\n    <\/div>\n\n    <div class=\"q-list\" id=\"part4List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 5 ============== -->\n<section class=\"part-section\" id=\"part5\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">5<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 28&#8211;35<\/span>\n        <h2 class=\"serif\">Schnauzer Dogs &#8212; gap fill<\/h2>\n        <p>Read the article about Schnauzer dogs. Choose the best word (A, B or C) for each space.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"cloze-passage\">\n      <h3>SCHNAUZER DOGS<\/h3>\n      <p>There are three sizes <u><b style=\"color:var(--accent-1)\">of<\/b><\/u> Schnauzer dog.<\/p>\n      <p>The two smaller sizes first <span data-q=\"28\" class=\"cloze-blank\">[28]<\/span> to England over 50 years ago, but the Giant Schnauzer has not <span data-q=\"29\" class=\"cloze-blank\">[29]<\/span> here very long. The name <i>Giant<\/i> is a good one because the dogs are 65 to 67.5 cm high.<\/p>\n      <p>All the dogs <span data-q=\"30\" class=\"cloze-blank\">[30]<\/span> long hair, which should be cut quite often. Most smaller Schnauzers <span data-q=\"31\" class=\"cloze-blank\">[31]<\/span> grey in colour, <span data-q=\"32\" class=\"cloze-blank\">[32]<\/span> the Giant Schnauzer is usually black.<\/p>\n      <p>Schnauzers come from Germany, where farmers use the dogs to help <span data-q=\"33\" class=\"cloze-blank\">[33]<\/span> with their sheep, and they are also used <span data-q=\"34\" class=\"cloze-blank\">[34]<\/span> the police, because Schnauzer dogs are very intelligent.<\/p>\n      <p>A Schnauzer makes <span data-q=\"35\" class=\"cloze-blank\">[35]<\/span> nice family dog. It is friendly and very good with young children.<\/p>\n    <\/div>\n\n    <div class=\"q-list\" id=\"part5List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 6 ============== -->\n<section class=\"part-section\" id=\"part6\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">6<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 36&#8211;40<\/span>\n        <h2 class=\"serif\">Holidays and travel &#8212; spell the word<\/h2>\n        <p>Read the descriptions. The first letter is given. Type the word. <b>Example (0):<\/b> You can take photos of your holiday with this. &#8594; <b>camera<\/b><\/p>\n      <\/div>\n    <\/div>\n    <div class=\"q-list\" id=\"part6List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 7 ============== -->\n<section class=\"part-section\" id=\"part7\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">7<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 41&#8211;50<\/span>\n        <h2 class=\"serif\">Complete the letter<\/h2>\n        <p>Type <b>ONE word<\/b> for each space. (Example: <i>here<\/i>)<\/p>\n      <\/div>\n    <\/div>\n\n    <div style=\"background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:22px;font-size:15px;line-height:1.8;font-family:'Courier New',monospace\">\n      <p style=\"text-align:right;font-style:normal\">28 Long Road<br>Brighton<br>22nd March<\/p>\n      <p>Dear Pat,<\/p>\n      <p>I arrived (Example: <u>here<\/u>) three weeks ago. I&#8217;m studying at a language school <input class=\"input-blank\" data-q=\"41\" type=\"text\"> Brighton. The students come <input class=\"input-blank\" data-q=\"42\" type=\"text\"> many different countries and I <input class=\"input-blank\" data-q=\"43\" type=\"text\"> made a lot of new friends.<\/p>\n      <p>There <input class=\"input-blank\" data-q=\"44\" type=\"text\"> classes for five hours every day. I like <input class=\"input-blank\" data-q=\"45\" type=\"text\"> teacher very much. <input class=\"input-blank\" data-q=\"46\" type=\"text\"> name is John and he helps me <input class=\"input-blank\" data-q=\"47\" type=\"text\"> I make a mistake.<\/p>\n      <p>I want <input class=\"input-blank\" data-q=\"48\" type=\"text\"> visit London next weekend because I <input class=\"input-blank\" data-q=\"49\" type=\"text\"> going back to my country on Monday. Can I see you there? Please write to <input class=\"input-blank\" data-q=\"50\" type=\"text\"> soon.<\/p>\n      <p>With best wishes from<\/p>\n      <p><i>Maria<\/i><\/p>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 8 ============== -->\n<section class=\"part-section\" id=\"part8\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">8<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 51&#8211;55<\/span>\n        <h2 class=\"serif\">Film Club notes<\/h2>\n        <p>Read the notice for the Hartland College Film Club and the note from Sheila. Complete Andy&#8217;s notes.<\/p>\n      <\/div>\n    <\/div>\n\n    <div style=\"display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px\">\n      <div style=\"background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:18px;font-size:14px;line-height:1.7\">\n        <div style=\"background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;padding:10px 14px;border-radius:10px;text-align:center;font-weight:800;letter-spacing:.03em;margin-bottom:12px\">HARTLAND COLLEGE FILM CLUB<\/div>\n        <p style=\"text-align:center;font-weight:700;font-size:15px;margin-bottom:4px\">Every Tuesday 8 p.m.<\/p>\n        <p style=\"text-align:center;font-weight:600;color:var(--muted);margin-bottom:14px\">In the DRAMA STUDIO<\/p>\n        <p style=\"margin-bottom:4px\"><b>2 April<\/b> &nbsp;&nbsp; <i>City Lights<\/i><\/p>\n        <p style=\"margin-bottom:10px\"><b>9 April<\/b> &nbsp;&nbsp; <i>The Last King<\/i><\/p>\n        <p style=\"margin-bottom:0\"><b>Tickets:<\/b> Students &#163;3.50 &#183; Visitors &#163;5.00<\/p>\n      <\/div>\n      <div style=\"background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:18px;font-size:14px;line-height:1.7\">\n        <p style=\"text-align:right;color:var(--muted);font-style:italic;margin-bottom:8px\">2 April<\/p>\n        <p style=\"margin-bottom:8px\">Andy,<\/p>\n        <p style=\"margin-bottom:8px\">Let&#8217;s go to the Film Club next week. Can you get the tickets from the college office? Remember we pay the cheaper price. I must study at home for our exam on 8 April. Thanks!<\/p>\n        <p style=\"margin-bottom:8px\">See you next Tuesday in the Coffee Bar at 7.45, before it starts!<\/p>\n        <p style=\"font-style:italic\">Sheila<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"form-card\">\n      <h4>Andy&#8217;s Notes &#8212; Film Club with Sheila<\/h4>\n      <div class=\"form-row\"><label>Day:<\/label><span style=\"font-weight:600;color:var(--accent-2);font-style:italic\">Tuesday<\/span><\/div>\n      <div class=\"form-row\"><label>Date:<\/label><input class=\"input-blank\" data-q=\"51\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>Name of film:<\/label><input class=\"input-blank\" data-q=\"52\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>Starting time:<\/label><input class=\"input-blank\" data-q=\"53\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>Ticket price:<\/label><input class=\"input-blank\" data-q=\"54\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>Meet Sheila in:<\/label><input class=\"input-blank\" data-q=\"55\" type=\"text\"><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 9 &#8212; WRITING ============== -->\n<section class=\"part-section\" id=\"part9\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">9<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Question 56<\/span>\n        <h2 class=\"serif\">Writing &#8212; postcard to Richard<\/h2>\n        <p>This part is <b>not auto-graded<\/b>. Write your postcard, then click <i>Show Sample Answer<\/i> to compare.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"writing-card\">\n      <div class=\"prompt-box\">\n        <b>Read this note from your friend Richard. Write a postcard to tell him what he wants to know.<\/b>\n        <div style=\"background:#fff;border:1px dashed var(--accent-1);border-radius:10px;padding:12px 14px;margin:12px 0;font-style:italic;line-height:1.55\">\n          It&#8217;s great that you&#8217;re coming to see me in England. Tell me when you are coming, how long you want to stay and what you want to do.<br>\n          Write soon!<br>\n          Richard\n        <\/div>\n        Your postcard must include:\n        <ul>\n          <li><b>day\/date<\/b> of arrival<\/li>\n          <li><b>length<\/b> of visit<\/li>\n          <li><b>suggested activity<\/b><\/li>\n        <\/ul>\n        Write 25&#8211;35 words.\n      <\/div>\n      <textarea class=\"writing-area\" id=\"writingArea\" placeholder=\"Type your note here...\"><\/textarea>\n      <div class=\"wc-counter\" id=\"wcCounter\">0 words &#183; target 25&#8211;35<\/div>\n      <button class=\"sample-toggle\" id=\"sampleToggle\">\n        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg>\n        Show Sample Answer\n      <\/button>\n      <div class=\"sample-box\" id=\"sampleBox\">\n        <h5>Sample answer (32 words)<\/h5>\n        <p>Hi Richard,<\/p>\n        <p>I&#8217;m so excited to visit! I&#8217;m arriving on Saturday 15th August and I&#8217;d like to stay for two weeks. Can we go sightseeing in London together? See you soon!<\/p>\n        <p>Maria<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- RESULTS BANNER -->\n<div class=\"wrap\">\n  <div class=\"results-banner\" id=\"resultsBanner\">\n    <h3>Your KET 1 Test 1 &#8212; Reading &amp; Writing score<\/h3>\n    <div class=\"score-big\"><span id=\"finalScore\">0<\/span>\/55<\/div>\n    <p id=\"resultsMsg\">Great effort! Scroll up to review your answers &#8212; correct ones are highlighted in green and wrong ones in red.<\/p>\n    <div style=\"margin-top:18px\"><button class=\"btn-primary\" onclick=\"window.scrollTo({top:0,behavior:'smooth'})\" style=\"background:#fff;color:var(--accent-2)\">Back to top<\/button><\/div>\n  <\/div>\n<\/div>\n\n<!-- FOOTER -->\n<footer class=\"footer\">\n  <div class=\"wrap\">\n    <p>&#169; 2026 All English 4U &#183; <a href=\"https:\/\/allenglish4u.com\/cambridge\/\">All Cambridge Tests<\/a> &#183; <a href=\"https:\/\/allenglish4u.com\/contact\/\">Contact<\/a><\/p>\n  <\/div>\n<\/footer>\n\n<script>\n(function(){\n\/\/ ===== Header scroll =====\nvar hdr=document.getElementById('hdr');\nvar setSolid=function(){if(window.scrollY>40)hdr.classList.add('solid');else hdr.classList.remove('solid')};\nwindow.addEventListener('scroll',setSolid,{passive:true});setSolid();\n\n\/\/ drawer\nvar hamb=document.getElementById('hamb'),drawer=document.getElementById('drawer'),dClose=document.getElementById('drawerClose');\nif(hamb)hamb.addEventListener('click',function(){drawer.classList.add('open')});\nif(dClose)dClose.addEventListener('click',function(){drawer.classList.remove('open')});\nif(drawer)drawer.addEventListener('click',function(e){if(e.target===drawer)drawer.classList.remove('open')});\n\n\/\/ ===== DATA =====\n\/\/ MCQ questions: each entry = {n, text, opts:[{l,t}], ans}\nvar P1 = [\n  {n:1,text:\"You can't drive this way.\",opts:'ABCDFGH',ans:'F'},\n  {n:2,text:'Children do not have to pay.',opts:'ABCDFGH',ans:'A'},\n  {n:3,text:'You can shop here six days a week.',opts:'ABCDFGH',ans:'G'},\n  {n:4,text:'Be careful when you stand up.',opts:'ABCDFGH',ans:'C'},\n  {n:5,text:'We work quickly.',opts:'ABCDFGH',ans:'B'},\n];\nvar P2 = [\n  {n:6,text:'Nina was very _____ because she got lots of presents.',opts:[['A','interesting'],['B','lovely'],['C','happy']],ans:'C'},\n  {n:7,text:'She _____ some friends to her house for a party.',opts:[['A','decided'],['B','agreed'],['C','invited']],ans:'C'},\n  {n:8,text:\"Her mother made a big chocolate _____ with 'Happy Birthday' on the top.\",opts:[['A','meal'],['B','cake'],['C','dish']],ans:'B'},\n  {n:9,text:'Nina and her friends had a great time, singing and dancing and _____ to their favourite music.',opts:[['A','listening'],['B','hearing'],['C','looking']],ans:'A'},\n  {n:10,text:'When they had to go, everybody _____ Nina and her mother for the party.',opts:[['A','said'],['B','thanked'],['C','told']],ans:'B'},\n];\nvar P3a = [\n  {n:11,text:\"It's time for lunch.\",opts:[['A','Oh good!'],['B','One hour.'],['C','Half past twelve.']],ans:'A'},\n  {n:12,text:'Would you like a drink?',opts:[['A',\"I don't like coffee.\"],['B','I prefer tea.'],['C','Coffee, please.']],ans:'C'},\n  {n:13,text:'How much was your new shirt?',opts:[['A',\"It's a red shirt.\"],['B','It was very cheap.'],['C','It was in a shop.']],ans:'B'},\n  {n:14,text:\"I'm very sorry.\",opts:[['A',\"I'm afraid so.\"],['B','I think so.'],['C',\"That's all right.\"]],ans:'C'},\n  {n:15,text:'Do you speak English?',opts:[['A',\"No, I'm not.\"],['B','Only a little.'],['C','Yes, very much.']],ans:'B'},\n];\nvar P3bAns = {16:'G',17:'F',18:'H',19:'A',20:'C'};\nvar P4 = [\n  {n:21,text:'Which book is by somebody who has written a lot of books?',opts:[['A','The Long Night'],['B','Hard Work'],['C','Hospital or Cinema?']],ans:'B'},\n  {n:22,text:'Which book is about somebody who is very poor?',opts:[['A','The Long Night'],['B','Hard Work'],['C','Hospital or Cinema?']],ans:'B'},\n  {n:23,text:'Which book is about somebody who would like to work in a hospital?',opts:[['A','The Long Night'],['B','Hard Work'],['C','Hospital or Cinema?']],ans:'C'},\n  {n:24,text:'Which book is by somebody who worked in a school?',opts:[['A','The Long Night'],['B','Hard Work'],['C','Hospital or Cinema?']],ans:'A'},\n  {n:25,text:'Which book is about a difficult journey?',opts:[['A','The Long Night'],['B','Hard Work'],['C','Hospital or Cinema?']],ans:'A'},\n  {n:26,text:'Which book is about a man and his son?',opts:[['A','The Long Night'],['B','Hard Work'],['C','Hospital or Cinema?']],ans:'B'},\n  {n:27,text:'Which book is by a student?',opts:[['A','The Long Night'],['B','Hard Work'],['C','Hospital or Cinema?']],ans:'C'},\n];\nvar P5 = [\n  {n:28,word:'came',opts:[['A','came'],['B','come'],['C','comes']],ans:'A'},\n  {n:29,word:'been',opts:[['A','being'],['B','be'],['C','been']],ans:'C'},\n  {n:30,word:'have',opts:[['A','has'],['B','have'],['C','had']],ans:'B'},\n  {n:31,word:'are',opts:[['A','were'],['B','is'],['C','are']],ans:'C'},\n  {n:32,word:'but',opts:[['A','or'],['B','if'],['C','but']],ans:'C'},\n  {n:33,word:'them',opts:[['A','them'],['B','him'],['C','us']],ans:'A'},\n  {n:34,word:'by',opts:[['A','from'],['B','by'],['C','to']],ans:'B'},\n  {n:35,word:'a',opts:[['A','the'],['B','a'],['C','any']],ans:'B'},\n];\nvar P6 = [\n  {n:36,text:'You need this to travel to some foreign countries.',first:'p',ans:'passport'},\n  {n:37,text:'You need to buy this before you get on a plane.',first:'t',ans:'ticket'},\n  {n:38,text:'This is where you go to get a plane.',first:'a',ans:'airport'},\n  {n:39,text:'You put your clothes in this when you travel.',first:'s',ans:'suitcase'},\n  {n:40,text:'This person likes visiting different places.',first:'t',ans:'tourist'},\n];\n\/\/ Part 7 \\u2014 letter cloze: accepted answers\nvar P7Ans = {\n  41:['in','near'],\n  42:['from'],\n  43:['have',\"'ve\",'ve'],\n  44:['are'],\n  45:['my','the','one','our'],\n  46:['his'],\n  47:['if','when'],\n  48:['to'],\n  49:['am',\"'m\",'m'],\n  50:['me'],\n};\n\/\/ Part 8\nvar P8Ans = {\n  51:['9 april','9th april','april 9','april 9th','9\/4','9\/04','9th'],\n  52:['the last king','last king'],\n  53:['8 p.m.','8pm','8 pm','8:00 p.m.','8.00 p.m.','8 o\\'clock','20:00','8 p.m','20.00'],\n  54:['\\u00A33.50','3.50','\\u00A33.50.','\\u00A33.50p','3.50 pounds','three pounds fifty','\\u00A3 3.50'],\n  55:['coffee bar','the coffee bar']\n};\n\n\/\/ ===== Rendering =====\nfunction renderMCQ(listEl, data){\n  data.forEach(function(q){\n    var div=document.createElement('div');\n    div.className='q-item'; div.dataset.qid=q.n;\n    var optsHTML='';\n    if(Array.isArray(q.opts)){\n      q.opts.forEach(function(o){\n        optsHTML += '<label class=\"opt\" data-letter=\"'+o[0]+'\"><input type=\"radio\" name=\"q'+q.n+'\" value=\"'+o[0]+'\"><span class=\"opt-letter\">'+o[0]+'<\/span> '+escapeHtml(o[1])+'<\/label>';\n      });\n    } else {\n      \/\/ string of letters (P1)\n      for(var i=0;i<q.opts.length;i++){\n        var L=q.opts[i];\n        optsHTML += '<label class=\"opt\" data-letter=\"'+L+'\"><input type=\"radio\" name=\"q'+q.n+'\" value=\"'+L+'\"><span class=\"opt-letter\">'+L+'<\/span><\/label>';\n      }\n    }\n    div.innerHTML = '<div class=\"q-text\"><b class=\"qn\">'+q.n+'.<\/b><span>'+escapeHtml(q.text)+'<\/span><\/div>'+\n                    '<div class=\"q-opts\">'+optsHTML+'<\/div>'+\n                    '<div class=\"feedback\"><\/div>';\n    listEl.appendChild(div);\n  });\n}\nfunction escapeHtml(s){return String(s).replace(\/[&<>\"']\/g,function(c){return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c]})}\n\nrenderMCQ(document.getElementById('part1List'),P1);\nrenderMCQ(document.getElementById('part2List'),P2);\nrenderMCQ(document.getElementById('part3aList'),P3a);\nrenderMCQ(document.getElementById('part4List'),P4);\n\n\/\/ Part 5 \\u2014 render as MCQ list under the passage\nrenderMCQ(document.getElementById('part5List'),P5.map(function(q){return {n:q.n,text:'Question '+q.n+' \\u2014 choose the best word for the gap.',opts:q.opts,ans:q.ans}}));\n\n\/\/ Part 6 \\u2014 first-letter + dashes + input\n(function(){\n  var list=document.getElementById('part6List');\n  P6.forEach(function(q){\n    var dashCount = q.ans.length - 1;\n    var dashes = new Array(dashCount).fill('_').join(' ');\n    var div=document.createElement('div'); div.className='q-item'; div.dataset.qid=q.n;\n    div.innerHTML='<div class=\"q-text\"><b class=\"qn\">'+q.n+'.<\/b><span>'+escapeHtml(q.text)+'<\/span><\/div>'+\n                  '<div class=\"word-row\"><span class=\"first-letter\">'+q.first+'<\/span><input type=\"text\" class=\"input-blank\" data-q=\"'+q.n+'\" placeholder=\"'+dashes+'\" style=\"min-width:200px\"><\/div>'+\n                  '<div class=\"feedback\"><\/div>';\n    list.appendChild(div);\n  });\n})();\n\n\/\/ ===== Wire option clicks =====\ndocument.querySelectorAll('.opt').forEach(function(opt){\n  opt.addEventListener('click',function(e){\n    e.preventDefault();\n    var input=opt.querySelector('input');\n    var group=opt.parentElement;\n    group.querySelectorAll('.opt').forEach(function(o){o.classList.remove('selected')});\n    opt.classList.add('selected');\n    input.checked=true;\n    updateProgress();\n  });\n});\n\n\/\/ inputs\ndocument.querySelectorAll('.input-blank,.q-select').forEach(function(el){\n  el.addEventListener('input',updateProgress);\n  el.addEventListener('change',updateProgress);\n});\n\n\/\/ ===== Submit & Grade =====\nfunction getMcqAns(qid){\n  var sel=document.querySelector('input[name=\"q'+qid+'\"]:checked');\n  return sel?sel.value:null;\n}\nfunction getInputAns(qid){\n  var el=document.querySelector('.input-blank[data-q=\"'+qid+'\"]');\n  return el?el.value.trim().toLowerCase():'';\n}\nfunction getSelectAns(qid){\n  var el=document.querySelector('.q-select[data-qid=\"'+qid+'\"]');\n  return el?el.value:'';\n}\nfunction totalQs(){return 55}\n\nfunction answeredCount(){\n  var n=0;\n  \/\/ MCQ: P1(1-5) P2(6-10) P3a(11-15) P4(21-27) P5(28-35)\n  [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35].forEach(function(q){if(getMcqAns(q))n++});\n  [16,17,18,19,20].forEach(function(q){if(getSelectAns(q))n++});\n  \/\/ inputs\n  for(var i=36;i<=55;i++){if(getInputAns(i))n++}\n  return n;\n}\nfunction updateProgress(){\n  var a=answeredCount(), total=totalQs();\n  document.getElementById('answeredCount').textContent=a;\n  document.getElementById('progFill').style.width=(a\/total*100)+'%';\n}\n\ndocument.getElementById('submitBtn').addEventListener('click',function(){\n  var score=0;\n  \/\/ MCQ parts\n  var mcqParts=[P1,P2,P3a,P4,P5];\n  mcqParts.forEach(function(part){\n    part.forEach(function(q){\n      var v=getMcqAns(q.n), item=document.querySelector('.q-item[data-qid=\"'+q.n+'\"]');\n      if(!item)return;\n      item.classList.add('answered');\n      \/\/ mark correct\/incorrect opts\n      item.querySelectorAll('.opt').forEach(function(o){\n        var L=o.dataset.letter;\n        if(L===q.ans){o.classList.add('correct-opt')}\n        if(v===L)if(L!==q.ans){o.classList.add('wrong-opt')}\n      });\n      var fb=item.querySelector('.feedback');\n      if(v===q.ans){score++; item.classList.add('correct'); fb.textContent='\\u2714 Correct \\u2014 '+q.ans}\n      else{item.classList.add('wrong'); fb.textContent='\\u2718 Wrong \\u2014 correct answer: '+q.ans + (v?(' (you chose '+v+')'):' (no answer)')}\n    });\n  });\n  \/\/ Part 3b selects\n  var p3bFb=document.getElementById('part3bFeedback');\n  p3bFb.innerHTML='';\n  Object.keys(P3bAns).forEach(function(qid){\n    var v=getSelectAns(qid), correct=P3bAns[qid];\n    var el=document.querySelector('.q-select[data-qid=\"'+qid+'\"]');\n    if(el){el.style.borderColor=(v===correct?'#10B981':'#EF4444'); el.style.borderWidth='2px'; el.style.borderStyle='solid'}\n    var note=document.createElement('div');\n    note.style.cssText='padding:8px 12px;border-radius:8px;margin-top:6px;font-size:13.5px;font-weight:600;'+(v===correct?'background:rgba(16,185,129,.12);color:#065F46':'background:rgba(239,68,68,.10);color:#991B1B');\n    note.innerHTML='<b>Q'+qid+'<\/b>: '+(v===correct?'\\u2714 Correct ('+correct+')':'\\u2718 Wrong \\u2014 correct: '+correct+(v?', you chose '+v:', no answer'));\n    p3bFb.appendChild(note);\n    if(v===correct)score++;\n  });\n  \/\/ Part 6\n  P6.forEach(function(q){\n    var v=getInputAns(q.n), el=document.querySelector('.input-blank[data-q=\"'+q.n+'\"]'), item=document.querySelector('.q-item[data-qid=\"'+q.n+'\"]');\n    if(!el||!item)return;\n    item.classList.add('answered');\n    var ok=(v===q.ans.toLowerCase());\n    if(ok){score++; el.classList.add('correct'); item.classList.add('correct'); item.querySelector('.feedback').textContent='\\u2714 Correct'}\n    else{el.classList.add('wrong'); item.classList.add('wrong'); item.querySelector('.feedback').textContent='\\u2718 Wrong \\u2014 correct: '+q.ans}\n  });\n  \/\/ Part 7\n  Object.keys(P7Ans).forEach(function(qid){\n    var v=getInputAns(qid), el=document.querySelector('.input-blank[data-q=\"'+qid+'\"]'), accepted=P7Ans[qid];\n    if(!el)return;\n    var ok=accepted.indexOf(v)>=0;\n    if(ok){score++; el.classList.add('correct')} else {el.classList.add('wrong'); el.title='Correct: '+accepted.join(' \/ ')}\n  });\n  \/\/ Part 8\n  Object.keys(P8Ans).forEach(function(qid){\n    var v=getInputAns(qid), el=document.querySelector('.input-blank[data-q=\"'+qid+'\"]'), accepted=P8Ans[qid];\n    if(!el)return;\n    var ok=accepted.indexOf(v)>=0;\n    if(ok){score++; el.classList.add('correct')} else {el.classList.add('wrong'); el.title='Correct: '+accepted.join(' \/ ')}\n  });\n\n  document.getElementById('scoreNow').textContent=score;\n  document.getElementById('finalScore').textContent=score;\n  var pct=Math.round(score\/55*100);\n  var msg='';\n  if(pct>=85) msg='\\u{1F3C6} Excellent! You are well prepared for the real KET exam.';\n  else if(pct>=70) msg='\\u{1F44D} Good job! A few more tests and you will be ready.';\n  else if(pct>=50) msg='\\u{1F4DA} Keep practising \\u2014 review the wrong answers above.';\n  else msg='\\u{1F4AA} Start with the basics. Reread the passages and try again.';\n  document.getElementById('resultsMsg').textContent=msg;\n  document.getElementById('resultsBanner').classList.add('show');\n  setTimeout(function(){document.getElementById('resultsBanner').scrollIntoView({behavior:'smooth',block:'center'})},120);\n});\n\ndocument.getElementById('resetBtn').addEventListener('click',function(){\n  if(!confirm('Reset all answers?'))return;\n  location.reload();\n});\n\n\/\/ Writing word counter\nvar ta=document.getElementById('writingArea'),wc=document.getElementById('wcCounter');\nta.addEventListener('input',function(){\n  var w=ta.value.trim().split(\/\\s+\/).filter(Boolean).length;\n  wc.textContent=w+' words \\u00B7 target 25\\u201335';\n  wc.classList.remove('ok','over');\n  if(w>=25)if(w<=35)wc.classList.add('ok');\n  else if(w>35)wc.classList.add('over');\n});\ndocument.getElementById('sampleToggle').addEventListener('click',function(){\n  document.getElementById('sampleBox').classList.toggle('show');\n});\n\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>All English 4U Grammar IELTS TOEFL Cambridge CELPIP Dictation Back Grammar IELTS TOEFL Cambridge CELPIP Dictation Cambridge English &#183; Key (KET) KET 1 &#8212; Test 1Reading &amp; Writing Practise the full A2 Key Reading &amp; Writing paper &#8212; 9 parts, 56 questions, instant auto-grading. Test yourself like the real exam, then check answers and learn [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-with-title","meta":{"footnotes":""},"class_list":["post-1275","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/1275","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/comments?post=1275"}],"version-history":[{"count":2,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/1275\/revisions"}],"predecessor-version":[{"id":5962,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/1275\/revisions\/5962"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=1275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}