/* Whats Up CB styles. One palette, defined once in :root (STYLE_GUIDE.md section 10, checked by style/theme.py).
   Rules: solid colors only, black text (#111) on every light surface, white text only on teal/black, no one-off hex values below this block. */
:root{
  /* palette */
  --ink:#111111; --ink-2:#333333;
  --sand:#fbf6ea; --sand-2:#f3ead3; --white:#ffffff;
  --teal:#0b5560; --teal-dk:#073a44; --seafoam:#bfe9e3; --foam:#e3f5f2; --line:#c9e3de; --line-strong:#4f9a8d;
  --coral:#e8553d; --coral-soft:#ff8a73; --coral-tint:#ffe3dc;
  --sun:#ffd23f; --sun-tint:#fff3b0;
  --ok:#0f5a2e; --ok-tint:#def3e6;
  /* aliases used by the rules below */
  --ocean:var(--teal); --ocean-dk:var(--teal-dk); --muted:var(--ink-2); --card:var(--white);
  /* shape, spacing, type */
  --r-sm:8px; --r:14px; --pill:999px;
  --s1:6px; --s2:10px; --s3:16px; --s4:24px;
  --shadow:0 1px 2px rgba(7,58,68,.08),0 4px 12px rgba(7,58,68,.08);
  --font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--sand);line-height:1.6;font-size:18px}
img{max-width:100%}
a{color:var(--teal)}
a:hover{color:var(--teal-dk)}
:focus-visible{outline:3px solid var(--ink);outline-offset:2px;border-radius:4px}
[hidden]{display:none!important}
.wrap{max-width:1180px;margin:0 auto;padding:0 var(--s3)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:8px;top:-60px;background:var(--white);padding:8px 12px;z-index:99;border-radius:var(--r-sm)}
.skip:focus{top:8px}
main{padding:var(--s3) 0 40px;min-height:60vh}
main:focus{outline:none}
h1{font-size:1.7rem;line-height:1.2;margin:.2em 0 .3em;letter-spacing:-.01em}
h2{font-size:1.25rem;line-height:1.3;margin:1.4em 0 .5em}
.lede{color:var(--ink-2);margin:0 0 var(--s3);max-width:62ch}
.home-intro{margin-bottom:var(--s2)}
.home-lede{margin:0 0 10px;max-width:62ch;line-height:1.5}
.home-headline{
  font-family:var(--font);
  font-weight:800;
  font-style:italic;
  color:var(--teal);
  font-size:1.12em;
  letter-spacing:-.015em;
  border-bottom:2.5px solid var(--coral);
  padding-bottom:1px;
}
@media (max-width:700px){
  .home-lede{margin:0 0 8px;line-height:1.45}
  .home-headline{font-size:1.08em;border-bottom-width:2px}
}

.notice{background:var(--sun-tint);border:1px solid var(--sun);padding:12px 14px;border-radius:var(--r-sm)}

/* header and top bar */
.site-header{background:var(--teal-dk);border-bottom:4px solid var(--sun);color:var(--white);position:relative}
.header-inner{display:flex;align-items:center;gap:12px;padding-top:12px;padding-bottom:14px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;color:var(--white);text-decoration:none;margin-right:auto}
.brand:hover{color:var(--white)}
.brand-logo{flex:none;display:block;height:50px;width:auto}
.brand-name{display:block;font-size:1.35rem;font-weight:800;letter-spacing:-.01em;line-height:1.1}
.brand-name b{color:var(--sun)}
.brand-tag{display:block;font-size:.88rem;line-height:1.25;border-left:1px solid var(--line-strong);padding-left:10px}
.ico{display:inline-block;vertical-align:-3px;flex:none;width:18px;height:18px}
.nav-weekly .ico,.nav-wevents .ico,.phone-wk .ico{margin-right:5px}
.hero-ico{width:48px;height:48px;flex:none;display:grid;place-items:center;color:var(--ink)}
.hero-ico svg{width:40px;height:40px}
.gov-hero .hero-ico{color:var(--white)}
.header-actions{display:flex;align-items:center;gap:8px;flex:none;margin-left:auto}
.nav-toggle,.search-toggle{background:var(--teal);border:2px solid var(--white);border-radius:var(--r-sm);width:46px;height:46px;cursor:pointer;display:grid;place-items:center;color:var(--white);flex:none;padding:0}
.search-toggle{display:none}
.search-toggle[aria-expanded="true"]{background:var(--white);color:var(--teal);border-color:var(--white)}
.burger,.burger::before,.burger::after{display:block;width:20px;height:2px;background:var(--white);border-radius:2px;position:relative;content:""}
.burger::before{position:absolute;top:-6px}.burger::after{position:absolute;top:6px}
.site-nav{display:none;width:100%;flex-direction:column;gap:var(--s1);padding-top:var(--s1)}
.site-nav.open{display:flex}
.site-nav a,.site-nav .nav-save{font:inherit;color:var(--white);text-decoration:none;padding:10px 16px;min-height:44px;display:inline-flex;align-items:center;border-radius:var(--pill);font-weight:700;border:2px solid transparent}
.site-nav a:hover{background:var(--teal)}
.site-nav .nav-save{cursor:pointer;background:transparent;color:var(--white);font-weight:700;padding:10px 16px;min-height:44px;border-radius:var(--pill);border:2px solid var(--line-strong)}
.site-nav .nav-save:hover{background:var(--teal)}
.site-nav .nav-save[hidden]{display:none}
.site-nav .nav-weekly{background:var(--sun);color:var(--ink)}
.site-nav .nav-weekly:hover{background:var(--sun-tint)}
.site-nav .nav-wevents{background:var(--seafoam);color:var(--ink)}
.site-nav .nav-wevents:hover{background:var(--foam)}
.site-nav a[aria-current="page"]{background:var(--white);color:var(--ink);border-color:var(--coral)}
.wave{display:block;width:100%;height:22px;fill:var(--sand);margin-top:-1px}
@media (min-width:860px){
  .nav-toggle,.search-toggle{display:none}
  .header-actions{display:none}
  .site-nav{display:flex;flex-direction:row;width:auto;padding:0}
}
@media (max-width:700px){
  .search-toggle{display:grid}
  .home-inline-search,.search.home-inline-search{display:none!important}
  .phone-weekly{display:flex}
  /* phone header: one compact row — logo | tagline | search+menu */
  .header-inner{flex-wrap:nowrap;align-items:center;gap:8px;padding-top:8px;padding-bottom:4px}
  .brand{flex-direction:row;align-items:center;gap:8px;margin-right:auto;min-width:0;flex:1 1 auto}
  .brand-logo{height:38px}
  .brand-tag{display:block!important;border-left:1px solid var(--line-strong);padding-left:8px;font-size:.68rem;line-height:1.2;max-width:none;flex:1 1 auto;min-width:0}
  .header-actions{display:flex;align-items:center;gap:6px;margin-left:0;flex:none}
  .nav-toggle,.search-toggle{width:40px;height:40px}
}
@media (max-width:360px){
  .brand-logo{height:34px}
  .brand-tag{font-size:.6rem;padding-left:6px;line-height:1.15}
  .nav-toggle,.search-toggle{width:40px;height:40px}
}
@media (min-width:701px){
  .header-search{display:none!important}
  .phone-weekly{display:none!important}
}

/* hero strip */
.hero{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:flex-end;justify-content:space-between;margin-bottom:var(--s2)}
.stats{display:flex;gap:8px;flex-wrap:wrap}
.stat{background:var(--white);border:1px solid var(--line);border-radius:var(--pill);padding:4px 12px;font-size:.95rem;color:var(--ink-2)}
.stat b{color:var(--ink)}

/* layout and filters */
.layout{display:grid;gap:18px;grid-template-columns:minmax(0,1fr)}
.layout>*,.dates>div{min-width:0}
@media (min-width:980px){.layout{grid-template-columns:290px minmax(0,1fr);align-items:start}
  .filters{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto}}
.search{display:flex;gap:8px;margin-bottom:var(--s2)}
.search input{flex:1}
input[type=search],input[type=date],select{font:inherit;color:var(--ink);border:2px solid var(--line-strong);border-radius:var(--r-sm);padding:9px 11px;background:var(--white);min-height:46px;width:100%}
.filters{background:var(--white);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.filters>summary{list-style:none;cursor:pointer;padding:12px 14px;font-weight:700;display:flex;justify-content:space-between;align-items:center}
.filters>summary::-webkit-details-marker{display:none}
.filters>summary::after{content:"▾";transition:transform .2s}
.filters[open]>summary::after{transform:rotate(180deg)}
.filters .fbody{padding:0 14px 14px}
fieldset{border:0;margin:0 0 14px;padding:0}
legend,.flabel{font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);margin-bottom:var(--s1);padding:0;display:block}
.chips{display:flex;flex-wrap:wrap;gap:var(--s1)}
.chip{position:relative}
.chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.chip span{display:inline-block;padding:7px 12px;border:2px solid var(--line-strong);border-radius:var(--pill);background:var(--white);font-size:.9rem;min-height:38px;line-height:20px}
.chip input:checked+span{background:var(--teal);border-color:var(--teal);color:var(--white)}
.chip input:focus-visible+span{outline:3px solid var(--ink);outline-offset:2px}
.btn-chip{font:inherit;font-size:.9rem;padding:6px 12px;border:2px solid var(--line-strong);border-radius:var(--pill);background:var(--white);cursor:pointer;color:var(--ink);min-height:38px}
.btn-chip[aria-pressed="true"]{background:var(--sun);border-color:var(--ink);color:var(--ink)}
.dates{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-top:8px}
.dates input{min-width:0;width:100%;max-width:100%;padding:8px 6px;font-size:16px}
@media (min-width:980px){.dates{grid-template-columns:minmax(0,1fr)}}
.dates label{font-size:.85rem;color:var(--ink-2)}
.toggle{display:flex;gap:8px;align-items:flex-start;font-size:.95rem;margin:var(--s1) 0}
.toggle input{width:20px;height:20px;margin-top:2px;accent-color:var(--teal)}

/* buttons */
.btn{font:inherit;font-size:16px;font-weight:700;border-radius:var(--r-sm);padding:9px 16px;border:2px solid var(--teal);background:var(--teal);color:var(--white);cursor:pointer;min-height:44px;text-decoration:none;display:inline-flex;align-items:center;gap:var(--s1)}
.btn:hover{background:var(--teal-dk);border-color:var(--teal-dk);color:var(--white)}
.btn.ghost{background:var(--white);color:var(--teal)}
.btn.ghost:hover{background:var(--foam);color:var(--teal-dk)}
.btn.sm{min-height:38px;padding:6px 12px;font-size:.9rem}
.linkish{font:inherit;font-size:.85rem;background:none;border:0;padding:2px 0;color:var(--teal);text-decoration:underline;cursor:pointer}
.result-bar{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 var(--s2);color:var(--ink-2);font-size:.95rem}

/* chip rows (type + topic filters; static pages use the same look as links) */
.chip-row,.chip-links{display:flex;flex-wrap:wrap;gap:var(--s1);align-items:center;margin:0 0 var(--s2)}
.chip-label{font-weight:700;color:var(--ink);font-size:1rem;margin-right:4px}
.chips-more{display:contents}
.fchip{font:inherit;font-size:.92rem;font-weight:600;display:inline-flex;align-items:center;gap:var(--s1);padding:6px 14px;min-height:40px;border-radius:var(--pill);cursor:pointer;border:2px solid var(--line-strong);background:var(--white);color:var(--ink);text-decoration:none}
.fchip:hover{background:var(--foam)}
.fchip .n{font-size:.78rem;font-weight:700;padding:0 7px;border-radius:var(--pill);background:var(--foam);color:var(--ink)}
.fchip[aria-pressed="true"],.chip-links .fchip[aria-current="page"]{background:var(--teal);border-color:var(--teal);color:var(--white)}
.fchip[aria-pressed="true"]::before,.chip-links .fchip[aria-current="page"]::before{content:"\2713";font-weight:800}
.fchip[aria-pressed="true"] .n{background:var(--white);color:var(--ink)}
.fchip.is-all[aria-pressed="true"]{background:var(--ink);border-color:var(--ink)}
.fchip[data-chip="topic:Live Music"],.chip-links .fchip.is-live{background:var(--coral-tint);border-color:var(--coral)}
.fchip[data-chip="topic:Live Music"][aria-pressed="true"],.chip-links .fchip.is-live[aria-current="page"]{background:var(--coral-soft);border-color:var(--ink);color:var(--ink)}
.fchip.is-type.t-Government,.chip-links .fchip.is-type{background:var(--foam)}
.fchip.is-type.t-Government[aria-pressed="true"],.chip-links .fchip.is-type[aria-current="page"]{background:var(--teal-dk);border-color:var(--teal-dk);color:var(--white)}
.fchip.more-btn{border-style:dashed;color:var(--ink-2);background:transparent}
.fchip.more-btn[aria-expanded="true"]{border-style:solid;background:var(--white)}
.active-note{background:var(--white);border:2px solid var(--teal);border-radius:var(--r-sm);padding:8px 12px;margin:var(--s1) 0 var(--s2);color:var(--ink)}
.active-note .linkish{font-size:1rem;font-weight:700}
.back{margin:0 0 var(--s2);font-weight:700}
.back a{display:inline-block;padding:6px 0}

/* date bars: solid seafoam band, distinct from white cards; today = solid sun yellow */
.day-group{margin:0 0 22px}
.day-head{display:flex;align-items:center;gap:var(--s2);position:sticky;top:0;background:var(--seafoam);padding:10px 16px;z-index:2;border:2px solid var(--teal);border-radius:var(--r-sm);margin-bottom:var(--s2);color:var(--ink)}
.day-head h2{margin:0;font-size:1.25rem;font-weight:800;color:var(--ink)}
.day-head .rel{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink)}
.day-head .rel.count{margin-left:auto;background:var(--white);border:1px solid var(--teal);padding:1px 10px;border-radius:var(--pill)}
.day-group.today .day-head{background:var(--sun);border-color:var(--ink)}
.day-group.today .rel:not(.count){background:var(--ink);color:var(--white);padding:3px 12px;border-radius:var(--pill);font-weight:800}
.month-head{font-size:1.3rem;margin:26px 0 var(--s1);color:var(--ink)}

/* cards */
.cards{display:grid;gap:12px}
@media (min-width:700px){.cards.two{grid-template-columns:1fr 1fr}}
.card{background:var(--card);border:1px solid var(--line);border-left:6px solid var(--teal);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:var(--s1)}
.card.is-live{border-left-color:var(--coral)}
.card.t-Recurring{border-left-color:var(--sun)}
.card.t-Government{border-left-color:var(--teal-dk)}
.card h3{margin:0;font-size:1.1rem;line-height:1.3}
.card h3 a{color:inherit;text-decoration:none}
.card h3 a:hover{text-decoration:underline}
.tags{display:flex;flex-wrap:wrap;gap:var(--s1);align-items:center}
.tag{font-size:.85rem;font-weight:700;padding:2px 10px;border-radius:var(--pill);background:var(--foam);color:var(--ink);white-space:nowrap;border:1px solid var(--line)}
.card .tags a.tag{text-decoration:none}
.tag.cat{background:var(--sand-2);border-color:var(--sand-2)}
.tag.Government,.tag.chip-type.Government{background:var(--teal-dk);border-color:var(--teal-dk);color:var(--white)}
.tag.chip-topic.live,.tag.live{background:var(--coral-tint);border-color:var(--coral)}
.tag.repeat,.tag.Recurring,.tag.chip-type.Recurring{background:var(--seafoam);border-color:var(--teal)}
.tag.ongoing{background:var(--sun-tint);border-color:var(--sun)}
.badge{font-size:.85rem;font-weight:700;padding:2px 10px;border-radius:var(--pill);display:inline-flex;align-items:center;gap:4px;cursor:help;border:1px solid transparent}
.badge.v{background:var(--ok-tint);color:var(--ok);border-color:var(--ok)}
.badge.u{background:var(--sun-tint);color:var(--ink);border-color:var(--ink)}
.meta{display:grid;gap:3px;margin:2px 0;padding:0;list-style:none;font-size:1rem}
.meta li{display:flex;gap:8px}
.meta .k{flex:none;width:1.3em;text-align:center}
.meta .addr{color:var(--ink-2)}
.desc{margin:2px 0 0;font-size:.95rem}
.card-foot{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:var(--s1);font-size:.95rem;color:var(--ink-2)}
.ics-btn svg{flex:none}
.card details{font-size:.95rem;color:var(--ink-2)}
.card details summary{cursor:pointer}
.more-src a{word-break:break-all}
.empty{background:var(--white);border:2px dashed var(--line-strong);border-radius:var(--r);padding:28px;text-align:center;color:var(--ink-2)}
.crumbs{font-size:.95rem;color:var(--ink-2);margin:0 0 var(--s1)}
.crumbs a{color:var(--ink-2)}

/* weekly pages */
.daynav{display:flex;gap:var(--s1);flex-wrap:wrap;margin:0 0 14px}
.daynav a{padding:6px 14px;min-height:40px;display:inline-flex;align-items:center;border-radius:var(--pill);background:var(--white);border:2px solid var(--line-strong);text-decoration:none;font-weight:700;font-size:.92rem;color:var(--ink)}
.daynav a:hover{background:var(--foam)}
.daynav a.today{background:var(--sun);border-color:var(--ink)}
.inline-filters{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:end;background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin:0 0 var(--s3);box-shadow:var(--shadow)}
.inline-filters .search{margin:0;flex:1 1 240px}
.page-hero{display:flex;gap:14px;align-items:center;border-radius:var(--r);padding:16px 18px;margin:0 0 14px;background:var(--seafoam);color:var(--ink);border:2px solid var(--teal);box-shadow:var(--shadow)}
.page-hero h1{margin:0 0 4px;color:var(--ink);font-size:1.7rem}
.page-hero .lede{color:var(--ink);margin:0}
.page-hero a{color:var(--ink)}
.hero-emoji{font-size:3rem;line-height:1;flex:none}
.wk-hero{background:var(--sun);border-color:var(--ink)}
.wk-hero.ev-hero{background:var(--seafoam);border-color:var(--teal)}
.gov-hero{background:var(--teal-dk);border-color:var(--teal-dk);color:var(--white)}
.gov-hero h1,.gov-hero .lede,.page-hero.gov-hero a{color:var(--white)}
.repeat-note{margin:var(--s2) 0 0;color:var(--ink);font-weight:600}
@media (max-width:560px){.page-hero{flex-direction:column;align-items:flex-start}.hero-emoji{font-size:2.4rem}.hero-ico{width:40px;height:40px}.hero-ico svg{width:34px;height:34px}}
.tonight{background:var(--white);border:2px solid var(--teal);border-radius:var(--r);padding:12px 16px;margin:0 0 var(--s3);box-shadow:var(--shadow)}
.tonight h2{margin:0 0 8px;font-size:1.15rem;color:var(--ink)}
.tonight h2 small{font-size:.85rem;color:var(--ink-2);font-weight:600;margin-left:var(--s1)}
.tonight-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;grid-template-columns:minmax(0,1fr)}
@media (min-width:700px){.tonight-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1000px){.tonight-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tonight-list li{min-width:0;display:flex;gap:10px;align-items:flex-start;background:var(--foam);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px;font-size:1rem}
.tonight-list .t{flex:none;width:6.6em;font-weight:800;color:var(--ink)}
.tonight-list .n{min-width:0;overflow-wrap:anywhere}
.tonight .more{margin:8px 0 0;font-size:.9rem;color:var(--ink-2)}
.tonight .empty{margin:0;padding:12px}
.wk-day .cards{margin-top:var(--s2)}

/* weekly strips under each day (specials = sun tint, events = foam) */
.wk-strip{margin:var(--s2) 0 0;border:2px dashed var(--sun);background:var(--sun-tint);border-radius:var(--r-sm);padding:0 12px}
.wk-strip summary{cursor:pointer;font-weight:700;color:var(--ink);padding:10px 0;list-style-position:inside}
.wk-strip summary .n{background:var(--ink);color:var(--white);border-radius:var(--pill);font-size:.8rem;padding:1px 9px;margin-left:4px}
.wk-strip.wk-events{background:var(--foam);border-color:var(--line-strong)}
.wk-list{list-style:none;margin:0;padding:0 0 var(--s2);display:grid;gap:var(--s1)}
@media (min-width:900px){.wk-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.wk-list li{display:flex;gap:10px;align-items:flex-start;background:var(--white);border-radius:var(--r-sm);padding:6px 10px;font-size:1rem;min-width:0}
.wk-list .t{flex:none;width:6.4em;font-weight:800;color:var(--ink);font-size:.85rem}
.wk-list .n2{flex:1;min-width:0;overflow-wrap:anywhere}
.wk-list .acts{display:flex;flex-direction:column;gap:2px;align-items:flex-end;font-size:.85rem;flex:none}

/* government pages */
.gov-month{color:var(--ink);border-bottom:3px solid var(--seafoam);padding-bottom:4px}
.gov-card{flex-direction:row;gap:14px;align-items:flex-start}
.gov-body{display:flex;flex-direction:column;gap:var(--s1);min-width:0;flex:1}
.date-tile{flex:none;width:60px;border-radius:var(--r-sm);background:var(--teal-dk);color:var(--white);text-align:center;padding:6px 0 8px;display:flex;flex-direction:column;line-height:1.1}
.date-tile .m{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--line-strong);padding:2px 0}
.date-tile .d{font-size:1.7rem;font-weight:800;margin-top:4px}
.date-tile .w{font-size:.8rem}
.btn.gov-btn{background:var(--teal-dk);border-color:var(--teal-dk)}
.gov-card @media (max-width:420px){.gov-card{flex-direction:column}.date-tile{flex-direction:row;width:auto;gap:8px;padding:6px 12px;align-items:center}.date-tile .d{margin:0;font-size:1.3rem}.date-tile .m{border:0}}

/* static pages */
.detail{max-width:820px}
.detail h1{margin:.1em 0}
.detail .meta.big{font-size:1rem;gap:var(--s1)}
.plain-list{columns:2 280px;padding-left:1.1em}
.plain-list li{margin:.3em 0;break-inside:avoid}
.ad-slot{margin:var(--s3) 0;min-height:110px;border:2px dashed var(--line-strong);border-radius:var(--r-sm);padding:var(--s1);text-align:center;color:var(--ink-2);font-size:.8rem;background:var(--white)}
.ad-label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
.ad-ph{display:block;padding:30px 0}
.prose{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;box-shadow:var(--shadow);max-width:820px}
.prose h2{margin-top:1.2em}
.prose h2:first-child{margin-top:0}
.placeholder{background:var(--sun-tint);border:2px dashed var(--sun);border-radius:var(--r-sm);padding:12px 14px;margin:var(--s2) 0}
.placeholder code{font-size:.95em}
.badge-demo{display:inline-flex;gap:var(--s1);vertical-align:middle}

/* footer */
.site-footer{background:var(--teal-dk);color:var(--white);padding:22px 0;font-size:.95rem;border-top:4px solid var(--sun)}
.site-footer a{color:var(--white)}
.site-footer p{margin:.3em 0}
.footer-brand{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.footer-brand img{display:block;height:40px;width:auto}
.about-logo{display:block;height:72px;width:auto;margin:0 0 14px}

@media (pointer:coarse){.btn.sm,.fchip,.btn-chip,.linkish,.card-foot a,.wk-list .acts a{min-height:44px}.card-foot a,.wk-list .acts a,.linkish{display:inline-flex;align-items:center}}
/* compact chips on phones: 15px text, 40px tap height, counts hidden to save width */
@media (max-width:600px){
  .chip-row,.chip-links{gap:4px}
  .chip-label{flex-basis:100%;font-size:.95rem;margin:0}
  .fchip{font-size:.95rem;padding:3px 12px;min-height:40px;gap:4px;border-width:2px;flex:0 0 auto;white-space:nowrap}
  .fchip .n{display:none}
  .chip-wrap{position:relative;flex:1 1 100%;min-width:0}
  .chip-scroll{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;-ms-overflow-style:none;padding:2px 44px 4px 2px;margin:0 -2px}
  .chip-scroll::-webkit-scrollbar{display:none}
  .chip-scroll .fchip{scroll-snap-align:start}
  .chip-arrow{position:absolute;top:2px;width:40px;height:40px;border-radius:var(--pill);border:2px solid var(--teal);background:var(--white);color:var(--ink);font:inherit;font-size:1.5rem;font-weight:800;line-height:1;cursor:pointer;padding:0;box-shadow:var(--shadow)}
  .chip-arrow.right{right:0}.chip-arrow.left{left:0}
  .chip-arrow[hidden]{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.site-header,.filters,.site-footer,.card-foot .btn{display:none}}
.tag.chip-topic.second{background:var(--white);border:1px solid var(--line-strong);font-weight:600;font-size:.8rem}
.tag.chip-topic.second.live{background:var(--coral-tint);border-color:var(--coral)}

/* streamlining pass: search/when/what rows, range panel, show more, back to top, descriptions, share, unconfirmed badge, weekly section */
.range-panel{background:var(--white);border:2px solid var(--teal);border-radius:var(--r);padding:12px 14px;margin:0 0 var(--s2);box-shadow:var(--shadow)}
.range-title{margin:0 0 var(--s1);font-weight:800}
.range-panel .btn{margin-top:var(--s2)}
.when-row{margin-bottom:var(--s1)}
.more-days{text-align:center;margin:var(--s3) 0}
.to-top{position:fixed;right:14px;bottom:14px;z-index:20;box-shadow:var(--shadow);color:var(--ink)}
.btn.ghost.to-top,.btn.ghost.details-toggle,.btn.ghost.share-btn,.btn.ghost.to-top:hover,.btn.ghost.details-toggle:hover,.btn.ghost.share-btn:hover{color:var(--ink)}
.desc-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s1)}
.desc-wrap .desc{margin:2px 0 0}
.linkish.share-btn{color:var(--teal)}
.share-menu{display:inline-flex;flex-wrap:wrap;gap:8px;align-items:center}
.share-status{font-weight:700;color:var(--ink)}
.unconf{display:inline-block}
.unconf summary{list-style:none;cursor:pointer}
.unconf summary::-webkit-details-marker{display:none}
.unconf[open]{flex-basis:100%}
.unconf-note{margin:var(--s1) 0 0;font-size:.95rem;color:var(--ink);background:var(--sun-tint);border:1px solid var(--ink);border-radius:var(--r-sm);padding:6px 10px}
.wk-sub{margin:var(--s2) 0 var(--s1);font-size:1rem;font-weight:800;color:var(--ink)}
.wk-sub .n{background:var(--ink);color:var(--white);border-radius:var(--pill);font-size:.8rem;padding:1px 9px;margin-left:4px}
.footer-links{margin:.3em 0}

.save-banner{background:var(--foam);border-bottom:1px solid var(--line-strong);font-size:.95rem}
.save-banner-in{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;justify-content:space-between;padding-top:6px;padding-bottom:6px}
.save-text{margin:0;color:var(--ink);font-weight:500}
.share-ico{vertical-align:-4px}
.save-acts{display:inline-flex;gap:8px}
.save-dialog{border:3px solid var(--teal);border-radius:var(--r);padding:var(--s3) var(--s4);max-width:min(92vw,440px);color:var(--ink);background:var(--white)}
.save-dialog::backdrop{background:rgba(17,17,17,.6)}
.save-dialog h2{margin-top:0}

@media (max-width:600px){.card-foot>a:not(.btn){flex:0 0 100%}}

@media (min-width:601px){.chip-wrap,.chip-scroll{display:contents}.chip-arrow{display:none!important}}
@media (max-width:600px){main,main>section,.chip-row,.layout>*{min-width:0;max-width:100%}.chip-wrap{width:100%;max-width:100%;overflow:hidden}}

.card-more{font-size:.95rem;color:var(--ink);margin:2px 0 0}
.card-more p{margin:4px 0}
.card-more .dn-h{font-weight:700;margin-top:6px}

/* mobile header search (≤700px) and phone weekly shortcut row */
.header-search{width:100%;background:var(--teal-dk);border-top:1px solid var(--line-strong);overflow:hidden;max-height:0;opacity:0;transition:max-height .22s ease,opacity .18s ease,padding .18s ease;padding:0}
.header-search.open{display:block;max-height:88px;opacity:1;padding:10px 0 12px}
.header-search[hidden]{display:none!important}
.header-search-inner{display:flex;gap:8px;align-items:center}
.header-search input[type=search]{flex:1;min-width:0;background:var(--white);color:var(--ink);border:2px solid var(--white);border-radius:var(--r-sm);min-height:46px;font:inherit;padding:9px 11px}
.header-search input[type=search]::placeholder{color:var(--ink-2)}
.search-close{background:var(--teal);border:2px solid var(--white);border-radius:var(--r-sm);width:46px;height:46px;cursor:pointer;display:grid;place-items:center;color:var(--white);flex:none;padding:0}
.phone-weekly{display:none;gap:8px;padding:4px 14px 0;width:100%;box-sizing:border-box}/* display toggled in ≤700 / ≥701 queries */
.phone-wk{flex:1 1 0;min-width:0;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:5px 8px;border-radius:var(--pill);font:inherit;font-weight:800;font-size:.88rem;line-height:1.15;text-decoration:none;text-align:center;border:2px solid transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.phone-wk-specials{background:var(--sun);color:var(--ink)}
.phone-wk-specials:hover{background:var(--sun-tint);color:var(--ink)}
.phone-wk-events{background:var(--seafoam);color:var(--ink)}
.phone-wk-events:hover{background:var(--foam);color:var(--ink)}
.phone-wk[aria-current="page"]{border-color:var(--coral)}
@media (max-width:390px){.phone-wk{font-size:.82rem;padding:5px 6px;gap:2px}}

@media (max-width:700px){
  .search-toggle{display:grid}
  .home-inline-search,.search.home-inline-search{display:none!important}
  .phone-weekly{display:flex!important}
  .wave{height:14px}
  main{padding-top:8px}
}
@media (min-width:701px){
  .header-search{display:none!important}
  .phone-weekly{display:none!important}
  .search-toggle{display:none!important}
}

