/* Halloween-only presentation. All selectors stay inside .halloween-page/dialog. */
.halloween-page { --halloween-forest:#163b2c; --halloween-ink:#26332d; --halloween-muted:#66716a; --halloween-line:#e1e3db; --halloween-paper:#fff; --halloween-red:#b2564d; color:var(--halloween-ink); }
.halloween-page .halloween-events-section { margin:0 auto 3rem; padding-top:clamp(2.5rem,5vw,4rem); }
.halloween-page .halloween-section-heading { margin:0 0 2rem; padding:0 0 1.25rem; border-bottom:1px solid var(--halloween-line); }
.halloween-page .halloween-eyebrow { margin:0 0 .35rem; color:var(--halloween-red); font-size:.75rem; font-weight:750; letter-spacing:.1em; text-transform:uppercase; }
.halloween-page .halloween-section-heading h2 { margin:0; color:var(--halloween-forest); font-size:clamp(1.55rem,3.4vw,2.35rem); font-weight:600; line-height:1.18; font-family:inherit; }
.halloween-page .halloween-section-intro { max-width:70ch; margin:1rem 0 0; color:var(--halloween-muted); font-family:inherit; font-size:1rem; line-height:1.65; }
.halloween-page .halloween-results-status { margin:.45rem 0 0; color:var(--halloween-muted); font-size:.85rem; }
.halloween-page .halloween-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.halloween-page .halloween-card { display:flex; min-width:0; flex-direction:column; overflow:hidden; border:1px solid #e4e6df; border-radius:.9rem; background:#fff; box-shadow:0 5px 18px rgb(23 49 36 / 5%); transition:transform 200ms ease,box-shadow 200ms ease,border-color 200ms ease; cursor:pointer; }
.halloween-page .halloween-card:is(:hover,:focus-within) { transform:translateY(-3px); border-color:#c5d0c4; box-shadow:0 16px 44px rgb(24 45 33 / 9%); }
.halloween-page .halloween-card-photo { position:relative; height:184px; min-height:184px; overflow:hidden; background:linear-gradient(140deg,#ecefe8,#f6f3eb); }
.halloween-page .halloween-card-photo>img,.halloween-page .halloween-card-photo .sirtaqui-photo-frame,.halloween-page .halloween-card-photo .sirtaqui-photo-frame>img { display:block; width:100%; height:100%; object-fit:cover; }
.halloween-page .halloween-card-photo .sirtaqui-photo-frame { position:relative; }
.halloween-page .halloween-card-photo .sirtaqui-photo-fallback { display:none!important; position:absolute; inset:0; align-items:center; justify-content:center; text-align:center; color:#68766d; background:linear-gradient(140deg,#ecefe8,#f6f3eb); }
.halloween-page .halloween-card-photo.is-broken .sirtaqui-photo-fallback { display:flex!important; }
.halloween-page .halloween-photo-fallback { display:none; position:absolute; inset:0; align-items:center; justify-content:center; color:#68766d; background:linear-gradient(140deg,#ecefe8,#f6f3eb); }
.halloween-page .halloween-card-photo.is-broken .halloween-photo-fallback { display:flex; }
.halloween-page .halloween-card-body { display:flex; flex:1; flex-direction:column; align-items:flex-start; padding:1.15rem 1.2rem 1.25rem; }
.halloween-page .halloween-card-kicker { margin:0 0 .45rem; color:var(--halloween-red); font-size:.7rem; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.halloween-page .halloween-card h3 { margin:0; color:var(--halloween-forest); font:650 1.2rem/1.25 Georgia,"Times New Roman",serif; transition:color 200ms ease; }
.halloween-page .halloween-card:is(:hover,:focus-within) h3 { color:#b2564d; }
.halloween-page .halloween-offer-title { margin:.65rem 0 0; color:#47534b; font-size:.91rem; }
.halloween-page .halloween-card-description { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; margin:.65rem 0 1rem; color:#5f6a63; font-size:.86rem; }
.halloween-page .halloween-date-line { display:flex; gap:.45rem; margin:.8rem 0 0; color:#4d5a51; font-size:.83rem; }
.halloween-page .halloween-date-line>span { color:var(--halloween-red); }
.halloween-page .halloween-detail-trigger { min-height:44px; margin-top:auto; padding:.65rem 1rem; border:2px solid var(--halloween-forest); border-radius:.45rem; color:#fff; background:var(--halloween-forest); font:inherit; font-size:.86rem; font-weight:700; line-height:1.2; cursor:pointer; }
.halloween-page .halloween-detail-trigger:hover { background:#10291f; }
.halloween-page :focus-visible,.halloween-dialog :focus-visible { outline:3px solid #d28a27; outline-offset:3px; }
.halloween-page .halloween-card-photo .sirtaqui-photo-credit { position:absolute; z-index:2; right:0; bottom:0; max-width:calc(100% - 16px); margin:0; padding:.25rem .45rem; border-radius:.2rem 0 0 0; color:#fff; background:rgb(0 0 0 / 68%); font-size:10px; line-height:1.35; text-align:right; overflow-wrap:anywhere; pointer-events:none; }
.halloween-page .halloween-no-events { padding:1rem; border-left:3px solid #e6ba64; background:#f5f0e3; }
.halloween-page .halloween-pagination { margin:2rem 0 0; }
.halloween-page .halloween-pagination .agenda-pagination-list { display:flex; align-items:center; justify-content:center; gap:.4rem; flex-wrap:wrap; list-style:none; margin:0; padding:0; }
.halloween-page .halloween-pagination a,.halloween-page .halloween-pagination .agenda-pagination-item { display:inline-flex; min-width:42px; min-height:42px; align-items:center; justify-content:center; padding:.4rem .7rem; border:1px solid var(--halloween-line); border-radius:.4rem; color:var(--halloween-forest); background:white; text-decoration:none; }
.halloween-page .halloween-pagination .is-current { color:#fff; border-color:var(--halloween-red); background:var(--halloween-red); }
.halloween-page .halloween-pagination .is-disabled { color:#8a908c; background:#f3f4f1; }
.halloween-page .halloween-pagination-gap { padding:.3rem; color:var(--halloween-muted); }
.halloween-page .halloween-dialog { position:fixed; inset:50% auto auto 50%; transform:translate(-50%,-50%); box-sizing:border-box; width:min(900px,calc(100vw - 2rem)); max-width:900px; max-height:min(88dvh,900px); padding:0 1.5rem 1.5rem; overflow:auto; overscroll-behavior:contain; border:0; border-radius:.9rem; color:var(--halloween-ink); background:var(--halloween-paper); box-shadow:0 20px 70px rgb(0 0 0 / 30%); }
.halloween-page .halloween-dialog::backdrop { background:rgb(10 27 20 / 72%); backdrop-filter:blur(3px); }
.halloween-page .halloween-dialog-topline { position:sticky; z-index:5; top:0; display:flex; height:0; align-items:flex-start; justify-content:flex-end; padding-top:8px; pointer-events:none; }
.halloween-page .halloween-dialog-label { display:none; }
.halloween-page .halloween-dialog-close { display:inline-flex; width:48px; min-width:48px; height:48px; align-items:center; justify-content:center; border:1px solid var(--halloween-line); border-radius:50%; color:var(--halloween-forest); background:white; font-size:1.7rem; line-height:1; pointer-events:auto; }
.halloween-page .halloween-dialog-layout { display:grid; grid-template-columns:minmax(0,38%) minmax(0,1fr); gap:1.25rem 1.5rem; align-items:start; min-width:0; padding-top:56px; }
.halloween-page .halloween-dialog-media { position:relative; min-width:0; }
.halloween-page .halloween-dialog-photo { height:min(55vh,440px); min-height:180px; display:flex; align-items:center; justify-content:center; overflow:hidden; color:#68766d; background:linear-gradient(140deg,#ecefe8,#f6f3eb); }
.halloween-page .halloween-dialog-image { display:block; max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; }
.halloween-page .halloween-dialog-image[hidden],.halloween-page .halloween-dialog-placeholder[hidden] { display:none; }
.halloween-page .halloween-dialog-placeholder { display:flex; flex-direction:column; align-items:center; gap:.35rem; }
.halloween-page .halloween-dialog-placeholder span:first-child { font-size:3rem; }
.halloween-page .halloween-dialog-main { min-width:0; padding:.1rem .5rem 0 0; overflow-wrap:anywhere; }
.halloween-page .halloween-dialog-category { margin:0 0 .65rem; color:var(--halloween-red); font-size:.72rem; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.halloween-page .halloween-dialog-main h2 { margin:0; color:var(--halloween-forest); font:600 clamp(21px,2.5vw,30px)/1.15 Georgia,"Times New Roman",serif; }
.halloween-page .halloween-dialog-establishment { margin:.7rem 0 0; color:var(--halloween-forest); font-weight:700; }
.halloween-page .halloween-dialog-location { display:flex; gap:.45rem; margin:.7rem 0 0; color:var(--halloween-forest); font-weight:650; }
.halloween-page .halloween-dialog-dates { display:block; margin:.85rem 0 0; color:#70413b; font-weight:650; white-space:pre-line; overflow-wrap:anywhere; }
.halloween-page .halloween-dialog-hours { margin:.45rem 0 0; color:#4d5a51; font-size:.92rem; }
.halloween-page .halloween-dialog-description { grid-column:1 / -1; min-width:0; margin:.15rem 0 0; color:#4b5850; font-size:1rem; line-height:1.7; overflow-wrap:anywhere; }
.halloween-page .halloween-dialog-description p { margin:0 0 .75rem; }
.halloween-page .halloween-dialog-description a { overflow-wrap:anywhere; }
.halloween-page .halloween-dialog-media > .halloween-dialog-photo-credit:not(:empty) { position:absolute; z-index:3; right:0; bottom:0; box-sizing:border-box; max-width:calc(100% - 12px); margin:0; padding:3px 6px; border-radius:4px 0 0 0; overflow-wrap:anywhere; background:rgba(0,0,0,.68); color:#fff; font-size:10px; line-height:1.3; text-align:right; }
.halloween-page .halloween-dialog-link:not([hidden]) { display:inline-flex; min-height:46px; align-items:center; margin-top:1.25rem; padding:.65rem 1rem; border-radius:.45rem; color:white; background:var(--halloween-forest); font-weight:700; text-decoration:none; }
.halloween-page .halloween-dialog-link:not([hidden]):hover { background:#10291f; }
@media(max-width:900px) { .halloween-page .halloween-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .halloween-page .halloween-card-grid { grid-template-columns:1fr; gap:.9rem; } .halloween-page .halloween-card { display:grid; grid-template-columns:36% minmax(0,1fr); } .halloween-page .halloween-card-photo { height:auto; min-height:190px; } .halloween-page .halloween-card-body { padding:.9rem; } .halloween-page .halloween-card h3 { font-size:1.08rem; } .halloween-page .halloween-dialog { width:calc(100vw - 1rem); max-height:calc(100dvh - 1rem); padding:0 1rem 1.25rem; border-radius:.85rem; } .halloween-page .halloween-dialog-layout { grid-template-columns:minmax(0,1fr); gap:.75rem; padding-top:56px; } .halloween-page .halloween-dialog-photo { height:min(30dvh,240px); min-height:120px; } .halloween-page .halloween-dialog-topline { padding-top:4px; } .halloween-page .halloween-dialog-main { padding:0; } .halloween-page .halloween-dialog-main h2 { font-size:clamp(19px,5.5vw,23px); } .halloween-page .halloween-dialog-description { grid-column:1; font-size:.94rem; line-height:1.6; } }
@media(max-width:600px) { .halloween-page .halloween-events-section { padding-top:2.25rem; } .halloween-page .halloween-section-heading { margin-bottom:1.4rem; padding-bottom:1rem; } .halloween-page .halloween-section-heading h2 { font-size:clamp(1.4rem,6.2vw,1.85rem); line-height:1.2; } .halloween-page .halloween-section-intro { margin-top:.8rem; font-size:.96rem; line-height:1.6; } }
@media(max-width:390px) { .halloween-page .halloween-card { grid-template-columns:1fr; } .halloween-page .halloween-card-photo { min-height:145px; } }
/* Date badges use the Agenda's shared renderer and exact calendar treatment. */
.halloween-page .halloween-card-photo { position:relative; }
.halloween-page .agenda-date-badge { position:absolute; top:0; left:0; right:auto; z-index:3; display:flex; align-items:center; gap:7px; box-sizing:border-box; max-width:100%; padding:5px 8px 6px; border-radius:11px 0 0 0; background:#C62828; color:#fff; box-shadow:0 2px 7px #0003; font:700 12px/1.15 Arial,Helvetica,sans-serif; text-align:center; pointer-events:none; }
.halloween-page .agenda-date-badge.agenda-date-calendar { flex-direction:column; align-items:center; gap:1px; width:max-content; min-width:52px; max-width:calc(100% - 8px); overflow-wrap:normal; }
.halloween-page .agenda-date-calendar time { display:flex; flex-direction:column; align-items:center; color:inherit; font:inherit; }
.halloween-page .agenda-date-day { font:700 28px/1 Arial,Helvetica,sans-serif; }
.halloween-page .agenda-date-month { font:700 13px/1.2 Arial,Helvetica,sans-serif; }
.halloween-page .agenda-date-year { margin-top:2px; font:700 11px/1.2 Arial,Helvetica,sans-serif; }
.halloween-page .agenda-date-context { display:block; max-width:108px; white-space:normal; font:600 11px/1.25 Arial,Helvetica,sans-serif; }
.halloween-page .halloween-card-location { display:flex; align-items:center; gap:.4rem; margin:.65rem 0 0; color:#47534b; font-size:.86rem; }
.halloween-page .halloween-card-location>svg,.halloween-page .halloween-dialog-location>svg { display:block; flex:0 0 16px; width:16px!important; min-width:16px; max-width:16px; height:16px!important; min-height:16px; max-height:16px; fill:var(--halloween-red); }
.halloween-page .halloween-dialog-location { align-items:center; }
.halloween-page .halloween-card-advertiser { margin:.35rem 0 0; color:#59645d; font-size:.8rem; }
.halloween-page .halloween-offer-card .halloween-card-body { padding-top:1.15rem; }
.halloween-page .halloween-offer-title { display:none; }
.halloween-page .halloween-dialog :is(.halloween-dialog-photo-credit,.sirtaqui-photo-credit) { overflow-wrap:anywhere; }
@media(prefers-reduced-motion:reduce) { .halloween-page .halloween-dialog { scroll-behavior:auto; } }
@media(prefers-reduced-motion:reduce) { .halloween-page *, .halloween-page *::before, .halloween-page *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }

/* Reassert the native dialog geometry after theme styles and browser defaults. */
.halloween-page dialog.halloween-dialog { position:fixed; inset:auto; top:50%; left:50%; box-sizing:border-box; width:min(900px,calc(100vw - 2rem)); height:auto; max-width:900px; max-height:min(88dvh,900px); margin:0; transform:translate(-50%,-50%); }
.halloween-page dialog.halloween-dialog[open] { display:block; visibility:visible; }
.halloween-page dialog.halloween-dialog [hidden] { display:none!important; }
.halloween-page dialog.halloween-dialog .halloween-dialog-topline { position:absolute; z-index:5; top:0; right:0; left:0; display:flex; height:56px; align-items:flex-start; justify-content:flex-end; box-sizing:border-box; padding:8px 12px; pointer-events:none; }
.halloween-page dialog.halloween-dialog .halloween-dialog-layout { display:grid; grid-template-columns:minmax(0,38%) minmax(0,1fr); gap:1.25rem 1.5rem; align-items:start; min-width:0; padding-top:56px; }
.halloween-page dialog.halloween-dialog .halloween-dialog-close { position:relative; top:auto; right:auto; flex:none; }
@media(max-width:600px) {
  .halloween-page dialog.halloween-dialog { top:50%; left:50%; width:calc(100vw - 1rem); max-height:calc(100dvh - 1rem); padding:0 1rem 1.25rem; }
  .halloween-page dialog.halloween-dialog .halloween-dialog-layout { grid-template-columns:minmax(0,1fr); gap:.75rem; padding-top:56px; }
  .halloween-page dialog.halloween-dialog .halloween-dialog-photo { height:min(30dvh,240px); min-height:120px; }
}

/* Halloween agenda filters: reuse the Sirtaqui field and date-range components. */
.halloween-page .halloween-events-section { padding-top:clamp(2.15rem,4.4vw,3.5rem); }
.halloween-page #agenda_filters > br { display:none; }
.halloween-page #agenda_filters { margin:0 0 1.5rem; padding:1rem; border:1px solid var(--halloween-line); border-radius:.8rem; background:#fff; text-align:left; }
.halloween-page #agenda_filters form { display:grid; grid-template-columns:minmax(0,1fr) 105px 180px auto; align-items:center; gap:8px; margin:0; }
@media(min-width:701px) { .halloween-page #agenda_filters form { width:fit-content; max-width:100%; justify-content:start; justify-items:start; } }
@media(min-width:1025px) { .halloween-page #agenda_filters form { grid-template-columns:250px 105px 140px 110px; column-gap:8px; row-gap:8px; } }
.halloween-page #agenda_filters select,
.halloween-page #agenda_filters .agenda-date-range-trigger,
.halloween-page #agenda_filters input[type="submit"] { box-sizing:border-box; width:100%; min-width:0; height:46px; min-height:46px; margin:0; border:1px solid #b7c3b9; border-radius:8px; background:#fff; color:var(--halloween-ink); font:14px/1.4 Arial,Helvetica,sans-serif; }
.halloween-page #agenda_filters select { padding:10px 12px; }
.halloween-page #agenda_filters .agenda-date-range { display:block; width:100%; min-width:0; box-sizing:border-box; }
.halloween-page #agenda_filters .agenda-date-range-trigger { padding:10px 12px; border-color:#b7c3b9; text-align:left; }
.halloween-page #agenda_filters .agenda-date-range-trigger { -webkit-appearance:none; appearance:none; box-shadow:none; border:1px solid #b7c3b9; }
.halloween-page #agenda_filters .agenda-date-range-trigger:focus-visible { outline:3px solid #1d70b8; outline-offset:2px; box-shadow:none; }
.halloween-page #agenda_filters #event_filter_radius_km { width:105px; max-width:105px; }
.halloween-page #agenda_filters input[type="submit"] { padding:10px 18px; border-color:#B65A50; background:#B65A50; color:#fff; font-weight:700; cursor:pointer; }
.halloween-page #agenda_filters input[type="submit"]:focus-visible,
.halloween-page #agenda_filters select:focus-visible,
.halloween-page #agenda_filters .agenda-date-range-trigger:focus-visible { outline:3px solid #1d70b8; outline-offset:2px; }
.halloween-page #agenda_filters .agenda-quick-filters { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:14px; }
.halloween-page #agenda_filters .selection_dates { display:inline-flex; align-items:center; min-height:38px; padding:.4rem .75rem; border:1px solid var(--halloween-line); border-radius:999px; background:#fff; color:var(--halloween-ink); text-decoration:none; }
.halloween-page #agenda_filters .selection_dates:hover,
.halloween-page #agenda_filters .selection_dates:focus-visible { border-color:var(--halloween-red); color:var(--halloween-red); }
@media(max-width:700px) {
  .halloween-page .halloween-events-section { padding-top:2rem; }
  .halloween-page #agenda_filters { padding:.8rem; }
  .halloween-page #agenda_filters form { grid-template-columns:minmax(0,1fr); gap:.6rem; }
  .halloween-page #agenda_filters .agenda-quick-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .halloween-page #agenda_filters .selection_dates { justify-content:center; text-align:center; }
}

/* Halloween only: remove the intro divider and its 16–20 px bottom padding. */
.halloween-page .halloween-section-heading { border-bottom:0; padding-bottom:0; }

/* Halloween only: let the introduction span the filters container width. */
.halloween-page .halloween-section-intro { max-width:none; width:100%; }
