/* The pages the rehaul-rest build restyled (20 Oct 2026): school, nursery, league and town rankings, Schools for us,
   news and guides, How we know and the simple pages. They draw in the re-haul's look (frontend/kp-pages.css, pg-*,
   and the shared tokens and parts in kp.css); this file holds only what those pages need beyond them. Classes kr-*.
   Dense on a computer (13px body, 28 to 30px controls); under 700px every control is 44px tall. */

/* chips: the league rank's tones, a school with no rank, demand */
.kp-rank.kr-rank-gold{border-color:#F0DC9C;background:#FFF1C9;color:#7A5A12}
.kp-rank.kr-norank{border:1px solid var(--kp-line-2);background:#F2F6F5;color:var(--kp-muted);font-weight:600;border-radius:999px;padding:0 7px}
.kr-demand{display:inline-flex;align-items:center;font:600 11px/1.5 var(--kp-font);border-radius:999px;padding:1px 8px;background:#E3F4EC;color:#0B6B4E;white-space:nowrap}
.kr-demand.warm{background:#FFF4D6;color:#7A5A12}
.kr-keep[aria-pressed="true"]{background:var(--kp-mint);border-color:var(--kp-in);color:var(--kp-head)}
.kr-keep[aria-pressed="true"]::before{content:"\2713"}

/* restyled bodies (kp_rest.restyle): the hero from the page's own <h1> and lede, each <section> a card */
.kr-main{font-size:13px;line-height:1.5}
.kr-main>p,.kr-main>ul,.kr-main>nav,.kr-main>div:not(.pg-card):not(.pg-tw):not(.kdcta){margin:0 2px}
.kr-sec h2{margin:0;font-size:15.5px;font-weight:700;color:var(--kp-head);line-height:1.25}
.kr-sec h3{margin:6px 0 0;font-size:13.5px;font-weight:700;color:var(--kp-head)}
.kr-sec p{margin:0}
.kr-sec ul{margin:0;padding-left:18px}
.kr-sec li{margin:0 0 3px}
.kr-sec .kr-sec{border:0;padding:0;border-radius:0}
.kr-main .src,.kr-main .meta{font-size:11.5px;color:var(--kp-muted);line-height:1.45;margin:0}
.kr-main td.band{font-weight:700;color:var(--kp-rank);white-space:nowrap}
.kr-main ul.cols{columns:3;column-gap:24px;padding-left:18px}
.kr-main ul.cols li{break-inside:avoid}
.kr-main .cta{display:inline-flex;align-items:center;height:var(--kp-ctl);padding:0 12px;border-radius:var(--kp-r);background:var(--kp-teal);
  color:#fff;font:600 12.5px var(--kp-font);text-decoration:none}
.kr-main .cta:hover{background:#174D57;color:#fff}
.kr-main .cta.ghost{background:#fff;color:var(--kp-head);border:1px solid var(--kp-line-3)}
.kr-main .kdcta{background:#F2FBF7;border:1px solid var(--kp-mint);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.kr-main .kdcta h2{margin:0;font-size:14px}
.kr-main .pp-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:4px 14px}
.kr-main .pp-grid li{padding:5px 0;border-bottom:1px solid var(--kp-soft)}
.kr-main .pp-grid span{display:block;color:var(--kp-muted);font-size:11.5px}
.kr-main .pp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:0}
.kr-main .pp-stats>div{background:var(--kp-bg);border-radius:12px;padding:10px 12px}
.kr-main .pp-stats dt{color:var(--kp-muted);font-weight:600;font-size:12px}
.kr-main .pp-stats dd{margin:3px 0 0;font-size:12px}
.kr-main .pp-stats b{display:block;font-size:19px;color:var(--kp-head);line-height:1.15}
.kr-main .pp-stats .src{display:block;margin-top:3px}
.kr-main .ap-jump,.kr-jump{display:flex;gap:6px;flex-wrap:wrap}
.kr-main .ap-jump a,.kr-jump a{display:inline-flex;align-items:center;height:28px;padding:0 10px;border:1px solid var(--kp-line-2);border-radius:999px;
  background:#fff;font-size:12px;font-weight:600;text-decoration:none;color:var(--kp-head)}
.kr-main .ap-plan{background:#F2FBF7;border-color:var(--kp-mint)}
.kr-main .ap-cta{display:flex;gap:8px;flex-wrap:wrap}
.kr-main .kp-search{margin:0}
@media (max-width:900px){.kr-main ul.cols{columns:2}}
@media (max-width:699px){
  .kr-main ul.cols{columns:1}
  .kr-main .cta,.kr-main .ap-jump a,.kr-jump a{min-height:44px}
  .kr-main ul.cols a,.kr-main .pp-grid a,.kr-sec li>a{display:inline-block;padding:8px 0;min-height:44px;line-height:28px}
  .kr-main .pg-tw table:has(tr>:nth-child(4)){min-width:560px}
}
.kr-main .ap-plan{margin:0;padding:14px 16px;background:#F2FBF7;border-color:var(--kp-mint)}
.kr-main .ap-cta{margin:0}
.kr-main button.cta{border:0;cursor:pointer}
.kr-main .kr-keep.cta[aria-pressed="true"]{background:var(--kp-mint);color:var(--kp-head)}
.kr-list{list-style:none;padding:0!important;margin:0;display:flex;flex-direction:column}
.kr-list li{padding:8px 0;border-top:1px solid var(--kp-soft);margin:0}
.kr-list li:first-child{border-top:0}
.kr-list a{font-weight:600}
.kr-hubtabs{margin-bottom:8px}
.kr-main>.pg-tw{background:#fff;border:1px solid var(--kp-line);border-radius:16px;padding:4px 6px}
.kr-main table a{text-decoration:none;font-weight:600}
.kr-main table a:hover{text-decoration:underline}
/* the hero's extras: chips and a call to action under the stat tiles */
.pg-hero .pg-stats+*{margin-top:10px}
.pg-hero .kr-nchips{margin:10px 0 0}
.pg-hero .kr-nchips+p,.pg-hero .pg-lede+p{margin-top:10px}
.pg-hero .cta{display:inline-flex;align-items:center;height:var(--kp-ctl);padding:0 12px;border-radius:var(--kp-r);background:var(--kp-teal);
  color:#fff;font:600 12.5px var(--kp-font);text-decoration:none}
.pg-hero .cta:hover{background:#174D57;color:#fff}
@media (max-width:699px){.pg-hero .cta{min-height:44px}}
.pg .kp-btn-p,.pg .kp-btn-t,.pg .kp-btn-p:hover,.pg .kp-btn-t:hover{color:#fff}
.pg .kp-btn{text-decoration:none}

/* News and guides (news.py): the hero, then the cards or the article in one card. news.py's own CSS is scoped
   to .pp; these bring its sizes to the re-haul's (prose 14px, headings 15.5 to 17.5px). */
.kr-kicker{color:var(--kp-coral)}
.kr-byline{font-size:11.5px;color:var(--kp-muted);margin:0}
.pg-hero .kr-byline{margin-top:6px}
.pg-heroart svg.mark{width:120px;height:auto;opacity:.5}
.pg-in.kr-news.pp{max-width:1180px}
.pp.kr-news .ncards{gap:13px;margin:0}
.pp.kr-news .ncard{border-radius:16px}
.pp.kr-news .ntop{padding:14px 16px 10px;min-height:140px}
.pp.kr-news .ncard.feat .ntop{min-height:190px}
.pp.kr-news .nstat{font-size:34px}.pp.kr-news .ncard.feat .nstat{font-size:44px}
.pp.kr-news .nlab{font-size:12.5px}
.pp.kr-news .nbody{padding:12px 16px 14px;gap:6px}
.pp.kr-news .nchips span{font-size:11px;padding:2px 8px}
.pp.kr-news .ncard h2{font-size:15.5px}.pp.kr-news .ncard.feat h2{font-size:17.5px}
.pp.kr-news .ncard p{font-size:12.5px}
.pp.kr-news .nread{font-size:12.5px}
.pp.kr-newsart>article{padding:16px 22px 18px;max-width:860px}
.pp.kr-newsart>article p,.pp.kr-newsart>article li{font-size:14px;line-height:1.6}
.pp.kr-newsart>article h2{font-size:17.5px;margin:18px 0 6px}
.pp.kr-newsart>article .keys{gap:10px;margin:0 0 12px}
.pp.kr-newsart>article .key{border-radius:12px;padding:10px 12px}
.pp.kr-newsart>article .key b{font-size:22px}.pp.kr-newsart>article .key span{font-size:12px}
.pp.kr-newsart>article .method{border-radius:12px;padding:2px 14px 8px;margin-top:18px}
.pp.kr-newsart>article .method li,.pp.kr-newsart>article .method p{font-size:12.5px}
.pp.kr-newsart>article .method h2{font-size:14.5px;margin-top:10px}
.pp.kr-newsart>article .cta{display:inline-flex;align-items:center;height:var(--kp-ctl);padding:0 12px;border-radius:var(--kp-r);background:var(--kp-teal);
  color:#fff;font:600 12.5px var(--kp-font);text-decoration:none}
.pp.kr-newsart>article figcaption{font-size:11.5px}
.pp.kr-newsart>article .ntabbar button{font-size:12px;padding:5px 11px}
@media (max-width:700px){.pp.kr-news .ncards{grid-template-columns:minmax(0,1fr)}.pp.kr-news .ncard.feat{flex-direction:column}
  .pp.kr-newsart>article{padding:12px}.pp.kr-newsart>article .keys{grid-template-columns:minmax(0,1fr)}.pp.kr-newsart>article .cta,.pp.kr-news .nread{min-height:44px}}

/* How we know (how_we_know.py): the content template, sections as cards beside a sticky list */
.kr-hide{display:none!important}
.kr-hwk{flex:999 1 640px;min-width:0;display:flex;flex-direction:column;gap:13px;font-size:13px}
.kr-hwk .hwk-sec{background:#fff;border:1px solid var(--kp-line);border-radius:16px;padding:14px 16px;margin:0}
.kr-hwk h2{font-size:15.5px;margin:0}
.kr-hwk h3{font-size:13.5px;margin:12px 0 4px}
.kr-hwk p{margin:0 0 8px}
.kr-hwk .hwk-date{font-size:11.5px;margin:2px 0 10px}
.kr-hwk .hwk-srcs{gap:10px;margin:8px 0}
.kr-hwk .hwk-src{border-color:var(--kp-line);border-radius:12px;padding:10px 12px;background:var(--kp-bg)}
.kr-hwk .hwk-src p{font-size:12.5px}.kr-hwk .hwk-src dl{font-size:12px}
.kr-hwk .hwk-cov li{padding:7px 0;border-bottom-color:var(--kp-soft);font-size:12.5px}
.kr-hwk .hwk-big{font-size:17.5px}
.kr-hwk .hwk-note{font-size:11.5px}
.kr-hwk .hwk-list li{margin:4px 0;font-size:12.5px}
.kr-hwk .hwk-status{font-size:11.5px;padding:2px 9px}
.kr-toc{align-self:flex-start}
@media (max-width:900px){.kr-toc{position:static}}

/* The simple pages on site.css (sources, Plus and the Year pass, join, the extension, partners, terms, privacy,
   cookies): <body class="kr-static">. The re-haul's base type and parts over site.css's larger defaults. */
body.kr-static{background:var(--kp-bg);color:var(--kp-ink);font:400 13px/1.5 var(--kp-font)}
.kr-static main.wrap{max-width:900px;padding:18px 19px 40px;display:flex;flex-direction:column;gap:13px}
.kr-static .lead{background:#fff;border:1px solid var(--kp-line);border-radius:16px;padding:16px 18px;gap:6px;margin:0}
.kr-static .lead h1{font-size:27.5px;font-weight:800;letter-spacing:-.5px;line-height:1.12;color:var(--kp-head)}
.kr-static .lead p{font-size:13.5px;color:var(--kp-ink-2);line-height:1.5}
.kr-static .eyebrow{font:500 11px var(--kp-mono);letter-spacing:.6px;color:var(--kp-muted)}
.kr-static .prose{max-width:none;gap:10px;background:#fff;border:1px solid var(--kp-line);border-radius:16px;padding:14px 16px;font-size:13px}
.kr-static .prose h2{font-size:15.5px;font-weight:700;margin-top:8px;color:var(--kp-head);letter-spacing:0}
.kr-static .prose h3{font-size:13.5px}
.kr-static .prose p,.kr-static .prose li{font-size:13px;line-height:1.55}
.kr-static .prose table{font-size:12.5px}
.kr-static .prose th{background:var(--kp-bg);color:var(--kp-muted);font-size:12px;font-weight:600}
.kr-static .prose th,.kr-static .prose td{padding:7px 9px;border-bottom-color:var(--kp-soft)}
.kr-static .card{background:#fff;border:1px solid var(--kp-line);border-radius:14px;padding:12px 14px;gap:6px;font-size:13px}
.kr-static .card h2,.kr-static #plus>h2{font-size:15.5px;font-weight:700;color:var(--kp-head)}
.kr-static .btn{height:var(--kp-ctl);padding:0 12px;border-radius:var(--kp-r);font:600 12.5px var(--kp-font);border-color:var(--kp-line-3)}
.kr-static .btn.primary{background:var(--kp-coral);border-color:var(--kp-coral)}
.kr-static .muted{color:var(--kp-muted)}
.kr-static .small{font-size:11.5px}
.kr-static .err{background:#FDECEA;color:#7A1F14;border-radius:10px;padding:10px 12px}
.kr-static footer{font-size:12px;padding-block:18px}
.kr-static footer .wrap{max-width:900px}
.kr-static input:not([type=checkbox]):not([type=radio]){font:600 13px var(--kp-font)}
@media (max-width:699px){.kr-static main.wrap{padding:12px 16px 32px}.kr-static .lead h1{font-size:24px}.kr-static footer a{min-height:44px;display:inline-flex;align-items:center}}
.pp.kr-newsart>article{background:#fff;border:1px solid var(--kp-line);border-radius:16px;display:flex;flex-direction:column;gap:0}

/* the verdict words for getting in (kp_rest.verdict): In every year, In most years, Some years, Not recently, Can't tell */
.kr-verdict{display:flex;flex-direction:column;gap:1px;min-width:0}
.kr-verdict b{font-size:14px;line-height:1.2}
.kr-verdict span{font-size:11.5px;color:var(--kp-muted);line-height:1.35}

/* Could we get in? (get_in.py): the verdict counts, a form that lines up, the button full width on a phone */
.kr-sum>div{padding:9px 12px}
.kr-sum b{font-size:22px}
.kr-sum+.pg-src{margin-top:-4px}
.gi-form.pg-form{align-items:flex-end}
.gi-form .pg-f label{min-height:16px}
.gi-answer{font-size:12.5px;color:var(--kp-ink-2);margin:0 0 6px}
.pg-sc .pg-verdict .kr-verdict{flex:1 1 260px}
@media (max-width:699px){
  .kr-sum{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px}
  .kr-sum>div{padding:8px}
  .kr-sum b{font-size:19px}
  .kr-sum span{font-size:11px;line-height:1.25;display:block}
  .gi-form.pg-form .pg-go{flex:1 1 100%;width:100%}
}

/* the league tables' hubs (/league, /league/<council>) */
.kr-chips{display:flex;gap:6px;flex-wrap:wrap}
.kr-bigchip{height:30px;padding:0 12px;font-size:12.5px}
.kr-bigchip:hover{border-color:var(--kp-teal)}
.kr-cards4{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.kr-top{list-style:none;padding:0!important;margin:0;display:flex;flex-direction:column}
.kr-top li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;align-items:start;padding:6px 0;border-top:1px solid var(--kp-soft);margin:0}
.kr-top li:first-child{border-top:0}
.kr-top small{display:block;font-size:11.5px;color:var(--kp-muted)}
.kr-top a{font-weight:600;text-decoration:none}
.kr-pos{width:22px;height:22px;border-radius:22px;background:var(--kp-teal);color:#fff;font:700 11px/22px var(--kp-font);text-align:center}
@media (max-width:699px){.kr-cards4{grid-template-columns:minmax(0,1fr)}.kr-bigchip{min-height:44px}}

/* Catchment finder (catchment_finder.py, catchment-map.js): the real map, its pop-ups, the next steps, the picker */
.kr-cfmap{position:relative}
.kr-leaflet{height:440px;width:100%;background:#EEF3F1}
.kr-maploading{position:absolute;left:10px;top:10px;margin:0;background:rgba(255,255,255,.95);border-radius:8px;padding:4px 9px;z-index:500}
.kr-mapfoot{display:flex;align-items:center;justify-content:space-between;gap:8px}
.kr-pin{background:none;border:0}
.kr-pop{display:flex;flex-direction:column;gap:4px;font:400 12px/1.4 var(--kp-font);color:var(--kp-ink);min-width:190px}
.kr-pop b{font-size:13px;color:var(--kp-head)}
.kr-pop span{color:var(--kp-muted)}
.kr-popacts{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:4px}
.kr-popacts a{font-weight:600;color:var(--kp-head)}
.kr-acts{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:6px}
.kr-pick{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}
.kr-pick label{flex:1 1 100%;font-size:12px;font-weight:600;color:var(--kp-muted)}
.kr-pick select{height:var(--kp-ctl);border:1px solid var(--kp-line-3);border-radius:8px;padding:0 9px;font:600 13px var(--kp-font);
  color:var(--kp-head);background:#fff;flex:1 1 260px;max-width:420px}
.kr-fold summary{margin:6px 0}
@media (max-width:699px){.kr-leaflet{height:360px}.kr-pick select,.kr-pick .kp-btn{width:100%;max-width:none}
  .kr-popacts a,.kr-popacts .kp-keep{min-height:44px;display:inline-flex;align-items:center}}
.kr-cfmap.is-live>svg.pg-map{display:none}
.pg-mapc .kr-leaflet svg{width:auto;height:auto;max-width:none;background:transparent;display:inline}
.pg-mapc .kr-leaflet .leaflet-pane>svg{display:block}

/* After offer day (after_offers.py, after-offers.js): the school finder, the reminders card, the stacked table */
.kr-aotop{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:13px;align-items:start}
.kr-aoform{border:0;padding:0;max-width:none}
.kr-aocard{border-top:1px solid var(--kp-soft);padding-top:10px;display:flex;flex-direction:column;gap:6px}
.kr-aocard h3{margin:0;font-size:15px;color:var(--kp-head)}
.kr-aofacts,.kr-aodates{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px;font-size:13px}
.kr-aofacts li::before{content:"\2022";color:var(--kp-coral);margin-right:6px}
.kr-aodates li{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--kp-soft);padding:5px 0}
.kr-aodates span{color:var(--kp-ink-2);text-align:right}
@media (max-width:900px){.kr-aotop{grid-template-columns:minmax(0,1fr)}}
@media (max-width:699px){
  table.kr-stack,table.kr-stack tbody,table.kr-stack tr,table.kr-stack td{display:block;width:100%}
  table.kr-stack thead{display:none}
  table.kr-stack tr{border-top:1px solid var(--kp-soft);padding:8px 0}
  table.kr-stack td{border:0!important;padding:2px 0!important;text-align:left!important}
  table.kr-stack td[data-label]{display:flex;justify-content:space-between;gap:10px;font-size:12.5px}
  table.kr-stack td[data-label]::before{content:attr(data-label);color:var(--kp-muted)}
  table.kr-stack td:first-child{font-weight:600}
  .ao .tw table.kr-stack{min-width:0!important}
  .ao table.steps,.ao table.steps tbody,.ao table.steps tr,.ao table.steps td{display:block;width:100%}
  .ao table.steps thead{display:none}
  .ao table.steps tr{border-top:1px solid var(--kp-soft);padding:8px 0}
  .ao table.steps td{border:0!important;padding:2px 0!important}
  .ao table.steps td:first-child{font-weight:700;color:var(--kp-head)}
  .ao .tw table.steps{min-width:0!important}
  .kr-aodates li{flex-direction:column;gap:0}.kr-aodates span{text-align:left}
}

/* rhythm (owner, 20 Oct): 24px between sections on a computer, 16px on a phone */
.pg-main.kr-main,.pg-main.kr-news,.kr-hwk,.kr-school>.sv{gap:24px}
@media (max-width:699px){.pg-main.kr-main,.pg-main.kr-news,.kr-hwk,.kr-school>.sv{gap:16px}}
