/* SchoolFacts static pages — shared stylesheet */
:root{
  --ink:#14212B; --paper:#F7F6F2; --chalk:#FFFFFF; --navy:#29538A;
  --line:#DDD9CF; --mut:#5C6670;
  --g1:#0B7A5C; --g2:#3FA34D; --g3:#93B733; --g4:#E39B2D; --g5:#CE4646; --g0:#A2A9B0;
  --shadow:0 2px 14px rgba(20,33,43,.10);
}
*{box-sizing:border-box;margin:0}
body{font-family:'Archivo',sans-serif;color:var(--ink);background:var(--paper);
  line-height:1.55;font-size:15px}
a{color:var(--navy)}
.top{display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:14px clamp(16px,4vw,40px);border-bottom:1px solid var(--line);
  background:var(--chalk);position:sticky;top:0;z-index:10}
.navmenu{display:flex;flex:1;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.topnav{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.topnav a{font-weight:600;font-size:13.5px;text-decoration:none;color:var(--navy);
  border:1px solid var(--line);border-radius:999px;padding:7px 14px;
  background:var(--paper);white-space:nowrap}
.navtoggle{display:none}
.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:38px;padding:0 10px;cursor:pointer;flex:none;
  border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.hamburger span{display:block;height:2px;border-radius:2px;background:var(--navy);
  transition:transform .2s,opacity .2s}
@media (max-width:860px){
  .top{padding:12px 14px}
  .hamburger{display:flex}
  .navmenu{display:none;position:absolute;top:100%;right:8px;left:8px;
    flex-direction:column;align-items:stretch;gap:8px;margin-top:6px;padding:12px;
    background:var(--chalk);border:1px solid var(--line);border-radius:12px;
    box-shadow:0 10px 30px rgba(0,0,0,.14)}
  #navtoggle:checked ~ .navmenu{display:flex}
  #navtoggle:checked ~ .hamburger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  #navtoggle:checked ~ .hamburger span:nth-child(2){opacity:0}
  #navtoggle:checked ~ .hamburger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .navmenu .topnav{flex-direction:column;align-items:stretch;width:100%;gap:8px;flex-wrap:nowrap}
  .navmenu .topnav a{text-align:center;font-size:13.5px;padding:9px 14px}
}
.wordmark{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;
  font-size:26px;letter-spacing:-.02em;color:var(--ink);text-decoration:none}
.wordmark span{color:var(--navy)}
.crumbs{max-width:760px;margin:18px auto 0;padding:0 16px;font-size:12.5px;
  color:var(--mut)}
main{max-width:760px;margin:0 auto;padding:8px 16px 40px}
h1{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;
  font-size:clamp(24px,5vw,34px);letter-spacing:-.02em;line-height:1.1;
  margin-top:10px}
.sub{color:var(--mut);margin:6px 0 18px}
ul.legal{margin:8px 0 0;padding-left:20px}
ul.legal li{margin:6px 0;line-height:1.55}
.faqs .faq{margin:0 0 14px}
.faqs dt{font-weight:600;color:var(--ink);margin-bottom:3px}
.faqs dd{margin:0;color:var(--mut);line-height:1.55}
h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:13px;
  text-transform:uppercase;letter-spacing:.06em;color:var(--mut);
  margin:26px 0 10px}
section.slip{background:repeating-linear-gradient(var(--chalk) 0 27px,#EDF2F7 27px 28px);
  border:1px solid var(--line);border-top:4px solid var(--slip-colour,var(--g0));
  border-radius:10px;box-shadow:var(--shadow);padding:18px 20px;margin:18px 0}
.stamp{display:inline-block;font:500 15px 'IBM Plex Mono',monospace;color:#fff;
  background:var(--slip-colour,var(--g0));padding:6px 14px;border-radius:5px}
.regime{font-weight:600;font-size:13.5px;margin-top:10px}
.slip .note{font-size:13px;color:var(--mut);margin-top:4px;max-width:56ch}
.slip .dates{font:400 12px 'IBM Plex Mono',monospace;color:var(--mut);margin-top:10px}
.slip .ofsted{display:inline-block;margin-top:8px;font-weight:600;font-size:13.5px}
.areas{margin-top:12px;display:flex;flex-wrap:wrap;gap:5px}
.areas span{font-size:11.5px;padding:3px 8px;border-radius:4px;background:#EEF1F4;
  border-left:3px solid var(--g0)}
.factsheet{background:var(--chalk);border:1px solid var(--line);border-radius:10px;
  padding:16px 20px;margin:18px 0}
.factsheet dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  gap:10px 18px;margin-top:8px}
.factsheet dt{font-size:11px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--mut)}
.factsheet dd{font-size:14px;overflow-wrap:anywhere}
.gauge{height:6px;background:#E7E4DC;border-radius:3px;margin:8px 0 4px;
  overflow:hidden}
.gauge i{display:block;height:100%;background:var(--navy)}
.gauge-label{font:400 12px 'IBM Plex Mono',monospace;color:var(--mut)}
section.perf{background:var(--chalk);border:1px solid var(--line);
  border-radius:10px;padding:16px 20px;margin:18px 0}
.cohort{font:400 12px 'IBM Plex Mono',monospace;color:var(--mut);margin-bottom:10px}
.metric{margin:12px 0}
.mlabel{font-size:13.5px;font-weight:600}
.mnote{font-size:13px;color:var(--mut)}
.bar{position:relative;height:20px;background:#EFEDE6;border-radius:4px;
  margin-top:5px;overflow:hidden}
.bar i{position:absolute;inset:0 auto 0 0;display:block}
.bar.sch i{background:var(--navy)}
.bar.eng i{background:#C4CBD4}
.bar span{position:absolute;right:8px;top:0;line-height:20px;
  font:500 11.5px 'IBM Plex Mono',monospace}
.bar.sch span{color:var(--ink)}
.bar.eng span{color:var(--mut)}
.agrade{font:500 12px 'IBM Plex Mono',monospace;background:#EEF1F4;
  padding:2px 7px;border-radius:4px;margin-left:6px}
.oversub{display:inline-block;font:500 13px 'IBM Plex Mono',monospace;
  color:#fff;padding:5px 12px;border-radius:5px;margin:2px 0 6px}
.bandgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
  gap:8px 16px;margin:6px 0 4px}
.bandgrid dt{font-size:11px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--mut)}
.bandgrid dd{font:500 13px 'IBM Plex Mono',monospace}
.odds{margin-top:14px;border-top:1px dashed var(--line);padding-top:12px}
.premchip{font:600 10px 'Archivo';text-transform:uppercase;letter-spacing:.06em;
  color:var(--navy);border:1px solid var(--navy);border-radius:999px;
  padding:2px 8px;margin-left:8px;vertical-align:2px}
.premchip.on{background:var(--navy);color:#fff}
.topnav .prembtn{background:var(--navy);color:#fff;border-color:var(--navy)}
.topnav .prembtn.on{background:var(--g2);border-color:var(--g2)}
.topnav .premchip{font-size:9px;padding:1px 6px;vertical-align:1px}
.unlockbtn{display:inline-block;font:600 13.5px 'Archivo';padding:9px 16px;
  border:0;border-radius:8px;background:var(--navy);color:#fff;cursor:pointer;
  text-decoration:none;margin-top:8px}
.oddsform{display:flex;gap:8px;margin:12px 0 6px}
.odds+.perfsrc{margin-top:16px}
.oddsform input{flex:1;max-width:220px;font:400 13.5px 'Archivo';
  padding:8px 10px;border:1px solid var(--line);border-radius:8px;
  background:var(--paper)}
.oddsform button{font:600 13.5px 'Archivo';padding:8px 16px;border:0;
  border-radius:8px;background:var(--navy);color:#fff;cursor:pointer}
.oddsresult{margin-top:10px}
.oddsband{display:inline-block;font:500 13px 'IBM Plex Mono',monospace;
  color:#fff;padding:5px 12px;border-radius:5px;margin-bottom:6px}
.oddsband.g2{background:var(--g2)}.oddsband.g4{background:var(--g4)}
.oddsband.g5{background:var(--g5)}
.oddslist{list-style:none;padding:0}
.oddslist li{display:flex;align-items:baseline;gap:8px;padding:6px 0;
  border-bottom:1px solid var(--line);flex-wrap:wrap}
.oddslist a{font-weight:600;text-decoration:none}
.distband{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;
  font-size:15px;text-transform:none;letter-spacing:0;color:var(--ink);
  margin:22px 0 4px;padding-top:14px;border-top:1px solid var(--line)}
.grplab{font-size:12px;font-weight:600;text-transform:uppercase;
  letter-spacing:.05em;color:var(--mut);margin:12px 0 2px}
/* shortlist */
.slbtn{font:600 13px 'Archivo';padding:8px 14px;border:1px solid var(--navy);
  border-radius:999px;background:var(--paper);color:var(--navy);cursor:pointer;
  margin:2px 0 16px}
.slbtn.on{background:var(--navy);color:#fff}
.topnav .slcount{display:none;margin-left:5px;min-width:17px;height:17px;
  padding:0 4px;border-radius:999px;background:var(--navy);color:#fff;
  font:600 11px 'Archivo';line-height:17px;text-align:center}
.topnav .slcount.on{display:inline-block}
.slhead{margin-bottom:4px}
.slbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:6px 0 16px}
.slpcform{display:flex;gap:8px}
.slpcform input{font:400 13.5px 'Archivo';padding:8px 10px;
  border:1px solid var(--line);border-radius:8px;background:var(--paper);min-width:180px}
.slpcform button,.prtbtn{font:600 13.5px 'Archivo';padding:8px 16px;border:0;
  border-radius:8px;cursor:pointer}
.slpcform button{background:var(--navy);color:#fff}
.prtbtn{background:var(--chalk);color:var(--navy);border:1px solid var(--navy)}
.slpcerr{font:600 12.5px 'Archivo';color:var(--g5)}
.slstamp{font:600 15px 'Bricolage Grotesque',sans-serif;color:var(--ink);margin-bottom:10px}
.sltablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.sltable{border-collapse:collapse;width:100%;font-size:13px;min-width:660px}
.sltable th{text-align:left;font:600 11px 'Archivo';text-transform:uppercase;
  letter-spacing:.04em;color:var(--mut);padding:6px 8px;
  border-bottom:2px solid var(--line);white-space:nowrap}
.sltable td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}
.sltable tr:nth-child(even) td{background:rgba(20,33,43,.02)}
.slname a{font-weight:600;text-decoration:none;display:block}
.slmeta{display:block;font-size:11.5px;color:var(--mut)}
.sltable .chip{display:inline-block;margin-right:5px}
.sltag{display:inline-block;font:600 10px 'Archivo';padding:1px 6px;
  border-radius:999px;margin-left:4px;color:#fff}
.sltag.in{background:var(--g2)}.sltag.out{background:var(--g5)}
.slx{border:0;background:none;color:var(--mut);cursor:pointer;font-size:14px;padding:2px 4px}
.slx:hover{color:var(--g5)}
.slnhead{margin-top:24px}
.slcards{display:grid;gap:10px}
.slcard{border:1px solid var(--line);border-radius:10px;padding:12px 14px;
  background:var(--chalk)}
.slcard h3{font-family:'Bricolage Grotesque',sans-serif;font-size:16px;margin-bottom:6px}
.slcard h3 a{text-decoration:none}
.slnlab{display:block;font:600 11px 'Archivo';text-transform:uppercase;
  letter-spacing:.04em;color:var(--mut);margin-bottom:3px}
.slnote{width:100%;font:400 13.5px 'Archivo';padding:8px 10px;
  border:1px solid var(--line);border-radius:8px;background:var(--paper);resize:vertical}
.slsrc{font-size:11.5px;color:var(--mut);margin-top:16px}
/* account / login */
.acctform{display:flex;gap:8px;flex-wrap:wrap;max-width:420px;margin:14px 0 8px}
.acctform input{flex:1;min-width:160px;font:400 14px 'Archivo';padding:10px 12px;
  border:1px solid var(--line);border-radius:8px;background:var(--chalk)}
.linkbtn{background:none;border:0;color:var(--navy);font:600 13.5px 'Archivo';
  cursor:pointer;padding:4px 0;text-decoration:underline}
/* compare */
.pagebtns{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:2px 0 16px}
.pagebtns .slbtn{margin:0}
.cmpbtn{font:600 13px 'Archivo';padding:8px 14px;border:1px solid var(--line);
  border-radius:999px;background:var(--paper);color:var(--navy);text-decoration:none}
.cmpadd{position:relative;max-width:460px;margin:6px 0 18px}
#cmpsearch{width:100%;font:400 14px 'Archivo';padding:10px 12px;
  border:1px solid var(--line);border-radius:10px;background:var(--chalk)}
.cmpsug{list-style:none;margin:4px 0 0;padding:4px;position:absolute;z-index:20;
  left:0;right:0;background:var(--chalk);border:1px solid var(--line);
  border-radius:10px;box-shadow:var(--shadow);max-height:280px;overflow:auto}
.cmpsug li{padding:8px 10px;border-radius:7px;cursor:pointer;font-weight:600;font-size:13.5px}
.cmpsug li:hover{background:var(--paper)}
.cmpsub{display:block;font-weight:400;font-size:11.5px;color:var(--mut)}
.cmpwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.cmptable{border-collapse:collapse;width:100%;min-width:420px}
.cmptable thead th{vertical-align:bottom;text-align:left;padding:8px 10px;
  border-bottom:2px solid var(--line);font-family:'Bricolage Grotesque',sans-serif;
  font-size:15px;font-weight:700}
.cmptable thead th a{text-decoration:none}
.cmptable td,.cmptable tbody th{padding:9px 10px;border-bottom:1px solid var(--line);
  font-size:13.5px;vertical-align:top}
.cmptable tbody th.cmpc{text-align:left;font:600 11px 'Archivo';text-transform:uppercase;
  letter-spacing:.04em;color:var(--mut);white-space:nowrap}
.cmptable th.cmpc{border-bottom-color:transparent}
.cmptable tbody tr:nth-child(even) td,.cmptable tbody tr:nth-child(even) th.cmpc{background:rgba(20,33,43,.02)}
.cmptable .chip{display:inline-block;margin-right:5px}
.cmpx{border:0;background:none;color:var(--mut);cursor:pointer;font-size:12px;
  margin-left:6px;padding:0 2px}
.cmpx:hover{color:var(--g5)}
.townlink{margin-top:18px;font-size:14px}
.townlink a{font-weight:600;text-decoration:none}
.fbar{display:flex;align-items:center;gap:10px;margin:8px 0}
.fblab{flex:0 0 42%;font-size:13px}
.ftrack{flex:1;height:12px;background:#E7E4DC;border-radius:6px;overflow:hidden}
.ftrack i{display:block;height:100%;background:var(--navy);border-radius:6px}
.fval{flex:0 0 auto;font:600 13.5px 'IBM Plex Mono',monospace}
@media print{
  .top,.crumbs,.slbar,.slbtn,.slx,.maplink{display:none!important}
  body{background:#fff;color:#000}
  a{color:#000}
  main{max-width:none;padding:0}
  .slcard,.sltable tr{break-inside:avoid}
  .slcards{grid-template-columns:1fr 1fr}
  .slnote{border:1px solid #bbb;background:#fff}
}
.trendwrap{margin-top:12px}
.trend{display:flex;align-items:flex-end;gap:10px;margin-top:8px;height:76px}
.tbar{display:flex;flex-direction:column;justify-content:flex-end;
  align-items:center;gap:3px;height:100%}
.tbar i{display:block;width:26px;border-radius:3px 3px 0 0}
.tbar span{font:400 10px 'IBM Plex Mono',monospace;color:var(--mut)}
.perfsrc{font-size:12px;color:var(--mut);margin-top:-6px}
.nearby ul,.schoollist{list-style:none;padding:0}
.nearby li,.schoollist li{display:flex;align-items:baseline;gap:8px;
  padding:7px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.nearby a,.schoollist a{font-weight:600;text-decoration:none}
.chip{width:10px;height:10px;border-radius:50%;flex:none;align-self:center;
  box-shadow:0 0 0 1px rgba(0,0,0,.12)}
.nmeta{font-size:12px;color:var(--mut)}
.schoollist.la li{justify-content:space-between}
footer{max-width:760px;margin:0 auto;padding:20px 16px 48px;font-size:12px;
  color:var(--mut);border-top:1px solid var(--line)}
footer p{margin:6px 0}
