:root{
  --pumpkin:#FF7A1A; --lime:#A6E22E; --violet:#7B3FE4;
  --night:#0B0910; --card:#150E20; --panel:#1A0F2B; --chip:#241638; --filter:#1A1226; --map:#110C1A;
  --line:#3A2B4D; --line-strong:#6B5A85;
  --cream:#F6EBD3; --cream-2:#E9DFCB; --mist:#D6CCE6; --label:#B7AACB;
  --disabled-bg:#3A2B4D; --disabled-fg:#8C7DA6;
  --f-title:'Creepster',cursive; --f-display:'Rubik Dirt',sans-serif; --f-ui:'Barlow Condensed',sans-serif; --f-body:'Barlow',sans-serif;
  --brush:polygon(2% 14%,12% 0,40% 8%,70% 1%,97% 6%,100% 52%,97% 100%,64% 92%,30% 100%,4% 93%,0 55%);
  --brush-btn:polygon(1% 12%,9% 2%,32% 7%,58% 0,83% 6%,99% 1%,100% 46%,98% 96%,72% 91%,46% 100%,19% 94%,0 99%,2% 52%);
}
*{box-sizing:border-box}
html{background:var(--night)}
body{margin:0;background:var(--night);color:var(--cream);font:400 17px/1.4 var(--f-body);-webkit-font-smoothing:antialiased}
a{color:var(--lime)}
button,input{font:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid #F6EBD3;outline-offset:2px}
.shell{width:min(1296px,calc(100% - 32px));margin-inline:auto}

.hf-header{position:relative;overflow:hidden;padding:28px 0 78px;background:radial-gradient(ellipse at 85% 0%,#4A2380 0%,#21123A 45%,var(--night) 100%);border-bottom:3px solid var(--violet)}
.hf-header__inner{position:relative;z-index:3}
.hf-eyebrow{font:800 16px/1.2 var(--f-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--lime);text-shadow:0 1px 2px var(--night)}
.hf-title{margin:14px 0;display:flex;flex-direction:column;gap:2px}
.hf-title__word{font:400 72px/.9 var(--f-title);color:var(--pumpkin);letter-spacing:.02em;text-shadow:3px 4px 0 var(--night),0 0 28px rgba(255,122,26,.45)}
.hf-title__sub{font:400 34px/1.02 var(--f-display);text-transform:uppercase;text-shadow:2px 3px 0 var(--night)}
.hf-lede{margin:0;font-size:18px;line-height:1.45;color:var(--cream-2);max-width:640px;text-wrap:pretty}
.hf-header__actions{display:flex;flex-direction:column;gap:10px;margin-top:20px;max-width:360px}
.moon{position:absolute;right:10%;top:12px;width:118px;height:118px;border-radius:50%;background:#F4CF83;box-shadow:0 0 36px rgba(244,207,131,.35);opacity:.95}
.bats{position:absolute;right:24%;top:62px;color:#09050f;font:700 38px/1 var(--f-ui);letter-spacing:10px;transform:rotate(-7deg)}
.hf-graveyard{position:absolute;left:0;bottom:0;width:100%;height:72px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:50px;padding:0 18px;border:0;border-radius:4px;font:800 18px/1 var(--f-ui);letter-spacing:.03em;text-transform:uppercase;text-decoration:none;cursor:pointer}
.btn--cta{min-height:56px;font-size:21px;letter-spacing:.04em;background:var(--pumpkin);color:var(--night);border-radius:0;clip-path:var(--brush-btn)}
.btn--outline{background:transparent;color:var(--cream);border:2px solid var(--cream);font-weight:700}
.btn--route{min-height:52px;background:var(--lime);color:var(--night);border:2px solid var(--lime)}
.btn--route[aria-pressed="true"]{background:rgba(166,226,46,.12);color:var(--lime)}
.btn--directions{min-height:52px;background:transparent;color:var(--pumpkin);border:2px solid var(--pumpkin);font-weight:700}
.btn--map-route{min-height:58px;width:100%;background:var(--lime);color:var(--night);font:400 25px/1 var(--f-display)}
.btn--map-route[aria-disabled="true"]{background:var(--disabled-bg);color:var(--disabled-fg);pointer-events:none}
.btn--form{min-height:56px;background:var(--lime);color:var(--night);font-size:20px;letter-spacing:.05em}
.btn:hover{filter:brightness(1.08)}

.page-grid{display:grid;grid-template-columns:1fr;gap:28px;padding-block:28px 42px}
.map-column,.list-column{min-width:0}
.map-frame{position:relative;border:3px solid var(--pumpkin);border-radius:8px;box-shadow:0 14px 34px rgba(0,0,0,.6);overflow:hidden;background:var(--map)}
.hf-map{width:100%;aspect-ratio:1.1;background:var(--map)}
.leaflet-container{background:var(--map);font-family:var(--f-body)}
.leaflet-control-zoom a{width:44px!important;height:44px!important;line-height:40px!important;background:var(--filter)!important;color:var(--cream)!important;border:2px solid var(--line-strong)!important}
.leaflet-control-attribution{background:rgba(11,9,16,.82)!important;color:var(--mist)!important}
.leaflet-control-attribution a{color:var(--cream)!important}

.map-peek{margin:0}

.brush-label{display:inline-block;margin:0;padding:9px 24px 7px;background:var(--pumpkin);color:var(--night);font:400 24px/1.05 var(--f-display);text-transform:uppercase;clip-path:var(--brush)}
.brush-label--lime{background:var(--lime)}
.finder-head{display:flex;flex-direction:column;gap:14px}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filter{min-height:52px;padding:0 18px;background:var(--filter);color:var(--cream);border:2px solid var(--line-strong);border-radius:4px;font:700 19px/1 var(--f-ui);cursor:pointer}
.filter:hover{border-color:var(--cream)}
.filter[aria-pressed="true"]{background:var(--pumpkin);border-color:var(--pumpkin);color:var(--night)}
.count-line{font:700 15px/1.2 var(--f-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--mist)}

.card-list{display:flex;flex-direction:column;gap:18px;margin-top:18px}
.card{display:flex;flex-direction:column;gap:18px;padding:18px;background:var(--panel);border:2px solid var(--line);border-radius:8px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.card.is-linked,.card:hover{border-color:var(--cream)}
.card.is-selected{border-color:var(--lime);box-shadow:0 0 0 3px rgba(166,226,46,.28),0 0 22px rgba(166,226,46,.18)}
.card__head{display:flex;gap:12px;align-items:flex-start}
.card__pin{flex:none;width:40px;height:47px}.card__pin .pin{width:40px;height:47px}
.card__heading{flex:1;min-width:0}.card__name{margin:0;font:800 24px/1.05 var(--f-ui);text-transform:uppercase;text-wrap:pretty}.card__town{font:700 16px/1.2 var(--f-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--pumpkin)}
.card__facts{display:grid;grid-template-columns:62px minmax(0,1fr);gap:12px;font-size:17px;line-height:1.4;margin:0}.card__facts dt{font:700 14px/1.2 var(--f-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--label);padding-top:2px}.card__facts dd{margin:0}
.pips{display:inline-flex;gap:4px;margin-right:10px;vertical-align:-2px}.pip{width:14px;height:14px;border-radius:50%;border:2px solid var(--pumpkin)}.pip.is-on{background:var(--pumpkin)}
.chips{display:flex;flex-wrap:wrap;gap:6px}.chips:empty{display:none}.chip{max-width:100%;overflow-wrap:anywhere;padding:5px 9px;background:var(--chip);border:1.5px solid var(--violet);border-radius:3px;color:#E6DAFF;font:600 15px/1.2 var(--f-body)}
.card__notes{padding:12px 14px;background:var(--chip);border-radius:4px;line-height:1.45;overflow-wrap:anywhere}
.card__notes strong{display:block;font:800 14px/1.2 var(--f-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--label);margin-bottom:5px}
.card__actions{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:10px;margin-top:2px}

.route-wrap{margin-top:28px}.route{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px 28px;padding:20px 16px;background:var(--panel);border:2px solid var(--violet);border-radius:6px;margin-top:12px}.route__label{font:700 15px/1.2 var(--f-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--label)}.route__helper{color:var(--mist);margin:0}.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}.seg button{min-height:50px;background:transparent;color:var(--cream);border:2px solid var(--cream);border-radius:4px;font:700 18px/1 var(--f-ui)}.seg button[aria-checked="true"]{background:var(--cream);color:var(--night)}.route__input{min-height:52px;width:100%;padding:0 14px;background:var(--cream);color:var(--night);border:2px solid var(--lime);border-radius:4px;font:400 17px var(--f-body)}.current-note{display:flex;align-items:center;gap:8px;color:var(--mist)}.current-dot{width:10px;height:10px;border-radius:50%;background:var(--lime);box-shadow:0 0 8px var(--lime)}.stops{display:flex;flex-direction:column;gap:8px}.stop{display:flex;align-items:center;gap:10px;padding:8px 4px 8px 10px;background:var(--night);border-radius:4px}.stop__order{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--lime);color:var(--night);font:800 15px var(--f-ui)}.stop__meta{flex:1;min-width:0}.stop__meta strong{display:block;font:800 16px/1.1 var(--f-ui);text-transform:uppercase}.stop__meta small{color:var(--mist)}.stop__remove{width:44px;height:44px;background:none;border:0;color:var(--cream);font-size:26px}.empty{padding:28px 20px;border:2px dashed var(--line-strong);border-radius:6px;text-align:center;color:var(--mist);display:flex;flex-direction:column;gap:12px;align-items:center}.empty strong{font:400 22px/1 var(--f-display);text-transform:uppercase;color:var(--cream)}

.hf-footer{margin-top:40px;padding:32px 0;background:#14091F;border-top:3px solid var(--violet)}.footer-inner{display:flex;flex-direction:column;gap:20px}.footer-inner h2{margin:0;font:400 25px/1.1 var(--f-display);text-transform:uppercase}.footer-inner p{margin:6px 0 0;color:var(--mist)}

.pin{position:relative;width:28px;height:33px;transform-origin:50% 100%;transition:transform .15s ease,filter .15s ease;filter:drop-shadow(0 3px 5px rgba(0,0,0,.55));cursor:pointer}.pin__art{position:absolute;inset:0;width:100%;height:100%;display:block}.pin__num{position:absolute;left:0;right:0;top:55%;transform:translateY(-50%);text-align:center;font:800 11px/1 var(--f-cond);color:#0B0910;pointer-events:none;text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff}.pin.is-linked{transform:scale(1.08)}.pin.is-selected{transform:scale(1.2);filter:drop-shadow(0 0 6px rgba(166,226,46,.9)) drop-shadow(0 3px 5px rgba(0,0,0,.55))}.pin__badge{display:none;position:absolute;top:-8%;right:-12%;width:42%;pointer-events:none}.pin.is-on-route .pin__badge{display:block}
.is-hidden{display:none!important}

@media (min-width:768px) and (max-width:1023px){.shell{width:min(100% - 48px,1296px)}}
@media (min-width:1024px){
  .shell{width:min(1296px,calc(100% - 144px))}
  .hf-header{padding:38px 0 88px}.hf-eyebrow{font-size:19px;letter-spacing:.14em}.hf-title__word{font-size:128px;line-height:.86}.hf-title__sub{font-size:60px}.hf-lede{font-size:21px}.hf-header__actions{flex-direction:row;max-width:none}
  .page-grid{grid-template-columns:minmax(0,1fr) 420px;gap:36px;padding-top:36px}.hf-map{height:520px;aspect-ratio:auto}.map-frame{position:relative}.route-wrap{margin-top:28px}.list-column{position:sticky;top:16px;align-self:start;max-height:calc(100vh - 32px);overflow:auto;padding-right:4px}.filter{min-height:48px;padding:0 16px;font-size:18px}.card-list{gap:14px}.hf-footer{padding:40px 0}.footer-inner{flex-direction:row;align-items:center;justify-content:space-between}
}
@media (max-width:560px){
  body{font-size:16px}.shell{width:min(100% - 28px,1296px)}.hf-header{padding:24px 0 74px}.hf-eyebrow{font-size:15px}.hf-title__word{font-size:64px}.hf-title__sub{font-size:31px}.hf-lede{font-size:17px}.hf-header__actions{max-width:none}.hf-header__actions .btn{width:100%}.moon{width:92px;height:92px;right:-10px;top:10px;opacity:.88}.bats{right:22%;top:42px;font-size:24px}.page-grid{padding-top:22px}.filter{min-height:52px;font-size:18px;padding:0 14px}.card{padding:16px;gap:16px}.card__name{font-size:23px}.card__facts{font-size:16px}.card__actions{grid-template-columns:1.3fr 1fr}.btn{font-size:17px;padding-inline:12px}.route{grid-template-columns:1fr}.footer-inner h2{font-size:23px}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.pin,.card{transition:none}}

.btn--feedback{grid-column:1/-1;background:var(--chip);border:1.5px solid var(--violet);color:var(--cream);min-height:44px;font-size:17px}
.community-links{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin-top:24px}
.community-links a{padding-block:10px;overflow-wrap:anywhere}
.form-note{font-size:14px;color:var(--mist)}
.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.crow-rating{margin:0 0 18px;padding:0;border:0}.crow-rating legend{margin-bottom:8px}
#crowChoices{display:flex;gap:8px;margin-bottom:8px}
.crow-choice{position:relative;flex:1;min-width:0}.crow-choice input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}
.crow-choice span{display:flex;flex-direction:column;align-items:center;border:2px solid var(--line-strong);border-radius:4px;padding:6px;background:var(--night);color:var(--mist)}
.crow-choice svg{width:32px;height:32px}.crow-choice b{font-size:14px}
.crow-choice input:checked+span{color:var(--lime);border-color:var(--lime);background:var(--chip)}
.crow-choice input:focus-visible+span{outline:3px solid var(--cream);outline-offset:2px}
.visitor-review{border-top:1px solid var(--line-strong);padding:16px 0}.review-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}.review-crows{display:inline-flex;gap:3px}.review-crows svg{width:22px;height:22px}.review-crows span{color:var(--line-strong)}.review-crows .is-filled{color:var(--lime)}
.visitor-review time,.review-report{font-size:13px;color:var(--label)}.visitor-review p{white-space:pre-wrap;overflow-wrap:anywhere}.review-meta strong{overflow-wrap:anywhere}
.mobile-route-bar{display:none}
button:disabled{cursor:not-allowed;opacity:.55}
@media(min-width:1024px){.map-column{grid-column:1;grid-row:1}.list-column{grid-column:2;grid-row:1/span 2}.route-wrap{grid-column:1;grid-row:2;margin-top:0}}
@media(max-width:1023px){.route-wrap{margin-top:0}.mobile-route-bar:not(.is-hidden){display:flex;position:fixed;bottom:0;left:0;right:0;z-index:900;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:var(--night);border-top:2px solid var(--lime);box-shadow:0 -4px 18px #0008}.mobile-route-bar .btn{min-height:48px}.mobile-route-bar span{font-size:15px}body:has(.mobile-route-bar:not(.is-hidden)){padding-bottom:100px}}

[hidden]{display:none!important}
.crow-choice.is-filled span{color:var(--lime);border-color:var(--lime);background:var(--chip)}
.visitor-review{margin:16px 0;padding:20px;border:1px solid var(--line-strong);border-left:4px solid var(--violet);border-radius:6px;background:var(--night)}.visitor-review time{display:block;margin-top:8px;color:var(--mist);font-size:14px}.visitor-review p{line-height:1.6}.review-report{font-size:13px}
.card__title-row{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.card-rating{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border:1px solid var(--line-strong);border-radius:4px;background:var(--chip);color:var(--lime);font:600 13px var(--f-body);cursor:pointer;min-height:44px}.card-rating svg{width:14px;height:22px}.card-rating small{color:var(--mist)}
.community-links{padding-top:24px;border-top:1px solid var(--line-strong);gap:20px}.community-links .btn{font:600 16px var(--f-body);padding:0;border:0;background:none;min-height:36px}.footer-social{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.footer-social>span{color:var(--mist);font-size:14px}.community-links a{font-size:15px}.footer-inner{padding-bottom:24px}.footer-inner h2{font-size:22px}
@media(max-width:600px){.community-links{display:grid;grid-template-columns:1fr 1fr;gap:14px}.footer-social{grid-column:1/-1}.community-links .btn{text-align:left}.review-meta{gap:12px}}

.listing-coming-soon{font-weight:600;font-size:16px}.listing-coming-soon small{display:block;color:var(--mist);font-size:13px;margin-top:4px}.share-preview{display:block;width:100%;max-width:400px;margin:20px auto;border:1px solid var(--violet);border-radius:6px}.share-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}#houseShareText{width:100%;box-sizing:border-box;padding:12px;background:var(--night);color:var(--cream);border:1px solid var(--line-strong);font:16px/1.5 var(--f-body);resize:vertical}

.listing-status{padding:12px;border:1px solid var(--orange);border-left:4px solid var(--orange);border-radius:4px;background:var(--chip);display:grid;gap:6px}.listing-status strong{color:var(--orange)}.listing-status small{color:var(--mist)}.card__updates{display:grid;gap:8px;border-top:1px solid var(--line-strong);padding-top:12px}.listing-updated{margin:0;font-size:12px;color:var(--mist)}.report-listing{border:0;background:none;color:var(--mist);font:14px var(--f-body);padding:6px 0;text-align:left;text-decoration:underline;cursor:pointer}#listingReportForm label{display:block;margin:14px 0 7px}#listingReportForm select,#listingReportForm textarea{width:100%;box-sizing:border-box;background:var(--night);color:var(--cream);border:1px solid var(--line-strong);padding:12px;font:16px/1.5 var(--f-body)}
/* Feature keys retain labels; feature chips pair each pictogram with its readable label. */
.filter{display:inline-flex;align-items:center;gap:7px}.filter svg{width:24px;height:24px;flex-shrink:0}.feature-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 8px}.feature-chip svg{width:16px;height:16px;flex-shrink:0}.stop__controls{display:flex;gap:4px;flex-shrink:0}.stop__controls button{background:#251932;color:#f5ecd1;border:1px solid #634879;border-radius:5px;min-width:30px;min-height:36px;cursor:pointer}.stop__controls button:disabled{opacity:.3;cursor:default}.stop__meta{min-width:0}.route__privacy,.route__handoff{font-size:13px;line-height:1.5;color:#c6bad1}.route__handoff{margin-top:18px}#optimizeRouteBtn{margin-top:12px}#routeOrderStatus{font-size:14px;color:#b2e51a}.share-actions{flex-wrap:wrap}.share-actions .btn{text-decoration:none;text-align:center}

.hf-title__word{font-size:clamp(48px,10vw,120px)}

#listingReportDates input{display:block;width:100%;box-sizing:border-box;background:var(--night);color:var(--cream);border:1px solid var(--line-strong);padding:12px;font:16px var(--f-body);color-scheme:dark}

/* Compact feature keys and three-band route layout from the design reference. */
.filters{display:grid;gap:10px}.filter-tier{display:flex;flex-wrap:wrap;gap:6px}.filter-tier--primary .filter{min-height:44px;padding:0 13px;font-size:17px}.filter-tier--features .filter{min-height:44px;padding:0 10px;background:transparent;border:1.5px solid #4a3a62;color:#e6daff;font:600 14px var(--f-body)}.filter-tier--features .filter svg{width:17px;height:17px}.filter-tier--features .filter[aria-pressed="true"]{background:var(--pumpkin);border-color:var(--pumpkin);color:var(--night)}
.route{display:flex;flex-direction:column;gap:20px;padding:20px}.route__setup{display:flex;flex-wrap:wrap;gap:16px 28px}.route__setup>p,.route__starting{flex:1 1 250px}.route__starting .route__label{margin-bottom:8px}.seg{gap:0;border:2px solid var(--cream);border-radius:4px;overflow:hidden}.seg button{border:0;border-radius:0;min-height:44px}.seg button+button{border-left:2px solid var(--cream)}.route__stops-band{border-top:1.5px solid #2e2244;padding-top:18px}.route__stops-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.route__stops-head #optimizeRouteBtn{margin:0;min-height:44px;padding:0 10px;font-size:15px}.route__action .route__handoff{margin:0 0 12px;font-size:14px;text-align:center}.stop__controls button{min-width:44px;min-height:44px}.listing-coming-soon{font-size:16px}.card__notes{white-space:pre-line}
@media(min-width:1024px){.list-column{scrollbar-color:#3a2b4d transparent;scrollbar-width:thin}.filter-tier--primary .filter{min-height:40px}.filter-tier--features .filter{min-height:38px}}
@media(max-width:400px){.stop{flex-wrap:wrap}.stop__controls{margin-left:auto}.stop__meta{flex-basis:calc(100% - 46px)}}


/* Approved v3 compact layout. */
[hidden]{display:none!important}
.hf-header{padding:0;height:auto;border-bottom:3px solid var(--violet);background:var(--night)}
.hf-header__blur,.hf-header__edge,.hf-header__scrim{display:none}
.hf-header__row{position:relative;display:block;height:100%}
.hf-header__title{margin:0;line-height:0}
.hf-header__sign{width:100%;height:auto;display:block}
.hf-header__copy{padding:12px 14px 16px;background:linear-gradient(#1A0F2B,#0B0910)}
.hf-lede{font-size:15px;line-height:1.4}
.hf-header__actions{display:grid;grid-template-columns:1.25fr 1fr;gap:8px;margin-top:12px;max-width:none}
.hf-header__actions .btn{min-height:44px;padding:0 10px;font-size:16px}
.filterbar{position:sticky;top:0;z-index:950;background:var(--night);padding:10px 32px 10px 12px;border-bottom:1.5px solid #2E2244;overflow-x:auto;scrollbar-width:none}
.filterbar::-webkit-scrollbar{display:none}
.filterbar .filters{display:flex;flex-wrap:nowrap;gap:12px;width:max-content}
.filter-tier{display:flex!important;flex-wrap:nowrap!important;gap:6px;align-items:center}
.filterbar__label{display:none}
.filterbar .filter{min-height:40px;white-space:nowrap;font-size:16px;padding:0 12px;flex-shrink:0}
.filterbar .filter--feature{font-size:14px}
.filterbar .filter svg{width:15px;height:15px}
.filter-tier--features{padding-left:12px;border-left:1.5px solid var(--violet)}
.filter-hint{position:fixed;right:0;background:linear-gradient(90deg,transparent,var(--night) 30%);width:28px;text-align:center;color:var(--pumpkin);font-size:26px;pointer-events:none;top:auto;margin-top:-40px}
.count-line{margin:12px 0 0}
.page-grid{width:100%;padding:18px 14px 22px;gap:20px;display:flex;flex-direction:column}
.map-column{position:relative}
.map-frame{position:relative}.hf-map{height:220px;aspect-ratio:auto}
.map-peek{position:absolute;bottom:calc(10px + env(safe-area-inset-bottom));left:12px;right:12px;z-index:660;margin:0}
.map-popup .btn{min-height:44px;font-size:14px}
.list-column{position:static;max-height:none;overflow:visible}.tabs{display:none}
.card-list{gap:10px;margin:0}.card--compact{padding:12px;gap:8px}
.card--compact .card__head{gap:10px;align-items:flex-start}.card--compact .card__pin{width:32px;height:38px;flex:0 0 32px}.card--compact .card__pin .pin{width:32px;height:38px;transform:none}.card--compact .card__pin .pin__num{font-size:13px}
.card--compact .card__name{font-size:20px;line-height:1.1}.card__subline{display:flex;flex-wrap:wrap;gap:3px 9px;align-items:center;margin-top:4px}.card__subline .card__town{font-size:14px;margin:0}.card__scare{font-size:12px;color:var(--mist)}.card__scare .pips{gap:3px;margin-right:5px}.card__scare .pip{width:8px;height:8px;border-width:1px}
.card__body{padding-left:42px;font-size:15px;line-height:1.3}.card__body p{margin:0 0 4px;overflow-wrap:anywhere}
.card__tags{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.card__tags .chips{gap:5px}.chip--type{font-size:12px;padding:4px 7px}.feature-chip{padding:3px 7px;font-size:12px}.feature-chip svg{width:14px;height:14px}
.card--compact .card__notes{display:block;margin:0;padding:0;background:transparent;font-size:13px;white-space:normal}.card__notes summary{cursor:pointer;color:var(--mist)}.card__notes div{padding:8px;white-space:pre-line;font-size:14px;line-height:1.5;background:var(--chip);margin-top:6px}
.card--compact .card__actions{gap:8px;margin:0;grid-template-columns:1.25fr 1fr}.card--compact .btn{min-height:44px;font-size:16px;padding:0 8px}
.card__extras{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:center}.card__extras button{font-size:13px;min-height:44px;padding:0 6px;background:none;border:0;color:var(--mist)}.card--compact .listing-updated{font-size:11px;margin:0}
.list-more{display:none}.route-wrap{margin:0}.route{border:0;padding:12px 0;background:transparent;gap:16px}.route__helper{font-size:15px;margin:0}.route__setup{display:block}.route__starting{margin-top:16px}
.mobile-route-bar:not(.is-hidden){position:fixed;display:flex;bottom:0;z-index:1000;border-top:2px solid var(--violet);padding:10px 12px calc(12px + env(safe-area-inset-bottom));gap:12px}.mobile-route-bar strong{display:block;font:700 14px var(--f-ui);letter-spacing:.08em;text-transform:uppercase}.mobile-route-bar span{font-size:13px;color:var(--mist)}.mobile-route-bar .btn{width:auto;font:800 17px var(--f-ui);min-height:44px}.mobile-route-bar .btn:disabled{background:var(--disabled-bg);color:var(--disabled-fg);cursor:default}
@media(min-width:1024px){
 body{padding-bottom:0!important}.app{height:100vh;min-height:700px;display:flex;flex-direction:column}
 .hf-header{height:200px;flex:0 0 200px}.hf-header__blur{display:block;position:absolute;inset:-40px;width:calc(100% + 80px);height:calc(100% + 80px);object-fit:cover;filter:blur(18px) saturate(1.2) brightness(.6)}.hf-header__edge{display:block;position:absolute;right:0;top:0;height:100%;mask-image:linear-gradient(270deg,#000 55%,transparent)}.hf-header__scrim{display:block;position:absolute;inset:0;background:linear-gradient(90deg,transparent 38%,#0b09108c 62%,#0b091059),linear-gradient(180deg,transparent 70%,#0b091099)}
 .hf-header__row{display:flex;align-items:center;gap:30px;padding-right:110px}.hf-header__title{height:100%;flex:0 0 auto}.hf-header__sign{height:100%;width:auto;mask-image:linear-gradient(90deg,#000 80%,transparent)}.hf-header__copy{background:none;padding:0;max-width:560px}.hf-lede{font-size:18px}.hf-header__actions{display:flex;margin-top:16px;gap:12px}.hf-header__actions .btn{min-height:46px;font-size:18px}
 .filterbar{position:relative;flex:0 0 auto;overflow:visible;padding:12px 32px}.filterbar .filters{display:flex;flex-direction:column;gap:8px;width:auto}.filterbar__label{display:block;flex:0 0 76px;font:700 13px var(--f-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--label)}.filterbar .filter{min-height:36px;font-size:16px}.filterbar .filter--feature{min-height:32px;font-size:14px}.filter-tier--features{border:0;padding:0}.filter-hint{display:none}
 .page-grid{flex:1;min-height:0;padding:18px 32px 20px;display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:24px}.map-column{grid-column:1;grid-row:1;display:flex;flex-direction:column;min-height:0}.map-frame{flex:1;min-height:0}.hf-map{height:100%;aspect-ratio:auto}.list-column{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:12px;min-height:0;overflow:hidden;max-height:none}
 .tabs{display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--line);border-radius:6px;overflow:hidden;flex:0 0 auto}.tabs button{min-height:44px;background:transparent;color:var(--cream);border:0;font:800 17px var(--f-ui);text-transform:uppercase}.tabs button+button{border-left:2px solid var(--line)}.tabs button[aria-selected=true]{background:var(--cream);color:var(--night)}.tabs__badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:12px;background:var(--lime);color:var(--night);font-size:15px;padding:0 6px}
.tabs__badge--displays{background:var(--pumpkin)}
.tabs__badge--treats{background:var(--lime)}
.tabs__badge--events{background:#C49BFF}
 .content-panels{position:relative;flex:1;min-height:0}.content-panels>section{height:100%;overflow-y:scroll;scrollbar-color:var(--pumpkin) var(--chip);scrollbar-width:auto;padding:2px 10px 38px 2px}.content-panels>section::-webkit-scrollbar{width:10px}.content-panels>section::-webkit-scrollbar-track{background:var(--chip)}.content-panels>section::-webkit-scrollbar-thumb{background:var(--pumpkin);border-radius:5px}.list-more{position:absolute;left:0;right:16px;bottom:0;height:56px;background:linear-gradient(transparent,var(--night) 75%);display:flex;align-items:flex-end;justify-content:center;padding-bottom:6px;pointer-events:none;font:700 14px var(--f-ui);color:var(--pumpkin);text-transform:uppercase;letter-spacing:.1em}.mobile-route-bar{display:none!important}
}
@media(min-width:1024px) and (max-width:1270px){.hf-header__row{gap:18px;padding-right:30px}.hf-header__title{max-width:52%}.hf-header__sign{width:100%;object-fit:cover;object-position:left}.filterbar .count-line{position:static;margin:8px 0 0 82px}.page-grid{grid-template-columns:minmax(0,1fr) 400px}}

/* Routes below the map; a separate opt-in candy-stop list. */
.app{height:auto;min-height:0}
.page-grid{align-items:start}
.map-column{display:flex;flex-direction:column;min-width:0}
.map-frame{flex:none}
.route-wrap{margin-top:24px;padding:20px;background:var(--panel);border:2px solid var(--violet);border-radius:6px}
.route-wrap .brush-label{font-size:22px;margin-bottom:12px}
.route-wrap .route{padding:0;background:transparent;overflow:visible}
.route-wrap .route__setup{display:flex;gap:16px 24px}
.route-wrap .route__setup>p,.route-wrap .route__starting{flex:1 1 250px;margin:0}
.route-wrap .route__stops-band{padding-top:14px}
.route-wrap .route__handoff{overflow-wrap:anywhere}
.tabs{display:grid;grid-template-columns:1fr 1fr;flex:none;border:2px solid var(--line);border-radius:6px;overflow:hidden;margin-bottom:12px}
.tabs button{min-height:44px;background:transparent;color:var(--cream);border:0;font:800 17px var(--f-ui);text-transform:uppercase}
.tabs button+button{border-left:2px solid var(--line)}
.tabs #displaysTab[aria-selected=true]{background:var(--cream);color:var(--night)}
.tabs #treatStopsTab[aria-selected=true]{background:var(--lime);color:var(--night)}
.treat-stop-number{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:none;background:var(--lime);color:var(--night);border-radius:50%;font:800 20px var(--f-ui)}
.treat-stop-card{border-color:#476522}
.mobile-route-bar{display:none!important}
body:has(.mobile-route-bar:not(.is-hidden)){padding-bottom:0}
.hf-footer{margin-top:24px;position:relative;clear:both}
@media(min-width:1024px){
 .app{height:auto;min-height:0}.page-grid{flex:none;min-height:0;display:grid;align-items:start}
 .map-column{min-height:0}.map-frame{height:clamp(360px,56vh,620px);min-height:0;flex:none}.hf-map{height:100%}
 .list-column{position:sticky;top:16px;align-self:start;display:flex;flex-direction:column;gap:0;height:calc(clamp(360px,56vh,620px) + 42px);max-height:calc(100vh - 32px);overflow:hidden}
 .content-panels{min-height:0;flex:1}.content-panels>section{height:100%;overflow-y:auto;padding-bottom:42px}
 .route-wrap{height:auto;overflow:visible}
}
@media(max-width:1023px){
 .list-column{max-height:none;height:auto;overflow:visible}.content-panels>section{height:auto;overflow:visible}
 .page-grid{gap:24px}.route-wrap{padding:14px}.route-wrap .route__setup{display:block}.route-wrap .route__starting{margin-top:16px}
}

/* No internal side scroll: each listing page grows in normal document flow. */
.list-column{position:static!important;height:auto!important;max-height:none!important;overflow:visible!important;align-self:start}
.content-panels{height:auto;min-height:0;flex:none;overflow:visible}
.content-panels>section{height:auto!important;max-height:none!important;overflow:visible!important;padding:2px 0 0}
.card-list{height:auto;overflow:visible}
.listing-pages{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding:12px 0;border-top:1px solid var(--line);font-size:14px;color:var(--mist)}
.listing-pages .btn{min-height:44px;font-size:16px;padding:0 12px}
.listing-pages .btn:disabled{opacity:.4;cursor:default}
.page-grid,.app{height:auto!important;max-height:none!important;overflow:visible!important}
@media(min-width:1024px){.map-frame{height:420px}.page-grid{align-items:start}.route-wrap{width:100%;max-height:none!important;overflow:visible!important}}

/* Approved category/calendar handoff. */
[hidden]{display:none!important}
.tabs button{font-size:16px;text-transform:uppercase;flex:1;padding:12px 8px}
#displaysTab[aria-selected="true"]{background:#F6EBD3;color:#0B0910}
#treatStopsTab[aria-selected="true"]{background:#A6E22E;color:#0B0910}
#eventsTab[aria-selected="true"]{background:#C49BFF;color:#0B0910}
.calendar-heading{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.event-card h3{margin:8px 0}.event-card p{margin:10px 0}.hf-footer .footer-inner{flex-wrap:wrap}
@media(max-width:650px){.tabs button{font-size:14px}}

/* Keep the three category tabs together at every screen size. */
.list-column .tabs{display:flex;flex-wrap:nowrap;gap:4px;width:100%}
.list-column .tabs button{flex:1 1 0;min-width:0;white-space:nowrap;font-size:15px;padding:12px 5px}
@media(max-width:650px){.list-column .tabs button{font-size:13px;padding:12px 3px}.list-column .tabs button span{font-size:11px}}

/* v5 Phase D: collapsible Features tier, reset action. */
.filter-tier--features summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;min-height:36px;padding:0 4px;font:700 13px var(--f-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--label)}
.filter-tier--features summary::-webkit-details-marker{display:none}
.filter-tier--features summary:before{content:'▸ ';color:var(--pumpkin)}
.filter-tier--features[open] summary:before{content:'▾ '}
.filter--reset{background:transparent;border:2px dashed var(--line-strong);color:var(--mist)}
.filter--reset:hover{border-color:var(--cream);color:var(--cream)}

/* 1A Phase F (spec 8.7): Barlow Condensed 800 number, ~40% of pin width, #0B0910 with a 1px white outline. Desktop pins are 38px wide / 44px tall. */
@media(min-width:768px){.pin{width:38px;height:44px}.pin__num{font-size:15px}}

/* Calendar and compact event cards from the approved handoff. */
.event-calendar{background:transparent;border:0;border-radius:0;padding:0;min-height:0}
.event-legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:12px;font-size:13px;color:var(--mist)}.event-legend span{display:flex;align-items:center;gap:6px}.event-legend span:before{content:'';width:15px;height:4px;background:var(--event-color)}
.event-card{display:grid;grid-template-columns:54px minmax(0,1fr);gap:12px;padding:12px;border-radius:5px;cursor:default}
.event-date-badge{background:var(--event-color);color:var(--night);border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;height:66px;font:800 14px/1 var(--f-ui);text-transform:uppercase;gap:4px}.event-date-badge strong{font-size:32px}
.event-card-content{min-width:0}.event-card-title{display:flex;align-items:flex-start;gap:8px}.event-card h3{font:800 20px/1.12 var(--f-ui);text-transform:uppercase;margin:0;flex:1}
.event-type-tag{border:1px solid var(--event-color);color:var(--event-color);border-radius:3px;font:600 12px var(--f-body);padding:2px 5px;white-space:nowrap}
.event-card p{font-size:14px;line-height:1.35;color:var(--mist);margin:6px 0;overflow-wrap:anywhere}
.event-card .card__notes{background:transparent;padding:0;font-size:13px;margin:8px 0}
.event-card .card__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.event-card .btn{min-height:44px;font-size:14px;padding:0 10px}.btn--event-details{background:var(--cream);color:var(--night)}.event-free{color:var(--lime);font-weight:700}.event-registration{margin:6px 0;font-size:13px;color:var(--mist);border-left:3px solid #C49BFF;padding-left:8px}
@media(max-width:650px){.calendar-heading h2{flex-basis:100%;font-size:21px}.event-day{min-width:64px;padding:7px 9px}.event-day__dom{font-size:21px}.event-card-title{flex-wrap:wrap}.event-card h3{flex-basis:100%}}

/* Shared footer typography and responsive link row. */
.hf-footer .footer-links{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 0;padding-top:20px;margin-top:0}
.hf-footer .footer-links>*{font:700 18px/1.4 var(--f-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--cream);text-decoration:none;white-space:nowrap;margin:0;padding:8px 0;min-height:40px;border:0;border-radius:0;background:none}
button.footer-link{cursor:pointer}
.hf-footer .footer-links>a:hover,.hf-footer .footer-links>button:hover{color:var(--violet)}
.hf-footer .footer-links>*+*::before{content:'';display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--violet);margin:0 14px;vertical-align:middle}
.hf-footer #siteVisits{font:600 15px/1.4 var(--f-body);letter-spacing:0;text-transform:none;color:var(--mist);cursor:default}
.hf-footer #siteVisitTotal{font:inherit;font-variant-numeric:tabular-nums}
.hf-footer #siteVisits[hidden]{display:none}
@media(min-width:900px){.hf-footer .footer-links{flex-wrap:nowrap}.hf-footer .footer-inner{flex-wrap:nowrap;gap:20px}.hf-footer .footer-inner>div{flex:1}}
@media(max-width:600px){.hf-footer .footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px;text-align:center}.hf-footer .footer-links>*{white-space:normal}.hf-footer .footer-links>*+*::before{content:none}}

/* Vacant numbers preserve published listing references. */
.card--vacant{background:#24242b;border:1px dashed #777;box-shadow:none;color:#b9b9c0;cursor:default}
.card--vacant .card__name,.card--vacant .card__body p{color:#b9b9c0}
.vacant-number{display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border-radius:50%;background:#55555d;color:#ddd;font-size:26px;font-weight:800}

.event-date-badge--ongoing{font-size:12px;padding:4px;box-sizing:border-box}
.event-date-badge--ongoing strong{font-size:17px;line-height:1.1;white-space:nowrap}

/* Location search bar (Release 1). Sits above the filter chips in the sticky filterbar. */
.locbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:10px}
.locbar__label{font:800 15px/1.2 var(--f-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--pumpkin)}
.locbar__zip{display:flex;align-items:center;gap:8px}
.locbar__zip-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.locbar__input{min-height:44px;width:108px;padding:0 12px;background:var(--cream);color:var(--night);border:2px solid var(--lime);border-radius:4px;font:600 17px var(--f-body)}
.locbar .btn{min-height:44px;padding:0 14px;font-size:16px}
.locbar__go{background:var(--pumpkin);color:var(--night);border:2px solid var(--pumpkin)}
.locbar__locate-short{display:none}
.locbar__within{font:700 13px/1 var(--f-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--label)}
.locbar__radius{display:flex;gap:0;border:2px solid var(--line-strong);border-radius:4px;overflow:hidden}
.locbar__radius button{min-height:44px;padding:0 14px;background:var(--filter);color:var(--cream);border:0;border-radius:0;font:700 16px/1 var(--f-ui);cursor:pointer}
.locbar__radius button+button{border-left:2px solid var(--line-strong)}
.locbar__radius button:hover{background:#2c2138}
.locbar__radius button:hover{border-color:var(--cream)}
.locbar__radius button[aria-checked="true"]{background:var(--pumpkin);border-color:var(--pumpkin);color:var(--night)}
.locbar__status{width:100%;margin:0;font:700 14px/1.3 var(--f-ui);letter-spacing:.04em;color:var(--mist)}
@media(max-width:560px){
 .locbar{gap:8px}
 .locbar__label{width:100%;font-size:14px}
 .locbar__zip{flex:1;min-width:176px}
 .locbar__input{flex:1;width:auto;min-width:0}
 .locbar__locate-long{display:none}
 .locbar__locate-short{display:inline}
 .locbar .btn{padding:0 12px}
 .locbar__radius{flex:1;min-width:240px}
 .locbar__radius button{flex:1;min-height:44px;padding:0 8px;white-space:nowrap}
 .locbar__status{font-size:13px}
}
@media(min-width:1024px){
 .locbar{margin-bottom:12px}
 .locbar__radius{margin-left:auto}
 .locbar__status{width:auto;flex-basis:100%}
}

/* Location search: distances, event pins, empty-state action, area notes */
.card__distance{font:700 14px/1.2 var(--f-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--pumpkin)}
.empty .btn{margin-top:12px}
.listing-status .btn{margin-top:6px;min-height:44px}

/* Phase 5: full-screen map (mobile), search-this-area. */
.map-float-btn{position:absolute;z-index:650;min-height:44px;padding:0 16px;border:2px solid var(--night);border-radius:22px;background:var(--cream);color:var(--night);font:800 15px/1 var(--f-ui);letter-spacing:.05em;text-transform:uppercase;box-shadow:0 4px 14px rgba(0,0,0,.55);cursor:pointer;transition:opacity .18s ease,transform .18s ease,visibility .18s}
.map-float-btn--search{left:50%;transform:translate(-50%,8px);bottom:14px;opacity:0;visibility:hidden;pointer-events:none;background:var(--pumpkin)}
.map-float-btn--search.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.map-float-btn--full{right:12px;bottom:12px}
.map-full-head{position:absolute;top:0;left:0;right:0;z-index:700;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:calc(10px + env(safe-area-inset-top)) 12px 10px;background:linear-gradient(rgba(11,9,16,.92),rgba(11,9,16,.72));border-bottom:1.5px solid var(--line-strong)}
.map-full-head__close{min-height:44px;padding:0 14px;background:var(--cream);color:var(--night);border:0;border-radius:4px;font:800 15px/1 var(--f-ui);letter-spacing:.05em;text-transform:uppercase;cursor:pointer}
.map-full-head__status{margin:0;font:700 14px/1.3 var(--f-ui);color:var(--mist)}
.map-full-head__radii{display:flex;gap:6px;margin-left:auto}
.map-full-head__radii button{min-height:40px;padding:0 12px;background:var(--filter);color:var(--cream);border:2px solid var(--line-strong);border-radius:4px;font:700 14px/1 var(--f-ui);cursor:pointer}
.map-full-head__radii button[aria-checked="true"]{background:var(--pumpkin);border-color:var(--pumpkin);color:var(--night)}
html[data-fullmap]{overflow:hidden}
html:not([data-fullmap]) .map-full-head{display:none!important}
@media(max-width:1023px){
 .map-float-btn--search{bottom:calc(96px + env(safe-area-inset-bottom))}
 .map-float-btn--full{bottom:calc(12px + env(safe-area-inset-bottom))}
 body:has(.mobile-route-bar:not(.is-hidden)) .map-float-btn--full{bottom:calc(84px + env(safe-area-inset-bottom))}
 html[data-fullmap] .map-frame{position:fixed;inset:0;height:100dvh;z-index:1200;border-radius:0;aspect-ratio:auto}
 html[data-fullmap] .map-float-btn--full{display:none}
 html[data-fullmap] .map-peek{bottom:calc(10px + env(safe-area-inset-bottom))}
}
@media(min-width:1024px){
 .map-float-btn--full{display:none}
 .map-float-btn--search{bottom:14px}
}
@media(prefers-reduced-motion:reduce){.map-float-btn{transition:none}}
.locbar__back{min-height:36px;padding:0 12px;background:transparent;color:var(--lime);border:1.5px solid var(--lime);border-radius:4px;font:700 14px/1 var(--f-ui);letter-spacing:.04em;text-transform:uppercase;cursor:pointer}
.locbar__back:hover{background:var(--chip)}

/* Release 2 Part B: date-filter chips and the Open tonight badge. */
.filter--date[aria-pressed="true"]{background:var(--violet);border-color:var(--violet);color:var(--cream)}
.filter-date-input{min-height:40px;padding:0 10px;background:var(--night);color:var(--cream);border:1.5px solid var(--line-strong);border-radius:4px;font:600 15px var(--f-body);color-scheme:dark}
.filter-tier--date{padding-left:12px;border-left:1.5px solid var(--violet)}
.card__open-tonight{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:11px;background:var(--lime);color:var(--night);font:800 12px/1 var(--f-ui);letter-spacing:.06em;text-transform:uppercase}

/* Release 4: compact map info row (distance note + map key) and dialog legend. */
.map-info{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}
.map-info__notes{display:flex;flex-direction:column;gap:2px;min-width:0}
.map-hint{font:400 12px/1.35 var(--f-body);color:var(--mist)}
.key-circle{flex:none;width:34px;height:34px;border:2px dashed #FF7A1A;border-radius:50%;background:rgba(255,122,26,.05)}
.key-card{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:40px;background:#24242b;border:1px dashed #777;border-radius:4px;color:#b9b9c0;font:800 15px/1 var(--f-ui)}
.card--compact .card__actions{grid-template-columns:1.25fr 1fr auto}

/* v5 Phase G: collapsed route planner — compact toggle bar over an expandable region */
.route-toggle{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:0 16px;background:var(--filter);border:2px solid var(--line-strong);border-radius:6px;color:var(--cream);font:800 18px/1 var(--f-ui);letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.route-toggle:hover{border-color:var(--cream)}
.route-toggle__title{margin-right:auto}
.route-toggle__suffix{color:var(--mist);text-transform:none;letter-spacing:0}
.route-toggle__hint{font-size:13px;color:var(--lime);text-transform:none;letter-spacing:0}
.route-region{margin-top:14px}

/* Compact header: retain the complete banner without stretching or cropping. */
.hf-header__sign{width:auto;max-width:100%;height:auto;max-height:150px;margin-inline:auto;object-fit:contain}
.hf-header__copy{padding:10px 14px 12px}
.hf-header__actions{margin-top:8px}
@media(max-width:600px){
 .hf-header__sign{max-height:115px}
}
@media(min-width:1024px){
 .hf-header{height:145px;flex:0 0 145px}
 .hf-header__row{gap:22px;padding-right:24px}
 .hf-header__title{height:100%;max-width:48%;display:flex;align-items:center}
 .hf-header__sign{width:auto;height:auto;max-height:145px;object-fit:contain;mask-image:none}
 .hf-header__copy{padding:0;flex:1;min-width:0}
 .hf-lede{font-size:16px;line-height:1.35}
 .hf-header__actions{margin-top:10px}
 .hf-header__actions .btn{min-height:40px;font-size:16px}
}

/* v5 Release 3 increment 2: approved host photos in the listing peek */
.photo-lightbox{position:fixed;inset:0;z-index:1200;background:rgba(11,9,16,.92);display:grid;place-items:center;padding:24px;cursor:zoom-out}
.photo-lightbox[hidden]{display:none}
.photo-lightbox img{max-width:min(92vw,900px);max-height:88vh;border:3px solid var(--lime);border-radius:8px;cursor:default}
.photo-lightbox__close{position:absolute;top:14px;right:14px;width:44px;height:44px;border:2px solid var(--cream);border-radius:4px;background:var(--night);color:var(--cream);font-size:22px;cursor:pointer}

/* v5 Release 3 increment 3: host update panel for /?update=TOKEN arrivals */
body.host-panel-open{overflow:hidden}
.host-panel{position:fixed;inset:0;z-index:1100;background:var(--night);overflow-y:auto;padding:24px 16px calc(24px + env(safe-area-inset-bottom))}
.host-panel__card{max-width:640px;margin:0 auto;background:var(--panel);border:2px solid var(--violet);border-radius:6px;padding:24px 20px;color:var(--cream)}
.host-panel__card h2{font:800 26px var(--f-ui);text-transform:uppercase;margin:0 0 8px}
.host-panel__listing{color:var(--mist);margin:0 0 16px}
.host-panel__section{border-top:1.5px solid #2e2244;padding-top:16px;margin-top:16px}
.host-panel__section h3{font:800 18px var(--f-ui);text-transform:uppercase;margin:0 0 8px}
.host-panel__card label{display:block;font:700 14px var(--f-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--label);margin:14px 0 4px}
.host-panel__card input[type="text"],.host-panel__card input[type="email"],.host-panel__card input:not([type]),.host-panel__card textarea{width:100%;min-height:48px;padding:8px 12px;background:var(--cream);color:var(--night);border:2px solid var(--lime);border-radius:4px;font:400 16px var(--f-body)}
.host-panel__card textarea{min-height:110px;resize:vertical}
.host-panel__card input[type="file"]{margin:8px 0}
.host-panel__card .btn{margin-top:12px;min-height:48px}
.host-panel__status{min-height:22px;margin:10px 0 0;color:var(--lime)}
.host-photo-preview{margin-top:12px}.host-photo-preview img,.host-current-photos img{display:block;width:100%;max-height:280px;object-fit:contain;background:#0e0b13;border:1px solid var(--violet)}.host-current-photos{display:grid;gap:12px;margin-top:16px}.host-current-photos figure{margin:0}.host-current-photos .btn{display:block}

/* v6 Phase A (Direction 1A): design tokens — variable definitions only;
   component restyle lands in later phases. */
:root{
  --bg:#0B0910;
  --card:#15101C;
  --panel:#1A1322;
  --band:#120D18;
  --line:#2A2233;
  --line-2:#3A2F45;
  --text:#F6EBD3;
  --text-2:#CFC4B0;
  --text-3:#A89DB4;
  --orange:#FF7A1A;
  --lime:#A6E22E;
  --purple:#B48CFF;
  --purple-deep:#7B3FE4;
  --teal:#3FD0C0;
  --sat-tint:#1E1430;
  --allweek-bg:#0E1C1B;
  --allweek-line:#1F3B39;
  --err:#FF9A5A;
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --space-8:32px;
  --space-10:40px;
  --space-12:48px;
  --radius-badge:4px;
  --radius-control:6px;
  --radius-card:8px;
  --radius-modal:10px;
  --shadow-modal:0 30px 80px rgba(0,0,0,.7);
  --shadow-dropdown:0 16px 40px rgba(0,0,0,.6);
  --shadow-popup:0 12px 32px rgba(0,0,0,.6);
  --f-display:'Rubik Dirt',cursive;
  --f-cond:'Barlow Condensed',sans-serif;
  --f-body:'Barlow',sans-serif;
}

/* v6 Phase A: 1A banner — responsive art, edge to edge, high priority. */
.hf-header.banner{padding:0;background:var(--bg)}
.banner__title{margin:0;line-height:0}
.banner__frame{display:block;width:100%;aspect-ratio:5.5/1;overflow:hidden}
.banner__img{width:100%;height:100%;object-fit:cover;object-position:center 60%;display:block}
@media(max-width:767px){
  .banner__frame{aspect-ratio:4.2/1}
  .banner__img{object-position:center 52%}
}


/* v6 Phase B (Direction 1A): global chrome — intro strip, nav row (tabs +
   search), dropdown filter row, segmented List/Map toggle. Appended after
   existing rules; new classes only, plus later equal-specificity redeclarations
   of #displaysTab/#treatStopsTab/#eventsTab/.filterbar states. */

/* ---- Intro strip (spec 6.2): band background, one paragraph, no buttons. */
.intro-strip{background:var(--band);padding:14px var(--space-10)}
.intro-strip__copy{max-width:1200px;margin:0 auto;font:400 17px/1.5 var(--f-body);color:var(--text-2)}

/* ---- Filterbar becomes a vertical chrome stack (nav row + filter row). */
.filterbar{display:flex;flex-direction:column;gap:0;overflow:visible;padding:0;border-bottom:1.5px solid var(--line)}
.filterbar .nav-row{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-2) var(--space-10) 0}
.filterbar .chrome-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-4) var(--space-10)}
.filterbar .chrome-row .filters{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--space-2);width:auto}
.chrome-row__right{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}
.chrome-status{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-10) 10px}
.chrome-status:has(#locStatus:empty){padding:0}
.chrome-status .locbar__status{width:auto;flex-basis:auto;margin:0;font:500 13px/1.4 var(--f-body);letter-spacing:0;color:var(--text-3)}

/* ---- Tabs in the nav row (spec 6.3): text-3 inactive, 4px accent underline. */
.filterbar .tabs{display:flex;gap:2px;border:0;border-radius:0;overflow:visible;margin:0}
.filterbar .tabs button,.filterbar .tabs a.site-tab{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 var(--space-3);background:transparent;border:0;color:var(--text-3);font:600 15px var(--f-body);letter-spacing:0;text-transform:none;text-decoration:none;cursor:pointer}
.filterbar .tabs button+button{border-left:0}
.filterbar .tabs .tabs__badge{font-size:13px;min-width:22px;height:22px}
#displaysTab[aria-selected="true"]{background:transparent;color:var(--text);box-shadow:inset 0 -4px 0 0 var(--orange)}
#treatStopsTab[aria-selected="true"]{background:transparent;color:var(--text);box-shadow:inset 0 -4px 0 0 var(--lime)}
#eventsTab[aria-selected="true"]{background:transparent;color:var(--text);box-shadow:inset 0 -4px 0 0 var(--purple)}

/* ---- Search cluster (spec 6.3): 260px input, Within dropdown, orange
   Search, purple location text button. */
.filterbar .nav-search{display:flex;align-items:center;gap:var(--space-2);flex-wrap:nowrap}
.nav-search .locbar__zip{display:flex;align-items:center;gap:var(--space-2)}
.nav-search .locbar__input{width:260px;min-height:44px;background:var(--card);color:var(--text);border:2px solid var(--line-2);border-radius:var(--radius-control);font:600 15px var(--f-body)}
.nav-search .locbar__input::placeholder{color:var(--text-3)}
.nav-search .locbar__input:focus{border-color:var(--orange)}
.nav-search .locbar__go{min-height:44px;padding:0 var(--space-4);background:var(--orange);color:#0B0910;border:2px solid var(--orange);border-radius:var(--radius-control);font:700 15px var(--f-cond);letter-spacing:.06em;text-transform:uppercase}
.nav-search .locbar__locate{min-height:44px;padding:0 var(--space-3);background:transparent;color:var(--purple);border:0;font:600 15px var(--f-body)}

/* ---- "Within 25 mi" dropdown (spec 6.3). The radiogroup and its
   data-radius buttons keep their legacy classes/attributes. */
.within-dd{position:relative}
.within-dd>.locbar__within{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 var(--space-3);background:var(--card);border:2px solid var(--line-2);border-radius:var(--radius-control);color:var(--text-3);font:600 15px var(--f-body);cursor:pointer;list-style:none}
.within-dd>.locbar__within::-webkit-details-marker{display:none}
.within-dd .within-dd__value{color:var(--text)}
.within-dd__caret{color:var(--orange)}
.within-dd__menu{position:absolute;top:calc(100% + 4px);right:0;z-index:960;width:270px;background:var(--panel);border:2px solid var(--line-2);border-radius:var(--radius-card);box-shadow:var(--shadow-dropdown);padding:var(--space-2)}
.within-dd__head{display:none;align-items:center;padding:2px var(--space-3) var(--space-2)}
.within-dd__handle{display:none;width:44px;height:4px;border-radius:3px;background:var(--line-2)}
.within-dd__title{margin:0;font:400 20px var(--f-display);color:var(--text)}
.within-dd__menu .locbar__radius{flex-direction:column;gap:0;min-width:0;border:0;border-radius:0;overflow:visible}
.within-dd__menu .locbar__radius button{width:100%;min-height:44px;padding:0 var(--space-3);background:transparent;color:var(--text);border:0;border-radius:var(--radius-control);text-align:left;font:600 15px var(--f-body)}
.within-dd__menu .locbar__radius button+button{border-left:0}
.within-dd__menu .locbar__radius button:hover{background:var(--card)}
.within-dd__menu .locbar__radius button[aria-checked="true"]{background:#22140A;color:var(--orange)}

/* ---- Share button in the filter row. */
.chrome-share{min-height:40px;padding:0 var(--space-3);background:transparent;color:var(--text-2);border:2px solid var(--line-2);border-radius:var(--radius-control);font:600 14px var(--f-body)}

/* ---- Dropdown component (spec 8.2). Closed: 40px tall in the desktop
   filter row, 2px line-2 border, label text-3 + value text + orange caret.
   Active filter: orange border and #22140A background. */
.dd{position:relative}
.dd__btn{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 var(--space-3);background:var(--card);border:2px solid var(--line-2);border-radius:var(--radius-control);color:var(--text);font:600 15px var(--f-body);cursor:pointer;list-style:none}
.dd__btn::-webkit-details-marker{display:none}
.dd__label{color:var(--text-3)}
.dd__caret{color:var(--orange)}
.dd--active>.dd__btn{border-color:var(--orange);background:#22140A}
.dd__menu{position:absolute;top:calc(100% + 4px);left:0;z-index:960;width:270px;background:var(--panel);border:2px solid var(--line-2);border-radius:var(--radius-card);box-shadow:var(--shadow-dropdown);padding:var(--space-2)}
.dd__sheet-head{display:none;align-items:center;gap:var(--space-2);padding:2px var(--space-3) var(--space-2)}
.dd__handle{display:none;width:44px;height:4px;border-radius:3px;background:var(--line-2)}
.dd__title{margin:0;font:400 20px var(--f-display);color:var(--text)}
.dd__clear-all{margin-left:auto;min-height:36px;padding:0 var(--space-2);background:none;border:0;color:var(--orange);font:600 14px var(--f-body);cursor:pointer}
.dd__group{margin:0;padding:0;border:0;min-width:0}
.dd__group legend{padding:0}
.dd__row{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-control);color:var(--text);font:500 15px var(--f-body);cursor:pointer}
.dd__row:hover{background:var(--card)}
.dd__row input{width:18px;height:18px;accent-color:var(--orange)}
.dd__daterow{display:flex;align-items:center;gap:8px;padding:4px var(--space-3) 8px;color:var(--text-3);font:500 14px var(--f-body)}
.dd__date{min-height:40px;background:var(--card);color:var(--text);border:2px solid var(--line-2);border-radius:var(--radius-control);padding:0 8px;font:500 15px var(--f-body)}
.dd__foot{display:flex;gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-3)}
.dd__foot .btn{flex:1;min-height:44px;justify-content:center}
.btn--primary{background:var(--orange);color:#0B0910;border:2px solid var(--orange);border-radius:var(--radius-control);font:700 15px var(--f-cond);letter-spacing:.06em;text-transform:uppercase}


/* ---- Mobile (spec 6 breakpoints): dropdowns open as bottom sheets with a
   handle, Rubik Dirt title, Clear all, and a sticky Cancel + Show N footer. */
@media(max-width:767px){
  .intro-strip{padding:14px var(--space-4)}
  .filterbar .nav-row{flex-direction:column;align-items:stretch;gap:var(--space-2);padding:var(--space-2) 12px 0}
  .filterbar .tabs{width:100%;gap:0}
  .filterbar .tabs button,.filterbar .tabs a.site-tab{flex:1 1 0;justify-content:center;min-width:0;padding:0 var(--space-1);font-size:14px;white-space:nowrap}
  .filterbar .nav-search{flex-wrap:wrap}
  .nav-search .locbar__zip{flex:1 1 100%}
  .nav-search .locbar__input{width:100%;flex:1}
  .filterbar .chrome-row{gap:var(--space-2);padding:var(--space-3) 12px}
  .chrome-row__right{margin-left:auto}
  .chrome-status{padding:0 12px 8px}
  .dd__btn,.dd--active>.dd__btn,.chrome-share{min-height:44px}
  .dd[open]>.dd__menu{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;max-height:80dvh;overflow-y:auto;border-radius:var(--radius-card) var(--radius-card) 0 0;padding:8px 12px calc(12px + env(safe-area-inset-bottom));z-index:1200}
  .dd__sheet-head{display:flex}
  .dd__handle{display:block;margin:4px auto 8px}
  .dd__foot{position:sticky;bottom:0;background:var(--panel);padding:var(--space-2) 0 calc(var(--space-2) + env(safe-area-inset-bottom))}
  .within-dd[open]>.within-dd__menu{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;border-radius:var(--radius-card) var(--radius-card) 0 0;padding:8px 12px calc(12px + env(safe-area-inset-bottom));z-index:1200}
  .within-dd__head{display:flex}
  .within-dd__handle{display:block;margin:4px auto 8px}
}


/* v6 Phase C (Direction 1A): listing cards (8.4), photo/flyer flips, event
   cards (8.5). Appended after existing rules; equal-specificity redeclarations
   win by cascade order. */

/* ---- Card base: 1px line border (lime on route), 8px radius, 20/16 padding. */
.card{gap:14px;padding:20px;border:1px solid var(--line)}
.card--compact{padding:16px;gap:12px}
@media(min-width:768px){.card--compact{padding:20px}}
.card--on-route{border-color:var(--lime)}
.card--on-route:hover,.card--on-route.is-linked{border-color:var(--lime)}
.card--on-route .pin__badge{display:block}

/* ---- Head: pin 32px + name (Barlow Condensed 23/700, title case). */
.card__name{display:inline;font:700 23px/1.1 var(--f-cond);text-transform:none;color:var(--text);letter-spacing:0}
.card__namebtn{all:unset;cursor:pointer;color:inherit;font:inherit;text-wrap:pretty}
.card__namebtn:hover{color:var(--orange)}
.card__photo-pill{display:inline-flex;align-items:center;min-height:44px;margin:2px 0 0 8px;padding:0 14px;border:1px solid var(--orange);border-radius:999px;background:transparent;color:var(--orange);font:700 12px var(--f-cond);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;vertical-align:2px}
@media(max-width:767px){.card__name{font-size:20px}}

/* ---- Town · distance + OPEN TONIGHT. */
.card__subline{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;margin-top:4px}
.card__subline .card__town{font:500 15px/1.3 var(--f-body);color:var(--text-2);letter-spacing:0;text-transform:none}
.card__subline .card__distance{font:500 15px/1.3 var(--f-body);color:var(--text-2)}
.card__subline .card__town+.card__distance::before{content:'· '}
.card__open-tonight{display:inline-flex;align-items:center;min-height:0;padding:0;background:none;color:var(--lime);font:700 13px/1.3 var(--f-cond);letter-spacing:.08em;text-transform:uppercase}

/* ---- Address as the purple directions link; hours; scare level (desktop). */
.card__address{display:inline-flex;align-items:center;gap:4px;min-height:44px;color:var(--purple);font:600 15px/1.35 var(--f-body);text-decoration:none;overflow-wrap:anywhere}
.card__address:hover{color:var(--text)}
.card__hours{margin:0;color:var(--text);font:400 15px/1.4 var(--f-body)}
.card__scare-row{margin:0}
.card__scare{font-size:13px;color:var(--text-3)}
@media(max-width:767px){.card__scare-row{display:none}}

/* ---- Feature/type tags: labeled text pills, 28px, fully rounded. */
.card__tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.card__tags .chip,.card__tags .chips .chip{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:0 10px;background:transparent;border:1px solid var(--line-2);border-radius:999px;color:var(--text-2);font:500 13px/1 var(--f-body)}
.card__tags .feature-chip svg{width:13px;height:13px}

/* ---- Actions: full-width route button + 44px square favorite. */
.card--compact .card__actions{grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:0;align-items:stretch}
.card__route-btn{min-height:48px;justify-content:center;background:var(--lime);color:#0B0910;border:2px solid var(--lime);border-radius:var(--radius-control);font:700 15px var(--f-cond);letter-spacing:.05em;text-transform:uppercase}
.card__route-btn[aria-pressed="true"]{background:#F6EBD3;border-color:#F6EBD3;color:#0B0910}

/* ---- Meta row (13px, 1px divider): Host notes + rating left, Report/Share right. */
.card__meta{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--line);font:500 13px var(--f-body);color:var(--text-3)}
.card__meta-left{display:flex;align-items:center;gap:16px;flex-wrap:wrap;min-width:0}
.card__meta-right{display:flex;align-items:center;gap:8px;margin-left:auto}
.card__metalink{min-height:44px;display:inline-flex;align-items:center;padding:0 4px;background:none;border:0;color:var(--text-3);font:500 13px var(--f-body);cursor:pointer;text-decoration:none}
.card__metalink:hover{color:var(--purple)}
.card--compact .card__notes{display:block;margin:0;padding:0;background:transparent;font-size:13px;white-space:normal}
.card__notes summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;min-height:44px;color:var(--purple);font:600 13px var(--f-body)}
.card__notes summary::-webkit-details-marker{display:none}
.card__notes div{padding:10px 12px;white-space:pre-line;font-size:13px;line-height:1.5;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-control);color:var(--text-2);margin-top:2px}
.card-rating{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0;background:none;border:0;color:var(--text-3);font:500 13px var(--f-body);cursor:pointer}
.card-rating:hover{color:var(--purple)}
.card-rating__stars{color:var(--orange);letter-spacing:1px;font-size:13px}
.card-rating__text{white-space:nowrap}

/* ---- Photo / flyer flip (8.4 K2, 8.5 K2c). */
.card--flip{padding:0;cursor:default}
.card--flip .card-face{padding:16px}
@media(min-width:768px){.card--flip .card-face{padding:20px}}
.card-flip{perspective:1400px}
.card-flip__inner{display:grid;transition:transform .6s cubic-bezier(.3,.7,.3,1);transform-style:preserve-3d}
.card-face{grid-area:1/1;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.card-face--back{transform:rotateY(180deg);display:flex;flex-direction:column;gap:0;padding:0!important;overflow:hidden}
.card--flip.is-flipped .card-flip__inner{transform:rotateY(180deg)}
.card__photo{flex:1;width:100%;min-height:240px;object-fit:contain;background:#0E0B13;display:block}
.card__flyer{flex:1;width:100%;min-height:0;aspect-ratio:8.5/11;object-fit:contain;background:var(--band);display:block}
.card__back-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--card);border-top:1px solid var(--line)}
.card__back-meta{display:flex;flex-direction:column;gap:2px;min-width:0}
.card__back-meta strong{font:700 17px/1.2 var(--f-cond);color:var(--text)}
.card__back-meta span{font:500 13px/1.3 var(--f-body);color:var(--text-2)}
.card__details-btn{min-height:44px;padding:0 16px;background:#F6EBD3;color:#0B0910;border:0;border-radius:var(--radius-control);font:700 14px var(--f-cond);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;flex:none}
@media(prefers-reduced-motion:reduce){
 .card-flip__inner{transition:opacity 150ms ease;transform:none!important}
 .card-face{transition:opacity 150ms ease}
 .card-face--back{opacity:0}
 .card--flip.is-flipped .card-face--front{opacity:0}
 .card--flip.is-flipped .card-face--back{opacity:1}
}

/* ---- Event card (8.5): 4px type-color top border, type pill, 19px date/time. */
.event-card{display:flex;flex-direction:column;gap:10px;padding:16px;border-top:4px solid var(--event-color,var(--teal));border-radius:var(--radius-card);cursor:default}
@media(min-width:768px){.event-card{padding:20px}}
.event-card__head{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}
.event-card__name{margin:0;flex:1;min-width:0;font:700 21px/1.15 var(--f-cond);color:var(--text)}
@media(max-width:767px){.event-card__name{font-size:19px}}
.event-type-pill{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;background:var(--event-color,var(--teal));color:#0B0910;font:700 12px var(--f-cond);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.event-card__datetime{margin:0;font:700 19px/1.25 var(--f-body);color:var(--text)}
.event-card__details{margin:0;font:400 14px/1.5 var(--f-body);color:var(--text-2)}
.event-card__url{color:var(--purple);text-decoration:none}
.card__actions--event{grid-template-columns:minmax(0,1fr)}
.event-card__meta{display:flex;justify-content:flex-end;gap:8px;padding-top:10px;border-top:1px solid var(--line)}

/* ---- 1A Phase D: route panel, numbered timeline, mobile bar + route sheet (spec 8.6/9.5). ---- */
.route-wrap{background:var(--panel);border:0;border-top:4px solid var(--orange);border-radius:8px;padding:24px 28px}
.route-toggle{background:transparent;border:0;padding:0;min-height:44px;cursor:pointer;color:var(--cream)}
.route-toggle__title{margin-right:auto;font:600 26px/1.1 var(--f-cond);letter-spacing:.06em;text-transform:uppercase}
.route-toggle__count{font:400 15px/1.2 var(--f-body);color:var(--text-3)}
.route-toggle__hint{font:600 15px/1 var(--f-cond);letter-spacing:.06em;text-transform:uppercase;color:var(--purple)}
.route-region{margin-top:18px}
.route{display:flex;flex-direction:column;gap:20px;padding:0;background:transparent;border:0;margin:0}
.route__linkbtn{background:none;border:0;padding:0;font:600 15px/1.2 var(--f-body);color:var(--purple);cursor:pointer;text-decoration:none}
.route__linkbtn:disabled{opacity:.45;cursor:default}
.route__start-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.route__start-label{font:400 15px/1.3 var(--f-body);color:var(--text-3)}
.route__start-loc{font:600 15px/1.3 var(--f-body)}
.route__change{display:inline-flex;align-items:center;min-height:44px;padding:0 4px}
.route__start-edit{margin-top:12px;display:flex;flex-direction:column;gap:10px}
.route__start-row{display:flex;gap:8px}
.route__start-row .route__input{flex:1;min-width:0}
.route__locate{width:52px;min-height:48px;flex:none;background:var(--night);color:var(--cream);border:2px solid var(--line-2);border-radius:var(--radius-control);font-size:20px;line-height:1;cursor:pointer}
.route__locate:hover{border-color:var(--orange)}
.route__input{background:var(--night);color:var(--cream);border:2px solid var(--line-2);border-radius:var(--radius-control);font:400 16px var(--f-body);min-height:48px;padding:0 14px}
.route__input:focus{border-color:var(--orange)}
.route .seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.route .seg button{min-height:44px;border-radius:999px;border:2px solid var(--line-2);background:transparent;color:var(--cream);font:600 15px var(--f-cond);letter-spacing:.05em;text-transform:uppercase;cursor:pointer}
.route .seg button+button{border-left:2px solid var(--line-2);border-radius:999px}
.route .seg button[aria-checked="true"]{background:var(--orange);border-color:var(--orange);color:#0B0910}
.route .current-note{display:flex;align-items:center;gap:8px;color:var(--text-3);font-size:14px}
.route .current-dot{width:10px;height:10px;border-radius:50%;background:var(--orange);box-shadow:0 0 8px var(--orange)}
.route__timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.route-stop{position:relative;display:flex;align-items:center;gap:12px;padding:10px 0;cursor:grab}
.route-stop::after{content:"";position:absolute;left:15px;top:44px;bottom:-12px;width:2px;background:var(--line-2)}
.route-stop:last-child::after{display:none}
.route-stop.is-dragover{outline:2px dashed var(--orange);outline-offset:2px;border-radius:var(--radius-control)}
.route-stop__num{position:relative;z-index:1;width:32px;height:32px;border-radius:50%;background:var(--orange);color:#0B0910;display:grid;place-items:center;font:800 17px/1 var(--f-cond);flex:none}
.route-stop__meta{flex:1;min-width:0}
.route-stop__meta strong{display:block;font:600 21px/1.2 var(--f-body);color:var(--cream)}
.route-stop__meta small{font:400 15px/1.35 var(--f-body);color:var(--text-3)}
.route-stop__controls{display:flex;gap:2px;flex:none}
.route-stop__controls button{width:44px;height:44px;background:none;border:0;border-radius:var(--radius-control);color:var(--text-3);font-size:20px;line-height:1;cursor:pointer}
.route-stop__controls button:hover:not(:disabled){color:var(--orange)}
.route-stop__controls button:disabled{opacity:.3;cursor:default}
.route-stop__remove{flex:none;display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0 6px;color:var(--text-3)}
.route-stop__remove:hover{color:var(--orange)}
.route-stop__remove-x{display:none;font-size:24px;line-height:1}
.route-stop__grip{display:none;width:22px;height:44px;flex:none;cursor:grab;background-image:radial-gradient(circle,var(--text-3) 1.4px,transparent 1.5px);background-size:8px 12px;background-position:2px 4px}
.route-stop__icon{display:none;width:30px;height:35px;flex:none;object-fit:contain}
.route__foot{border-top:1px solid var(--line-2);padding-top:16px;display:flex;flex-direction:column;gap:12px}
.route__status{margin:0;font-size:14px;color:var(--lime)}
.route__foot-helper{display:none;margin:0;font-size:14px;color:var(--text-3)}
.route__foot-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.route__directions{min-height:52px}
.route__directions[aria-disabled="true"]{background:var(--disabled-bg);color:var(--disabled-fg);border-color:var(--disabled-bg)}
.route__links{display:flex;align-items:center;gap:18px}
@media(max-width:1023px){
 .route-wrap{margin-top:0;padding:20px 16px}
 .mobile-route-bar:not(.is-hidden){min-height:74px;border-top:2px solid var(--orange);background:var(--panel);padding:10px 14px calc(10px + env(safe-area-inset-bottom));align-items:center}
 .mobile-route-bar>div{display:flex;align-items:baseline;gap:6px;min-width:0}
 .mobile-route-bar>div span::before{content:"· "}
 .mobile-route-bar strong{font:600 20px/1.1 var(--f-cond);letter-spacing:.06em;text-transform:uppercase;color:var(--cream)}
 .mobile-route-bar span{font-size:15px;color:var(--text-3)}
 .mobile-route-bar .btn{min-height:48px;background:var(--orange);color:#0B0910;border:2px solid var(--orange);border-radius:var(--radius-control);font:700 15px/1 var(--f-cond);letter-spacing:.06em;text-transform:uppercase}
 .mobile-route-bar .btn:disabled{background:var(--disabled-bg);color:var(--disabled-fg);border-color:var(--disabled-bg)}
}
@media(min-width:1024px){
 .route-stop__grip,.route-stop__icon{display:none!important}
}

/* ---- 1A Phase E: events page — week board, day columns, mobile day list (spec 7.3). ---- */
.events-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.events-title{font:700 32px/1.1 var(--f-cond);margin:0;color:var(--cream)}
.events-head__actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.events-ics{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0;background:none;border:0;color:var(--purple);font:600 15px/1.2 var(--f-body);cursor:pointer}
.events-ics img{width:18px;height:18px}
.events-submit{min-height:40px;font-size:14px}
.ongoing-band{display:flex;flex-direction:column;gap:8px;margin:0 0 12px;padding:12px;border:1.5px solid var(--allweek-line);border-left:4px solid var(--teal);border-radius:8px;background:var(--allweek-bg)}
.ongoing-band__label{font:800 13px/1.2 var(--f-cond);letter-spacing:.1em;text-transform:uppercase;color:var(--teal)}
.ongoing-band__items{display:flex;flex-direction:column;gap:8px}
.ongoing-item{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 12px;background:rgba(63,208,192,.05);border:1px solid var(--allweek-line);border-radius:6px}
.ongoing-item__info{display:flex;flex-direction:column;gap:3px;min-width:0}
.ongoing-item__name{background:none;border:0;padding:0;text-align:left;font:700 17px/1.15 var(--f-cond);letter-spacing:.04em;text-transform:uppercase;color:var(--cream);cursor:pointer}
.ongoing-item__name:hover{color:var(--teal)}
.ongoing-item__meta{font-size:14px;color:var(--text-3)}
.ongoing-item__route{min-height:44px;padding:0 16px;background:var(--lime);color:#0B0910;border:2px solid var(--lime);border-radius:var(--radius-control);font:700 14px/1 var(--f-cond);letter-spacing:.05em;text-transform:uppercase;cursor:pointer}
.ongoing-item__route[aria-pressed="true"]{background:var(--cream);border-color:var(--cream);color:#0B0910}
.events-view{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:12px;margin:14px 0 10px}
.events-view__seg{display:inline-grid;grid-template-columns:1fr 1fr;gap:0;padding:3px;border:2px solid var(--line-2);border-radius:999px}
.events-view__seg button{min-height:40px;padding:0 18px;border:0;border-radius:999px;background:transparent;color:var(--text-3);font:600 15px/1 var(--f-cond);letter-spacing:.05em;text-transform:uppercase;cursor:pointer}
.events-view__seg button[aria-checked="true"]{background:var(--cream);color:#0B0910}
.events-view__helper{margin:0 0 0 auto;font-size:13px;color:var(--text-3)}
.event-week{display:none;gap:8px}
.event-week[data-view="week"]{grid-template-columns:repeat(7,minmax(0,1fr))}
.event-week[data-view="3days"]{grid-template-columns:repeat(3,minmax(240px,1fr))}
.event-col{display:flex;flex-direction:column;gap:8px;min-height:300px;padding:10px;background:var(--card);border:1.5px solid var(--line);border-radius:8px;cursor:pointer;text-align:left}
.event-col:hover{border-color:var(--line-strong)}
.event-col.is-selected{border-color:var(--orange);box-shadow:inset 0 0 0 1px var(--orange)}
.event-col--halloween{background:var(--sat-tint);border-color:var(--purple)}
.event-col__head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.event-col__wd{font:800 13px/1 var(--f-cond);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}
.event-col__dom{font:800 26px/1.1 var(--f-cond);color:var(--cream)}
.event-col__flag{flex-basis:100%;font:700 11px/1.3 var(--f-cond);letter-spacing:.08em;text-transform:uppercase;color:var(--purple)}
.event-col__body{display:flex;flex-direction:column;gap:6px}
.event-col__empty{font-size:13px;color:var(--text-3)}
.event-chip{display:flex;flex-direction:column;gap:2px;padding:8px 10px 10px;background:var(--night);border:1px solid var(--line);border-top:4px solid var(--event-color,var(--teal));border-radius:6px}
.event-chip__time{font:700 13px/1.2 var(--f-cond);letter-spacing:.04em;color:var(--text)}
.event-chip__name{font:600 14px/1.25 var(--f-body);color:var(--cream)}
.event-chip__meta{font-size:12px;color:var(--text-3)}
.events-mobile-list{display:block}
.events-column-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}
.events-day-heading{font:700 26px/1.1 var(--f-cond);letter-spacing:.06em;text-transform:uppercase;margin:0;color:var(--cream)}
.events-head-count{font-size:15px;color:var(--text-3)}
.mday{margin-bottom:16px}
.mday__head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font:700 20px/1.2 var(--f-cond);letter-spacing:.06em;text-transform:uppercase;margin:0 0 8px;color:var(--cream)}
.mday__flag{font-size:12px;letter-spacing:.08em;color:var(--purple)}
.mday__empty{margin:0;font-size:14px;color:var(--text-3)}
.mday .card{margin-bottom:10px}
@media(min-width:960px){
 .event-week{display:grid}
 .events-mobile-list{display:none}
}
@media(max-width:959px){
 html[data-category="events"] .list-column{display:none}
}
/* Hotfix 2026-10-15 (spec 6, 768–1199 band): the events page is a single
   column — title row, open-all-week band, week grid, legend, then the route
   panel — with the event cards stacked BELOW the week at full width. The
   week grid gets 7 equal columns with a 120px minimum so it can never
   sliver; below 960px usable the mobile day list carries the page (the
   cards column stays hidden as before). The old 1024–1199 rule left the
   cards column in an implicit grid track, crushing the week to a sliver.
   At ≥1200 the D1 anatomy (Issue 3 below) gives events a proper two-column
   layout — week in the wide LEFT column, event cards in the 440px right
   column — and the Phase H sticky list-scroll deliberately excludes the
   events category so that cards column keeps its natural height. */
@media(min-width:960px) and (max-width:1199px){
 html[data-category="events"] .page-grid{grid-template-columns:minmax(0,1fr)}
 html[data-category="events"] .map-column{grid-column:1;grid-row:auto}
 html[data-category="events"] .list-column{display:block;grid-column:1;grid-row:auto;position:static;height:auto;max-height:none;overflow:visible;width:100%}
 html[data-category="events"] .event-week{overflow-x:auto}
 html[data-category="events"] .event-week[data-view="week"]{grid-template-columns:repeat(7,minmax(120px,1fr))}
}
@media(min-width:1200px){
 html[data-category="events"] .page-grid{grid-template-columns:minmax(0,1fr) 440px}
 html[data-category="events"] .map-column{grid-column:1;grid-row:1}
 html[data-category="events"] .list-column{grid-column:2;grid-row:1/span 2}
}
/* ---- 1A Phase F: map key, distances note, K4 popup, treat empty state, map view (spec 8.7/7.1/7.2/9.4). ---- */
.map-key{position:absolute;left:12px;bottom:12px;z-index:650;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.map-key__toggle{display:none;align-items:center;gap:6px;min-height:44px;padding:0 16px;background:rgba(11,9,16,.94);border:1px solid var(--line-2);border-radius:22px;color:var(--cream);font:600 14px/1 var(--f-body);cursor:pointer}
.map-key__toggle span{transition:transform .15s ease}
.map-key__panel{background:rgba(11,9,16,.94);border:1px solid var(--line-2);border-radius:8px;padding:12px 14px}
.map-key__title{font:800 13px/1 var(--f-cond);letter-spacing:.1em;text-transform:uppercase;margin:0 0 10px;color:var(--cream)}
.map-key__rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.map-key__rows li{display:flex;align-items:center;gap:10px;font:500 15px/1.2 var(--f-body);color:var(--text)}
.map-key__rows img{width:24px;height:auto;flex:none}
.map-note{position:absolute;right:12px;bottom:12px;z-index:640;font:400 13px/1.2 var(--f-body);color:var(--text-3);margin:0}
@media(max-width:959px){
 .map-key__toggle{display:inline-flex}
 .map-key__toggle span[aria-hidden="true"]{display:inline-block}
 html[data-mapkey] .map-key__panel{display:block}
 html[data-mapkey] .map-key__toggle span{transform:rotate(180deg)}
 .map-key__panel{display:none}
 .map-note{bottom:calc(12px + env(safe-area-inset-bottom))}
}
/* K4 popup anatomy (desktop) */
.map-popup{position:relative;width:280px;background:var(--card);border:1.5px solid var(--line-2);border-radius:10px;overflow:hidden;box-shadow:0 12px 40px rgba(0,0,0,.6)}
.map-popup__photo{height:auto;aspect-ratio:16/9;background:#0E0B13;overflow:hidden}
.map-popup__photo:empty{display:none}
.map-popup__photo img{width:100%;height:100%;object-fit:contain;object-position:center;image-orientation:from-image;display:block}
.map-popup__body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px}
.map-popup__name{font:700 20px/1.15 var(--f-cond);margin:0;color:var(--cream)}
.map-popup__meta{margin:0;font-size:14px;color:var(--text-3)}
.map-popup__add{width:100%}
.map-popup__close{position:absolute;top:8px;right:8px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(11,9,16,.72);color:var(--cream);font-size:20px;line-height:1;cursor:pointer;z-index:2}
.map-popup__close:hover{background:var(--night);color:var(--purple)}
/* Treat-stop empty state (spec 7.2, D2) */
.treat-empty{margin:0 0 14px;padding:18px 20px;background:var(--card);border:1.5px solid var(--line);border-top:4px solid var(--lime);border-radius:8px;display:flex;flex-direction:column;gap:10px}
.treat-empty__icon{width:40px;height:47px}
.treat-empty__title{font:700 20px/1.2 var(--f-cond);margin:0;color:var(--cream)}
.treat-empty__body{margin:0;font-size:15px;color:var(--text-3)}
.treat-empty__actions{display:flex;gap:10px;flex-wrap:wrap}
.treat-empty__actions .btn{min-height:44px}
html[data-fullmap] .map-key,html[data-fullmap] .map-note{display:none}
@media(max-width:959px){
 .map-popup{width:100%}
}
/* 1A Phase G: footer rebuild (spec 8.10/8.11), listing type picker (9.2/P1),
   alerts first-visit popup (9.1/P0), About community feature article (P6),
   and shared modal behavior (8.8). */
.footer-inner h2{font-size:24px}
.hf-footer .footer-inner .btn--route{min-height:52px}
.alerts-dialog{border-top-color:#a6e22e}
.type-options{display:grid;gap:10px}
.type-option{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border:2px solid var(--violet);border-radius:8px;background:var(--night);color:var(--cream);text-decoration:none}
.type-option:hover{border-color:var(--pumpkin);background:var(--chip)}
.type-option__name{font:800 22px/1.1 var(--f-ui);text-transform:uppercase}
.type-option__name::after{content:' ↗';color:var(--pumpkin)}
.type-option__desc{color:var(--mist);font-size:15px}
.about-article{margin-top:14px}
.about-kicker{font:700 14px/1.2 var(--f-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--pumpkin)}
.about-dek{color:var(--mist);font-size:17px;line-height:1.5}
.about-article blockquote{margin:20px 0;padding:16px 20px;border-left:4px solid var(--pumpkin);background:var(--chip);border-radius:0 6px 6px 0}
.about-article blockquote p{margin:0;font-size:18px}
.about-article blockquote cite{display:block;margin-top:8px;font:700 13px/1.2 var(--f-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--mist);font-style:normal}
.about-info{margin-top:24px;padding:16px 18px;border:1.5px solid var(--violet);border-radius:8px;background:var(--chip)}
.about-info h2{margin:0 0 8px}
.about-onthissite{margin:12px 0 0;font-size:14px}
.about-onthissite a{color:var(--lime)}
.about-social{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line-strong)}
.about-social__links{display:flex;align-items:center;gap:12px}
.about-social__links img{width:52px;height:52px;display:block}
.about-social__links span{color:var(--mist);font-size:14px}
.about-social__donate{color:var(--pumpkin);font-weight:700}
@media(max-width:600px){.footer-inner h2{font-size:21px}.hf-footer .footer-inner .btn--route{width:100%}}
/* ---- Hotfix 2026-10-15: live issues on the 1A redesign (commit 2f04e79) ---- */

/* Issue 3 (D1 split: cards left, map right at ≥1200px) is superseded by the
   single-scroll, map-first block at the end of this sheet. */

/* Issue 5 — banner: the ≥1024 chrome still imposed the retired header's
   fixed heights on .hf-header (145px/200px), but the banner art sizes
   itself by aspect ratio and is taller than that at every desktop width,
   so resizing clipped the graphic. Height now always comes from the
   frame's aspect ratio; overflow:hidden only guards (the frame defines
   the box, nothing inside can exceed it). The HAUNTFINDER wordmark sits
   at ~55% of the art height and never drifts at 768–1199 (that band
   crops horizontally only), so center 60% stays at every breakpoint. */
.hf-header.banner{height:auto;min-height:0;flex:0 0 auto;overflow:hidden}

/* ---- Phase H: continuous list + a11y/motion hardening. ---- */
/* .card__namebtn resets with all:unset (see the head block), which also wipes
   focus outlines — re-assert the 2px cream ring with priority over it. */
:focus-visible{outline:2px solid #F6EBD3!important;outline-offset:2px!important}
/* Honor reduced motion for every element, not only the transitions audited
   in earlier phases (.map-float-btn, .map-key__toggle span, and anything
   added later are all covered by the universal guard). */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* ---- Page-first subpages: shared shell for /submit.html and /about.html
   (plan step 1–2, 2026-10-15). Static-first: every page is complete with
   JavaScript disabled; page.js only adds route validation and nav state. */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--pumpkin);color:var(--night);padding:10px 16px;font-weight:700;z-index:10;border-radius:0 0 8px 0}
.skip-link:focus{left:0}
.subpage-head{border-bottom:1px solid var(--line-strong);padding:12px 18px}
.subpage-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 18px;max-width:860px;margin:0 auto}
.subpage-nav__home{font:700 18px/1.2 var(--f-ui);color:var(--cream);text-decoration:none}
.subpage-nav__home:hover{color:var(--pumpkin)}
.subpage-nav__links{display:flex;flex-wrap:wrap;gap:4px 14px}
.subpage-nav__links a{color:var(--mist);text-decoration:none;font-weight:600;padding:6px 2px;border-bottom:2px solid transparent}
.subpage-nav__links a:hover{color:var(--cream)}
.subpage-nav__links a[aria-current="page"]{color:var(--pumpkin);border-bottom-color:var(--pumpkin)}
.subpage-main{max-width:760px;margin:0 auto;padding:28px 18px 48px}
.subpage-main h1{margin:0 0 10px;font:400 34px/1.1 var(--f-display);color:var(--cream)}
.subpage-dek{color:var(--mist);font-size:17px;line-height:1.5;margin:0 0 22px}
.subpage-foot{border-top:1px solid var(--line-strong);padding:18px;text-align:center;color:var(--mist);font-size:14px}
.subpage-foot a{color:var(--mist)}
.subpage-foot a:hover{color:var(--cream)}
/* About page: standalone article styles (h1 title, h2 sections). */
.about-page .about-article h1{margin:14px 0 10px;font:400 30px/1.15 var(--f-display);text-transform:none;color:var(--cream)}
.about-page .about-article h2{margin:26px 0 8px;font:700 22px/1.2 var(--f-ui);color:var(--cream)}
.about-page .about-article p{margin:10px 0;line-height:1.6}
@media(max-width:600px){.subpage-main h1{font-size:28px}.subpage-nav{justify-content:flex-start}}

/* Listing page (page-first step 3): form controls outside the old dialogs. */
.listing-page .listing-meta{color:var(--pumpkin);font-weight:600;margin:0 0 4px}
.listing-jump{display:flex;flex-wrap:wrap;gap:8px 16px;margin:0 0 8px}
.listing-jump a{color:var(--mist);font-weight:600;padding:6px 0;border-bottom:2px solid transparent}.listing-jump a:hover{color:var(--pumpkin);border-bottom-color:var(--pumpkin)}
.listing-section{margin:28px 0 0;padding:22px 20px;border:2px solid var(--violet);border-top-width:4px;border-radius:10px;background:var(--panel);scroll-margin-top:16px}
.listing-section h2{margin:0 0 10px;font:800 26px/1.1 var(--f-ui);text-transform:uppercase}
.listing-section h3{font:800 22px var(--f-ui)}
.listing-page input:not([type=radio]),.listing-page textarea,.listing-page select{display:block;width:100%;box-sizing:border-box;margin:6px 0 18px;border:1px solid var(--line-strong);border-radius:4px;padding:12px;background:var(--night);color:var(--cream);font:inherit}
.listing-page textarea{resize:vertical;min-height:120px}
.listing-page .honeypot input{margin:0}
/* Listing page parity with the cards: category + type, hours, route, map preview. */
.listing-kind{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 12px}.listing-kind__types{display:contents}
.listing-kind__category{font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:12px;padding:4px 9px}
.listing-page .listing-hours{color:var(--cream);font-weight:600;margin:0 0 14px}
.listing-route{margin:0 0 14px}.listing-route .card__route-btn{display:inline-flex;align-items:center;padding:0 22px;width:auto;cursor:pointer}.listing-route p{margin:8px 0 0}
.listing-map{margin:14px 0 0}
.listing-map__canvas{height:220px;border:2px solid var(--violet);border-radius:10px;overflow:hidden;cursor:pointer;background:var(--night)}
.listing-map figcaption{margin-top:8px}.listing-map figcaption a{color:var(--pumpkin);font-weight:700}
@media(min-width:768px){.listing-map__canvas{height:280px}}

/* ---- Compact directory layout homepage (layout brief 2026-10-15) ----
   Results are the desktop priority: a normal document-flow card list sits left
   of a sticky, interactive map. Phone layouts retain the map-before-results
   order but keep the map deliberately short. Neither layout creates a second
   results scroll surface. */
.banner__frame{max-height:180px}
.intro-strip{padding:6px var(--space-10)}
.intro-strip__copy{font-size:15px;line-height:1.35}
@media(max-width:767px){
 .banner__frame{max-height:140px}
 .intro-strip{padding:8px var(--space-4)}
 .intro-strip__copy{font-size:15px}
}
html:not([data-category="events"]) .page-grid{display:flex;flex-direction:column;align-items:stretch;gap:16px}
html:not([data-category="events"]) .map-column,html:not([data-category="events"]) .list-column,html:not([data-category="events"]) .route-wrap{width:100%;align-self:stretch;margin-top:0}
html:not([data-category="events"]):not([data-fullmap]) .map-frame{height:240px;flex:none}
html:not([data-category="events"]) .hf-map{height:100%;aspect-ratio:auto}
html:not([data-category="events"]) .count-line{margin:0 0 12px}
/* The on-map key and distance note only ever showed in the retired Map view;
   the default view kept them hidden, and they would cover the 400px map and
   its attribution, so they stay hidden. */
.map-key,.map-note{display:none}
.count-line{scroll-margin-top:12px}
.listing-pages[hidden]{display:none}
html:not([data-category="events"]) #cardList{display:flex;flex-direction:column;gap:12px}
html:not([data-category="events"]) .card--compact{padding:12px 14px;gap:8px;min-height:0}
html:not([data-category="events"]) .card--compact .card__actions{margin-top:4px}
html:not([data-category="events"]) .card--compact .card__meta{margin-top:0;padding-top:8px}
@media(max-width:1023px){
 .count-line{scroll-margin-top:calc(var(--filterbar-h,0px) + 12px)}
}
@media(min-width:1024px){
 html:not([data-category="events"]) .page-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(360px,1fr);gap:24px;align-items:start}
 html:not([data-category="events"]) .list-column{grid-column:1;grid-row:1;min-width:0}
 html:not([data-category="events"]) .map-column{grid-column:2;grid-row:1;min-width:0}
 html:not([data-category="events"]):not([data-fullmap]) .map-frame{height:clamp(360px,calc(100dvh - var(--filterbar-h,0px) - 32px),620px);position:sticky;top:16px}
 html:not([data-category="events"]) .route-wrap{grid-column:1;grid-row:2}
 html:not([data-category="events"]) .card--compact{padding:14px 16px}
}
@media(max-width:600px){
 .filterbar .tabs{overflow:hidden}
 .filterbar .tabs button,.filterbar .tabs a.site-tab{flex:1 1 0!important;min-width:0!important;gap:3px;padding:0 2px;font-size:12px;letter-spacing:0}
 .filterbar .tabs .tabs__badge{min-width:19px;height:19px;padding:0 2px;font-size:11px}
 .filterbar .chrome-row{align-items:stretch}
 .filterbar .chrome-row__right{width:100%;margin-left:0}
 .filterbar .chrome-share{width:100%}
}
/* Events: the route planner moved out of the map column in the markup, so it
   is placed beside/under the week explicitly to keep the events layout. */
html[data-category="events"] .route-wrap{order:1;width:100%;margin-top:0}
html[data-category="events"] .list-column{order:2}
@media(min-width:1200px){
 html[data-category="events"] .page-grid{grid-template-rows:auto 1fr}
 html[data-category="events"] .route-wrap{grid-column:1;grid-row:2;align-self:start}
}

/* ---- /route.html: the route planner as a page (page-first plan step 4) ----
   Reuses the planner styles (.route, .route__*, .route-stop*). The homepage
   keeps a compact "Your route" link and the mobile bar link to this page. */
.route-cta{text-decoration:none}
.route-cta:hover .route-toggle__hint{text-decoration:underline}
.route-cta__status:empty{display:none}
.route-cta__status{margin:8px 0 0}
.mobile-route-bar a.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;padding:0 18px}
.route-page #routeSummary{margin-bottom:18px}
.route-page__body{padding:22px 20px;border:2px solid var(--violet);border-top:4px solid var(--orange);border-radius:10px;background:var(--panel)}
.route-page__empty{padding:22px 20px;border:2px solid var(--violet);border-radius:10px;background:var(--panel)}
.route-page__empty p{margin:0 0 14px}
.route-page__empty #routeEmptyStatus:empty{display:none}
.route-stop__name{display:block;font:600 21px/1.2 var(--f-body);color:var(--cream);text-decoration:none;overflow-wrap:anywhere}
.route-stop__name:hover{color:var(--pumpkin);text-decoration:underline}
.route-stop__category{display:inline-block;margin:2px 8px 0 0;font:700 12px/1.4 var(--f-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--lime)}
.route-page .route-stop__meta small{overflow-wrap:anywhere}
.route-page .route__directions{display:inline-flex;align-items:center;justify-content:center;padding:0 22px}
.route-page__clear{margin-top:18px;padding-top:14px;border-top:1px solid var(--line-2)}
.route-page__confirm{margin-top:10px;padding:14px;border:1px solid var(--orange);border-left:4px solid var(--orange);border-radius:6px;background:var(--chip)}
.route-page__confirm p{margin:0 0 10px;font-weight:600}
.route-page__confirm-actions{display:flex;flex-wrap:wrap;gap:10px}
.route-page__confirm-actions .btn{min-height:44px;padding:0 16px}
.route-page__back{margin:22px 0 0}
.route-page__back .btn{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;text-decoration:none}
.route-cta .route-toggle__title{white-space:nowrap}
.route-page .route__links{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px}
@media(max-width:600px){
 .route-cta{flex-wrap:wrap;row-gap:4px}
 .route-cta .route-toggle__hint{flex-basis:100%}
 .route-page__body,.route-page__empty{padding:16px 14px}
 .route-page .route-stop{flex-wrap:wrap}
 .route-page .route-stop__meta{flex-basis:calc(100% - 46px)}
 .route-page .route-stop__controls{margin-left:auto}
 .route-page .route__foot-row{flex-direction:column;align-items:stretch;gap:10px}
}

/* ---- Compact three-rail directory (design handoff 2026-10-15) ---- */
.filter-rail{background:var(--panel);border-right:1px solid var(--line);padding:18px 16px}
.filter-rail__head{display:flex;align-items:center;gap:12px;margin:0 0 18px;color:var(--cream)}
.filter-rail__head span{color:var(--orange);font-size:20px}
.filter-rail__head h2{margin:0;font:700 19px var(--f-cond);letter-spacing:.08em;text-transform:uppercase}
.filter-rail .filters{display:grid;gap:16px}
.filter-rail .filter-tier{display:flex;flex-wrap:wrap;gap:8px;padding:0;border:0}
.filter-rail .filter-tier--primary{display:grid;grid-template-columns:1fr}
.filter-rail .filterbar__label{grid-column:1/-1;margin:0 0 2px}
.filter-rail .filter{min-height:38px;padding:0 12px;font-size:14px}
.filter-rail .filter-tier--features summary{width:100%;padding:0;font-size:13px}
.filter-rail .filter-tier--features[open] summary{margin-bottom:2px}
.filter-rail .filter-tier--features .filter{min-height:36px;padding:0 11px;font-size:13px}

@media(min-width:1024px){
 .filterbar{border-bottom:1px solid var(--line)}
 .filterbar .nav-row{padding:8px 28px;min-height:58px}
 .filterbar .chrome-row{position:absolute;right:28px;bottom:8px;padding:0}
 .filterbar .chrome-share{min-height:36px}
 html:not([data-category="events"]) .page-grid{width:100%;max-width:none;padding:0;gap:0;display:grid;grid-template-columns:minmax(250px,.58fr) minmax(420px,1fr) minmax(520px,1.8fr);grid-template-rows:minmax(0,1fr) auto;height:calc(100dvh - 286px)!important;min-height:520px;overflow:hidden!important;background:var(--night)}
 html:not([data-category="events"]) .filter-rail{display:block;grid-column:1;grid-row:1/span 2;min-width:0;overflow-y:auto;overscroll-behavior:contain}
 html:not([data-category="events"]) .list-column{display:block;grid-column:2;grid-row:1/span 2;min-width:0;min-height:0;height:auto!important;max-height:none!important;overflow-y:auto!important;overscroll-behavior:contain;padding:16px;border-right:1px solid var(--line);background:var(--night)}
 html:not([data-category="events"]) .content-panels,html:not([data-category="events"]) .content-panels>section{height:auto!important;overflow:visible!important;padding:0}
 html:not([data-category="events"]) .map-column{display:block;grid-column:3;grid-row:1;min-width:0;min-height:0;width:auto}
 html:not([data-category="events"]):not([data-fullmap]) .map-frame{height:100%;min-height:0;position:static;top:auto;border-width:2px;border-radius:0}
 html:not([data-category="events"]) .route-wrap{grid-column:3;grid-row:2;width:auto;margin:0;border-width:3px 0 0;border-radius:0;padding:14px 20px}
 html:not([data-category="events"]) .map-info{margin:0;padding:6px 10px}
 html:not([data-category="events"]) #cardList{gap:10px}
 html:not([data-category="events"]) .card--compact{padding:14px;gap:8px}
 html:not([data-category="events"]) .card__actions{grid-template-columns:minmax(0,1fr) 44px}
 html:not([data-category="events"]) .card__route{min-height:42px}
}
@media(max-width:1023px){
 .filter-rail{order:0;border-right:0;border-bottom:1px solid var(--line);padding:14px}
 .filter-rail__head{margin-bottom:12px}
 .filter-rail .filters{gap:10px}
 html:not([data-category="events"]) .page-grid{gap:16px}
 html:not([data-category="events"]) .map-column{order:1}
 html:not([data-category="events"]) .list-column{order:2}
 html:not([data-category="events"]) .route-wrap{order:3}
}

/* ---- v7 compact workspace: supplied design handoff (2026-10-15) ---- */
.hf-header.banner{height:112px;box-sizing:border-box;display:grid;grid-template-columns:clamp(240px,18vw,300px) minmax(0,1fr);align-items:center;padding:0 24px;background:var(--night) url('assets/scene-strip-v3.png') center/auto 112px repeat-x;border-bottom:2px solid var(--violet)}
.banner__title{display:flex;align-items:center;height:100%}
.banner__frame{width:auto;height:clamp(64px,8vw,100px);aspect-ratio:auto;overflow:visible}
.banner__img{width:auto;height:100%;object-fit:contain;object-position:center;filter:drop-shadow(0 6px 10px rgba(0,0,0,.7))}
.intro-strip__copy{max-width:760px;margin:0 auto;padding:0 20px;text-align:center;font:500 14px/1.45 var(--f-body);color:var(--text);text-wrap:balance}
.filter-rail__links{display:flex;flex-direction:column;gap:8px;margin-top:auto;padding-top:16px;border-top:1px solid var(--line);font:700 13px/1.35 var(--f-cond);letter-spacing:.1em;text-transform:uppercase}
.filter-rail__links a,.filter-rail__links button{min-height:28px;padding:0;border:0;background:transparent;color:var(--purple);font:inherit;text-align:left;text-decoration:none;cursor:pointer}
.filter-rail__links a:first-child{color:var(--lime)}
.filter-rail__links a:hover,.filter-rail__links button:hover{text-decoration:underline;color:var(--cream)}
.filter-rail__links #railVisits{font:500 12px var(--f-body);letter-spacing:0;text-transform:none;color:var(--text-3)}

@media(min-width:1024px){
 /* Only the three-rail application (it contains .app) owns the viewport; every standalone page keeps normal document scroll. */
 html:has(.app),html:has(.app) body{height:100dvh;overflow:hidden}
 .app{height:100dvh!important;display:grid;grid-template-rows:112px 48px minmax(0,1fr);overflow:hidden!important}
 .filterbar{grid-row:2;min-height:0;border-bottom:1px solid var(--line)}
 .filterbar .nav-row{height:48px;box-sizing:border-box;padding:0;display:grid;grid-template-columns:260px minmax(300px,440px) minmax(320px,1fr);gap:0;align-items:stretch}
 .filterbar__rail-head{grid-column:1;display:flex;align-items:center;gap:12px;padding:0 20px;border-right:1px solid var(--line);background:var(--panel);font:700 19px var(--f-cond);letter-spacing:.08em;text-transform:uppercase;color:var(--cream)}
 .filterbar__rail-head span{color:var(--orange);font-size:20px}
 .filterbar .tabs{grid-column:2;align-self:stretch;padding:0 12px;border-right:1px solid var(--line)}
 .filterbar .tabs button,.filterbar .tabs a.site-tab{min-height:48px;padding:0 10px}
 .filterbar .nav-search{grid-column:3;justify-content:flex-end;min-width:0;padding:0 12px;gap:6px}
 .nav-search .locbar__zip{gap:0}
 .nav-search .locbar__input{width:150px;min-height:32px;border-width:1px;border-radius:6px}
 .nav-search .locbar__go,.within-dd>.locbar__within,.nav-search .locbar__locate{min-height:32px;border-width:1px;border-radius:6px}
 .nav-search .locbar__go{padding:0 12px}
 .within-dd>.locbar__within{padding:0 10px}
 .nav-search .locbar__locate{padding:0 8px}
 .filterbar .chrome-status{position:absolute;z-index:2;right:12px;top:48px;padding:0}
 .filterbar .chrome-status:has(#locStatus:empty){display:none}
 .app__main.page-grid,html:not([data-hf-rail="off"]) .page-grid{grid-row:3;width:100%;max-width:none;height:100%!important;min-height:0;padding:0;gap:0;display:grid;grid-template-columns:260px minmax(300px,440px) minmax(320px,1fr);grid-template-rows:minmax(0,1fr);overflow:hidden!important;background:var(--night)}
 html:not([data-hf-rail="off"]) .filter-rail{grid-column:1;grid-row:1;display:flex;flex-direction:column;min-height:0;padding:14px;overflow-y:auto;background:var(--panel)}
 html:not([data-hf-rail="off"]) .filter-rail__head{display:none}
 html:not([data-hf-rail="off"]) .filter-rail .filters{gap:18px}
 .filter-rail__section h3{margin:0 0 8px;font:700 12px var(--f-cond);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3)}
 .filter-rail__chips{display:flex;flex-wrap:wrap;gap:6px}
 .filter-rail .filter--rail{min-height:30px;padding:0 10px;border-radius:15px;font:600 13px var(--f-body)}
 .filter-rail .filter--rail[aria-pressed="true"]{background:#22140A;border-color:var(--orange);color:var(--cream)}
 html:not([data-hf-rail="off"]) .list-column{grid-column:2;grid-row:1;display:block;min-height:0;height:auto!important;max-height:none!important;padding:0;overflow-y:auto!important;border-right:1px solid var(--line);background:var(--night)}
 html:not([data-hf-rail="off"]) .content-panels,html:not([data-hf-rail="off"]) .content-panels>section{height:auto!important;min-height:100%;padding:0;overflow:visible!important}
 html:not([data-hf-rail="off"]) .count-line{padding:10px 16px 6px;margin:0}
 html:not([data-hf-rail="off"]) #cardList{padding:4px 12px 16px;gap:8px}
 html:not([data-hf-rail="off"]) .listing-pages{margin:0 12px 16px}
 html:not([data-category="events"]) .card--compact{padding:12px 14px;gap:7px}
 html:not([data-category="events"]) .card--compact .card__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0}
 html:not([data-category="events"]) .card--compact .card__route,html:not([data-category="events"]) .card--compact .card__route-btn{width:auto;min-height:30px;padding:0 12px;font-size:13px}
 html:not([data-category="events"]) .card--compact{padding:10px 14px;gap:5px}
 html:not([data-category="events"]) .card--compact .card__head{gap:8px}
 html:not([data-category="events"]) .card--compact .card__subline{margin-top:1px}
 html:not([data-category="events"]) .card--compact .card__body{padding-left:40px;font-size:14px;line-height:1.25}
 html:not([data-category="events"]) .card--compact .card__address{min-height:26px;font-size:14px}
 html:not([data-category="events"]) .card--compact .card__hours{font-size:14px;line-height:1.3}
 html:not([data-category="events"]) .card--compact .card__tags .chip,html:not([data-category="events"]) .card--compact .card__tags .chips .chip{min-height:24px;padding:0 8px;font-size:12px}
 html:not([data-category="events"]) .card--compact .card__actions{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:8px}
 html:not([data-category="events"]) .card--compact .card__route-btn{min-height:36px!important;padding:0 10px;font-size:13px}
 html:not([data-category="events"]) .card--compact .card__meta{gap:6px;padding-top:6px;font-size:12px}
 html:not([data-category="events"]) .card--compact .card__metalink,html:not([data-category="events"]) .card--compact .card__notes summary{min-height:28px;font-size:12px}
 html:not([data-hf-rail="off"]) .map-column{grid-column:3;grid-row:1;display:block;min-width:0;min-height:0;width:auto;position:relative}
 html:not([data-hf-rail="off"]):not([data-fullmap]) .map-frame{height:100%;min-height:0;position:static;top:auto;border:0;border-radius:0}
 html:not([data-hf-rail="off"]) .route-wrap{grid-column:3;grid-row:1;z-index:700;align-self:end;justify-self:start;width:min(520px,calc(100% - 24px));margin:0 0 12px 12px;padding:0;border:1px solid var(--line-2);border-top:3px solid var(--orange);border-radius:10px;background:rgba(22,17,30,.96);box-shadow:0 8px 24px rgba(0,0,0,.5)}
 html:not([data-hf-rail="off"]) .route-toggle{min-height:46px;padding:0 14px}
 html:not([data-hf-rail="off"]) .map-info{position:absolute;z-index:650;bottom:0;left:0;margin:0;padding:4px 10px;background:rgba(11,9,16,.72)}
 .hf-footer{display:none}
 #eventCalendar{display:none!important}
 html[data-category="events"] .page-grid{grid-template-columns:260px minmax(300px,440px) minmax(320px,1fr);grid-template-rows:minmax(0,1fr);gap:0;height:100%!important;overflow:hidden!important}
 html[data-category="events"] .list-column{grid-column:2;grid-row:1;align-self:stretch;min-height:0;height:auto!important;max-height:none!important;overflow-y:auto!important;position:static}
 html[data-category="events"] .filter-rail{grid-column:1;grid-row:1}
 html[data-category="events"] .map-column{grid-column:3;grid-row:1}
 html[data-category="events"] .route-wrap{grid-column:3;grid-row:1}
 html[data-category="events"] .map-column{align-self:stretch;height:100%}
 html[data-category="events"] .events-column-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0;padding:10px 16px 6px}
 html[data-category="events"] .events-day-heading{font:700 13px var(--f-cond);letter-spacing:.12em;color:var(--cream)}
 .events-ics--rail{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--purple);font:600 13px var(--f-body);cursor:pointer;padding:0}
 .events-ics--rail:hover{text-decoration:underline;color:var(--cream)}
 html[data-category="events"] #cardList{display:block;padding:4px 12px 16px}
 .ev-open{margin:0 0 14px;padding:10px;border:1px solid #1F5A52;border-radius:10px;background:#0E2523}
 .ev-open__label{margin:0 0 8px;font:700 12px var(--f-cond);letter-spacing:.14em;text-transform:uppercase;color:var(--teal,#3FD0C0)}
 .ev-week-head{margin:4px 0 10px;font:700 17px var(--f-cond);letter-spacing:.08em;text-transform:uppercase;color:var(--cream)}
 .ev-day{margin:0 0 10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
 .ev-day--empty{display:flex;align-items:baseline;gap:14px;padding:8px 12px}
 .ev-day--halloween{background:var(--sat-tint,#1A1030);border-color:var(--violet)}
 .ev-day__head{margin:0 0 8px;display:flex;align-items:baseline;gap:8px;font:700 15px var(--f-cond);letter-spacing:.08em;text-transform:uppercase;color:var(--cream)}
 .ev-day--empty .ev-day__head{margin:0}
 .ev-day__flag{margin-left:auto;font-style:normal;font-size:12px;color:var(--purple)}
 .ev-day__empty{margin:0;font-size:13px;color:var(--text-3)}
 .ev-day .event-card,.ev-open .event-card{margin:0 0 8px}
 .ev-key{display:flex;flex-wrap:wrap;gap:6px 14px;padding:8px 2px 0;font-size:12px;color:var(--text-2)}
 .ev-key span::before{content:"";display:inline-block;width:10px;height:3px;margin-right:6px;vertical-align:middle;background:var(--event-color)}
 .event-card.is-selected{outline:2px solid var(--purple);outline-offset:-2px}
}
@media(max-width:1023px){
 .filterbar__rail-head{display:none}
 .hf-header.banner{height:96px;grid-template-columns:1fr;padding:0 16px;background-size:auto 96px}
 .banner__title{justify-content:center}
 .banner__frame{height:76px}
 .intro-strip__copy{display:none}
 .filter-rail__links{display:none}
}

/* ---- v7 design review fixes (2026-10-15) ---- */
.hf-cluster{width:34px;height:34px;box-sizing:border-box;border-radius:50%;display:flex;align-items:center;justify-content:center;font:800 14px var(--f-body);color:#120E18;border:2px solid rgba(255,255,255,.85);box-shadow:0 3px 8px rgba(0,0,0,.6);cursor:pointer}
.hf-cluster--displays{background:#FF7A1A}
.hf-cluster--treats{background:#A6E22E}
.card-rating{text-decoration:none}
.card-rating__rate{text-decoration:underline}
.card__distance{text-transform:none!important}
html body .card--compact .card__actions,html body .event-card .card__actions{display:flex!important;grid-template-columns:none!important;flex-wrap:wrap;align-items:center;gap:6px 9px;margin:0;padding:0;border:0}
html body .card--compact .card__actions .card__route-btn,html body .event-card .card__actions .card__route-btn{width:auto;min-height:30px!important;height:30px;margin-right:auto;padding:0 12px;font:800 13px var(--f-cond)}
html body .card--compact .card__meta,html body .event-card__meta,html body .card__meta-left,html body .card__meta-right{display:contents!important;border:0!important;padding:0!important;margin:0!important}
html body .card__notes summary,html body .card__metalink,html body .card-rating{white-space:nowrap;min-height:0;padding:0}
html body .card--compact .card__actions .card__route-btn{padding:0 10px}
.card--compact .card__metalink,.event-card .card__metalink,.card__notes summary,.card-rating{font:600 12px var(--f-body)}
.card__notes[open]{flex:1 0 100%;order:9}
.treat-stop-card{border-top:3px solid #A6E22E!important}
.treat-prompt{margin:8px 0 4px;padding:12px 14px;border:1px dashed #3A3046;border-radius:10px;color:#CFC4B0;font-size:13px}
.treat-prompt p{margin:0 0 6px}
.treat-prompt__link{font:700 13px var(--f-cond);letter-spacing:.08em;text-transform:uppercase;color:#A6E22E;text-decoration:none}
.event-card{padding:12px 14px!important;gap:6px!important}
.event-card .event-card__head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.event-card .event-card__name{margin:0;font:700 19px/1.15 var(--f-cond);letter-spacing:0;text-transform:none}
.event-card .event-type-pill{margin-left:0!important;height:20px;display:inline-flex;align-items:center;padding:0 8px;border-radius:4px;font:800 11px var(--f-body);letter-spacing:.04em;text-transform:uppercase}
.event-card__clamp{display:block;overflow:visible}
.event-card__details.is-expanded .event-card__clamp{display:block;-webkit-line-clamp:unset}
.card__more{padding:0;border:0;background:none;color:#B48CFF;font:600 12px var(--f-body);cursor:pointer}
.event-card .chips .chip,.card--compact .chips .chip{min-height:22px;height:auto;padding:0 9px;border:1px solid #3A3046;border-radius:11px;background:transparent;color:#CFC4B0;font:500 12px/20px var(--f-body)}
.card.is-selected,.event-card.is-selected{border-color:var(--acc,#FF7A1A)!important;background:#221A2E!important;outline:0!important}
.card:hover{border-color:#5A4A6E}
html[data-category="displays"]{--acc:#FF7A1A}
html[data-category="treats"]{--acc:#A6E22E}
html[data-category="events"]{--acc:#B48CFF}
.tabs__badge{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:20px;height:20px;padding:0 6px;border-radius:10px;font:800 12px/1 var(--f-body);color:#120E18}
.tabs__badge--displays{background:#FF7A1A}.tabs__badge--treats{background:#A6E22E}.tabs__badge--events{background:#B48CFF}.tabs__badge--shops{background:#54C7EC}
.route-panel{padding:8px 14px 12px;border-bottom:1px solid #2E2638}
.route-stops{margin:0 0 10px;padding:0;list-style:none;display:grid;gap:6px;max-height:220px;overflow:auto}
.route-stop{display:flex;align-items:center;gap:10px;font-size:14px}
.route-stop__n{flex:none;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--c);color:#120E18;font:800 12px var(--f-body)}
.route-stop__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.route-stop__remove{border:0;background:none;color:#B48CFF;font:600 12px var(--f-body);cursor:pointer}
.route-panel__empty{margin:0 0 8px;font-size:13px;color:#A89DB4}
.route-panel__actions{display:flex;align-items:center;gap:14px}
.route-panel__go{background:#A6E22E;color:#120E18;font:800 13px var(--f-cond);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;min-height:34px;padding:0 14px;display:inline-flex;align-items:center;border-radius:6px}
.route-panel__plan{color:#B48CFF;font:700 13px var(--f-cond);letter-spacing:.08em;text-transform:uppercase;text-decoration:none}
.treat-prompt+*,.empty strong{font-size:inherit}
@media(min-width:1024px){
 .filterbar__rail-head{border:0;border-right:1px solid var(--line);cursor:pointer;text-align:left}
 .filterbar .tabs button,.filterbar .tabs a.site-tab{background:transparent!important;color:#A89DB4;border:0;border-bottom:3px solid transparent;border-radius:0;box-shadow:none;font-weight:600}
 .filterbar .tabs #displaysTab,.filterbar .tabs #treatStopsTab,.filterbar .tabs #eventsTab{background:transparent!important;color:#A89DB4}
 .filterbar .tabs #displaysTab[aria-selected="true"],.filterbar .tabs #treatStopsTab[aria-selected="true"],.filterbar .tabs #eventsTab[aria-selected="true"],.filterbar .tabs #displaysTab[aria-current="page"],.filterbar .tabs #treatStopsTab[aria-current="page"],.filterbar .tabs #eventsTab[aria-current="page"]{color:#F6EBD3}
 .filterbar .tabs #displaysTab[aria-selected="true"],.filterbar .tabs #displaysTab[aria-current="page"]{border-bottom-color:#FF7A1A}
 .filterbar .tabs #treatStopsTab[aria-selected="true"],.filterbar .tabs #treatStopsTab[aria-current="page"]{border-bottom-color:#A6E22E}
 .filterbar .tabs #eventsTab[aria-selected="true"],.filterbar .tabs #eventsTab[aria-current="page"]{border-bottom-color:#B48CFF}
 .filterbar .tabs button:focus,.filterbar .tabs a.site-tab:focus{outline:0}
 .filterbar .tabs button:focus-visible{outline:2px solid #B48CFF;outline-offset:2px}
 .filterbar .tabs a.site-tab:focus-visible{outline:2px solid #B48CFF;outline-offset:2px}
 .filterbar .tabs .tabs__badge{min-width:20px;height:20px;font-size:12px}
 html .filter-rail{align-self:stretch;height:100%;min-height:0;display:flex;flex-direction:column;overflow-y:auto}
 html .filter-rail .filter-rail__links{margin-top:auto;padding-top:14px;gap:8px;border-top:1px solid #2E2638}
 html .filter-rail .filter-rail__links a,html .filter-rail .filter-rail__links button{font:600 13px/1.35 var(--f-cond);letter-spacing:.1em;text-transform:uppercase;min-height:0;padding:0}
 html .filter-rail .filter-rail__links #railVisits{font:500 12px var(--f-body);letter-spacing:0;text-transform:none;color:#7E7389}
 .filter-rail .filter-rail__chips{gap:6px}
 .filter-rail .filter.filter--rail{min-height:30px;height:auto;padding:4px 10px;border:1px solid #3A3046;border-radius:15px;background:transparent;color:#CFC4B0;font:600 13px/1.2 var(--f-body);text-align:left;box-shadow:none}
 .filter-rail .filter.filter--rail[aria-pressed="true"]{border-color:#FF7A1A;background:rgba(255,122,26,.16);color:#FFB27A}
 .filter-rail__clear{margin-top:4px;padding:0;border:0;background:none;color:#B48CFF;font:700 13px var(--f-cond);letter-spacing:.06em;text-align:left;cursor:pointer;align-self:flex-start}
 .filter-rail__expand{display:none}
 html[data-rail="collapsed"] .filterbar .nav-row{grid-template-columns:44px minmax(300px,440px) minmax(320px,1fr)}
 html[data-rail="collapsed"] .app__main.page-grid{grid-template-columns:44px minmax(300px,440px) minmax(320px,1fr)}
 html[data-rail="collapsed"] .filterbar__rail-head{padding:0;justify-content:center}
 html[data-rail="collapsed"] .filterbar__rail-head strong{display:none}
 html[data-rail="collapsed"] .filter-rail{padding:0;overflow:hidden}
 html[data-rail="collapsed"] .filter-rail .filters,html[data-rail="collapsed"] .filter-rail .filter-rail__links{display:none}
 html[data-rail="collapsed"] .filter-rail__expand{display:flex;flex-direction:column;align-items:center;gap:10px;flex:1;width:100%;padding:16px 0;border:0;background:transparent;color:#A89DB4;cursor:pointer}
 .filter-rail__expand-label{writing-mode:vertical-rl;transform:rotate(180deg);font:700 13px var(--f-cond);letter-spacing:.16em;text-transform:uppercase}
 .filter-rail__badge{width:20px;height:20px;border-radius:50%;background:#FF7A1A;color:#120E18;font:800 12px/20px var(--f-body);text-align:center}
 .filterbar .nav-search{height:48px;background:#16111E;border-bottom:1px solid #2E2638;gap:6px}
 .nav-search .locbar__zip{display:contents}
 .nav-search .locbar__zipfield{position:relative;order:1;flex:0 1 150px;min-width:70px;display:block}
 .nav-search .locbar__zip-label{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:auto;height:auto;clip:auto;margin:0;font:600 11px var(--f-cond);letter-spacing:.06em;color:#A89DB4;pointer-events:none}
 .nav-search .locbar__input{width:100%;box-sizing:border-box;min-height:32px;height:32px;padding-left:36px}
 .nav-search .within-dd{order:2}
 .nav-search .locbar__go{order:3;min-height:32px;height:32px;background:#FF7A1A;color:#120E18;font:800 13px var(--f-cond);letter-spacing:.06em;text-transform:uppercase}
 .nav-search .locbar__locate{order:4;min-height:32px;height:32px}
 .locbar__locate-short{display:none}
 .count-line{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
 html[data-category="displays"] .count-line::after,html[data-category="treats"] .count-line::after{content:"Nearest first";font:500 12px var(--f-body);letter-spacing:0;text-transform:none;color:#7E7389}
 #mapCategoryHint,.map-info{display:none!important}
 html .route-wrap{display:flex!important;flex-direction:column-reverse;align-self:end;justify-self:start;width:min(520px,calc(100% - 24px))!important;margin:0 12px 12px!important;max-height:none}
 .route-wrap .route-toggle{display:flex;align-items:center;gap:10px;width:100%;box-sizing:border-box;border:0;background:transparent;color:var(--cream);text-align:left;cursor:pointer;text-decoration:none}
 .route-toggle__hint{margin-left:auto;color:#B48CFF;font:700 13px var(--f-cond);letter-spacing:.08em;text-transform:uppercase}
 .hf-header .intro-strip__copy{text-shadow:0 1px 3px #000;margin-left:max(24px,auto)}
 .leaflet-control-zoom a{width:30px;height:30px;line-height:30px;background:#16111E;border:1px solid #3A3046;color:#F6EBD3}
}
@media(min-width:1024px) and (max-width:1279px){.locbar__locate-text{display:none}}
@media(min-width:1024px){
 html body #cardList .card--compact{padding:10px 14px;gap:4px}
 html body #cardList .card--compact .card__address{min-height:22px;line-height:1.2}
 html body #cardList .card--compact .card__hours,html body #cardList .card--compact .card__scare-row,html body #cardList .card--compact .card__tags,html body #cardList .card--compact .chips{margin:0}
 html body #cardList .card--compact .card__body,html body #cardList .card--compact .card__subline{margin-top:0}
 html body #cardList .card--compact .card__tags{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center}
 html body .event-card p,html body .event-card .card__address,html body .event-card .chips{margin:0}
 html body .event-card .card__address{min-height:22px}
 html body .event-card{padding:10px 14px!important;gap:5px!important}
}
@media(min-width:1024px){
 html body #cardList .card--compact:not(.treat-stop-card){display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:10px}
 html body #cardList .card--compact:not(.treat-stop-card)>*{grid-column:1/-1}
 html body #cardList .card--compact:not(.treat-stop-card)>.card__hours{grid-column:1}
 html body #cardList .card--compact:not(.treat-stop-card)>.card__scare-row{grid-column:2;justify-self:end}
}

/* ---- design review round 2 (2026-10-15) ---- */
.route-toggle__empty{display:none;color:#A89DB4;font:500 13px var(--f-body)}
.route-toggle__empty::before{content:"· ";color:#A89DB4}
.ev-day__dash{color:#7E7389}
@media(min-width:1024px){
 .filterbar .nav-row{height:48px!important;min-height:48px!important;max-height:48px}
 .filterbar .tabs{align-items:stretch;height:48px;box-sizing:border-box}
 .filterbar .tabs button,.filterbar .tabs a.site-tab{box-sizing:border-box;height:48px;min-height:48px}
 .hf-header.banner{background-position:left center}
 .hf-header .intro-strip__copy{text-shadow:0 1px 3px #000,0 0 12px rgba(18,14,24,.9)}
 html body .map-float-btn--search{top:12px;bottom:auto!important;min-height:32px;padding:0 14px;border:1px solid #3A3046;border-radius:16px;background:#16111E;color:#F6EBD3;font:700 13px/1 var(--f-cond);letter-spacing:.06em;transform:translate(-50%,-8px)}
 html body .map-float-btn--search.is-visible{transform:translate(-50%,0)}
 .hf-cluster{width:36px;height:36px;background:#1C1626!important;border:2px solid var(--cl,#FF7A1A);color:var(--cl,#FF7A1A);font:800 14px var(--f-body);box-shadow:0 0 0 3px #0B0910,0 0 0 5px var(--cl,#FF7A1A)}
 .hf-cluster--displays{--cl:#FF7A1A}.hf-cluster--treats{--cl:#A6E22E}
 html .filter-rail{padding:0!important;overflow:hidden!important}
 html .filter-rail .filters{flex:1 1 auto;min-height:0;overflow-y:auto;padding:14px 14px 8px}
 html .filter-rail .filter-rail__links{flex:none;display:flex;flex-direction:column;gap:8px;margin-top:0;padding:14px;border-top:1px solid #2E2638}
 html[data-rail="collapsed"] .filter-rail{overflow:hidden!important}
 .filter-rail .filters,.list-column{scrollbar-width:thin;scrollbar-color:#3A3046 transparent}
 .filter-rail .filters::-webkit-scrollbar,.list-column::-webkit-scrollbar{width:6px}
 .filter-rail .filters::-webkit-scrollbar-thumb,.list-column::-webkit-scrollbar-thumb{background:#3A3046;border-radius:3px}
 .filter-rail .filters::-webkit-scrollbar-track,.list-column::-webkit-scrollbar-track{background:transparent}
 html body .count-line,html[data-category="events"] .events-column-head{box-sizing:border-box;min-height:36px;margin:0;padding:10px 16px 6px;display:flex;align-items:center;justify-content:space-between}
 .ev-open{background:#0E1C1B!important;border:1px solid #1F3B39!important}
 .ev-open .event-card{border:0!important;border-top:3px solid var(--event-color)!important;background:#1A1522!important}
 .card__head{align-items:flex-start}
 .card__head .card__pin{margin-top:-2px}
 html body .leaflet-control-zoom a{width:30px!important;height:30px!important;line-height:28px!important;border:1px solid #3A3046!important;border-radius:0}
 html .route-wrap.is-empty{width:auto!important;max-width:calc(100% - 24px)}
 .route-wrap.is-empty .route-toggle{height:40px;min-height:40px!important;cursor:default}
 .route-wrap.is-empty .route-toggle__count,.route-wrap.is-empty .route-toggle__hint{display:none}
 .route-wrap.is-empty .route-toggle__empty{display:inline}
 .route-wrap.is-empty .route-toggle__title{font-size:20px}
}
@media(min-width:1024px){
 html[data-category="events"] .events-column-head{height:36px;align-items:center}
 html[data-category="events"] .events-column-head .events-day-heading{margin:0;line-height:1.2}
 html[data-category="events"] .events-column-head .events-head-count{display:none}
 .events-ics--rail{height:20px;line-height:1.2;display:inline-flex;align-items:center}
}

.leaflet-marker-icon.is-linked .hf-cluster{transform:scale(1.1)}
.hf-cluster{transition:transform .15s ease}

/* ---- v7 mobile pass (below 1024px): design/Hauntfinder Mobile Spec ---- */
.hf-menu-btn,.mobile-bar,.menu-drawer,.mobile-filters-btn,.filter-rail__sheet-head,.filter-rail__sheet-foot,.route-panel__head,.card__mapbtn,.card__morebtn,.map-popup__full{display:none}
@media(max-width:1023px){
 html body{padding-bottom:0}
 html body .hf-header.banner{height:56px;grid-template-columns:auto 1fr auto;padding:0 8px 0 12px;background-size:auto 56px;background-position:left center;border-bottom:1px solid var(--violet)}
 html body .banner__frame{height:44px}
 html body .hf-header .intro-strip__copy{display:none}
 .hf-menu-btn{display:flex;align-items:center;justify-content:center;grid-column:3;width:44px;height:44px;border:0;border-radius:8px;background:rgba(11,9,16,.6);color:#F6EBD3;font-size:22px;cursor:pointer}
 html[data-mview="map"] .hf-header{display:none}
 html body .hf-footer,html body .filter-rail__links,html body .filter-rail__expand,html body .filterbar__rail-head,html body .map-float-btn--full,html body .map-key,html body .map-info,html body #mapCategoryHint,html body #eventCalendar,html body .mobile-route-bar{display:none!important}
 /* sticky search row + tabs */
 html body .filterbar{position:sticky;top:0;z-index:800;background:#0B0910;border-bottom:1px solid #2E2638;padding:0}
 html[data-mview="map"] .filterbar{position:static}
 html body .filterbar .nav-row{display:flex;flex-direction:column;max-width:760px;margin:0 auto;padding:0;min-height:0;height:auto!important;max-height:none;gap:0}
 html body .filterbar .nav-search{order:1;display:flex;align-items:stretch;gap:0;padding:8px 12px;width:auto;background:transparent;border:0;height:auto}
 html body .filterbar .tabs{order:2;display:flex;width:100%;padding:0;border:0;gap:0;height:44px}
 .nav-search .locbar__zip{display:contents}
 .nav-search .locbar__zipfield{position:relative;flex:1 1 auto;min-width:80px}
 .nav-search .locbar__zip-label{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:auto;height:auto;clip:auto;margin:0;font:600 11px var(--f-cond);letter-spacing:.06em;color:#A89DB4;pointer-events:none}
 html body .nav-search .locbar__input{width:100%;box-sizing:border-box;height:44px;min-height:44px;padding-left:38px;border:1px solid #3A3046;border-right:0;border-radius:8px 0 0 8px;background:#15101C}
 html body .nav-search .locbar__go{display:none}
 html body .nav-search .within-dd>.locbar__within{height:44px;min-height:44px;padding:0 10px;border:1px solid #3A3046;border-right:0;border-radius:0;background:#15101C}
 html body .nav-search .locbar__locate{height:44px;min-height:44px;width:44px;padding:0;border:1px solid #3A3046;border-radius:0 8px 8px 0;background:#15101C}
 .locbar__locate-text,.locbar__locate-short{display:none}
 html body .mobile-filters-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:44px;min-height:44px;margin-left:8px;padding:0 14px;border:1px solid #3A3046;border-radius:8px;background:#15101C;color:#F6EBD3;font:700 13px var(--f-cond);letter-spacing:.08em;text-transform:uppercase}
 html body .mobile-filters-btn.is-active{border-color:#FF7A1A}
 .mobile-filters-btn__count{min-width:20px;height:20px;border-radius:10px;background:#FF7A1A;color:#120E18;font:800 12px/20px var(--f-body);text-align:center}
 html body .filterbar .tabs button,html body .filterbar .tabs a.site-tab{flex:1 1 0;justify-content:center;height:44px;min-height:44px;padding:0 4px;background:transparent!important;color:#A89DB4;border:0;border-bottom:3px solid transparent;border-radius:0;font:600 14px var(--f-body);text-transform:none;letter-spacing:0;gap:6px;white-space:nowrap}
 html body .filterbar .tabs #displaysTab[aria-selected="true"],html body .filterbar .tabs #treatStopsTab[aria-selected="true"],html body .filterbar .tabs #eventsTab[aria-selected="true"],html body .filterbar .tabs #displaysTab[aria-current="page"],html body .filterbar .tabs #treatStopsTab[aria-current="page"],html body .filterbar .tabs #eventsTab[aria-current="page"]{color:#F6EBD3}
 html body .filterbar .tabs #displaysTab[aria-selected="true"],html body .filterbar .tabs #displaysTab[aria-current="page"]{border-bottom-color:#FF7A1A}
 html body .filterbar .tabs #treatStopsTab[aria-selected="true"],html body .filterbar .tabs #treatStopsTab[aria-current="page"]{border-bottom-color:#A6E22E}
 html body .filterbar .tabs #eventsTab[aria-selected="true"],html body .filterbar .tabs #eventsTab[aria-current="page"]{border-bottom-color:#B48CFF}
 html body .filterbar .tabs button:focus,html body .filterbar .tabs a.site-tab:focus{outline:0}
 html body .filterbar .tabs button:focus-visible{outline:2px solid #B48CFF;outline-offset:2px}
 html body .filterbar .tabs a.site-tab:focus-visible{outline:2px solid #B48CFF;outline-offset:2px}
 html body .chrome-status{position:static;padding:0 12px}
 /* page body */
 html body .app__main.page-grid{display:block;width:100%;max-width:none;height:auto!important;padding:0;gap:0;overflow:visible!important}
 html body .filter-rail{display:none}
 html body .list-column{display:block;position:static;max-width:760px;margin:0 auto;padding:0 0 84px;height:auto!important;max-height:none!important;overflow:visible!important;border:0}
 html[data-mview="map"] body .list-column,html[data-mview="map"] .list-column{display:none}
 html body .map-column{display:none}
 html[data-mview="map"] body .map-column,html[data-mview="map"] .map-column{display:block;position:fixed;left:0;right:0;top:var(--mapbar-top,104px);bottom:calc(60px + env(safe-area-inset-bottom));width:auto;height:auto}
 html[data-mview="map"] .map-frame{height:100%!important;border:0;border-radius:0;position:relative}
 html[data-mview="map"] .hf-map{height:100%}
 html body .count-line,html[data-category="events"] .events-column-head{padding:10px 12px 6px;min-height:36px;display:flex;align-items:center;justify-content:space-between;margin:0;box-sizing:border-box}
 html[data-category="events"] .events-column-head .events-head-count{display:none}
 html body #cardList{padding:4px 12px 16px;gap:10px}
 /* bottom bar */
 .mobile-bar{display:flex;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:1000;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:#120D18;border-top:1px solid #2E2638}
 .mobile-bar button{flex:1 1 0;height:44px;min-height:44px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;background:#15101C;border:1px solid #3A3046;color:#F6EBD3;font:800 14px var(--f-cond);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
 .mobile-bar__route{border-color:#FF7A1A!important}
 .mobile-bar__count{min-width:22px;height:22px;border-radius:11px;background:#A6E22E;color:#120E18;font:800 12px/22px var(--f-body);text-align:center}
 .mobile-bar__count.is-zero{background:#3A3046;color:#A89DB4}
 /* cards */
 html body .card--compact .card__actions .card__route-btn,html body .event-card .card__actions .card__route-btn{height:44px;min-height:44px!important}
 .card__mapbtn,.card__morebtn{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:44px;min-height:44px;border:0;background:none;color:#B48CFF;font:800 13px var(--f-cond);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
 .card__morebtn{margin-left:auto;width:44px;font-size:20px;color:#CFC4B0}
 html body .card__actions .card__meta,html body .event-card__meta{display:none!important}
 html body .is-more-open .card__actions .card__meta,html body .is-more-open .event-card__meta{display:contents!important}
 html body .card__actions .card__route-btn{margin-right:0}
 /* map preview card */
 html[data-mview="map"] .map-peek{position:absolute;left:8px;right:8px;bottom:8px;top:auto;width:auto;z-index:900}
 .map-popup__full{display:inline-flex;align-items:center;min-height:44px;border:0;background:none;color:#B48CFF;font:700 13px var(--f-cond);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
 html body .leaflet-control-zoom a{width:44px!important;height:44px!important;line-height:42px!important}
 html body .leaflet-top.leaflet-left{left:auto;right:10px}
 /* filter sheet */
 html[data-sheet="filters"] body .filter-rail,html[data-sheet="filters"] .filter-rail{display:flex;flex-direction:column;position:fixed;inset:0;z-index:1500;background:#15101C;padding:0!important;overflow:hidden!important}
 html[data-sheet="filters"] .filter-rail__sheet-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #2E2638}
 .filter-rail__sheet-head h2{margin:0;font:700 19px var(--f-cond);letter-spacing:.08em;text-transform:uppercase;color:#F6EBD3}
 .sheet-close{width:44px;height:44px;border:0;background:none;color:#F6EBD3;font-size:26px;line-height:1;cursor:pointer}
 html[data-sheet="filters"] .filter-rail .filters{display:block;flex:1 1 auto;min-height:0;overflow-y:auto;padding:12px 16px}
 html[data-sheet="filters"] .filter-rail__sheet-foot{display:flex;gap:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid #2E2638;background:#15101C}
 .filter-rail__sheet-foot .btn{height:44px;min-height:44px;font:800 14px var(--f-cond);letter-spacing:.08em;text-transform:uppercase}
 .filter-rail__sheet-foot #sheetShow{flex:1;background:#FF7A1A;color:#120E18;border-color:#FF7A1A}
 html[data-sheet="filters"] .filter-rail .filter--rail{min-height:36px}
 html body .filter-rail .filter-rail__chips{gap:8px}
 /* route sheet */
 html body .route-wrap{display:none!important}
 html[data-sheet="route"] body .route-wrap,html[data-sheet="route"] .route-wrap{display:flex!important;position:fixed;inset:0;z-index:1500;align-items:flex-end;justify-content:center;width:auto!important;margin:0!important;padding:0;border:0;border-radius:0;background:rgba(0,0,0,.6);max-width:none}
 html[data-sheet="route"] .route-wrap .route-toggle,html[data-sheet="route"] .route-wrap .route-cta__status{display:none}
 html[data-sheet="route"] .route-panel{display:block;width:100%;max-width:760px;max-height:80vh;overflow:auto;box-sizing:border-box;padding:14px 16px calc(16px + env(safe-area-inset-bottom));border-radius:14px 14px 0 0;border-top:3px solid #FF7A1A;background:#1A1322}
 html[data-sheet="route"] .route-panel__head{display:flex;position:relative;align-items:center;gap:10px;margin-bottom:8px;padding-top:12px;touch-action:none}
 .route-panel__handle{position:absolute;top:2px;left:50%;width:36px;height:4px;border-radius:999px;background:#3A3046;transform:translateX(-50%)}
 .route-panel__head strong{font:700 20px var(--f-cond);letter-spacing:.08em;text-transform:uppercase;color:#F6EBD3}
 .route-panel__head #routePanelCount{font-size:13px;color:#A89DB4}
 .route-panel__head .sheet-close{margin-left:auto}
 html[data-sheet="route"] .route-stop{min-height:44px}
 html[data-sheet="route"] .route-stop__remove{min-height:44px;padding:0 6px}
 html[data-sheet="route"] .route-panel__actions{flex-direction:column;align-items:stretch;gap:10px}
 html[data-sheet="route"] .route-panel__go{justify-content:center;min-height:48px}
 html[data-sheet="route"] .route-panel__plan{text-align:center;min-height:44px;display:flex;align-items:center;justify-content:center}
 /* menu drawer */
 html body .menu-drawer:not([hidden]){display:block;position:fixed;inset:0;z-index:1600}
 .menu-drawer__scrim{position:absolute;inset:0;background:rgba(0,0,0,.6)}
 .menu-drawer__panel{position:absolute;top:0;right:0;bottom:0;width:min(320px,86vw);display:flex;flex-direction:column;padding:8px 0;background:#1A1322;border-left:1px solid #2E2638;overflow:auto}
 .menu-drawer__panel>.sheet-close{align-self:flex-end;margin-right:6px}
 .menu-drawer__panel a,.menu-drawer__panel>button:not(.sheet-close){display:flex;align-items:center;min-height:52px;padding:0 20px;border:0;background:none;color:#B48CFF;font:700 15px var(--f-cond);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;text-align:left;cursor:pointer}
 .menu-drawer__panel a.menu-drawer__primary{color:#A6E22E}
 .menu-drawer__tag{margin:12px 20px;font-size:13px;line-height:1.45;color:#CFC4B0}
 .menu-drawer__visits{margin:auto 20px 12px;font-size:12px;color:#7E7389}
}
@media(min-width:600px) and (max-width:1023px){
 html body .filterbar .nav-row{padding:0}
}
@media(min-width:768px) and (max-width:1023px){
 html body:not([data-x]) #cardList{display:grid;grid-template-columns:1fr 1fr;align-items:start}
 html[data-category="events"] body #cardList,html[data-category="events"] #cardList{display:block}
}
@media(max-width:1023px){
 html body .filterbar .nav-search{flex-wrap:nowrap}
 html body .nav-search .locbar__zipfield{order:1}
 html body .nav-search .within-dd{order:2;flex:none}
 html body .nav-search .locbar__locate{order:3;flex:none}
 html body .nav-search .mobile-filters-btn{order:4;flex:none}
 html body .nav-search .locbar__locate .locbar__locate-long{display:inline}
}
@media(max-width:1023px){
 html[data-category] .list-column{display:block;position:static;order:0;grid-column:auto;grid-row:auto;width:auto}
 html[data-mview="map"][data-category] .list-column{display:none}
 html[data-category] .map-column{display:none;grid-column:auto;grid-row:auto}
 html[data-mview="map"][data-category] .map-column{display:block}
 html[data-category="events"] #cardList{display:block}
}
@media(max-width:1023px){
 html[data-category="events"] .events-column-head .events-day-heading{margin:0;font:700 13px/1.2 var(--f-cond);letter-spacing:.12em;text-transform:uppercase;color:#F6EBD3}
 html[data-category="events"] .events-column-head{height:auto}
 .events-ics--rail{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:#B48CFF;font:600 12px var(--f-body);cursor:pointer;padding:0;min-height:44px}
 .ev-open{margin:0 0 14px;padding:10px;border:1px solid #1F3B39;border-radius:10px;background:#0E1C1B}
 .ev-open__label{margin:0 0 8px;font:700 12px var(--f-cond);letter-spacing:.14em;text-transform:uppercase;color:#3FD0C0}
 .ev-week-head{margin:4px 0 10px;font:700 15px var(--f-cond);letter-spacing:.08em;text-transform:uppercase;color:#F6EBD3}
 .ev-day{margin:0 0 10px;padding:8px 10px;border:1px solid #2A2233;border-radius:10px;background:#15101C}
 .ev-day--empty{display:flex;align-items:baseline;gap:14px;padding:8px 12px}
 .ev-day--halloween{background:#1A1030;border-color:#7B4BD6}
 .ev-day__head{margin:0 0 8px;display:flex;align-items:baseline;gap:8px;font:700 15px var(--f-cond);letter-spacing:.08em;text-transform:uppercase;color:#F6EBD3}
 .ev-day--empty .ev-day__head{margin:0}
 .ev-day__flag{margin-left:auto;font-style:normal;font-size:12px;color:#B48CFF}
 .ev-day__empty{margin:0;font-size:13px;color:#7E7389}
 .ev-day .event-card,.ev-open .event-card{margin:0 0 8px}
 .ev-key{display:flex;flex-wrap:wrap;gap:6px 14px;padding:8px 2px 0;font-size:12px;color:#CFC4B0}
 .ev-key span::before{content:"";display:inline-block;width:10px;height:3px;margin-right:6px;vertical-align:middle;background:var(--event-color)}
 .ev-open{background:#0E1C1B!important;border:1px solid #1F3B39!important}
 .ev-open .event-card{border:0!important;border-top:3px solid var(--event-color)!important;background:#1A1522!important}
 html body .event-card{padding:12px 14px!important;gap:6px!important}
 html body .event-card .event-card__head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
 html body .event-card .event-card__name{margin:0;font:700 19px/1.15 var(--f-cond);letter-spacing:0;text-transform:none}
 html body .event-card .event-type-pill{margin-left:0!important;height:20px;display:inline-flex;align-items:center;padding:0 8px;border-radius:4px;font:800 11px var(--f-body);letter-spacing:.04em;text-transform:uppercase}
 .event-card__clamp{display:block;overflow:visible}
 .event-card__details.is-expanded .event-card__clamp{display:block;-webkit-line-clamp:unset}
 .card__more{padding:0;border:0;background:none;color:#B48CFF;font:600 12px var(--f-body);cursor:pointer;min-height:28px}
 html body .event-card p,html body .event-card .chips{margin:0}
 html body .event-card .chips .chip,html body .card--compact .chips .chip{min-height:22px;padding:0 9px;border:1px solid #3A3046;border-radius:11px;background:transparent;color:#CFC4B0;font:500 12px/20px var(--f-body)}
 html body .event-card .card__address{min-height:28px}
 html body .event-card .card__actions{display:flex!important;flex-wrap:wrap;align-items:center;gap:6px 10px}
 .hf-cluster{width:36px;height:36px;background:#1C1626!important;border:2px solid var(--cl,#FF7A1A);color:var(--cl,#FF7A1A);font:800 14px var(--f-body);box-shadow:0 0 0 3px #0B0910,0 0 0 5px var(--cl,#FF7A1A);display:flex;align-items:center;justify-content:center;border-radius:50%}
 .hf-cluster--displays{--cl:#FF7A1A}.hf-cluster--treats{--cl:#A6E22E}
 html body .card--compact{padding:12px 14px;gap:6px}
 html body .card--compact .card__head{align-items:flex-start}
 html body .treat-stop-card{border-top:3px solid #A6E22E}
 .treat-prompt{margin:8px 0 4px;padding:12px 14px;border:1px dashed #3A3046;border-radius:10px;color:#CFC4B0;font-size:13px}
 .treat-prompt__link{display:inline-flex;align-items:center;min-height:44px;font:700 13px var(--f-cond);letter-spacing:.08em;text-transform:uppercase;color:#A6E22E;text-decoration:none}
}
@media(max-width:1023px){
 html body .map-peek .map-popup__photo{display:none}
 html body .map-peek .map-popup{display:block;width:auto;max-width:none;position:relative;padding:12px 14px;border:2px solid #FF7A1A;border-radius:10px;background:#1A1322}
 html body .map-peek .map-popup__body{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;padding:0}
 html body .map-peek .map-popup__name{flex:1 0 100%;margin:0;padding-right:44px;font:700 19px/1.15 var(--f-cond)}
 html body .map-peek .map-popup__meta{flex:1 0 100%;margin:0;font-size:13px;color:#A89DB4}
 html body .map-peek .map-popup__add{width:auto;min-height:44px;margin-top:6px;padding:0 14px;font:800 13px var(--f-cond)}
 html body .map-peek .map-popup__full{margin-top:6px}
 html body .map-peek .map-popup__close{position:absolute;top:2px;right:2px;width:44px;height:44px}
 html body .map-float-btn--search{top:12px;bottom:auto!important;min-height:44px;padding:0 16px;border:1px solid #3A3046;border-radius:22px;background:#16111E;color:#F6EBD3;font:700 13px/1 var(--f-cond);letter-spacing:.06em;transform:translate(-50%,-8px)}
 html body .map-float-btn--search.is-visible{transform:translate(-50%,0)}
}
@media(max-width:1023px){
 html body .filter-rail__head{display:none}
 html body .filter-rail [data-rail-clear]{display:none}
 .filter-rail__section{margin:0 0 18px}
 .filter-rail__section h3{margin:0 0 8px;font:700 12px var(--f-cond);letter-spacing:.14em;text-transform:uppercase;color:#7E7389}
 .filter-rail__chips{display:flex;flex-wrap:wrap;gap:8px}
 html body .filter-rail .filter.filter--rail{min-height:36px;height:auto;padding:4px 14px;border:1px solid #3A3046;border-radius:18px;background:transparent;color:#CFC4B0;font:600 14px/1.2 var(--f-body);text-align:left;text-transform:none;letter-spacing:0;box-shadow:none}
 html body .filter-rail .filter.filter--rail[aria-pressed="true"]{border-color:#FF7A1A;background:rgba(255,122,26,.16);color:#FFB27A}
 .route-stop__name{min-width:0}
 .route-stop__remove{flex:none;white-space:nowrap}
}

/* ---- design review round 3 (2026-10-15) ---- */
:focus:not(:focus-visible){outline:none}
.filterbar__rail-count,.filterbar__rail-caret{display:none}
@media(min-width:1024px){
 .filterbar__rail-caret{display:inline;margin-left:auto;color:#A89DB4;font-size:13px;line-height:1;transition:transform .15s ease}
 .filterbar__rail-head:hover .filterbar__rail-caret{color:#F6EBD3}
 .filterbar__rail-count{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:#FF7A1A;color:#120E18;font:800 12px/1 var(--f-body)}
 .filterbar__rail-count[hidden]{display:none}
 html[data-rail="collapsed"] .filterbar__rail-caret{display:none}
 html[data-rail="collapsed"] .filterbar__rail-count{position:absolute;top:6px;right:4px;min-width:16px;height:16px;font-size:10px;padding:0 3px}
 html[data-rail="collapsed"] .filterbar__rail-head{position:relative}
 /* card action row: both route states are the same width, the row never wraps */
 html body .card--compact .card__actions{flex-wrap:nowrap!important;gap:6px 8px!important}
 html body .card--compact .card__actions .card__route-btn{flex:none;min-width:132px;white-space:nowrap}
 html body .card--compact .card__actions .card__notes,html body .card--compact .card__actions .card-rating,html body .card--compact .card__actions .card__metalink{flex:0 1 auto;white-space:nowrap}
 html body .card--compact .card__actions .card__notes[open]{flex:1 0 100%;white-space:normal}
 /* route panel: at most 420px, anchored to the left of the map */
 html .route-wrap{width:min(420px,calc(100% - 24px))!important}
}
/* About: readable body copy */
.about-article{max-width:680px;margin-left:auto;margin-right:auto}
.about-article p{font-size:17px;line-height:1.6;color:#E8DEC8;margin:0 0 1em}
.about-article .about-kicker{font-size:14px;margin-bottom:.4em}
.about-article .about-dek{color:#CFC4B0}
.about-article blockquote p{font-size:18px;margin:0}
/* slim nav on About, Alerts */
.alerts-nav{max-width:640px;margin:0 auto 16px;padding:0 2px}
.alerts-nav a{color:#B48CFF}
.alerts-nav .subpage-nav__home{color:#F6EBD3}
@media(min-width:1024px){
 .filterbar .filterbar__rail-head .filterbar__rail-caret{display:inline;margin-left:auto;color:#A89DB4;font-size:13px;line-height:1}
 .filterbar .filterbar__rail-head:hover .filterbar__rail-caret{color:#F6EBD3}
 .filterbar .filterbar__rail-head .filterbar__rail-count{display:inline-flex;margin-left:8px;color:#120E18;font:800 12px/1 var(--f-body)}
 .filterbar .filterbar__rail-head .filterbar__rail-count[hidden]{display:none}
 html[data-rail="collapsed"] .filterbar .filterbar__rail-head .filterbar__rail-caret{display:none}
 html[data-rail="collapsed"] .filterbar .filterbar__rail-head .filterbar__rail-count{margin-left:0}
}

/* route stop numbers on pins (only while the route is open) and hover rings */
.pin__stop{position:absolute;top:-7px;right:-9px;min-width:18px;height:18px;box-sizing:border-box;padding:0 4px;border:2px solid #0B0910;border-radius:9px;background:#FF7A1A;color:#120E18;font:800 11px/14px var(--f-body);text-align:center;pointer-events:none;z-index:2}
.pin--treat .pin__stop{background:#A6E22E}.pin--event .pin__stop{background:#B48CFF}
.pin::after{content:"";position:absolute;inset:-5px -4px 2px;border:2px solid transparent;border-radius:50%;pointer-events:none;transition:border-color .15s ease}
.pin.is-linked::after{border-color:#F6EBD3}
.leaflet-marker-icon.is-linked .hf-cluster{box-shadow:0 0 0 3px #0B0910,0 0 0 5px #F6EBD3}
.card.is-linked{outline:2px solid #F6EBD3;outline-offset:-2px}

/* ---- card layout spec (docs/card-layout-spec-2026-10-15.md) ---- */
/* Host notes on the hours row; scare level (Family Friendly) leads the tags row */
.card__hours-row{display:flex;flex-wrap:wrap;align-items:center;gap:0 12px;min-width:0}
.card__hours-row .card__hours{flex:0 1 auto;min-width:0}
.card__hours-row .card__notes{flex:0 0 auto}
.card__hours-row .card__notes[open]{flex:1 0 100%;order:9}
.card__tags .card__scare{display:inline-flex;align-items:center;font:500 13px/1 var(--f-body);color:var(--text-3)}
@media(max-width:767px){.card__tags .card__scare{display:none}}
/* route button: 30px tall, min 118px wide, 13px type; both states the same width */
@media(min-width:1024px){html:not([data-category="events"]) body .card--compact .card__actions .card__route-btn{height:30px;min-height:30px!important;min-width:118px;padding:0 9px;font-size:13px;flex:none;white-space:nowrap}}

/* ---- design round 3 (v7 Compact mock): icon-only tags, filter-chip icons, event hours line, no heart ---- */
.chip--icon{width:26px;height:26px;min-height:26px!important;padding:0!important;border-radius:13px!important;display:inline-flex;align-items:center;justify-content:center;border:1px solid #3A3046;color:#CFC4B0;box-sizing:border-box}
.chip--icon svg{width:14px;height:14px;flex:none}
.filter--rail svg{width:14px;height:14px;flex:none;margin-right:6px;vertical-align:-2px}
.event-card__hours{margin:0;font:500 14px/1.3 var(--f-body);color:#E4D9F2}

/* ---- design round 3, item 3 (3a-3g): card rows to the v7 Compact mock ---- */
html body #cardList .card--compact .card__addrline{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;margin:0;min-width:0}
html body #cardList .card--compact .card__addrline .card__address{font:600 14px/1.3 var(--f-body);color:#B48CFF;min-height:0;margin:0}
html body #cardList .card--compact .card__addrline .card__distance{font:500 13px/1.3 var(--f-body);color:#A89DB4;white-space:nowrap}
html body #cardList .card--compact .card__addrline .card__distance::before{content:"· "}
html body #cardList .card--compact .card__hours-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:0 12px;margin:0}
html body #cardList .card--compact .card__hours-row .card__hours{flex:0 1 auto;min-width:0;margin:0;font:500 14px/1.3 var(--f-body);color:#E4D9F2}
html body #cardList .card--compact .card__hours-row .card__notes{flex:none;margin:0}
html body #cardList .card--compact .card__hours-row .card__notes summary{font:600 12px/1.3 var(--f-body);color:#B48CFF;white-space:nowrap;min-height:0;padding:0}
html body #cardList .card--compact .card__hours-row .card__notes[open]{flex:1 0 100%;order:9;margin-top:6px}
html body #cardList .card--compact .card__scare-row{display:block;margin:0}
html body #cardList .card--compact .card__scare-row .card__scare{display:inline-flex;align-items:center;font:500 12px/1.3 var(--f-body);color:#A89DB4}
html body #cardList .card--compact .card__scare-row .pip{border-color:#FF7A1A}
html body #cardList .card--compact .card__scare-row .pip.is-on{background:#FF7A1A}
html body #cardList .card--compact .card__tags{display:flex;flex-wrap:wrap;gap:5px;margin:0}
@media(max-width:767px){html body #cardList .card--compact .card__scare-row{display:none}}
@media(min-width:1024px){
 html body #cardList .card--compact{padding:12px 14px;gap:7px}
 html body #cardList .card--compact>:not(.card__head){margin-left:36px}
 html body #cardList .card--compact .card__actions{display:flex!important;flex-wrap:nowrap!important;align-items:center;gap:12px!important;margin-top:0;min-width:0}
 html:not([data-category="events"]) body #cardList .card--compact .card__actions .card__route-btn{height:30px;min-height:30px!important;min-width:128px;padding:0 12px;border:1px solid #A6E22E;border-radius:7px;font:800 13px var(--f-cond);letter-spacing:.08em;flex:none;white-space:nowrap}
 html body #cardList .card--compact .card__actions .card__meta{display:flex;flex:1;min-width:0;flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:12px;margin:0;padding:0;border:0}
 html body #cardList .card--compact .card__actions .card__meta-left,html body #cardList .card--compact .card__actions .card__meta-right{display:flex;flex-wrap:nowrap;align-items:center;gap:12px;margin:0;min-width:0}
 html body #cardList .card--compact .card__actions .card-rating,html body #cardList .card--compact .card__actions .card__metalink{font:500 12px/1.3 var(--f-body);min-height:0;padding:0;white-space:nowrap}
}
@media(min-width:1024px){
 html body #cardList .card--compact:not(.treat-stop-card)>.card__scare-row{grid-column:1/-1;justify-self:start}
 html body #cardList .card--compact .card__head{gap:8px;align-items:center}
 html body #cardList .card--compact .card__head .card__pin{width:28px;height:33px;flex:0 0 28px;margin-top:0}
 html body #cardList .card--compact .card__head .card__pin .pin{width:28px;height:33px}
}
@media(min-width:1024px){
 html body #cardList .card--compact .card__head{height:22px;min-height:0;align-items:flex-start;margin-bottom:-7px}
 html body #cardList .card--compact .card__head .card__pin{margin-top:-5px}
 html body #cardList .card--compact .card__actions .card-rating{color:#A89DB4}
 html body #cardList .card--compact .card__actions .card-rating__rate{color:#B48CFF;font-weight:600;text-decoration:none}
 html body #cardList .card--compact .card__actions .card__metalink{color:#A89DB4;font-weight:600}
}

/* About: icon key (design round 3 item 16) */
.icon-key{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px 16px}
.icon-key li{display:flex;align-items:center;gap:10px;font:500 15px/1.3 var(--f-body);color:#E8DEC8}
.icon-key__icon{flex:none;width:26px;height:26px;border-radius:13px;border:1px solid #3A3046;display:inline-flex;align-items:center;justify-content:center;color:#CFC4B0}
.icon-key__icon svg{width:14px;height:14px}

/* ---- design round 4 ---- */
.type-dot{flex:none;width:10px;height:10px;border-radius:50%;margin-right:6px;display:inline-block;vertical-align:0}
.event-type-pill{color:#120E18}

/* round 4 item 1: v2 icon set. Map pins 34px (30px mobile), selected/hover 44px with a 2px ring; card icons 28px. */
html body .pin{width:30px;height:37px}
@media(min-width:768px){html body .pin{width:34px;height:41px}}
html body .pin.is-linked,html body .pin.is-selected{transform:scale(1.294);filter:drop-shadow(0 3px 5px rgba(0,0,0,.55))}
html body .pin::after{inset:-3px -3px 6px}
html body .pin.is-linked::after,html body .pin.is-selected::after{border-color:#F6EBD3}
html body #cardList .card--compact .card__head .card__pin,html body #cardList .card--compact .card__head .card__pin .pin{width:28px;height:28px}
html body #cardList .card--compact .card__head .card__pin{flex:0 0 28px;margin-top:-3px}
html body #cardList .card--compact .card__head .card__pin .pin::after{display:none}

/* round 4 item 9: expanded route panel */
@media(min-width:1024px){
 html .route-wrap{flex-direction:column!important;background:#1A1322!important;overflow:hidden!important}
 html .route-wrap .route-panel{background:#1A1322;overflow-x:hidden;border-bottom:0;padding:12px 14px 14px}
 html .route-wrap .route-toggle[aria-expanded="true"]{border-bottom:1px solid #2E2638;border-radius:0}
 html .route-wrap .route-stops{display:grid;gap:12px;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#3A3046 transparent;margin:0 0 14px}
 html .route-wrap #routeStopsMini .route-stop{gap:12px;padding:0;cursor:default;min-width:0}
 html .route-wrap #routeStopsMini .route-stop::after{display:none}
 html .route-wrap #routeStopsMini .route-stop__n{width:32px;height:32px;font:800 16px/1 var(--f-body)}
 html .route-wrap #routeStopsMini .route-stop__name{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 16px/1.3 var(--f-body);color:#F6EBD3}
 html .route-wrap #routeStopsMini .route-stop__remove{flex:none;white-space:nowrap;min-height:0;min-width:0;padding:0}
}

/* round 4 item 8: filter groups stack from the top, 24px apart (no stretch / space-between) */
html:not([data-hf-rail="off"]) .filter-rail .filters{display:flex;flex-direction:column;justify-content:flex-start;align-content:flex-start;gap:24px;flex:0 0 auto}
html:not([data-hf-rail="off"]) .filter-rail .filter-rail__section{margin:0;flex:0 0 auto}
html body #cardList .card--compact .card__scare-row,html body #cardList .card--compact .card__scare-row .card__scare{height:16px;line-height:16px}
html body #cardList .card--compact .card__scare-row .pips{vertical-align:baseline;margin-right:5px}
/* fixed footer: the filter groups scroll, the links stay in view */
@media(min-width:1024px){html:not([data-hf-rail="off"]) .filter-rail .filter-rail__links{position:sticky;bottom:-14px;z-index:2;margin-top:auto;padding-bottom:14px;background:var(--panel)}}

/* ---- round 4: shared nav (Submit, Alerts, About), links, Submit cards, Alerts checkboxes, About quotes ---- */
.subpage-head{height:56px;box-sizing:border-box;padding:0 18px;border-bottom:1px solid #2E2638;display:flex;align-items:center;background:transparent}
.subpage-nav{width:100%;max-width:860px;height:56px;margin:0 auto;display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:12px 18px}
.subpage-nav__home{font:700 18px/1.2 'Barlow Condensed',system-ui,sans-serif;letter-spacing:.02em;color:#F6EBD3;text-decoration:none;white-space:nowrap}
.subpage-nav__home:hover{color:#F6EBD3;text-decoration:underline}
.subpage-nav__links{display:flex;flex-wrap:nowrap;gap:4px 18px}
.subpage-nav__links a{font:600 16px/1 'Barlow',system-ui,sans-serif;color:#B48CFF;text-decoration:none;padding:18px 0 16px;border-bottom:2px solid transparent;white-space:nowrap}
.subpage-nav__links a:hover{color:#F6EBD3}
.subpage-nav__links a[aria-current="page"]{color:#FF7A1A;border-bottom-color:#FF7A1A}
@media(max-width:520px){.subpage-nav{gap:8px}.subpage-nav__links{gap:4px 10px}.subpage-nav__links a{font-size:14px}.subpage-nav__home{font-size:16px}}
.alerts-page{padding:0 0 48px}
body.alerts-page{padding:0 0 48px}
.alerts-page .alerts-box{margin:24px auto 0;max-width:640px;width:calc(100% - 32px);box-sizing:border-box}
.subpage a,.alerts-page a{text-decoration:none}
.subpage a:hover,.alerts-page a:hover{text-decoration:underline}
.subpage-nav__links a:hover,.subpage-nav__home:hover{text-decoration:none}
.subpage-nav__home:hover{text-decoration:underline}
.subpage-foot a,.about-info a{color:#B48CFF;text-decoration:none}
.subpage-foot a:hover,.about-info a:hover{color:#F6EBD3;text-decoration:underline}
/* Submit: type colors + v2 icons, uppercase display title */
.subpage-main h1{text-transform:uppercase;font-size:40px}
@media(max-width:600px){.subpage-main h1{font-size:28px}}
.type-option{flex-direction:row;align-items:center;gap:14px}
.type-option__icon{flex:none;width:32px;height:32px}
.type-option__text{display:flex;flex-direction:column;gap:4px;min-width:0}
.type-option[data-type-link="display"]{border-color:#FF7A1A}.type-option[data-type-link="display"] .type-option__name::after{color:#FF7A1A}
.type-option[data-type-link="treat"]{border-color:#A6E22E}.type-option[data-type-link="treat"] .type-option__name::after{color:#A6E22E}
.type-option[data-type-link="event"]{border-color:#B48CFF}.type-option[data-type-link="event"] .type-option__name::after{color:#B48CFF}
.type-option[data-type-link="shop"]{border-color:#3FD0C0}.type-option[data-type-link="shop"] .type-option__name::after{color:#3FD0C0}
.type-option__note{color:var(--mist);font:500 13px/1.35 var(--f-body)}
/* Alerts: dark checkboxes with an orange checked state; consent aligned with the other rows */
.alerts-page .alerts-box input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:none;width:20px;height:20px;margin:0;border:2px solid #3A3046;border-radius:4px;background:#16111E;display:inline-grid;place-content:center;cursor:pointer;accent-color:#FF7A1A}
.alerts-page .alerts-box input[type=checkbox]:checked{background:#FF7A1A url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23120E18' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat;border-color:#FF7A1A}
.alerts-page .alerts-box .consent{display:flex;align-items:flex-start;gap:10px;padding:10px 0 10px 17px;margin:0}
.alerts-page .alerts-box .consent input[type=checkbox]{margin-top:3px}
.alerts-box button[type=submit]:disabled{opacity:.45;cursor:not-allowed}
/* About: pull quotes use a top border, not a left accent */
.about-article blockquote{margin:24px 0;padding:20px;border-left:0;border-top:3px solid #B48CFF;border-radius:0;background:#1A1322}
.about-article blockquote p{font:italic 500 19px/1.5 'Barlow',system-ui,sans-serif;margin:0;color:#F6EBD3}
.icon-key--types{margin:12px 0 4px;padding-bottom:12px;border-bottom:1px solid #2E2638}
.icon-key__type{flex:none;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center}

/* ---- photo card: front, back, flip (design: Hauntfinder Photo Card.dc.html) ----
   The flipper is a one-cell grid. The front face sets the height; the back never does:
   its photo is absolutely positioned and covers the face. */
.card--compact.card--flip{padding:0!important;gap:0!important;display:block!important}
html body #cardList .card--compact.card--flip{padding:0;gap:0;display:block}
.card--compact.card--flip .card-flip__inner{display:grid}
.card--compact.card--flip .card-face{grid-area:1/1;min-width:0}
.card--compact.card--flip .card-face--front{display:flex;flex-direction:column;gap:7px;padding:12px 14px}
.card--compact.card--flip .card-face--back{position:relative;display:block;padding:0!important;overflow:hidden;border-radius:inherit;background:#0E0B13}
.card--compact.card--flip .card__photo{position:absolute;inset:0;width:100%;height:100%;min-height:0;object-fit:contain;object-position:center;image-orientation:from-image;display:block;flex:none}
.card--compact.card--flip .card__back-bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:linear-gradient(to top,rgba(11,9,16,.94) 55%,rgba(11,9,16,0));border-top:0}
.card--compact.card--flip .card__back-meta strong{font:700 17px/1.2 var(--f-cond);color:#F6EBD3;text-shadow:0 1px 3px #000}
.card--compact.card--flip .card__back-meta span{color:#E4D9F2;text-shadow:0 1px 3px #000}
/* title row: name (truncates) + the Photo pill, never wrapping */
.card--compact.card--flip .card__heading{display:flex;align-items:center;gap:8px;min-width:0}
.card--compact.card--flip .card__name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card--compact.card--flip .card__nametext{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card--compact.card--flip .card__namebtn{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.card--compact.card--flip .card__photo-pill{position:relative;flex:none;min-height:22px;height:22px;margin:0;padding:0 10px;font:700 11px/1 var(--f-cond);white-space:nowrap;vertical-align:baseline}
.card--compact.card--flip .card__photo-pill::before{content:"";position:absolute;inset:-11px -4px}
.card--compact.card--flip .card__details-btn{min-height:36px}
@media(min-width:1024px){
 html body #cardList .card--compact.card--flip .card-face--front>:not(.card__head){margin-left:36px}
 html body #cardList .card--compact.card--flip .card-face--front .card__head{margin-bottom:-7px}
}
@media(max-width:1023px){.card--compact.card--flip .card-face--front{padding:14px}}
.card--compact.card--flip .card-flip__inner{grid-template-columns:minmax(0,1fr)}
.card--compact.card--flip{overflow:hidden}
html body #cardList .card--compact.card--flip>.card-flip{margin-left:0}

/* ---- photo lightbox (PHOTO-PORTRAIT-FIX.md section 2, mock P6) ---- */
.photo-trigger{position:relative;display:block;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:zoom-in;-webkit-tap-highlight-color:transparent}
.photo-trigger__icon{position:absolute;top:8px;left:8px;width:28px;height:28px;border-radius:50%;background:rgba(11,9,16,.7);color:#F6EBD3;display:grid;place-items:center;pointer-events:none}
.map-popup__photo{position:relative}
.map-popup__photo-btn{width:100%;height:100%}
.card--compact.card--flip .card__photo-btn{position:absolute;inset:0;width:100%;height:100%}
.photo-trigger:focus-visible{outline:2px solid #B48CFF;outline-offset:-2px}
.lightbox{position:fixed;inset:0;z-index:3000;display:flex;flex-direction:column;background:rgba(8,6,12,.94);opacity:0;transition:opacity .15s ease;overscroll-behavior:contain}
@media(min-width:1024px){
 html:not([data-fullmap]) .map-peek{bottom:calc(var(--route-popup-clearance, 10px) + env(safe-area-inset-bottom))}
}
.lightbox.is-in{opacity:1}
@media(prefers-reduced-motion:reduce){.lightbox{transition:none}}
.lightbox__bar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 8px 8px 20px;min-height:60px;box-sizing:border-box}
.lightbox__meta{display:flex;flex-direction:column;gap:2px;min-width:0}
.lightbox__meta strong{font:700 20px/1.2 var(--f-cond,'Barlow Condensed',sans-serif);color:#F6EBD3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lightbox__meta span{font:500 14px/1.3 var(--f-body,'Barlow',sans-serif);color:#A89DB4}
.lightbox__close{flex:none;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:#F6EBD3;font-size:30px;line-height:1;cursor:pointer}
.lightbox__close:hover{background:rgba(246,235,211,.12)}
.lightbox__close:focus-visible{outline:2px solid #B48CFF;outline-offset:2px}
.lightbox__stage{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;padding:0 16px 16px;touch-action:pinch-zoom}
.lightbox__img{display:block;width:100%;max-width:100%;height:calc(100dvh - 140px);max-height:calc(100dvh - 140px);object-fit:contain;object-position:center;image-orientation:from-image;touch-action:pinch-zoom}
@media(max-width:767px){.lightbox{height:100dvh}.lightbox__stage{padding:0 0 8px}.lightbox__img{width:100%;height:calc(100dvh - 68px);max-height:calc(100dvh - 68px)}}
html.lightbox-open,html.lightbox-open body{overflow:hidden}

/* collapsed filter panel (desktop only; the mobile filter sheet reuses these elements): only the vertical "Show filters" label and the count badge. The round 4 stacking rules
   (display:flex on .filters, sticky .filter-rail__links) must never win while the panel is collapsed. */
@media(min-width:1024px){html[data-rail="collapsed"] .filter-rail .filters,html[data-rail="collapsed"] .filter-rail .filter-rail__links,html[data-rail="collapsed"] .filter-rail .filter-rail__section{display:none!important}}

/* design v7 Compact: the footer links are ONE column (submit, share, about, alerts, contact, then the visit count) */
html .filter-rail .filter-rail__links #railVisits{font:500 12px/1.35 var(--f-body);letter-spacing:0;text-transform:none;color:#7E7389}
html .filter-rail .filter-rail__links #railVisits[hidden]{display:none}

/* Shops, Makers & Services entry point in the current map chrome. */
.shops-nav-link{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;color:#A89DB4;font:600 13px var(--f-body);text-decoration:none;white-space:nowrap;border-left:1px solid #2E2638}.shops-nav-link:hover,.shops-nav-link:focus-visible{color:#F6EBD3}
@media(min-width:1280px){
 .filterbar .nav-row{grid-template-columns:260px minmax(300px,440px) minmax(280px,1fr) auto}
 html[data-rail="collapsed"] .filterbar .nav-row{grid-template-columns:44px minmax(300px,440px) minmax(280px,1fr) auto}
 .filterbar .nav-search{grid-column:3;grid-row:1}
 .shops-nav-link{grid-column:4;grid-row:1;justify-self:end;min-height:48px;border-left:1px solid #2E2638;border-right:0}
}

/* Events week view: current Sun–Sat week, no map, 440px cards on the right. */
.events-weeknav{display:flex;align-items:center;gap:4px 8px;flex:0 0 auto;min-width:max-content}
.events-weeknav__btn{min-height:44px;padding:0 10px;border:0;background:transparent;color:var(--purple,#B48CFF);font:700 15px/1 var(--f-cond);letter-spacing:.04em;cursor:pointer;white-space:nowrap}
.events-title{flex:0 0 auto;white-space:nowrap}
.events-weeknav__btn:disabled{color:var(--text-3,#7E7389);cursor:default;opacity:.45}
.events-weeknav__btn:focus-visible,.events-weeknav .btn:focus-visible{outline:2px solid var(--purple,#B48CFF);outline-offset:2px}
.event-col--today .event-col__dom{color:var(--purple,#B48CFF)}
.event-col__today{flex-basis:100%;font:700 11px/1.3 var(--f-cond);letter-spacing:.08em;text-transform:uppercase;color:var(--purple,#B48CFF)}
.mday--today .mday__head{color:var(--purple,#B48CFF)}
#allEventDays.btn{min-height:50px;height:50px;padding:0 16px;border-radius:999px;font:600 15px/1 var(--f-cond);letter-spacing:.05em}
#allEventDays[aria-pressed="true"]{background:var(--cream,#F6EBD3);color:#0B0910;border-color:var(--cream,#F6EBD3)}
#allEventDays[aria-pressed="false"]{background:transparent;color:var(--cream,#F6EBD3);border-color:var(--cream,#F6EBD3)}
#thisWeek.btn{min-height:32px;height:32px;padding:0 10px;border-width:1px;font:600 13px/1 var(--f-body);letter-spacing:0}
.event-card .chips .chip{display:inline-flex;align-items:center;height:26px;padding:0 8px;border-radius:13px;border:1px solid #3A3046;background:transparent;color:#CFC4B0;font:500 12px/1 var(--f-body)}
html[data-category="events"] .events-column-head .events-head-count{display:inline;color:var(--text-3,#A89DB4);font-size:14px;white-space:nowrap}
@media(max-width:959px){
 html[data-category="events"] .events-head{display:flex;flex-direction:column;align-items:stretch;gap:8px}
 html[data-category="events"] .events-weeknav{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:4px;width:100%;min-width:0}
 html[data-category="events"] .events-weeknav__btn{flex:0 0 auto;padding:0 2px;min-height:36px;font-size:13px}
 html[data-category="events"] .events-weeknav .events-title{flex:1 1 auto;min-width:0;text-align:center;white-space:nowrap;font-size:14px;line-height:1.15}
 html[data-category="events"] .events-weeknav .events-title::before,html[data-category="events"] .events-weeknav .events-title::after{content:"·";margin:0 4px;color:#7E7389;font-weight:500}
 html[data-category="events"] .events-head__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
 html[data-category="events"] #eventCalendar{padding:12px 12px 4px}
}
@media(max-width:1023px){
 html[data-category="events"] body .map-column,html[data-mview="map"][data-category="events"] body .map-column{display:block;position:static;inset:auto;top:auto;right:auto;bottom:auto;left:auto;width:auto;height:auto}
 html[data-category="events"] body .map-frame{display:none!important}
 html[data-category="events"] body #eventCalendar{display:block!important}
 html[data-category="events"] body .list-column{display:none}
 html[data-category="events"] .mobile-bar__view{display:none}
}
@media(min-width:1024px){
 html[data-category="events"] .events-head{flex-wrap:wrap;align-items:center;row-gap:8px}
 html[data-category="events"] .events-weeknav{flex:1 0 auto;gap:4px 6px}
 html[data-category="events"] .events-head__actions{flex:1 1 auto;margin-left:auto;justify-content:flex-end}
 html[data-category="events"] .app__main.page-grid{grid-template-columns:260px minmax(0,1fr) 440px;grid-template-rows:minmax(0,1fr) auto}
 html[data-rail="collapsed"][data-category="events"] .app__main.page-grid{grid-template-columns:44px minmax(0,1fr) 440px}
 html[data-category="events"] .filter-rail{grid-column:1;grid-row:1 / span 2}
 html[data-category="events"] .map-column{grid-column:2;grid-row:1;min-height:0;height:auto;overflow:auto;align-self:stretch}
 html[data-category="events"] .map-frame{display:none!important}
 html[data-category="events"] #eventCalendar{display:block!important;padding:16px 16px 8px}
 html[data-category="events"] .list-column{grid-column:3;grid-row:1 / span 2;width:440px;max-width:440px}
 html[data-category="events"]:not([data-hf-rail="off"]) .route-wrap{grid-column:2;grid-row:2;align-self:stretch;justify-self:stretch;width:auto;max-width:none;margin:0;z-index:2;position:relative;border-radius:0}
}
@media(max-width:1023px){
 html[data-category="events"] .mobile-bar{position:fixed;left:0;right:0;bottom:0;z-index:1000}
 html[data-category="events"] #eventCalendar{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
}
html[data-category="events"] .events-column-head.is-day .events-day-heading{text-transform:none;letter-spacing:0;font:600 15px/1.3 var(--f-body);color:#F6EBD3}
html[data-category="events"] .events-column-head.is-day .events-head-count{display:none}

/* Secondary pages reuse the map banner (site-chrome.js) and these tab styles.
   The nav is only the category links plus Shops & Services: no filter column and no ZIP search. */
html body .filterbar.site-nav{position:relative;z-index:40;background:#0B0910;border-bottom:1px solid #2E2638;padding:0;overflow:visible}
html body .filterbar.site-nav .nav-row{display:flex;flex-direction:row;align-items:stretch;flex-wrap:nowrap;gap:0;width:100%;height:48px;min-height:48px;max-height:none;padding:0;margin:0}
html body .filterbar.site-nav .tabs{display:flex;align-items:stretch;flex:1 1 auto;width:100%;grid-column:1 / -1;height:48px;padding:0 8px 0 12px;border:0;border-right:0;gap:0;overflow:visible}
html body .filterbar.site-nav .shops-nav-link{margin-left:auto;align-self:stretch;box-sizing:border-box;border-bottom:3px solid transparent}
html body .shops-nav-link .shops-nav-badge{flex:none;margin-left:5px}
html body .menu-drawer__shops .shops-nav-badge{margin-left:8px}
html body .filterbar.site-nav .shops-nav-link[aria-current="page"]{color:#F6EBD3;border-bottom-color:#F6EBD3}
html body .filterbar.site-nav a:hover,html body .filterbar.site-nav a:focus{text-decoration:none}
.subpage .menu-drawer a:hover,.alerts-page .menu-drawer a:hover,.shops-page .menu-drawer a:hover{text-decoration:none}
@media(max-width:1023px){
 html body .filterbar.site-nav{position:sticky;top:0;z-index:800}
 html body .filterbar.site-nav .nav-row{height:44px!important;min-height:44px;max-height:44px;padding:0}
 html body .filterbar.site-nav .tabs{height:44px;padding:0}
 html body .filterbar.site-nav .shops-nav-link{display:inline-flex;flex:1 1 0;justify-content:center;margin-left:0;border-left:0;height:44px;min-height:44px;padding:0 4px;font:600 14px var(--f-body)}
 html body .filterbar.site-nav .tabs a.site-tab{flex:1 1 0}
}
@media(max-width:420px){
 html body .filterbar.site-nav .tabs a.site-tab,html body .filterbar.site-nav .shops-nav-link{font-size:12px;padding:0 2px;gap:3px}
 html body .filterbar.site-nav .shops-nav-link .shops-nav-badge{min-width:18px;height:18px;padding:0 3px;font-size:11px}
}

/* Round 3 mobile nav: Shops & Services is a full-width row (44px plus its 1px top border) under the three category tabs,
   on the map page and on every secondary page. No dropdown, "More" menu or fourth tab. */
.shops-nav-link__label--long{display:none}
@media(min-width:1280px){
 .shops-nav-link .shops-nav-link__label--short{display:none}
 .shops-nav-link .shops-nav-link__label--long{display:inline}
}
@media(max-width:1023px){
 html body .filterbar .shops-nav-link,html body .filterbar.site-nav .shops-nav-link{order:3;display:flex;flex:0 0 100%;align-items:center;justify-content:center;gap:0;box-sizing:border-box;width:100%;height:45px;min-height:45px;max-height:45px;margin:0;padding:0 12px;border:0;border-top:1px solid #2E2638;border-radius:0;background:transparent;color:#F6EBD3;font:600 14px/1 var(--f-body);letter-spacing:0;text-transform:none;text-decoration:none;white-space:nowrap}
 html body .filterbar .shops-nav-link:hover,html body .filterbar .shops-nav-link:focus,html body .filterbar .shops-nav-link:active{background:transparent;color:#F6EBD3;text-decoration:none}
 html body .filterbar .shops-nav-link:focus{outline:0}
 html body .filterbar .shops-nav-link:focus-visible{outline:2px solid #B48CFF;outline-offset:-2px}
 html body .filterbar .shops-nav-link[aria-current="page"],html body .filterbar.site-nav .shops-nav-link[aria-current="page"]{background:#1C1626;color:#F6EBD3;border-bottom:0}
 html body .filterbar .shops-nav-link[aria-current="page"]::after{content:"";flex:none;width:6px;height:6px;margin-left:8px;border-radius:50%;background:#F6EBD3}
 html body .filterbar .shops-nav-link[aria-current="page"] .shops-nav-badge{display:none}
 html body .filterbar.site-nav .nav-row{height:auto!important;max-height:none}
 html body .filterbar.site-nav .tabs{flex-wrap:wrap;height:auto}
 html body .filterbar.site-nav .tabs a.site-tab{height:44px}
 /* Map view: start the fixed map below the Shops row so all four sections stay one tap away. */
 html[data-mview="map"]{--mapbar-top:149px}
}
@media(max-width:420px){
 html body .filterbar .shops-nav-link,html body .filterbar.site-nav .shops-nav-link{padding:0 12px;font-size:14px;gap:0}
}
