:root{--vlv-orange:#c95f22;--vlv-orange-dark:#a64613;--vlv-ink:#222;--vlv-muted:#6b6b6b;--vlv-line:#e7e1db;--vlv-paper:#fffdf9;--vlv-soft:#f6f1ea;--vlv-white:#fff}
.vlv-halloween-guide{max-width:1180px;margin:0 auto;padding:0 18px 70px;color:var(--vlv-ink);font-family:inherit;box-sizing:border-box}
.vlv-halloween-guide *{box-sizing:border-box}.vlv-eyebrow{margin:0 0 6px;font-size:12px;letter-spacing:.14em;font-weight:800;color:var(--vlv-orange)}
.vlv-guide-tools{background:var(--vlv-paper);border:1px solid var(--vlv-line);border-radius:16px;padding:24px;margin:20px 0 26px;box-shadow:0 10px 30px rgba(40,30,20,.05)}
.vlv-tool-heading,.vlv-section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.vlv-tool-heading h2,.vlv-section-heading h2,.vlv-saved-drawer h2{margin:0;font-size:clamp(28px,4vw,44px);line-height:1.05;font-family:Georgia,'Times New Roman',serif;font-weight:700}
.vlv-section-heading{margin:38px 0 16px;align-items:flex-end}.vlv-section-heading p{margin:6px 0 0;color:var(--vlv-muted);max-width:680px}.vlv-section-count{font-size:13px;color:var(--vlv-muted);white-space:nowrap}
.vlv-saved-list-button,.vlv-saved-fab,.vlv-saved-actions button{border:0;border-radius:999px;background:var(--vlv-orange);color:#fff;padding:11px 17px;font-weight:800;cursor:pointer}.vlv-saved-count{display:inline-flex;min-width:24px;height:24px;align-items:center;justify-content:center;border-radius:999px;background:#fff;color:var(--vlv-orange);margin-left:6px;padding:0 6px}
.vlv-filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}.vlv-filter-button{appearance:none;border:1px solid #d9d2ca;background:#fff;color:var(--vlv-ink);border-radius:999px;padding:8px 13px;font-size:13px;font-weight:700;cursor:pointer}.vlv-filter-button:hover,.vlv-filter-button.is-active{background:var(--vlv-ink);border-color:var(--vlv-ink);color:#fff}
.vlv-search-row{display:flex;gap:10px;margin-top:16px}.vlv-search-row input{flex:1;border:1px solid #d9d2ca;border-radius:10px;padding:12px 14px;font-size:15px;background:#fff}.vlv-map-jump{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid #d9d2ca;padding:10px 14px;color:var(--vlv-ink);text-decoration:none;font-weight:700;background:#fff}
.vlv-map-section{margin:20px 0 45px}.vlv-map-wrap{position:relative}.vlv-events-map{height:470px;width:100%;border-radius:14px;border:1px solid var(--vlv-line);overflow:hidden;background:#eee}.vlv-map-empty{position:absolute;z-index:500;left:18px;right:18px;bottom:18px;background:rgba(255,255,255,.96);border:1px solid var(--vlv-line);border-radius:10px;padding:12px 14px;font-size:13px;box-shadow:0 4px 18px rgba(0,0,0,.08)}
.vlv-event-section{scroll-margin-top:24px}.vlv-event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.vlv-event-card{position:relative;border:1px solid var(--vlv-line);border-radius:14px;background:#fff;padding:18px;box-shadow:0 5px 20px rgba(38,30,22,.045);scroll-margin-top:24px}.vlv-event-card[hidden]{display:none!important}.vlv-event-card-top{display:flex;gap:14px;align-items:flex-start}.vlv-date-badge{width:55px;min-width:55px;border:1px solid #e1d8cf;border-radius:9px;background:var(--vlv-soft);text-align:center;overflow:hidden}.vlv-date-badge span{display:block;background:var(--vlv-orange);color:#fff;font-size:10px;letter-spacing:.12em;padding:5px 4px;font-weight:800}.vlv-date-badge strong{display:block;font-size:25px;line-height:1;padding:7px 3px 8px;font-family:Georgia,'Times New Roman',serif}.vlv-event-card-headings{min-width:0}.vlv-event-schedule{margin:0 0 5px!important;font-size:12px;color:var(--vlv-orange);font-weight:800}.vlv-event-card h3{font-size:20px!important;line-height:1.18!important;margin:0 0 6px!important;font-family:Georgia,'Times New Roman',serif}.vlv-event-location{margin:0!important;font-size:13px;color:var(--vlv-muted);line-height:1.4}.vlv-event-tags{display:flex;flex-wrap:wrap;gap:5px;margin:14px 0 10px}.vlv-event-tags span{font-size:10px;letter-spacing:.05em;font-weight:800;background:#f4eee7;color:#6d452d;border-radius:999px;padding:5px 8px}.vlv-event-summary{border-top:1px solid #eee7e0;padding-top:10px;margin-top:10px}.vlv-event-summary p,.vlv-event-details p{font-size:13px;line-height:1.45;margin:5px 0!important}.vlv-event-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:14px}.vlv-event-actions button,.vlv-save-control{appearance:none;border:0;background:transparent;color:#4b4b4b;font-size:12px;font-weight:800;padding:6px 7px;border-radius:7px;cursor:pointer}.vlv-event-actions button:hover,.vlv-save-control:hover{background:#f4eee7;color:var(--vlv-orange-dark)}.vlv-save-control{display:inline-flex;gap:5px;align-items:center}.vlv-save-control input{accent-color:var(--vlv-orange);margin:0}.vlv-save-control.is-saved{color:var(--vlv-orange-dark);background:#fff2e8}.vlv-event-details{margin-top:12px;padding:12px;border-radius:9px;background:var(--vlv-soft)}.vlv-detail-links{display:flex;gap:12px;flex-wrap:wrap}.vlv-detail-links a{color:var(--vlv-orange-dark);font-weight:700}.vlv-no-results{text-align:center;padding:34px;color:var(--vlv-muted)}
.vlv-saved-fab{position:fixed;right:22px;bottom:22px;z-index:9998;box-shadow:0 10px 30px rgba(0,0,0,.22)}.vlv-saved-overlay{position:fixed;inset:0;background:rgba(20,18,16,.42);z-index:9998}.vlv-saved-drawer{position:fixed;top:0;right:0;width:min(430px,94vw);height:100vh;background:#fff;z-index:9999;box-shadow:-20px 0 50px rgba(0,0,0,.15);padding:22px;transform:translateX(105%);transition:transform .22s ease;display:flex;flex-direction:column}.vlv-saved-drawer.is-open{transform:translateX(0)}.vlv-saved-drawer-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--vlv-line);padding-bottom:16px}.vlv-saved-drawer-head h2{font-size:32px}.vlv-close-drawer{border:0;background:transparent;font-size:34px;line-height:1;cursor:pointer}.vlv-saved-items{overflow:auto;flex:1;padding:8px 0}.vlv-saved-item{padding:14px 0;border-bottom:1px solid #eee7e0}.vlv-saved-item h3{font-size:17px!important;margin:0 0 5px!important}.vlv-saved-item p{font-size:12px;margin:3px 0!important;color:var(--vlv-muted)}.vlv-saved-item-actions{display:flex;gap:10px;margin-top:8px}.vlv-saved-item-actions button,.vlv-saved-item-actions a{font-size:12px;border:0;background:transparent;padding:0;color:var(--vlv-orange-dark);font-weight:800;cursor:pointer;text-decoration:none}.vlv-saved-actions{display:grid;gap:8px;border-top:1px solid var(--vlv-line);padding-top:14px}.vlv-saved-actions button{border-radius:9px}.vlv-saved-actions .vlv-clear-list{background:#f3efeb;color:#6b625c}.vlv-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:#222;color:#fff;border-radius:999px;padding:9px 14px;font-size:13px;z-index:10001;opacity:0;pointer-events:none;transition:.2s}.vlv-toast.is-visible{opacity:1;transform:translate(-50%,0)}
.vlv-popup-title{font-weight:800;font-size:15px;margin:0 0 4px}.vlv-popup-meta{font-size:12px;margin:0 0 8px;color:#555}.vlv-popup-event{padding:7px 0;border-top:1px solid #eee}.vlv-popup-event:first-of-type{border-top:0}.vlv-popup-event a{font-size:12px;font-weight:700;margin-right:8px;color:#a64613}.leaflet-popup-content{margin:14px 16px}.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background-color:rgba(201,95,34,.28)}.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{background-color:rgba(201,95,34,.9);color:#fff}
@media(max-width:900px){.vlv-event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vlv-tool-heading{align-items:flex-start}.vlv-saved-list-button{display:none}}
@media(max-width:620px){.vlv-halloween-guide{padding-left:12px;padding-right:12px}.vlv-guide-tools{padding:17px;border-radius:12px}.vlv-event-grid{grid-template-columns:1fr}.vlv-tool-heading,.vlv-section-heading{display:block}.vlv-section-count{display:block;margin-top:7px}.vlv-search-row{display:grid;grid-template-columns:1fr}.vlv-events-map{height:390px}.vlv-saved-fab{right:12px;bottom:12px}.vlv-event-card{padding:15px}.vlv-filter-row{gap:6px}.vlv-filter-button{font-size:12px;padding:7px 10px}}
@media print{body *{visibility:hidden!important}.vlv-print-sheet,.vlv-print-sheet *{visibility:visible!important}.vlv-print-sheet{position:absolute;left:0;top:0;width:100%;padding:20px;background:#fff}.vlv-print-sheet .no-print{display:none!important}}
.vlv-event-card.vlv-highlight{outline:3px solid rgba(201,95,34,.35);box-shadow:0 0 0 7px rgba(201,95,34,.10),0 8px 26px rgba(38,30,22,.08)}


/* Compact homepage promo. No map/scripts are loaded for this shortcode. */
.vlv-home-promo{position:relative;overflow:hidden;background:#191715;color:#fff;border-radius:14px;padding:24px 22px;border-top:4px solid var(--vlv-orange);box-shadow:0 8px 24px rgba(28,20,14,.12);font-family:inherit}
.vlv-home-promo:after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;right:-80px;top:-85px;border:1px solid rgba(255,255,255,.08);box-shadow:0 0 0 28px rgba(255,255,255,.025),0 0 0 56px rgba(255,255,255,.018);pointer-events:none}
.vlv-home-promo-kicker{position:relative;z-index:1;margin-bottom:7px;font-size:11px;letter-spacing:.16em;font-weight:800;color:#e7894d}
.vlv-home-promo h3{position:relative;z-index:1;margin:0 0 10px!important;color:#fff!important;font-family:Georgia,'Times New Roman',serif!important;font-size:clamp(25px,3vw,36px)!important;line-height:1.05!important}
.vlv-home-promo-copy{position:relative;z-index:1;margin:0 0 15px!important;max-width:620px;color:#e8e2dd;font-size:14px;line-height:1.5}
.vlv-home-promo-tags{position:relative;z-index:1;display:flex;gap:6px;flex-wrap:wrap;margin:0 0 17px}
.vlv-home-promo-tags span{border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:5px 8px;color:#f4efeb;font-size:10px;font-weight:700;line-height:1}
.vlv-home-promo-button{position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;background:var(--vlv-orange);color:#fff!important;text-decoration:none!important;border-radius:8px;padding:11px 14px;font-size:13px;font-weight:800;line-height:1.1}
.vlv-home-promo-button:hover{background:var(--vlv-orange-dark);color:#fff!important}
.vlv-home-promo-note{position:relative;z-index:1;margin:12px 0 0!important;color:#bdb4ad;font-size:11px;line-height:1.3}
@media(max-width:620px){.vlv-home-promo{padding:20px 17px}.vlv-home-promo h3{font-size:28px!important}}

/* v1.2.0 — match the interaction refinements in the VLV Local Guides plugin. */
.vlv-halloween-guide{overflow-x:clip}
.vlv-halloween-guide,.vlv-guide-tools,.vlv-map-section,.vlv-event-sections{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.vlv-tool-heading>*,.vlv-section-heading>*,.vlv-search-row>*{min-width:0}
.vlv-search-row input{min-width:0;width:100%}
.vlv-map-jump{white-space:nowrap}
.vlv-event-grid{width:100%;max-width:100%}
.vlv-event-card{min-width:0;overflow-wrap:anywhere}
.vlv-event-card-top,.vlv-event-card-headings{min-width:0}
.vlv-event-location,.vlv-event-details{overflow-wrap:anywhere}
.vlv-events-map{max-width:100%}

/* Alternating Halloween category bands: burnt orange → purple → Halloween green → repeat. */
.vlv-category-heading{
  margin:38px 0 16px;
  padding:15px 18px 16px;
  border-radius:14px;
  background:var(--vlv-section-color,var(--vlv-orange));
  color:#fff;
  box-shadow:0 6px 18px rgba(34,28,23,.08);
}
.vlv-category-heading h2{color:#fff!important}
.vlv-category-heading .vlv-eyebrow{color:rgba(255,255,255,.78)!important;margin:0 0 5px!important}
.vlv-category-heading .vlv-section-count{color:#fff;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.24);border-radius:999px;padding:6px 10px}
.vlv-event-section .vlv-date-badge span{background:var(--vlv-section-color,var(--vlv-orange))}
.vlv-event-section .vlv-event-schedule{color:var(--vlv-section-color,var(--vlv-orange))!important}
.vlv-event-section .vlv-save-control input{accent-color:var(--vlv-section-color,var(--vlv-orange))}
.vlv-event-section .vlv-event-card{border-top:3px solid var(--vlv-section-color,var(--vlv-orange))}
.vlv-event-section .vlv-event-actions button:hover,
.vlv-event-section .vlv-save-control:hover{color:var(--vlv-section-color,var(--vlv-orange))}

/* Per-event sharing menu. */
.vlv-share-menu{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px;padding:9px;background:var(--vlv-soft);border:1px solid var(--vlv-line);border-radius:9px}
.vlv-share-menu[hidden]{display:none!important}
.vlv-share-menu button{appearance:none;border:1px solid #ddd3ca;background:#fff;color:#333;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:800;cursor:pointer}
.vlv-share-menu button:hover{border-color:var(--vlv-orange);color:var(--vlv-orange-dark)}

/* Saved list drawer: fixed to the right edge and isolated from theme wrappers. */
.vlv-saved-drawer{right:0;width:min(450px,calc(100vw - 16px));max-width:calc(100vw - 16px);transform:translate3d(110%,0,0);visibility:hidden;opacity:0;pointer-events:none;overflow-x:hidden;transition:transform .22s ease,opacity .18s ease,visibility 0s linear .22s}
.vlv-saved-drawer.is-open{transform:translate3d(0,0,0);visibility:visible;opacity:1;pointer-events:auto;transition:transform .22s ease,opacity .18s ease}
.vlv-saved-overlay[hidden]{display:none!important}
.vlv-empty-list{padding:18px 0;color:var(--vlv-muted)}
.vlv-saved-item-actions{flex-wrap:wrap}

/* Keep My Halloween List available while the reader scrolls. */
.vlv-saved-fab{
  position:fixed;
  right:0;
  top:50%;
  bottom:auto;
  transform:translateY(-50%);
  z-index:2147482999!important;
  border-radius:14px 0 0 14px;
  padding:13px 16px;
  box-shadow:0 8px 26px rgba(0,0,0,.20);
  max-width:min(205px,calc(100vw - 24px));
  white-space:nowrap;
}
.vlv-saved-fab:hover{filter:brightness(.96)}
.vlv-saved-overlay{background:rgba(20,18,16,.24)!important;z-index:2147483000!important}
.vlv-saved-drawer{z-index:2147483001!important}
.vlv-toast{z-index:2147483004!important}
body.vlv-halloween-list-open{overflow:hidden}

/* Scroll the entire list drawer, including the action buttons. */
.vlv-saved-drawer{
  height:100vh;
  height:100dvh;
  max-height:100vh;
  max-height:100dvh;
  box-sizing:border-box;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding-bottom:calc(22px + env(safe-area-inset-bottom,0px));
  display:block;
}
.vlv-saved-drawer-head{position:sticky;top:-22px;z-index:3;background:#fff;padding-top:22px}
.vlv-saved-items{overflow:visible;flex:none;padding:8px 0}
.vlv-saved-actions{position:static;margin-top:0;padding-bottom:2px}

/* Share My Halloween List: email, link, and social options. */
.vlv-list-share-overlay{position:fixed;inset:0;background:rgba(20,18,16,.32);z-index:2147483002}
.vlv-list-share-overlay[hidden]{display:none!important}
.vlv-list-share-dialog{position:fixed;left:50%;top:50%;transform:translate(-50%,-46%) scale(.98);width:min(430px,calc(100vw - 28px));max-height:calc(100dvh - 36px);overflow:auto;background:#fff;border:1px solid var(--vlv-line);border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.25);padding:22px;z-index:2147483003;opacity:0;transition:opacity .16s ease,transform .16s ease;box-sizing:border-box}
.vlv-list-share-dialog[hidden]{display:none!important}
.vlv-list-share-dialog.is-open{opacity:1;transform:translate(-50%,-50%) scale(1)}
.vlv-list-share-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border-bottom:1px solid var(--vlv-line);padding-bottom:14px}
.vlv-list-share-head h2{font-family:Georgia,'Times New Roman',serif;font-size:28px;line-height:1.05;margin:0}
.vlv-list-share-close{appearance:none;border:0;background:transparent;color:#555;font-size:32px;line-height:1;cursor:pointer;padding:0 2px}
.vlv-list-share-copy{font-size:13px;line-height:1.5;color:var(--vlv-muted);margin:14px 0 16px!important}
.vlv-list-share-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.vlv-list-share-grid button{appearance:none;border:1px solid var(--vlv-line);background:var(--vlv-paper);color:var(--vlv-ink);border-radius:12px;padding:13px 12px;font-size:14px;font-weight:800;cursor:pointer;min-height:48px}
.vlv-list-share-grid button:hover,.vlv-list-share-grid button:focus-visible{border-color:var(--vlv-orange);color:var(--vlv-orange-dark);outline:none;box-shadow:0 0 0 2px rgba(201,95,34,.15)}

/* Desktop: mouse wheel scrolls the drawer only while the pointer is over it. */
@media (min-width:621px){
  body.vlv-halloween-list-open{overflow-y:auto!important;overflow-x:hidden!important}
  .vlv-saved-overlay{pointer-events:none!important}
  .vlv-saved-drawer{pointer-events:auto;overscroll-behavior:contain}
}
@media (max-width:620px){
  body.vlv-halloween-list-open{overflow:hidden!important}
  .vlv-saved-overlay{pointer-events:auto}
  .vlv-saved-fab{right:12px;top:auto;bottom:12px;transform:none;border-radius:999px;padding:11px 15px;max-width:calc(100vw - 24px)}
  .vlv-saved-drawer{width:calc(100vw - 8px);max-width:calc(100vw - 8px);padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}
  .vlv-saved-drawer-head{top:-18px;padding-top:18px}
  .vlv-category-heading{padding:14px 15px}
  .vlv-category-heading .vlv-section-count{display:inline-block;margin-top:9px}
}
@media(max-width:480px){
  .vlv-list-share-dialog{padding:18px}
  .vlv-list-share-grid{grid-template-columns:1fr}
  .vlv-list-share-head h2{font-size:25px}
}


/* v1.2.1 — explicit map navigation controls and wheel zoom. */
.vlv-map-controls{
  position:absolute;
  top:12px;
  right:12px;
  z-index:700;
  display:flex;
  gap:6px;
  align-items:center;
}
.vlv-map-control-button{
  appearance:none;
  border:1px solid rgba(0,0,0,.16);
  background:rgba(255,255,255,.97);
  color:#2e2a27;
  min-height:40px;
  border-radius:9px;
  box-shadow:0 3px 12px rgba(0,0,0,.14);
  font-weight:800;
  cursor:pointer;
  line-height:1;
}
.vlv-map-control-button:hover,.vlv-map-control-button:focus-visible{background:#fff;border-color:var(--vlv-orange);color:var(--vlv-orange-dark);outline:none}
.vlv-map-zoom-button{width:40px;padding:0;font-size:24px}
.vlv-map-reset-button{padding:0 12px;font-size:12px;white-space:nowrap}
@media(max-width:620px){
  .vlv-map-controls{top:9px;right:9px;gap:5px}
  .vlv-map-control-button{min-height:38px}
  .vlv-map-zoom-button{width:38px;font-size:22px}
  .vlv-map-reset-button{padding:0 10px;font-size:11px}
}
