:root{
  /* Colours from the City of Cranbrook Corporate Identity Standards Guide */
  --brand:#AA272F;       /* Pantone 1805 PC, primary red */
  --brand-deep:#782327;  /* Pantone 1815 PC, colour bar */
  --brand-bright:#CD202C;/* Pantone 1795 PC */
  --river:#006778;       /* Pantone 3155 PC, links */
  --sun:#EEAF30;         /* Pantone 143 PC, sun rays accent */
  --sun-soft:#F7F3E6;    /* tint of Pantone 7500 PC */
  --cream:#E1D8B7;       /* Pantone 7500 PC */
  --larch:#6A491C;       /* Pantone 1405 PC */
  --leaf:#536828;        /* Pantone 371 PC */
  --grey:#8B8178;        /* Warm Grey 8C */
  --slate:#2A2522;       /* COC rich black, for body text */
  --muted:#675C53;       /* Warm Grey 11C */
  --mist:#F4F1EC;        /* tint of Warm Grey 5C */
  --line:#D9D3CC;        /* tint of Warm Grey 5C */
  --paper:#FFFFFF;
  --alert:#AA272F;
  --alert-soft:#FBEAE8;
  --focus:#EEAF30;
  --radius-s:4px; --radius-m:10px;
  --wrap:76rem;
  --font-body:"Atkinson Hyperlegible Next","Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-display:"Barlow Semi Condensed","Arial Narrow",system-ui,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --brand:#EE8E93; --brand-deep:#2E0F11; --brand-bright:#F2A0A5; --river:#7FD0DB; --sun:#EEAF30; --sun-soft:#2E2618; --cream:#E1D8B7;
    --larch:#E1D8B7; --leaf:#A9C46A; --grey:#AEA79F; --slate:#F1ECE6; --muted:#C2B9B0; --mist:#211A18; --line:#463C37;
    --paper:#161211; --alert:#FF9A8F; --alert-soft:#3A1A17; color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --brand:#EE8E93; --brand-deep:#2E0F11; --brand-bright:#F2A0A5; --river:#7FD0DB; --sun:#EEAF30; --sun-soft:#2E2618; --cream:#E1D8B7;
    --larch:#E1D8B7; --leaf:#A9C46A; --grey:#AEA79F; --slate:#F1ECE6; --muted:#C2B9B0; --mist:#211A18; --line:#463C37;
    --paper:#161211; --alert:#FF9A8F; --alert-soft:#3A1A17; color-scheme:dark;
}
:root[data-size="l"]{font-size:112.5%}
:root[data-size="xl"]{font-size:125%}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--slate);font-family:var(--font-body);font-size:1.0625rem;line-height:1.6}
img,svg{max-width:100%;display:block}
a{color:var(--river);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;box-shadow:0 0 0 5px var(--slate)}
[tabindex="-1"]:focus{outline:none;box-shadow:none}
h1,h2,h3{font-family:var(--font-display);line-height:1.12;margin:0 0 .5em;color:var(--slate);font-weight:700;letter-spacing:.005em}
h1{font-size:clamp(2.2rem,5vw,3.6rem)}
h2{font-size:clamp(1.6rem,3vw,2.2rem)}
h3{font-size:1.3rem}
p{margin:0 0 1em;max-width:68ch}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 1rem}
@media (min-width:48rem){.wrap{padding:0 1.5rem}}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:1rem;top:-10rem;z-index:100;background:var(--sun);color:#231F20;padding:.75rem 1rem;font-weight:700;border-radius:var(--radius-s)}
.skip:focus{top:1rem}
.ext::after{content:"";display:inline-block;width:.7em;height:.7em;margin-left:.25em;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M5 1H1v10h10V7M7 1h4v4M11 1 5 7' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M5 1H1v10h10V7M7 1h4v4M11 1 5 7' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") center/contain no-repeat}
.tag-pdf{font-size:.75em;font-weight:700;border:1px solid currentColor;border-radius:3px;padding:0 .3em;margin-left:.35em;vertical-align:.1em}
.icon{width:1.5rem;height:1.5rem;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Concept notice */
.concept{background:var(--sun);color:#231F20;font-size:.95rem}
.concept .wrap{display:flex;gap:.75rem;align-items:center;padding-top:.5rem;padding-bottom:.5rem;flex-wrap:wrap}
.concept a{color:#231F20;font-weight:700}

/* Utility bar */
.utility{background:#5C1A1E;color:#FFFFFF;font-size:.92rem;border-bottom:4px solid var(--grey)}
:root[data-theme="dark"] .utility{background:#0E0909}
.utility .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;padding-top:.35rem;padding-bottom:.35rem}
.utility ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;align-items:center}
.utility a{color:#FFFFFF;text-decoration:none;display:inline-flex;align-items:center;min-height:2.25rem}
.utility a:hover{text-decoration:underline}
.utility a.emerg{color:#FBE7A9;font-weight:700}
.prefs{display:flex;gap:.4rem;align-items:center}
.prefs button{font:inherit;color:#FFFFFF;background:transparent;border:1px solid #C9A9AB;border-radius:var(--radius-s);min-height:2.25rem;min-width:2.25rem;padding:0 .55rem;cursor:pointer}
.prefs button[aria-pressed="true"]{background:#FFFFFF;color:#5C1A1E;border-color:#FFFFFF}

/* Header */
.site-header{background:var(--paper);border-bottom:1px solid var(--line);position:relative;z-index:20}
.header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.85rem;padding-bottom:.85rem}
.brand{display:block;text-decoration:none;padding:.35rem .5rem;margin-left:-.5rem}
/* Logo: never recoloured, stretched or rearranged; clear space kept with padding (per the Corporate Identity Standards Guide) */
.logo{height:5.5rem;width:auto}
@media (max-width:40rem){.logo{height:4.25rem}}
.logo-ko{display:none}
:root[data-theme="dark"] .logo-colour{display:none}
:root[data-theme="dark"] .logo-ko{display:block}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .logo-colour{display:none}:root:not([data-theme="light"]) .logo-ko{display:block}}
.header-actions{display:flex;gap:.5rem;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.75rem;padding:.55rem 1.1rem;border-radius:var(--radius-s);font:inherit;font-weight:700;text-decoration:none;cursor:pointer;border:2px solid transparent}
.btn-primary{background:var(--brand);color:#fff}
:root[data-theme="dark"] .btn-primary{color:#231F20}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn-primary{color:#231F20}}
.btn-primary:hover{background:#782327;color:#fff}
.btn-ghost{background:transparent;color:var(--brand);border-color:var(--brand)}
.btn-ghost:hover{background:var(--mist)}
.menu-toggle{display:inline-flex}
@media (min-width:80rem){:root:not(.nav-narrow) .menu-toggle{display:none}}
.hide-sm{display:none}
@media (min-width:40rem){.hide-sm{display:inline-flex}}

/* Primary nav */
.primary-nav{border-top:1px solid var(--line)}
.primary-nav[hidden]{display:none}
@media (min-width:80rem){:root:not(.nav-narrow) .primary-nav,:root:not(.nav-narrow) .primary-nav[hidden]{display:block}}
.nav-list{list-style:none;margin:0;padding:0}
@media (min-width:80rem){:root:not(.nav-narrow) .nav-list{display:flex;gap:.25rem}}
.nav-item{position:static;border-bottom:1px solid var(--line)}
@media (min-width:80rem){:root:not(.nav-narrow) .nav-item{border-bottom:0}}
.nav-btn{all:unset;box-sizing:border-box;cursor:pointer;display:flex;width:100%;justify-content:space-between;align-items:center;gap:.4rem;padding:.9rem 0;font-weight:700;color:var(--slate);min-height:2.75rem}
@media (min-width:80rem){:root:not(.nav-narrow) .nav-btn{width:auto;padding:.85rem .45rem;border-bottom:4px solid transparent;white-space:nowrap;font-size:.98rem}:root:not(.nav-narrow) .nav-list{justify-content:space-between}}
.nav-btn:hover{color:var(--brand)}
.nav-btn[aria-expanded="true"]{color:var(--brand);border-bottom-color:var(--sun)}
.nav-btn:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}
.nav-btn .chev{width:1rem;height:1rem;transition:transform .15s}
.nav-btn[aria-expanded="true"] .chev{transform:rotate(180deg)}
.mega{padding:0 0 1.25rem}
.mega[hidden]{display:none}
@media (min-width:80rem){
:root:not(.nav-narrow) .mega{position:absolute;left:0;right:0;top:100%;background:var(--paper);border-top:1px solid var(--line);border-bottom:4px solid var(--brand);box-shadow:0 18px 30px -18px rgba(35,31,32,.35);padding:1.75rem 0 2rem}
}
.mega-inner{display:grid;gap:1.25rem}
@media (min-width:80rem){:root:not(.nav-narrow) .mega-inner{grid-template-columns:1.1fr repeat(4,1fr);gap:2rem;max-width:var(--wrap);margin:0 auto;padding:0 1.5rem}}
.mega-intro p{color:var(--muted);font-size:.98rem}
.mega h3{font-family:var(--font-body);font-size:1rem;margin-bottom:.4rem}
.mega ul{list-style:none;margin:0;padding:0}
.mega li a{display:block;padding:.3rem 0;text-decoration:none}
.mega li a:hover{text-decoration:underline}

/* Alerts */
.alerts{background:var(--sun-soft);border-bottom:1px solid var(--line)}
.alerts .wrap{padding-top:.9rem;padding-bottom:.9rem}
.alert-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
@media (min-width:56rem){.alert-list{grid-template-columns:repeat(3,1fr);gap:1.5rem}}
.alert-list li{display:flex;gap:.6rem;align-items:flex-start;font-size:.97rem}
.alert-list .icon{color:var(--larch);margin-top:.15rem}
.alert-list strong{display:block}

/* Hero */
.hero{position:relative;background:#AA272F;color:#fff;overflow:clip visible}
:root[data-theme="dark"] .hero{background:#5C1A1E}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .hero{background:#5C1A1E}}
.hero-art{position:absolute;inset:auto 0 0 0;height:min(52%,20rem);pointer-events:none}
.hero-art svg{width:100%;height:100%}
:root[data-theme="dark"] .mt1{fill:#7A262C}:root[data-theme="dark"] .mt2{fill:#6A1F24}:root[data-theme="dark"] .mt3{fill:#3E1215}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .mt1{fill:#7A262C}:root:not([data-theme="light"]) .mt2{fill:#6A1F24}:root:not([data-theme="light"]) .mt3{fill:#3E1215}}
/* Sun rays: the guide's "very subtle top-level feature" for online use */
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at 84% 8%,rgba(247,243,230,.22) 0,rgba(247,243,230,0) 34%),
             repeating-conic-gradient(from 0deg at 84% 8%,rgba(247,243,230,.045) 0deg 3deg,rgba(247,243,230,0) 3deg 10deg);
  -webkit-mask:radial-gradient(circle at 84% 8%,#000 0,transparent 75%);mask:radial-gradient(circle at 84% 8%,#000 0,transparent 75%)}
.hero .wrap:focus-within,.hero .wrap:has(.results:not([hidden])){z-index:10}   /* search results open over the "today" panel */
.hero .wrap{position:relative;z-index:1;padding-top:clamp(2.5rem,7vw,5rem);padding-bottom:clamp(9rem,18vw,13rem)}
.hero h1{color:#fff;max-width:16ch}
.hero-lede{font-size:1.15rem;color:#FFFFFF;max-width:52ch}
form.search{margin-top:1.5rem;max-width:44rem;position:relative}
form.search label{display:block;font-weight:700;margin-bottom:.4rem}
.search-row{display:flex;background:#fff;border-radius:var(--radius-m);box-shadow:0 10px 30px -12px rgba(0,0,0,.45);overflow:hidden}
form.search input{flex:1;min-width:0;border:0;font:inherit;font-size:1.15rem;padding:1rem 1.1rem;color:#231F20;background:#fff}
form.search input:focus{outline:none}
.search-row:focus-within{outline:3px solid var(--sun);outline-offset:3px}
form.search button{border:0;background:var(--sun);color:#231F20;font:inherit;font-weight:700;padding:0 1.3rem;cursor:pointer;display:flex;align-items:center;gap:.4rem}
form.search button:focus-visible{outline:3px solid #231F20;outline-offset:-5px;box-shadow:none}
.results{list-style:none;margin:.5rem 0 0;padding:.35rem;background:#fff;border-radius:var(--radius-m);box-shadow:0 12px 30px -12px rgba(0,0,0,.5);max-height:22rem;overflow:auto;position:absolute;left:0;right:0;z-index:15}
.results[hidden]{display:none}
.results a{display:flex;justify-content:space-between;gap:1rem;padding:.6rem .75rem;border-radius:6px;color:#231F20;text-decoration:none}
.results a:hover,.results a:focus{background:#F4F1EC}
.results .where{color:#675C53;font-size:.88rem;white-space:nowrap}
.results .empty{padding:.75rem;color:#231F20}
.popular{margin-top:1.1rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-size:.95rem}
.popular span{color:#FFFFFF;margin-right:.25rem}
.chip{display:inline-flex;align-items:center;min-height:2.25rem;padding:.25rem .8rem;border-radius:999px;border:1px solid rgba(255,255,255,.55);color:#fff;text-decoration:none;background:#8E1F26}
.chip:hover{background:#782327}

/* Today strip */
.today{margin-top:-4.5rem;position:relative;z-index:5}
.today-panel{background:var(--paper);border:1px solid var(--line);border-top:6px solid var(--sun);border-radius:var(--radius-m);box-shadow:0 18px 40px -24px rgba(35,31,32,.5);display:grid}
@media (min-width:48rem){.today-panel{grid-template-columns:repeat(2,1fr)}}
@media (min-width:72rem){.today-panel{grid-template-columns:repeat(4,1fr)}}
.today-item{padding:1.1rem 1.25rem;border-bottom:1px solid var(--line)}
@media (min-width:72rem){.today-item{border-bottom:0;border-right:1px solid var(--line)}.today-item:last-child{border-right:0}}
.today-item h2{font-family:var(--font-body);font-size:.95rem;font-weight:700;color:var(--muted);margin:0 0 .3rem;letter-spacing:0}
.today-item .today-big{font-family:var(--font-display);font-size:1.75rem;font-weight:700;line-height:1.1;margin:0 0 .2rem;color:var(--slate)}
.today-item p{margin:0;font-size:.95rem}
.today-item .today-big{font-size:1.6rem;margin-bottom:.25rem}
.dot{display:inline-block;width:.7rem;height:.7rem;border-radius:50%;margin-right:.45rem;vertical-align:.12em;background:var(--muted)}
.dot.open{background:var(--leaf)}
.dot.closed{background:var(--alert)}
.today-links{list-style:none;padding:0;margin:.2rem 0 0;font-size:.95rem}

/* Sections */
section.block{padding:clamp(2.5rem,6vw,4.5rem) 0}
section.tint{background:var(--mist)}
.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}
.section-head p{color:var(--muted);margin:0}
.more{font-weight:700}

/* Top tasks */
.tasks{list-style:none;margin:0;padding:0;display:grid;gap:0 2rem;grid-template-columns:1fr}
@media (min-width:40rem){.tasks{grid-template-columns:repeat(2,1fr)}}
@media (min-width:64rem){.tasks{grid-template-columns:repeat(3,1fr)}}
.tasks a{display:flex;gap:.9rem;align-items:flex-start;padding:1rem .25rem;border-bottom:1px solid var(--line);text-decoration:none;color:var(--slate);min-height:4.5rem}
.tasks a:hover .task-title{text-decoration:underline;color:var(--river)}
.tasks .icon{color:var(--brand);width:2rem;height:2rem;margin-top:.1rem}
.task-title{display:block;font-weight:700;font-size:1.1rem;color:var(--river)}
.task-desc{display:block;color:var(--muted);font-size:.95rem}

/* News + events */
.two-col{display:grid;gap:2.5rem}
@media (min-width:60rem){.two-col{grid-template-columns:1.4fr 1fr;gap:3.5rem}}
.news-list,.event-list{list-style:none;margin:0;padding:0}
.news-list li{padding:1.1rem 0;border-top:1px solid var(--line)}
.news-list li:first-child{border-top:3px solid var(--brand)}
.news-list time,.event-list .when{display:block;color:var(--muted);font-size:.92rem;margin-bottom:.2rem}
.news-list a{font-weight:700;font-size:1.15rem;text-decoration:none}
.news-list a:hover{text-decoration:underline}
.news-list p{margin:.35rem 0 0;color:var(--muted);font-size:.98rem}
.event-list li{display:grid;grid-template-columns:4rem 1fr;gap:1rem;padding:1rem 0;border-top:1px solid var(--line)}
.event-list li:first-child{border-top:3px solid var(--sun)}
.cal{text-align:center;border:2px solid var(--brand);border-radius:var(--radius-s);line-height:1;padding:.4rem 0;align-self:start}
.cal .m{display:block;font-size:.85rem;font-weight:700;color:var(--brand)}
.cal .d{display:block;font-family:var(--font-display);font-size:1.7rem;font-weight:700}
.event-list a{font-weight:700;text-decoration:none}
.event-list a:hover{text-decoration:underline}

/* Have your say */
.engage{display:grid;gap:1.25rem}
@media (min-width:56rem){.engage{grid-template-columns:repeat(3,1fr)}}
.engage article{background:var(--paper);border-left:5px solid var(--brand);padding:1.25rem 1.25rem 1.1rem;border-radius:0 var(--radius-m) var(--radius-m) 0}
.engage article.feature{border-left-color:var(--sun)}
.engage h3 a{text-decoration:none;color:var(--slate)}
.engage h3 a:hover{text-decoration:underline}
.engage p{color:var(--muted);font-size:.98rem}
.status{display:inline-block;font-size:.85rem;font-weight:700;color:var(--larch);margin-bottom:.4rem}

/* Basecamp */
.basecamp{background:#782327;color:#FFFFFF}
:root[data-theme="dark"] .basecamp{background:#2E0F11}
.basecamp h2,.basecamp h3{color:#fff}
.basecamp a{color:#F6D58A}
.basecamp-grid{display:grid;gap:2.5rem}
@media (min-width:60rem){.basecamp-grid{grid-template-columns:1fr 1fr;gap:4rem;align-items:start}}
.facts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid #A0585C}
.facts li{padding:1.1rem 1rem 1.1rem 0;border-bottom:1px solid #A0585C}
.facts li:nth-child(odd){border-right:1px solid #A0585C}
.facts li:nth-child(even){padding-left:1rem}
.facts b{display:block;font-family:var(--font-display);font-size:clamp(1.6rem,3.5vw,2.3rem);color:var(--sun);line-height:1.05}
.facts span{font-size:.95rem}
.sectors{list-style:none;margin:1rem 0 1.5rem;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.sectors a{display:inline-flex;min-height:2.25rem;align-items:center;padding:.2rem .8rem;border:1px solid #C9A9AB;border-radius:999px;color:#FFFFFF;text-decoration:none}
.sectors a:hover{background:rgba(255,255,255,.1)}
.basecamp .btn-sun{background:var(--sun);color:#231F20}
.basecamp .btn-line{border-color:#FFFFFF;color:#FFFFFF}

/* Council */
.council-grid{display:grid;gap:2rem}
@media (min-width:56rem){.council-grid{grid-template-columns:1fr 1fr;gap:3.5rem}}
.link-columns{list-style:none;margin:0;padding:0;columns:2;column-gap:2rem}
.link-columns li{break-inside:avoid;padding:.35rem 0}
.livebox{border:2px solid var(--brand);border-radius:var(--radius-m);padding:1.5rem;display:grid;gap:.75rem;background:var(--paper)}

/* Land acknowledgement */
.land{border-top:1px solid var(--line)}
.land .wrap{display:grid;gap:1.5rem;padding-top:2.5rem;padding-bottom:2.5rem}
@media (min-width:56rem){.land .wrap{grid-template-columns:auto 1fr;gap:2.5rem;align-items:center}}
.land svg{width:5rem;height:5rem;color:var(--brand)}
.land p{font-size:1.1rem;max-width:72ch}

/* Feedback + newsletter */
.feedback{background:var(--mist)}
.feedback .wrap{display:grid;gap:2rem;padding-top:2.25rem;padding-bottom:2.25rem}
@media (min-width:56rem){.feedback .wrap{grid-template-columns:1fr 1fr;gap:4rem}}
fieldset{border:0;padding:0;margin:0}
legend{font-weight:700;font-size:1.1rem;margin-bottom:.5rem;padding:0}
.choice{display:flex;gap:.5rem;flex-wrap:wrap}
.choice button{min-height:2.75rem;min-width:5rem}
.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.75rem}
.field label{font-weight:700}
.field input,.field textarea{font:inherit;padding:.7rem .8rem;border:2px solid var(--muted);border-radius:var(--radius-s);background:var(--paper);color:var(--slate);min-height:2.75rem}
.field input:focus,.field textarea:focus{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--slate)}
.hint{color:var(--muted);font-size:.9rem}
.form-msg{margin-top:.5rem;font-weight:700;color:var(--brand)}

/* Footer */
.site-footer{background:#5C1A1E;color:#F1E7E2;font-size:.98rem;border-top:8px solid var(--grey)}
:root[data-theme="dark"] .site-footer{background:#2E0F11}
.site-footer a{color:#FFFFFF}
.foot-logo{height:4.5rem;width:auto;margin:0 0 1.75rem}
.foot-grid{display:grid;gap:2rem;padding-top:3rem;padding-bottom:2rem}
@media (min-width:48rem){.foot-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:72rem){.foot-grid{grid-template-columns:1.3fr 1fr 1fr 1fr}}
.site-footer h2{color:#fff;font-size:1.25rem}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{padding:.25rem 0}
.site-footer address{font-style:normal}
.foot-base{border-top:1px solid #8A4A4E;padding-top:1.25rem;padding-bottom:1.5rem;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between;font-size:.92rem}
.foot-base ul{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem}
.phone-big{font-family:var(--font-display);font-size:2rem;font-weight:700;color:#fff;text-decoration:none;display:inline-block;line-height:1.1}

/* Category pages */
.page-head{background:var(--mist);border-bottom:1px solid var(--line)}
.page-head .wrap{padding-top:2rem;padding-bottom:2rem}
.crumbs{list-style:none;margin:0 0 .8rem;padding:0;display:flex;flex-wrap:wrap;gap:.4rem;font-size:.95rem}
.crumbs li+li::before{content:"/";margin-right:.4rem;color:var(--muted)}
.page-head .lede{font-size:1.15rem;color:var(--muted);max-width:60ch;margin:0}
.cat-grid{display:grid;gap:2rem 3rem;padding-top:2.5rem;padding-bottom:3.5rem}
@media (min-width:48rem){.cat-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:72rem){.cat-grid{grid-template-columns:repeat(3,1fr)}}
.cat-group h2{font-size:1.45rem;padding-bottom:.4rem;border-bottom:3px solid var(--sun)}
.cat-group ul{list-style:none;margin:0;padding:0}
.cat-group li{border-bottom:1px solid var(--line)}
.cat-group li a{display:block;padding:.6rem 0;text-decoration:none;font-weight:600}
.cat-group li a:hover{text-decoration:underline}
.cat-contact{background:var(--sun-soft);border-radius:var(--radius-m);padding:1.25rem 1.5rem;margin-bottom:3rem}

/* A-Z */
.az-letters{list-style:none;margin:1rem 0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}
.az-letters a{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:1px solid var(--line);border-radius:var(--radius-s);text-decoration:none;font-weight:700}
.az-section{padding:1rem 0;border-top:1px solid var(--line)}
.az-section h2{font-size:1.6rem}
.az-section ul{list-style:none;margin:0;padding:0;columns:1}
@media (min-width:48rem){.az-section ul{columns:2;column-gap:3rem}}
.az-section li{padding:.3rem 0;break-inside:avoid}
.az-section .where{color:var(--muted);font-size:.88rem;margin-left:.4rem}

/* Design notes */
.notes{border-top:1px solid var(--line)}
.notes details{padding:1.5rem 0}
.notes summary{font-family:var(--font-display);font-size:1.5rem;font-weight:700;cursor:pointer;min-height:2.75rem}
.notes table{border-collapse:collapse;width:100%;font-size:.96rem;margin:1rem 0}
.notes th,.notes td{text-align:left;vertical-align:top;padding:.6rem .7rem;border-bottom:1px solid var(--line)}
.notes thead th{border-bottom:2px solid var(--slate)}
.table-scroll{overflow-x:auto}

[data-view][hidden]{display:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.concept,.utility,.primary-nav,.header-actions,.hero-art,.feedback,.notes{display:none}.hero{background:none;color:#000}.hero h1{color:#000}}

/* ===== Online forms ===== */
.form-wrap{display:grid;gap:2.5rem;padding-top:2rem;padding-bottom:4rem}
@media (min-width:60rem){.form-wrap{grid-template-columns:16rem 1fr;gap:3.5rem;align-items:start}}
.form-main{max-width:44rem;min-width:0}
.steps{list-style:none;margin:0;padding:0;counter-reset:step;font-size:.95rem}
@media (min-width:60rem){.steps{position:sticky;top:1rem}}
.steps li{counter-increment:step;display:flex;gap:.6rem;align-items:center;padding:.45rem 0;color:var(--muted)}
.steps li::before{content:counter(step);flex:none;width:1.7rem;height:1.7rem;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-weight:700;font-size:.85rem}
.steps li.done{color:var(--slate)}
.steps li.done::before{content:"✓";background:var(--leaf);border-color:var(--leaf);color:#fff}
.steps li[aria-current="step"]{color:var(--slate);font-weight:700}
.steps li[aria-current="step"]::before{border-color:var(--brand);background:var(--brand);color:#fff}
@media (max-width:59.99rem){.steps{display:none}}
.step-count{color:var(--muted);font-weight:700;margin:0 0 .25rem}
.concept-note{background:var(--sun-soft);border-left:5px solid var(--sun);padding:.8rem 1rem;margin:0 0 1.75rem;font-size:.97rem;border-radius:0 var(--radius-s) var(--radius-s) 0}
.form-main h1{font-size:clamp(1.9rem,4vw,2.6rem)}
.form-main h2{font-size:1.45rem;margin-top:2rem}
.form-main fieldset{margin:0 0 1.75rem}
.form-main legend{font-weight:700;font-size:1.1rem;margin-bottom:.35rem}
.q{margin:0 0 1.5rem;display:flex;flex-direction:column;gap:.35rem}
.q > label,.q-label{font-weight:700}
.opt{font-weight:400;color:var(--muted)}
.q input:not([type=checkbox]):not([type=radio]):not([type=file]),.q select,.q textarea{font:inherit;padding:.65rem .75rem;border:2px solid var(--slate);border-radius:var(--radius-s);background:var(--paper);color:var(--slate);min-height:2.85rem;max-width:100%}
.q textarea{min-height:7rem;resize:vertical}
.q input:focus,.q select:focus,.q textarea:focus{outline:3px solid var(--focus);outline-offset:0;box-shadow:inset 0 0 0 2px var(--slate)}
.w-s{width:10rem}.w-m{width:20rem}.w-l{width:100%}
.hint{color:var(--muted);font-size:.95rem}
.err-msg{color:var(--alert);font-weight:700}
.q.has-err{border-left:5px solid var(--alert);padding-left:1rem}
.q.has-err input,.q.has-err select,.q.has-err textarea{border-color:var(--alert)}
.choices{display:grid;gap:.15rem}
.choices.cols{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr))}
.choice-row{display:flex;gap:.7rem;align-items:flex-start;padding:.35rem 0;cursor:pointer}
.choice-row input{width:1.5rem;height:1.5rem;margin:.1rem 0 0;flex:none;accent-color:var(--brand)}
.choice-row span small{display:block;color:var(--muted);font-size:.9rem}
.group-label{font-weight:700;margin:.9rem 0 .2rem;color:var(--muted);font-size:.95rem}
.reveal{border-left:4px solid var(--line);padding:.6rem 0 .1rem 1.1rem;margin:.2rem 0 .6rem 2.2rem}
.reveal[hidden]{display:none}
.row-set{border:1px solid var(--line);border-radius:var(--radius-m);padding:1rem 1.1rem .2rem;margin-bottom:1rem;background:var(--paper)}
.row-set h3{font-family:var(--font-body);font-size:1rem;margin:0 0 .75rem;display:flex;justify-content:space-between;align-items:center}
.row-grid{display:grid;gap:0 1rem}
@media (min-width:36rem){.row-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.row-grid .q input{width:100%}
.btn-link{background:none;border:0;color:var(--river);font:inherit;text-decoration:underline;cursor:pointer;padding:.4rem 0;min-height:2.75rem}
.form-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.err-summary{border:4px solid var(--alert);padding:1rem 1.25rem;margin:0 0 2rem;border-radius:var(--radius-s)}
.err-summary h2{margin:0 0 .5rem;font-size:1.3rem}
.err-summary ul{margin:0;padding-left:1.1rem}
.err-summary a{color:var(--alert);font-weight:700}
.notice{border-left:5px solid var(--river);background:var(--mist);padding:.8rem 1rem;margin:0 0 1.5rem;border-radius:0 var(--radius-s) var(--radius-s) 0}
.notice.warn{border-left-color:var(--sun);background:var(--sun-soft)}
.notice p:last-child{margin-bottom:0}
.need-list{margin:.25rem 0 1.25rem;padding-left:1.2rem}
.need-list li{margin:.3rem 0}
.total{font-weight:700;font-size:1.1rem;margin:.25rem 0 1rem}
.file-chosen{font-size:.95rem;color:var(--leaf);font-weight:700}
.review{margin:0 0 2rem}
.review-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-bottom:2px solid var(--slate);margin-top:2rem}
.review-head h2{margin:0 0 .4rem}
.review dl{margin:0}
.review .rrow{display:grid;gap:.15rem 1.5rem;padding:.7rem 0;border-bottom:1px solid var(--line)}
@media (min-width:40rem){.review .rrow{grid-template-columns:14rem 1fr}}
.review dt{font-weight:700}
.review dd{margin:0;white-space:pre-line;overflow-wrap:anywhere}
.done-panel{background:var(--leaf);color:#fff;padding:1.75rem 1.5rem;border-radius:var(--radius-m);margin-bottom:2rem;text-align:center}
.done-panel h1{color:#fff;margin-bottom:.4rem}
.done-panel .ref{font-family:var(--font-display);font-size:1.8rem;font-weight:700;display:block;margin-top:.3rem}
.next-steps{padding-left:1.3rem}
.next-steps li{margin:.5rem 0}
.forms-list{list-style:none;margin:0 0 2.5rem;padding:0;display:grid;gap:1rem}
.form-card{border:1px solid var(--line);border-left:6px solid var(--brand);border-radius:0 var(--radius-m) var(--radius-m) 0;padding:1.25rem 1.4rem;background:var(--paper)}
.form-card h3{margin:0 0 .35rem}
.form-card h3 a{color:var(--slate);text-decoration:none}
.form-card h3 a:hover{text-decoration:underline}
.form-card p{color:var(--muted);margin:0 0 .5rem}
.badge{display:inline-block;font-size:.82rem;font-weight:700;padding:.1rem .55rem;border-radius:999px;background:var(--leaf);color:#fff;margin-left:.5rem;vertical-align:.15em}
.pdf-list{list-style:none;margin:0;padding:0;columns:1}
@media (min-width:48rem){.pdf-list{columns:2;column-gap:3rem}}
.pdf-list li{padding:.4rem 0;break-inside:avoid;border-bottom:1px solid var(--line)}
@media print{.steps,.form-actions,.concept-note,.site-header,.alerts,.land,.feedback,.notes,.site-footer,.utility,.concept{display:none!important}.form-wrap{display:block}.done-panel{background:none;color:#000;border:2px solid #000}.done-panel h1{color:#000}}

/* ===== Careers ===== */
.careers-wrap{padding-top:2rem;padding-bottom:4rem}
.careers-tools{display:grid;gap:1rem 2rem;margin-bottom:1.5rem}
@media (min-width:56rem){.careers-tools{grid-template-columns:22rem 1fr;align-items:end}}
.careers-tools .q{margin:0}
.dept-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none}
.dept-filters button{font:inherit;min-height:2.5rem;padding:.3rem .9rem;border-radius:999px;border:2px solid var(--line);background:var(--paper);color:var(--slate);cursor:pointer}
.dept-filters button:hover{border-color:var(--brand)}
.dept-filters button[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:700}
:root[data-theme="dark"] .dept-filters button[aria-pressed="true"]{color:#231F20}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .dept-filters button[aria-pressed="true"]{color:#231F20}}
.job-count{color:var(--muted);font-weight:700;margin:0 0 .5rem}
.job-list{list-style:none;margin:0;padding:0;border-top:3px solid var(--brand)}
.job{padding:1.25rem 0;border-bottom:1px solid var(--line);display:grid;gap:.4rem 2rem}
@media (min-width:56rem){.job{grid-template-columns:1fr auto;align-items:start}}
.job h3{margin:0;font-size:1.3rem}
.job h3 a{text-decoration:none}
.job h3 a:hover{text-decoration:underline}
.job-meta{color:var(--muted);font-size:.97rem;margin:0}
.job-meta strong{color:var(--slate)}
.job-summary{margin:.15rem 0 0;max-width:70ch}
.job-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.25rem}
.tag{display:inline-block;font-size:.85rem;padding:.1rem .6rem;border-radius:999px;background:var(--mist);border:1px solid var(--line);color:var(--slate)}
.tag-internal{background:var(--sun-soft);border-color:var(--sun);font-weight:700}
.tag-sample{background:var(--alert-soft);border-color:var(--alert);color:var(--alert);font-weight:700}
.job-actions{display:flex;gap:.5rem;flex-wrap:wrap}
@media (min-width:56rem){.job-actions{justify-content:flex-end;padding-top:.15rem}}
.closing-soon{color:var(--alert);font-weight:700}
.feed-msg{padding:1.5rem;border:2px dashed var(--line);border-radius:var(--radius-m);margin:1rem 0}
.feed-msg p:last-child{margin-bottom:0}
.why-work{display:grid;gap:1rem 2rem;margin:2.5rem 0 0;padding:1.5rem 0 0;border-top:1px solid var(--line)}
@media (min-width:56rem){.why-work{grid-template-columns:repeat(3,1fr)}}
.why-work h3{font-size:1.15rem;margin-bottom:.3rem}
.why-work p{color:var(--muted);margin:0}
/* job profile */
.profile{display:grid;gap:2rem 3.5rem;padding-top:2rem;padding-bottom:4rem}
@media (min-width:60rem){.profile{grid-template-columns:minmax(0,1fr) 20rem;align-items:start}}
.profile-body{max-width:46rem;min-width:0}
.profile-body h2{font-size:1.45rem;margin-top:2rem}
.profile-body h3{font-size:1.2rem;margin-top:1.5rem}
.profile-body ul,.profile-body ol{padding-left:1.3rem;max-width:68ch}
.profile-body li{margin:.3rem 0}
.profile-body table{border-collapse:collapse;margin:1rem 0}
.profile-body td,.profile-body th{border:1px solid var(--line);padding:.4rem .6rem;text-align:left}
.profile-side{background:var(--mist);border-top:6px solid var(--brand);border-radius:0 0 var(--radius-m) var(--radius-m);padding:1.25rem 1.4rem}
@media (min-width:60rem){.profile-side{position:sticky;top:1rem}}
.profile-side dl{margin:0 0 1.25rem}
.profile-side dt{font-weight:700;font-size:.92rem;color:var(--muted);margin-top:.75rem}
.profile-side dd{margin:0;font-weight:700}
.profile-side .btn{width:100%}
.profile-side .hint{display:block;margin-top:.5rem}
.apply-end{margin-top:2.5rem;padding:1.5rem;border:2px solid var(--brand);border-radius:var(--radius-m)}
.apply-end h2{margin-top:0}
.back-link{display:inline-block;margin-bottom:1rem;font-weight:700}

@media print{.profile-side .btn,.apply-end .btn,.back-link,[data-print-job]{display:none!important}.profile{display:block}}

/* ===== Weather (Environment Canada feeds via warp.cranbrook.ca) ===== */
.wx-now{display:flex;align-items:center;gap:.6rem}
.wx-now img{width:3.6rem;height:3.6rem;flex:none;margin:-.4rem -.2rem -.4rem -.5rem}
.wx-temp{font-family:var(--font-display);font-size:2.2rem;font-weight:700;line-height:1;color:var(--slate)}
.wx-cond{font-weight:700;margin:.15rem 0 0;font-size:.98rem}
.wx-detail{color:var(--muted);font-size:.92rem;margin:.15rem 0 0}
.wx-row{grid-column:1/-1;border-top:1px solid var(--line);padding:1rem 1.25rem;display:grid;gap:1rem 2rem}
@media (min-width:48rem){.wx-row{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr);align-items:center}}
.wx-row h3{font-family:var(--font-body);font-size:.95rem;font-weight:700;color:var(--muted);margin:0 0 .4rem}
.wx-days{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}
.wx-days li{display:flex;align-items:center;gap:.4rem;min-width:0}
.wx-days img{width:2.6rem;height:2.6rem;flex:none}
@media (max-width:40rem){.wx-days li{flex-direction:column;align-items:flex-start;gap:.1rem}}
.wx-days b{display:block;font-size:.95rem}
.wx-days span{font-size:.92rem;color:var(--muted);white-space:nowrap}
.wx-sun{display:flex;gap:1.5rem;font-size:.95rem}
.wx-sun b{display:block}
.wx-row .today-links{margin:0}
.wx-alert{grid-column:1/-1;border-top:1px solid var(--line);padding:.9rem 1.25rem;background:var(--sun-soft);border-left:6px solid var(--sun)}
.wx-alert.warning{background:var(--alert-soft);border-left-color:var(--alert)}
.wx-alert h3{font-family:var(--font-body);font-size:1rem;margin:0 0 .2rem}
.wx-alert p{margin:0;font-size:.95rem}
.wx-source{grid-column:1/-1;padding:0 1.25rem .8rem;margin:0;font-size:.85rem;color:var(--muted)}
.alert-list li.wx-warn .icon{color:var(--alert)}

/* ===== News ===== */
.news-feature{display:grid;gap:1rem;margin:0 0 .5rem;padding:0 0 1.25rem;border-bottom:1px solid var(--line);border-top:3px solid var(--brand);padding-top:1.1rem}
@media (min-width:40rem){.news-feature.has-img{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start}}
.news-feature img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--radius-m);background:var(--line)}
.news-feature h3{font-size:1.4rem;margin:.1rem 0 .4rem}
.news-feature h3 a{text-decoration:none}
.news-feature h3 a:hover{text-decoration:underline}
.news-feature p{margin:0;color:var(--muted)}
.news-feature time{display:block;color:var(--muted);font-size:.92rem}
.news-feature + .news-list li:first-child{border-top:0}
.news-index{list-style:none;margin:0;padding:0;border-top:3px solid var(--brand)}
.news-index li{display:grid;gap:.5rem 1.5rem;padding:1.4rem 0;border-bottom:1px solid var(--line)}
@media (min-width:44rem){.news-index li.has-img{grid-template-columns:13rem minmax(0,1fr)}}
.news-index img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--radius-s);background:var(--line)}
.news-index h2{font-size:1.35rem;margin:.1rem 0 .35rem}
.news-index h2 a{text-decoration:none}
.news-index h2 a:hover{text-decoration:underline}
.news-index time{color:var(--muted);font-size:.92rem}
.news-index p{margin:0;color:var(--muted)}
.news-tools{display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:end;margin-bottom:1.5rem}
.news-tools .q{margin:0;flex:1 1 18rem;max-width:28rem}
.article{max-width:44rem;padding-top:2rem;padding-bottom:3rem}
.article-meta{color:var(--muted);margin:0 0 1.5rem;display:flex;flex-wrap:wrap;gap:.25rem 1.25rem}
.article-hero{margin:0 0 1.75rem}
.article-hero img{width:100%;max-height:30rem;object-fit:cover;border-radius:var(--radius-m);background:var(--line)}
.article-body{font-size:1.1rem;line-height:1.7}
.article-body p{max-width:none}
.article-body img{max-width:100%;height:auto;border-radius:var(--radius-s);margin:1rem 0}
.article-body h2{font-size:1.5rem;margin-top:2rem}
.article-body h3{font-size:1.25rem;margin-top:1.5rem}
.article-body figcaption{font-size:.92rem;color:var(--muted)}
.article-body blockquote{border-left:5px solid var(--sun);margin:1.25rem 0;padding:.25rem 0 .25rem 1.25rem;font-style:italic}
.article-foot{border-top:1px solid var(--line);margin-top:2.5rem;padding-top:1.25rem;display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:center}
.related{border-top:3px solid var(--brand);margin-top:3rem;padding-top:1rem}
.related ul{list-style:none;margin:0;padding:0}
.related li{padding:.7rem 0;border-bottom:1px solid var(--line)}
.related a{font-weight:700;text-decoration:none}.related a:hover{text-decoration:underline}
.related time{display:block;color:var(--muted);font-size:.9rem}
@media print{.article-foot,.related{display:none}}

/* ===== Council meetings and video ===== */
.mtg-list{list-style:none;margin:0 0 1.5rem;padding:0;border-top:3px solid var(--brand)}
.mtg{display:grid;grid-template-columns:4rem minmax(0,1fr);gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.mtg h3,.mtg h4{font-size:1.15rem;margin:0 0 .15rem;font-family:var(--font-body)}
.mtg .when{color:var(--muted);font-size:.95rem;margin:0}
.mtg-actions{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;margin-top:.35rem;font-size:.95rem}
.mtg-actions a,.mtg-actions span{display:inline-flex;align-items:center;min-height:2.25rem}
.mtg-actions .pending{color:var(--muted)}
.mtg.is-live{background:var(--alert-soft);margin:0 -1rem;padding:1rem}
.live-pill{display:inline-flex;align-items:center;gap:.4rem;background:var(--alert);color:#fff;font-weight:700;font-size:.82rem;border-radius:999px;padding:.1rem .65rem;margin-left:.5rem;vertical-align:.15em}
:root[data-theme="dark"] .live-pill{color:#231F20}
.live-pill::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:currentColor}
.feed-note{font-size:.92rem;color:var(--muted);margin:-.75rem 0 1.25rem}
.video-panel{align-self:start;background:var(--paper);border:2px solid var(--brand);border-radius:var(--radius-m);padding:1.25rem;display:grid;gap:.75rem}
.video-panel h3{margin:0}
.video-panel .video-sub{margin:0;color:var(--muted);font-size:.95rem}
.video-frame{position:relative;aspect-ratio:16/9;background:#231F20;border-radius:var(--radius-s);overflow:hidden}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-facade{all:unset;box-sizing:border-box;position:absolute;inset:0;cursor:pointer;display:grid;place-items:center;background:#231F20 center/cover no-repeat}
.video-facade::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.55))}
.video-facade .play{position:relative;z-index:1;display:flex;align-items:center;gap:.6rem;background:var(--brand);color:#fff;font-weight:700;padding:.75rem 1.2rem;border-radius:999px;box-shadow:0 6px 20px rgba(0,0,0,.35)}
.video-facade .play svg{width:1.2rem;height:1.2rem;fill:currentColor}
.video-facade:focus-visible{outline:4px solid var(--focus);outline-offset:-4px}
.video-facade:hover .play{background:#782327}
.video-links{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;font-size:.95rem}
.council-page{display:grid;gap:2.5rem 3.5rem;padding-top:2rem;padding-bottom:4rem}
@media (min-width:62rem){.council-page{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start}}
.video-grid{list-style:none;margin:0;padding:0;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr))}
.video-grid a{display:block;text-decoration:none;color:var(--slate)}
.video-grid img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-s);background:var(--line)}
.video-grid b{display:block;margin-top:.4rem;line-height:1.3}
.video-grid a:hover b{text-decoration:underline;color:var(--river)}
.video-grid time{font-size:.9rem;color:var(--muted)}
.how-list{padding-left:1.2rem}.how-list li{margin:.5rem 0}
/* Search box in the header (every page except home): beside Report a problem; its own row on narrow screens */
form.search-hdr{margin:0 0 0 auto;max-width:none;flex:0 1 19rem}
form.search-hdr .search-row{box-shadow:none;border:2px solid var(--line);border-radius:999px;background:var(--paper)}
form.search-hdr .search-row:focus-within{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--slate)}
form.search-hdr input{font-size:1rem;padding:.55rem .25rem .55rem 1rem;min-height:2.75rem;background:transparent;color:var(--slate)}
form.search-hdr input::placeholder{color:var(--muted);opacity:1}
form.search-hdr button{background:transparent;color:var(--slate);padding:0 .9rem}
form.search-hdr button:hover{color:var(--brand)}
form.search-hdr button:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}
form.search-hdr .results{left:auto;right:0;width:min(30rem,calc(100vw - 2rem));z-index:30}
@media (max-width:47.99rem){
  .header-row{flex-wrap:wrap;row-gap:.6rem}
  form.search-hdr{order:3;flex:1 1 100%;margin:0}
  form.search-hdr .results{left:0;width:auto}
}
@media print{form.search-hdr{display:none}}
/* Storage permission banner (core.js): nothing is stored in the browser until the person allows it */
.consent-bar{position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--paper);color:var(--slate);border-top:4px solid var(--sun);box-shadow:0 -10px 30px -12px rgba(0,0,0,.35);max-height:85vh;overflow:auto}
.consent-inner{max-width:var(--wrap);margin:0 auto;padding:1rem clamp(1rem,4vw,2rem) 1.1rem}
.consent-bar h2{font-family:var(--font-body);font-size:1.1rem;margin:0 0 .35rem}
.consent-bar h2:focus{outline:none}
.consent-bar p{margin:0 0 .75rem;max-width:75ch;font-size:.97rem}
.consent-actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:0!important}
.consent-choose fieldset{border:0;padding:0;margin:0 0 .75rem;display:grid;gap:.5rem}
.consent-opt{display:flex;gap:.6rem;align-items:flex-start;padding:.6rem .75rem;border:1px solid var(--line);border-radius:var(--radius-s);cursor:pointer;max-width:60rem}
.consent-opt input{width:1.25rem;height:1.25rem;margin-top:.15rem;flex:none;accent-color:var(--brand)}
.consent-opt .hint{display:block;font-size:.9rem}
.consent-note{border:1px solid var(--line);border-left:6px solid var(--sun);border-radius:var(--radius-s);padding:.75rem 1rem;margin:0 0 1rem;background:var(--sun-soft)}
.consent-note p{margin:0 0 .5rem}
.consent-note p:last-child{margin:0;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.consent-inline{display:block;margin-top:.35rem;font-size:.92rem;color:var(--muted)}
.consent-inline .btn-link{font-size:inherit;min-height:auto;padding:0}
.consent-block{padding:.6rem .8rem;border-left:4px solid var(--sun);background:var(--sun-soft);color:var(--slate)}
.btn-sm{min-height:2.5rem;padding:.4rem .9rem;font-size:.95rem}
.media-ask{position:absolute;inset:0;display:grid;place-content:center;gap:.25rem;padding:1rem;text-align:center;background:#231F20;color:#fff}
.media-ask p{margin:0 0 .6rem;max-width:34rem}
.media-ask p:last-child{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;align-items:center}
.media-ask a{color:#fff}
.media-ask .btn-ghost{color:#fff;border-color:#fff;background:transparent}
.foot-base .link-btn{all:unset;cursor:pointer;text-decoration:underline;color:inherit;font:inherit}
.foot-base .link-btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
@media print{.consent-bar{display:none}}
.consent-bar [hidden]{display:none!important}   /* the action rows are flex, which would otherwise override hidden */
.consent-choose .consent-actions{margin-top:.25rem!important}
.consent-inner > .consent-actions{margin-top:.25rem!important}
/* Text size and dark mode: the last item in the main menu */
.nav-display .nav-btn{justify-content:flex-start}
.nav-display .nav-btn .chev{margin-left:auto}
.nd-icon{font-family:var(--font-display);font-weight:700;font-size:1.1rem;letter-spacing:.02em;line-height:1;padding:.2rem .4rem;border:2px solid currentColor;border-radius:var(--radius-s)}
.mega-display{padding:.25rem 0 1.25rem}
.display-panel{display:grid;gap:1rem}
.dp-row{display:grid;gap:.4rem}
.dp-h{margin:0;font-weight:700;font-size:.95rem;color:var(--muted)}
.display-panel .prefs{display:flex;flex-wrap:wrap;gap:.5rem}
.display-panel .prefs button{font:inherit;color:var(--slate);background:var(--paper);border:2px solid var(--line);border-radius:var(--radius-s);min-height:2.75rem;padding:.35rem .85rem;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem}
.display-panel .prefs button:hover{border-color:var(--brand)}
.display-panel .prefs button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.display-panel .dp-sizes button[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:var(--paper);font-weight:700}
.dp-switch .dp-knob{position:relative;width:2.4rem;height:1.35rem;border-radius:999px;background:var(--line);flex:none;transition:background .15s}
.dp-switch .dp-knob::after{content:"";position:absolute;top:.15rem;left:.15rem;width:1.05rem;height:1.05rem;border-radius:50%;background:var(--paper);box-shadow:0 1px 3px rgba(0,0,0,.35);transition:transform .15s}
.dp-switch[aria-pressed="true"] .dp-knob{background:var(--brand)}
.dp-switch[aria-pressed="true"] .dp-knob::after{transform:translateX(1.05rem)}
@media (min-width:80rem){
:root:not(.nav-narrow) .nav-display{position:relative}:root:not(.nav-narrow) .nav-display .nd-label{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}:root:not(.nav-narrow) .nav-display .nav-btn{padding-left:.2rem;padding-right:0}:root:not(.nav-narrow) .mega-display{left:auto;right:0;width:25rem;padding:1.25rem 1.25rem 1.4rem;border:1px solid var(--line);border-bottom:4px solid var(--brand);border-radius:0 0 var(--radius-m) var(--radius-m)}
}
@media (min-width:80rem){:root:not(.nav-narrow) .nav-btn{font-size:.88rem;padding-left:.18rem;padding-right:.18rem}:root:not(.nav-narrow) .nav-list{gap:0}}
@media (min-width:80rem){:root:not(.nav-narrow) .nav-display .chev{display:none}}
/* myCBK: first item in the main menu */
.nav-mycbk{display:flex;align-items:center;gap:.9rem;padding:.9rem 0;min-height:2.75rem;text-decoration:none;color:var(--muted)}
.nav-mycbk img{height:1.7rem;width:auto;display:block;flex:none}
.nav-mycbk .nm-desc{font-size:.92rem}
.nav-mycbk:hover .nm-desc{color:var(--brand);text-decoration:underline}
.nav-mycbk:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.mycbk-ko{display:none!important}
:root[data-theme="dark"] .mycbk-colour{display:none!important}
:root[data-theme="dark"] .mycbk-ko{display:block!important}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .mycbk-colour{display:none!important}:root:not([data-theme="light"]) .mycbk-ko{display:block!important}}
@media (min-width:80rem){
  :root:not(.nav-narrow) .nav-mycbk{padding:.6rem .5rem .6rem 0;border-bottom:4px solid transparent;align-self:stretch}
  :root:not(.nav-narrow) .nav-mycbk img{height:1.25rem}
  :root:not(.nav-narrow) .nav-mycbk .nm-desc{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  :root:not(.nav-narrow) .nav-mycbk:hover,:root:not(.nav-narrow) .nav-mycbk[aria-current="page"]{border-bottom-color:var(--sun)}
}
.nav-mine{display:flex;flex:none}
@media (min-width:80rem){:root:not(.nav-narrow) .nav-btn{gap:.2rem}:root:not(.nav-narrow) .nav-btn .chev{width:.85rem;height:.85rem}}

/* ===== Content pages (multi-page build) ===== */
.content-layout{display:grid;gap:2.5rem;padding-top:2.25rem;padding-bottom:3rem}
@media (min-width:64rem){.content-layout{grid-template-columns:minmax(0,1fr) 19rem;gap:3.5rem}}
.prose{min-width:0}
.prose h2{font-size:clamp(1.45rem,2.4vw,1.85rem);margin-top:2rem}
.prose h2:first-child{margin-top:0}
.prose h3{margin-top:1.5rem}
.prose ul,.prose ol{padding-left:1.3rem;max-width:68ch}
.prose li{margin:.35rem 0}
.prose img{border-radius:var(--radius-m);height:auto}
.content-side{display:flex;flex-direction:column;gap:1.25rem;align-self:start}
@media (min-width:64rem){.content-side{position:sticky;top:1rem}}
.side-box{border:1px solid var(--line);border-radius:var(--radius-m);padding:1.1rem 1.25rem;background:var(--paper)}
.side-box h2{font-size:1.25rem;margin-bottom:.6rem}
.side-box p:last-child,.side-box ul:last-child{margin-bottom:0}
.side-box ul{list-style:none;padding:0;margin:0}
.side-box li{margin:.45rem 0}
.side-box.contact{background:var(--sun-soft);border-color:transparent;border-left:5px solid var(--sun);border-radius:0 var(--radius-m) var(--radius-m) 0}
.side-box li[aria-current="page"]{font-weight:700}
.source-note{font-size:.93rem;color:var(--muted);border-top:1px solid var(--line);padding-top:1rem;margin:0 0 2.5rem;max-width:none}

/* Tables */
.table-wrap{position:relative;overflow-x:auto;margin:1rem 0 1.5rem;-webkit-overflow-scrolling:touch}
.data-table{border-collapse:collapse;width:100%;font-size:.97rem;min-width:20rem}
.data-table caption{text-align:left;font-weight:700;padding-bottom:.5rem}
.data-table th,.data-table td{text-align:left;vertical-align:top;padding:.6rem .75rem;border-bottom:1px solid var(--line)}
.data-table thead th{border-bottom:2px solid var(--slate);font-family:var(--font-body);background:var(--mist)}
.data-table tbody tr:hover{background:var(--mist)}
.data-table .num,.data-table .has-text-align-right{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.data-table .total-row td,.data-table .total-row th{font-weight:700;border-top:2px solid var(--slate)}

/* Lists */
.steps-list{counter-reset:step;list-style:none;padding:0!important;margin:1rem 0 1.5rem}
.steps-list>li{counter-increment:step;position:relative;padding:.1rem 0 .9rem 3rem;margin:0!important}
.steps-list>li::before{content:counter(step);position:absolute;left:0;top:0;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--brand);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.1rem}
:root[data-theme="dark"] .steps-list>li::before{color:#231F20}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .steps-list>li::before{color:#231F20}}
.link-list{list-style:none;padding:0!important}
.link-list li{padding:.55rem 0;border-bottom:1px solid var(--line);margin:0!important}
.link-list li:last-child{border-bottom:0}
.checklist{list-style:none;padding:0!important}
.checklist li{position:relative;padding-left:1.9rem}
.checklist li::before{content:"";position:absolute;left:.15rem;top:.3em;width:1.1rem;height:1.1rem;border-radius:3px;background:var(--leaf);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8.5 6 12.5 14 3.5' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8.5 6 12.5 14 3.5' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.facts-list{list-style:none;padding:0!important;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));max-width:none!important}
.facts-list li{background:var(--mist);border-radius:var(--radius-m);padding:.85rem 1rem;margin:0!important}
dl.facts-list{display:block}
dl.facts-list dt{font-weight:700;font-family:var(--font-display);font-size:1.2rem;margin-top:1rem}
dl.facts-list dd{margin:.2rem 0 0}
.park-list{list-style:none;padding:0!important;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));max-width:none!important}
.park-list li{border:1px solid var(--line);border-radius:var(--radius-m);padding:1rem 1.1rem;margin:0!important}

/* Layout helpers */
.two-up{display:grid;gap:1.25rem 2rem;margin:1rem 0 1.5rem}
@media (min-width:44rem){.two-up{grid-template-columns:1fr 1fr}}
ul.two-up{padding-left:1.3rem}
@media (min-width:44rem){ul.two-up{column-gap:2.5rem}}
.two-up>div>h2:first-child,.two-up>div>h3:first-child{margin-top:0}
.choice-cards{display:grid;gap:1rem;margin:1rem 0 1.5rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));padding:0!important;list-style:none;max-width:none!important}
.choice-cards>*{border:1px solid var(--line);border-top:5px solid var(--brand);border-radius:var(--radius-m);padding:1rem 1.15rem;margin:0!important;background:var(--paper)}
.choice-cards h2,.choice-cards h3{font-size:1.25rem;margin-top:0}
.choice-cards p:last-child{margin-bottom:0}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem}
.prose .btn{margin:.25rem 0}
.prose .btn.ext::after{background:currentColor}

/* Section landing pages */
.section-pages{padding-bottom:1rem}
.section-pages h2{font-size:1.5rem}
.page-cards{list-style:none;padding:0;margin:0 0 2.5rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr))}
.page-cards li{border:1px solid var(--line);border-radius:var(--radius-m);padding:1rem 1.15rem}
.page-cards a{font-weight:700;font-size:1.08rem}
.page-cards p{margin:.35rem 0 0;color:var(--muted);font-size:.95rem}
.cat-group a[aria-current="page"]{font-weight:700}
.nav-btn.is-current{box-shadow:inset 0 -4px 0 var(--brand)}

/* Page-level search (A to Z) */
.page-search{margin-top:1.25rem;max-width:40rem}
.page-search label{display:block;font-weight:700;margin-bottom:.35rem}
.page-search .results{position:relative}

@media print{.content-side{display:none}.content-layout{display:block}}
.page-head form.search{margin-top:1.25rem}
.page-head .search-row{border:2px solid var(--grey);box-shadow:none}
.results .empty a{color:#005766}

/* ===== Report a problem (311) ===== */
.page-head-slim .wrap{padding-top:1rem;padding-bottom:1rem}
.page-head-slim .crumbs{margin:0}
.lede-sm{color:var(--muted);font-weight:700;margin-top:-.25rem}
.type-group{border:0;padding:0;margin:0 0 1.25rem}
.type-group legend{font-family:var(--font-display);font-size:1.3rem;font-weight:700;padding:0;margin-bottom:.25rem}
.type-group[hidden],.type-opt[hidden]{display:none}
.type-opt .reveal{margin-top:0}
.type-filter{max-width:30rem}
.addr-row{display:flex;gap:.5rem}
.addr-row input{flex:1;min-width:0}
.addr-results{list-style:none;margin:.25rem 0 0;padding:0;border:2px solid var(--slate);border-radius:var(--radius-s);background:var(--paper)}
.addr-results[hidden]{display:none}
.addr-results button{all:unset;box-sizing:border-box;display:block;width:100%;padding:.65rem .8rem;cursor:pointer;min-height:2.75rem;color:var(--river);text-decoration:underline}
.addr-results li+li button{border-top:1px solid var(--line)}
.addr-results button:hover,.addr-results button:focus-visible{background:var(--mist)}
.addr-results button:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}
.map-wrap{margin:0 0 1rem}
.map{height:min(60vh,26rem);border:2px solid var(--line);border-radius:var(--radius-m);background:var(--mist);z-index:0}
.map:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.map-hint{margin:.4rem 0 0}
.leaflet-container{font:inherit}
.leaflet-container a{color:var(--river)}
:root[data-theme="dark"] .leaflet-tile-pane{filter:brightness(.75) contrast(1.1)}
.loc-picked{background:var(--mist);border-left:5px solid var(--leaf);padding:.75rem 1rem;margin:0 0 1.5rem;border-radius:0 var(--radius-s) var(--radius-s) 0}
.photo-list{list-style:none;padding:0;margin:.4rem 0;display:flex;flex-wrap:wrap;gap:1rem}
.photo-list li{display:flex;flex-direction:column;align-items:flex-start}
.photo-list img{width:9rem;height:7rem;object-fit:cover;border-radius:var(--radius-s);border:1px solid var(--line)}
.file-input{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden}
.file-input:focus-visible+.file-btn{outline:3px solid var(--focus);outline-offset:2px}
.file-btn{align-self:flex-start;cursor:pointer}
.char-count{text-align:right}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.collection-notice{margin-top:1.5rem;font-size:.95rem}
.collection-notice summary{cursor:pointer;font-weight:700;color:var(--river);min-height:2.75rem;display:flex;align-items:center}
@media (min-width:40rem){.review .rrow:has(.change){grid-template-columns:14rem 1fr auto}}
.review dd.change{align-self:start}
.review dd.change .btn-link{min-height:auto;padding:0}
.photo-thumbs{display:flex;gap:.5rem;flex-wrap:wrap}
.photo-thumbs img{width:5rem;height:4rem;object-fit:cover;border-radius:var(--radius-s)}
.payload{border:1px dashed var(--grey);border-radius:var(--radius-m);padding:.75rem 1rem;margin:0 0 1rem}
.payload summary{cursor:pointer;font-weight:700}
.payload pre{overflow:auto;background:var(--mist);padding:1rem;border-radius:var(--radius-s);font-size:.85rem;max-height:24rem}
.status-form .addr-row{max-width:28rem}
.status-track{list-style:none;padding:0;margin:1rem 0 1.5rem;display:flex;gap:.5rem;counter-reset:st}
.status-track li{flex:1;text-align:center;padding:.6rem .5rem;border-radius:var(--radius-s);background:var(--mist);color:var(--muted);font-weight:700;font-size:.95rem}
.status-track li.done{background:var(--leaf);color:#fff}
.status-track li[aria-current="step"]{background:var(--brand);color:#fff}
:root[data-theme="dark"] .status-track li.done,:root[data-theme="dark"] .status-track li[aria-current="step"]{color:#231F20}

/* ===== Contact page ===== */
.contact-page{padding-top:2rem;padding-bottom:3.5rem}
.contact-page>h2{margin-top:2.5rem}
.contact-ways{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.contact-ways .phone-big{font-family:var(--font-display);font-size:2.4rem;font-weight:700;text-decoration:none;line-height:1}
.svc-filter{max-width:30rem}
.svc-dept{margin:1.75rem 0 0}
.svc-dept[hidden],.svc[hidden]{display:none}
.svc-dept h3{font-size:1.4rem;border-bottom:2px solid var(--slate);padding-bottom:.35rem}
.svc-list{list-style:none;padding:0;margin:0;display:grid;gap:0 2rem}
@media (min-width:48rem){.svc-list{grid-template-columns:1fr 1fr}}
.svc{padding:.85rem 0;border-bottom:1px solid var(--line)}
.svc h4{font-family:var(--font-body);font-size:1.05rem;margin:0 0 .2rem}
.svc-desk{margin:0;display:flex;flex-wrap:wrap;gap:.25rem 1rem}
.svc-people{list-style:none;padding:0;margin:.6rem 0 0;display:grid;gap:.5rem}
.svc-people[hidden]{display:none}
.dir-tools{display:grid;gap:0 1.5rem;max-width:44rem}
@media (min-width:40rem){.dir-tools{grid-template-columns:2fr 1fr}}
.dir-tools[hidden]{display:none}
.dir-tools select{font:inherit;padding:.65rem .75rem;border:2px solid var(--slate);border-radius:var(--radius-s);background:var(--paper);color:var(--slate)}
.dir-group h3{font-size:1.3rem;margin-top:1.75rem}
.people{list-style:none;padding:0;margin:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr))}
.person{display:flex;gap:.85rem;align-items:flex-start;border:1px solid var(--line);border-radius:var(--radius-m);padding:.9rem 1rem;min-width:0}
.person.compact{border:0;padding:0}
.person>div{min-width:0}
.avatar{flex:none;width:2.75rem;height:2.75rem;border-radius:50%;background:var(--brand-deep);color:#fff;display:grid;place-items:center;font-weight:700;object-fit:cover}
.person.compact .avatar{width:2.25rem;height:2.25rem;font-size:.85rem}
.person p{margin:0}
.person-name{font-weight:700}
.person-title,.person-meta{color:var(--muted);font-size:.93rem}
.person-links{display:flex;flex-wrap:wrap;gap:.1rem 1rem;font-size:.93rem;margin-top:.25rem!important}
.person-links a{overflow-wrap:anywhere}

/* ===== Pool schedule ===== */
:root{--pt-public:#CFF3E8;--pt-lanes:#DDEBF7;--pt-lessons:#FCE3D6;--pt-parent-tot:#EEDDF3;--pt-family:#D3E3F8;--pt-closed:#E6E2DE;--pt-note:#A3171F}
:root[data-theme="dark"]{--pt-public:#123B33;--pt-lanes:#1B2B3B;--pt-lessons:#3D2519;--pt-parent-tot:#33213A;--pt-family:#1A2C44;--pt-closed:#2C2724;--pt-note:#FF9A8F}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--pt-public:#123B33;--pt-lanes:#1B2B3B;--pt-lessons:#3D2519;--pt-parent-tot:#33213A;--pt-family:#1A2C44;--pt-closed:#2C2724;--pt-note:#FF9A8F}}
.pool{margin:1.5rem 0 2rem;max-width:none}
.pool h2{margin-top:2rem}
.pool-dates{max-width:none}
.pool-today{border:2px solid var(--line);border-left:6px solid var(--river);border-radius:0 var(--radius-m) var(--radius-m) 0;padding:1rem 1.25rem;margin:1rem 0}
.pool-today h2{margin:0 0 .5rem;font-size:1.3rem}
.pool-big{font-family:var(--font-display);font-size:1.6rem;font-weight:700;margin:0 0 .5rem;display:flex;align-items:center;gap:.5rem}
.pool-today-list{list-style:none;padding:0!important;margin:.5rem 0 0;display:grid;gap:.5rem}
.pool-today-list>li{display:grid;gap:.1rem;margin:0!important}
@media (min-width:40rem){.pool-today-list>li{grid-template-columns:12rem 1fr}}
.pool-today-list>li.is-now .pool-time{font-weight:700;color:var(--river)}
.pool-today-list ul,.pool-block ul{list-style:none;padding:0!important;margin:0}
.pool-notices ul{padding-left:1.2rem}
.pool-filter{border:0;padding:0;margin:.5rem 0 1rem}
.pool-filter legend{font-weight:700;margin-bottom:.4rem}
.pool-filter-opts{display:flex;flex-wrap:wrap;gap:.5rem}
.chip-radio{position:relative;display:inline-flex}
.chip-radio input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.chip-radio span{display:inline-flex;align-items:center;min-height:2.5rem;padding:.3rem .9rem;border:2px solid var(--line);border-radius:999px;background:var(--paper)}
.chip-radio.pt-public span{border-left:12px solid var(--pt-public)}.chip-radio.pt-lanes span{border-left:12px solid var(--pt-lanes)}
.chip-radio.pt-lessons span{border-left:12px solid var(--pt-lessons)}.chip-radio.pt-parent-tot span{border-left:12px solid var(--pt-parent-tot)}
.chip-radio.pt-family span{border-left:12px solid var(--pt-family)}
.chip-radio input:checked+span{border-color:var(--slate);font-weight:700;box-shadow:inset 0 0 0 1px var(--slate)}
.chip-radio input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}
.pool-table{border-collapse:collapse;width:100%;min-width:62rem;font-size:.92rem;table-layout:fixed}
.pool-table th,.pool-table td{border:1px solid var(--line);padding:.5rem .55rem;vertical-align:top;text-align:left}
.pool-table thead th{background:var(--brand-deep);color:#fff;font-family:var(--font-body)}
.pool-table thead th:first-child{width:8.5rem}
.pool-table tbody th{background:var(--mist);font-weight:700;font-size:.88rem}
.pool-table th.is-today{background:var(--brand)}
.pool-today-tag{display:inline-block;margin-left:.4rem;font-size:.75rem;font-weight:700;padding:.05rem .45rem;border-radius:999px;background:var(--sun);color:#231F20;vertical-align:.1em}
.pool-block.pb-public{background:var(--pt-public)}.pool-block.pb-lanes{background:var(--pt-lanes)}
.pool-block.pb-lessons{background:var(--pt-lessons)}.pool-block.pb-parent-tot{background:var(--pt-parent-tot)}
.pool-block.pb-family{background:var(--pt-family)}.pool-block.pb-closed{background:var(--pt-closed);color:var(--muted)}
.pool-table td.is-today{box-shadow:inset 3px 0 0 var(--brand),inset -3px 0 0 var(--brand)}
.pool-span{display:block;font-size:.8rem;color:var(--muted);margin-bottom:.25rem}
.pool-item{margin:.1rem 0 .3rem!important;line-height:1.35}
.pool-item .pool-name{font-weight:700}
.pool-item.pt-lanes .pool-name,.pool-item.pt-closed .pool-name{font-weight:400}
.pool-when{display:block;font-size:.85rem}
.pool-note{display:block;color:var(--pt-note);font-size:.85rem}
.is-filtered .pool-block.no-match{opacity:.35}
.is-filtered .pool-block.is-match{outline:3px solid var(--slate);outline-offset:-3px}
.pool-days{display:none}
@media (max-width:59.99rem){.pool-week{display:none}.pool-days{display:block}}
.pool-day{margin:1.25rem 0}
.pool-day h3{font-size:1.3rem;margin:0 0 .4rem}
.pool-day-list{list-style:none;padding:0!important;margin:0;display:grid;gap:.4rem}
.pool-day-list>.pool-block{display:grid;grid-template-columns:7.5rem 1fr;gap:.75rem;padding:.6rem .75rem;border-radius:var(--radius-s);margin:0!important}
.pool-day-list .pool-time{font-weight:700;font-size:.9rem}
.is-filtered .pool-day-list>.pool-block.no-match{display:none}
.is-filtered .pool-day.no-match{display:none}
@media print{.pool-filter,.pool-days{display:none!important}.pool-week{display:block!important}.pool-table{min-width:0;font-size:.75rem}}
/* Pages with the pool schedule use the full width; the sidebar boxes move below. */
.content-layout:has(.pool){grid-template-columns:minmax(0,1fr)}
.content-layout:has(.pool) .content-side{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem;align-items:start}
.content-layout:has(.pool) .prose>:not(.pool){max-width:68ch}

/* ---------------------------------------------------------------- publication reader (read.html) */
.reader{--desk:#E7E1D9;--desk-ink:var(--slate);--sheet-shadow:0 1px 2px rgba(0,0,0,.18),0 10px 30px rgba(42,37,34,.22);
  display:flex;flex-direction:column;height:max(30rem,100vh);height:max(30rem,100dvh);background:var(--desk);color:var(--desk-ink);position:relative;overflow:hidden}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .reader{--desk:#0E0B0A;--sheet-shadow:0 0 0 1px #2c2522,0 12px 32px rgba(0,0,0,.6)}}
:root[data-theme="dark"] .reader{--desk:#0E0B0A;--sheet-shadow:0 0 0 1px #2c2522,0 12px 32px rgba(0,0,0,.6)}
.reader:fullscreen,.reader.is-immersive{height:100dvh}
.reader.is-immersive{position:fixed;inset:0;z-index:200}
.reader-lock,.reader-lock body{overflow:hidden}
.reader-bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem 1rem;flex-wrap:wrap;padding:.4rem .75rem;background:var(--paper);border-bottom:1px solid var(--line)}
.reader-id{display:flex;align-items:center;gap:.75rem;min-width:0;flex:1 1 18rem}
.reader-back{display:inline-flex;align-items:center;gap:.15rem;font-weight:700;white-space:nowrap;min-height:2.75rem;text-decoration:none}
.reader-back .ri{width:1.1rem;height:1.1rem}
.reader-title{font-size:clamp(1.05rem,2vw,1.35rem);margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-left:1px solid var(--line);padding-left:.75rem}
.reader-tools{display:flex;align-items:center;gap:.15rem;flex-wrap:wrap}
.rb{display:inline-grid;place-items:center;width:2.75rem;height:2.75rem;border:0;border-radius:var(--radius-s);background:transparent;color:var(--slate);cursor:pointer;padding:0}
.rb:hover{background:var(--mist)}
.rb[aria-pressed="true"]{background:var(--brand);color:#fff}
:root[data-theme="dark"] .rb[aria-pressed="true"]{color:#231F20}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .rb[aria-pressed="true"]{color:#231F20}}
.rb:disabled{opacity:.35;cursor:default;background:transparent}
.rb[hidden]{display:none}
.ri{width:1.35rem;height:1.35rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rb-sep{width:1px;height:1.6rem;background:var(--line);margin:0 .3rem}
.rb-zoom{min-width:3.2rem;text-align:center;font-variant-numeric:tabular-nums;font-size:.9rem;color:var(--muted)}
.reader-body{flex:1;display:flex;min-height:0;position:relative}
.reader-stage{flex:1;position:relative;overflow:auto;display:grid;place-items:center;outline-offset:-4px;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.reader-stage[hidden],#rp-pages[hidden]{display:none}
.reader-stage:focus-visible{box-shadow:inset 0 0 0 3px var(--focus)}
.reader-stage.is-zoomed{cursor:grab;place-items:start center}
.reader-stage.is-dragging{cursor:grabbing}
.book{position:relative;display:flex;margin:auto;perspective:2600px;transition:transform .5s cubic-bezier(.45,.05,.35,1)}
.book[hidden]{display:none}
.book.closed-front{transform:translateX(calc(var(--pw) / -2))}
.book.closed-back{transform:translateX(calc(var(--pw) / 2))}
.slot{width:var(--pw);height:var(--ph);position:relative;background:#fff;box-shadow:var(--sheet-shadow);cursor:pointer}
.slot[hidden]{display:none}
.slot.is-blank{background:transparent;box-shadow:none;cursor:default}
.slot canvas{display:block;width:100%;height:100%}
.is-zoomed .slot{cursor:inherit}
.book.is-spread .slot-l:not(.is-blank)::after{content:"";position:absolute;inset:0 0 0 auto;width:12%;pointer-events:none;background:linear-gradient(to left,rgba(0,0,0,.16),transparent)}
.book.is-spread .slot-r:not(.is-blank)::after{content:"";position:absolute;inset:0 auto 0 0;width:8%;pointer-events:none;background:linear-gradient(to right,rgba(0,0,0,.14),transparent)}
.book.is-spread .slot-r:not(.is-blank)::before{content:"";position:absolute;right:0;bottom:0;width:0;height:0;z-index:2;transition:width .2s,height .2s;
  background:linear-gradient(225deg,var(--desk) 50%,#e9e4dc 50%,#fff 70%);box-shadow:-2px -2px 6px rgba(0,0,0,.15)}
@media (hover:hover){.book.is-spread .slot-r:not(.is-blank):hover::before{width:2.6rem;height:2.6rem}}
.pg-error{display:grid;place-items:center;height:100%;padding:1rem;color:#675C53;text-align:center}
.leaf{position:absolute;top:0;width:var(--pw);height:var(--ph);transform-style:preserve-3d;z-index:5;pointer-events:none}
.leaf-fwd{left:var(--pw);transform-origin:left center}
.leaf-back{left:0;transform-origin:right center}
.face{position:absolute;inset:0;background:#fff;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;box-shadow:var(--sheet-shadow)}
.face.is-blank{background:transparent;box-shadow:none}
.face canvas{width:100%;height:100%;display:block}
.face-back{transform:rotateY(180deg)}
.shade{position:absolute;inset:0;opacity:0;background:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0) 60%)}
.leaf-back .face:not(.face-back) .shade,.leaf-fwd .face-back .shade{background:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0) 60%)}
.turn{position:absolute;top:50%;transform:translateY(-50%);z-index:6;width:3rem;height:3rem;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--slate);display:grid;place-items:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.turn[hidden]{display:none}
.turn:disabled{opacity:0;pointer-events:none}
.turn-prev{left:.75rem}.turn-next{right:.75rem}
.is-zoomed .turn{position:fixed;top:auto;bottom:5rem;transform:none}
@media (max-width:37.5rem){.turn{display:none}}
.reader-msg{max-width:34rem;margin:auto;padding:1.5rem;text-align:center;background:var(--paper);border-radius:var(--radius-m);box-shadow:var(--sheet-shadow)}
.reader-msg[hidden]{display:none}
.reader-msg h2{font-size:1.5rem}
.rm-links{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}
.rm-bar{height:.4rem;border-radius:1rem;background:var(--mist);overflow:hidden;margin:0 auto 1rem;width:min(16rem,80%)}
.rm-bar span{display:block;height:100%;width:6%;background:var(--brand);transition:width .2s}
.is-error .rm-bar{display:none}
.reader-foot{display:flex;align-items:center;justify-content:center;gap:.25rem .5rem;padding:.35rem .75rem;background:var(--paper);border-top:1px solid var(--line);flex-wrap:wrap}
.reader-foot[hidden]{display:none}
#rf-scrub{flex:1 1 12rem;max-width:36rem;accent-color:var(--brand);min-height:2.75rem}
.rf-page{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap;font-size:.95rem}
#rf-num{width:4.2rem;min-height:2.5rem;font:inherit;padding:.2rem .4rem;border:1px solid var(--grey);border-radius:var(--radius-s);background:var(--paper);color:var(--slate);text-align:center}
@media (max-width:37.5rem){#rf-scrub{order:-1;flex-basis:100%;max-width:none}.reader-title{border:0;padding:0}.reader-back span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.rb-sep,.rb-zoom{display:none}}
.reader-panel{width:min(20rem,85vw);flex:none;background:var(--paper);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.reader-panel[hidden]{display:none}
@media (max-width:47.99rem){.reader-panel{position:absolute;inset:auto 0 0 0;width:auto;max-height:70%;z-index:20;border:0;border-top:1px solid var(--line);border-radius:var(--radius-m) var(--radius-m) 0 0;box-shadow:0 -8px 30px rgba(0,0,0,.25)}}
.rp-head{display:flex;align-items:center;justify-content:space-between;padding:.4rem .4rem .4rem 1rem;border-bottom:1px solid var(--line)}
.rp-head h2{font-size:1.25rem;margin:0}
.rp-view{overflow:auto;padding:1rem;flex:1}
.rp-view[hidden]{display:none}
#rp-pages{display:grid;grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr));gap:.9rem .75rem;align-content:start}
.rp-thumb{position:relative;display:block;width:100%;padding:0;border:2px solid transparent;border-radius:3px;background:#fff;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.rp-thumb canvas{width:100%;height:100%;display:block}
.rp-thumb[aria-current]{border-color:var(--brand);outline:2px solid var(--brand)}
.rt-n{position:absolute;left:50%;bottom:-.1rem;transform:translate(-50%,100%);font-size:.8rem;color:var(--muted);padding-top:.1rem}
#rp-pages>div{padding-bottom:1.1rem}
#rp-toc ol{list-style:none;margin:0;padding:0}
#rp-toc ol ol{padding-left:1rem}
#rp-toc button,.rp-results button{display:flex;justify-content:space-between;gap:.75rem;width:100%;text-align:left;font:inherit;color:var(--river);background:none;border:0;border-bottom:1px solid var(--line);padding:.6rem .25rem;cursor:pointer;min-height:2.75rem}
#rp-toc button:hover,.rp-results button:hover{background:var(--mist)}
.toc-p{color:var(--muted);font-variant-numeric:tabular-nums}
.toc-x{display:block;padding:.6rem .25rem;font-weight:700}
.rp-form label{font-weight:700;display:block;margin-bottom:.35rem}
.rp-row{display:flex;gap:.5rem}
.rp-row input{flex:1;min-width:0;min-height:2.75rem;font:inherit;padding:.4rem .6rem;border:2px solid var(--grey);border-radius:var(--radius-s);background:var(--paper);color:var(--slate)}
.rp-results{list-style:none;margin:0;padding:0}
.rp-results button{flex-direction:column;gap:.15rem;color:var(--slate)}
.rp-results strong{color:var(--river)}
.rs-snip{font-size:.9rem;color:var(--muted)}
mark{background:var(--sun);color:#231F20;padding:0 .1em;border-radius:2px}
.reader-text{flex:1;overflow:auto;background:var(--paper);padding:1.5rem 1rem 3rem}
.reader-text[hidden]{display:none}
.reader-text>*{max-width:42rem;margin-left:auto;margin-right:auto}
.reader-text section{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--line)}
.reader-text h2{font-size:1.1rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.reader-text p{font-size:1.125rem;line-height:1.7}
.tp-nav{display:flex;gap:.75rem;justify-content:space-between}
.reader-toast{position:absolute;left:50%;bottom:4.5rem;transform:translateX(-50%);background:var(--slate);color:var(--paper);padding:.6rem 1rem;border-radius:var(--radius-s);z-index:30;box-shadow:0 4px 16px rgba(0,0,0,.3)}
.reader-toast[hidden]{display:none}
@media (prefers-reduced-motion:reduce){.book{transition:none}}
@media print{.reader-bar,.reader-foot,.turn,.reader-panel{display:none!important}.reader{height:auto}}

/* ---------------------------------------------------------------- publication library */
.pub-tools{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:end;margin:1.5rem 0}
.pub-tools .q{margin:0}
.pub-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:0;padding:0;border:0}
.pub-chips legend{font-weight:700;margin-bottom:.35rem;padding:0}
.pub-chip{font:inherit;font-size:.95rem;min-height:2.5rem;padding:.3rem .85rem;border-radius:2rem;border:1px solid var(--grey);background:var(--paper);color:var(--slate);cursor:pointer}
.pub-chip[aria-pressed="true"]{background:var(--slate);border-color:var(--slate);color:var(--paper)}
.pub-group h2{margin-top:2.25rem}
.pub-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:1.75rem 1.25rem}
.pub{position:relative;display:flex;flex-direction:column}
.pub-cover{position:relative;aspect-ratio:8.5/11;border-radius:3px;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.2),0 8px 20px rgba(42,37,34,.18);transition:transform .2s,box-shadow .2s;background:var(--c,#AA272F);color:#fff;display:flex;flex-direction:column;justify-content:flex-start;gap:.5rem;padding:.85rem}
.pub-cover canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#fff}
.pub-cover .pc-title{font-family:var(--font-display);font-weight:700;font-size:1.15rem;line-height:1.1;position:relative}
.pub-cover .pc-year{font-weight:700;font-size:.85rem;opacity:.85;position:relative}
.pub-cover svg{position:absolute;left:0;right:0;bottom:0;width:100%;height:38%;opacity:.22}
.pub-cover .pc-title{font-size:1.25rem}
.pub:hover .pub-cover,.pub:focus-within .pub-cover{transform:translateY(-3px);box-shadow:0 2px 4px rgba(0,0,0,.2),0 14px 28px rgba(42,37,34,.25)}
.pub h3{font-family:var(--font-body);font-size:1rem;line-height:1.35;margin:.75rem 0 .15rem}
.pub h3 a{text-decoration:none;color:var(--slate)}
.pub h3 a::after,.pub h3 a.ext::after{content:"";position:absolute;inset:0;width:auto;height:auto;margin:0;background:none;-webkit-mask:none;mask:none}
.pub h3 a:hover{text-decoration:underline}
.pub-meta{font-size:.875rem;color:var(--muted);margin:0}
.pub-badge{display:inline-block;font-size:.75rem;font-weight:700;padding:.05rem .45rem;border-radius:2rem;background:var(--mist);color:var(--muted);margin-left:.25rem}
.pub[hidden],.pub-group[hidden]{display:none}
.pub-cat-plans{--c:#782327}.pub-cat-finance{--c:#006778}.pub-cat-housing{--c:#6A491C}.pub-cat-moving{--c:#536828}.pub-cat-guides{--c:#AA272F}.pub-cat-business{--c:#2A2522}
@media (max-width:37.5rem){.reader-tools{flex-wrap:nowrap;width:100%;justify-content:space-between}#rb-zin,#rb-zout{display:none}.reader-bar{padding:.25rem .5rem}}

/* ---------------------------------------------------------------- garbage and recycling pickup */
.waste{margin:1rem 0 2rem;padding:1.25rem;border:1px solid var(--line);border-top:6px solid var(--leaf);border-radius:var(--radius-m);background:var(--paper)}
.waste .q{margin-bottom:1.25rem}
.ws-days{display:flex;flex-wrap:wrap;gap:.5rem}
.ws-opt{display:flex;align-items:center;gap:.6rem;min-height:2.75rem;padding:.45rem .9rem;border:2px solid var(--line);border-radius:var(--radius-s);cursor:pointer;background:var(--paper)}
#ws-rec-opts{display:grid;gap:.5rem;max-width:34rem}
.ws-opt input{width:1.25rem;height:1.25rem;accent-color:var(--brand);margin:0;flex:none}
.ws-opt:has(input:checked){border-color:var(--slate);box-shadow:inset 0 0 0 1px var(--slate)}
.ws-matches{list-style:none;margin:.5rem 0 0;padding:0;border:1px solid var(--line);border-radius:var(--radius-s);max-width:34rem}
.ws-matches button{display:block;width:100%;text-align:left;font:inherit;background:none;border:0;border-bottom:1px solid var(--line);padding:.7rem .9rem;min-height:2.75rem;color:var(--river);cursor:pointer}
.ws-matches li:last-child button{border-bottom:0}
.ws-matches button:hover{background:var(--mist)}
.waste-next{outline:none}
.wn-label{font-weight:700;color:var(--muted);margin:0}
.wn-date{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.4rem);font-weight:700;line-height:1.1;margin:.1rem 0 .6rem}
.waste .wn-what{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 .75rem;padding:0}
.bin{display:inline-flex;align-items:center;gap:.45rem;font-weight:700;padding:.3rem .8rem .3rem .45rem;border-radius:2rem;background:var(--mist)}
.bin::before{content:"";width:1.1rem;height:1.25rem;border-radius:3px 3px 4px 4px;background:var(--c)}
.bin-garbage{--c:#4A4440}.bin-recycling{--c:#1F5FA8}
:root[data-theme="dark"] .bin-garbage{--c:#BFB7AF}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .bin-garbage{--c:#BFB7AF}:root:not([data-theme="light"]) .bin-recycling{--c:#7EB3F0}}
:root[data-theme="dark"] .bin-recycling{--c:#7EB3F0}
.waste-for{margin:1rem 0 .5rem}
.waste-table th[scope=row]{font-weight:700;white-space:nowrap}
.waste-actions{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;margin-top:1.25rem}
.pickup-tag{font-weight:700}
/* Holiday changes: quiet supporting text, not an alarm (the home page boxes stay calm) */
.pickup-shift,.fac .fac-note{color:var(--muted);font-weight:400;font-size:.9rem;margin-top:.2rem!important}
.pickup-shift::before,.fac .fac-note::before{content:"";display:inline-block;width:.45rem;height:.45rem;border-radius:50%;background:var(--sun);margin-right:.4rem;vertical-align:.1em}
.waste [hidden]{display:none!important}

/* ---------------------------------------------------------------- stat tiles and the permit chart */
.stat-tiles{list-style:none;padding:0!important;margin:0 0 1.75rem!important;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));max-width:none!important}
.stat-tiles li{margin:0!important;padding:1rem 1.1rem;border:1px solid var(--line);border-top:5px solid var(--brand);border-radius:var(--radius-m);background:var(--paper);display:flex;flex-direction:column;gap:.3rem}
.st-big{font-family:var(--font-display);font-weight:700;font-size:clamp(1.9rem,4vw,2.4rem);line-height:1;color:var(--slate)}
.st-label{font-size:.95rem;color:var(--muted);line-height:1.35}
.pc-figure{margin:1rem 0 .5rem;max-width:44rem;overflow-x:auto}
@media (max-width:37.5rem){.pchart{min-width:34rem}}
.pchart{--bar:#AA272F;width:100%;height:auto;display:block;font-family:var(--font-body);overflow:visible}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pchart{--bar:#E0646B}}
:root[data-theme="dark"] .pchart{--bar:#E0646B}
.pc-grid{stroke:var(--line);stroke-width:1}
.pc-axis{stroke:var(--grey);stroke-width:1}
.pc-tick,.pc-year{fill:var(--muted);font-size:12px}
.pc-year{font-size:13px}
.pc-val{fill:var(--slate);font-size:13px;font-weight:700}
.pc-bar{fill:var(--bar)}
.pc-hit{fill:transparent}
.pc-tip{opacity:0;pointer-events:none;transition:opacity .12s}
.pc-tip rect{fill:var(--slate)}
.pc-tip text{fill:var(--paper);font-size:12px;font-weight:700}
.pc-col:hover .pc-tip{opacity:1}
.pc-col:hover .pc-bar{filter:brightness(1.12)}
.pc-figure figcaption{font-size:.9rem;color:var(--muted);margin-top:.5rem}
.pc-data{margin:0 0 1.5rem}
.pc-data summary{cursor:pointer;color:var(--river);font-weight:700;min-height:2.75rem;display:flex;align-items:center}
.pc-table th[scope=colgroup]{text-align:center;border-left:1px solid var(--line)}
.pc-table caption,.data-table caption{text-align:left;font-weight:700;padding:.25rem 0 .5rem}
.pc-table tfoot th,.pc-table tfoot td{font-weight:700;border-top:2px solid var(--slate)}
@media (forced-colors:active){.pc-bar{fill:CanvasText}.pc-tip rect{fill:Canvas;stroke:CanvasText}.pc-tip text{fill:CanvasText}}

/* Today panel: the pickup and watering boxes sit together with one address line across the bottom */
.today-mine{display:grid;border-bottom:1px solid var(--line)}
.today-mine .today-item{border-bottom:1px solid var(--line)}
.mine-bar{grid-column:1/-1;max-width:none;margin:0;text-align:center;padding:.6rem 1.25rem;font-size:.9rem;color:var(--muted);background:var(--mist)}
.mine-bar[hidden]{display:none}
@media (min-width:48rem){
  .today-mine{grid-column:1/-1;grid-template-columns:1fr 1fr;order:2}
  .today-mine .today-item{border-bottom:0}
  .today-mine .today-item:first-child{border-right:1px solid var(--line)}
  .mine-bar{border-top:1px solid var(--line)}
  /* City Hall and Western Financial Place run the full height beside the other boxes */
  .today-panel:has(#home-mine) > .today-item:first-child{grid-row:span 2;border-right:1px solid var(--line)}
  .today-panel:has(#home-mine) > .today-item:not(:first-child){order:1}
  .today-panel:has(#home-mine) .wx-alert{order:4}}
@media (min-width:72rem){
  .today-panel:has(#home-mine){grid-template-columns:repeat(3,1fr)}
  .today-mine{grid-column:span 2;order:0}
  .today-panel:has(#home-mine) > .today-item{order:0;border-right:1px solid var(--line);border-bottom:0}
  .today-panel:has(#home-mine) > .today-item:first-child{border-bottom:0}
  .today-panel:has(#home-mine) > #wx-now-item,.today-mine #home-water{border-right:0}
  /* the boxes and the address line hug their content; any extra height (a taller City Hall box) goes below them */
  .today-mine{align-content:start}}
.addr-bar{margin:.75rem 0 0;padding-top:.6rem;border-top:1px dashed var(--line);font-size:.95rem;color:var(--muted)}
.addr-bar.small{font-size:.85rem;margin-top:.5rem!important;padding-top:.4rem}
.addr-picker .q{margin-bottom:.75rem}
.addr-current{outline:none}
/* "Your property" (property taxes) */
.tax-box,.water-box{margin:1rem 0 2rem;padding:1.25rem;border:1px solid var(--line);border-top:6px solid var(--river);border-radius:var(--radius-m);background:var(--paper)}
.water-box{border-top-color:var(--river)}
.tax-box h2,.water-box h2{margin-top:0;font-size:1.5rem}
.tax-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.75rem;margin:0 0 1rem}
.tax-facts div{padding:.75rem .9rem;background:var(--mist);border-radius:var(--radius-s)}
.tax-facts dt{font-size:.9rem;color:var(--muted);font-weight:700}
.tax-facts dd{margin:.15rem 0 0;font-size:1.15rem;font-weight:700;font-variant-numeric:tabular-nums}
.tax-facts .is-key dd{font-family:var(--font-display);font-size:1.7rem}
/* Water restriction stages table */
.stages-table th[data-stage]{text-align:left}
.stages-table .is-current{background:color-mix(in srgb,var(--river) 14%,var(--paper));font-weight:700}
.stages-table th.is-current{border-top:4px solid var(--river)}
.stages-table td{vertical-align:top}
.yes::before{content:"✓ ";font-weight:700;color:var(--leaf)}
.no::before{content:"✕ ";font-weight:700;color:var(--alert)}

/* Online form mockups and collection notices */
.cbk-form .form-h{font-size:1.45rem;margin:2rem 0 1rem;padding-top:1.25rem;border-top:1px solid var(--line)}
.cbk-form .form-h:first-of-type{border-top:0;padding-top:0;margin-top:1rem}
.choices-stack{display:grid;gap:.5rem;max-width:34rem}
.ws-opt.check{align-items:flex-start;max-width:40rem}
.ws-opt.check input{margin-top:.2rem}
.cbk-form .q.has-err{border-left:5px solid var(--alert);padding-left:1rem}
.concept-note{background:var(--sun-soft);border-left:6px solid var(--sun);padding:.75rem 1rem;border-radius:var(--radius-s)}
.fippa{margin:2rem 0 1.5rem;padding:1rem 1.25rem;border:1px solid var(--line);border-left:6px solid var(--river);border-radius:var(--radius-s);background:var(--mist)}
.fippa h2,.fippa h3{font-family:var(--font-body);font-size:1.05rem;margin:0 0 .35rem}
.fippa p{font-size:.95rem;margin:0;max-width:none}
.feedback .fippa{margin:1rem 0 0;padding:.65rem .9rem;background:transparent}
.feedback .fippa p{font-size:.85rem}
dl.review{display:grid;gap:0;margin:0 0 1.5rem;border-top:1px solid var(--line)}
dl.review div{display:grid;grid-template-columns:minmax(10rem,1fr) 2fr;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--line)}
dl.review dt{font-weight:700}dl.review dd{margin:0;white-space:pre-wrap}
@media (max-width:40rem){dl.review div{grid-template-columns:1fr;gap:.2rem}}
.cbk-form [hidden],#form-review[hidden],.cbk-form[hidden]{display:none!important}

/* Property taxes: pay online call to action */
.pay-box{display:grid;gap:.25rem 1.5rem;align-items:center;margin:0 0 1.5rem;padding:1.25rem;border-radius:var(--radius-m);background:var(--sun-soft);border:1px solid var(--line);border-left:6px solid var(--brand)}
.pay-box h2{margin:0 0 .35rem;font-size:1.5rem}
.pay-box p{margin:0}
@media (min-width:40rem){.pay-box{grid-template-columns:1fr auto}.pay-box .hint{grid-column:1/-1}}
.btn-lg{min-height:3.25rem;padding:.7rem 1.4rem;font-size:1.1rem}

/* Western Financial Place status inside the City Hall box */
.fac{margin-top:.85rem;padding-top:.75rem;border-top:1px dashed var(--line)}
.fac h3{font-family:var(--font-body);font-size:.95rem;font-weight:700;color:var(--muted);margin:0 0 .3rem;letter-spacing:0}
.fac p{margin:0 0 .25rem!important;font-size:.95rem}
.fac-line{display:flex;align-items:baseline;gap:.45rem}
.fac .dot{flex:none;margin-right:0;vertical-align:baseline;width:.6rem;height:.6rem;border-radius:50%;background:var(--alert);transform:translateY(-.05rem)}
.fac .dot.is-open{background:var(--leaf)}


/* Swim program search (Amilia) */
#program-search{max-width:none;min-width:0;container-type:inline-size}
.ps-form{padding:1.25rem;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--mist);margin:0 0 1.5rem}
.ps-row{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;align-items:end}
.ps-row .q{margin:0 0 .75rem;flex:1 1 13rem}
.ps-row .q select,.ps-row .q input{width:100%}
.ps-end{justify-content:space-between}.ps-end .q{flex:0 1 12rem}
.ps-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 .9rem}
.ps-chips legend{font-weight:700;margin-bottom:.35rem;padding:0;font-size:1rem}
.chip-check{position:relative;display:inline-flex}
.chip-check input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.chip-check span{display:inline-flex;align-items:center;min-height:2.5rem;padding:.3rem .9rem;border:2px solid var(--line);border-radius:2rem;background:var(--paper)}
.chip-check input:checked+span{border-color:var(--slate);background:var(--slate);color:var(--paper);font-weight:700}
.chip-check input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}
.ps-count{font-size:1.3rem;margin:0 0 .75rem}
.ps-results{list-style:none;margin:0;padding:0;display:grid;gap:.9rem;max-width:none!important}
.ps-card{display:grid;gap:1rem;padding:1.1rem 1.25rem;border:1px solid var(--line);border-left:6px solid var(--river);border-radius:var(--radius-m);background:var(--paper)}
@container (min-width:36rem){.ps-card{grid-template-columns:minmax(0,1fr) 11rem}}
.ps-card h3{margin:0 0 .3rem;font-size:1.35rem}
.ps-card p{margin:0 0 .35rem}
.ps-cat{font-size:.85rem;font-weight:700;color:var(--river);text-transform:uppercase;letter-spacing:.04em}
.ps-meta{color:var(--muted);font-size:.95rem}
.ps-card details summary{cursor:pointer;color:var(--river);min-height:2rem}
.ps-side{display:flex;flex-direction:column;gap:.4rem;align-items:flex-start}
@container (min-width:36rem){.ps-side{align-items:flex-end;text-align:right}}
.ps-price{font-family:var(--font-display);font-size:1.6rem;font-weight:700;line-height:1.1}
.ps-price span{display:block;font-family:var(--font-body);font-size:.78rem;font-weight:400;color:var(--muted)}
.ps-spots{font-weight:700;font-size:.95rem;padding:.15rem .6rem;border-radius:2rem}
.ps-spots.is-open{background:color-mix(in srgb,var(--leaf) 16%,var(--paper));color:var(--leaf)}
.ps-spots.is-full{background:var(--alert-soft);color:var(--alert)}
.ps-spots.is-soon{background:var(--mist);color:var(--muted)}
.ps-empty{padding:1rem;border:1px dashed var(--line);border-radius:var(--radius-m)}
.prose .ps-results,.ps-results{padding-left:0!important;margin-left:0}

/* About your property (gis.js) */
.property-box{container-type:inline-size;margin:2rem 0;padding:1.25rem 1.5rem;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--paper)}
.property-box h2{margin-top:0}
.property-box[hidden]{display:none}
.prop-grid{display:grid;gap:1.25rem}
@container (min-width:44rem){.prop-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start}}
.prop-grid:has(.prop-map[hidden]){grid-template-columns:1fr}
.prop-facts{margin:0}
.prop-facts>div{padding:.65rem 0;border-top:1px solid var(--line)}
.prop-facts>div:first-child{border-top:0;padding-top:0}
.prop-facts dt{font-weight:700;color:var(--muted);font-size:.9rem;margin:0 0 .15rem}
.prop-facts dd{margin:0}
.prop-facts ul{margin:.2rem 0 0;padding-left:1.2rem}
.prop-dpa li{margin-bottom:.35rem}
.prop-note{color:var(--muted);font-size:.92rem}
.prop-map{height:280px;border-radius:var(--radius-m);border:1px solid var(--line);background:var(--mist)}
.prop-map[hidden]{display:none}
.prop-links{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem}
.property-box .btn-link{min-height:auto;padding:0}

/* My Cranbrook (my-cranbrook.js) */
.my-cranbrook{padding-top:1.5rem;padding-bottom:3.5rem}
.my-cranbrook [hidden]{display:none!important}
.mc-for{margin:0 0 1rem;font-size:1.05rem}
.mc-start{max-width:44rem;padding:1.25rem 1.5rem;border:1px solid var(--line);border-left:6px solid var(--river);border-radius:var(--radius-m);background:var(--paper);margin-bottom:1.5rem}
.mc-start h2{margin-top:0}
.mc-today{margin:0 0 2rem}
.mc-today .today-panel{margin-top:0}
.mc-for-you{margin:0 0 2.5rem}
.mc-cards{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr))}
.mc-card{padding:1rem 1.15rem;border:1px solid var(--line);border-top:4px solid var(--river);border-radius:var(--radius-m);background:var(--paper);display:flex;flex-direction:column}
.mc-card.is-soon{border-top-color:var(--sun)}
.mc-card h3{margin:0 0 .35rem;font-size:1.1rem}
.mc-card p{margin:0 0 .5rem}
.mc-card .mc-links{margin-top:auto;display:flex;flex-wrap:wrap;gap:.25rem 1rem}
.mc-sections{display:grid;gap:2rem}
.mc-section h2{margin-top:0}
.mc-sections .property-box{margin:0}
@media (min-width:64rem){.mc-sections{grid-template-columns:1fr 1fr}.mc-sections>section:first-child,.mc-sections>#my-property{grid-column:1/-1}}
.prose .my-cranbrook,.app-main .my-cranbrook{max-width:none!important;padding-left:0;padding-right:0}
.app-main .my-cranbrook{padding-top:0}
.my-cranbrook .addr-bar{display:none}   /* the address is shown once, at the top */
.my-cranbrook .mc-today .today-item h2{font-family:var(--font-body);font-size:.95rem;font-weight:700;color:var(--muted);margin:0 0 .3rem;letter-spacing:0;line-height:1.3}
.my-cranbrook .mc-today .today-big{font-size:1.75rem;margin:0 0 .2rem}
.mc-sections{grid-template-columns:minmax(0,1fr)}.mc-sections>*{min-width:0}
@media (min-width:64rem){.mc-sections{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

/* On this page (core.js) */
.toc{margin:0 0 2rem;padding:1rem 1.25rem;border-left:4px solid var(--river);background:var(--mist);border-radius:0 var(--radius-m) var(--radius-m) 0}
.toc h2{font-family:var(--font-body);font-size:1rem;font-weight:700;margin:0 0 .4rem;color:var(--muted)}
.toc ul{margin:0;padding-left:1.1rem;columns:2 16rem;column-gap:2rem}
.toc li{margin:0 0 .3rem;break-inside:avoid}
.today-link{margin:.6rem 0 0!important;font-size:.92rem}
/* Service updates (service-updates.js) */
.su-notices{padding-left:1.2rem}
.su-days{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}
.su-days>li{padding:.85rem 1.1rem;border:1px solid var(--line);border-left:5px solid var(--sun);border-radius:var(--radius-m);background:var(--paper)}
.su-days>li.is-today{border-left-color:var(--brand)}
.su-days h3{margin:0 0 .35rem;font-size:1.1rem}
.su-days ul{margin:0;padding-left:1.1rem}
.su-hol{display:inline-block;margin-left:.4rem;padding:.05rem .55rem;border-radius:2rem;background:var(--mist);font-size:.85rem;font-weight:400;color:var(--muted)}
/* Printing: light colours, no site chrome, and the address of each link to another site */
@media print{
  :root{color-scheme:light}
  body{background:#fff!important;color:#000!important}
  .toc,.utility,.primary-nav,.site-footer,.feedback,.concept,.alerts,.skip,.tab-bar,.app-bar,.mine-bar,.prop-map{display:none!important}
  main a.ext[href^="http"]::after{content:" (" attr(href) ")";background:none;width:auto;height:auto;font-size:.8em;color:#444;-webkit-mask:none;mask:none}
  .prose h2,.prose h3{break-after:avoid}
  .data-table,.mc-card,.su-days>li{break-inside:avoid}
}
.page-updated{margin:1.5rem 0 0;font-size:.88rem;color:var(--muted)}

/* Park finder (parks.js) */
.park-finder{max-width:none}
.pf-form{padding:1rem 1.25rem;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--mist);margin:0 0 1rem}
.pf-chips{border:0;margin:0 0 .75rem;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.pf-chips legend{font-weight:700;margin-bottom:.35rem;padding:0}
.pf-sort{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center}
.pf-grid{display:grid;gap:1rem;container-type:inline-size}
.pf-map{height:320px;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--mist)}
.pf-map[hidden]{display:none}
.pf-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;max-width:none!important}
.pf-park details{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--paper)}
.pf-park summary{cursor:pointer;padding:.7rem 1rem;display:flex;flex-wrap:wrap;gap:.25rem .6rem;align-items:baseline;min-height:2.75rem}
.pf-name{font-weight:700;font-size:1.05rem}
.pf-dist{color:var(--muted);font-size:.92rem}
.pf-tags{display:flex;flex-wrap:wrap;gap:.3rem;width:100%}
.pf-tags span{font-size:.8rem;padding:.05rem .5rem;border-radius:2rem;background:var(--mist);color:var(--muted)}
.pf-body{padding:0 1rem .85rem}
.pf-has{columns:2 12rem;padding-left:1.2rem;margin:.25rem 0 .5rem}
.pf-links{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem}
.pf-empty{padding:1rem;border:1px dashed var(--line);border-radius:var(--radius-m)}
.biz-story .biz-body img{max-width:100%;height:auto;border-radius:var(--radius-m)}
.biz-story .biz-body figure{margin:1rem 0}
/* GIS layer maps (gis-map.js) */
.gis-map{margin:1rem 0 1.5rem}
.gis-map-canvas{height:340px;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--mist)}
.gis-legend{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem 1.25rem;padding:0;margin:.5rem 0 0!important;font-size:.92rem}
.gis-legend .swatch{display:inline-block;width:1.1rem;height:.45rem;border-radius:.2rem;border:2px solid transparent;margin-right:.4rem;vertical-align:middle;box-sizing:content-box}
.gis-map-note{margin-top:.25rem}
.council-bios{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));margin:1rem 0 1.5rem}
.council-bios>div{padding:1rem 1.15rem;border:1px solid var(--line);border-top:4px solid var(--brand);border-radius:var(--radius-m);background:var(--paper)}
.council-bios h3{margin-top:0}
/* Online payments (pay.js) */
.pay-app{margin-top:1rem}
.pay-steps{display:flex;flex-wrap:wrap;gap:.35rem 1.25rem;list-style:none;padding:0!important;margin:0 0 1.5rem!important;counter-reset:ps;font-size:.95rem;max-width:none!important}
.pay-steps li{counter-increment:ps;color:var(--muted);display:flex;align-items:center;gap:.4rem;margin:0!important}
.pay-steps li::before{content:counter(ps);display:inline-grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;border:2px solid currentColor;font-weight:700;font-size:.85rem}
.pay-steps li.is-on{color:var(--slate);font-weight:700}
.pay-steps li.is-on::before{background:var(--brand);border-color:var(--brand);color:#fff}
.pay-steps li.is-done::before{content:"✓";background:var(--mist)}
.pay-app h2:focus,.pay-app h3:focus{outline:none}
.pay-add{border:1px solid var(--line);border-radius:var(--radius-m);padding:1rem 1.15rem;margin:0 0 1.25rem;background:var(--paper)}
.pay-add h3{margin-top:0}
.pay-add .q input:not([type=radio]){max-width:20rem}
.pay-quick{margin:0 0 1rem}
.pay-chips{display:flex;flex-wrap:wrap;gap:.5rem}
.pay-chip{font:inherit;min-height:2.5rem;padding:.35rem .9rem;border-radius:999px;border:2px solid var(--river);background:var(--paper);color:var(--river);cursor:pointer;text-align:left}
.pay-chip:hover{background:var(--mist)}
.pay-bill{border:1px solid var(--line);border-left:6px solid var(--river);border-radius:var(--radius-s);padding:1rem 1.15rem;margin:0 0 1.5rem;background:var(--paper)}
.pay-bill.is-overdue{border-left-color:var(--alert)}
.pay-bill h3{margin-top:0}
.pay-prop{margin-bottom:.35rem}
.pay-bal{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap;margin:.25rem 0 .5rem}
.pay-bal span{font-weight:700;color:var(--muted)}
.pay-bal strong{font-family:var(--font-display);font-size:1.9rem;font-variant-numeric:tabular-nums}
.pay-dollar{display:flex;align-items:center;gap:.4rem;font-weight:700;font-size:1.15rem}
.pay-dollar input{max-width:10rem!important}
.pay-table{width:100%;max-width:40rem}
.pay-table th[scope=row]{font-weight:700}
.pay-table td.num,.pay-table th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.pay-table .pay-acct{display:block;font-weight:400;font-size:.9rem;color:var(--muted)}
.pay-table .pay-x{text-align:right;white-space:nowrap}
.pay-table tfoot th,.pay-table tfoot td{border-top:2px solid var(--line)}
.pay-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.pay-next{background:var(--mist);border-radius:var(--radius-s);padding:.85rem 1.1rem;margin:1.25rem 0;max-width:40rem}
.pay-next h3{margin:0 0 .35rem;font-size:1.1rem}
.pay-next ol{margin:0}
.pay-remember{max-width:40rem}
.pay-done{border:1px solid var(--line);border-left:8px solid var(--leaf);border-radius:var(--radius-s);padding:1rem 1.25rem;margin:0 0 1.5rem;background:var(--paper)}
.pay-done h2{margin-top:0}
.pay-ref{font-family:var(--font-display);font-size:1.35rem;letter-spacing:.03em;word-break:break-all}
.pay-fail{border:4px solid var(--alert);border-radius:var(--radius-s);padding:1rem 1.25rem;margin:0 0 1.5rem}
.pay-fail h2{margin-top:0}
.pay-receipt{margin-bottom:1.5rem}
.pay-help{margin-top:1.5rem}
.concept-inline{font-style:italic}
@media print{.pay-steps,.pay-actions,.pay-app ~ *,.concept-note{display:none!important}.pay-done,.pay-receipt{border:0;padding:0}}
/* City Hall status: the same size and dot as the Western Financial Place line below it */
.today-item .hall-status{display:flex;align-items:baseline;gap:.45rem;font-family:var(--font-body);font-size:1.05rem;font-weight:700;line-height:1.35;margin:0 0 .2rem;color:var(--slate)}
.hall-status .dot{flex:none;margin:0;width:.6rem;height:.6rem;vertical-align:baseline;transform:translateY(-.05rem)}
/* YouTube videos in page content (Make it in Cranbrook) */
.video-feature{max-width:46rem;margin:0 0 2rem}
.video-cards li{display:flex;flex-direction:column;gap:.6rem;padding:0 0 1rem;overflow:hidden}
.video-cards .video-frame{border-radius:var(--radius-m) var(--radius-m) 0 0}
.video-cards strong,.video-cards p{padding:0 1.15rem}
.video-cards strong{font-size:1.08rem}
.video-cards p{margin:0!important}
.video-cards .video-facade .play{padding:.55rem 1rem;font-size:.95rem}
a.video-facade{text-decoration:none}
/* Pool rates table */
.pool-rates{min-width:44rem}
.pool-rates th[scope=col]{vertical-align:bottom}
.pool-rates .th-sub{display:block;font-weight:400;font-size:.82rem;color:var(--muted);margin-top:.15rem}
.pool-rates td.num,.pool-rates th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.pool-rates tbody th{font-weight:700}
.pool-rates tbody tr:nth-child(even){background:var(--mist)}
.pool-rates-wrap{border:1px solid var(--line);border-radius:var(--radius-s)}
.pool-rates-wrap:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.pool-rates caption{padding:.6rem .75rem .5rem}
@media (max-width:47.99rem){.pool-rates tbody th{position:sticky;left:0;background:var(--paper);z-index:1}.pool-rates tbody tr:nth-child(even) th{background:var(--mist)}}
.hint-list{font-size:.95rem;color:var(--muted)}
.content-layout:has(.pool) .prose>.pool-rates-wrap{max-width:none}
.pool-rates tbody th{min-width:10rem}
@media (max-width:47.99rem){.pool-rates tbody th{min-width:8.5rem;max-width:8.5rem}}
/* City legal pages (privacy, terms, cookies, social media) */
.legal-updated{color:var(--muted)}
.in-short{border-left:4px solid var(--line);padding-left:.75rem;font-style:italic}
.in-short strong{font-style:normal}
.legal-address{font-style:normal;margin:0 0 1rem}
.legal-table code{font-size:.9em;word-break:normal;white-space:nowrap}
table.legal-table,figure.legal-table>table{min-width:40rem}
figure.legal-table{position:relative;overflow-x:auto}
.legal-table td:nth-child(2){min-width:14rem}
.legal-list li{margin-bottom:.35rem}
/* myCBK: property summary PDF */
.mc-pdf{margin-top:2rem}
.mc-pdf .btn{display:inline-flex;align-items:center;gap:.45rem}
.mc-pdf .btn .icon{width:1.15rem;height:1.15rem}
.mc-pdf .hint{font-size:.9rem}

/* myCBK "Coming up": three month calendars, same marks as the printed property summary (no meaning in colour alone) */
.ws-cal-key{list-style:none;padding:0;margin:.25rem 0 1rem;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;font-size:.95rem}
.ws-cal-key li{display:flex;align-items:center;gap:.5rem;margin:0}
.ws-cals{display:grid;grid-template-columns:repeat(auto-fit,minmax(15.5rem,1fr));gap:1.25rem 2rem;margin-bottom:1rem}
.ws-cal{width:100%;border-collapse:separate;border-spacing:2px;table-layout:fixed;font-variant-numeric:tabular-nums}
.ws-cal caption{text-align:left;font-weight:700;font-size:1.1rem;padding-bottom:.35rem}
.ws-cal th{font-size:.8rem;font-weight:700;color:var(--muted);text-align:center;padding:.15rem 0;border-bottom:1px solid currentColor}
.ws-cal td{text-align:center;padding:0;height:2.1rem;position:relative;font-size:.95rem}
.ws-cal td.cal-wkend{color:var(--muted)}
.ws-cal .cal-d{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%}
.ws-cal td.cal-rec,.cal-mark.cal-rec{background:var(--slate);color:var(--paper);font-weight:800}
.ws-cal td.cal-gar,.cal-mark.cal-gar{box-shadow:inset 0 0 0 3px var(--slate);font-weight:800;color:var(--slate)}
.ws-cal td.cal-hol::after,.cal-mark.cal-hol::after{content:"";position:absolute;top:3px;right:3px;border-style:solid;border-width:0 .6rem .6rem 0;border-color:transparent var(--slate) transparent transparent}
.ws-cal td.cal-today,.cal-mark.cal-today{outline:2px dashed var(--slate);outline-offset:-1px}
.ws-cal td.cal-rec.cal-today{outline-offset:2px}
.cal-mark{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.8rem;height:1.6rem;font-size:.9rem;box-shadow:inset 0 0 0 1px var(--grey)}
.cal-mark.cal-rec,.cal-mark.cal-gar{box-shadow:inset 0 0 0 3px var(--slate)}
@media print{.ws-cal td.cal-rec,.cal-mark.cal-rec{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
/* legal description (from the City's parcel map): full width, ordinary weight, so a long description stays readable */
.tax-facts .tax-legal{grid-column:1/-1}
.tax-facts .tax-legal dd{font-size:1rem;font-weight:400;line-height:1.45}
/* ArcGIS map style switch (Map / Aerial) on every map */
.leaflet-control-layers{font:inherit;font-size:.85rem;line-height:1.3;border-radius:var(--radius-s,.4rem)}
.leaflet-control-layers-expanded{padding:.3rem .55rem}
.leaflet-control-layers-base label{display:flex;align-items:center;gap:.3rem;margin:.1rem 0;cursor:pointer}
.leaflet-control-layers input:focus-visible{outline:3px solid var(--focus,#EEAF30);outline-offset:2px}
.leaflet-control-attribution{font-size:.7rem;max-width:100%;white-space:normal}
