/* =====================================================================
   EXAM HUB — PRINT: A4 worksheets and the certificate
   Cheerful but exam-like: a turquoise masthead, a frame on every page,
   colour-coded tags, soft panels for instructions and texts. Colours
   print even when "Background graphics" is off (print-color-adjust).
   Page breaks: a heading never ends a page (it is kept with what
   follows), short blocks never split, and only the answer key starts
   a new page, so there are no half-empty pages.
   Page numbers come from @page margin boxes (Chrome, Edge, Safari 18).
   ===================================================================== */
#print-root{display:none}
@media print{
  @page{
    size:A4;margin:9mm 8mm 12mm;
    @bottom-left{content:"Grade 12 English Exam Hub  ·  Part of Mourad Mekki Teacher Toolkit";font:700 7.4pt "Source Sans EH",Arial,sans-serif;color:#00716B;padding-left:3mm}
    @bottom-right{content:"Page " counter(page) " of " counter(pages);font:700 7.4pt "Source Sans EH",Arial,sans-serif;color:#00716B;padding-right:3mm}
  }
  @page cert{size:A4 landscape;margin:0}
  html.is-printing body>*:not(#print-root){display:none!important}
  html.is-printing,html.is-printing body{background:#fff!important}
  html.is-printing #print-root{display:block}
  #print-root{
    --pt:#13BDB3;--pt-deep:#00807A;--pt-ink:#00716B;--pt-soft:#D8F5F2;--pt-tint:#EEFBFA;
    --ps:#FFC43D;--ps-soft:#FFF4D4;--ps-ink:#8A5A00;--pc:#F26A43;--pc-soft:#FFE9E1;--pv:#5B3B9A;--pv-soft:#EEE8FA;
    --pink:#0F2338;--pink2:#3A4F64;--pline:#CFE7E4;
    font-family:"Source Serif EH",Georgia,"Times New Roman",serif;font-size:10.8pt;line-height:1.45;color:var(--pink);
    /* Space inside the frame, repeated at the top and bottom of every page */
    padding:8mm 7mm;-webkit-box-decoration-break:clone;box-decoration-break:clone;
  }
  #print-root:not(.pr-cert) *{-webkit-print-color-adjust:exact;print-color-adjust:exact;box-shadow:none}
  #print-root:not(.pr-cert) h1,#print-root:not(.pr-cert) h2,#print-root:not(.pr-cert) h3{font-family:"Source Sans EH",Arial,sans-serif;font-weight:900;letter-spacing:-.01em;color:var(--pink);text-wrap:balance;break-after:avoid}
  #print-root p{orphans:3;widows:3}

  /* Frame: a fixed element repeats on every printed page */
  .pr-frame{position:fixed;inset:0;border:1pt solid #B9DEDA;border-radius:4mm;pointer-events:none}
  .pr-frame i{position:absolute;width:11mm;height:11mm;border-color:var(--pt);border-style:solid;border-width:0}
  .pr-frame .tl{top:-1pt;left:-1pt;border-top-width:2.4pt;border-left-width:2.4pt;border-top-left-radius:4mm}
  .pr-frame .tr{top:-1pt;right:-1pt;border-top-width:2.4pt;border-right-width:2.4pt;border-top-right-radius:4mm}
  .pr-frame .bl{bottom:-1pt;left:-1pt;border-bottom-width:2.4pt;border-left-width:2.4pt;border-bottom-left-radius:4mm}
  .pr-frame .br{bottom:-1pt;right:-1pt;border-bottom-width:2.4pt;border-right-width:2.4pt;border-bottom-right-radius:4mm;border-color:var(--ps)}
  .pr-frame b{position:absolute;top:-1.2pt;left:22mm;right:22mm;height:2.4pt;border-radius:2pt;background:linear-gradient(90deg,var(--pt),#5BE3D8 50%,var(--ps))}

  /* Masthead (first page) */
  .pr-mast{break-inside:avoid;break-after:avoid}
  .pr-band{display:flex;align-items:center;gap:8pt;padding:7pt 10pt;border-radius:7pt;background:linear-gradient(115deg,#7AEDE3 0%,#18BDB3 55%,#0A948C 100%);color:#03282D}
  #print-root .pr-mark{width:24pt;height:24pt;border-radius:7pt;display:grid;place-items:center;flex:none;background:#fff}
  #print-root .pr-mark svg path{stroke:#13BDB3}
  .pr-mark svg{width:76%;height:76%}
  .pr-band>div{flex:1;min-width:0}
  .pr-band b{display:block;font:900 11pt "Source Sans EH",Arial,sans-serif;color:#03282D}
  .pr-band span{display:block;font:600 8pt "Source Sans EH",Arial,sans-serif;color:#05434A}
  .pr-doc{flex:none;padding:3pt 8pt;border-radius:99pt;background:#fff;font:900 7.5pt "Source Sans EH",Arial,sans-serif!important;letter-spacing:.12em;text-transform:uppercase;color:var(--pt-ink)!important}
  .pr-fields{display:grid;grid-template-columns:2.2fr 1fr 1fr 1fr;gap:8pt;margin-top:7pt;font:800 8pt "Source Sans EH",Arial,sans-serif;color:var(--pt-ink)}
  .pr-fields span{display:flex;align-items:flex-end;gap:5pt;padding:4pt 7pt;border-radius:5pt;background:var(--pt-tint);border:.7pt solid var(--pline)}
  .pr-fields i{flex:1;border-bottom:.8pt dotted #7FB8B3;height:11pt}
  .pr-title{font-size:18pt;margin:9pt 0 2pt;color:var(--pink)}
  .pr-title::after{content:"";display:block;width:26mm;height:2.4pt;margin-top:3pt;border-radius:2pt;background:linear-gradient(90deg,var(--pt),var(--ps))}

  /* A set: its heading and instructions always stay with what follows */
  .pr-set{margin-top:12pt}
  .pr-keep{break-inside:avoid;break-after:avoid}
  .pr-set-head{display:flex;justify-content:space-between;align-items:flex-end;gap:10pt;margin-bottom:4pt;padding-bottom:4pt;border-bottom:1.4pt solid var(--pt-soft)}
  .pr-tag{display:inline-block;margin-bottom:2pt;padding:1.5pt 7pt;border-radius:99pt;background:var(--pt-soft);font:900 7pt "Source Sans EH",Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--pt-ink)}
  .pr-set-head h2{font-size:14pt;margin:1pt 0 0;line-height:1.15}
  .pr-score{flex:none;display:flex;align-items:baseline;gap:4pt;padding:4pt 9pt;border-radius:6pt;background:var(--ps-soft);border:.8pt solid #EFD38A;font:900 9pt "Source Sans EH",Arial,sans-serif;color:var(--ps-ink);white-space:nowrap}
  .pr-score i{font-style:normal;font-weight:700;font-size:7.5pt;letter-spacing:.08em;text-transform:uppercase}
  .pr-instr{display:flex;gap:6pt;align-items:flex-start;margin:5pt 0 7pt;padding:5pt 8pt;border-radius:5pt;background:var(--pt-tint);border-left:2.4pt solid var(--pt);font:600 9.4pt "Source Sans EH",Arial,sans-serif;color:var(--pink2)}
  .pr-instr::before{content:"";flex:none;width:11pt;height:11pt;margin-top:.5pt;border-radius:50%;background:var(--pt)}
  .pr-meta{font:800 7pt "Source Sans EH",Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#6E8C8A;margin-left:4pt}
  .pr-text p{margin:0 0 5pt;text-align:justify;hyphens:auto}
  .pr-text p:last-child{margin-bottom:0}
  .pr-read{padding:2pt 0 2pt 11pt;border-left:2.4pt solid var(--pt-soft)}
  .pr-read p{break-inside:avoid}
  .pr-more{margin-top:5pt}
  .pr-read p{position:relative;padding-left:15pt}
  .pr-pn{position:absolute;left:0;top:1.5pt;width:10pt;height:10pt;border-radius:50%;display:grid;place-items:center;background:var(--pt-soft);font:900 6.5pt "Source Sans EH",Arial,sans-serif;color:var(--pt-ink)}
  .pr-gap{display:inline-block;min-width:24mm;border-bottom:1pt solid var(--pt-deep);text-align:left;line-height:1;margin:0 2pt}
  .pr-gap b{font:900 6.8pt "Source Sans EH",Arial,sans-serif;display:inline-grid;place-items:center;width:11pt;height:11pt;border-radius:50%;background:var(--pt);color:#fff;margin:0 0 1pt -1pt;vertical-align:1pt}

  /* Gap-fill: text and answer grid stay on one page */
  .pr-gapset{break-inside:avoid}
  /* Compact enough for two gap-fill texts on one page */
  .pr-gapset{margin-top:9pt}
  .pr-gapset .pr-set-head{margin-bottom:3pt;padding-bottom:3pt}
  .pr-gapset .pr-set-head h2{font-size:12pt}
  .pr-gapset .pr-score{padding:2.5pt 8pt}
  .pr-gapset .pr-instr{margin:3pt 0 4pt;padding:3.5pt 7pt;font-size:8.8pt}
  .pr-gapset .pr-text{padding:4pt 8pt;border-radius:6pt;border:.9pt solid var(--pline);line-height:1.42;font-size:9.7pt}
  .pr-gapset .pr-gap{min-width:19mm}
  .pr-gapset .pr-text p{margin-bottom:3pt}
  .pr-gapset .pr-grid{margin-top:4pt;font-size:8.5pt}
  .pr-gapset .pr-grid td{padding:1.6pt 6pt}
  .pr-gapset .pr-c{width:11pt;height:11pt}
  .pr-grid{width:100%;border-collapse:separate;border-spacing:0;margin-top:7pt;font:600 9.2pt "Source Sans EH",Arial,sans-serif;border:.8pt solid var(--pline);border-radius:6pt;overflow:hidden}
  .pr-grid td{padding:4pt 7pt;border-top:.6pt solid var(--pline);vertical-align:middle}
  .pr-grid tr:first-child td{border-top:0}
  .pr-grid tr:nth-child(even) td{background:#F6FCFB}
  .pr-grid .pr-n{width:18pt;text-align:center;font-weight:900;color:#fff;background:var(--pt)!important}
  .pr-c{display:inline-grid;place-items:center;width:12pt;height:12pt;border:.9pt solid var(--pt-deep);border-radius:50%;font:900 6.8pt "Source Sans EH",Arial,sans-serif;color:var(--pt-ink);margin-right:3pt;vertical-align:-1pt;background:#fff}

  /* Questions */
  .pr-qs{margin:9pt 0 0;padding:0;list-style:none;counter-reset:q;font-family:"Source Sans EH",Arial,sans-serif;font-size:9.6pt}
  .pr-qs li{counter-increment:q;position:relative;margin-bottom:6pt;padding:5pt 8pt 6pt 24pt;border-radius:6pt;border:.7pt solid var(--pline);break-inside:avoid}
  .pr-qs li::before{content:counter(q);position:absolute;left:6pt;top:5pt;width:13pt;height:13pt;border-radius:50%;display:grid;place-items:center;background:var(--pt);color:#fff;font-weight:900;font-size:7.5pt}
  .pr-stem{font-weight:700;margin:0 0 3pt}
  .pr-os{display:grid;gap:2pt}
  .pr-os>span{display:block}
  .pr-mcq.pr-drill{break-inside:avoid}
  .pr-mcq.pr-drill .pr-qs{columns:2;column-gap:8pt}
  .pr-mcq.pr-drill .pr-qs li{break-inside:avoid;display:inline-block;width:100%}
  .pr-notes{font:400 9pt "Source Sans EH",Arial,sans-serif;padding-left:14pt}

  /* Answer key: the only forced new page */
  .pr-keys{break-before:page;padding-top:1pt}
  .pr-keys>.pr-set-head{border-bottom-color:var(--ps)}
  .pr-keys .pr-tag{background:var(--ps-soft);color:var(--ps-ink)}
  .pr-keys h2{font-size:16pt}
  .pr-key{margin-top:9pt;break-inside:avoid}
  .pr-key h3{font-size:11.5pt;margin:0 0 4pt;padding-left:7pt;border-left:2.4pt solid var(--ps)}
  .pr-key table{width:100%;border-collapse:separate;border-spacing:0;font:400 8.6pt "Source Sans EH",Arial,sans-serif;border:.7pt solid #EFD38A;border-radius:5pt;overflow:hidden}
  .pr-key td{padding:3pt 6pt;border-top:.5pt solid #F3E2B3;vertical-align:top}
  .pr-key tr:first-child td{border-top:0}
  .pr-key tr:nth-child(odd) td{background:#FFFBEF}
  .pr-key .pr-n{width:14pt;font-weight:900;color:var(--ps-ink)}
  .pr-ans{width:34%}
  .pr-ans b{display:inline-grid;place-items:center;width:11pt;height:11pt;border-radius:50%;background:var(--ps);color:#3B2700;font-size:7pt;margin-right:2pt}
  .pr-key i{color:#6E7F80}
  .pr-key p{font:400 9pt "Source Sans EH",Arial,sans-serif;margin:4pt 0}

  /* Writing: ruled lines, plan grid, prompt card */
  .pr-task{break-before:page}
  .pr-mast+.pr-task{break-before:auto}
  .pr-write-head{margin:8pt 0 0;font:900 8pt "Source Sans EH",Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--pt-ink);break-after:avoid}
  .pr-linespage{break-before:page}
  .pr-linespage .pr-write-head{margin-top:0}
  .pr-lines{height:calc(var(--n,8) * 8.4mm);margin:7pt 0 2pt;border-radius:5pt;border:.7pt solid var(--pline);
    background:#fff repeating-linear-gradient(to bottom,transparent 0,transparent calc(8.4mm - .6pt),#B9DEDA calc(8.4mm - .6pt),#B9DEDA 8.4mm)!important}
  .pr-plan{width:100%;border-collapse:separate;border-spacing:0;font:400 9pt "Source Sans EH",Arial,sans-serif;margin-top:7pt;border:.8pt solid var(--pline);border-radius:6pt;overflow:hidden;break-inside:avoid}
  .pr-plan td{padding:5pt 7pt;border-top:.6pt solid var(--pline);vertical-align:top}
  .pr-plan tr:first-child td{border-top:0}
  .pr-plan td:first-child{width:54%;background:var(--pt-tint);font-size:8.3pt;line-height:1.35}
  .pr-plan td:first-child b{color:var(--pt-ink)}
  .pr-plan td:last-child{height:16mm}
  #print-root .prompt-card{display:block;margin:6pt 0;padding:8pt 10pt;border-radius:6pt;background:var(--pt-tint);border:.9pt solid var(--pline);break-inside:avoid}
  #print-root .prompt-card .kicker{font:900 7pt "Source Sans EH",Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--pt-ink)}
  #print-root .prompt-card p{margin:3pt 0}
  #print-root .prompt-card .pc-task{font-family:"Source Sans EH",Arial,sans-serif;font-weight:800}
  #print-root .prompt-card ul{margin:3pt 0;padding-left:15pt;list-style:none;counter-reset:b}
  #print-root .prompt-card li{counter-increment:b;position:relative;display:block;margin:2pt 0;font-size:10.4pt}
  #print-root .prompt-card .pc-intro{font-size:11pt}
  #print-root .prompt-card li::before{content:counter(b);position:absolute;left:-15pt;top:1pt;width:11pt;height:11pt;border-radius:50%;display:grid;place-items:center;background:var(--pt);color:#fff;font:900 6.8pt "Source Sans EH",Arial,sans-serif}
  #print-root .prompt-card .pc-words{font:700 8pt "Source Sans EH",Arial,sans-serif;color:var(--pink2)}

  /* Word list: the header repeats on every page */
  .pr-words{width:100%;border-collapse:separate;border-spacing:0;font:400 8.6pt "Source Sans EH",Arial,sans-serif;margin-top:6pt}
  .pr-words thead{display:table-header-group}
  .pr-words th{text-align:left;font-size:7pt;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--pt-deep);padding:4pt 6pt}
  .pr-words th:first-child{border-top-left-radius:5pt}.pr-words th:last-child{border-top-right-radius:5pt}
  .pr-words td{padding:4pt 6pt;border-bottom:.5pt solid var(--pline);vertical-align:top}
  .pr-words tr:nth-child(even) td{background:#F6FCFB}
  .pr-words td:first-child{font:800 10pt "Source Sans EH",Arial,sans-serif;width:23%;color:var(--pink)}
  .pr-words td:first-child i{display:block;font:italic 400 7.5pt "Source Serif EH",Georgia,serif;color:var(--pt-ink)}
  .pr-words td.ar{direction:rtl;text-align:right;font:400 10pt "Naskh EH","Traditional Arabic",serif;width:19%}
  .pr-words tr{break-inside:avoid}

  /* Grammar rule summaries */
  .pr-rule{break-inside:avoid;margin-top:10pt;padding:7pt 10pt;border-radius:6pt;background:var(--pt-tint);border:.8pt solid var(--pline)}
  .pr-rule .pr-set-head{border-bottom-color:var(--pline)}
  .pr-rule p{margin:3pt 0;font:400 9.6pt "Source Sans EH",Arial,sans-serif}
  .pr-rule .pr-tok{display:inline-block;margin:1pt 0;font:800 8.6pt "Source Sans EH",Arial,sans-serif;padding:1pt 5pt;border-radius:3pt;background:#fff;border:.6pt solid #9FDCD6;color:var(--pt-ink)}

  /* Certificate: one landscape page, in colour */
  html.is-printing-cert #print-root{page:cert;width:297mm;height:210mm;padding:7mm;box-sizing:border-box}
  html.is-printing-cert .cert{width:100%;height:100%;aspect-ratio:auto;border-radius:0;box-shadow:none}
  html.is-printing-cert .cert *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
