/* Hey Forney UI layer (2026-09-28). Loaded LAST on every page.
   One button system, one chip style, calmer cards, and a phone-first layout.
   Only class selectors that already exist on the site are touched, so a page
   without these classes is unaffected. */
:root{
  --hf-brand:#F05A28; --hf-brand-press:#D24A1C; --hf-tint:#FFF0E8; --hf-tint-b:#FCD8C7;
  --hf-ink:#241F1D; --hf-muted:#5C514B; --hf-line:#EADFD9; --hf-surface:#fff; --hf-page:#FBF7F3;
  --hf-rb:12px; --hf-rc:18px;
  --hf-sh1:0 1px 2px rgba(36,31,29,.05),0 6px 18px rgba(36,31,29,.06);
  --hf-sh2:0 2px 4px rgba(36,31,29,.05),0 14px 30px rgba(36,31,29,.10);
}

/* ---------- Buttons: primary (brand), secondary (tint), ghost (outline) ---------- */
.act,.ev-action,.qa,.savebtn,.tb-sub,.herosearch button,.nl-form button,.news-form button,
.nl-inline button,.hero-subscribe button,.sample-cta a,.seasonal .se-go,.nl-ribbon .nr-go{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  min-height:44px;padding:0 16px;border-radius:var(--hf-rb)!important;
  font-family:'Inter',system-ui,sans-serif;font-weight:700;font-size:.9rem;line-height:1.15;letter-spacing:0;
  text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent;
  transition:background-color .15s,border-color .15s,box-shadow .15s,transform .08s;
}
.act:active,.ev-action:active,.qa:active,.savebtn:active,.tb-sub:active,.herosearch button:active,
.nl-form button:active,.news-form button:active,.nl-inline button:active{transform:scale(.98)}

/* primary */
.act.task,.qa.primary,.tb-sub,.herosearch button,.nl-form button,.news-form button,.nl-inline button,.hero-subscribe button{
  background:var(--hf-brand)!important;color:#fff!important;border:1px solid var(--hf-brand)!important;box-shadow:0 1px 2px rgba(210,74,28,.25)!important}
.act.task:hover,.qa.primary:hover,.tb-sub:hover,.herosearch button:hover,.nl-form button:hover,.news-form button:hover,.nl-inline button:hover{background:var(--hf-brand-press)!important;border-color:var(--hf-brand-press)!important}

/* secondary (tint) */
.act.dir,.act.primary,.ev-action.primary{
  background:var(--hf-tint)!important;color:var(--hf-brand-press)!important;border:1px solid var(--hf-tint-b)!important;box-shadow:none!important}
.act.dir:hover,.act.primary:hover,.ev-action.primary:hover{background:#F8E2D6!important}

/* ghost */
.act.save,.ev-action:not(.primary),.qa:not(.primary),.savebtn:not(.on){
  background:#fff!important;color:var(--hf-ink)!important;border:1px solid var(--hf-line)!important;box-shadow:none!important}
.act.save:hover,.ev-action:not(.primary):hover,.qa:not(.primary):hover,.savebtn:not(.on):hover{border-color:#D9C8BF!important;background:#FFFCFA!important}
.act.save.on,.savebtn.on{background:var(--hf-brand)!important;color:#fff!important;border-color:var(--hf-brand)!important}
.savebtn{border-radius:999px!important}

:is(.act,.ev-action,.qa,.savebtn,.tb-sub):focus-visible{outline:3px solid rgba(240,90,40,.35);outline-offset:2px}

/* ---------- Chips ---------- */
.chip:not(.local),.seealso .links a{
  display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:999px;
  background:#fff;border:1px solid var(--hf-line);color:var(--hf-ink);font-weight:600;font-size:.88rem;text-decoration:none}
.seealso .links a:hover{border-color:var(--hf-brand);color:var(--hf-brand)}

/* ---------- Cards ---------- */
.card,.hap,.tile,.sh-card,.rcard,.ev,.trip{border-radius:var(--hf-rc)!important}
.card,.hap,.rcard,.ev{box-shadow:var(--hf-sh1)!important;border:1px solid #EFE5DF!important}
.card:hover,.hap:hover,.rcard:hover{box-shadow:var(--hf-sh2)!important}

/* Card actions: the task button (website/order/call) leads; Details is redundant
   when the card title already opens the place page. */
.card:has(> a[href^="/place/"]) .actions .act.primary{display:none!important}
.card .actions{gap:8px!important}

/* ================= PHONE ================= */
@media (max-width:680px){
  .act,.ev-action,.qa,.savebtn,.herosearch button,.nl-form button,.news-form button,.nl-inline button{min-height:48px;font-size:.95rem}

  /* Home hero: tighter, search first, chips scroll sideways instead of wrapping */
  .hero .wrap{padding-top:18px!important;padding-bottom:18px!important}
  .hero h1{font-size:1.95rem!important;line-height:1.08!important}
  .hero .lede{font-size:1rem!important;margin-bottom:14px!important}
  .hero .hero-chip{display:none!important}
  .herosearch{border-radius:14px!important}
  .herosearch input{font-size:16px!important;min-height:50px}
  .hero-pop{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;gap:8px;margin:14px -16px 0!important;padding:2px 16px 4px!important;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .hero-pop::-webkit-scrollbar{display:none}
  .hero-pop a{flex:0 0 auto;min-height:40px;display:inline-flex!important;align-items:center;white-space:nowrap}
  .hero-subscribe{padding:14px!important;border-radius:16px!important}
  .hero-subscribe-copy span{display:none}
  .hero-stats{gap:14px!important;font-size:.9rem}

  /* "What's happening": a swipeable row instead of a 14-card vertical wall */
  #happenGrid,.happen{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px!important;margin:0 -16px;padding:4px 16px 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  #happenGrid::-webkit-scrollbar,.happen::-webkit-scrollbar{display:none}
  .happen .hap{flex:0 0 84%;scroll-snap-align:start;display:flex;flex-direction:column}
  .hap .hap-photo{height:150px!important}
  .hap .hapbody{display:flex;flex-direction:column;flex:1}
  .hap .hapbody p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .hap .actions{display:grid!important;grid-template-columns:1fr 1fr;gap:8px!important;margin-top:auto!important;padding-top:10px}
  .hap .actions .act{width:100%;min-height:44px}

  /* Browse all of Forney: 2 columns, shorter tiles (was 13 full-width tiles) */
  .tiles{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
  .tiles .tile{height:124px!important;min-height:0!important}
  .tiles .tile h3{font-size:1rem!important;line-height:1.15}
  .tiles .tile span{font-size:.75rem}

  /* Why Forney reads it: compact */
  .benefits{gap:10px!important}
  .benefit{padding:14px 16px!important}

  /* Place-style cards on home rails */
  .card .actions.primary-row .act.task{flex:1 1 100%}

  /* SEO category pages (/restaurants, /things-to-do ...): 2-up grid */
  main.pg .grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
  main.pg .grid a.card img.ph{height:112px!important;width:100%;object-fit:cover}
  main.pg .grid a.card .ph.tile{height:112px!important;gap:6px}
  main.pg .grid a.card .ph.tile .ic{width:46px;height:46px;border-radius:14px}
  main.pg .grid a.card .ph.tile .ic svg{width:24px;height:24px}
  main.pg .grid a.card .b{padding:10px 12px 12px!important}
  main.pg .grid a.card h2{font-size:.98rem!important;line-height:1.2}
  main.pg .grid a.card .sub{font-size:.78rem}
  .pg .lede h1{font-size:1.75rem!important}
  .pg .lede p{font-size:1rem!important}

  /* Events list page: compact rows (thumb + text), 2-line blurb */
  .evlist .ev.haspic{display:grid!important;grid-template-columns:92px 1fr;align-items:start;overflow:hidden}
  .evlist .ev .evphoto{height:100%!important;min-height:120px;border-radius:0!important}
  .evlist .ev .evphoto .w{display:none}
  .evlist .ev .evbody{padding:12px 14px!important}
  .evlist .ev .evbody .ic{display:none}
  .evlist .ev h2{font-size:1rem!important;line-height:1.22!important;margin:2px 0 4px!important}
  .evlist .ev p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.88rem!important;margin:0 0 6px!important}
  .evlist .ev .where{font-size:.8rem!important}
  .evlist .ev .ev-actions{margin-top:8px!important}
  .evlist .ev .ev-action{min-height:40px;font-size:.85rem;padding:0 12px}

  /* Place pages: the action bar is pinned to the bottom of the screen, thumb height */
  .quickbar{position:fixed!important;left:0;right:0;bottom:0;z-index:40;margin:0!important;display:flex!important;flex-wrap:wrap!important;gap:8px!important;
    background:rgba(255,252,250,.97);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    padding:10px 12px calc(10px + env(safe-area-inset-bottom))!important;border-top:1px solid var(--hf-line);box-shadow:0 -8px 22px rgba(36,31,29,.08);border-radius:0!important}
  .quickbar .qa{flex:1 1 0!important;min-width:0;min-height:46px!important;padding:0 8px!important;font-size:.9rem!important}
  .quickbar .qa.task{flex:1 1 100%!important}
  body:has(.quickbar){padding-bottom:84px}
  body:has(.quickbar .qa.task ~ .qa){padding-bottom:140px}
}

/* "Show more" pager for long lists (hf-ui.js) */
.hf-more{display:flex;width:100%;max-width:520px;margin:14px auto 6px;min-height:50px;align-items:center;justify-content:center;border-radius:12px;border:1px solid var(--hf-line);background:#fff;color:var(--hf-ink);font:700 .95rem 'Inter',system-ui,sans-serif;cursor:pointer;box-shadow:var(--hf-sh1)}
.hf-more:hover{border-color:var(--hf-brand);color:var(--hf-brand)}
html body .hf-hide.hf-hide.hf-hide{display:none!important}
.grid > .hf-more,.evlist > .hf-more{grid-column:1/-1}

/* Weather/alert bar: slim moving ticker (2026-09-28) */
html body .wxa{padding:8px 14px 0}
html body .wxa .wxa-in{display:flex;align-items:center;gap:0;height:34px;padding:0;border-radius:999px;overflow:hidden;border:1px solid #D5DFEA;background:#F4F7FB;box-shadow:none;max-width:1100px}
.wxa .wxa-tag{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;height:100%;padding:0 11px 0 12px;background:#3E5C7E;color:#fff;font:800 .66rem/1 'Inter',system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.wxa .wxa-tag svg{width:13px;height:13px}
html body .wxa.wxa-hot .wxa-in{background:#FDF1F0;border-color:#F1C9C6}
.wxa.wxa-hot .wxa-tag{background:#B3261E}
.wxa .wxa-track{flex:1;min-width:0;overflow:hidden;height:100%;display:flex;align-items:center;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12px,#000 calc(100% - 16px),transparent);mask-image:linear-gradient(90deg,transparent,#000 12px,#000 calc(100% - 16px),transparent)}
.wxa .wxa-run{display:inline-flex;white-space:nowrap;animation:wxa-scroll 22s linear infinite;will-change:transform}
.wxa .wxa-run>span{padding:0 36px 0 12px;font-size:.8rem;font-weight:600;color:#241F1D}
.wxa .wxa-in:hover .wxa-run,.wxa .wxa-in:active .wxa-run{animation-play-state:paused}
@keyframes wxa-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
html body .wxa .wxa-go{flex:0 0 auto;border:0;border-left:1px solid #D5DFEA;border-radius:0;height:100%;display:inline-flex;align-items:center;padding:0 12px;font-size:.74rem;font-weight:700;background:transparent;min-height:0}
@media (prefers-reduced-motion:reduce){.wxa .wxa-run{animation:none}.wxa .wxa-run>span+span{display:none}}
@media (max-width:680px){html body .wxa{padding:6px 10px 0}html body .wxa .wxa-in{height:32px}}

/* ===== Phone home: one clear order (2026-09-28 pass 2) ===== */
@media (max-width:680px){
  #view-home.active{display:flex!important;flex-direction:column}
  #view-home > .wrap{display:contents}
  #view-home > .wrap > *{margin-left:16px!important;margin-right:16px!important}
  #view-home > .hero{order:1}
  #view-home .needwrap{order:2;margin-top:18px!important}
  #view-home .home-sec:has(#happenGrid){order:3}
  #view-home #openNowSec{order:4}
  #view-home .cwtick{order:5}
  #view-home .home-sec:has(#subscribe-top){order:6}
  #view-home .home-sec:has(#featRail){order:7}
  #view-home .seasonal{order:8}
  #view-home .home-sec:has(.tiles){order:9}
  #view-home #dyShow{order:10;margin-bottom:24px!important}
  /* duplicates on a phone: the quick-action grid replaces these */
  #view-home .nl-ribbon,#view-home .dateline,#view-home .rail-rule,
  #view-home .home-sec:has(.starthere),#view-home .home-sec:has(.sample),#view-home .home-sec:has(.benefits),
  #view-home .hero-subscribe,#view-home .hero-pop,#view-home .hero-stats{display:none!important}
  #view-home .home-sec{margin-top:26px!important;padding-top:0!important}
  #view-home .hero{min-height:0!important}
  #view-home .hero .wrap{padding-bottom:22px!important}
}
@media (max-width:680px){
  /* quick actions: bigger, friendlier tiles */
  #view-home .needwrap{background:none!important;border:0!important;box-shadow:none!important;padding:0!important}
  #view-home .needhead{font-family:'Fraunces',Georgia,serif;font-size:1.35rem;font-weight:700;margin-bottom:10px}
  #view-home .needsub{display:none}
  #view-home .needgrid{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:10px!important}
  #view-home .need{min-height:92px!important;border-radius:16px!important;background:#fff!important;border:1px solid #EFE5DF!important;box-shadow:0 1px 2px rgba(36,31,29,.05)!important;
    display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:10px 6px!important;font-size:.8rem!important;font-weight:700!important;line-height:1.2;text-align:center}
  #view-home .need .need-ic svg{width:34px!important;height:34px!important}
  #view-home .need:active{transform:scale(.97)}
  /* rails: swipe, no arrow buttons; compact place cards */
  #view-home .railnav{display:none!important}
  #view-home .rail .card .addr,#view-home .rail .card .act-links,#view-home .rail .card .act.save{display:none!important}
  #view-home .rail .card .actions.primary-row{display:flex!important;gap:8px!important}
  #view-home .rail .card .actions.primary-row .act{flex:1 1 100%;min-height:46px;font-size:.9rem;padding:0 10px;white-space:nowrap}
  #view-home .rail .card .actions.primary-row:has(.act.task) .act.dir{display:none!important}
  #view-home .rail .card .hrs{font-size:.8rem}
  #view-home .seehead h2,#view-home .home-sec h2{font-size:1.45rem!important}
}
/* newsletter block sits on brand orange: its button flips to white */
.news .news-form button{background:#fff!important;color:#D24A1C!important;border-color:#fff!important;box-shadow:0 2px 8px rgba(0,0,0,.12)!important}
.news .news-form button:hover{background:#FFF4EE!important}

/* ===== Icons: one crisp line-icon set replaces emoji (hf-icons.js, 2026-09-28) ===== */
.hf-i{width:1.1em;height:1.1em;flex:0 0 auto;display:inline-block;vertical-align:-.17em;stroke-width:2}
.hf-i.hf-fill{fill:currentColor}
.hf-has-i{gap:7px}
.act .hf-i,.qa .hf-i,.ev-action .hf-i,.tb-sub .hf-i{width:18px;height:18px;margin-right:1px}
.act.task .hf-i{stroke-width:2.2}
.hrs .hf-i,.addr .hf-i,.sc-addr .hf-i{width:15px;height:15px;color:var(--hf-brand);opacity:.85;margin-right:5px;vertical-align:-.2em}
.chip .hf-i,.cal-chip .hf-i,.hero-pop a .hf-i,.bar-tag .hf-i,.pill .hf-i,.tag .hf-i{width:15px;height:15px;margin-right:5px;color:var(--hf-brand)}
.savebtn .hf-i{width:17px;height:17px;margin-right:4px}
.hf-ibox{display:inline-flex!important;align-items:center;justify-content:center;font-size:0!important;line-height:0!important;color:var(--hf-brand)}
.se-ic.hf-ibox,.cw-ic.hf-ibox,.dy-ic.hf-ibox,.si-ic.hf-ibox,.b-ic.hf-ibox,.trip-ic.hf-ibox,.res-ic.hf-ibox{width:44px!important;height:44px!important;min-width:44px;border-radius:14px!important;background:var(--hf-tint)!important;border:1px solid var(--hf-tint-b)}
.hf-ibox .hf-i{width:22px;height:22px}
.wx-ic.hf-ibox{color:inherit;width:auto;height:auto;background:none}
.wx-ic.hf-ibox .hf-i{width:18px;height:18px}
.ic.hf-ibox .hf-i{width:20px;height:20px}

/* ===== Phone polish (pass 3, 2026-09-28) ===== */
@media (max-width:680px){
  /* hero: calmer type scale, readable over the mural */
  #view-home .hero .eyebrow{font-size:.7rem!important;letter-spacing:.12em!important;opacity:.95;font-weight:800}
  #view-home .hero h1{font-size:2.05rem!important;line-height:1.04!important;letter-spacing:-.01em;text-wrap:balance;text-shadow:0 2px 14px rgba(0,0,0,.35);margin:6px 0 8px!important}
  #view-home .hero .lede{font-size:1rem!important;line-height:1.45!important;text-shadow:0 1px 8px rgba(0,0,0,.35);max-width:30ch}
  #view-home .hero-live{top:12px!important;right:12px!important;padding:5px 10px!important;border-radius:999px!important;font-size:.82rem!important;gap:5px!important;background:rgba(20,16,14,.42)!important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.18)!important}
  #view-home .hero-live .hl-c{display:none!important}
  #view-home .hero .wrap{padding-top:34px!important}

  /* section rhythm: same head size, same gap everywhere */
  #view-home .home-sec{margin-top:30px!important}
  #view-home .seehead{margin-bottom:4px!important;align-items:flex-end}
  #view-home .seehead h2,#view-home .home-sec h2:not(.news h2){font-size:1.4rem!important;line-height:1.15!important;letter-spacing:-.005em}
  #view-home .sub-p{font-size:.92rem!important;line-height:1.4!important;color:var(--hf-muted)!important;margin:2px 0 12px!important}

  /* place cards on rails: wider, equal height, button pinned to the bottom (no mid-card gap) */
  #view-home .rail{grid-auto-columns:calc(100vw - 84px)!important;gap:12px!important;padding-bottom:6px!important}
  #view-home .rail .card{display:flex!important;flex-direction:column;min-width:0}
  #view-home .rail .card .cmedia{height:170px!important}
  #view-home .rail .card .card-body{flex:1;display:flex!important;flex-direction:column;padding:14px 16px 16px!important}
  #view-home .rail .card .card-body h3{font-size:1.12rem!important;line-height:1.2!important;margin:2px 0 4px!important}
  #view-home .rail .card .rating{margin-bottom:6px}
  #view-home .rail .card .what{font-size:.9rem!important;line-height:1.4!important;color:var(--hf-muted);margin-bottom:8px}
  #view-home .rail .card .hrs{margin-top:2px!important;color:var(--hf-ink)}
  #view-home .rail .card .hrs span{display:block!important;-webkit-line-clamp:unset!important;overflow:visible!important}
  #view-home .rail .card .actions.primary-row{margin-top:auto!important;padding-top:14px}
  #view-home .rail .card .toprow .sub{font-size:.7rem!important;letter-spacing:.09em}

  /* "What's happening" cards: tidy type */
  #view-home .hap h3{font-size:1.08rem!important;line-height:1.22!important}
  #view-home .hap .hapbody{padding:14px 16px 16px!important}
  #view-home .hap .hapwhen{font-size:.85rem!important}
  #view-home .hap .hapbody p{font-size:.9rem!important;line-height:1.4!important;color:var(--hf-muted)}

  /* Cone Watch: a clean one-tap strip, text wraps instead of cutting off */
  #view-home .cwtick{display:grid!important;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;padding:12px 14px!important;border-radius:16px!important;border:1px solid #EFE5DF!important;border-left-width:1px!important;background:#fff!important;box-shadow:var(--hf-sh1)!important;margin-top:26px!important}
  #view-home .cwtick .cw-k{font-size:.68rem!important;letter-spacing:.1em}
  #view-home .cwtick .cw-line{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden!important;font-size:.9rem!important;line-height:1.35!important}
  #view-home .cwtick .se-go{font-size:0!important;width:32px;height:32px;border-radius:50%;background:var(--hf-tint);display:inline-flex;align-items:center;justify-content:center}
  #view-home .cwtick .se-go::after{content:'';width:8px;height:8px;border-top:2px solid var(--hf-brand);border-right:2px solid var(--hf-brand);transform:rotate(45deg);margin-left:-3px}

  /* newsletter block: short, one heading, one form */
  #view-home .news{padding:24px 20px!important;border-radius:20px!important;gap:14px!important}
  #view-home .news h2{font-size:1.5rem!important;line-height:1.12!important;text-wrap:balance;margin:6px 0 8px!important}
  #view-home .news .news-l>p{font-size:.95rem!important;line-height:1.45!important}
  #view-home .news .badges{gap:8px 14px!important;margin-top:12px!important}
  #view-home .news .badges span{font-size:.82rem!important}
  #view-home .news .news-form>strong{display:none!important}
  #view-home .news .news-form{padding:0!important;background:none!important;border:0!important;box-shadow:none!important}
  #view-home .news .news-form input[type=email]{min-height:50px;font-size:16px!important;border-radius:12px!important}
  #view-home .news .news-form button{width:100%;min-height:50px}
  #view-home .news .news-form small{font-size:.78rem!important;opacity:.9}

  /* seasonal cards: compact row with an icon tile */
  #view-home .seasonal{display:grid!important;grid-template-columns:44px 1fr;column-gap:14px;row-gap:6px;align-items:start;padding:16px!important;border-radius:16px!important;border:1px solid #EFE5DF!important;border-left:1px solid #EFE5DF!important;background:#fff!important;box-shadow:var(--hf-sh1)!important;margin-top:14px!important}
  #view-home .seasonal .se-ic{grid-row:1/3;margin:0!important}
  #view-home .seasonal strong{font-size:1.02rem!important;line-height:1.25!important;display:block;margin-bottom:3px}
  #view-home .seasonal div span{font-size:.9rem!important;line-height:1.4!important;color:var(--hf-muted)}
  #view-home .seasonal .se-go{grid-column:2;justify-self:start;padding:0!important;margin:2px 0 0!important;min-height:0!important;font-size:.9rem!important;font-weight:700;color:var(--hf-brand)!important;background:none!important;border:0!important}

  /* Did you know: dots row replaced by a small counter feel */
  #view-home .didyou{border-radius:16px!important;border:1px solid #EFE5DF!important;border-left:1px solid #EFE5DF!important;background:#fff!important;box-shadow:var(--hf-sh1)!important;padding:16px!important;gap:14px!important}
  #view-home .didyou .dy-k{font-size:1rem!important}
  #view-home .didyou .dy-slide{font-size:.95rem!important;line-height:1.45!important}
  #view-home .didyou .dy-dots{display:none!important}
  #view-home .didyou .dy-foot{justify-content:flex-end!important}

  /* browse tiles: consistent label size */
  #view-home .tiles .tile h3{font-size:1.02rem!important}

  /* footer: readable on dark, tidy link grid */
  footer .foot-tag{color:rgba(255,248,242,.78)!important;font-size:.95rem!important}
  footer .foot-nav{display:flex!important;flex-wrap:wrap;gap:12px 18px!important}
  footer .foot-nav a{font-size:.86rem!important;padding:0!important;color:rgba(255,248,242,.84)!important}
}

/* never show an empty open/closed pill */
.opn[hidden]{display:none!important}

/* ===== Listings upgrade (2026-09-29): category tools, richer cards, place quick facts, owner box ===== */
html body .hf-filt.hf-filt.hf-filt{display:none!important}
.hf-tools{margin:6px 0 16px;display:flex;flex-direction:column;gap:10px}
.hf-srow{display:flex;gap:8px}
.hf-search{flex:1;display:flex;align-items:center;gap:8px;min-height:48px;padding:0 14px;background:#fff;border:1px solid var(--hf-line);border-radius:14px;box-shadow:var(--hf-sh1);color:var(--hf-muted)}
.hf-search svg{width:18px;height:18px;flex:0 0 auto}
.hf-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:500 16px 'Inter',system-ui,sans-serif;color:var(--hf-ink)}
.hf-search:focus-within{border-color:var(--hf-brand);box-shadow:0 0 0 3px rgba(240,90,40,.15)}
.hf-sort{min-height:48px;padding:0 12px;border:1px solid var(--hf-line);border-radius:14px;background:#fff;font:700 .88rem 'Inter',system-ui,sans-serif;color:var(--hf-ink);max-width:44%}
.hf-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px 0 4px}
.hf-chips::-webkit-scrollbar{display:none}
.hf-chip{flex:0 0 auto;min-height:40px;padding:0 15px;border-radius:999px;border:1px solid var(--hf-line);background:#fff;color:var(--hf-ink);font:700 .86rem 'Inter',system-ui,sans-serif;cursor:pointer;white-space:nowrap}
.hf-chip.on{background:var(--hf-brand);border-color:var(--hf-brand);color:#fff}
.hf-count{font-size:.86rem;color:var(--hf-muted);font-weight:600;min-height:0}
.hf-count:empty{display:none}
.hf-clear{border:0;background:none;color:var(--hf-brand);font:700 .86rem 'Inter',system-ui,sans-serif;cursor:pointer;margin-left:6px;padding:4px}
.hf-empty{padding:24px 16px;text-align:center;color:var(--hf-muted);background:#fff;border:1px dashed var(--hf-line);border-radius:16px}
@media (max-width:680px){.hf-tools{margin:0 -16px 14px;padding:0 16px}.hf-chips{margin:0 -16px;padding:2px 16px 4px}}

/* category cards: blurb, review count, open badge */
main.pg .grid a.card .what{font-size:.84rem;line-height:1.35;color:var(--hf-muted)}
main.pg .grid a.card .meta{flex-wrap:wrap;gap:6px 8px}
main.pg .grid a.card .rv{color:var(--hf-muted);font-weight:600;margin-left:-4px}
.card .opn{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:800;letter-spacing:.02em;padding:3px 9px;border-radius:999px}
.card .opn.on{background:#E8F5EC;color:#1B6B2E}
.card .opn.on::before{content:'';width:6px;height:6px;border-radius:50%;background:#1F8A3B}
.card .opn.off{background:#F4EFEC;color:#6B5E57}
@media (max-width:680px){main.pg .grid a.card .what{display:none}}

/* place pages: quick facts right under the name (phone), owner box */
.quickfacts{display:none}
@media (max-width:900px){
  .quickfacts{display:block;margin:4px 0 16px;background:#fff;border:1px solid #EFE5DF;border-radius:16px;box-shadow:var(--hf-sh1);overflow:hidden}
  .quickfacts .qf-row{display:flex;align-items:center;gap:12px;padding:13px 16px;border-top:1px solid #F3EBE6;color:var(--hf-ink);text-decoration:none}
  .quickfacts .qf-row:first-child{border-top:0}
  .quickfacts .qf-l{flex:0 0 66px;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--hf-muted)}
  .quickfacts .qf-v{flex:1;font-size:.95rem;font-weight:600;line-height:1.35;color:var(--hf-ink)}
  .quickfacts a.qf-row .qf-v{color:var(--hf-brand-press)}
  .quickfacts details summary{list-style:none;display:flex;align-items:center;gap:12px;cursor:pointer}
  .quickfacts details summary::-webkit-details-marker{display:none}
  .quickfacts details summary::after{content:'';width:8px;height:8px;border-right:2px solid var(--hf-muted);border-bottom:2px solid var(--hf-muted);transform:rotate(45deg);margin:-4px 2px 0 auto;transition:transform .15s}
  .quickfacts details[open] summary::after{transform:rotate(225deg);margin-top:4px}
  .quickfacts details.qf-row{display:block}
  .quickfacts .qf-week{padding:10px 0 2px 78px}
  .quickfacts .qf-week .hrow{display:flex;justify-content:space-between;gap:12px;padding:4px 0;font-size:.9rem}
}
.ownerbox{margin:26px 0 8px;padding:18px;border:1px solid #EFE5DF;border-radius:18px;background:#FFFBF8}
.ownerbox h3{font:700 1.1rem 'Fraunces',Georgia,serif;margin:0 0 4px}
.ownerbox p{font-size:.92rem;color:var(--hf-muted);margin:0 0 12px}
.ownerbox .ob-acts{display:flex;gap:8px;flex-wrap:wrap}
.ownerbox .ob-acts .qa{flex:1 1 150px}
.fixform{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.fixform label{display:flex;flex-direction:column;gap:5px;font-size:.84rem;font-weight:700;color:var(--hf-ink)}
.fixform select,.fixform textarea,.fixform input{font:500 16px 'Inter',system-ui,sans-serif;padding:11px 12px;border:1px solid var(--hf-line);border-radius:12px;background:#fff}
.fixform textarea{min-height:84px;resize:vertical}
.fixform .fixmsg{font-size:.85rem;color:#a33}
.fixok{font-weight:700;color:#1B6B2E;margin:10px 0 0}
.hf-search{min-width:0}
.hf-sort{flex:0 0 132px;width:132px;max-width:none}
.ownerbox .ob-acts .qa{white-space:nowrap;font-size:.9rem;padding:0 12px}
.fixform[hidden]{display:none!important}

/* ===== Events view v2 (2026-09-29) ===== */
#view-events .catbanner{min-height:0}
@media (max-width:680px){#view-events .catbanner .cb-in{padding-top:44px!important;padding-bottom:22px!important}#view-events .catbanner h2{font-size:1.9rem!important}}
.evwrap{padding-bottom:20px}
.evbar{margin:14px 0 6px!important}
.evbar .cal-chips{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;gap:8px!important;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 -16px 8px!important;padding:2px 16px 2px!important}
.evbar .cal-chips::-webkit-scrollbar{display:none}
.evbar .cal-chip{flex:0 0 auto;min-height:40px;padding:0 15px!important;border-radius:999px!important;font-size:.86rem!important;font-weight:700!important;white-space:nowrap;background:#fff;border:1px solid var(--hf-line)!important;color:var(--hf-ink)!important;display:inline-flex;align-items:center}
.evbar .cal-chip.on{background:var(--hf-brand)!important;border-color:var(--hf-brand)!important;color:#fff!important}
.evbar .cal-chip.on .hf-i{color:#fff!important}
.evbar .cal-count{font-size:.86rem;color:var(--hf-muted);font-weight:600}
.evrail{margin:22px 0 4px}
.evrail-h{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}
.evrail-h h2{font:700 1.35rem/1.15 'Fraunces',Georgia,serif;margin:0;color:var(--hf-ink)}
.evrail-h p{margin:3px 0 0;font-size:.88rem;color:var(--hf-muted)}
.evrail-more{flex:0 0 auto;border:0;background:none;color:var(--hf-brand);font:700 .9rem 'Inter',system-ui,sans-serif;padding:6px 0;cursor:pointer}
.evrail-row{display:grid;grid-auto-flow:column;grid-auto-columns:min(72%,260px);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:2px 16px 8px}
.evrail-row::-webkit-scrollbar{display:none}
.evt{scroll-snap-align:start;background:#fff;border:1px solid #EFE5DF;border-radius:18px;overflow:hidden;box-shadow:var(--hf-sh1);cursor:pointer;display:flex;flex-direction:column}
.evt-ph{position:relative;height:140px;background:#EADFD9 center/cover no-repeat}
.evt-d{position:absolute;left:10px;bottom:10px;background:var(--hf-brand);color:#fff;font:800 .72rem 'Inter',system-ui,sans-serif;letter-spacing:.04em;text-transform:uppercase;padding:5px 10px;border-radius:999px}
.evt-b{padding:12px 14px 14px;display:flex;flex-direction:column;gap:3px;flex:1}
.evt-b h3{font:700 1rem/1.22 'Fraunces',Georgia,serif;margin:0 0 2px;color:var(--hf-ink)}
.evt-m{font-size:.84rem;font-weight:700;color:var(--hf-brand-press)}
.evt-w{font-size:.82rem;color:var(--hf-muted)}
.evt .evtag{align-self:flex-start;margin-top:6px}
.evh{position:absolute;top:10px;right:10px;width:38px;height:38px;border-radius:50%;border:0;background:rgba(255,255,255,.94);color:var(--hf-ink);display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.15);cursor:pointer;padding:0}
.evh svg{width:19px;height:19px}
.evh.on{color:var(--hf-brand)}
.evh.on svg{fill:currentColor}
.evcats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.evcat{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 6px;background:#fff;border:1px solid #EFE5DF;border-radius:16px;box-shadow:0 1px 2px rgba(36,31,29,.05);cursor:pointer;font-family:'Inter',system-ui,sans-serif}
.evcat .ic{font-size:1.4rem;line-height:1}
.evcat .ic.hf-ibox{width:40px;height:40px;border-radius:12px;background:var(--hf-tint);border:1px solid var(--hf-tint-b)}
.evcat b{font-size:.88rem;color:var(--hf-ink)}
.evcat span:last-child{font-size:.74rem;color:var(--hf-muted);font-weight:600}
.evlist-h{font:700 1.35rem/1.15 'Fraunces',Georgia,serif;margin:28px 0 4px;color:var(--hf-ink)}
.evday{margin-top:14px}
.evday-h{position:sticky;top:0;z-index:3;background:var(--hf-page,#FBF7F3);font:800 .78rem 'Inter',system-ui,sans-serif;letter-spacing:.09em;text-transform:uppercase;color:var(--hf-muted);padding:10px 0 8px;margin:0}
.evday.we .evday-h{color:var(--hf-brand-press)}
.evr{position:relative;display:flex;align-items:stretch;background:#fff;border:1px solid #EFE5DF;border-radius:16px;box-shadow:0 1px 2px rgba(36,31,29,.05);margin-bottom:10px;overflow:hidden}
.evr-in{flex:1;min-width:0;display:flex;gap:12px;padding:10px;cursor:pointer;align-items:flex-start}
.evr-ph{flex:0 0 84px;height:84px;border-radius:12px;background:#EADFD9 center/cover no-repeat}
.evr-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding-right:40px}
.evr-t{font:700 1rem/1.22 'Fraunces',Georgia,serif;color:var(--hf-ink)}
.evr-m{font-size:.84rem;font-weight:700;color:var(--hf-brand-press);line-height:1.3}
.evr-w{font-size:.82rem;color:var(--hf-muted);line-height:1.3}
.evr-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.evtag{display:inline-flex;align-items:center;font-size:.7rem;font-weight:800;letter-spacing:.02em;padding:3px 8px;border-radius:999px;background:#F4EFEC;color:#5C514B}
.evtag.free{background:#E8F5EC;color:#1B6B2E}
.evtag.ser{background:var(--hf-tint);color:var(--hf-brand-press)}
.evr .evh{top:8px;right:8px;width:36px;height:36px;box-shadow:none;border:1px solid var(--hf-line)}
.evr+.ser-list,.evday .ser-list{margin:-4px 0 12px;background:#fff;border:1px solid #EFE5DF;border-radius:14px;overflow:hidden}
.evday .ser-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:0;border-top:1px solid #F3EBE6;background:none;text-align:left;font:600 .9rem 'Inter',system-ui,sans-serif;color:var(--hf-ink);cursor:pointer}
.evday .ser-row:first-child{border-top:0}
.evday .ser-d{flex:0 0 58px;font-weight:800;color:var(--hf-brand-press);font-size:.82rem}
.evday .ser-n{flex:1;min-width:0}
.evday .ser-go{color:var(--hf-muted);font-size:1.2rem}
.evcta{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:26px 0 0;padding:18px;border-radius:18px;background:#FFF4EE;border:1px solid var(--hf-tint-b)}
.evcta b{display:block;font:700 1.08rem 'Fraunces',Georgia,serif;color:var(--hf-ink)}
.evcta span{display:block;font-size:.88rem;color:var(--hf-muted);margin-top:3px}
.evcta .act{flex:0 0 auto;white-space:nowrap}
@media (max-width:680px){.evcta{flex-direction:column;align-items:stretch}.evcta .act{width:100%}}
@media (min-width:900px){.evwrap{max-width:860px}.evrail-row{grid-auto-columns:250px;margin:0;padding:2px 0 8px}.evbar .cal-chips{margin:0 0 8px!important;padding:2px 0!important;flex-wrap:wrap!important}}
/* home "What's happening" cards: two buttons never truncate */
.hap .actions .act{white-space:nowrap;overflow:hidden;text-overflow:clip;font-size:.88rem;padding:0 10px}

/* ===== Clean photos everywhere (2026-09-29) ===== */
/* place photos: aim a touch below centre by default (less sky); focus.json fine-tunes */
.cmedia.photo .gal-track img,main.pg .grid a.card img.ph,.gallery img,#heroimg{object-position:50% 58%}
/* event detail: the clean photo fills the top of the card; flyers sit whole on a blurred copy */
.evm-hero{position:relative;aspect-ratio:16/10;max-height:none!important;height:auto;background:#EADFD9!important;border-radius:20px 20px 0 0;overflow:hidden}
.evm-hero img{width:100%;height:100%!important;max-height:none!important;object-fit:cover!important;display:block}
.evm-hero.tall{aspect-ratio:4/5;max-height:62vh!important;background:#241F1D!important}
.evm-hero.tall::before{content:'';position:absolute;inset:-24px;background:var(--evbg) center/cover no-repeat;filter:blur(22px) brightness(.62)}
.evm-hero.tall img{position:relative;object-fit:contain!important}
.evm-cred{position:absolute;right:10px;bottom:10px;z-index:2;max-width:80%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:rgba(20,16,14,.58);color:#fff;font:600 .7rem/1 'Inter',system-ui,sans-serif;padding:6px 10px;border-radius:999px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.evm-card .evm-x{z-index:3;background:rgba(255,255,255,.94)!important;box-shadow:0 2px 10px rgba(0,0,0,.18)}
.evm-shot{border-radius:20px 20px 0 0;overflow:hidden}
