/* MouseCalls — shared styles for static landing & subject pages.
   Palette matches the ICT hub (ict-primary.html). */
:root{
  --bg:#f2f0ff;--panel:#ffffff;--panel2:#eceaff;--line:#c9c4f2;
  --ink:#2b2a5e;--dim:#7a77a8;--acc:#5b5bd6;--acc2:#4747c2;--good:#2fbf6b;--soon:#b7b3d6;
  --y1:#ff6b6b;--y2:#ff9f1c;--y3:#f5b301;--y4:#2fbf6b;--y5:#2f8ef0;--y6:#9256f0;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--ink);
  font:16px/1.6 "Avenir Next","Trebuchet MS",Verdana,system-ui,sans-serif}
a{color:var(--acc)}
img{max-width:100%}
.wrap{max-width:1080px;margin:0 auto;padding:0 18px}
header.site{background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
header.site .bar{display:flex;align-items:center;gap:14px;padding:8px 0;flex-wrap:wrap}
header.site a.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;font-weight:800}
header.site .brandlogo{height:76px;width:auto;display:block}
header.site nav{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
header.site nav a{color:var(--dim);text-decoration:none;font-weight:600;padding:8px 12px;border-radius:12px}
header.site nav a:hover,header.site nav a[aria-current="page"]{background:var(--acc);color:#fff}
.crumb{font-size:13px;color:var(--dim);padding:14px 0 0}
.crumb a{color:var(--acc);text-decoration:none}
.crumb a:hover{text-decoration:underline}
.hero{padding:30px 0 8px}
.hero h1{font-size:34px;line-height:1.15;margin:0 0 12px}
.hero p.lede{font-size:19px;color:var(--dim);margin:0 0 8px;max-width:64ch}
.tagpills{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.tagpill{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:6px 13px;font-size:13px;font-weight:700;color:var(--acc)}
section{padding:22px 0}
h2.sec{font-size:24px;margin:0 0 4px}
p.sub{color:var(--dim);margin:0 0 18px;max-width:70ch}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:18px;display:flex;flex-direction:column;gap:10px;
  text-decoration:none;color:inherit;transition:outline .12s}
a.card:hover{outline:2px solid var(--acc)}
.card .ic{font-size:40px;line-height:1}
.card h3{margin:0;font-size:20px}
.card p{margin:0;color:var(--dim);font-size:14px;flex:1}
.card.disabled{opacity:.62;cursor:default}
.badge{display:inline-block;border-radius:999px;padding:3px 11px;font-size:12px;font-weight:800;color:#fff}
.badge.live{background:var(--good)}
.badge.soon{background:var(--soon)}
.badge.count{background:var(--acc)}
.phase{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.curric{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.yearblock{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px 16px}
.yearblock h3{margin:0 0 8px;display:flex;align-items:center;gap:9px;font-size:18px}
.ychip{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;color:#fff;font-weight:800;font-size:15px}
.y1{background:var(--y1)}.y2{background:var(--y2)}.y3{background:var(--y3)}.y4{background:var(--y4)}.y5{background:var(--y5)}.y6{background:var(--y6)}
.yearblock ol{margin:0;padding-left:20px}
.yearblock li{margin:3px 0;font-size:14.5px}
.yearblock li .strand{color:var(--dim);font-size:12px}
.cta{display:inline-block;background:var(--acc);color:#fff;text-decoration:none;font-weight:800;border-radius:14px;padding:13px 22px;margin-top:6px}
.cta:hover{background:var(--acc2)}
.note{background:var(--panel);border:1px dashed var(--line);border-radius:14px;padding:14px 16px;color:var(--dim);font-size:14px}
footer.site{border-top:1px solid var(--line);margin-top:24px;background:var(--panel)}
footer.site .wrap{padding-top:20px;padding-bottom:28px;color:var(--dim);font-size:13px;line-height:1.7}
footer.site a{color:var(--acc)}
footer.site nav{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* Accessibility: skip link + visible focus */
.skip{position:absolute;left:8px;top:-52px;background:var(--acc);color:#fff;padding:10px 14px;border-radius:10px;
  z-index:1000;font-weight:800;text-decoration:none;transition:top .15s}
.skip:focus{top:8px}
a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--acc);outline-offset:2px;border-radius:6px}
