/* Haunted houses directory (data-page="haunts"). Reuses site variables from faithful.css. */
.haunts-shell{display:grid;gap:22px;min-width:0}
.haunts-map{position:relative;min-width:0;height:clamp(300px,46vw,520px);overflow:hidden;border:1px solid var(--border-soft);border-radius:8px;background:#07141d;box-shadow:0 22px 55px rgba(0,0,0,.28)}
.haunts-map[hidden]{display:none}
.haunts-map .map-image{filter:brightness(.7) saturate(.75) contrast(1.08)}
.haunts-map .map-marker-layer{position:absolute;inset:0;z-index:2}
.haunts-map .map-pin{min-width:44px;min-height:44px}
.haunts-map .map-pin.selected{z-index:5}
.haunts-map .google-map-canvas{position:absolute;inset:0}
.haunts-status{margin:0;color:var(--muted);font-size:15px}
.haunts-status a{color:var(--orange2);text-decoration:underline}
.haunts-list{display:grid;gap:18px;min-width:0}
.haunt-card{display:grid;grid-template-columns:minmax(0,1fr);min-width:0;overflow:hidden;border:1px solid var(--border-soft);border-radius:8px;background:linear-gradient(180deg,rgba(16,34,46,.96),rgba(7,20,29,.98));box-shadow:0 18px 44px rgba(0,0,0,.24);transition:border-color .2s,box-shadow .2s;scroll-margin-top:96px}
.haunt-card:focus{outline:none}
.haunt-card:focus-visible{outline:2px solid var(--orange2);outline-offset:3px}
.haunt-card.is-selected{border-color:var(--violet2);box-shadow:0 0 0 2px rgba(154,101,214,.55),0 18px 44px rgba(0,0,0,.34)}
.haunt-photo{position:relative;min-width:0;aspect-ratio:16/10;background:#0b1b26}
.haunt-photo img{display:block;width:100%;height:100%;object-fit:cover}
.haunt-photo-empty{display:grid;place-items:center;background:radial-gradient(circle at 50% 38%,rgba(154,101,214,.42),transparent 58%),linear-gradient(145deg,#2a1a3d,#10202c 62%,#2b1a0e);color:var(--violet2)}
.haunt-photo-empty svg{width:72px;height:72px;stroke:currentColor;fill:none;stroke-width:1.6;opacity:.9}
.haunt-body{display:grid;gap:12px;align-content:start;min-width:0;padding:20px 18px 22px}
.haunt-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.haunt-number{color:var(--orange2);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.haunt-card h2{margin:0;font-family:var(--serif);font-size:clamp(26px,5.6vw,36px);font-weight:500;line-height:1.08;letter-spacing:-.02em;overflow-wrap:anywhere}
.haunt-description{margin:0;color:var(--cream);font-size:16px;line-height:1.55}
.haunt-address{display:flex;align-items:flex-start;gap:8px;margin:0;color:var(--cream);font-size:16px;font-weight:700;overflow-wrap:anywhere}
.haunt-address svg{flex:none;width:18px;height:18px;margin-top:3px;stroke:var(--orange2);fill:none;stroke-width:2}
.haunt-times{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.haunt-times li{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;padding:10px 12px;border:1px solid var(--border-soft);border-radius:6px;background:rgba(6,16,25,.55)}
.haunt-times strong{color:var(--gold);font-size:16px}
.haunt-times span{color:var(--muted);font-size:14px}
.haunt-times .is-cancelled strong{color:var(--muted2);text-decoration:line-through}
.haunt-times .haunt-cancelled{color:#f3a08f;font-weight:800}
.haunt-times-empty{margin:0;color:var(--muted);font-size:15px}
.haunt-facts{display:grid;gap:8px;margin:0}
.haunt-facts div{display:grid;gap:2px}
.haunt-facts dt{color:var(--muted2);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.haunt-facts dd{margin:0;color:var(--cream);font-size:16px}
.haunt-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.haunt-actions .button,.haunt-actions .button-secondary,.haunt-actions .button-quiet{flex:1 1 150px;min-height:48px;text-align:center}
.haunts-empty{padding:32px 20px;border:1px dashed var(--border);border-radius:8px;background:rgba(13,29,40,.7);text-align:center}

.haunts-empty p{max-width:520px;margin:0 auto 16px;color:var(--cream);font-size:16px}
.haunts-empty a:not(.button):not(.button-quiet){color:var(--orange2);text-decoration:underline}
.haunts-empty .haunt-actions{justify-content:center}
@media(min-width:760px){
  .haunt-card{grid-template-columns:minmax(260px,38%) minmax(0,1fr)}
  .haunt-photo{aspect-ratio:auto;min-height:100%}
  .haunt-body{padding:24px 26px 26px}
  .haunt-actions .button,.haunt-actions .button-secondary,.haunt-actions .button-quiet{flex:0 1 auto;min-width:160px}
}
@media(prefers-reduced-motion:reduce){.haunt-card{transition:none}}
