/* What To Do in Palestine — design system (fresh build)
   Cream/pine editorial palette · Inter body · Georgia headlines · hard offset shadows */

/* The hidden attribute must always win over component display rules. */
[hidden]{display:none!important}

:root{
  --cream:#e9edf1;
  --paper:#ffffff;
  --ink:#16202a;
  --muted:#5b6672;
  --pine:#14532d;
  --pine-deep:#0c3a1f;
  --accent:#166534;
  --gold:#14532d;
  --line:#d4d9e0;
  --sage:#dfe9e2;
  --sand-shadow:#c3d2c9;
  --radius:12px;
}
a{color:var(--accent)}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:"Inter",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  font-size:16px;
  line-height:1.55;
}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.1;margin:0 0 .5rem}
p{margin:0 0 .75rem}
a{color:var(--accent)}
button{font:inherit;cursor:pointer;touch-action:manipulation}

/* Slim header */
.site-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px max(4vw,20px);
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}
.site-nav a{font-weight:700;font-size:.85rem;color:var(--pine);text-decoration:none;
  border:2px solid var(--pine);border-radius:10px;padding:8px 14px;white-space:nowrap}
.dogwood{width:36px;height:36px;color:#14532d;flex:none}
.dogwood .dw-c{fill:#f2f0e9}
.dogwood.sm{width:26px;height:26px}
footer .dogwood{color:#f2f0e9}
footer .dogwood .dw-c{fill:#0c3a1f}
.brand b{display:block;font-size:.8rem;letter-spacing:.08em}
.brand small{display:block;font-size:.62rem;letter-spacing:.22em;color:var(--accent)}

/* Minimal back bar on subpages (the homepage has a sticky logo button instead) */
.backbar{max-width:1060px;margin:0 auto;padding:14px max(4vw,20px) 0;display:flex;align-items:center;gap:12px}
.backbar a{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;font-weight:700;text-decoration:none;color:var(--muted)}
.back-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:10px;
  border:1px solid var(--line);background:var(--paper);font-weight:700;font-size:.9rem;
  color:var(--ink);cursor:pointer;font-family:inherit}
.back-btn:active{transform:translateY(1px)}

/* Slim sticky home bar — logo button back to the start screen */
.homebar{position:sticky;top:0;z-index:60;display:flex;align-items:center;justify-content:space-between;
  padding:8px max(4vw,20px);background:rgba(233,237,241,.92);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line)}
.homebtn{border:0;background:none;padding:0;cursor:pointer;line-height:0}
.topnav{display:flex;gap:14px;align-items:center}
.topnav a{font-size:.82rem;font-weight:700;color:var(--muted);text-decoration:none;white-space:nowrap}
.topnav a:active{color:var(--pine)}

/* Google-simple hero */
.hero{
  max-width:900px;margin:0 auto;
  padding:48px 20px 26px;
  text-align:center;
}
.hero .eyebrow{
  font-size:.72rem;font-weight:800;letter-spacing:.22em;color:var(--accent);
  margin-bottom:14px;
}
.hero h1{
  font-size:clamp(2.4rem,5vw,3.6rem);
  font-weight:700;letter-spacing:-.01em;
  margin-bottom:26px;
}
.hero h1 span{color:var(--accent)}
.searchbar{
  display:grid;grid-template-columns:1fr auto;
  max-width:640px;margin:0 auto;
  border:2px solid var(--pine);border-radius:12px;overflow:hidden;
  background:var(--paper);
  box-shadow:0 6px 0 var(--sand-shadow);
}
.searchbar input{
  border:0;padding:14px 16px;font-size:1.05rem;background:transparent;color:var(--ink);
  min-width:0;
}
.searchbar input:focus{outline:none}
.searchbar select{
  border:0;border-left:1px solid var(--line);
  padding:0 14px;font-size:.88rem;font-weight:700;color:var(--pine);
  background:var(--cream);
  max-width:190px;
}
.searchbar:focus-within{border-color:var(--accent)}

/* Sticky search bar — the one thing that stays while you scroll */
.sticky-bar{
  position:sticky;top:0;z-index:20;
  background:var(--cream);
  border-bottom:1px solid var(--line);
  padding:12px max(4vw,20px) 10px;
}
.sticky-bar .searchbar{margin:0 auto}
.sticky-bar .pills{margin-top:12px}
.pills{
  display:flex;flex-direction:column;gap:10px;
  margin:16px auto 4px;max-width:640px;
  padding:2px 2px 8px;
}
.pills-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;align-items:center;}
/* Main filter row: all four on one line, compact */
.pills-row.pills-main{flex-wrap:nowrap;gap:4px;}
.pills-row.pills-main button[data-view]{padding:7px 10px;font-size:.78rem;white-space:nowrap;flex:none;}
.pills-row.pills-main .fs-label{font-size:.8rem;}
.pills-row.pills-main .fs-track{width:40px;height:24px;}
.pills-row.pills-main .fs-knob{width:18px;height:18px;top:3px;left:3px;}
.pills-row.pills-main .freeswitch.active .fs-knob{left:19px;}
/* Ad row: two slots side by side on one line, meeting in the middle */
.pills-row.pills-adrow{flex-wrap:nowrap;justify-content:center;gap:8px;}
.pills-row.pills-adrow .ad-slot{flex:1 1 0;min-width:0;}
/* Cuisine filter: compact horizontal chip scroller (not a full-width stack) */
.pills-row.cuisine-row{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;
  -webkit-overflow-scrolling:touch;padding-bottom:6px;margin:0 -2px;padding-left:2px;padding-right:2px;}
.pills-row.cuisine-row button{flex:0 0 auto;padding:8px 15px;font-size:.83rem;white-space:nowrap;}
/* Sample ad slots (Jeff 2026-10-09 demo — replace with real ads later) */
.ad-slot{min-height:76px;background:#fff8e6;border:1px dashed #c89b2a;border-radius:8px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-size:10px;color:#7a5b12;line-height:1.4;text-align:center;}
.ad-slot b{font-size:9px;letter-spacing:1px;}
/* Collapsed banner: slim strip, tap to expand (Jeff 2026-10-09) */
[data-banner].is-collapsed{cursor:pointer;align-items:center;padding-top:7px;padding-bottom:7px;}
[data-banner].is-collapsed > div{display:none;}
[data-banner].is-collapsed .banner-x{display:none;}
[data-banner].is-collapsed::after{content:attr(data-title);font-size:.82rem;font-weight:700;}
.pills button{
  flex:0 0 auto;
  padding:11px 22px;border-radius:12px;
  border:1px solid var(--line);background:var(--paper);color:var(--ink);
  font-weight:700;font-size:.95rem;
}
.pills button:hover{border-color:var(--accent);color:var(--accent)}
.pills button.active{
  background:var(--accent);border-color:var(--accent);color:#fff;
  box-shadow:0 4px 0 var(--pine-deep);
}
/* Free-only: label + iOS-style toggle switch (Jeff 2026-10-09 — keep the switch, not a lit pill) */
.freeswitch-wrap{flex:0 0 auto;display:inline-flex;align-items:center;gap:2px}
button.freeswitch{display:inline-flex;align-items:center;background:none;border:none;box-shadow:none;padding:10px 2px;cursor:pointer;-webkit-tap-highlight-color:transparent}
button.freeswitch:hover{border:none;background:none}
button.freeswitch:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:999px}
.fs-label{font-weight:700;font-size:.95rem;color:var(--ink);white-space:nowrap}
.fs-track{width:48px;height:28px;border-radius:999px;background:#c9c4b8;position:relative;transition:background .18s ease;flex:0 0 auto}
.fs-knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:left .18s ease}
.freeswitch.active .fs-track{background:var(--pine)}
.freeswitch.active .fs-knob{left:23px}
.pills button.freeswitch.active{box-shadow:none;}
.result-count{
  margin:0;color:var(--muted);font-size:.85rem;text-align:center;
}
.count-row{display:flex;align-items:center;justify-content:center;gap:12px;margin:14px 16px 0}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--paper);flex:0 0 auto}
.seg button{border:0;background:transparent;padding:7px 13px;font-weight:700;font-size:.8rem;color:var(--ink);cursor:pointer;font-family:inherit}
.seg button.on{background:var(--ink);color:#fff}
/* Calendar view (All upcoming toggle) */
.cal-head{display:flex;align-items:center;justify-content:space-between;max-width:400px;margin:2px auto 10px}
.cal-head b{font-size:1.05rem}
.cal-head button{border:1px solid var(--line);background:var(--paper);border-radius:10px;width:42px;height:38px;font-size:1.25rem;line-height:1;color:var(--ink);cursor:pointer}
.cal-head button:disabled{opacity:.3;cursor:default}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;max-width:400px;margin:0 auto}
.cal-dow{text-align:center;font-size:.68rem;font-weight:800;color:var(--muted);padding:2px 0}
.cal-day{position:relative;aspect-ratio:1;border:1px solid var(--line);border-radius:8px;background:var(--paper);cursor:pointer;padding:0;font:inherit}
.cal-day.blank{visibility:hidden}
.cal-day .n{font-size:.85rem;color:var(--ink)}
.cal-day.has{background:#dcf0e2;border-color:#9fd4ae}
.cal-day.has .n{font-weight:700}
.cal-day.sel{outline:2px solid var(--accent);outline-offset:-2px}
.cal-day.today .n{font-weight:800;color:var(--accent)}
.cal-day:disabled{opacity:.35;cursor:default;background:transparent}
.cal-sel{margin-top:14px;display:grid;gap:10px;max-width:640px;margin-left:auto;margin-right:auto}

/* Week-grid "All upcoming" view (Jeff 2026-10-14): Monday-start week rows
   grouped under collapsible month sections; tap a day to expand its events. */
.wg-wrap{max-width:720px;margin:0 auto}
.wg-month{border:1px solid var(--line);border-radius:12px;background:var(--paper);margin:0 auto 10px;overflow:hidden}
.wg-mhead{display:flex;align-items:center;gap:8px;padding:12px 14px;cursor:pointer;list-style:none}
.wg-mhead::-webkit-details-marker{display:none}
.wg-chev{width:9px;height:9px;flex:none;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .15s}
.wg-month[open] .wg-chev{transform:rotate(45deg)}
.wg-mhead b{font-weight:800;font-size:1rem}
.wg-mcount{margin-left:auto;font-size:.8rem;color:var(--muted)}
.wg-dow,.wg-week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:0 10px}
.wg-dow{margin:2px 0 4px}
.wg-dow span{text-align:center;font-size:.68rem;font-weight:800;letter-spacing:.5px;color:var(--muted)}
.wg-week{margin-bottom:4px}
.wg-day{border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:6px 0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:1px;font:inherit}
.wg-day .wg-n{font-size:.95rem;font-weight:700;color:var(--ink)}
.wg-day .wg-c{font-size:.68rem;color:var(--muted)}
.wg-day.empty{opacity:.45}
.wg-day.today{box-shadow:inset 0 0 0 2px var(--accent)}
.wg-day.today .wg-n{color:var(--accent);font-weight:800}
.wg-day.sel{background:var(--accent);border-color:var(--accent)}
.wg-day.sel .wg-n,.wg-day.sel .wg-c{color:#fff}
.wg-panel{margin:2px 10px 12px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--paper)}
.wg-phead{font-weight:800;margin-bottom:6px}
.wg-none{color:var(--muted);font-size:.9rem;margin:4px 0}
@media(min-width:1024px){
  .wg-wrap{max-width:880px}
  .wg-day{padding:10px 0}
  .wg-day .wg-n{font-size:1.1rem}
}

/* Day groups — the anti-endless-scroll unit */
.day{
  max-width:1060px;margin:0 auto 14px;
  padding:0 max(4vw,20px);
}
.day summary{
  list-style:none;cursor:pointer;
  display:flex;align-items:center;gap:10px;
  padding:12px 18px;
  background:var(--paper);border:1px solid var(--line);border-radius:12px;
  box-shadow:0 4px 0 var(--sand-shadow);
  font-family:Georgia,serif;font-weight:700;font-size:1.08rem;
}
.day summary::-webkit-details-marker{display:none}
.day summary::after{
  content:"+";margin-left:auto;
  font-family:Inter,sans-serif;font-weight:800;color:var(--accent);font-size:1.2rem;
}
.day[open] summary::after{content:"–"}
.day-name{flex:0 1 auto}
.day-count{
  font-family:Inter,sans-serif;font-size:.72rem;font-weight:800;
  background:var(--sage);color:var(--accent);
  border-radius:999px;padding:3px 10px;
}
.day-grid{
  display:block;
  padding:6px 0 10px;
}
@media(min-width:720px){
  .day-grid{max-width:760px;margin:0 auto}
}

/* Compact event rows (replaces big cards): 3-line agenda entries, tap to expand */
.ev{display:block;width:100%;text-align:left;background:var(--paper);color:inherit;font:inherit;
  border:0;border-bottom:1px solid var(--line);padding:11px 18px 11px 13px;cursor:pointer}
.ev-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ev-when{font-size:.74rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--accent)}
.ev-right{display:inline-flex;align-items:center;gap:8px;flex:none}
.ev-chev{color:var(--muted);font-weight:800;font-size:1.1rem;line-height:1;transition:transform .15s}
.ev.open .ev-chev{transform:rotate(90deg)}
.ev-name{font-size:1rem;font-weight:700;margin:2px 0 1px;color:var(--ink)}
.ev-cat{font-size:.66rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;margin:4px 0 0;line-height:1.2}
.cat-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;flex:none}
.ev-place{font-size:.83rem;color:var(--muted)}
.ev-detail{padding-top:10px;font-size:.87rem}
.ev-detail p{margin:8px 0;color:var(--muted)}
.ev-detail .chip{margin-bottom:2px}
.ev-save{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}
/* Rows always span full width, even inside grid containers */
#cards .ev{grid-column:1 / -1}
@media(min-width:720px){
  #cards .ev{max-width:760px;margin-left:auto;margin-right:auto}
}

/* Event cards */
.cards{
  max-width:1060px;margin:0 auto;
  padding:26px max(4vw,20px) 40px;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;
}
/* Event mode: day groups stack full-width, cards grid inside each day */
.cards.grouped{display:block;max-width:none;padding:26px 0 40px}
.card{
  background:var(--paper);
  border:1px solid var(--line);border-radius:var(--radius);
  padding:20px;
  box-shadow:0 6px 0 var(--sand-shadow);
  display:flex;flex-direction:column;gap:8px;
  position:relative;
}
.card .when{
  font-family:Georgia,serif;font-weight:700;color:var(--accent);
  font-size:1.02rem;
}
.card .when small{
  display:block;font-family:"Inter",sans-serif;font-weight:600;
  color:var(--muted);font-size:.78rem;margin-top:2px;
}
.card h3{font-size:1.18rem;margin:2px 0}
.card .place{font-size:.85rem;color:var(--muted)}
.card .meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.chip{
  font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:var(--accent);background:var(--sage);
  padding:4px 9px;border-radius:999px;
}
.free-badge{
  font-size:.68rem;font-weight:800;letter-spacing:.06em;
  color:#fff;background:var(--pine);
  padding:4px 9px;border-radius:999px;
}
.paid-badge{
  font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:#2b1d00;background:#f4b90c;
  padding:4px 9px;border-radius:999px;
}
.featured-badge{
  font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:#4a2c00;background:#ffe3a3;border:1px solid #e8b64c;
  padding:4px 9px;border-radius:999px;
}
/* Burn-ban alert banner (only rendered while a ban is active) */
.burn-banner{display:flex;gap:10px;align-items:flex-start;margin:12px 16px 0;padding:10px 14px;
  border-radius:12px;color:#4a1d05;
  background:linear-gradient(135deg,#ffe1b3 0%,#ffc98a 60%,#ffb46b 100%);
  border:1px solid #e09a4e}
.burn-icon{font-size:1.3rem;line-height:1.2;flex:none}
.burn-banner b{font-size:.92rem}
.burn-banner div{font-size:.82rem;line-height:1.4}
.burn-banner em{font-style:normal;opacity:.75}
.burn-banner a{color:#7a3a08;font-weight:700}
/* Start screen: prompt + teaser picks */
.start-prompt{text-align:center;color:var(--muted);font-size:.92rem;margin:18px 16px 4px}
.start-prompt p{margin:0}
.picks-head{font-size:1.05rem;margin:14px 16px 10px}
/* Urgent-numbers line under Local Alerts */
.urgent-line{font-size:.85rem;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-top:12px}
/* Civic info banner (voter registration etc.) */
.civic-banner{display:flex;gap:10px;align-items:flex-start;margin:12px 16px 0;padding:10px 14px;
  border-radius:12px;color:#10294f;
  background:linear-gradient(135deg,#d7e7ff 0%,#bcd6ff 60%,#a9c9ff 100%);
  border:1px solid #7fa8e0}
.civic-banner .burn-icon{font-size:1.3rem;line-height:1.2;flex:none}
.civic-banner div{font-size:.85rem;line-height:1.4}
.civic-banner a{color:#0b3d91;font-weight:700}
/* Hidden-gem banner (daily rotating editorial pick) */
.gem-banner{display:flex;gap:10px;align-items:flex-start;margin:12px 16px 0;padding:10px 14px;
  border-radius:12px;color:#3b1d5e;
  background:linear-gradient(135deg,#e9dff7 0%,#dccdf0 60%,#cdbce8 100%);
  border:1px solid #a78bda}
.gem-banner .burn-icon{font-size:1.3rem;line-height:1.2;flex:none}
.gem-banner div{font-size:.85rem;line-height:1.4}
.gem-banner a{color:#5b21b6;font-weight:700}
/* Dismissible banners — visitor's choice remembered in localStorage */
.banner-x{margin-left:auto;flex:none;align-self:flex-start;background:none;border:0;
  font-size:1.15rem;line-height:1;color:inherit;opacity:.5;cursor:pointer;padding:2px 0 2px 10px}
.banner-x:hover,.banner-x:focus-visible{opacity:1}
/* City Hall civic section */
.need-hand>p em{font-style:normal;opacity:.7}
@media(min-width:760px){.help-lead{grid-column:1/-1}}
.need-hand .fineprint{font-size:.8rem;color:var(--muted);margin-top:10px}
.ch-grid{display:grid;gap:12px}
@media(min-width:760px){.ch-grid{grid-template-columns:1fr 1fr}}
.ch-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;
  padding:12px 14px}
.ch-card h3{font-size:.95rem;margin:0 0 8px}
.ch-card ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.ch-card li{font-size:.85rem;line-height:1.45;color:var(--ink)}
.ch-card a{font-weight:700}
.city-hall>p em{font-style:normal;opacity:.7}
/* Add-to-home-screen */
.homescreen-cta{font-size:.85rem}
.sheet-backdrop{position:fixed;inset:0;background:rgba(10,30,18,.55);display:flex;
  align-items:flex-end;justify-content:center;z-index:60;
  padding:0 0 max(24px, env(safe-area-inset-bottom))}
.sheet-backdrop[hidden]{display:none}
.sheet{background:var(--paper);border-radius:18px 18px 0 0;width:100%;max-width:520px;
  padding:22px 20px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -8px 40px rgba(0,0,0,.25)}
@media(min-width:560px){.sheet-backdrop{align-items:center;padding:24px}.sheet{border-radius:18px}}
.sheet h3{margin:0 0 10px;font-size:1.1rem}
.sheet p{font-size:.9rem;line-height:1.5;margin:0 0 8px;color:var(--ink)}
.sheet .show-more{margin-top:10px;width:100%}
.card details{border-top:1px solid var(--line);margin-top:6px;padding-top:10px}
.card summary{font-weight:700;font-size:.85rem;color:var(--accent);cursor:pointer}
.card details p{font-size:.88rem;color:var(--muted);margin:8px 0}
.card .source-link{font-size:.82rem;font-weight:700}
.card-link{display:block;color:inherit;text-decoration:none}
.stay-link{display:block;color:inherit;text-decoration:none}
.stay-go{display:block;font-size:.82rem;font-weight:700;color:var(--accent);margin-top:4px}
/* Show more / show fewer toggle for long lists */
.show-more{
  display:inline-block;margin:8px 0 4px;padding:12px 24px;border-radius:12px;
  border:2px solid var(--pine);background:var(--paper);color:var(--pine);
  font-weight:800;font-size:.9rem;cursor:pointer;
  box-shadow:0 3px 0 var(--sand-shadow);touch-action:manipulation;
}
.show-more:active{transform:translateY(2px);box-shadow:none}
a.show-more{text-decoration:none}
.stay-links{display:flex;gap:10px;flex-wrap:wrap;margin:2px 0 14px}
.ext-link{font-weight:700;text-decoration:underline;text-underline-offset:3px}
/* Seasonal guide */
.season-grid{
  display:grid;grid-template-columns:1fr;gap:10px;max-width:720px;margin-bottom:14px;
}
@media(min-width:720px){.season-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.season{
  background:var(--paper);border:1px solid var(--line);border-radius:12px;
  padding:14px 16px;box-shadow:0 4px 0 var(--sand-shadow);
}
.season b{display:block;font-family:Georgia,serif;font-size:1rem;margin-bottom:4px}
.season span{font-size:.85rem;color:var(--muted)}
/* Weather strip */
.card-actions{margin-top:auto;padding-top:8px;display:flex;gap:8px}
.save-btn{
  border:1px solid var(--pine);background:transparent;color:var(--pine);
  border-radius:10px;padding:7px 14px;font-size:.78rem;font-weight:800;
}
.save-btn.saved{background:var(--pine);color:#fff}
.save-btn:hover{box-shadow:0 3px 0 var(--pine-deep)}
.cal-btn{
  border:1px solid var(--line);background:transparent;color:var(--ink);
  border-radius:10px;padding:7px 14px;font-size:.78rem;font-weight:800;cursor:pointer;font-family:inherit;
}

/* Always-happening (recurring) */
.always{
  background:#14532d;color:var(--ink);
  padding:14px max(4vw,20px);
}
.always-inner{max-width:1060px;margin:0 auto}
.always-details[open]{padding-bottom:16px}
.always-details summary{
  list-style:none;cursor:pointer;
  display:flex;align-items:center;gap:10px;
  padding:4px 2px;color:#fff;
  font-family:Georgia,serif;font-size:1.15rem;font-weight:700;
}
.always-details summary::-webkit-details-marker{display:none}
.always-details summary .count{
  background:rgba(255,255,255,.16);border-radius:999px;
  font-family:Inter,system-ui,sans-serif;font-size:.78rem;font-weight:700;
  padding:3px 11px;
}
.always-details summary::after{content:"▸";margin-left:auto;opacity:.65;font-size:1rem}
.always-details[open] summary::after{content:"▾"}
.always-sub{color:#c9d8cf;font-size:.92rem;margin:0 0 20px}
.always h2{color:#fff;margin-bottom:6px}
.always p{color:#c9d8cf;font-size:.92rem;margin-bottom:20px}
.always-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.always-card{
  background:var(--paper);color:var(--ink);
  border:1px solid var(--line);border-radius:2px;
  padding:12px 14px;box-shadow:none;
}
.always-card b{font-size:.93rem;font-weight:700;display:block;margin-bottom:2px}
.always-card span{font-size:.8rem;color:var(--muted);display:block}
.league-links{display:flex;gap:14px;margin-top:8px}
.league-links .source-link{font-size:.82rem;font-weight:700}
/* Always-happening week view */
.seg-sm{margin:0 0 12px}
.seg-sm button{padding:5px 12px;font-size:.75rem}
.always-week{display:grid;gap:8px}
.always-week[hidden],.always-grid[hidden]{display:none}
.aw-day{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px 14px}
.aw-day b{display:block;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}
.aw-day span{display:block;font-size:.88rem;padding:3px 0;color:var(--ink)}
.aw-day span small{display:block;color:var(--muted);font-size:.74rem}

/* Sections */
.section{max-width:1060px;margin:0 auto;padding:10px max(4vw,20px) 30px}
.section h2{font-size:1.6rem;margin-bottom:4px}
.section>p{color:var(--muted);font-size:.92rem;margin-bottom:18px}
.local-alerts ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.local-alerts li{background:var(--paper);border:1px solid var(--line);border-radius:12px;
  padding:12px 14px;font-size:.88rem;line-height:1.45}
.local-alerts li a{font-weight:700;white-space:nowrap}
.empty{
  border:1px dashed var(--line);border-radius:12px;
  padding:28px;text-align:center;color:var(--muted);
  max-width:1060px;margin:0 auto 40px;
}
.empty-wish{font-size:1.05rem;color:var(--ink);margin:0 0 8px}
.empty-wish b{white-space:nowrap}
.empty-sub{font-size:.85rem;margin:0}
.empty-sub a{font-weight:700}

/* Footer */
footer{
  background:#10281a;color:#bccdc2;
  padding:40px max(4vw,20px);
  font-size:.82rem;
}
footer .brand b,footer .brand{color:#fff}
footer p{max-width:640px;margin:12px 0 0}

@media(max-width:900px){
  .cards,.always-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Visiting Palestine? CTA on the homepage — big thumb-sized button */
.visit-cta{margin:22px 0 0}
.visit-cta a{
  display:inline-block;
  font-weight:800;font-size:1rem;color:#fff;text-decoration:none;
  background:var(--accent);
  padding:14px 28px;border-radius:12px;
  box-shadow:0 4px 0 var(--pine-deep);
}
.visit-cta a:active{transform:translateY(2px);box-shadow:none}

/* Visitor page */
.visit-hero{padding-bottom:18px}
.visit-intro{max-width:620px;margin:0 auto;font-size:1.02rem;color:var(--muted)}
.visit-section{max-width:1060px;margin:0 auto;padding:26px max(4vw,20px) 8px}
.visit-section h2{font-size:1.6rem;margin-bottom:4px}
.visit-section>p{color:var(--muted);font-size:.92rem;margin-bottom:18px;max-width:640px}
.pick-blurb{font-size:.9rem;color:var(--muted);margin:0}
.support-intro{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:0 0 12px}
.support-intro p{margin:0 0 8px;font-size:.92rem}
.support-intro p:last-child{margin:0}
.support-links a{color:var(--pine);font-weight:700}
.stay-list{
  display:grid;grid-template-columns:1fr;gap:10px;max-width:640px;margin-bottom:14px;
}
@media(min-width:720px){.stay-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.stay{
  background:var(--paper);border:1px solid var(--line);border-radius:12px;
  padding:14px 16px;box-shadow:0 4px 0 var(--sand-shadow);
}
.stay b{display:block;font-family:Georgia,serif;font-size:1rem}
.stay span{font-size:.82rem;color:var(--muted)}
.stay-links2{display:flex;gap:16px;margin-top:6px}
.stay-links2 a{font-size:.82rem;font-weight:700;color:var(--accent);text-decoration:none}
.stay-note{font-size:.88rem;color:var(--muted);max-width:640px}
.itin{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 22px;margin-bottom:16px;max-width:720px;
  box-shadow:0 6px 0 var(--sand-shadow);
}
.itin h3{font-size:1.25rem;color:var(--pine)}
.itin p{font-size:.92rem;color:var(--muted)}
.itin p b{color:var(--ink)}
.tips{max-width:640px;padding-left:20px;color:var(--muted);font-size:.92rem}
.tips li{margin-bottom:10px}
.tips b{color:var(--ink)}
footer .indep{opacity:.75}

@media(max-width:620px){
  .hero{padding:40px 16px 22px}
  .searchbar{grid-template-columns:1fr}
  .searchbar select{border-left:0;border-top:1px solid var(--line);max-width:none;padding:12px}
  .cards{grid-template-columns:1fr;padding:20px 16px 32px}
  .always-grid{grid-template-columns:1fr}
  .pills{flex-wrap:wrap;gap:8px;justify-content:center}
  .pills button{padding:8px 12px;font-size:.8rem;white-space:nowrap}
}

/* Wild Palestine: seasonal "right now" banner + page */
.wild-banner{display:flex;gap:10px;align-items:flex-start;margin:12px 16px 0;padding:10px 14px;
  border-radius:12px;color:#0c3a1f;
  background:linear-gradient(135deg,#d9efdf 0%,#c4e6cf 60%,#aedbbd 100%);
  border:1px solid #7fb894}
.wild-banner .burn-icon{font-size:1.3rem;line-height:1.2;flex:none}
.wild-banner div{font-size:.85rem;line-height:1.4}
.wild-banner a{color:#0c5a2a;font-weight:700}
.wild-grid{display:grid;gap:10px}
@media(min-width:640px){.wild-grid{grid-template-columns:1fr 1fr}}
.wild-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.wild-card b{display:block;font-size:.92rem;margin:6px 0 2px}
.wild-card span{font-size:.85rem;color:var(--muted);display:block}
.wild-card small{font-size:.78rem;color:var(--muted);display:block;margin-top:6px}
.wild-tag{display:inline-block;font-size:.66rem;font-weight:800;letter-spacing:.08em;color:#fff;border-radius:6px;padding:3px 9px}
.wild-year{display:grid;gap:10px}
.wild-month{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.wild-monthhead{padding:9px 14px;background:#f4f6f8;border-bottom:1px solid var(--line)}
.wild-monthhead b{font-size:.88rem;color:var(--pine)}
.wild-entry{display:flex;gap:10px;padding:10px 14px;border-top:1px solid #edf0f4;align-items:flex-start}
.wild-entry:first-of-type{border-top:0}
.wild-entry div b{display:block;font-size:.86rem}
.wild-entry div small{font-size:.78rem;color:var(--muted)}

/* Davey Dogwood Park schematic map */
.park-map{width:100%;max-width:420px;height:auto;display:block;margin:8px auto}
.park-map .pm-label{font-size:11px;font-weight:700;fill:#16202a;font-family:Inter,system-ui,sans-serif}
.park-map .pm-sub{font-size:10px;fill:#5b6672;font-family:Inter,system-ui,sans-serif}
.park-map .pm-note{font-size:11px;font-style:italic;fill:#5b6672;font-family:Inter,system-ui,sans-serif}
.park-map .pm-road{font-size:10px;font-weight:700;fill:#5b6672;font-family:Inter,system-ui,sans-serif}
.park-map .pm-fairy{font-size:16px}
.legend{list-style:none;margin:14px 0 0;padding:0}
.legend li{margin-bottom:10px;font-size:.92rem;line-height:1.45}
.legend b{color:var(--ink)}
.fineprint{font-size:.78rem;color:var(--muted);margin-top:14px}

/* Compact event rows (category pages): denser, words-first scanning */
.ev-compact{padding:8px 14px 8px 11px}
.ev-compact .ev-name{font-size:.93rem}
.ev-compact .ev-place{font-size:.78rem}
.ev-compact .ev-when{font-size:.7rem}
.ev-compact .free-badge,.ev-compact .paid-badge,.ev-compact .featured-badge{font-size:.62rem;padding:2px 7px}
.hero-slim{padding:26px 20px 14px}
.hero-slim h1{font-size:1.6rem}

/* Seasonal fairy-garden banner (date-gated at build time) */
.fairy-banner{display:flex;gap:10px;align-items:flex-start;margin:12px 16px 0;padding:10px 14px;
  border-radius:12px;color:#3b0764;
  background:linear-gradient(135deg,#f3e8ff 0%,#e9d5ff 60%,#d8b4fe 100%);
  border:1px solid #a855f7}
.fairy-banner div{font-size:.85rem;line-height:1.4}
.fairy-banner a{font-weight:700;color:#6b21a8}

/* Official map link card (Dogwood Park page) */
.official-map-card{display:block;margin:4px 0 12px;padding:12px 14px;border-radius:12px;
  background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink)}
.official-map-card b{display:block;font-size:.95rem;margin-bottom:2px}
.official-map-card span{font-size:.82rem;color:var(--muted)}
.park-map .pm-enter{font-size:9px;font-weight:800;fill:#16202a;font-family:Inter,system-ui,sans-serif}
.park-map .pm-star{font-size:14px;fill:#b45309}
.park-map .pm-creek{font-size:10px;font-style:italic;fill:#0284c7;font-family:Inter,system-ui,sans-serif}
.park-map .pm-wc{font-size:8px;font-weight:800;fill:#16202a;font-family:Inter,system-ui,sans-serif}
.park-map .pm-key{font-size:10px;fill:#16202a}

/* Places directory: compact two-column name list, tap to expand */
.cards.places-compact{display:grid;grid-template-columns:1fr 1fr;gap:2px 14px;align-items:start;
  max-width:640px;padding-top:18px}
.place-row{position:relative;border:0;border-bottom:1px solid var(--line);background:none;
  padding:10px 16px 10px 2px;cursor:pointer;text-align:left}
.place-name{font-size:.86rem;font-weight:700;color:var(--ink);line-height:1.3;display:block}
.place-chev{position:absolute;right:2px;top:9px;color:var(--muted);font-weight:800;font-size:1rem;line-height:1;
  transition:transform .15s}
.place-row.open .place-chev{transform:rotate(90deg)}
.place-detail{display:none;font-size:.78rem;color:var(--muted);margin-top:6px;line-height:1.45}
.place-row.open .place-detail{display:block}
.place-detail p{margin:6px 0}
.donate-cta{margin:14px 0 4px;font-size:.85rem;color:var(--muted);text-align:center;}
.donate-btn{display:inline-block;margin-left:6px;padding:8px 20px;border-radius:999px;
  background:var(--pine);color:#fff;font-weight:700;font-size:.88rem;text-decoration:none;}
.donate-btn:hover{background:var(--pine-deep);color:#fff;}
/* Plain text lists (no cards) */
.plain-list{list-style:disc;margin:10px 0 10px 22px;padding:0;}
.plain-list li{margin:7px 0;line-height:1.5;}
.pd-addr{font-weight:600;color:var(--ink)}
.places-compact .tip-note{grid-column:1/-1;margin-top:10px}

/* Dense directory rows (restaurants, clubs, gems) — thin, two per row, tap to expand */
.cards.dir-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-width:900px}
.dir-row{background:var(--paper);border:1px solid var(--line);border-radius:8px;
  padding:8px 12px;cursor:pointer;min-width:0}
.dir-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.dir-name{font-weight:700;font-size:.88rem;line-height:1.3}
.dir-chev{color:var(--muted);flex:none;transition:transform .15s}
.dir-sub{font-size:.76rem;color:var(--muted);margin-top:2px;line-height:1.35}
.dir-detail{font-size:.8rem;margin-top:6px;line-height:1.45}
.dir-detail p{margin:6px 0}
.dir-row.open .dir-chev{transform:rotate(90deg)}

/* Banners stay search-bar width and centered (not full-bleed on desktop) */
/* Daily tips banner */
.tips-banner{display:flex;gap:10px;align-items:flex-start;margin:12px 16px 0;padding:10px 14px;
  border-radius:12px;color:#1a3c34;
  background:linear-gradient(135deg,#e6f4ec 0%,#d4eadd 60%,#c2dfd2 100%);
  border:1px solid #7fb89a}
.tips-banner .burn-icon{font-size:1.3rem;line-height:1.2;flex:none}
.tips-banner div{font-size:.85rem;line-height:1.4}
.tips-banner a{color:#1a6b4a;font-weight:700}
.burn-banner,.civic-banner,.wild-banner,.fairy-banner,.gem-banner,.tips-banner{max-width:640px;margin-left:auto;margin-right:auto}
@media(max-width:672px){
  .burn-banner,.civic-banner,.wild-banner,.fairy-banner,.tips-banner{margin-left:16px;margin-right:16px}
}

/* Category pages: event rows two per row on every screen */
.cards.cat-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:900px}
@media(max-width:620px){
  .cards.cat-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:16px 12px 28px}
  .always-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Desktop sidebar layout — homepage only (Jeff 2026-10-13) */
.home-grid{display:block}
.side-head,.side-label{display:none}
@media(max-width:1023.98px){
  .only-wide{display:none!important}
  /* Mobile keeps the compact filter rows: day pills, then Free-only */
  .pills-row.pills-main{flex-wrap:nowrap;gap:4px;overflow-x:auto;justify-content:flex-start;scrollbar-width:none}
  .pills-row.pills-main::-webkit-scrollbar{display:none}
  .pills-row.pills-main button[data-view]{padding:7px 10px;font-size:.78rem;white-space:nowrap;flex:none}
  .pills-row.pills-filter{justify-content:center;margin-top:2px}
  /* Free-only switch keeps its compact size in its own row */
  .pills-row.pills-filter .fs-label{font-size:.8rem}
  .pills-row.pills-filter .fs-track{width:40px;height:24px}
  .pills-row.pills-filter .fs-knob{width:18px;height:18px;top:3px;left:3px}
  .pills-row.pills-filter .freeswitch.active .fs-knob{left:19px}
}
@media(min-width:1024px){
  .home-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:44px;
    max-width:1220px;margin:0 auto;padding:6px 28px 0;align-items:start}
  .sidecol{position:sticky;top:84px;max-height:calc(100vh - 100px);overflow-y:auto;padding-bottom:12px}
  .side-head{display:block;margin:2px 0 16px}
  .side-head b{display:block;font-size:1.15rem;color:var(--pine);letter-spacing:-.01em}
  .side-head span{font-size:.85rem;color:var(--muted)}
  .side-label{display:block;font-size:.68rem;font-weight:800;letter-spacing:.16em;
    text-transform:uppercase;color:var(--muted);margin:20px 0 8px}
  /* The mobile sticky bar becomes a static sidebar panel */
  .sidecol .sticky-bar{position:static;background:none;border:0;padding:0}
  .sidecol .searchbar{grid-template-columns:1fr;max-width:none;box-shadow:none}
  .sidecol .searchbar input{padding:12px 14px;font-size:.95rem}
  .sidecol .searchbar select{border-left:0;border-top:1px solid var(--line);
    max-width:none;width:100%;padding:11px 14px}
  .sidecol .pills{max-width:none;margin:0;padding:0}
  .sidecol .pills-row.pills-main{flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:8px}
  .sidecol .pills-row.pills-main button{width:100%;text-align:left;padding:11px 14px;font-size:.92rem}
  .sidecol .pills-row.pills-filter{justify-content:flex-start}
  .side-explore{display:flex;flex-direction:column}
  .side-explore a{display:block;padding:9px 2px;font-weight:600;font-size:.93rem;
    color:var(--ink);text-decoration:none}
  .side-explore a:hover{color:var(--accent)}
  .sidecol .pills-row.pills-adrow{flex-direction:column;align-items:stretch;margin-top:20px}
  .sidecol .ad-slot{width:100%;min-height:120px}
  .maincol{min-width:0}
  .maincol #cards .ev{max-width:none;margin-left:0;margin-right:0}
}
