{"id":5532,"date":"2026-07-01T20:13:39","date_gmt":"2026-07-01T20:13:39","guid":{"rendered":"https:\/\/allenglish4u.com\/complete-ket-unit-12-rw\/"},"modified":"2026-07-05T02:43:08","modified_gmt":"2026-07-05T02:43:08","slug":"complete-ket-unit-12-rw","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/complete-ket-unit-12-rw\/","title":{"rendered":"Complete KET \u2014 Unit 12 \u00b7 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;--accent-2:#F43F5E;--gold:#F9C74F;--green:#10B981;--red:#EF4444;\n  --light-1:#FFF7ED;--light-2:#FFFBF5;--white:#FFFFFF;--text:#0F172A;--muted:#475569;--subtle:#64748B;\n  --border:#E2E8F0;--dark-1:#1B0F02;--dark-2:#2D1A06;--r-10:10px;--r-16:16px;--r-22:22px;\n  --sh-card:0 2px 8px rgba(0,0,0,.06);--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{font-family:'Plus Jakarta Sans',system-ui,sans-serif;color:var(--text);background:var(--light-2);-webkit-font-smoothing:antialiased;overflow-x:hidden;}\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 *\/\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{position:relative;min-height:360px;padding:120px 0 56px;background:linear-gradient(135deg,#FB923C 0%,#F43F5E 55%,#7C2D12 100%);color:#fff;overflow:hidden;}\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{position:sticky;top:72px;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:14px 0;}\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-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{flex-shrink:0;width:60px;height:60px;border-radius:18px;background:linear-gradient(135deg,var(--accent-1),var(--accent-2));color:#fff;display:grid;place-items:center;font-family:'Fraunces',serif;font-weight:700;font-size:24px;box-shadow:0 8px 22px rgba(249,115,22,.3);}\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\/* MESSAGE CARDS (Reading Part 1) *\/\n.msg-card{background:#F0F9FF;border:1px solid #BAE6FD;border-radius:14px;padding:12px 16px 14px;font-size:15px;line-height:1.6;color:var(--text);}\n.msg-card .msg-type{display:inline-block;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:#0284C7;background:#E0F2FE;padding:3px 9px;border-radius:999px;margin-bottom:8px}\n.msg-card .msg-heading{font-weight:800;font-size:16px;display:block;margin-bottom:4px}\n.msg-card.notice{background:#FEF9C3;border-color:#FDE68A;text-align:center}\n.msg-card.notice .msg-type{color:#B45309;background:#FDE68A}\n.msg-card.advert{background:#FCE7F3;border-color:#FBCFE8;text-align:center}\n.msg-card.advert .msg-type{color:#BE185D;background:#FBCFE8}\n\n\/* questions list *\/\n.q-list{display:flex;flex-direction:column;gap:16px;margin-top:8px}\n.q-item{background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px 20px;display:flex;flex-direction:column;gap:12px;transition:border-color .2s ease,box-shadow .2s ease;}\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-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-direction:column;gap:8px;margin-top:2px}\n.opt{display:inline-flex;align-items:flex-start;gap:9px;padding:9px 14px;border-radius:10px;background:#F8FAFF;border:1.5px solid var(--border);font-weight:600;font-size:14px;color:var(--text);cursor:pointer;transition:all .15s ease;user-select:none;line-height:1.45}\n.opt:hover{background:var(--light-1);border-color:var(--accent-1)}\n.opt input{display:none}\n.opt .opt-letter{flex-shrink:0;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\/* 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.story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:6px 0 20px}\n.story-pic{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:var(--sh-card)}\n.story-pic .sp-label{font-weight:800;color:var(--accent-1);font-size:13px;padding:7px 12px;background:var(--light-1);border-bottom:1px solid var(--border)}\n.story-pic img{width:100%;height:auto;display:block}\n.writing-area{width:100%;min-height:150px;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.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:10px;color:#92400E}\n\n\/* SHOW ANSWER *\/\n.show-ans-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:8px;background:rgba(249,115,22,.10);color:var(--accent-1);font-weight:700;font-size:12px;border:1px solid rgba(249,115,22,.30);cursor:pointer;transition:all .15s ease;font-family:inherit;align-self:flex-start;margin-top:4px;letter-spacing:.02em;}\n.show-ans-btn:hover{background:rgba(249,115,22,.18);border-color:var(--accent-1)}\n.show-ans-btn[disabled]{opacity:.45;cursor:not-allowed}\n\n\/* RESULTS BANNER *\/\n.results-banner{display:none;margin:32px auto;padding:30px;border-radius:22px;background:linear-gradient(135deg,#FB923C,#F43F5E);color:#fff;text-align:center;max-width:720px;box-shadow:0 16px 50px rgba(249,115,22,.3);}\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}.hamburger{display:flex}.hero{padding:110px 0 50px}\n  .part-head{flex-direction:column;gap:12px}.part-num{width:50px;height:50px;font-size:22px}\n  .sb-inner{gap:10px}.sb-prog{order:3;flex:1 1 100%}\n}\n@media (max-width:640px){.story-grid{grid-template-columns:1fr}}\n\n\/* 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\n\/* Submit panel *\/\n.submit-panel{margin:40px auto 24px;background:linear-gradient(135deg,#fff,var(--light-1));border:1.5px solid var(--border);padding:30px;border-radius:22px;text-align:center;max-width:720px;box-shadow:0 4px 20px rgba(0,0,0,.06)}\n.submit-panel h3{font-family:'Fraunces',serif;font-size:24px;margin-bottom:8px;color:var(--text)}\n.submit-panel p.intro{color:var(--muted);margin-bottom:18px;font-size:14.5px}\n.submit-panel .sp-buttons{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}\n.btn-submit-big{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:999px;background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;font-weight:800;font-size:16px;box-shadow:0 10px 26px rgba(139,92,246,.35);cursor:pointer;transition:transform .15s ease}\n.btn-submit-big:hover{transform:translateY(-2px)}\n.btn-reset-big{padding:14px 24px;border-radius:999px;background:#fff;color:var(--text);font-weight:700;font-size:14.5px;border:1.5px solid var(--border);cursor:pointer}\n.btn-reset-big:hover{background:var(--light-1)}\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\">Complete Key for Schools \u00b7 Unit 12<\/span>\n    <h1 class=\"serif\">Reading &amp; Writing<br><span>Have you ever been on a plane?<\/span><\/h1>\n    <p class=\"sub\">Practise the Reading (Part 1) and Writing (Part 7) tasks from Unit 12 of <i>Complete Key for Schools<\/i>. Read six short messages, notices and adverts and choose what each one means, then write your own short story from three pictures \u2014 with instant auto-grading and a model answer.<\/p>\n    <div class=\"hero-meta\">\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>Reading Part 1<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>Writing Part 7<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>6 auto-graded<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>+ Story task<\/span>\n    <\/div>\n    <div class=\"cta-row\">\n      <a href=\"#reading\" class=\"btn-primary\">\n        Start\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>\/6<\/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 6 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<!-- ============== READING PART 1 ============== -->\n<section class=\"part-section\" id=\"reading\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">R<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Reading \u00b7 Part 1 \u00b7 Questions 1\u20136<\/span>\n        <h2 class=\"serif\">Short messages<\/h2>\n        <p>For each question, choose the correct answer. Read six short notices, adverts and messages. For each one, choose the option (<b>A<\/b>, <b>B<\/b> or <b>C<\/b>) which means the same. Two options are wrong and one is correct.<\/p>\n      <\/div>\n    <\/div>\n    <div class=\"q-list\" id=\"readingList\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== WRITING PART 7 ============== -->\n<section class=\"part-section\" id=\"writing\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">W<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Writing \u00b7 Part 7<\/span>\n        <h2 class=\"serif\">Write a story<\/h2>\n        <p>In the A2 Key Writing test, Part 7 gives you <b>three pictures<\/b> that tell a story. You must write a short story of <b>35 words or more<\/b> that shows what happens in the pictures. Write your story, then compare it with the model answer.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"writing-card\">\n      <div class=\"prompt-box\">\n        <b>Look at the three pictures below. They tell a story. Write your story in your own words. Write up to 65 words.<\/b>\n      <\/div>\n\n      <div class=\"story-grid\">\n        <div class=\"story-pic\"><div class=\"sp-label\">Picture 1<\/div><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/07\/cket-u12-story1.jpg\" alt=\"A boy has breakfast on his birthday with his parents and birthday cards\" loading=\"lazy\"><\/div>\n        <div class=\"story-pic\"><div class=\"sp-label\">Picture 2<\/div><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/07\/cket-u12-story2.jpg\" alt=\"The boy waits at the bus stop and looks at his watch, worried\" loading=\"lazy\"><\/div>\n        <div class=\"story-pic\"><div class=\"sp-label\">Picture 3<\/div><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/07\/cket-u12-story3.jpg\" alt=\"The school bus arrives with the boy's friends and balloons for a party\" loading=\"lazy\"><\/div>\n      <\/div>\n\n      <div class=\"prompt-box\" style=\"background:#F0F9FF;border-left-color:#0284C7\">\n        <b>Think about these questions to help you:<\/b>\n        <ul>\n          <li><b>Picture 1:<\/b> Whose birthday is it? Where is the boy, and who is with him? What can you see on the table?<\/li>\n          <li><b>Picture 2:<\/b> Where is the boy now? Why is he looking at his watch? How does he feel?<\/li>\n          <li><b>Picture 3:<\/b> What arrives? Who is on it? What are his friends doing, and how does the boy feel?<\/li>\n        <\/ul>\n      <\/div>\n\n      <textarea class=\"writing-area\" id=\"writingArea\" placeholder=\"Write your story here (35 words or more)...\"><\/textarea>\n      <div class=\"wc-counter\" id=\"wcCounter\">0 words \u00b7 target 35 or more<\/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 Model Answer\n      <\/button>\n      <div class=\"sample-box\" id=\"sampleBox\">\n        <h5>Model story \u2014 35+ words, all three pictures<\/h5>\n        <div style=\"background:#fff;border-left:3px solid var(--green);padding:10px 14px;border-radius:0 8px 8px 0;line-height:1.6\">\n          On his birthday, Philippe ate breakfast in the kitchen with his parents. He had a lot of birthday cards. Then he went to the bus stop, but the bus was late. He looked at his watch. He was worried. Finally, the bus arrived. All his friends were on it. They played music and had a party on the way to school.\n        <\/div>\n        <p style=\"margin-top:12px;font-size:13.5px;color:#92400E\"><b>Tip:<\/b> give your character a name, use past tenses (<i>ate, went, arrived<\/i>), link the three pictures in order, and say how he feels.<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- SUBMIT PANEL -->\n<div class=\"wrap\">\n  <div class=\"submit-panel\">\n    <h3>&#127919; Finished?<\/h3>\n    <p class=\"intro\">Submit to grade the 6 reading questions, or use &#128065; Show Answer on each question.<\/p>\n    <div class=\"sp-buttons\">\n      <button class=\"btn-submit-big\" onclick=\"document.getElementById('submitBtn').click()\">&#10003; Submit &amp; Grade<\/button>\n      <button class=\"btn-reset-big\" onclick=\"document.getElementById('resetBtn').click()\">&#128260; Reset<\/button>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- RESULTS BANNER -->\n<div class=\"wrap\">\n  <div class=\"results-banner\" id=\"resultsBanner\">\n    <h3>Complete KET \u00b7 Unit 12 \u2014 Reading &amp; Writing<\/h3>\n    <div class=\"score-big\"><span id=\"finalScore\">0<\/span>\/6<\/div>\n    <p id=\"resultsMsg\">Great effort! Scroll up to review your answers \u2014 correct ones are green, wrong ones red. Then write your story and check the model answer.<\/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>\u00a9 2026 All English 4U \u00b7 <a href=\"https:\/\/allenglish4u.com\/cambridge\/\">All Cambridge Tests<\/a> \u00b7 <a href=\"https:\/\/allenglish4u.com\/contact\/\">Contact<\/a><\/p>\n  <\/div>\n<\/footer>\n\n<script>\n(function(){\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();\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 (Reading Part 1) =====\nvar RP1 = [\n  {n:1,cls:'advert',type:'Advert',heading:'BOAT TRIPS!',msg:\"Half-price for groups of 10 or more. Ask at the shop.\",stem:'',opts:[['A','You will pay more to do this alone.'],['B','You have to be over 10 to do this.'],['C','You will enjoy this more with friends.']],ans:'A'},\n  {n:2,cls:'advert',type:'Advert',heading:'Beautiful old skateboard for sale.',msg:\"Four years old \u2013 needs new wheels! \u00a310 or nearest offer. Phone Daniel 09892 393909\",stem:'',opts:[['A','The skateboard is for a young child.'],['B','The skateboard is ready to ride.'],['C','The price of the skateboard can be changed.']],ans:'C'},\n  {n:3,cls:'',type:'Message',heading:'',msg:\"Hi Amy, I'm ill, so I'm staying at home. Could you tell Mrs Jenkins, the new English teacher? Message me if we have homework. Ollie\",stem:'What does Ollie want Amy to do?',opts:[['A',\"Go to Ollie's house.\"],['B','Talk to Mrs Jenkins.'],['C','Help Ollie with his homework.']],ans:'B'},\n  {n:4,cls:'notice',type:'Notice',heading:'Takeaway Caf\u00e9',msg:\"Healthy drinks and snacks. Closed weekends. Friendly staff.\",stem:'',opts:[['A','The caf\u00e9 sells food that is very cheap.'],['B','The caf\u00e9 is open on Sundays.'],['C','The caf\u00e9 has nice people working there.']],ans:'C'},\n  {n:5,cls:'',type:'Message',heading:'',msg:\"Maddie, A new dance class is starting at school. It's for people our level, not beginners. I'll tell you more after music class. Anna\",stem:'',opts:[['A','There is a new dance school in town.'],['B','Anna and Maddie have done dance before.'],['C','The new dance class begins after the music lesson.']],ans:'B'},\n  {n:6,cls:'notice',type:'Notice',heading:'Lost bike helmet (green)',msg:\"I left it at school. It was cheap, but I love it! Email greg121@mailbank.com\",stem:'Greg wants his bike helmet back because',opts:[['A','He likes it a lot.'],['B','It was expensive.'],['C','It is his favourite colour.']],ans:'A'},\n];\nvar TOTAL = RP1.length;\n\n\/\/ ===== Rendering =====\nfunction escapeHtml(s){return String(s).replace(\/[&<>\"']\/g,function(c){return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c]})}\nfunction renderRP1(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    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><span>'+escapeHtml(o[1])+'<\/span><\/label>';\n    });\n    var headHTML='';\n    if(q.heading)headHTML='<span class=\"msg-heading\">'+escapeHtml(q.heading)+'<\/span>';\n    var stemHTML='';\n    if(q.stem)stemHTML='<div class=\"q-text\"><b class=\"qn\">'+q.n+'.<\/b><span>'+escapeHtml(q.stem)+'<\/span><\/div>';\n    else stemHTML='<div class=\"q-text\"><b class=\"qn\">'+q.n+'.<\/b><span>What does the message mean?<\/span><\/div>';\n    div.innerHTML =\n      '<div class=\"msg-card '+q.cls+'\"><span class=\"msg-type\">'+escapeHtml(q.type)+'<\/span>'+headHTML+escapeHtml(q.msg)+'<\/div>'+\n      stemHTML+\n      '<div class=\"q-opts\">'+optsHTML+'<\/div>'+\n      '<div class=\"feedback\"><\/div>';\n    listEl.appendChild(div);\n  });\n}\nrenderRP1(document.getElementById('readingList'),RP1);\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\nfunction getMcqAns(qid){var sel=document.querySelector('input[name=\"q'+qid+'\"]:checked');return sel?sel.value:null;}\nfunction answeredCount(){var n=0;RP1.forEach(function(q){if(getMcqAns(q.n))n++});return n;}\nfunction updateProgress(){var a=answeredCount();document.getElementById('answeredCount').textContent=a;document.getElementById('progFill').style.width=(a\/TOTAL*100)+'%';}\n\ndocument.getElementById('submitBtn').addEventListener('click',function(){\n  var score=0;\n  RP1.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    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  document.getElementById('scoreNow').textContent=score;\n  document.getElementById('finalScore').textContent=score;\n  var pct=Math.round(score\/TOTAL*100);\n  var msg='';\n  if(pct>=85) msg='\ud83c\udfc6 Excellent! You understood the messages very well.';\n  else if(pct>=67) msg='\ud83d\udc4d Good job! Check the messages you missed.';\n  else if(pct>=50) msg='\ud83d\udcda Keep practising \u2014 read each message carefully.';\n  else msg='\ud83d\udcaa Read each message again and find the key information.';\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(){if(!confirm('Reset all answers?'))return;location.reload();});\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 35 or more';\n  wc.classList.remove('ok');\n  if(w>=35)wc.classList.add('ok');\n});\ndocument.getElementById('sampleToggle').addEventListener('click',function(){document.getElementById('sampleBox').classList.toggle('show');});\n\n\/\/ ===== SHOW ANSWER PER-Q =====\ndocument.querySelectorAll('.q-item').forEach(function(item){\n  if(item.querySelector('.show-ans-btn')) return;\n  var qid=parseInt(item.dataset.qid);\n  var q=RP1.find(function(x){return x.n===qid});\n  if(!q) return;\n  var btn=document.createElement('button');\n  btn.className='show-ans-btn'; btn.type='button';\n  btn.innerHTML='\\u{1F441} Show Answer';\n  btn.addEventListener('click',function(){\n    var correctOpt=item.querySelector('.opt[data-letter=\"'+q.ans+'\"]');\n    if(correctOpt){correctOpt.classList.add('correct-opt');}\n    var fb=item.querySelector('.feedback');\n    if(fb){item.classList.add('answered'); fb.style.background='rgba(16,185,129,.12)'; fb.style.color='#065F46'; fb.textContent='\\u{1F441} Answer: '+q.ans;}\n    btn.disabled=true;\n  });\n  item.appendChild(btn);\n});\n\nupdateProgress();\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 Complete Key for Schools \u00b7 Unit 12 Reading &amp; WritingHave you ever been on a plane? Practise the Reading (Part 1) and Writing (Part 7) tasks from Unit 12 of Complete Key for Schools. Read six short messages, notices [&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-5532","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/5532","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=5532"}],"version-history":[{"count":2,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/5532\/revisions"}],"predecessor-version":[{"id":5820,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/5532\/revisions\/5820"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=5532"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}