:root{--bg:#fbfaf8;--surface:#ffffff;--line:#e6e2db;--line-soft:#f0ece5;--ink:#1c1a17;--ink-2:#57514a;--ink-3:#8a8279;--accent:#1f5f4b;--accent-soft:#e8f2ee;--accent-ink:#123c2f;--ok:#1f7a4d;--ok-bg:#e4f3ea;--warn:#8a5a12;--warn-bg:#fdf1dc;--full:#8a2c26;--full-bg:#fbe7e5;--radius:10px;--shadow:0 1px 2px rgba(28,26,23,.06),0 4px 14px rgba(28,26,23,.05);--shell:1200px;--measure:66ch}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-feature-settings:"tnum" 0}.wrap{max-width:var(--shell);margin:0 auto;padding:0 clamp(14px,4vw,28px) 64px}.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.tablewrap>table{min-width:20rem}.tablewrap>table.vac{min-width:0}.skip{position:absolute;left:-9999px}.skip:focus{left:8px;top:8px;background:var(--surface);padding:8px 12px;z-index:9}a{color:var(--accent-ink);text-underline-offset:2px}h1,h2,h3,h4{line-height:1.2;letter-spacing:-.015em}.muted{color:var(--ink-3)}.small{font-size:.875rem}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.hero{padding:48px 0 20px}.hero h1{font-size:clamp(1.7rem, 4.2vw, 2.6rem);margin:0 0 .5em;max-width:20ch}.lede{font-size:1.05rem;color:var(--ink-2);max-width:var(--measure);margin:0}.search{margin:24px 0 8px}.search-row{display:flex;gap:8px}.search input{flex:1;min-width:0;font:inherit;font-size:1.05rem;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.search input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.search button{font:inherit;font-weight:600;padding:14px 22px;border:0;cursor:pointer;border-radius:var(--radius);background:var(--accent);color:#fff}@media (prefers-color-scheme:dark){:root{--bg:#14130f;--surface:#1c1b17;--line:#33302a;--line-soft:#26241f;--ink:#f2efe9;--ink-2:#bdb6ab;--ink-3:#8c857a;--accent:#7dc4a8;--accent-soft:#1d2f29;--accent-ink:#b9e3d2;--ok:#7dc98f;--ok-bg:#16301f;--warn:#e0b263;--warn-bg:#33260f;--full:#e58b83;--full-bg:#331917;--shadow:0 1px 2px rgba(0,0,0,.4),0 4px 14px rgba(0,0,0,.3)}a{color:var(--accent)}.search button{color:#0d1a15}}.hint{color:var(--ink-3);font-size:.875rem;margin:8px 2px 0}.refine{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin:18px 0 8px;box-shadow:var(--shadow)}.refine fieldset{border:0;margin:0;padding:0;min-width:0}.refine legend{font-size:.78rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);padding:0 0 8px}.chiprow{display:flex;flex-wrap:wrap;gap:6px}.chip{font:inherit;font-size:.875rem;padding:6px 11px;border-radius:999px;cursor:pointer;border:1px solid var(--line);background:0 0;color:var(--ink-2)}.chip:hover{border-color:var(--ink-3)}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.dob{margin-top:12px}.dob summary{cursor:pointer;font-size:.875rem;color:var(--accent-ink)}@media (prefers-color-scheme:dark){.chip.on{color:#0d1a15}.dob summary{color:var(--accent)}}.dob-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:10px 0}.dob-row label{font-size:.875rem;color:var(--ink-2);display:flex;gap:6px;align-items:center}.dob-row input,.dob-row select{font:inherit;font-size:.9rem;padding:6px 8px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}#dobOut{display:block;font-size:.95rem;padding:8px 0}.linkish{font:inherit;font-size:.9rem;background:var(--accent-soft);color:var(--accent-ink);border:0;border-radius:999px;padding:4px 12px;cursor:pointer;font-weight:600}.res-head{padding:26px 0 4px}.res-head h2{margin:0 0 4px;font-size:1.25rem}.approx{color:var(--warn)}.bandhead{font-size:.82rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);margin:26px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--line-soft);display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.bandhead span{text-transform:none;letter-spacing:0}.legend{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:10px 0 0}.r{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin-bottom:8px;position:relative;cursor:pointer;transition:border-color .12s,box-shadow .12s}.r-main{min-width:0}.r h3{margin:0 0 4px;font-size:1.02rem}.r h3 a{color:inherit;text-decoration:none}.r h3 a:hover{text-decoration:underline}.r-meta{margin:0 0 8px;font-size:.84rem;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.r-fee{text-align:right;flex:0 0 auto}.r-num{font-size:1.22rem;font-weight:700;font-variant-numeric:tabular-nums}.per{color:var(--ink-3);font-size:.85rem}.pills{display:flex;flex-wrap:wrap;gap:4px}.pill{font-size:.72rem;padding:2px 8px;border-radius:999px;font-weight:600}.pill.dim{opacity:.38}.p-A{background:var(--ok-bg);color:var(--ok)}.p-L{background:var(--warn-bg);color:var(--warn)}.p-F{background:var(--full-bg);color:var(--full)}.chip-aop,.chip-moe_kindergarten,.chip-pop{background:var(--accent-soft);color:var(--accent-ink);border-color:transparent}@media (prefers-color-scheme:dark){.chip-aop,.chip-moe_kindergarten,.chip-pop{color:var(--accent)}}.chip-warn{background:var(--warn-bg);color:var(--warn);border-color:transparent}.more{display:block;width:100%;font:inherit;padding:12px;margin-top:10px;cursor:pointer;background:0 0;border:1px dashed var(--line);border-radius:var(--radius);color:var(--ink-2)}.empty{padding:40px 0;max-width:var(--measure)}.crumb{padding:20px 0 0;font-size:.875rem;color:var(--ink-3)}.centre-head{padding:12px 0 20px;border-bottom:1px solid var(--line);margin-bottom:24px}.centre-head h1{font-size:clamp(1.5rem, 3.6vw, 2.15rem);margin:0 0 12px}.answer{font-size:1.05rem;color:var(--ink-2);max-width:var(--measure);margin:0 0 14px}.chips{display:flex;flex-wrap:wrap;gap:6px}.cols{display:grid;gap:28px;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr)}@media (max-width:820px){.cols{grid-template-columns:minmax(0,1fr)}}.caveat{font-size:.875rem;color:var(--ink-2);background:var(--warn-bg);border-left:3px solid var(--warn);padding:10px 14px;border-radius:0 8px 8px 0;max-width:var(--measure)}.caveat-warn{background:var(--full-bg);border-left-color:var(--full);color:var(--ink);font-size:.9375rem}.ext{font-size:.8em;opacity:.7}abbr[title]{text-decoration:underline dotted;text-underline-offset:3px;cursor:help}.r-sub{margin-top:4px;font-weight:600;color:var(--ok);font-size:.9375rem}.r-sub .per{font-weight:400;color:var(--ink-3)}.checked{margin:10px 0 0;font-size:.9375rem;color:var(--ink-2)}.checked b{color:var(--ok)}.prov{display:inline-block;margin-top:6px;font-size:.8125rem;line-height:1.45}.hl-sub-fee .hl-num2{color:var(--ok)}.sub-panel{margin:14px 0 0;max-width:var(--measure)}.sub-panel>summary{cursor:pointer;font-size:.9375rem;color:var(--accent-ink);padding:8px 0;text-underline-offset:3px}.sub-panel>summary:hover{text-decoration:underline}.subtable{width:100%;border-collapse:collapse;font-size:.9375rem;margin:6px 0 10px}.subtable th[scope=col]{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);border-bottom:1px solid var(--line);padding:6px 10px 6px 0}.subtable td,.subtable th[scope=col]:not(:first-child){text-align:right}.subtable th[scope=row]{text-align:left;font-weight:400;color:var(--ink-2)}.subtable td,.subtable th[scope=row]{padding:7px 10px 7px 0;border-bottom:1px solid var(--line-soft)}.subtable tbody tr:last-child td,.subtable tbody tr:last-child th{border-bottom:0}.firstmonth-break{margin:8px 0 0;max-width:var(--measure)}.vac th .mo{display:block}.vac th .mo-now{display:block;font-size:.625rem;font-weight:400;letter-spacing:.06em;color:var(--accent);text-transform:uppercase}.level{margin:26px 0 34px}.level h3{font-size:1.1rem;margin:0 0 12px;display:flex;gap:8px;align-items:baseline}.age{font-size:.8rem;font-weight:400;color:var(--ink-3)}.headline{display:flex;flex-wrap:wrap;gap:10px 28px;align-items:flex-start;background:var(--accent-soft);border-radius:var(--radius);padding:14px 18px;margin-bottom:14px}.hl-num{font-size:1.7rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent-ink)}.hl-num2{font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums}@media (prefers-color-scheme:dark){.hl-num,.sub-panel>summary{color:var(--accent)}}.hl-sub{font-size:.8rem;color:var(--ink-2);max-width:26ch}table{border-collapse:collapse;width:100%;font-size:.9rem}.fees,.vac{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.fees td,.fees th,.vac td,.vac th{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line-soft)}.fees thead th,.vac thead th{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);background:var(--line-soft)}.fees td{font-variant-numeric:tabular-nums}.fees tbody tr:last-child td,.fees tbody tr:last-child th{border-bottom:0}.fees .na{color:var(--ink-3)}.tag{font-size:.68rem;padding:1px 7px;border-radius:999px;background:var(--line-soft);color:var(--ink-2);font-weight:600}.tag-warn{background:var(--warn-bg);color:var(--warn)}.vac{margin-top:14px}.vac caption{caption-side:bottom;text-align:left;font-size:.8rem;color:var(--ink-3);padding-top:8px}.vac td.v{text-align:center;font-weight:600;font-size:.82rem}.v-available{background:var(--ok-bg);color:var(--ok)}.v-limited{background:var(--warn-bg);color:var(--warn)}.v-full{background:var(--full-bg);color:var(--full)}.v-not_applicable{color:var(--ink-3)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:16px;box-shadow:var(--shadow)}.card h2{font-size:1rem;margin:0 0 12px}.card dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:.9rem}.card dt{color:var(--ink-3)}.card dd{margin:0}.charge-group{margin-bottom:12px}.charge-group h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin:0 0 6px}.charge-group ul{list-style:none;margin:0;padding:0;font-size:.9rem}.charge-group li{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px solid var(--line-soft)}.charge-group li b{font-variant-numeric:tabular-nums}.r h3 a::after{content:"";position:absolute;inset:0;z-index:1}.r:hover{border-color:var(--accent);box-shadow:var(--shadow)}.r:focus-within{border-color:var(--accent)}.r h3 a:focus-visible::after{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--radius)}.r .cmp-pick,.r .r-fee a,.r .r-meta a{position:relative;z-index:2}.cmp-pick{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:.82rem;color:var(--ink-2);cursor:pointer;user-select:none}.cmp-pick input{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}.cmp-pick input:disabled{cursor:not-allowed}.cmp-pick:has(input:disabled){color:var(--ink-3);cursor:not-allowed}.r-on{outline:2px solid var(--accent);outline-offset:-1px}.cmp-link{font-size:.8rem}.cmpbar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -4px 20px rgba(28,26,23,.1);padding:10px clamp(14px,4vw,28px);padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}.cmpbar-in{max-width:var(--shell);margin:0 auto;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.cmpbar-names{display:flex;gap:8px;align-items:center;min-width:0;flex:1 1 12rem}.cmpbar-chip{display:inline-flex;align-items:center;gap:4px;font-size:.82rem;background:var(--accent-soft);color:var(--accent-ink);border-radius:999px;padding:5px 6px 5px 12px;min-width:0;flex:0 1 auto}.cmpbar-nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.cmpbar-chip button{border:0;background:0 0;color:inherit;cursor:pointer;font-size:1rem;line-height:1;padding:0 4px}.cmpbar-hint{font-size:.82rem;color:var(--ink-3)}.cmpbar-go{background:var(--accent);color:#fff;border-radius:8px;padding:9px 16px;font-weight:600;font-size:.9rem;text-decoration:none;white-space:nowrap}.cmpbar-go.off{background:var(--line);color:var(--ink-3);cursor:not-allowed}@media (prefers-color-scheme:dark){.cmpbar-go{color:#0d1a15}.cmpbar-chip{color:var(--accent)}}.cmp-head h1{font-size:clamp(1.3rem, 3.4vw, 1.9rem);margin:8px 0 4px}.cmp-head .vs{color:var(--ink-3);font-weight:400}.cmp-controls{display:flex;gap:14px;flex-wrap:wrap;margin:14px 0 18px}.cmp-controls label{font-size:.82rem;color:var(--ink-3);display:flex;gap:6px;align-items:center}.cmp-controls select{font:inherit;font-size:.9rem;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}table.cmp{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}table.cmp td,table.cmp th{padding:10px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line-soft)}table.cmp thead th{background:var(--line-soft);font-size:.9rem}table.cmp thead th a{font-weight:700}.tablewrap>table.cmp{min-width:30rem}table.cmp th[scope=row]{font-weight:400;color:var(--ink-2);font-size:.85rem;width:34%;min-width:8rem;max-width:11rem;position:sticky;left:0;z-index:1;background:var(--surface)}table.cmp thead th:first-child{position:sticky;left:0;z-index:2;background:var(--line-soft)}table.cmp td{min-width:8.5rem}table.cmp .rn{display:block;font-size:.72rem;color:var(--ink-3);font-weight:400}table.cmp .best{font-weight:700}table.cmp .lowest{display:inline-block;margin-left:6px;font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ok);background:var(--ok-bg);border-radius:999px;padding:1px 7px;vertical-align:2px}table.cmp .ok{color:var(--ok)}table.cmp .warn{color:var(--full)}table.cmp .na{color:var(--ink-3)}table.cmp .drop{display:block;margin-top:4px;border:0;background:0 0;color:var(--ink-3);font-size:.72rem;cursor:pointer;padding:0;text-decoration:underline}.btn{display:inline-block;background:var(--accent);color:#fff;border-radius:8px;padding:10px 18px;font-weight:600;text-decoration:none}@media (prefers-color-scheme:dark){.btn{color:#0d1a15}}.faq,.nearby{margin:44px 0 0;padding-top:24px;border-top:1px solid var(--line)}.faq h2,.nearby h2{font-size:1.15rem;margin:0 0 14px}.qa{margin:0 0 18px;max-width:var(--measure)}.qa h3{font-size:.98rem;margin:0 0 4px}.qa p{margin:0;color:var(--ink-2);font-size:.92rem}.nearlist{list-style:none;margin:0;padding:0;display:grid;gap:2px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.nearlist li{padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:.92rem}.near-meta{display:block;color:var(--ink-3);font-size:.8rem}.about,.notices{margin:56px 0 0;padding-top:28px;border-top:1px solid var(--line)}.about h2,.notices h2{font-size:1.15rem;margin:0 0 6px}.notices>.muted{max-width:var(--measure);font-size:.9rem;margin:0 0 20px}.notice{display:grid;gap:4px 22px;grid-template-columns:11rem minmax(0,1fr);padding:16px 0;border-top:1px solid var(--line-soft)}.notice:first-of-type{border-top:0}.notice h3{font-size:1rem;margin:0 0 6px}.notice p{margin:0;font-size:.92rem;color:var(--ink-2);max-width:var(--measure)}.notice-when{font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--accent-ink);padding-top:2px}@media (prefers-color-scheme:dark){.notice-when{color:var(--accent)}}.notice-src{margin-top:8px!important;font-size:.82rem!important}@media (max-width:640px){.notice{grid-template-columns:minmax(0,1fr);gap:6px}}.about p{max-width:var(--measure);color:var(--ink-2);font-size:.95rem;margin:0 0 14px}.about-sig{border-left:3px solid var(--line);padding-left:14px}.site-foot{border-top:1px solid var(--line);padding:24px 20px 48px}.site-foot p{max-width:var(--measure);margin:0 auto 8px;font-size:.84rem;color:var(--ink-3)}@media (max-width:560px){.r{flex-direction:column;gap:8px}.r-fee{text-align:left}.search-row{flex-direction:column}.fees,.subtable{font-size:.82rem}.fees td,.fees th,.vac td,.vac th{padding:7px 8px}.vac td.v{font-size:.72rem}.vac th .mo{font-size:.7rem}.headline{gap:12px;flex-direction:column}.hl-num{font-size:1.5rem}.hl-sub{max-width:none}.card dl{grid-template-columns:1fr;gap:2px 0}.card dt{margin-top:8px;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}}