/* Holidays and Dates: friendly, bright, rounded. Mobile first. Body uses system fonts; headings use the self-hosted Chewy kids font. */
@font-face{font-family:"Chewy";src:url(fonts/chewy-latin-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
:root{
  --bg:#f3f9ff;--paper:#fff;--ink:#17285c;--muted:#51608a;--line:#d9e6fb;
  --blue:#2563eb;--blue-d:#1747b8;--coral:#ff4f6d;--sun:#ffc928;--mint:#2ec796;--lav:#8b6cff;--sky:#38b6ff;
  --link:#1747b8;--link-hover:#d6244a;
  --sec:var(--blue);--sec-tint:#e4eeff;--sec-soft:#c9dcff;
  --head:"Chewy","Baloo 2",ui-rounded,"SF Pro Rounded","Nunito","Varela Round","Arial Rounded MT Bold","Segoe UI Variable Display","Trebuchet MS",system-ui,sans-serif;
  --body:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --col:44rem;--wide:68rem;--r:22px;
  --shadow:0 6px 18px rgba(23,40,92,.10);
}
body.sec-school{--sec:#0ea5a4;--sec-tint:#dcf6f5;--sec-soft:#aeeceb}
body.sec-public{--sec:var(--coral);--sec-tint:#ffe6ea;--sec-soft:#ffc2cd}
body.sec-long{--sec:#f5a300;--sec-tint:#fff2cc;--sec-soft:#ffe08a}
body.sec-other{--sec:var(--lav);--sec-tint:#ece6ff;--sec-soft:#d4c8ff}
body.home{--sec:var(--blue);--sec-tint:#e4eeff;--sec-soft:#c9dcff}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:1rem}
body{margin:0;background:var(--bg);color:var(--ink);font:1.0625rem/1.65 var(--body)}
a{color:var(--link);text-decoration-thickness:2px;text-underline-offset:.2em;text-decoration-color:color-mix(in srgb,var(--link) 35%,transparent)}
a:hover{color:var(--link-hover);text-decoration-color:currentColor}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:8px}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:.7rem 1rem;z-index:10}
.skip:focus{left:0}
.wrap{max-width:var(--wide);margin:0 auto;padding:0 1rem}
@media (min-width:700px){.wrap{padding:0 1.5rem}}

/* header */
header.site{background:#fff;box-shadow:0 2px 0 var(--line)}
header.site .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.2rem;padding-top:.65rem;padding-bottom:.65rem}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink);margin-right:auto}
.brand .logo{display:block;width:42px;height:42px;object-fit:contain}
.brand-name{font:900 1.4rem/1.05 var(--head);letter-spacing:-.01em;color:var(--blue-d)}
.tools{font:800 .92rem var(--body)}
.search-link{color:#fff;background:var(--coral);border-radius:99px;padding:.5rem 1.15rem;text-decoration:none;display:inline-block;box-shadow:0 3px 0 #d93556}
.search-link:hover{background:#e63a5a;color:#fff}
nav.main{order:3;flex:1 0 100%;display:flex;flex-wrap:wrap;gap:.3rem;font:800 .92rem var(--body)}
nav.main a{color:var(--ink);text-decoration:none;padding:.4rem .9rem;border-radius:99px}
nav.main a:hover{background:var(--sec-tint)}
nav.main a[aria-current]{background:var(--blue);color:#fff}
@media (min-width:820px){nav.main{order:0;flex:0 1 auto;margin-left:.8rem}.brand{margin-right:0}header.site .wrap{flex-wrap:nowrap}.tools{margin-left:auto}}

/* hero */
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--sec-tint),var(--bg))}
.hero::before{content:"";position:absolute;width:15rem;height:15rem;right:-4rem;top:-6rem;border-radius:50%;background:radial-gradient(circle,#ffe27a 0 38%,rgba(255,226,122,.0) 70%);pointer-events:none}
.hero::after{content:"";position:absolute;width:20rem;height:20rem;left:-9rem;bottom:-12rem;border-radius:50%;background:var(--sec-soft);opacity:.55;pointer-events:none}
.hero .wrap{position:relative;z-index:1;padding-top:1.1rem;padding-bottom:1.7rem}
.hero-grid{display:grid;gap:1rem;align-items:center}
.hero-art{display:none}
.hero-art.spare{display:none}
.hero-art img{display:block;width:100%;height:auto;border-radius:var(--r)}
.hero-art:has(img){display:block}
@media (min-width:860px){.hero-grid:has(.hero-art img){grid-template-columns:1.05fr .95fr}}
.crumbs{font:700 .82rem var(--body);margin-bottom:.5rem;color:var(--muted)}
.crumbs a{color:var(--blue-d)}
h1{font:900 clamp(1.9rem,7vw,3rem)/1.1 var(--head);letter-spacing:-.015em;margin:.1em 0 0;max-width:20em;text-wrap:balance;color:var(--ink)}
body.home h1{font-size:clamp(2.2rem,8.5vw,3.7rem)}
h1::after{content:"";display:block;width:5rem;height:8px;border-radius:99px;margin-top:.7rem;background:linear-gradient(90deg,var(--coral),var(--sun),var(--mint))}

main{padding:1.2rem 0 3.5rem}
main .wrap>p,main .wrap>ul,main .wrap>ol,main .wrap>h2,main .wrap>h3,main .wrap>.quick,main .wrap>.toc,main .wrap>form,main .wrap>#results{max-width:var(--col)}
h2{font:900 clamp(1.4rem,4.2vw,1.8rem)/1.2 var(--head);letter-spacing:-.01em;margin:2.6rem 0 .8rem;text-wrap:balance}
h2::after{content:"";display:block;width:3rem;height:6px;border-radius:99px;background:var(--sec);margin-top:.5rem}
h3{font:800 1.1rem/1.35 var(--head);margin:1.6rem 0 .2rem}
h3+p{margin-top:.2rem}
p{margin:.8em 0}
ul{padding-left:1.25rem}li{margin:.35em 0}li::marker{color:var(--coral);font-weight:900}

/* quick answer */
.quick{position:relative;background:var(--paper);border-radius:var(--r);box-shadow:var(--shadow);border-left:10px solid var(--sec);padding:1.6rem 1.2rem 1.1rem 1.2rem;margin:1.6rem 0}
.quick h2{position:absolute;top:-.8rem;left:1rem;margin:0;padding:.3rem .85rem;background:var(--sec);color:#fff;font:900 .72rem/1 var(--body);text-transform:uppercase;letter-spacing:.1em;border-radius:99px}
.quick h2::after{display:none}
.lede{font-size:1.15rem;line-height:1.55;margin:0;font-weight:500}
@media (min-width:700px){.quick{padding:1.8rem 1.6rem 1.3rem}.lede{font-size:1.22rem}}

/* on this page */
.toc{margin:1.4rem 0}
.toc p{margin:0 0 .5rem;font:900 .72rem var(--body);text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.toc ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}
.toc li{margin:0}
.toc a{display:inline-block;font:700 .86rem/1.3 var(--body);color:var(--ink);text-decoration:none;background:#fff;border:2px solid var(--line);border-radius:99px;padding:.4rem .85rem}
.toc a:hover{background:var(--sec-tint);border-color:var(--sec)}

/* tables */
.tablewrap{overflow-x:auto;margin:1.2rem 0;border-radius:var(--r);background:#fff;box-shadow:var(--shadow)}
table{border-collapse:separate;border-spacing:0;width:100%;font:.94rem/1.4 var(--body);font-variant-numeric:tabular-nums}
th{background:var(--sec);color:#fff;font:900 .72rem var(--body);text-transform:uppercase;letter-spacing:.08em;text-align:left;padding:.75rem .9rem;white-space:nowrap}
td{padding:.7rem .9rem;border-bottom:1px solid var(--line);vertical-align:top}
tbody tr:nth-child(even) td{background:#f7fbff}
tr:last-child td{border-bottom:0}
td.nowrap{white-space:nowrap}
table.stick th:first-child,table.stick td:first-child{position:sticky;left:0;font-weight:800;box-shadow:2px 0 0 var(--line)}
table.stick th:first-child{background:var(--sec)}
table.stick td:first-child{background:#fff}
table.stick tbody tr:nth-child(even) td:first-child{background:#f7fbff}
.dot{display:inline-block;width:.75rem;height:.75rem;border-radius:50%;margin-right:.5rem;vertical-align:-.05rem;background:var(--c,var(--sun))}
@media (max-width:600px){td,th{padding:.55rem .65rem}table{font-size:.88rem}}

/* state colours (pastel tile + strong dot) */
[data-s=nsw]{--c:#2f9be1;--t:#d9eeff;--cf:#fff}
[data-s=vic]{--c:#3d5bd9;--t:#dfe5ff;--cf:#fff}
[data-s=qld]{--c:#c0306a;--t:#ffdcea;--cf:#fff}
[data-s=wa]{--c:#f2a900;--t:#fff0c2;--cf:#17285c}
[data-s=sa]{--c:#e5384b;--t:#ffe0e3;--cf:#fff}
[data-s=tas]{--c:#2fb36e;--t:#d9f6e6;--cf:#fff}
[data-s=act]{--c:#12a8b0;--t:#d3f4f6;--cf:#fff}
[data-s=nt]{--c:#f26b1d;--t:#ffe4d2;--cf:#fff}

/* the tool: tear-off calendar card */
.leaf{background:#fff;border-radius:26px;box-shadow:0 10px 28px rgba(23,40,92,.14);margin:1.6rem 0 2.2rem;max-width:var(--wide);overflow:hidden}
.chips{border:0;margin:0;padding:1rem 1rem .9rem;display:flex;flex-wrap:wrap;gap:.5rem;background:linear-gradient(135deg,#e4eeff,#fff0c2)}
.chips legend{font:900 .75rem var(--body);text-transform:uppercase;letter-spacing:.1em;color:var(--ink);padding:0 0 .6rem;float:left;width:100%}
.chip{position:relative}
.chip input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer;width:100%;height:100%}
.chip span{display:inline-flex;align-items:center;gap:.4rem;min-width:3.6rem;justify-content:center;padding:.5rem .9rem;border-radius:99px;font:800 .92rem var(--body);background:#fff;color:var(--ink);box-shadow:0 2px 0 rgba(23,40,92,.14)}
.chip span::before{content:"";width:.65rem;height:.65rem;border-radius:50%;background:var(--c)}
.chip input:hover+span{transform:translateY(-1px);box-shadow:0 4px 0 rgba(23,40,92,.18)}
.chip input:checked+span{background:var(--c);color:var(--cf);box-shadow:0 3px 0 rgba(23,40,92,.28)}
.chip input:checked+span::before{background:#fff}
.chip input:focus-visible+span{outline:3px solid var(--blue);outline-offset:3px}
.leaf-body{display:grid;grid-template-columns:6.2rem 1fr}
.leaf-date{text-align:center;padding:.9rem .4rem;background:var(--coral);color:#fff;display:flex;flex-direction:column;justify-content:center;font-family:var(--body)}
.leaf-date:empty{display:none}
.leaf-date:empty+.leaf-out{grid-column:1/-1}
.leaf-date .wd,.leaf-date .mm{font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.14em}
.leaf-date .dd{font:900 3rem/1 var(--head);margin:.1rem 0}
.leaf-out{padding:1rem 1.2rem;font-size:1.02rem}
.leaf-out p{margin:.3em 0}
.leaf-out .big{display:block;font:900 1.4rem/1.2 var(--head);margin-bottom:.45rem}
.leaf-out .yes{color:#0b8a5c}
.leaf-out .more{display:inline-block;margin-top:.4rem;font-weight:800}
.coming{border-top:2px dashed var(--line);padding:.9rem 1.2rem 1.1rem;background:#f7fbff}
.coming:empty{display:none}
.coming h3{margin:0 0 .5rem;font:900 .72rem var(--body);text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.coming ol{list-style:none;margin:0;padding:0;font:.94rem/1.4 var(--body)}
.coming li{display:grid;grid-template-columns:7.4rem 1fr;gap:.6rem;padding:.4rem 0;border-bottom:1px solid var(--line);margin:0}
.coming li:last-child{border-bottom:0}
.coming time{font-weight:800;font-variant-numeric:tabular-nums}
@media (max-width:520px){.leaf-body{grid-template-columns:1fr}.leaf-date{flex-direction:row;gap:.6rem;align-items:baseline;justify-content:flex-start;padding:.55rem 1rem}.leaf-date .dd{font-size:1.9rem}.coming li{grid-template-columns:6.4rem 1fr}}
.note{font:.85rem var(--body);color:var(--muted)}

/* home: icon tiles and state tiles */
.quick-links{list-style:none;margin:1.4rem 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem;max-width:var(--wide)}
@media (min-width:640px){.quick-links{grid-template-columns:repeat(5,1fr)}}
.quick-links li{margin:0}
.quick-links a{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;background:#fff;border-radius:var(--r);box-shadow:var(--shadow);padding:1rem .6rem;text-decoration:none;color:var(--ink);font:800 1rem/1.25 var(--body);height:100%}
.quick-links a:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(23,40,92,.16)}
.ql-ico{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:var(--bgc,#e4eeff)}
.ql-ico img{width:44px;height:44px;object-fit:contain}
.ql-ico svg{width:34px;height:34px}
.states{list-style:none;margin:1rem 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem;max-width:var(--wide)}
@media (min-width:640px){.states{grid-template-columns:repeat(4,1fr)}}
.states li{margin:0}
.states a{display:block;background:var(--t);border-radius:var(--r);padding:.9rem 1rem;text-decoration:none;color:var(--ink);height:100%;border-bottom:5px solid var(--c)}
.states a:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.states b{display:block;font:900 1.4rem/1.1 var(--head);color:var(--c)}
.states a[data-s=wa] b{color:#9a6a00}
.states span{display:block;font:700 .85rem/1.35 var(--body);margin-top:.25rem}
.states small{display:block;font:800 .8rem/1.3 var(--body);color:var(--muted);margin-top:.35rem}
.mascot{display:block;max-width:12rem;height:auto;margin:1rem 0 0 auto}

/* search */
.searchform label{display:block;font:800 .9rem var(--body);margin-bottom:.4rem}
.searchrow{display:flex;gap:.5rem}
.searchrow input{flex:1;font:1rem var(--body);padding:.8rem 1.1rem;border:2px solid var(--line);border-radius:99px;background:#fff;color:var(--ink);min-width:0;box-shadow:var(--shadow)}
.searchrow button{font:900 .95rem var(--body);padding:.8rem 1.4rem;border:0;background:var(--coral);color:#fff;border-radius:99px;cursor:pointer;box-shadow:0 3px 0 #d93556}
.searchrow button:hover{background:#e63a5a}
#results{margin-top:1.2rem}
#results ol{list-style:none;padding:0;margin:0}
#results li{padding:.9rem 1.1rem;border-radius:16px;margin:.7rem 0;background:#fff;box-shadow:var(--shadow)}
#results a{font:900 1.1rem var(--head)}
#results p{margin:.2rem 0 0;color:var(--muted);font-size:.92rem}

/* footer */
footer.site{background:var(--ink);color:#d3dcf5;padding:2.4rem 0 2.6rem;font:.92rem/1.65 var(--body);margin-top:1rem;border-radius:34px 34px 0 0}
footer.site a{color:#fff;text-decoration-color:var(--sun)}
footer.site a:hover{color:var(--sun)}
footer.site h2{font:900 .75rem var(--body);text-transform:uppercase;letter-spacing:.12em;color:var(--sun);margin:0 0 .5rem}
footer.site h2::after{display:none}
.foot-grid{display:grid;gap:1.6rem;margin-bottom:1.6rem}
@media (min-width:760px){.foot-grid{grid-template-columns:repeat(3,1fr);gap:2.4rem}}
footer.site p{margin:.5em 0}
.fine{font-size:.82rem;color:#9fb0dc}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{header.site,footer.site,.chips,.toc,.skip,.quick-links,.states{display:none}body{background:#fff}.leaf,.quick,.tablewrap{box-shadow:none}.hero{background:#fff}.hero::before,.hero::after{display:none}}

/* ===== by-state tables: tabs on phones, compact on laptops ===== */
.statetabs{display:none;flex-wrap:wrap;gap:.4rem;margin:1rem 0 .2rem}
.statetabs button{font:800 .85rem var(--body);padding:.4rem .85rem;border-radius:99px;border:2px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}
.statetabs button[aria-pressed=true]{background:var(--c,var(--blue));border-color:var(--c,var(--blue));color:var(--cf,#fff)}
table.bystate td{font-size:.86rem;line-height:1.35;overflow-wrap:anywhere}
table.bystate th,table.bystate td{padding:.6rem .55rem}
table.bystate td:first-child,table.bystate th:first-child{min-width:5.5rem}
.bystate .yr{display:none}
@media (max-width:760px){
  .statetabs{display:flex}
  table.bystate .yr{display:inline}
  table.bystate td[data-s],table.bystate th[data-s]{display:none}
  table.bystate[data-show=nsw] [data-s=nsw],table.bystate[data-show=vic] [data-s=vic],table.bystate[data-show=qld] [data-s=qld],table.bystate[data-show=wa] [data-s=wa],
  table.bystate[data-show=sa] [data-s=sa],table.bystate[data-show=tas] [data-s=tas],table.bystate[data-show=act] [data-s=act],table.bystate[data-show=nt] [data-s=nt]{display:table-cell}
  table.bystate td{font-size:.95rem}
}
/* stacked tables on phones: one card per row, no sideways scroll */
@media (max-width:600px){
  table.stack,table.stack tbody,table.stack tr,table.stack td{display:block;width:100%}
  table.stack thead{position:absolute;left:-9999px}
  table.stack tr{padding:.7rem .9rem;border-bottom:3px solid var(--line)}
  table.stack tr:last-child{border-bottom:0}
  table.stack td{display:grid;grid-template-columns:7.2rem 1fr;gap:.6rem;padding:.3rem 0;border:0;background:transparent!important;white-space:normal!important;box-shadow:none!important;position:static!important}
  table.stack td::before{content:attr(data-label);font:800 .74rem/1.5 var(--body);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
  table.stack td:first-child{font-weight:900;font-size:1.02rem;display:block;padding-bottom:.35rem;color:var(--sec)}
  table.stack td:first-child::before{display:none}
}

/* ===== countdown ===== */
.cd-styles{display:flex;gap:.4rem;padding:.7rem 1rem 0;flex-wrap:wrap}
.cd-styles button,.sharebtn{font:800 .82rem var(--body);padding:.4rem .9rem;border-radius:99px;border:2px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}
.cd-styles button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.sharebtn{margin-left:auto;align-self:center;background:#fff}
.cd-out{padding:1rem 1.1rem 1.3rem}
.cd-title{margin:.2rem 0 .8rem;font-size:1.08rem}
.cd-empty{margin:.4rem 0;color:var(--muted)}
.cd-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.55rem;max-width:34rem}
.cd-box{display:flex;flex-direction:column;align-items:center;padding:.8rem .2rem .55rem;border-radius:16px;background:var(--sec-tint);position:relative}
.cd-num{font:900 clamp(1.7rem,8vw,2.8rem)/1 var(--head);font-variant-numeric:tabular-nums;color:var(--ink)}
.cd-lab{font:800 .7rem var(--body);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:.35rem}
.cd-out[data-style=flip] .cd-box{background:linear-gradient(180deg,#fff 0 49%,#eef4ff 51% 100%);box-shadow:0 4px 0 rgba(23,40,92,.15);border:2px solid var(--line)}
.cd-out[data-style=flip] .cd-box::after{content:"";position:absolute;left:0;right:0;top:calc(50% - 8px);height:2px;background:rgba(23,40,92,.18)}
.cd-out[data-style=led] .cd-box{background:#0f1c44;border-radius:12px}
.cd-out[data-style=led] .cd-num{color:#5cf2b8;font-family:ui-monospace,Consolas,monospace;text-shadow:0 0 12px rgba(92,242,184,.55)}
.cd-out[data-style=led] .cd-lab{color:#9fb0dc}
.cd-out[data-style=bubble] .cd-box{border-radius:50% 50% 50% 50%/60% 60% 40% 40%;aspect-ratio:1;justify-content:center;color:#fff}
.cd-out[data-style=bubble] .cd-box:nth-child(1){background:#ff4f6d}.cd-out[data-style=bubble] .cd-box:nth-child(2){background:#2563eb}
.cd-out[data-style=bubble] .cd-box:nth-child(3){background:#2ec796}.cd-out[data-style=bubble] .cd-box:nth-child(4){background:#8b6cff}
.cd-out[data-style=bubble] .cd-num,.cd-out[data-style=bubble] .cd-lab{color:#fff}
.cd-link{margin:.9rem 0 0}

/* ===== planner / compare ===== */
.planbar,.cmpbar{display:flex;flex-wrap:wrap;gap:.8rem 1.2rem;padding:.9rem 1.1rem;background:#f7fbff;border-bottom:2px dashed var(--line)}
.planbar label,.cmpbar label{font:800 .88rem var(--body);display:flex;flex-direction:column;gap:.3rem}
select{font:700 1rem var(--body);padding:.55rem .9rem;border:2px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);min-width:9rem}
.plan-out,.cmp-out{padding:1rem 1.1rem 1.2rem}
.plan-list{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.plan-list li{display:grid;grid-template-columns:5rem 1fr;gap:.9rem;align-items:center;background:#f7fbff;border-radius:18px;padding:.7rem .9rem;margin:0}
.plan-big{text-align:center;background:var(--mint);color:#06402c;border-radius:16px;padding:.5rem .2rem}
.plan-big b{display:block;font:900 1.9rem/1 var(--head)}.plan-big span{font:800 .68rem var(--body);text-transform:uppercase;letter-spacing:.08em}
.tag{display:inline-block;margin-left:.4rem;padding:.1rem .6rem;border-radius:99px;background:var(--sun);font:800 .72rem var(--body);color:var(--ink)}
.cmp-sum{margin:.1rem 0 .6rem}

/* ===== month calendar ===== */
.cal{padding:.9rem 1rem 1.1rem}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem;font:900 1.15rem var(--head)}
.cal-head button{width:2.6rem;height:2.6rem;border-radius:50%;border:2px solid var(--line);background:#fff;font-size:1.1rem;cursor:pointer;color:var(--ink)}
.cal-head button:disabled{opacity:.35;cursor:default}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-wd{font:800 .7rem var(--body);text-transform:uppercase;text-align:center;color:var(--muted);padding:.2rem 0}
.cal-pick{grid-column:1/-1;margin:.5rem 0;color:var(--muted)}
.cal-d{aspect-ratio:1;border:0;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 1px var(--line);font:700 .95rem var(--body);color:var(--ink);cursor:pointer;position:relative;padding:0}
.cal-d.is-we{color:var(--muted)}
.cal-d.is-break{background:#fff0c2;box-shadow:inset 0 0 0 1px #f5d77a}
.cal-d.is-ph::after{content:"";position:absolute;left:50%;bottom:5px;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:var(--coral)}
.cal-d.is-today{box-shadow:inset 0 0 0 3px var(--blue)}
.cal-d:hover{transform:scale(1.06)}
.cal-key{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;margin:.8rem 0 0;padding:0;font:700 .82rem var(--body)}
.cal-key li{margin:0;display:flex;align-items:center;gap:.4rem}
.cal-key i{width:1rem;height:1rem;border-radius:5px;display:inline-block;box-shadow:inset 0 0 0 1px var(--line);background:#fff}
.cal-key .k-break{background:#fff0c2}.cal-key .k-ph{background:var(--coral);border-radius:50%;width:.75rem;height:.75rem}
.cal-day{margin-top:.5rem;min-height:1.6rem}

/* ===== extras ===== */
.correction{margin:2.6rem 0 0;max-width:var(--col);background:#fff;border-radius:var(--r);box-shadow:var(--shadow);padding:1rem 1.2rem;border-left:8px solid var(--mint);font-size:.98rem}
.printrow{margin:.6rem 0 0}
.printbtn{font:800 .9rem var(--body);padding:.55rem 1.1rem;border-radius:99px;border:0;background:var(--mint);color:#06402c;cursor:pointer;box-shadow:0 3px 0 #1ea077}
.printbtn:hover{filter:brightness(1.05)}
@media (max-width:420px){.cd-box{padding:.6rem .1rem .45rem}.plan-list li{grid-template-columns:4.2rem 1fr}}

/* ===== motion: soft and optional ===== */

.js .reveal.in{opacity:1;transform:none}
@keyframes drift{0%,100%{transform:translate(0,0)}50%{transform:translate(-12px,10px)}}

.chip span,.quick-links a,.states a,.cal-d,.printbtn,.search-link{transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.cd-num{display:inline-block}
@media (prefers-reduced-motion:reduce){.hero::before{animation:none}.js .reveal{opacity:1;transform:none}}

/* ===== print: clean A4 calendar ===== */
@media print{
  :root{--bg:#fff}
  body{font-size:11pt;color:#000}
  .hero{border:0;padding:0}.hero .wrap{padding:0}
  h1{font-size:20pt;max-width:none}h1::after{display:none}
  main{padding:0}.tablewrap{box-shadow:none;border:1px solid #999;overflow:visible;margin:8pt 0;break-inside:avoid}
  table.bystate td[data-s],table.bystate th[data-s]{display:table-cell!important}
  .bystate .yr{display:inline!important}
  th{background:#eee!important;color:#000!important}
  .statetabs,.printrow,.correction,.status,.reveal{display:none!important}
  .js .reveal{opacity:1!important;transform:none!important}
  table.stack,table.stack tbody,table.stack tr,table.stack td{display:revert!important}
  table.stack thead{position:static!important}
  table.stack td::before{display:none}
  a{color:#000;text-decoration:none}
  h2{break-after:avoid;margin:14pt 0 6pt}h2::after{display:none}
  .quick{box-shadow:none;border:1px solid #999}
}

/* compact phone header: one swipeable row of pills */
@media (max-width:819px){
  header.site .wrap{padding-top:.5rem;padding-bottom:.5rem}
  .brand-name{font-size:1.25rem}
}

/* reserved picture spaces (filled automatically when the image files are added) */
@media (min-width:860px){
  .hero-grid:has(.hero-art.spare){grid-template-columns:1.1fr .9fr}
  .hero-art.spare{display:block;aspect-ratio:4/3;border-radius:28px;background:linear-gradient(135deg,rgba(255,255,255,.75),rgba(255,255,255,.25));box-shadow:inset 0 0 0 2px rgba(255,255,255,.8)}
}
.brand:not(:has(.logo))::before{content:"";width:40px;height:40px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffe27a,#ffc928 70%);box-shadow:inset 0 0 0 3px #fff,0 0 0 2px #ffc928;flex:none}

/* trackers */
.trk{padding:1rem 1.1rem 1.3rem}
.bar{height:14px;border-radius:99px;background:#e4eeff;overflow:hidden;margin:.4rem 0 1rem}
.bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--sky),var(--mint),var(--sun));border-radius:99px;transition:width .6s ease}
.chk{padding:1rem 1.1rem 1.3rem}
.chk-sum{margin:0;font:900 1.15rem var(--head)}
.chk ul{list-style:none;padding:0;margin:.4rem 0 1rem;display:grid;gap:.5rem}
.chk li{margin:0}
.chk label{display:flex;gap:.7rem;align-items:center;background:#f7fbff;border-radius:16px;padding:.7rem .9rem;cursor:pointer;font-weight:600}
.chk input{width:1.35rem;height:1.35rem;accent-color:var(--mint);flex:none}
.chk input:checked+span{text-decoration:line-through;color:var(--muted)}
.printbtn.alt{display:inline-block;text-decoration:none;background:var(--coral);color:#fff;box-shadow:0 3px 0 #d93556;margin-left:.4rem}
.printbtn.alt:hover{color:#fff}
@media (max-width:420px){.printbtn.alt{margin:.4rem 0 0}}

.snd{display:inline-flex;align-items:center;gap:.4rem;font:800 .82rem var(--body);margin-left:auto;cursor:pointer}
.snd input{width:1.1rem;height:1.1rem;accent-color:var(--blue)}
.cmpbar input[type=text],.cmpbar input[type=date]{font:700 1rem var(--body);padding:.55rem .9rem;border:2px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);min-width:11rem}
.yearpills{margin:1rem 0 0;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;font:800 .8rem var(--body);color:var(--muted)}
.yearpills a{display:inline-block;padding:.35rem .85rem;border-radius:99px;background:#fff;border:2px solid var(--line);text-decoration:none;color:var(--ink)}
.yearpills a:hover{background:var(--sec-tint);border-color:var(--sec)}
.evt .cd-title{margin-top:.2rem}

/* ---- playful kids headings (picture style: navy lead line, big tilted pink phrase, black detail line) ---- */
.brand-name{font:400 1.7rem/1 var(--head);letter-spacing:.01em}
h1{font:400 clamp(1.5rem,5.4vw,2.3rem)/1.1 var(--head);letter-spacing:.01em;max-width:18em;position:relative;color:var(--ink);text-wrap:balance}
h1::after{margin-top:.9rem}
h1 .h-pre,h1 .h-rest{display:block;color:#1c3f94}
h1 .h-pre{margin-bottom:-.1em}
h1 .pop{display:block;width:fit-content;max-width:100%;color:var(--coral);font-size:clamp(2.7rem,11.5vw,3.9rem);line-height:1;transform:rotate(-2.5deg);transform-origin:left center;text-shadow:3px 3px 0 rgba(255,201,40,.6);margin:.05em 0 .12em;position:relative}
h1 .pop::before,h1 .pop::after{content:"";position:absolute;height:5px;border-radius:5px;pointer-events:none}
h1 .pop::before{width:1.1rem;left:-1.5rem;top:.35em;background:var(--lav);transform:rotate(-18deg);box-shadow:4px 15px 0 var(--mint)}
h1 .pop::after{width:1.2rem;right:-1.5rem;bottom:.2em;background:var(--coral);transform:rotate(-30deg);box-shadow:-2px 14px 0 var(--lav)}
.hero-text{position:relative}
.hero-sun{position:absolute;top:-.9rem;right:-.8rem;width:clamp(56px,12vw,84px);height:auto;transform:rotate(8deg);pointer-events:none;overflow:visible}
.hero-sub{margin:.8rem 0 0;max-width:34rem;font:500 clamp(1rem,2.6vw,1.12rem)/1.55 var(--body);color:#15151a}
h2{font:400 clamp(1.7rem,5.4vw,2.3rem)/1.12 var(--head);letter-spacing:.01em}
h2::after{width:3.4rem;height:7px;background:linear-gradient(90deg,var(--sec),var(--sun))}
h3{font:400 1.35rem/1.2 var(--head);letter-spacing:.01em}
h1,h2,h3{font-synthesis:none}
@media (max-width:600px){h1 .pop::before,h1 .pop::after{display:none}}
@media (prefers-reduced-motion:no-preference){}
@media (max-width:700px){.hero-text .crumbs{padding-right:4.2rem}}

/* ---- hero picture blended into the hero (no card, no border) ---- */
h1 .h-rest{font:700 clamp(1.05rem,2.7vw,1.35rem)/1.4 var(--body);color:#111;margin-top:.1rem;max-width:30rem}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hero-search{display:flex;gap:.4rem;align-items:center;margin-top:1.1rem;max-width:34rem;background:#fff;border-radius:99px;padding:.35rem;box-shadow:0 8px 24px rgba(23,40,92,.14),0 0 0 2px rgba(255,255,255,.9)}
.hero-search input{flex:1;min-width:0;border:0;background:transparent;font:600 1rem var(--body);padding:.6rem .9rem;color:var(--ink);outline:none}
.hero-search input::placeholder{color:#7a86a8}
.hero-search:focus-within{box-shadow:0 8px 24px rgba(23,40,92,.14),0 0 0 3px var(--blue)}
.hero-search button{flex:none;border:0;border-radius:99px;background:var(--coral);color:#fff;font:900 1rem var(--body);padding:.7rem 1.4rem;cursor:pointer;box-shadow:0 3px 0 #d93656}
.hero-search button:hover{filter:brightness(1.05)}
.hero > .hero-art:has(img){display:block;position:static;margin:.3rem 0 0}
.hero-art img{border-radius:0;width:100%;height:auto;object-fit:cover;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M0 9C18 -2 30 14 50 6S82 1 100 9V100H0Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M0 9C18 -2 30 14 50 6S82 1 100 9V100H0Z'/%3E%3C/svg%3E");
  -webkit-mask-size:100% 100%;mask-size:100% 100%}
.hero:has(.hero-art img) .wrap{padding-bottom:0}
@media (min-width:860px){
  .hero:has(.hero-art img){min-height:27rem;display:flex;align-items:center}
  .hero:has(.hero-art img) .wrap{width:100%;padding-top:2rem;padding-bottom:2.4rem}
  .hero:has(.hero-art img) .hero-grid{display:block}
  .hero:has(.hero-art img) .hero-text{max-width:min(47%,31rem)}
  .hero > .hero-art:has(img){position:absolute;right:0;top:0;bottom:0;width:58%;margin:0;z-index:0}
  .hero-art img{height:100%;width:100%;object-position:62% center;
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M20 0C6 14 30 26 14 42S3 64 15 76 8 92 13 100H100V0Z'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M20 0C6 14 30 26 14 42S3 64 15 76 8 92 13 100H100V0Z'/%3E%3C/svg%3E")}
  h1 .pop{font-size:clamp(3rem,5.6vw,4.4rem)}
  .hero-sun{right:-1.5rem}
}
@media (max-width:859px){h1 .pop{font-size:clamp(2.7rem,12vw,3.6rem)}.hero::before{display:none}}

.hero-grid{grid-template-columns:minmax(0,1fr)}
.hero-text{min-width:0}
@media (min-width:860px){
  .hero:has(.hero-art img) .hero-text{max-width:min(44%,30rem)}
  .hero > .hero-art:has(img){width:55%}
  .hero-art img{object-position:72% center}
}
@media (max-width:859px){
  .hero-art img{
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M0 9C18 -2 30 14 50 6S82 1 100 9V93C80 100 62 90 42 97S12 96 0 92Z'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M0 9C18 -2 30 14 50 6S82 1 100 9V93C80 100 62 90 42 97S12 96 0 92Z'/%3E%3C/svg%3E")}
  .hero > .hero-art:has(img){margin:.3rem -1rem 0}
}
@media (min-width:700px) and (max-width:859px){.hero > .hero-art:has(img){margin:.3rem -1.5rem 0}}
@media (min-width:860px){h1 .pop{font-size:clamp(3rem,5.2vw,4.1rem)}.hero-sun{top:-1.5rem;right:-3.4rem}}
.hero:not(:has(.hero-art img)) .hero-sun{top:.5rem;right:.5rem}

/* ---- natural sub-line and the Find tool ---- */
h1 .h-rest{font:500 clamp(1.05rem,2.5vw,1.25rem)/1.45 var(--body);color:#2b3350;letter-spacing:0;margin-top:.2rem}
h1 .h-rest::first-letter{text-transform:uppercase}
.findtool{margin-top:1.1rem;max-width:32rem;background:#fff;border:2px solid #e3ecfb;border-radius:28px;padding:1.1rem 1.2rem 1rem;box-shadow:0 14px 34px rgba(23,40,92,.14)}
.ft-title{margin:0 0 .7rem;font:400 1.55rem/1.1 var(--head);color:var(--ink)}
.ft-row{display:grid;grid-template-columns:1.4fr 1fr;gap:.7rem}
.findtool label{display:block;font:800 .85rem var(--body);color:var(--ink)}
.findtool select{display:block;width:100%;margin-top:.3rem;font:600 1rem var(--body);color:#111;padding:.7rem 2.2rem .7rem .9rem;border:2px solid #dcdfe6;border-radius:99px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none' stroke='%23777' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m1 1 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .95rem center;-webkit-appearance:none;appearance:none;cursor:pointer}
.findtool select:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.findtool button{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;margin-top:.8rem;border:0;border-radius:99px;background:#181818;color:#fff;font:700 1.05rem var(--body);padding:.9rem 1rem;cursor:pointer}
.findtool button:hover{background:#000}
.findtool button:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.ft-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.2rem .7rem;margin:.8rem 0 0;font:600 .95rem var(--body);color:#667}
.ft-links a{color:#3b5bdb;text-decoration:none}
.ft-links a:hover{text-decoration:underline}
@media (max-width:420px){.ft-row{grid-template-columns:1fr}.ft-links{font-size:.88rem}}

/* ---- Find tool: colourful button + section tiles under it ---- */
.findtool button{background:linear-gradient(135deg,#2563eb,#38b6ff);box-shadow:0 4px 0 #1c4fc0,0 10px 20px rgba(37,99,235,.28);transition:transform .15s}
.findtool button:hover{background:linear-gradient(135deg,#1f57d6,#2fa8f2);transform:translateY(-1px)}
.findtool button:active{transform:translateY(2px);box-shadow:0 2px 0 #1c4fc0}
.ft-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:1rem;max-width:32rem}
.ft-tiles a{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--ink);padding:.3rem .2rem;border-radius:16px;transition:background .15s,transform .15s}
.ft-tiles a:hover{background:rgba(255,255,255,.7);transform:translateY(-2px)}
.ft-tiles img{flex:none;width:40px;height:40px;object-fit:contain}
.ft-tiles b{display:block;font:800 .9rem/1.2 var(--body)}
.ft-tiles small{display:block;font:500 .74rem/1.25 var(--body);color:#5a6684}
@media (max-width:560px){.ft-tiles{grid-template-columns:repeat(3,1fr);gap:.2rem}.ft-tiles a{flex-direction:column;text-align:center;gap:.25rem}.ft-tiles small{display:none}.ft-tiles b{font-size:.8rem}}
@media (min-width:561px){.ft-tiles{max-width:36rem;gap:.4rem}.ft-tiles img{width:46px;height:46px}.ft-tiles b{white-space:nowrap;font-size:.92rem}.ft-tiles a{gap:.55rem}}

/* ---- "On this page": tidy collapsed list on small screens, quiet side line on wide screens ---- */
.toc details{background:#fff;border:2px solid var(--line);border-radius:16px;padding:.1rem .9rem}
.toc summary{cursor:pointer;list-style:none;font:800 .9rem var(--body);color:var(--ink);padding:.6rem 0;display:flex;align-items:center;justify-content:space-between}
.toc summary::-webkit-details-marker{display:none}
.toc summary::after{content:"";width:.55rem;height:.55rem;border-right:2px solid #777;border-bottom:2px solid #777;transform:rotate(45deg);margin:-.2rem .2rem 0 0;transition:transform .2s}
.toc details[open] summary::after{transform:rotate(-135deg);margin-top:.2rem}
.toc ol{display:block;padding:0 0 .6rem}
.toc li{margin:0}
.toc a{display:block;background:none;border:0;border-radius:0;padding:.35rem 0;font:600 .88rem/1.35 var(--body);color:#33426e}
.toc a:hover{background:none;color:var(--blue);text-decoration:underline}
@media (min-width:1180px){
  main .wrap:has(>.toc){display:grid;grid-template-columns:minmax(0,1fr) 12.5rem;column-gap:2rem;align-items:start}
  main .wrap:has(>.toc)>*{grid-column:1}
  main .wrap:has(>.toc)>.toc{grid-column:2;grid-row:1 / span 120;position:sticky;top:5rem;margin:1.2rem 0 0;max-width:none;border-left:3px solid var(--sec);padding-left:1rem;max-height:calc(100vh - 7rem);overflow:auto}
  .toc details{background:none;border:0;border-radius:0;padding:0}
  .toc summary{pointer-events:none;font:900 .72rem var(--body);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding:0 0 .4rem}
  .toc summary::after{display:none}
  .toc a{font-size:.84rem;padding:.3rem 0}
}

/* calmer: no hover lifts, readable tile labels */
.quick-links a:hover,.ft-tiles a:hover,.chip input:hover+span,.findtool button:hover{transform:none}
.ft-tiles b{font-size:.95rem;color:var(--ink)}.ft-tiles small{color:#44506f;font-size:.8rem}
h1 .h-rest.and::first-letter{text-transform:none}
h1 .h-rest.and{color:#1c3f94;font-weight:700;font-size:clamp(1.15rem,3vw,1.5rem)}

/* home layout: tiles and state cards use the full page width; mascot sits beside the heading */
main .wrap>ul.quick-links,main .wrap>ul.states{max-width:var(--wide)}
main .wrap>.quick{max-width:var(--wide)}
.statehead{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-top:1.6rem}
.statehead h2{margin:0}
.statehead .mascot{width:7.5rem;max-width:30%;margin:0 .5rem -.4rem 0}

/* each section has its own colour: school green, public pink, long weekends yellow, other pages purple, home light blue */
body.sec-school{--sec:#1fae6a;--sec-tint:#dcf7e8;--sec-soft:#b3ecce;--pop:#1fae6a;--popsh:rgba(255,201,40,.55)}
body.sec-public{--pop:#ff4f6d;--popsh:rgba(255,201,40,.6)}
body.sec-long{--sec:#f2a000;--pop:#f2a000;--popsh:rgba(23,40,92,.22)}
body.sec-other{--sec:#8b5cf6;--sec-tint:#ece6ff;--sec-soft:#d4c8ff;--pop:#8b5cf6;--popsh:rgba(255,201,40,.6)}
body.home{--sec:#38a8f5;--sec-tint:#e4f3ff;--sec-soft:#bfe3fc;--pop:#2f9bf0;--popsh:rgba(255,201,40,.6)}
h1 .pop{color:var(--pop,#ff4f6d);text-shadow:3px 3px 0 var(--popsh,rgba(255,201,40,.6))}

/* sub-line under the big heading: plain, readable, reads as a continuation of the heading */
h1 .h-rest::first-letter{text-transform:none}
h1 .h-rest,h1 .h-rest.and{font:700 clamp(1.1rem,2.8vw,1.45rem)/1.35 var(--body);color:#1c3f94;letter-spacing:0;margin-top:.25rem;max-width:30rem}

/* home heading: both key phrases in the playful style */
h1 .h2line{display:block;font:400 clamp(1.5rem,4.8vw,2.1rem)/1.25 var(--head);color:#1c3f94;margin-top:.1rem;max-width:none}
h1 .h2line .h2w{color:#1c3f94}
h1 .pop2{display:inline-block;font-size:clamp(2.1rem,7vw,3rem);line-height:1.05;color:#ff4f6d;transform:rotate(-1.8deg);text-shadow:3px 3px 0 rgba(255,201,40,.6);margin:0 .1em}
@media (max-width:420px){h1 .h2line .h2w:last-child{display:block}}

/* home heading colours: blue, orange, green */
h1 .pop2{color:#ff8a1f;font-size:clamp(2.2rem,7.4vw,3.1rem);transform:rotate(1.6deg);text-shadow:3px 3px 0 rgba(37,99,235,.18)}
h1 .h3line{display:block;margin-top:.15rem}
h1 .pop3{display:inline-block;font-size:clamp(2.2rem,7.4vw,3.1rem);line-height:1.05;color:#1fae6a;transform:rotate(-1.4deg);text-shadow:3px 3px 0 rgba(255,201,40,.6);margin:0 .1em}
@media (max-width:420px){h1 .h2line .h2w:last-child{display:inline}}

/* home heading v3: three tilted phrases, matching tilt; "and" / "in" kept for search engines and screen readers only */
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
h1 .pop2,h1 .pop3{display:block;width:fit-content;max-width:100%;line-height:1;transform:rotate(-2.5deg);transform-origin:left center;margin:.05em 0 .12em}
h1 .pop2{font-size:clamp(2.6rem,10.5vw,3.6rem);color:#7c4dff;text-shadow:3px 3px 0 rgba(255,201,40,.6)}
h1 .pop3{font-size:clamp(2.3rem,9.5vw,3.2rem);color:#1fae6a;text-shadow:3px 3px 0 rgba(255,201,40,.6)}

/* ampersand in the home heading */
h1 .amp{display:inline-block;color:#ffb81c;font-size:1.05em;margin-right:.12em;transform:rotate(6deg);text-shadow:2px 2px 0 rgba(23,40,92,.28)}

h1 .pop .amp{margin:0 0 0 .08em;font-size:.95em;vertical-align:baseline}

h1 .amp,h1 .pop .amp{display:block;width:fit-content;font-size:clamp(2rem,6.5vw,2.7rem);line-height:.8;margin:-.1em 0 -.05em .55em;vertical-align:baseline;transform:rotate(-6deg)}
h1 .amp,h1 .pop .amp{font-size:clamp(2.5rem,8vw,3.2rem)}

/* ---- home heading, centred in the picture-book style ---- */
h1.homeh{max-width:34rem;text-align:center;margin:0 0 .4rem;font-weight:400;position:relative;color:inherit}
h1.homeh::after{content:"";display:block;width:min(15rem,70%);height:14px;margin:.1rem auto 0;border-radius:99px;background:none;border-bottom:7px solid #ffd84d;border-radius:0 0 60% 60%/0 0 100% 100%}
h1.homeh .hl1,h1.homeh .hl2{display:block;position:relative;line-height:1.05}
h1.homeh .hl1{font-size:clamp(1.6rem,7vw,2.95rem);white-space:nowrap}
h1.homeh .hl2{font-size:clamp(1.5rem,6.2vw,2.5rem);margin-top:.12em}
h1.homeh .hl1::before,h1.homeh .hl1::after{content:"";position:absolute;height:5px;border-radius:5px;width:1rem}
h1.homeh .hl1::before{left:-.9rem;top:.35em;background:#38b6ff;transform:rotate(28deg);box-shadow:6px 16px 0 #ff4f6d}
h1.homeh .hl1::after{right:-.9rem;top:.35em;background:#ff4f6d;transform:rotate(-28deg);box-shadow:-6px 16px 0 #2ec796}
h1.homeh span[class^="hh-"]{text-shadow:2px 0 #fff,-2px 0 #fff,0 2px #fff,0 -2px #fff,2px 2px #fff,-2px -2px #fff,2px -2px #fff,-2px 2px #fff,0 4px 6px rgba(23,40,92,.14)}
h1.homeh .hh-b1{color:#2f7cf0}
h1.homeh .hh-amp{color:#ffb81c}
h1.homeh .hh-pu{color:#7c4dff}
h1.homeh .hh-gr{color:#1fae6a}
h1.homeh .hh-amp{display:inline-block;transform:rotate(6deg)}
@media (max-width:420px){h1.homeh{margin-left:.9rem;margin-right:.9rem}}
@media (min-width:1000px){body.home .hero:has(.hero-art img) .hero-text{max-width:min(48%,34rem)}h1.homeh{max-width:none}h1.homeh .hl1{font-size:clamp(2.6rem,3.7vw,3.35rem)}h1.homeh .hl2{font-size:clamp(2.1rem,3vw,2.7rem)}}

/* footer: light and friendly, matches the page */
footer.site{background:#e4eeff;color:var(--ink);border-radius:34px 34px 0 0;border-top:6px solid transparent;border-image:linear-gradient(90deg,#2563eb 0 25%,#0ea5a4 25% 50%,#ffc928 50% 75%,#8b6cff 75%) 1;border-image-slice:1;padding:2.2rem 0 2.4rem}
footer.site a{color:var(--blue-d);text-decoration-color:color-mix(in srgb,var(--blue-d) 40%,transparent)}
footer.site a:hover{color:var(--link-hover)}
footer.site h2{font:400 1.25rem var(--head);text-transform:none;letter-spacing:.01em;color:var(--blue-d);margin:0 0 .4rem}
.foot-grid>div:nth-child(1) h2{color:#0b7f7e}
.foot-grid>div:nth-child(2) h2{color:#c2203f}
.foot-grid>div:nth-child(3) h2{color:#6a4ce0}
.fine{color:var(--muted)}
footer.site .fine strong{color:var(--ink)}

/* header: six menu items on one row */
.brand{white-space:nowrap}
@media (min-width:1024px) and (max-width:1319px){header.site .wrap{flex-wrap:wrap}nav.main{order:3;flex:1 0 100%;margin-left:0;flex-wrap:wrap}}
@media (min-width:1320px){nav.main{flex-wrap:nowrap;white-space:nowrap}nav.main a{padding:.4rem .7rem}}

/* readability: search results use the plain body font; the kids font is never faux-bolded */
#results a{font:800 1.1rem/1.35 var(--body);letter-spacing:0;color:var(--blue-d)}
#results a:hover{color:var(--link-hover)}
.leaf-date .dd,.leaf-out .big,.states b,.cd-num,.plan-big b,.cal-head,.chk-sum{font-weight:400}

/* each special-day page gets its own colour */
body.pg-easter{--sec:#8b5cf6;--pop:#8b5cf6;--sec-tint:color-mix(in srgb,#8b5cf6 13%,#fff);--sec-soft:color-mix(in srgb,#8b5cf6 30%,#fff);--popsh:rgba(255,201,40,.6)}
body.pg-anzac-day{--sec:#2f6fe0;--pop:#2f6fe0;--sec-tint:color-mix(in srgb,#2f6fe0 13%,#fff);--sec-soft:color-mix(in srgb,#2f6fe0 30%,#fff);--popsh:rgba(255,201,40,.6)}
body.pg-australia-day{--sec:#0fa3c7;--pop:#0fa3c7;--sec-tint:color-mix(in srgb,#0fa3c7 13%,#fff);--sec-soft:color-mix(in srgb,#0fa3c7 30%,#fff);--popsh:rgba(255,201,40,.6)}
body.pg-labour-day{--sec:#f26b3a;--pop:#f26b3a;--sec-tint:color-mix(in srgb,#f26b3a 13%,#fff);--sec-soft:color-mix(in srgb,#f26b3a 30%,#fff);--popsh:rgba(255,201,40,.6)}
body.pg-melbourne-cup{--sec:#5b4bd6;--pop:#5b4bd6;--sec-tint:color-mix(in srgb,#5b4bd6 13%,#fff);--sec-soft:color-mix(in srgb,#5b4bd6 30%,#fff);--popsh:rgba(255,201,40,.6)}
body.pg-afl-grand-final-friday{--sec:#12a594;--pop:#12a594;--sec-tint:color-mix(in srgb,#12a594 13%,#fff);--sec-soft:color-mix(in srgb,#12a594 30%,#fff);--popsh:rgba(255,201,40,.6)}
body.pg-christmas-and-new-year{--sec:#e0453a;--pop:#e0453a;--sec-tint:color-mix(in srgb,#e0453a 13%,#fff);--sec-soft:color-mix(in srgb,#e0453a 30%,#fff);--popsh:rgba(255,201,40,.6)}
body.pg-is-today-a-public-holiday{--sec:#c9890a;--pop:#c9890a;--sec-tint:color-mix(in srgb,#c9890a 13%,#fff);--sec-soft:color-mix(in srgb,#c9890a 30%,#fff);--popsh:rgba(255,201,40,.6)}

/* date card, bullets and dots follow each page's own colour */
.leaf-date{background:var(--sec)}
body.pg-is-today-a-public-holiday .leaf-date{background:color-mix(in srgb,var(--sec) 88%,#17285c)}
li::marker{color:var(--sec)}
.cal-d.is-ph::after,.cal-key .k-ph{background:var(--sec)}
.searchrow button,.search-link{background:var(--sec)}

/* print and PDF buttons: soft, in the page colour */
.printbtn,.printbtn.alt{background:var(--sec-tint);color:color-mix(in srgb,var(--sec) 55%,#17285c);border:2px solid var(--sec-soft);box-shadow:none;font-weight:800}
.printbtn.alt{background:#fff}
.printbtn:hover,.printbtn.alt:hover{background:var(--sec-soft);color:color-mix(in srgb,var(--sec) 45%,#17285c);filter:none}

.correction .checked{margin:0 0 .4rem;color:var(--muted)}


@media (min-width:640px){.quick-links{grid-template-columns:repeat(4,1fr)}}
@media (min-width:1000px){.quick-links{grid-template-columns:repeat(7,1fr)}}
@media (max-width:639px){.quick-links li:last-child{grid-column:1/-1}}
.tools-h{margin:1.6rem 0 0;font-size:1.3rem}
.hero-next{margin:.9rem 0 0;font:800 1.05rem/1.35 var(--body);color:var(--ink)}
.hero-next b{color:var(--blue-d)}

/* hamburger menu: phones and tablets only (below 1024px) */
.menu-btn{display:none}
@media (min-width:820px) and (max-width:1023px){header.site .wrap{flex-wrap:wrap}}
@media (max-width:1023px){
  .js .menu-btn{display:inline-flex;align-items:center;gap:.5rem;font:800 1rem var(--body);color:#fff;background:var(--blue);border:0;border-radius:99px;padding:.55rem 1.1rem;min-height:44px;cursor:pointer;margin-left:auto;order:2;box-shadow:0 3px 0 var(--blue-d)}
  .js .brand{margin-right:0}
  .menu-btn .bars,.menu-btn .bars::before,.menu-btn .bars::after{display:block;width:18px;height:2.5px;background:#fff;border-radius:2px;position:relative}
  .menu-btn .bars::before,.menu-btn .bars::after{content:"";position:absolute;left:0}
  .menu-btn .bars::before{top:-6px}.menu-btn .bars::after{top:6px}
  .js nav.main{display:none;order:3;flex:1 0 100%;margin:0;flex-direction:column;flex-wrap:nowrap;gap:.25rem;padding:.4rem 0 .3rem}
  .js nav.main.open{display:flex}
  .js nav.main a{padding:.8rem 1rem;font-size:1.05rem;background:#eef4ff;border-radius:14px}
  .js nav.main a[aria-current]{background:var(--blue);color:#fff}
}
@media (max-width:819px){header.site .wrap{padding-top:.5rem;padding-bottom:.5rem}.brand-name{font-size:1.25rem}}
